Windows的TCP协议参数
注册表编辑器:regedit
表项:HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Services\Tcpip\Parameters
窗口扩大因子 & 时间戳选项
Tcp1323Opts的取值如下:
0 - disable RFC 1323 options。禁用窗口扩大因子和时间戳选项,是默认值。
1 - window scaling enabled only。只启用窗口扩大因子选项。
2 - timestamp enabled only。只启用时间戳选项。
3 - both options enabled。同时启用窗口扩大因子和时间戳选项。
官网说明:
http://technet.microsoft.com/zh-cn/library/cc757402(v=ws.10).aspx
SACK选项
SackOpts REG_DWORD 0x00000001 (1)
SackOpts取值范围为0 | 1,默认值为1。
描述:
Enables and disables the Selective Acknowledgement (SACK) feature of Windows Server 2003 TCP/IP.
SACK is specified in RFC 2018.
官网说明:
http://technet.microsoft.com/zh-cn/library/cc775859(v=ws.10).aspx
TcpMaxDupAcks
TcpMaxDupAcks REG_DWORD 0x00000002 (2)
TcpMaxDupAcks的取值范围为1-3,默认为2。而Linux的默认值为3。描述:
Specifies how many duplicate ACks (ACKs for the same sequence numbers) constitute a signal to
retransmit a segment.
When data arrives with a sequence number that is greater than expected, the receiver assumes that data
with the expected number was dropped, and it immediately sends an ACK with the ACK number set to the
expected sequence number. The receiver sends ACKs set to the same missing number each time it receives
a TCP segment that has a sequence number greater than expected.
The sender recognizes the duplicate ACKs and sends the missing segment.
官网说明:
http://technet.microsoft.com/zh-cn/library/cc783652(v=WS.10).aspx
拥塞控制算法
微软最新的TCP拥塞控制算法为Compound TCP (CTCP),windows 7默认不启用。
(1)windows Vista/2008/7
CTCP is enabled by default in computers running beta versions of Windows Server 2008 and disabled
by default in computers running Windows Vista and 7.
CTCP can be enabled with the command:
> netsh interface tcp set global congestionprovider=ctcp
or disabled with the command:
> netsh interface tcp set global congestionprovider=none
To display the current setting for CTCP use:
> netsh interface tcp show global
Parameter "Add-On Congestion Control Provider" will either have a value of "none" if CTCP is disabled
or "ctcp" if it is enabled.
(2)Windows 8
CTCP is now enabled using PowerShell as netsh is deprecated:
> set-nettcpsetting -Settingname Custom -CongestionProvider CTCP
(3)Windows 2003 & XP x64
A hotfix is available that adds CTCP support to 64 bit Windows XP and Windows Server 2003.
The following registry key can be set to 1 to enable, or 0 to disable:
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TCPCongestionControl
参考:
http://en.wikipedia.org/wiki/Compound_TCP
http://support.microsoft.com/kb/949316
最大接收窗口
TcpWindowSize REG_DWORD number of bytes
取值范围:0-0x3FFFFFFF.
描述:
In practice the TCP/IP stack will round the number set to the nearest multiple of maximum segment size
(MSS). Values greater than 64KB can be achieved only when connecting to other systems that support
RFC 1323 Window Scaling.
初始值
the smaller of the following values:
0xFFFF (65536)
GlobalMaxTcpWindowSize
The larger of four times the MSS (5840)
16384 rounded up to an even multiple of the MSS
The stack also tunes itself based on the media speed:
Below 1 Mbps: 8KB
1 Mbps - 100 Mbps: 17KB
Greater than 10 Mbps: 64KB
This parameter determines the maximum TCP receive window size offered.
官网说明:
http://msdn.microsoft.com/en-us/cc757802
全局最大接收缓存
GlobalMaxTcpWindowSize REG_DWORD number of bytes
取值范围:0-0x3FFFFFFF.
Default: This parameter does not exist by default.
描述:
Determines the largest TCP receive window that the system offers.
The TcpWindowSize parameter can be used to set the receive window on a per-interface basis.
This parameter can be used to set a global limit for the TCP window size on a system-wide basis.
官网说明:
http://technet.microsoft.com/zh-cn/library/cc957546