Vista, Firefox 2, Slow Network

I had recently been experiencing a frustrating problem with timeout errors when connecting to some web sites (my blog for instance) within Firefox 2.0 on my IBM Lenovo Thinkpad (X60), running Vista RTM.

For the last couple of weeks I have been trawling the Internet looking for anyone else suffering the same symptoms, and came across the following forum thread:

http://forums.mozillazine.org/viewtopic.php?p=2637335

I tried all the suggestions mentioned and was still none the wiser as to why I could not access my blog from FF2. Yet, IE7 worked, FF1.5 + Vista worked, and FF2 + XP worked (head scratching).  Further more, I started experiencing similar timeout errors in Windows Live Writer when posting to my blog from Vista.

When connecting from the office LAN, using the same laptop, the timeout problems go away – so I wondered if my WRT54GS Linksys router was at fault. After upgrading the firmware, nothing changed – sigh.

I finally came across a blog by Andy, who found a solution to my problem –

http://www.neillans.co.uk/?p=165

The synopsis is that their appears to be a problem with Vista being too smart for it’s own good, with the addition of the “Receive Window Auto-Tuning Level” setting in the TCP/IP stack.  Disabling this setting fixed the timeout problem in FF2 and Windows Live Writer on my machine.

Make sure you’re running as an Administrator (can open a command window as Administrator) and execute the following command at the prompt:

netsh interface tcp set global autotuning=disabled

Changing “disabled” to “normal” will re-enable this setting, should you want to turn it back on again.  The following command will list the status of the current TCP settings:

netsh interface tcp show global

Thanks Andy, you’ve stopped me going bald.

Update 2/7/2007:

http://support.microsoft.com/kb/224829

It appears that some routers are having problems with “TCP Windows Scaling.”  Essentially, the TCP spec limits a TCP packet to 64KB, since faster networks allow for more data transfer, 64KB is a tad on the small side.  TCP windows scaling involves negotiating a larger packet size between the client and the server during connection by the client sending a special SYN packet and waiting for an acknowledgment.  Problem is, some routers (mine for example) strip the SYN acknowledgment packet.  The sever thinks that scaling is enabled and starts sending data back, meanwhile the client waits for it’s SYN acknowledgment that it never receives, and eventually times out.

By default Windows 2003 does not send Windows Scaling SYN ack packets unless the client requests scaling (known as auto-tuning). Vista, now uses auto-tuning in it’s TCP stack, where as XP did not.

So why does IE7 work? Windows scaling requires a scale factor to determine how much extra data can be squeezed into TCP packet (typically 64K * 2 ^ factor).  IE7 forces a scale factor of 2, which seems to work through my router, whereas other applications, such as FF2 use a default factor of 8.

Turning auto-tuning off on Vista is a quick fix but not ideal. Replacing my router with one that does not strip out the SYN packets is another quick fix.  Since other readers of my site may be using a buggy router and an installation of vista the only proper fix is to prevent the server from sending SYN packets.  The attached registry file will disable auto-tuning on a Windows 2003 server.

Note, turning off auto-tuning on the server will not produce undesirable performance.  Up to recently, most (if not all) clients connecting to Windows 2003 did so without requesting auto-tuning.  By default, Windows 2003 will not enable auto-tuning unless it is requested by the client – Vista!!  Disabling auto-tuning with this registry change will assume XP like behavior.

Current Mood:   relieved[tags:Windows Vista]

