Thursday, April 2, 2009

TCP Receiving Window

What is tcp window?

The TCP window is the amount of unacknowledged data which remains in the network till get acknowledged. The tcp window is negotiated at the beigining of each and every connection during the three way handshake. The TCP receiving window (RWIN) size was limited to 16 bits which is equavalent to 65535 bytes or 64K. It means during the transmission sender cannot pust the data more than 64K at one time and in the next transaction it will send the only amount data which will free from the buffer. I know its hard to understand. Lets assume a example, Sender S sends 64K data at the first and out of 64K he receives 20K acknowledge. So now the TCP window buffer is 20K because unacknowledge data will remain in the TCP window and in the next transaction sender S cannot push more than 20K consequence slow speed.

To overcome this problem researchers added a "TCP Options" header extension which is of 14 bits (Explained in RFC 1323). So it means the default RWIN size will be 64K if the sender and receiver wants to send more then they can increase with the help of header options by taking multiples of 2.

It means the total TCP receiving window size can be extended upto (RWIN Original * 2 ^ Header Options) which is equavalent to 65535*16384 = 1073725440 (1 Gb). But the value is negotiated at the time of connection establishment and will be choosed the smallest of two.


regards
shivlu jain

People who read this post also read :



1 comment:

Shivlu Jain said...

really awesome explanation

http://www.cisconet.com/traffic-analysis/traffic-analysis-general/407-internet-speed-issue-how-to-use-tcp-window-scaling-option.html