Home

 

RFC1323 High Performance TCP Options


IETF.org: https://tools.ietf.org/html/rfc1323

Linux: https://manpages.debian.org/stretch/manpages/tcp.7.en.html

Microsoft: https://support.microsoft.com/en-us/help/224829/description-of-windows-2000-and-windows-server-2003-tcp-features

 

MICROSOFT REGISTRY PARAMETERS

HKEY_Local_Machine\System\CurrentControlSet\Services\________

TcpWindowSize

Key: Tcpip\Parameters, Tcpip\Parameters\Interface\interfaceGUID

Value Type: REG_DWORD—number of bytes

ValidRange: 0–0x3FFFFFFF (1073741823 decimal). In practice the TCP/IP stack will round the number set to the nearest multiple of maximum segment size (MSS). Values greater than 64 KB can be achieved only when connecting to other systems that support RFC 1323 Window Scaling, which is discussed in the “Transmission Control Protocol (TCP)” section of this article.

Default: The smaller of the following values:

0xFFFF   Consider 0xFFFF0.

GlobalMaxTcpWindowSize (another registry parameter)

The larger of four times the MSS

16384 rounded up to an even multiple of the MSS

The stack also tunes itself based on the media speed:

Below 1 Mbps: 8 KB

1 Mbps – 100 Mbps: 17 KB

Greater than 100 Mbps: 64 KB

The default can start at 17520 for Ethernet, but may shrink slightly when the connection is established to another computer that supports extended TCP header options, such as Selective Acknowledgements (SACK) and TCP Timestamps, because these options increase the size of the TCP header beyond the usual 20 bytes, leaving slightly less room for data.

Description: This parameter determines the maximum TCP receive window size offered. The receive window specifies the number of bytes that a sender can transmit without receiving an acknowledgment. In general, larger receive windows improve performance over high-delay, high-bandwidth networks. For greatest efficiency, the receive window should be an even multiple of the TCP Maximum Segment Size (MSS). This parameter is both a per-interface parameter and a global parameter, depending upon where the registry key is located. If there is a value for a specific interface, that value overrides the system-wide value. See also GobalMaxTcpWindowSize.

 

GlobalMaxTcpWindowSize

Key: Tcpip\Parameters 

Value Type: REG_DWORD—Number of bytes

Valid Range: 0–0x3FFFFFFF (1,073,741,823 decimal; however, values greater than 64 KB can only be achieved when connecting to other systems that support RFC 1323 window scaling, which is discussed in the TCP section of this article.)

Default: This parameter does not exist by default. Consider 0xFFFF0.

Description: 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.

 

Tcp1323Opts

Key: Tcpip\Parameters

Value Type: REG_DWORD—number (flags)

Valid Range: 0, 1, 2, 3

0 (disable RFC 1323 options)

1 (window scaling enabled only)

2 (timestamps enabled only)

3 (both options enabled)      Consider 1 (window scaling enabled only).

Default: No value. The default behavior is as follows: do not use the Timestamp and Window Scale options when initiating TCP connections but use them if the TCP peer that is initiating communication includes them in the SYN segment.

Description: This parameter controls the use of RFC 1323 Timestamp and Window Scale TCP options. Explicit settings for timestamps and window scaling are manipulated with flag bits. Bit 0 controls window scaling, and bit 1 controls timestamps.

 

SackOpts
Key: Tcpip\Parameters
Value Type: REG_DWORD—Boolean
ValidRange: 0, 1 (false, true)
Default: 1 (true)
Description: This parameter controls whether or not Selective Acknowledgment (SACK) support, as specified in RFC 2018, is enabled. SACK is described in more detail in the “Transmission Control Protocol (TCP)” section of this article.

 

MTU

Key:  Tcpip\Parameters\Interfaces\interface

Value Type: REG_DWORD—number

Valid Range: 88–the MTU of the underlying network

Default: 0xFFFFFFFF   Consider 1500 for Cable Modem and 1492 for DSL, both using Ethernet.

Description: This parameter overrides the default Maximum Transmission Unit (MTU) for a network interface. The MTU is the maximum packet size, in bytes, that the transport can transmit over the underlying network. The size includes the transport header. An IP datagram can span multiple packets. Values larger than the default for the underlying network cause the transport to use the network default MTU. Values smaller than 88 cause the transport to use an MTU of 88.

Note: Windows 2000 TCP/IP uses PMTU detection by default and queries the NIC driver to find out what local MTU is supported. Altering the MTU parameter is generally not necessary and may result in reduced performance. See the PMTU detection discussion in the TCP section of this document for more details.

 

Home