Information about the TCP Chimney Offload, Receive Side Scaling, and Network Direct Memory Access features in Windows Server 2008
This article describes the TCP Chimney Offload, Receive Side Scaling (RSS), and Network Direct Memory Access (NetDMA) features that are available for the TCP/IP protocol in Windows Server 2008.
Original KB number: 951037
TCP Chimney Offload overview
TCP Chimney Offload is a networking technology that helps transfer the workload from the CPU to a network adapter during network data transfer. In Windows Server 2008, TCP Chimney Offload enables 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 processing.
TCP Chimney Offload is available in all versions of Windows Server 2008 and Windows Vista. Both TCP/IPv4 connections and TCP/IPv6 connections can be offloaded if the network adapter supports this feature.
How to enable and disable TCP Chimney Offload in Windows Server 2008
TCP Chimney Offload can be enabled or disabled in the following two locations:
- The operating system
- The advanced properties page of the network adapter
TCP Chimney Offload will work only if it is enabled in both locations. By default, TCP Chimney Offload is disabled in both these locations. However, OEM installations may enable TCP Chimney Offload in the operating system, in the network adapter, or in both the operating system and the network adapter.
How to configure TCP Chimney Offload in the operating system
To enable TCP Chimney Offload, follow these steps:
- Use administrative credentials to open a command prompt.
- At the command prompt, type the
netsh int tcp set global chimney=enabled
command, and then press ENTER。
To disable TCP Chimney Offload, follow these steps:
- Use administrative credentials to open a command prompt.
- At the command prompt, type the
netsh int tcp set global chimney=disabled
command, and then press ENTER.
To determine the current status of TCP Chimney Offload, follow these steps:
- Use administrative credentials to open a command prompt.
- At the command prompt, type the
netsh int tcp show global
command, and then press ENTER.
How to configure TCP Chimney Offload on the network adapter
To enable or disable TCP Chimney Offload, follow these steps:
- 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.
Note
Different manufacturers may use different terms to describe TCP Chimney Offload on the Advanced properties page of the network adapter.
How TCP Chimney Offload coexists with other programs and services
When the TCP Chimney Offload technology offloads TCP/IP processing for a given TCP connection to a dedicated network adapter, it must coexist with other programs or services that rely on lower layer services in the networking subsystem. The following table shows how TCP Chimney Offload coexists with other programs and services.
Program or service | Works together with TCP Chimney Offload | Expected behavior when both the service and TCP Chimney Offload are enabled |
---|---|---|
Windows Firewall | Yes | If the firewall is configured to allow for a given TCP connection, the TCP/IP stack will offload that TCP connection to the network adapter. |
Third-party firewall | Implementation-specific | Some firewall vendors have decided to implement their product in such a way that TCP Chimney Offload can be used while the firewall service is running. Refer to the firewall documentation to find out whether the product you are using supports TCP Chimney Offload. |
Internet Protocol security (IPsec) policy | No | If the system has an IPsec policy applied, the TCP/IP stack will not try to offload any TCP connections. This lets the IPsec layer inspect every packet to provide the desired security. |
Network Adapter teaming service (This service is also known as the Load Balancing and Failover service. It is usually provided by an OEM.) | Implementation-specific | Some OEMs have decided to implement their network adapter teaming solutions so that they coexist with TCP Chimney Offload. See the network adapter teaming service documentation to determine whether you can use TCP Chimney offload together with this service. |
Windows Virtualization (Hyper-V technology) | No | If you are using the Microsoft Hyper-V technology to run virtual machines, no operating system will take advantage of TCP Chimney offload. |
Network monitoring tools, such as Network Monitor and Wireshark | Implementation-specific | Some network monitoring tools may coexist with TCP Chimney but may not monitor offloaded connections. |
Network Load Balancing (NLB) service | No | If you configure the NLB service on a server, the TCP/IP stack does not offload TCP connections. |
Cluster service | Yes | However, note that TCP connections using the Network Fault Tolerant driver (NetFT.sys) will not be offloaded. NetFT is used for fault-tolerant inter-node cluster communication. |
Network Address Translation (NAT) service (also known as the Internet Connection Sharing service) | No | If this service is installed and running, the TCP/IP stack does not offload connections. |
How to determine whether TCP Chimney Offload is working
When TCP Chimney Offload is enabled in the operating system and in the network adapter, the TCP/IP stack tries to offload suitable TCP connections to the network adapter. To find out which of the currently established TCP connections on the system are offloaded, follow these steps:
Use administrative credentials to open a command prompt.
Type the
netstat -t
command, and then press ENTER.You receive output that resembles the following:
Active Connections Proto Local Address Foreign Address State Offload State TCP 127.0.0.1:52613 computer_name:52614 ESTABLISHED InHost TCP 192.168.1.103:52614 computer_name:52613 ESTABLISHED Offloaded
In this output, the second connection is offloaded.
How to enable and disable RSS in Windows Server 2008
To enable RSS, follow these steps:
- Use administrative credentials to open a command prompt.
- At the command prompt, type the
netsh int tcp set global rss=enabled
command, and then press ENTER.
To disable RSS, follow these steps:
- Use administrative credentials to open a command prompt.
- At the command prompt, type the
netsh int tcp set global rss=disabled
command, and then press ENTER.
To determine the current status of RSS, follow these steps:
- Use administrative credentials to open a command prompt.
- At the command prompt, type the
netsh int tcp show global
command, and then press ENTER.
When you use a command to enable RSS, you receive the following message:
TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State: enabled
Note
By default, RSS is enabled.
How to enable and disable NetDMA in Windows Server 2008
To enable or disable NetDMA, follow these steps:
Click Start, click Run, type regedit, and then click OK.
Locate the following registry subkey, and then click it:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Double-click the EnableTCPA registry entry.
Note
If this registry entry does not exist, right-click Parameters, point to New, click DWORD Value, type EnableTCPA , and then press ENTER.
To enable NetDMA, type 1 in the Value data box, and then click OK.
To disable NetDMA, type 0 in the Value data box, and then click OK.
If the EnableTCPA registry entry does not exist, enable the NetDMA functionality.
Third-party information disclaimer
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.