Avatar billede dustie Mester
08. maj 2009 - 02:30 Der er 14 kommentarer og
1 løsning

Problemer med Vistas netværks hastighed (gigabit)

Hej eksperter! =)

Jeg har et problem med gigabit netværk i Vista. Overførelser går utroligt langsomt. I et forsøg på at finde fejlen har jeg testet med et andet OS for at se om fejlen var i software eller hardware.

Jeg testede med iperf og fik følgende resultater:
Vista <-> Linux = ~250Mbit/s
Linux <->Linux = ~750Mbit/s

Hvis jeg overføre filer over SMB får jeg samme resultat. Jeg har desværre ikke Vista på to maskiner med gigabit net så jeg kan ikke teste mellem to Vista maskiner.

Mit gæt er at fejlen ligger i Vistas nye måde at auto tune net indstillingerne, for hvis jeg ændre på fx. TCP Window Size i iperf under Vista, så får jeg samme resultat som i Linux. Altså omkring 750Mbit/s. Problemet er, at så vidt jeg kan google mig frem til, er der ingen måde at tvinge de indstillinger i Vista i modsætning til i XP. Dvs. jeg kan kun få over 250Mbit/s hastighed i test programmer og ikke i praksis.

Findes der en måde at tvinge Vista til at ændre indstillinger? Jeg har kigget lidt på ting som "netsh interface tcp set global autotuning=" men det så ikke ud til at gøre en forskel overhovedet.
Avatar billede Slettet bruger
08. maj 2009 - 08:17 #1
http://www.ipforum.dk/content/view/19/56/

det er en af kommandoerne

her ligger der et par programmer du skal bruge på eget ansvar men de virker

http://www.speedguide.net/downloads.php

m.v.h
Avatar billede dustie Mester
09. maj 2009 - 09:16 #2
Ændring af autotuninglevel gør ingen forskel på hastigheden. Det har jeg som skrevet allerede testet. congestionprovider har jeg også forsøgt uden held.

Jeg prøver lige patchen og tester igen.
Avatar billede Slettet bruger
09. maj 2009 - 09:23 #3
og du er sikker på du gør det rigtigt med administrator rettigheder.
Internet Auto tuning
 

Dette er et lille tweak, til at optimere hastigheden på Internettet. Vista er per default født med auto tuning, for nogle folk har dette givet problemer, som resulterer i langsommere surfing og brug af P2P programmer (Edonkey, Emule, Bittorrent). Det er derfor en fordel at kende kommandoerne til at ændre dette.
Der findes 3 indstillinger for Auto tuning, disabled, normal og high, Vista benytter normal, hvis ikke andet er defineret. For at bruge dette tweak, startes en command prompt med admin rettigheder op. Følgende kommandoer kan derefter indtastes.
Disabled
netsh int tcp set global autotuninglev=disable
Normal
netsh int tcp set global autotuninglev=normal   (default)
High
netsh int tcp set global autotuninglev=high
Test de forskellige settings og se hvilken der passer dine behov bedst. High er selvsagt den, der giver mest ydelse.


der findes mange flere.

m.v.h
Avatar billede dustie Mester
09. maj 2009 - 09:26 #4
Ja de har da ret i at det ændre lidt dem der har lavet de tweaks men også kun lidt. Med den patch opnår jeg ~300-350Mbit/s. Men altså stadig ikke nær de 750-800Mbit/s jeg får i Linux på samme maskine.

Så vidt jeg har forstået så har Linux også autotuning så medmindre Vistas implementering er direkte i stykker så burde det også virke med det slået til også.
Avatar billede dustie Mester
09. maj 2009 - 09:29 #5
Ja det er som admin =)
Avatar billede Slettet bruger
09. maj 2009 - 09:32 #6
du kunne også prøve at skifte til open dns chvilket jeg altid gør og også under vista -
"
bruger win 7 du gratis kan hente og bruge i 1 år - husk at få et nummer fra microsoft.
hvis du vil prøve

http://www.microsoft.com/windows/windows-7/download.aspx
"
videre med
http://www.youtube.com/watch?v=KGVvzz_twX0

og lidt her

