Look at TCP Chimney Offload in Windows Server 2008

In this article, we will look into the TCP Chimney Offload feature, its purpose and how to enable it.

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

Window-Server-1.jpg

To enabled\disable TCP Chimney Offload, use the following command:

netsh int tcp set global chimney=disabled\enabled

Output

Window-Server-2.jpg

Let's look at the following steps to enable\disable this feature at the Network Adapter level.

  1. 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.

  1. This feature can work and offload TCP connections to a Network Adapter if a Windows Firewall exists.

  2. 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.

  3. 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:

Window-Server-3.jpg

To enable\disable RSS:

netsh int tcp set global rss=disabled\enabled

Window-Server-4.jpg

By default, this feature will be enabled.