Different Network protocols benefit from different Network
settings in the Windows Registry.
The optimal Registry settings for broadband
Internet connections are somewhat different than the Windows defaults.
Windows
is somewhat optimized for dialup, as well as Ethernet (high speed / low
latency), however that isn't the case with Cable modems, DSL, Satellite, etc.
Below you will find OS specific information on how to optimize the Registry for
broadband, which assumes some proficiency in customizing Windows.
If you don't
feel comfortable with editing the Registry don't do it.
Recommended settings for Windows 9x
Since the introduction of Windows 98, MS has added support for RFC1323 ( the 'DefaultRcvWindow'
has a maximum value of 2**30 rather than 64K), support for Selective
Acknowledgments (SACK), Fast Retransmission and Fast Recovery.
Below is a list of the Registry setting and values we recommend for residential
broadband connections.
Registry Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP
Value Name: DefaultRcvWindow
Value Type: String Value
Value Data: 64240
Details: has to be a multiple of MSS for best results, i.e. (MaxMTU-40) x
number... Best settings to try with MSS=1460 are 64240, 46720 and 23360, in that
order
Registry Key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\000n
(Where "000n" is your TCP / IP protocol. It contains "TCP / IP" assigned to the
"DriverDesc" Value)
Value Name: MaxMTU
Value Type: String Value
Value Data: 1500
Details: If you're using DSL and your ISP has implemented PPPoE, you should set
MaxMTU to 1492 or less.
Registry Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP
Value Name: DefaultTTL
Value Type: String Value
Value Data: 64
Details: range 1-255, use any number between 32 and 128
Registry Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP
Value Name: PMTUDiscovery
Value Type: String Value
Value Data: 1
Details: Boolean value, 0-false or 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.
Registry Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP
Value Name: PMTUBlackHoleDetect
Value Type: String Value
Value Data: 0
Details: zero for optimal performance
Registry Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP
Value Name: Tcp1323Opts
Value Type: String Value
Value Data: 1
Details: The possible settings are 0 - No Windowscaling and Timestamp Options, 1
- Window scaling but no Timestamp options, 3 - Window scaling and Time stamp
options.
The value is documented in RFC 1323. According to Microsoft,
Tcp1323Opts should be a DWORD, rather than a string value, however seems that
the documentation is incorrect and a string value is necessary to enable large
RWIN suppert.
Registry Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP
Value Name: SackOpts
Value Type: String Value
Value Data: 1
Details: Possible settings are 0 - No Sack options or 1 - Sack Option enabled.
Selective Acknowledgements are documented in RFC 2018
Registry Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VXD\MSTCP\Parameters
Value Name: MaxDupAcks
Value Type: DWORD Value
Value Data: 2
Details: taking integer values from 2 to N