http://www.youtube.com/watch?v=9XwTBAQV320&feature=related
Avatar billede Slettet bruger
09. maj 2009 - 09:39 #7
http://peecee.dk/upload/view/169211

det kunne du prøve

m.v.h
Avatar billede dustie Mester
09. maj 2009 - 09:40 #8
Jeg bruger allerede opendns. Det burde dog ikke have den store indvirkning på mit LAN. Jeg tror jeg holder mig til Vista da jeg har en licens til det og ikke rigtig gider tænke på at det udløber en dag ;)

Ved du tilfældigvis hvordan Vistas autotuning arbejder sammen med en Cisco SLM2008 switch? Eller hvor jeg kan finde ud af om det kan give problemer som dem jeg har?
Avatar billede Slettet bruger
09. maj 2009 - 10:27 #9
jeg går helt ud fra at din driver til netkort er opdateret fordi på min asus skulle bruge den sidste nye for at opnå den fulde hastighed.

til dit spørgsmål så er svaret nej

fandt denne her jeg havde glemt jeg havde den fulder lidt men udmærket læsestof.

Bookmark & Share SpeedGuide.net


Favorites  Digg
Del.icio.us  Google
MySpace  Facebook
Reddit  Fark
Furl  Newsvine
Live  Yahoo MyWeb
Slashdot  StumbleUpon
Technorati  More ...


To: 
From: 
Note: 
     


   

 

Login
 
Username:
  Password:

forgot your password? 




Shortcuts
Broadband Hardware
FAQs
Glossary
SG Broadband Tools
SG Network Tools
SG Security Scan
SG Speed Test
TCP/IP Analyzer
TCP/IP Optimizer





  Home » Articles » Registry Tweaks 



Articles
Windows Vista / 2008 Tweaks
tweaking TCP/IP parameters for broadband internet connections
2008.04.24 10:40 EST by Philip 



Windows Vista introduces a number of new features to the TCP/IP stack, including CTCP, and TCP Window Auto-Tuning. This new implementation works much better by default than previous Windows versions with broadband internet connections, and is able to adjust the RWIN value on the fly, depending on the BDP (bandwidth-delay product). This, however, introduces some problems with older routers and restricts the user from tweaking some of the TCP/IP parameters. Still, there is always some room for improvement, and this article explains known the tweakable TCP/IP parameters.

To enter some of the commands below, you will need to run "elevated" command prompt. To do so, click the Start icon > Run > type: cmd , then click CTRL+SHIFT+ENTER. Alternatively, you can navigate to Start > All Programs > Accessories > right-click Command Prompt and choose "Run as Administrator".



Check the TCP/IP state

To check the current status of the Vista TCP/IP tweakable parameters, in elevated command prompt type the following command:

netsh int tcp show global

You will be presented with something like the following:



The settings, as well as their default and recommended state are explained below. The two most important tweakable parameters are "Auto-Tuning Level" and "Congestion Control Provider".



TCP Auto-Tuning

To turn off the default RWIN auto tuning behavior, (in elevated command prompt) type:

netsh int tcp set global autotuninglevel=disabled

The default auto-tuning level is "normal", and the possible settings for the above command are:

disabled: uses a fixed value for the tcp receive window. Limits it to 64KB (limited at 65535).
higlyrestricted: allows the receive window to grow beyond its default value, very conservatively
restricted: somewhat restricted growth of the tcp receive window beyond its default value
normal: default value, allows the receive window to grow to accommodate most conditions
experimental: allows the receive window to grow to accommodate extreme scenarios (not recommended, it can degrade performance in common scenarios, only intended for research purposes. It enables RWIN values of over 16 MB)

