TCP Windows Sizes
Within the Internet today, most network applications utilize the Transmission Control Protocol (TCP), which is part of the Internet Protocol Suite. TCP is a reliable protocol that supports numerous Internet applications, higher-layer protocols, and ensuing applications, such as Secure Shell, electronic mail, and the World Wide Web.
The default settings on most operating systems does not allow for high bandwidth data rates across long-delay networks, such as wide area networks. The table below lists some of the default parameters for various operating systems.
An end-to-end network connection, which consists of end-hosts and multiple network routers in between, will inevitably have a bottleneck somewhere that limits data transfer rates.
If the bottleneck is due to the sending speed of the transmitting end-host, any data transmissions that are too fast for the network will result in the loss of data (or data errors).
TCP has a sliding window that limits the transmission speed in order to reduce congestion and data loss. This is a variable-duration window that allows the transmitting end-host to send a specified number of data units before an acknowledgement is received. The TCP window contains the amount of outstanding data a transmitting end-host can send on a particular connection before it gets acknowledgment back from the receiving end-host.
This sequence of events is shown below.
- Host-A sends data to Host-B.
- Host-B acknowledges receipt of data from Host-A with an ACK packet.
- Host-A sends additional data after the acknowledgement from Host-B. Usually, for high bandwidth and long-delay networks, Host-A will have a wait time before sending data after the ACK packet.
The TCP window size determines how much data Host-A can send to Host-B without receiving the acknowledgment. So, a larger window size is recommended to improve TCP performance in network paths with large bandwidth or long-delay characteristics.
The Bandwidth-Delay-Product (BDP) is the quantity of data that can be in transit on a network, at a given time. The BDP is the product of the network bandwidth and the Round Trip Time (RTT).
BDP = B/W x RTT
- Where B/W is the peak bandwidth of the link (based upon the slowest link in the path)
- RTT is the round-trip delay, which can be measured with the ping command
+ Use the SpeedGuide.net Bandwidth-Delay Calculator
Since the BDP of networks today has increased far beyond what it was when the TCP/IP protocols were originally designed, some high-performance extensions have been implemented in the TCP protocol. However, these high-performance options are not usually enabled by default, so will have to be explicitly turned on by the system administrators.
As a result of large BDPs, a larger window size is recommended to improve data transfer rates in network paths with large-bandwidth, long-delay characteristics, such as cross-country wide area networks.
Here's an example:

Suppose the TCP window size, based on the transmitting end-system buffers is set at 64 kilobytes (kb) and the RTT is 50 milliseconds. Based on the transmitting host configuration, the maximum data transfer rate would be 10.4 Mbps, based on using the formula below:
Window Size / RTT = Effective Bandwidth
But, if the slowest link in the path is transfers at 1 gigabit per second (Gbps), then based on the transmitting host configuration, data would only be transferred about 1 percent of the time, and utilize only about 1 percent of the available bandwidth. In this example, a 6100-kb (6.1 megabyte) window size would be required to efficiently utilize the 1-Gbps link.

Additional information on Tuning TCP Windows Sizes:
+ NREN website: TCP Performance Tuning
+ Pittsburg Supercomputing Center website: TCP Performance Tuning on End-Systems
|