NASA Banner + NASA Homepage
+ Ames Research Center
+ NASA Advanced Supercomputing
NREN Banner
Sitemap
Customer Service: TCP Windows Sizes
 
Home
About NREN
Customer Servicee
Weather Map
Jumbo Frames
Multistream
TCP Windows Sizes
bbFTP
bbSCP
HPN-SSH
SSH Passthrough
SUP
TCP Performance Tuning
Engineering
Applications
Research
Workshops

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.

  1. Host-A sends data to Host-B.
  2. Host-B acknowledges receipt of data from Host-A with an ACK packet.
  3. 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:

64 kilobytes (8 bits/byte) divided by 50 milliseconds=10.4 Mbps

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.

6100 kilobytes (8 bits/byte) divided by 50 milliseconds=999.4 Mbps (0.999 Gbps)

Additional information on Tuning TCP Windows Sizes:

+ NREN website: TCP Performance Tuning

+ Pittsburg Supercomputing Center website: TCP Performance Tuning on End-Systems

 More NASA on the Web:
FirstGov - Your First Click to the US Government + NASA Privacy Statement, Disclaimer,
 and Accessibility Certification

+ Copyright/Image Use Policy
NASA - National Aeronautics and Space Administration Webmaster: NREN
NASA Official: Ken Freeman
Last Updated: March 23, 2007
+ Contact NREN