- To gauge network capability
Before any data is transmitted using TCP, a connection must first be established between the transmitting and receiving hosts. When the connection is initially established, the two hosts must agree on certain parameters that will be used during the communication session. One of the parameters that must be decided is called the window size, or how many data bytes to transmit at a time. Initially, TCP sends a small number of data bytes, and then exponentially increases the number sent. For example, a TCP session originating from host A begins with a window size of 1 and therefore sends one packet. When host A receives a positive ACK from the receiver, Host A increases its window size to 2. Host A then sends 2 packets, receives a positive ACK, and increases its window size to 4, and so on.
TCP tracks window size by byte count. For purposes of illustration packets, N is used.
In traditional TCP, the maximum window size is 64 KB (65,535 bytes). Extensions to TCP, specified in RFC 1323, allow for tuning TCP by extending the maximum TCP window size to 230 bytes. TCP extensions for high performance, although supported on most operating systems, may not be supported on your system.
Example: Windowing in TCP
After connecting to a website, a file transfer using the FTP download is initiated. Watching the progress of the transfer, the bytes-per-second counter steadily increases during the file transfer. This is an example of TCP windowing in action.
Was this article helpful?