Optimize Windows Server TCP/IP settings

When you are installing windows Server 2003 from the box, you should always realize that the TCP settings used might not be optimal for the network environment in which the server was installed. The default settings used by Windows are optimized by the windows OS and will ensure a stable and sure data flow, but in some cases these settings can be optimized using a series of registry settings.

Because I got tired of “searching” for these settings over and over again, I though I might as well share them with you guys after relocating them on the internet.

Here is a list of suggestions that you might want to look into šŸ™‚

Most of these settings do not exist by default and need to be created manually. Please read the description of these settings thoughtfully before applying them, and revert the setting if a performance decrease is realized. And, (very obviously) always backup the registry settings before attempting any changes to them, you can use the export feature from regedit to create a backup.

TCP Window size
Defines the number of bytes that can be send between TCP acks. The higher it is set, the less ACKs will be send over the network, but the more likely a transmission timeout will be on the client side, because large data transmissions will require more time to be send.

Large TCP window scaling
Starting from Win2K support for Large Windows Scaling was added. This setting allows windows to dynamically calculate even bigger Window sizes as described in the TCP Window Size setting above.

TCP Connection Retransmissions, TCP Data Retransmissions, TCP Num Connections, TcpTimedWaitDelay
These setting configures the ammount of {type} requests that will be send before giving up. Tweaking these settings might be usefull with specific types of connections for example with slow WAN/PSTN connection. No recommendations can be given for these settings, but they need to be tweaked by design.

(PMTU) Discovery
Also “Path Maximum Transmission Unit Discovery” is a setting thats enabled by default. In some special cases you might want to disable this setting to rule out MTU issues in any network path. Setting this key to 0 will disable the PMTU behaviour of windows and will force windows to use a default MTU of 576Bytes.

Key: HKLM\SYSTEM \CurrentControlSet \Services\Tcpip\Parameters
Value: EnablePMTUDiscovery
Data type: REG_DWORD
Range : 0 – 1


It is also possible to limit the MTU based on a given interface. This can be done using the following setting.
Key: HKLM\SYSTEM \CurrentControlSet\Services\Tcpip\Parameters\Interface\{int_id}
Value: MTU
Data type: REG_DWORD
Range: 0x44 (68)
Default: 0xFFFFFFFF use PMTU

Any suggestions?
Leave a hint for future readers šŸ™‚

For this article I used IBM redbook, Google, Technet and Wikipedia to rediscover all these nice settings.
Thank you guys 2 for publicly sharing this info šŸ™‚


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s