How to fix Vista's network bottlenecks

Send to a friend Print

Help more people find out about this story

Del.icio.us
StumbleUpon

James Bannan27 September 2007, 1:12 AM

Is your Vista machine lumbering around on the network, overtaken by zippier XP-based systems? You're not alone, but luckily there's an easy way to fix it.


As much as I enjoy using Vista, I’ve definitely noticed that in some networking activities, it definitely seems to struggle. Particularly compared with Windows XP.

For the most part it’s not a problem – I just assumed that Vista’s beefy network stack was responsible, and made a mental note to fix it at some point. And then forgot.

But recently I encountered a really frustrating problem. Using Remote Desktop Protocol (RDP) to connect from a Vista Enterprise machine to a Windows 2003 server, the performance was so woeful that I was starting to worry whether there was a problem with the server.

As it happens, my fears about the server were unfounded, but the thought that Vista’s networking stack was to blame turned out to be correct. The Next Generation TCP/IP stack in Windows Vista supports something called Receive Window Auto-Tuning. This is nothing to do with the RDP “window” you see on the screen, but rather a TCP buffer which TCP/IP clients use to ensure smooth transmission.

Essentially, the TCP receive window is the amount of data that is sent in one chunk before waiting for an acknowledgement to come back from the machine at the other end. It's one of the trickiest things to optimise in TCP/IP because you need to balance throughput with reliability -- if you transmit too much data in one go, if there is an error in the data flow, the whole lot has to be sent again. Windows XP was originally tuned for dial-up connections (lots of errors, so very small chunks of data were sent) but this caused performance problems on high speed broadband networks.

In XP SP2, Microsoft increased the receive window value for better performance on broadband, but it's still not optimal for many situations.

Vista is supposed to improve on this situation: Vista has a new feature called "Receive Window Auto-Tuning" which constantly monitors bandwidth capacity and latency, and adjusts the TCP window on the fly for any given situation. It also enables TCP window scaling – by default the maximum TCP window size if 65,535 bytes, but window scaling allows a client to advertise that it’s optimised to receive a bigger window than this – it’s designed to prevent TCP window bottlenecks in high-bandwidth environments. Vista’s maximum advertised TCP window is 16MB.

Therefore, in a given situation a Vista machine will typically receive much more network data than a Windows XP, which can result in network spiking. This isn’t necessarily a problem in itself, but it does increase the importance of actually using TCP/IP QoS (Quality of Service), which is installed and enabled by default in Vista.

The problem with Vista's new-fangled network stack

All this automatic tuning of the Vista network stack sounds great in theory, but the problem is that some clients don’t support TCP window scaling, or do but don’t have it enabled. Additionally, some firewall products also don’t support it. In either scenario, the result is dropped packets which affects network performance horrendously -- your traffic is literally dropping into a black hole, never to be seen again.

So if you’re experiencing excessive network lags on your Vista machine, especially compared to non-Vista machines, it might be worthwhile disabling auto-tuning. Do this by opening up an administrative Command Window (right-click, Run as administrator), and type in the following command:

netsh interface tcp set global autotuninglevel=disabled

You may also need to type in:

netsh interface tcp set global rss=disabled

The changes take effect straight away, with no reboot needed. Bear in mind that this is a global change, so it may really be worth your while to sit down and nut through your network's QoS settings to get things running happily without disabling auto-tuning.

Personally, I needed to RDP to that server as a matter of urgency, and disabling auto-tuning definitely did the trick.



Post your comment



Reader Comments

RSS feed Email alert

Rob M:

Actually guys, the biggest difference-maker you'll find in speeding up your RDP connections, is if you go to the experience tab (under options), and uncheck bitmap caching. I know, it sounds backwards to NOT cache something, but trust me, you'll REALLY notice the difference. (I leave font smoothing, composition and themes on for everywhere i RDP to regularly, some being 2000 server boxes, some 2003 server, and vista at home...if youre not using themes, it'll just ignore your setting.)

Also, if bandwidth is an issue, try turning your color bits down under the display tab. RDP 6 finally introduced 24 and 32-bit color scheming, but if you're trying to connect to a server, full-spectrum graphics are probably low on your requirements when you connect. ;)

Anonymuos:

Hey James, as far as RDP is concerned, try disabling ClearType and then try to connect. It results in a lot of speed increase.

Anonymous 1:

"Try disabling ClearType". I am new to Vista and find the Networking so bad, that I cannot use it. You say disable ClearType; can Anonymous please explain how to do this, it might be worth trying.

Dale:

This is really old news. This tip was around soon after vista launched.

zasfasef:

If we run the same two commands with the enable option, does it bring it back the way it was before?

rthomp:

"Do this by opening up an administrative Command Window (right-click, Run as administrator), and type in the following command:"

What is meant by this? i tried typing this into CommandWindow.exe and it says NETSH is not recognized as an internal or external command. Where is this supposed to be typed?

Nick MK-Master:

Open the 'Pearl/Start' button and go into the 'Run/Search' button
type cmd and HOLD ctrl+shift when you press enter.

Then allow the program to run and enter the string the APC has provided AS IT IS provided, That should fix your problem

Nick

anonymous user Anonymous user

This month in APC

Best HDTVs revealed!

Tags