Transmission Control Protocol (TCP) was designed to perform over varying link conditions. In Windows Server 2003, Transmission Control Protocol/Internet Protocol (TCP/IP) contains improvements such as those supporting RFC 1323: TCP Extensions for High Performance. Improvements to support RFC 1323 include TCP options for scaled windows and different types of time stamps. RFC 1323 particularly addresses performance enhancements for reliable operation in high-bandwidth internetworks and for scenarios in which the product of network bandwidth multiplied by delay is large (for example, in networks with high transmission speed but also high delay).
Factors That Affect Throughput
Actual throughput for a transmission link in Windows Server 2003 TCP/IP depends on a number of variables, but the most important factors are:
- Link speed, in other words the number of bits per second that can be transmitted.
- Propagation delay, in other words the time it takes the actual electronic, optical, or other signals to travel from one end of the connection to the other.
- Window size, in other words the amount of unacknowledged data that can be outstanding on a TCP connection. For more information on window size considerations, see TCP Receive Window Size and Window Scaling.
- Link reliability.
- Network and intermediate device congestion.
- Path maximum transmission unit (PMTU). For more information on PMTU, see Path MTU Discovery.
Other Throughput Considerations
Some key considerations to keep in mind when optimizing TCP throughput with Windows Server 2003 are as follows:
- The capacity of a pipe is its bandwidth multiplied by round-trip time. This value is known as the bandwidth-delay product. If a link is reliable, for best performance its receive window size should be greater than or equal to the capacity of the pipe so that the sending stack can fill the window. The largest window size that can be specified is 65,535 bytes, because of the receive window's 16-bit field in the TCP header. However, larger windows can be negotiated by using window scaling as described in TCP Receive Window Size and Window Scaling.
- Throughput can never exceed window size divided by round-trip time.
- If a link is unreliable or badly congested and packets are being dropped, using a larger window size does not necessarily improve throughput. Along with scaling windows support, Windows Server 2003 TCP/IP supports selective acknowledgment (SACK) to improve performance in environments that are experiencing packet loss. For more information on SACK, see RFC 2081: RIPng Protocol Applicability Statement.
- For improved round-trip time (RTT) estimation, Windows Server 2003 TCP/IP also includes support for time stamps. For more information on TCP time stamps, see RFC 1323: TCP Extensions for High Performance.
- Propagation delay depends on the speed of light, latencies in transmission equipment, and so on.
- Transmission delay depends on the speed of the media over which the transmission occurs.
- For a specified path, propagation delay is fixed, but transmission delay depends upon the packet size. This dependence occurs because packets larger than one maximum segment size (MSS) must be broken into multiple frames, and transmission is not considered complete until the last frame is received at its destination.
- At low speeds, transmission delay is the limiting factor. At high speeds, propagation delay can become the limiting factor.
See Also
Windows TCP Implementation Features