Skip to content

Vista Remote Desktop Locking up (slow performance, choppy, Receive Window Auto-Tuning etc)


My Remote Desktop was still locking up after each mouse click!!.

I noticed a few weeks ago, that when ever I connect to a specific server, I got really crappy performance with remote desktop (only while using the windows vista operating system) So I logged on at the console of the server.. it seemed fine! no CPU usage, nothing abnormal in the processes running…

did a bit of looking and found a Microsoft Knowledge base article http://support.microsoft.com/kb/934430 and this

http://blogs.msdn.com/wndp/archive/2007/07/05/receive-window-auto-tuning-on-vista.aspx

Seems the fix is just running the following from the command line!

netsh interface tcp set global autotuninglevel=restricted

One of the many cool new features on Windows Vista, Receive Window Auto-Tuning enables the networking stack to receive data more efficiently than on XP. Auto-Tuning allows the operating system to continually monitor the routing conditions (bandwidth, network delay, application delay) and configure connections (scale the TCP Receiving Window) so as to maximize the network performance.In some high bandwidth, high latency links, we have seen SMB performance improvement up to 20 times!

In every TCP packet there is a “window” field, which informs the receiver how much data the sender can accept back. This window controls the flow by setting a threshold on data kept “in flight” and prevents overwhelming the receiver with data that it cannot accept.

The TCP window field is 16 bits wide, allowing for a maximum window size of 64KB, which used to meet requirements of many older networks. Nowadays, however, network interfaces can handle larger packets and keep more of them in flight at any given time. Thus, a larger TCP window has become necessary; especially on high-speed, high latency networks. To fill such a long, fat pipe and make use of the available bandwidth, the sending system can often require very large windows for good performance.

The solution to this demand is called “window scaling”, described back in 1992 in RFC 1323. It introduces an eight-bit scale factor, which serves as a multiplication factor for the window width. After the factor has been negotiated, window values used by that system on a given connection will be shifted to the left by that scale factor; a window scale of zero, thus, implies no scaling at all, while a scale factor of six implies that window sizes should be shifted six bits, thus multiplied by 2^6 = 64. Now a window greater than 64KB can be easily expressed (e.g., 128KB) by setting the scale factor (e.g., 6) and keeping the window field under the original 16 bits (here, 2048).

3 Comments Post a comment
  1. ….((( I had brack my PC ((((

    2010/11/07
  2. It’s in reality a nice and useful piece of information. I am happy that you just shared this helpful info with us. Please stay us informed like this. Thanks for sharing.

    2013/03/06
  3. Hi, Neat post. There is an issue with your web site in internet explorer, would test this? IE nonetheless is the market chief and a huge portion of people will pass over your great writing due to this problem.

    2013/03/07

Leave a comment