2000,
XP and Vista are configured with priority to Ethernet rather than high-speed Internet
connections where latency plays a major role in throughput. Here, you will find
specific information on how to optimize the Windows 2000 and 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 the Registry, then please use this
file Win2000_XP_DSL_Tweaks.reg
the file contains the settings required to automaticaly make the changes to
your registry.Just click on the link and save the file to your local drive, when
prompted import the registry settings. It is strongly recommended that you
backup your Registry before editing. 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. 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 most of 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 Recommended settings
for Windows 2000 / XP Windows 2000 and XP 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 or 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 TcpipParametersInterface
- if added at this location, it overrides the global setting for this particular
. 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 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.) 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 be unable to reach distant servers 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 specificationified in RFC 2018.
SACK is especificationially 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 specificationified here, you'd have to disable PMTUDiscovery,
which would prevent your system from detecting the network MTU. HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces MTU="1500"
(DWORD, valid range is from 68 to MTU of network). Note: For
Windows XP PPPoE, there is an additional location for MTU that might need
to be adjusted (to 1480, or up to 1492 as per the PPPoE specifications),
depending on the PPPoE software you use. Check the following location
in the Registry: HKLM\SYSTEM\CurrentControlSet\Services\NdisWan\Parameters\Protocols\0 ProtocolMTU="1480" Windows
2000 Web Patch According to the HTTP specifications, 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 specifications and therefore might cause problems with some
websites. If you experience problems, just remove the entries. |