WordType Designs
Driven To Distractions©
The Sound of One Hand Clapping©


A rchive Date
[ 26-02-2004 ]
Category
[ Information Technologies ]
sub-Categoy
[ Microsoft ]

      [http://www.speedguide.net/Cable_modems/cable_reg_win2k.shtml

      Windows 2000 & Windows XP
      Cable Modems & xDSL Registry Tweaks

      Windows 2000 and XP are built on NT technology and both are generally better optimized for networking than Windows 9x and even NT4. Regardless, both XP and Windows 2000 are still configured with respect to Ethernet rather than high speed Internet connections. Here, you will find specific information on how to optimize the Windows 2000/XP Registry for Cable Modems, DSL, or any similar type of broadband Internet connection.

      Customizing the Windows Registry assumes some proficiency in tuning Windows configuration files. If you don't feel comfortable editing it,  please download the following patch, which will add all the parameters and set all the optimal values in the Registry automatically.

      sguide_tweak_2k.zip - Generic patch for Windows 2000/XP (all versions). To install, extract, then just double-click and reboot.
      sguide_tweak_2k_pppoe.zip - PPPoE patch for Windows 2000/XP (all versions). To install, extract, then just double-click and reboot. This patch is optimized for DSL connections that have PPPoE implemented, only use it in case you know that you are on a PPPoE connection.
      sguide_default_2k.zip - patch that reverts the Windows 2000/XP Registry to its default TCP/IP state, removing all tweaks. To install, extract, right-click, choose "Install" from the pull-down menu, then reboot.

      If you'd rather make the changes yourself, or prefer to experiment with different values to fine-tune your connection, follow the directions for editing the Registry below.

      tri-red.gif (202 bytes)Editing the Windows 2000/XP Registry

      To edit the Registry, you need to use an editor, such as Regedit. As with previous Windows versions, it can be accessed from the Start Menu ( START > Run > type "Regedit" ). Note that most of the values recommended on these pages are not present in the Registry by default and you might have to add them manually. Also, for the tweaks to take effect you must Reboot.
      It is strongly recommended that you backup your Registry before editing. The easiest way to backup your Registry is from within the Registry Editor, just choose "Export Registry File" from the pull-down menu.
      tri-red.gif (202 bytes)Recommended settings for Windows 2000 / XP

      Windows 2000 & XP, unlike NT supports large windows as described in RFC1323 ( the 'RcvWindow' has a maximum value of 2**30 rather than 64K), and includes some other improvements over its predecessors you can use to speed up any TCP/IP transfers. The best settings are listed in red, the descriptions and other options are added to provide you with better understanding and enable you to customize your settings.
      All the following entries, unless otherwise noted should be placed in the Windows 2000/XP Registry under the key

      HKEY_LOCAL_MACHINE\
           \SYSTEM
                \CurrentControlSet

                  
      \Services
                        
      \Tcpip
                              
      \Parameters 

      TCPWindowSize
      The value of TCP Window in the Windows 2000 Registry is DWORD, representing number of bytes, with range from 0 to 2^30. The recommended values (in red) optimize TCP for any high speed Internet connection and work best in most cases, however if you'd like to use a custom value follow these guidelines:

      For best results, the TCPWindow should be a multiple of MSS (Maximum Segment Size). MSS is generally MTU - 40, where MTU (Maximum Transmission Unit) is the largest packet size that can be transmitted. MTU is usually 1500 (1492 for PPPoE connections). To determine the MTU value of your ISP, check out the Advanced Registry Editing section of our site.

      There are three places in the Windows 2000 Registry where you can add the TCP Window parameter.

      HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
      GlobalMaxTcpWindowSize="256960"
      (DWORD, number of bytes) Valid range is from MSS to 2^30.  Add the value as a decimal.
      Note: For best results RWIN has to be a multiple of MSS lower than 65535 times a scale factor that's a power of 2, i.e. 44 x 1460 = 64240 x 2^2 = 256960. If you choose to use a RWIN lower than 65535, you can simply make it multiple of MSS and turn scaling off (Tcp1323Opts=0)


      HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
      TcpWindowSize="256960"
      (DWORD, number of bytes) Valid range is from MSS to 2^30.  Add the value as a decimal. TcpWindowSize can also exist under \Tcpip\Parameters\Interface\<interface> - if added at this location, it overrides the global setting for this particular <interface>.

      Note (10/20/00): Seems MS has found another bug in Windows 2000, the TCPWindowSize should be configured with the global setting (GlobalMaxTcpWindowsSize) rather than this one -
      Q263088
      Note: For best results RWIN has to be a multiple of MSS lower than 65535 times a scale factor that's a power of 2, i.e. 44 x 1460 = 64240 x 2^2 = 256960. If you choose to use a RWIN lower than 65535, you can simply make it multiple of MSS and turn scaling off (Tcp1323Opts=0)
      Tcp1323Opts

      Tcp1323Opts is a necessary setting in order to enable Large TCPWindow support as described in RFC 1323. Without this parameter, the TCPWindow is limited to 64K.

      HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\

      Tcp1323Opts="1"
      (DWORD, recommended setting is 1. The possible settings are 0 - Disable RFC 1323 options, 1 - Window scaling but no Timestamp options, 3 - Window scaling and Time stamp options.)
      Note: Tcp1323Opts="3" might help in some cases where there is increased packet loss, however generally you'll achieve better throughput with Tcp1323Opts="1", since Timestamps add 12 bytes to the header of each packet.
      DefaultTTL

      DefaultTTL determines the time in seconds and the number of hops a packet lives. While it does not directly affect speed, a larger value increases the amount of time it takes for a packet to be considered lost, discarded and retransmitted. A value that's too small can cause packets to distant servers not to reach their destination at all.

      HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
      DefaultTTL="64"
      (DWORD, recommended setting is 64. Other settings that are widely used are 128 and 32)

      EnablePMTUDiscovery
      When set to 1 (True), TCP attempts to discover MTU  automatically over the path to a remote host. Setting this parameter to 0 causes MTU to default to 576 which reduces overall performance over high speed connections. Note that this setting is different than our Windows 9x recommendation.

      HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
      EnablePMTUDiscovery="1"
      (DWORD - boolean, valid settings are 0-->False and 1-->True. Many connections perform better with  this entry at 1, however, if you prefer to set your upstream to send fixed 1500 packets, you might want to use 0 instead). When set at 1, establishing connections and initial transfer speed might slow down a bit, however you will get better throughput if somewhere in the path large packets need to be fragmented.

      EnablePMTUBHDetect
      Setting this parameter to 1 (True) enables "black hole" routers to be detected, however it also increases the maximum number of retransmissions for a given segment. In most cases you'd want to keep BHDetect to 0 (False).
      HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
      EnablePMTUBHDetect="0"
      (DWORD - boolean, valid settings are 0-->False and 1-->True. Recommended setting is 0)

      SackOpts
      This parameter controls whether or not SACK (Selective Acknowledgement) support is enabled, as specified in RFC 2018. SACK is especially important for connections using large TCP Window sizes.
      HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
      SackOpts="1"
      (DWORD - boolean, recommended setting is 1. Possible settings are 0 - No Sack options or 1 - Sack Option enabled).

      TcpMaxDupAcks
      This parameter determines the number of duplicate ACKs that must be received for the same sequence number of sent data before "fast retransmit" is triggered to resend the segment that has been dropped in transit.
      HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
      TcpMaxDupAcks="2"
      (DWORD - range 1-3, recommended setting is 2).
       
      Additional TCP/IP Related Parameters

      The additional TCP related parameters are not necessary in most cases, and you shouldn't expect any drastic improvements, however we added them for those of you who like experimenting. You might be able to gain that last bit of performance, or customize your TCP/IP behavior even more with those. Keep in mind you should familiarize yourself with what the parameters mean and how they affect your connection before changing their values

      MTU
      Setting MTU overrides the default MTU for the network interface it is added to. Note that if EnablePMTUDiscovery is set to 1, TCP will use the smaller value of this local MTU and the "Discovered" MTU of the underlying network connection. If you'd rather use only the MTU value specified here, you'd have to disable PMTUDiscovery, which would prevent your system from detecting the network MTU.

      HKLM\SYSTEM\CurrentControlSet\Services
           \Tcpip\Parameters\Interfaces\<interface>


      MTU="1500"
      (DWORD, valid range is from 68 to <MTU of network>).
       
      tri-red.gif (202 bytes)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:00000020
      "MaxConnectionsPer1_0Server"=dword:00000020

      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\
      "MaxConnectionsPerServer"=dword:00000020
      "MaxConnectionsPer1_0Server"=dword:00000020


      Note: Keep in mind that although those values work fine in most cases, they exceed the HTTP specs and therefore might cause problems with some websites. If you experience problems, just remove the entries. While these entries might improve web page loading considerably, they tend to strain webservers more and have no effect on throughput.

      Alternatively, you can download a patch that will add these entries for you automatically:

      sguide_webtweak_2k (11/07/00) - patch for faster website access, as well as an uninstall patch to revert the changes if needed.
       
      http://support.microsoft.com/directory/article.asp?ID=KB;EN-US;Q263088&
      Windows 2000 Does Not Use Configured TCPWindowSize Registry Parameter When Accepting a Connection

      Additional query words :
      Keywords : kbenv w2000stack kbStack
      Issue type : kbbug

      http://support.microsoft.com/directory/article.asp?ID=kb;en-us;Q224829

      Description of Windows 2000 TCP Features

      Describes the TCP features in Windows:
      • TCP Window Size
      • TCP Options Now Supported
      • Windows Scaling - RFC 1323
      • Timestamp - RFC 1323
      • Protection against Wrapped Sequence Numbers (PAWS)
      • Selective Acknowledgments (SACKS) - RFC 2018
      • TCP Retransmission Behavior and Fast Retransmit]


Some pages may require Adobe Acrobat Reader



Copyright and Fair Use Information: The contents of this web site is protected by international copyright laws and may not be reproduced in any form or manner whatsoever, if for the purpose of resale or solicitation of a donation. The essays included here, may be reproduced only if: 1)They are not altered in any way; 2) reproductions must be accompanied by this copyright page ; and 3) it is given freely and without charge.
Fair use: The fair use of copyrighted work, including such use by reproduction in copies or phonorecords or by any other means specified in above sections, for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research, is not an infringement of copyright. In determining whether the use made of a work in any particular case is fair use the factors to be considered include : (1) the purpose and character of the use, including whether the use is of a commercial nature or is for nonprofit educational purposes; (2) the nature of the copyrighted work; (3) the amount and substantiality of the portion used in relation to the copyrighted work as a whole, and; (4) the effect of the use upon the potential market value of the copyrighted work.

Home | About Narrative? |Contact
Copyright © 2025. All Rights Reserved
HAG122125 (1998 -2026)