1,126 views
IP Autotuning in Vista
At any given time, the amount that TCP can send is governed by three factors: the congestion window, the receive window and the number of bytes available to send. Without using TCP window scaling (which is disabled by default in previous versions of Windows), the maximum receive window a receiver can advertise is 64K bytes. Since the congestion window is usually greater than 64K bytes in high-bandwidth/high-latency networks, the receive window is often the limiting factor if the application is submitting enough data.
In previous versions of Windows, users can work around this problem by setting the TcpWindowSize registry key value. However, TcpWindowSize is a global setting applied to all connections, and it’s often hard for users to know the appropriate window size to set.
To address this issue in Windows Vista, Microsoft has implemented TCP auto-tuning. It enables TCP window scaling by default and automatically tunes the TCP receive window size based on the bandwidth delay product (BDP) and the rate at which the application reads data from the connection. With TCP auto-tuning, the developers have seen 1000% (10x) throughput improvements in internal testing over underutilized wide-area network links.
However, this new feature doesn’t work with clients, servers and devices that don’t support this option. (By default, all of the previous versions of Windows have the option turned off by default), and some OS’es (such as embedded Linux OS’es in wireless routers) don’t like the option at all, and tend to trip over the option …
Have you ever noticed that your wireless Linksys/Netgear/Dlink router stops working after a while, especially when your Vista is copying a vast amount of data thru the wireless router ? If you didn’t experience this behaviour with older versions of Windows, then you may want to disable IP Autotuning. To be honest, as long as you don’t communicate with other Vista computers or Windows 2008 servers, you wouldn’t benefit from it at all… If you’re doing a lot of small transfers, you would even see extra overhead because of the "window size negotiation" process…
So how to your control IP autotuning under Vista ?
To check the current status :
c:\netsh interface tcp show global
Querying active state… TCP Global Parameters |
To disable IP autotuning :
c:\netsh interface tcp set global autotuning=disabled Ok. |
To enable IP autotuning (default Vista behaviour)
C:\netsh interface tcp set global autotuning=normal Ok. |
© 2008, Peter Van Eeckhoutte (corelanc0d3r). All rights reserved.