Our recommendation: normal  (unless you're experiencing problems).

If you're experiencing problems with your NAT router or SPI firewall, try the "restricted", "highlyrestricted", or even "disabled" state.

Notes:
- Reportedly, many home NAT routers with a SPI firewall may have problems with enabled tcp auto-tuning in it's "normal" state, resulting in slow speeds, packet loss, and general reduced network performance.
- auto-tuning also causes problems with older routers that do not support TCP Windows scaling. See MSKB 935400
- netsh set commands take effect immediately after executing, there is no need to reboot.



Compound TCP - Improve throughput

The traditional slow-start and congestion avoidance algorithms in TCP help avoid network congestion by gradually increasing the TCP window at the beginning of transfers until the TCP Receive Window boundary is reached, or packet loss occurs. For broadband internet connections that combine high TCP Window with higher latency (high BDP), these algorithms do not increase the TCP windows fast enough to fully utilize the bandwidth of the connection.

Compound TCP (CTCP) is a newer method, available in Vista and Server 2008 (there is also a hotfix available for XP/2003). CTCP increases the TCP send window more aggressively for broadband connections (with large RWIN and BDP). CTCP attempts to maximize throughput by monitoring delay variations and packet loss. It also ensures that its behavior does not impact other TCP connections negatively.

By default, Vista has CTCP turned off, and Server 2008 turned on. Turning this option on can significantly increase throughput.

To enable CTCP, in elevated command prompt type:

netsh int tcp set global congestionprovider=ctcp

To disable CTCP:

netsh int tcp set global congestionprovider=none

Possible options are:  ctcp, none, default (restores the system default value).
Recommended setting: ctcp

It is better to use this newer generation CTCP congestion control algorithm for most broadband connections, we highly recommend it being turned on.



ECN Capability

ECN (Explicit Congestion Notification) is a mechanism that provides routers with an alternate method of communicating network congestion. It is aimed to decrease retransmissions. In essence, ECN assumes that the cause of any packet loss is router congestion. It allows routers experiencing congestion to mark packets and allow clients to automatically lower their transfer rate to prevent further packet loss. ECN is disabled by default in Vista, as it is possible that it may cause problems with some older routers that do not support this feature.

To check whether your router supports ECN, you can use the Microsoft Internet Connectivity Evaluation Tool. The results will be displayed under "Traffic Congestion Test".

To enable ECN, in elevated command prompt type:

netsh int tcp set global ecncapability=enabled

Possible settings are: enabled, disabled, default (restores the state to the system default).
The default state is: disabled
Our recommendation: disabled

More information on ECN: Explicit Congestion Notification (ECN) for TCP/IP



RSS - Receive-side Scaling

The receive-side scaling setting enables parallelized processing of received packets on multiple processors, while avoiding packet reordering. It avoids packet reordering y separating packets into "flows", and using a single processor for processing all the packets for a given flow. Packets are separated into flows by computing a hash value based on specific fields in each packet, and the resulting hash values are used to select a processor for processing the flow. This approach ensures that all packets belonging to a given TCP connection will be queued to the same processor, in the same order that they were received by the network adapter.

To set RSS:

netsh int tcp set global rss=enabled

Possible rss settings are: disabled, enabled, default (restores rss state to the system default).
Default state is: enabled
Recommended: enabled



TCP Chimney Offload

TCP chimney offload enables Windows to offload all TCP processing for a connection to a network adapter. Offloads are initiated on a per-connection basis. Compared to task offload, TCP chimney offload further reduces networking-related CPU overhead, enabling better overall system performance by freeing up CPU time for other tasks.

To set TCP Chimney Offload:

netsh int tcp set global chimney=enabled

The possible states are: disabled, enabled, default (restores chimney offload state to the system default)
Default state: enabled
Recommended: enabled



Manually tuning Registry Parameters

Many of the registry keys tuning TCP/IP parameters from previous Windows versions no longer work in Vista and Server 2008. Below is a list of the few we've confirmed to still work. Note that for changes to these settings to take effect the computer needs to be rebooted. As always, a registry backup is recommended if making any changes, and some proficiency in using regedit is required.

In regedit (Start icon > Run > type: regedit  while logged in as administrator), you can navigate and edit the following keys.

MTU (Maximum Transmission Unit) - the maximum packet size.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{...}\
MTU=1500 (DWORD, entry does not exist by default)

The {....} part of the above path is the unique identifier of your network adapter. You can recognize the correct adapter by looking at it's IP address, if obtaining IP automatically labeled by: DhcpIPAddress=192.168.x.x text value, for example.

We recommend leaving this at default, unless you want to lower it. Vista uses the largest possible packet size for the underlying network by default.

Note: In some test environments, the correct MTU entry may be offset by 8. The 8 offset seems to coincide with the size of the PPPoE overhead. Check the result with the TCP Analyzer.



TCP 1323 Options

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
Tcp1323Opts=1 (DWORD, entry created automatically by Windows when you run the "netsh int tcp set global autotuninglvl=..." command, set to 0 by default).

Setting this seems to have no effect, since auto-tuning uses the TCP 1323 scale factor and changes it on the fly, disregarding this setting. Additional testing may be required to determine it's effect if auto-tuning is turned off. Setting it to 1 is best for broadband connections.



NetDMA

NetDMA enables support for advanced direct memory access. In essence, it provides the ability to more efficiently move network data by minimizing CPU usage. NetDMA frees the CPU from handling memory data transfers between network card data buffers and application buffers by using a DMA engine.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnableTCPA=1  (DWORD, 1 to enable, 0 to disable NetDMA. Value not present by default in Vista)

Recommended setting is 1, a new DWORD value may need to be created if not already present in the registry.





Gaming Tweak - Disable Nagle's algorithm

The tweak below allows for tweaking or disabling Nagle's alogrithm. Disabling "nagling" allows for very small packets to be transferred immediately without delay. Note that disabling Nagle's algorithm is only recommended for some games, and it may have negative impact on file transfers/throughput. The dafault state (Nagling enabled) improves performance by allowing several small packets to be combined together into a single, larger packet for more efficient transmission. While this improves overall performance and reduces TCP/IP overhead, it may briefly delay transmission of smaller packets. Keep in mind that disabling Nagle's algorithm may have some negative effect on file transfers, and can only help reduce delay in some games. To implement this tweak, in the registry editor (Start>Run>regedit) find:

This setting configures the maximum number of outstanding ACKs in Windows XP/2003/Vista/2008:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-id}
There will be multiple NIC interfaces listed there, for example: {1660430C-B14A-4AC2-8F83-B653E83E8297}. Find the correct one with your IP address listed. Under this {NIC-id} key, create a new DWORD value:
TcpAckFrequency=1 (DWORD value, 1=disable, 2=default, 2-n=send ACKs if outstanding ACKs before timed interval. Setting not present by default).

