Improve TCP/IP performance in W2K registry
Published: 08 Oct 2002 14:24 BST
Keeping a packet alive
We've all seen connections time out when attempting to connect to a slow Web site or other slow resource. The connection times out because TCP/IP's TTL (Time To Live) counter expires.
When you transmit a packet, TCP/IP starts with a predetermined TTL value. The TTL counter is decremented by one every time a packet passes through a router or when one second ticks by. If the packet takes too long to get to its destination or to be acknowledged by the recipient, or if the route to the destination is too far away (too many hops), the packet will expire before being received.
If you have frequent problems with packets expiring too quickly, you can set the TTL to a higher value. The TTL is controlled by a registry key called DefaultTTL. If you want to use this key, you'll have to create it at:
HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Services\Tcpip\Parameters
If you choose not to create the DefaultTTL key, Windows will use a default value based on the version of Windows you're using. Windows NT 3.51 and earlier versions have a default TTL value of 32, while Windows 2000 and higher have a default value of 128. If you create this key and set your own TTL value, the value you set should never be lower than the defaults, but it can be as high as 255.
Increasing performance over low-bandwidth connections
TCP/IP was designed in the 1960s to function over long distances and low-bandwidth links. Although available bandwidth has increased dramatically since then, so has the amount of data being pushed through it. Even 40 years after TCP/IP's birth, low bandwidth is still an issue.
You can get the most out of your available bandwidth on a low-bandwidth link by minimising the amount of overhead required by the TCP/IP protocol. One way to do this is to increase the window size. Increasing the window size increases the amount of data that can be transmitted before an acknowledgement is required from the recipient. Unfortunately, there's a downside to this approach. If a retransmission is required, a lot more data must be retransmitted. However, when everything is working properly, increasing the window size dramatically improves efficiency.
To increase the window size, create a DWORD registry key called TcpWindowSize at:
HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Services\Tcpip\Parameters
The number you assign to the key reflects the number of bytes that a sender can transmit before requiring an acknowledgement. For maximum efficiency, the value you select should be a multiple of the TCP maximum segment size (MSS). The default for an Ethernet network is 8,760 (8,192 rounded up to an even multiple of the MSS).
Dig a little deeper
Although you can configure basic TCP/IP properties through Control Panel, there are lots of undocumented TCP/IP settings you can modify only through the registry. As you experiment with the various registry settings, be sure to document your original settings. Incorrectly setting any of the registry keys that I've discussed can bring TCP/IP to a grinding halt.
Have your say instantly in the Tech Update forum.
Find out what's where in the new Tech Update with our Guided Tour.
Let the editors know what you think in the Mailroom.





