The Broadband Guide
SG
search advanced

Windows 2003 TCP/IP parameters

Windows 2003 Server-specific broadband related registry settings
2007-12-12 (updated: 2015-04-05) by
Tags: , , , , , ,

Windows 2003 SP1 and SP2/R2 (as well as Vista/2008) introduce some interesting new NDIS 6.0 hardware features to improve network performance. The parameters discussed below intended as an addition to our recommended XP/2003 network settings. Most of those parameters are new, introduced with the "Scalable Networking Pack".


TCP Chimney Offload

TCP Chimney Offload is an extesion of NDIS 5 offloading, and makes it possible for network cards to replace the Windows TCP stack with their own implementation. The TCP connection state, once established is transfered to the NIC miniport driver, which then completely handles the traffic between teh application and the remote host. In essence, the NIC miniport driver provides a "chimney" from the top to the bottom of the TCP stack.

TCP Chimney offload improves the performance of long-lived connections with large-sized payloads, such as data streaming and large file transfers.

To enable Chimney Offload, in command prompt:

netsh interface tcp set global chimney=enabled

Or, in the Windows Registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnableTCPChimney=0
 (1=enabled, 0=disabled, recommended: 0 with older/buggy NIC drivers, 1 with newer OSes/drivers)

Notes:  Many Network Cards had buggy implementations/drivers of the offloading features, causing more issues than benefits with servers. It is safer to use this with newe OSes, and with client machines, turn it off with older NIC drivers/OSes and on SQL servers.

TCP Chimney offload is disabled automatically in the presence of a software firewall (Windows Firewall), ICS (Internet Connection Sharing), IPsec, IPNAT.


Receive-side Scaling

Enables use of multiple CPUs to handle received packets (where the NIC spreads the load to available CPUs).

To enable/disable RSS, in command prompt:

netsh interface tcp set global rss=enabled

In the Windows Registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnableRSS=1
(1=enabled, 0=disabled)

Notes:
RSS should not be activated if using ICS (Internet Connection Sharing), or ISA server. More info: MS KB 927695, MS KB 927168



Network Direct Memory Access (NetDMA)


NetDMA (a.k.a TCP Acceleration, TCPA) minimizes the CPU processing needed to move packets between memory buffers. It has some hardware requirements, such as INtel I/O Acceleration Technology (Intel I/OAT) available with Xeon processors to function. NetDMA will not work together with "TCP Chimney Offload" and requires "Receive-side Scaling". Windows chooses TCP Chimney Offload if it detects that both NetDMA and TCP Chimney Offload is supported. NetDMA will be disabled automatically in the presense of a software firewall, ICS, IPsec, IPNAT.

NetDMA can be enabled using the following netsh command:

netsh interface tcp set global netdma=enabled

It can also be set in the Windows Registry, changing the TCP Acceleration (TCPA) setting as follows.

To enable TCP Offloading support (TCPA), in the Windows Registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnableTCPA=1 (1=enabled, 0=disable NetDMA).

Notes: TCPA should not be activated if ISA server is enabled.
Also see: MS KB 947773


Compound TCP (CTCP)

Compound TCP is a newer congestion-control algorithm available in Vista, 2008 Server, and via hotfix in 2003 Server, or even XP (64-bit).  CTCP is a considerable improvement over the traditional slow-start and congestion-avoidance methods, especially over high-speed internet connections. CTCP attempts to maximize throughput by monitoring delay variations and packet loss. It also ensures that its behavior does not impact other TCP connections negatively. We highly recommend enabling this setting.

For Windows 2003/XP, to set CTCP, in the Windows Registry, navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
TCPCongestionControl=1
(DWORD value, 1=enable, 0=disable)
Recommended: enabled

See also:
MS KB949316 - Hotfix for Windows 2003 Server and XP (64-bit).
MS KB947775 - Hotfix for Windows 2003



Checksum Offloading

This NDIS 5 setting allows for reducing CPU load by offloading some tasks required to maintain the TCP/IP stack to the network card. Theoretically, Widnows should automatically detect capable network hardware.

The tasks offloaded are as follows:
- TCP/IP checksum calculation - each packet sent includes a verification checksum.
- TCP/IP segmentation - also known as "TCP Large Send" where Windows sends a large amount of data to the network card, and the NIC is then responsible for dividing it according to the network MTU. Experimental feature, not enabled by default
- IPSec Encryption cyphers and message digests - provides encryption of packets at the hardware level.

To change the checksum offloading in the Windows Registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
DisableTaskOffload=0
(DWORD value, 0=enable offload, 1=disable offload, default not set)
Recommended: leave at default unless experiencing problems.

Note: Checksum offloading should not be activated together with the Windows Firewall.
Also see: MS KB 888750, MS KB 904946, MS KB 936702



References

MS KB 912222 - The Microsoft Windows Server 2003 Scalable Networking Pack release
MS Whitepaper - Introduction to the Windows Server 2003 Scalable Networking Pack
The Cable Guy - Scalable Networking Pack






  Post your review/comments
    rate:
   avg:
News Glossary of Terms FAQs Polls Cool Links SpeedGuide Teams SG Premium Services SG Gear Store
Registry Tweaks Broadband Tools Downloads/Patches Broadband Hardware SG Ports Database Security Default Passwords User Stories
Broadband Routers Wireless Firewalls / VPNs Software Hardware User Reviews
Broadband Security Editorials General User Articles Quick Reference
Broadband Forums General Discussions
Advertising Awards Link to us Server Statistics Helping SG About