Sep 28 2009

TCP Offload

Published by at 11:32 am under Windows

TCP Offload Engine (or TOE) transfers network processing load, from the CPU (software) to the network controller (hardware). The network card needs to support TOE such as the HP NC382T. This functionnality is disabled after the server installation.

Check if TOE is enabled

Windows 2003
The activation can only be checked with the registry key EnableTCPChimney under HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 
Windows 2008

C:\>netsh int tcp show global
Querying active state...

TCP Global Parameters
Receive-Side Scaling State          : enabled
Chimney Offload State               : enabled
Receive Window Auto-Tuning Level    : disabled
Add-On Congestion Control Provider  : ctcp
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled

The important line here is Chimney Offload State.


Windows 2003

netsh int ip set chimney ENABLED
netsh int ip set chimney DISABLED

Windows 2008

netsh int tcp set global chimney=enabled
netsh int tcp set global chimney=disabled



TCP Offload isn’t supported in Linux for different reasons described on the Linux Foundation website.


It is stated that 1Gb of traffic roughly requires 1Ghz of CPU resource. In this matter, TCP Offload is only valuable for Gigabit interfaces, with an important traffic flow. It especially suits servers with iSCSI interfaces.
These are the numbers I’ve seen on servers and it’s quite impressive. CPU usage remains close to 0 during heavy traffic processing. I’ve had no problem so far since it’s been enabled.


It isn’t advised to enable TOE on servers running firewall, IPSEC and IPNAT applications. There are side effects:

No responses yet

Comments RSS

Leave a Reply