For gaming performance, recommended is 1 (disable). For pure throughput and data streaming, you can experiment with values over 2. If you try larger values, just make sure TcpAckFrequency*MTU is less than RWIN, since the sender may stop sending data if RWIN fills witout acknowledgement.

Also, find the following key (if present):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters
Add a new DWORD value:
TCPNoDelay=1 (DWORD value, 0 to enable Nagle's algorithm, 1 to disable, not present by default)

To configure the ACK interval timeout (only has effect if nagling is enabled), find the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-id}
TcpDelAckTicks=0  (DWORD value, default=2, 0=disable nagling, 1-6=100-600 ms). Note you can also set this to 1 to reduce the nagle effect from the default of 200ms without disabling it.

Notes:
Reportedly, the above gaming tweak (disabling nagle's algorithm) can reduce WoW (World of Warcraft) latency by almost half!
XP/2003 needs hotfix or SP2 for it to work (MS KB 815230)
Vista needs hotfix or SP1 for it to work (MS KB 935458)



References

Windows Server 2008 Network Shell (Netsh) Technical Reference
Microsoft KB951037


RFC 2581
Wikipedia: Nagle's algorithm
Technet: TCPNoDelay
MS KB 311833
MS KB 328890
MS KB 321098
MS KB 321169






  User Reviews/Comments:      rate:    -- rating -- 5 - Excellent 4 - Good 3 - Average 2 - Poor 1 - Very Poor    avg: 


  by Ev  - 2008.07.28 04:01 
I just followed your recommended Vista TCP/IP settings to increase my broadband internet speed and my internet speed has improved significantly already without even closing my browser, doing a clean-up, or restarting the PC. I did not try the registry edits. I think I will leave those for now, unless I experience more problems with my internet speed. So far, it is much better than before tweaking the settings.

Thanks!!!
:-)

 

  by anonymous  - 2008.08.04 06:49 
i tried your techniques but it dont seem to show anything, even after typing the command.

Any other techniques or why is it like that?
hope to hear from you
thanks..

 

  by anonymous  - 2008.08.12 02:40 
