In this article, we will look into the TCP Chimney Offload feature, its purpose and how to enable it. The TCP Chimney Offload is a networking technology that transfers the workload of network data transfers from the CPU to a network adapter. This feature frees the CPU from network data transfers by enabling the Windows networking subsystem to offload the processing of a TCP/IP connection to a network adapter that includes special support for TCP/IP offload and available in all versions of the Windows Server 2008 family.
This feature is supported on both TCP/IPv4 and TCP/IPv6 connections. This feature can be enabled or disabled at the OS or Network Adapter level. By default, TCP Chimney Offload is disabled and must be enabled on both ends of a TCP\IP connection. Let's look at the commands to enable\disable this feature at the OS level.
To check the current status of TCP Chimney Offload,
open a command prompt as Administrator and execute the following command:
netsh int tcp show global
Output
To enabled\disable TCP Chimney Offload, use the following command:
netsh int tcp set global chimney=disabled\enabled
Output
Let's look at the following steps to enable\disable this feature at the Network Adapter level.
- Open Device Manager.
- Under Network Adapters, double-click the network adapter that you want.
- On the Advanced tab, click Enabled or Disabled in the box next to the TCP offload entry.
Once this feature is enabled at the OS or Network Adapter level, the TCP/IP stack tries to offload suitable TCP connections to the network adapter.
To determine whether this feature is working as expected or not after enabling it, open a command prompt and run the following command:
C:\>netstat -t
Active Connections:
Proto Local Address Foreign Address State Offload State
TCP xx.xxx. xx. xx:13009 test ESTABLISHED InHost
TCP xx.xxx. xx. xx:13010 test ESTABLISHED Offloaded
TCP xx.xxx. xx. xx 13011 test1 CLOSE_WAIT InHost
The behavior of TCP Chimney Offload may differ based on other Windows components, like the firewall, load balancer and the Internet Protocol security (IPsec) policy.
-
This feature can work and offload TCP connections to a Network Adapter if a Windows Firewall exists.
-
If the system has an IPsec policy applied then the TCP/IP stack will not try to offload any TCP connections and this feature won't work.
-
If you configure the NLB service on a server then the TCP/IP stack does not offload TCP connections and this feature won't work.
In a similar way, we can enable\disable RSS (Receive Side Scaling). It is a network driver technology that improves the system performance related to handling of network data on multiprocessor systems.
Open a command prompt as Administrator and execute the following commands:
To get the current status of RSS:
To enable\disable RSS:
netsh int tcp set global rss=disabled\enabled
By default, this feature will be enabled.