59 thoughts on “Vista, Firefox 2, Slow Network

  1. http://

    Nice post! This came up as one of the first result when looking on google for “firefox slow vista”. Saved me a lot of time!

  2. http://

    I also have been experiencing this issue. Thanks for the post! I also noticed that some other applications were affected. AVG antivirus had issues downloading updates until I disabled the autotuning.

  3. Carl

    Rob, Thanks! I was the one that opened the Mozilla forum article. The solution, however, fixes the problem client-side. A bigger problem remains an issue because I host several sites that are unusable on Vista RTM. Your problem remains also because you can’t expect everyone who visits robgarrett to disable autotuning.

    What is the root cause of the problem? Is this a Firefox bug or a Vista bug? Is there anything I can do server-side to disable any tuning-negotiation?

  4. robgarrett

    Carl,
    Yup you’re absolutely right, there has to be a fix for the server-side, if anyone knows of it I’d be a happy man to find it out.

    I thought I read somewhere that the problem is something to do with Linksys routers (I have one at home). When I connect to the office network (same machine and software) I can access my website without disabling auto tuning.

    If you can shed any more light please let me know.

    Thanks.

    R.

  5. http://

    Hi,

    I was experiencing the same exact problem with both FF and TB.
    I had it with the vista ultimate release version in the MSDn package at the office where we have a CISCO router… I guess the MS guys still have a lot of work on this!

    But thanks for the post!!! It rescued me

  6. http://

    Hope! I have hope now.

    I spent the better part of three hours today trying to figure out why a brand new Dell XPS with Vista Business on it could not connect to the internet wirelessly. The computer was getting an IP address from the DHCP Server(including the correct default gateway, dns, etc), could transfer files between any of the computers on the network, could ping the router, but could not access the internet. If I plugged into the wired ethernet, no problems. If I connected to another wireless network it worked. Will give this a shot asap and leave my results. Thanks for the info and links.

  7. Ian Quigley

    Hi,

    Im having the same sort of problem, but using the netsh command is having no impact on performance. I’ve just bought a new decently spec’d laptop and IE7 and FF are painfully slow.

    Using a local ISP speed test (in a slow IE7) Im getting 1.5Mbps (average for Ireland!). Video’s in YouTube are downloading fast than real time – yet page loading takes ages!

    My network speed seems fine – it’s just IE7 and FF which are slow.

    I’ve removed IPv6, turned off Phishing, Protection and anything else I can think of. A courier is picking up my laptop on Monday and taking it back to the place I bought it – if I can’t get this fixed?

    GRRRR!!!!!

  8. Ian Quigley

    Hi,

    Im having the same sort of problem, but using the netsh command is having no impact on performance. I’ve just bought a new decently spec’d laptop and IE7 and FF are painfully slow.

    Using a local ISP speed test (in a slow IE7) Im getting 1.5Mbps (average for Ireland!). Video’s in YouTube are downloading fast than real time – yet page loading takes ages!

    My network speed seems fine – it’s just IE7 and FF which are slow.

    I’ve removed IPv6, turned off Phishing, Protection and anything else I can think of. A courier is picking up my laptop on Monday and taking it back to the place I bought it – if I can’t get this fixed?

    GRRRR!!!!!

  9. Ian

    Update! Yeaaah! I fixed it. I removed the phishing filter from McAfee. In fact, I think I’ll un-install McAfee for good measure.

  10. http://

    Excellent, I too was having probelms with my internet at work. At home it worked fine but on the office network I couldn’t check emails or browse websites other than google or hotmail. I kept getting timeouts.

    This seems to have solved this issue and of course has made me look cooler at work becauseI usurped our “tech” guy who simply blamed firefox and thunderbird for the issues. Damn MS fanbois.

  11. http://

    Well looks like this was really helpfull aside from Vista not allowing me to disable. Odd thing is this is the admin account im attempting it on and for whatever reason it says “requires elevation”.. So do I have to life my computer up? -_- This is a neverending agravation, wish I stayed with XP. Why must windows continually release new products that treat the user more and more stupidly?

  12. robgarrett

    Josh,
    Right click the “Command Prompt” icon under Accessories and select “Run as Administrator”.

    Elevation is a new thing in Vista – the Administrator no longer has rights to do what he/she pleases without elevating to a higher state. Elevation aware applications automatically prompt for consent (or credentials if non-admin) but command prompt applications do not. Running the command prompt as elevated (denoted by the shield icon) will guarantee that you can tweak auto-tuning.

  13. http://

    Hi, i tried to use this fix, after i ran the command, console answered that it was ok, but the problem i had, remains: I’ve a laptop with Vista home premium, and when i tranfer files from another computer, the tranfer is really slow (about 1/2 MByte/s), but the protocol i support is IEEE 802.11g, so i could transfer about 3 times faster.
    Someone could help me?

    Thanks a lot
    Marco

  14. http://

    IE7 is not affected as it has an “initial scaling factor of 2” whereas Firefox, Opera etc.. all use 8. BUT M$ will probably change this so that IE7 will increase this to 8 for IE7. See http://www.microsoft.com/technet/community/columns/cableguy/cg1105.mspx#E2B

    Just to let you know that Fedora Core 6 has the same exact problem.

    To turn it off in Fedora Core 6:

    Open up a terminal (Applications –> Accessories –> Terminal)
    Write: “su”, then put your password in.
    This will get you into admin mode
    Write: “gedit /etc/rc.local”
    This will open up gedit

    At the bottom of the gedit file (it will probably be quite empty) copy and paste the following:

    echo 256960 > /proc/sys/net/core/rmem_default
    echo 256960 > /proc/sys/net/core/rmem_max
    echo 256960 > /proc/sys/net/core/wmem_default
    echo 256960 > /proc/sys/net/core/wmem_max

    echo 0 > /proc/sys/net/ipv4/tcp_timestamps
    echo 1 > /proc/sys/net/ipv4/tcp_sack
    echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

    Save the file and close. Close the terminal. Restart computer

  15. http://

    I’ve found the server side solution to this problem:<br><br>

    On the server where the websites I have hosted which weren’t working, it turned out to be a firewall with an out of date firmware. The firewall was running 3.1.1 and was upgraded to 3.2.3. This was the resolved issue in the release notes:<br><br>

    “45187: Symptom: The SonicOS management UI has display problems due to dropped traffic that is dependent on the RFC 1323 TCP Window Scale Option. Condition: Occurs when the SonicOS management UI is running on a system with Microsoft Windows Vista, which uses the Window Scale option to negotiate a larger window than permitted in RFC 793.”<br><br>

    I still can’t access your website from Vista or RC6, Rob, so why not try this firmware update on the firewall on your server….<br><br>

    Thanks for your post – saved a lot of frustration!

  16. Jerry L.

    I made this change to fix an issue with accessing my school’s printers/network (it appears to be an issue with SAMBA as well), and now the “connection status” icon in the taskbar tray never lights up. It’s rather odd.

    I’m going to reboot again, see if that has anything to do with it. It’s rather odd.

  17. http://

    Excellent Post ! Lotus access was very slow while accessing via internet. By disabling auto tune gave me sleep after 3 days !

  18. http://

    You are all touching on the right stuff. It is a problem that is brought to the fore-front since TCP windw scaling (RFC 1323, circa 1992) is enabled by default in Vista. Makeing changes to the client and/or server by turning off TCP window scaling can help as a stop gap, but will not resolve all the issues.

    The “root cause” of the problem is the firewalls/NAT devices in-between. MOST, not all, of the cases will be the route most people have at home. Since it most likely does NAT for a home user (changes the source IP frome a private IP such as 192.168.1.10 to the address assigned by their ISP) it will have to rewrite TCP headers as the leave the router. If the router does not understand the RFC 1323 option (TCP Window Scaling) it will set the scale factor to 0. This messes up the scaling and effectivly reduces bandwith. The larger the scale was intended to be, the worse it will be.

    If you are experiancing this problem, you will likely need to update the firmware on your home router/NAT device. Disabling TCP Window scaling will also do the trick in many cases. It is also important for the devices Proxying or NAT’ing traffic at the server side to be up-to-date as well.

    Linux users started seeing these issues too, as TCP window scaling was enabled by default a few years ago. Here is a discussion that has a little more information.

    http://lwn.net/Articles/92727/

  19. robgarrett

    Thanks Jason, looks like I may have to replace my aging Linksys WRT54G v1.0 because I don’t think there are any more firmware updates for this version 🙁

  20. http://

    hi from me,
    I had the same problem, so I logged in with administrator account, I opened with cmd a command promt window and after entering the command, I received the following answer:
    “set global command failed on IPv4. The requested operation requires elevation”

    Did I make something wrong? Or do i have to do something else in order for the command to work?

  21. robgarrett

    Paris,
    Logging in as an Administrator on Vista is not the same as running elevated. You need to run the command prompt as elevated by right-click shortcut and “Run as Administrator.”

    If you use the “Run” command from the start menu then there should be a message underneath saying that the run operation will run as elevated.

    Just running the command prompt from the short cut in the accessories sub menu is not enough to gain elevated rights.

    R.

  22. Elliot Moore

    Hi,

    On the server end, check to see if your webserver or NAT/Firewall is running with SYN Cookies enabled.

    SYN Cookies is not compatible with TCP Options.
    http://en.wikipedia.org/wiki/SYN_cookie#Drawbacks

    Our firewall did not handle this well.
    We disabled SYN cookies on our firewall, problem went away.
    Touch wood we have not had the full benefit of running with SYN cookies…

    e.

  23. http://

    WOOOOOOOO, millions of thx!!! had to do it as admin, but IT WORKED!!! Awesome dude!!!

  24. http://

    Have No idea! I ran NETsh and it successfully took. I removed the trial Norton software off the machine. I disabled the fishing filter and ran the filter fix updated from Microsoft. I’ve disabled IPv6 and reinstalled my NIC. My router is a linksys WRT54G … my Nice is a Linksys Wirelss-G with speedbooster. I’m on a laptop with XP and it works fine. I have a nintendo Wii and the wireless internet works fine! On my new PC with a E6300 proc and Vista Home Premium it seems doomed! Nothing suggested all over the web has worked. Weird thing is it was working great when I first got it about a month ago. Then one day limewire and bit torrent were downloading at 1kb/s :O

    driving me nuts… if you’ve got any suggestions I’ll try it.

  25. http://

    I figured it out! Phew! After days of pain staking slow internet torture and online lag I solved it! I tried every suggestion I could find out here on the web. I’m sure Phishing does take a bit of time and I did run the autotuning disable. I did turn off Ipv6 but it didn’t fully speed up until the last thing.

    I had seen this elsewhere; I needed to adjust my router and switch the broadcast channel. I don’t know why that would fix this problem, but it did. The reason I had held off on doing it was because I hadn’t changed the router settings in a couple years and forgot my password. So I had to reset it back to factory defaults, reconfigure my network and then adjust the channel settings.

    Following what you’ve suggested here, and adjusting my broadcast channel to a higher frequency it is now smoking fast! Thank God, it’s about time.

  26. antony

    hi there. i have recently just got a new acer with windows vista home premium.
    i would like to make it download mega fast but i dont know what to click on!!!
    its realyy slow at the momemnt and its driving me mad

    okiee iv done that disable autotuning;.

    now id like to do what mr tekshow said aswell.
    how do i change router settings and channels.
    id like to know ‘where to click’ so it can all be adjusted.
    so i can download and sendfiles with ease. because i really dont know how to change the router settings, it not even on the vista ‘help’
    please help.

    kindst regards

  27. http://

    For those of you using the Realtek RTL8139/810x Family Fast Ethernet NIC, and if your are having massive internet download slowdown and file transfer slowdown in Windows VISTA, your problems are over: One needs to update the driver. Basically very simple, it just took me two days to figure it out and find the right driver. All the blogs and websites talk about disabling this, and tweeking that. I tried all that crap and it didn’t work. No one suggested to install the following driver at least that I could find and if the folks who are trying to solve this problem are like me, I know, I know you want to throw your computer out the window, and you are sitting there saying, Why Why Why didn’t I wait to do this upgrade. Just Google —> “WinVista_6104_NIC_8139-20070620.zip” and you will find it.
    Install the new driver and just like magic your internet speeds and file transfer speeds should once again be smokin, of course your milage will vary dependent on the speed of your ISP and network. Whew!

  28. http://

    D.Darby thankyou sooooo much
    ive been trying to sort this out for ages
    i tried everything and gave up
    just today i had another look and found your post

  29. http://

    Hi,

    I changed the setting. However, we have 2 accounts on the machine — mine (admin) and my wife’s (not admin). mine runs fine, my wife’s gets a lot of ‘not responding’ for firefox. i ran firefox as admin, and it runs fine (with all of my settings, not my wife’s). anybody know why it works with elevated priveledges, but not with normal ones?

  30. http://

    Thanks Rob, and Andy. I was about to wipe Vista and go back (/forward?) to XP
    😉

    Don’t throw out your WRT54g just yet – try one of the many public firmware updates for it and see if that helps you. e.g. http://www.HyperWRT.org or http://www.dd-wrt.com

    Also, another way to run the command with elevated priviledges via standard cmd prompt is:

    runas /noprofile /user:YOURCOMPUTERNAMEyouraccount “netsh interface tcp set global autotuning=disabled”

    Does anyone have this working by using the autotuning=high mentioned on Andy’s site???

    Thanks again..

  31. james

    recently purrshace a Acer p4 refurblished from tiger direct, seem someone applid the aministrator account and then left user diasble, so that whn we try to boot up vista we go directly to the user password screen.n In checking system events it showed there was a failed launch, whatever that is. so now i am seeking informatiion in how to by-pass this user screen or change it so that i can create a user, any help will be use ful

  32. http://

    Hi Everybody
    I am Sambhunath , i too faced the same problem(Vista Slow Network Transfer)
    Actually the problem was occurring While connecting the Vista laptop(DELL 1720) to the port where XP SP2 Laptop(compaq) was connected .while using wireless(Wifi) it is working fine

    and the XP laptop(compaq)are not facing any problem with the same port where dell is having the problem

    SO I RESOLVED IT BY CHANGING THE NETWORK CABLE I REPLACED THE OLD ONE WITH D-LINK CABLE

    So i concluded that DEll’S network card(Broadcom) is not compatible with the local cable and it works fine with D-link

  33. robgarrett

    Hmmm, interesting that the cable caused you issues – did you have general internet problems with the old cable?

    Update: I have since resolved my problem permanently by upgrading the firmware of my WRT54GS linksys router (HyperWRT).

  34. http://

    After running “netsh interface tcp set global autotuning=disabled” and rebooting I lost all connections. Luckily I still had this page in cache so I could turn it back to ‘normal’ 🙂

  35. http://

    The set global autotuning=disabled solution also worked to fix connection error 81000306 in Windows Live Messenger.

    I’m using a Netgear DG834G router and tried updating firmware to the latest version and a couple of earlier versions for good measure. Firmware made no difference. Disabling autotuning allows Messenger to login straight away.

  36. http://

    Hi,

    I ‘m running Vista and FF2, and the command is not working for me, it keeps saying that NETSH is an unknown program or whatever. Please not that I’m running Vista in french.

    Thanks in advance.

  37. http://

    I am trying to do the command, i have vista on my hp pavilion computer and only one user setup as an administrator, but when i enter that command its saying that it failed because the requested operation requires elevation?? i thought administrator was the highest??? any ideas??

  38. robgarrett

    Matt,
    Right click “Command Prompt” in Accessories anf then “Run as Administrator”. Just because you’re logged in as an Administrator does not mean you have elevated trust.

    Regards.

    Rob.

  39. http://

    Rob,

    After reading your article my downloadspeed with Windows Vista Prem. Home went from 545 kb/sec to 5299 kb/sec. Thanx.

  40. http://

    Hi,

    I’m having a slight problem. I am running in admin mode yet i cannot change the command prompt to run as administrator. Is there any way i can fix this?

  41. http://

    I had the same problem and found another solution to the problem.

    I couldn’t load Facebook.com and a few other sites, but after turning off Network.http.pipelining in Firefox, the problem went away.

    Steps :

    1. Open Firefox
    2. type about:config
    3. search for Network.http.pipelining
    4. Make sure it’s disabled
    5. Restart Firefox

  42. fadi

    I was having almost the same problem… I host my sites myself and a number of them would stop responding while loading images (when I used firefox)

    The same sites opened up perfectly well in IE7 and Google Chrome

    Firefox fix I came across:

    1. In firefox goto about:config
    2. search/filter ‘pipelining’
    3. disable pipelining !!

    Restart firefox and now the same sites (specially the images in them) load easily !

  43. http://

    First, thank you all. Not just you Rob, because I found the netsh earlier and googled my way here for some deeper inside thoughts. IE en FF problems solved by switching router channels on my LIVEBOX. After that my Vista64 connection did not make it past the router. The Diagnose and repair setting fixed that but: IT ALSO UNDID THE AUTOTUNING DISABLE setting. So after a peek in the interface (netsh interface tcp show global) I saw what Vista64 did and again disabled autotuning. Works like a charm!

    I had the problem before and after 2 weeks of trying to fix my slow internet I did a clean install of Vista64 because I thought some virus got the best of me. When the slowness hit me again I came across your site and.. well I am happy!

    But I am still wondering. Why would this problem start after weeks or months of fast internet? Any thoughts?

  44. http://

    I’m a network engineer but believe you me, this problem was driving me nuts
    Each time I format and reinstall my vista, xp or linux, Firefox works well but after a while, the network timeout thing starts.
    Thanks for that tip, it is greatly appreciated
    One never stops learning

Comments are closed.