Try setting the Fragmentation Threshold to a lower value. By default, for most WIFI cards it is set to 22345. Try setting it to 256 bytes.

 

  by satyre  - 2008.08.18 20:22 
Does Vista have the connection limitation like in XP? IF so, can we use the same registry hack you wrote as below?

"Windows 2000 Web Patch
According to the HTTP specs, only limited number of simultaneous connections are allowed, while loading pages. To increase that number, you can add the following entries to the Registry (they are not present by default):

HKEY_USERS.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings
"MaxConnectionsPerServer"=dword:00000010
"MaxConnectionsPer1_0Server"=dword:00000010 "

 

  by CableDude  - 2008.08.25 22:26 
Good read, Philip. Thanks.

 

  by rami  - 2008.10.01 16:00 
i need an explanation please i type the commands but everytime i enter one it gives me
"set global commands failed on ipv4 the requested operation requiers elevation"
if anybody know anything about this plz e-mail me
fisalawi2222 at hotmail.com
thnx anyways

 

  by Philip  - 2008.10.02 07:57 
The second paragraph in the article explains "elevated command prompt" - it simply means you need administrator priviledges to run those commands. Here is a FAQ about it as well: http://www.speedguide.net/faq_in_q.php?category=42&qid=249

 

     
Related Articles:

The TCP Window, Latency, and the Bandwidth Delay product
Linux TCP/IP parameters reference
Windows 2003 TCP/IP parameters
How to set a Wireless Router as an Access Point
ISPs hijack failed searches 


 

exec. time: 0.61749 s  Copyright © 1998-2008 Speed Guide, Inc. All rights reserved.
Terms of Use | Privacy Policy 

Main Broadband Reviews Articles Forums Information Main Broadband Reviews Articles Forums Information
Avatar billede dustie Mester
09. maj 2009 - 13:04 #10
Ja den guide læste jeg godt da jeg kiggede på patchen. Det gjorde som sagt ikke den store forskel desværre.
Avatar billede Slettet bruger
09. maj 2009 - 15:32 #11
det du nok skulle enable var sådan noget som rss og chimney.

det er meget vigtigt at du tjekker om der findes en opdateret netværks driver til dit bundkort også.

overvej lige det med win 7 fordi jeg har ikke været ude for hastigheds nedsættelse i den og jeg bruger utorrent med fuld knald på.

hvad er det for et bundkort.
Avatar billede dustie Mester
10. maj 2009 - 05:47 #12
Problemet er ikke P2P. Mit internet er jo alligevel ikke på over 250Mbit/s ;)

Bundkortet er et Gigabyte GA-EP45-DS4.

Jeg bruger stort set kun Windows til at spille og når jeg er tvunget til det. Ellers bruger jeg Linux. Så det er ikke en mulighed at skifte til Windows 7 for selvom det er gratis i et år så udløber licensen jo på et tidspunkt i modsætning til min Vista licens.

Jeg har som sagt prøvet den guide. Det hævede hastigheden lidt men ikke til hvad den burde ligge på.
Avatar billede Slettet bruger
10. maj 2009 - 08:15 #13
Avatar billede dustie Mester
10. maj 2009 - 08:34 #14
Jeg bliver lidt i tvivl om du har læst mit spørgsmål ordentligt igennem.

Som jeg skriver:
"... hvis jeg ændre på fx. TCP Window Size i iperf under Vista, så får jeg samme resultat som i Linux. Altså omkring 750Mbit/s. Problemet er, at så vidt jeg kan google mig frem til, er der ingen måde at tvinge de indstillinger i Vista i modsætning til i XP. Dvs. jeg kan kun få over 250Mbit/s hastighed i test programmer og ikke i praksis."

Det jeg har virker fint (hardware, drivers, m.m.). Problemet er hvordan jeg får Vista til at bruge de indstillinger som jeg ved virker bedre end dem det bruger nu. I XP var det blot at ændre i registreringsdatabasen på fx. TCP Window Size. Den indstilling findes ikke i Vista.
Avatar billede dustie Mester
14. maj 2009 - 20:12 #15
Nå, her sker vidst ikke mere. Jeg lukker og prøver andetsteds.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester