Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I just want to clarify some things. Lets say the receiver advertises a window of 2000 bytes. The sender sends a 1500 bytes and receives an ack from receiver with window size 100. The ack does not acknowledge the 1500 bytes sent. What will the sender do? Will it stop wait until window its unacknowledged bytes become less than receiver window?

share|improve this question

So long as both ends are robust, it doesn't much matter. A robust TCP implementation will never shrink a window. A robust TCP implementation will either ignore or accept data outside its window. A robust TCP implementation will transmit at least one byte of data that's outside a zero window periodically. You'd have to break all three of these for anything bad to happen.

The mechanisms provided allow a TCP to advertise a large window and to subsequently advertise a much smaller window without having accepted that much data. This, so called "shrinking the window," is strongly discouraged. The robustness principle dictates that TCPs will not shrink the window themselves, but will be prepared for such behavior on the part of other TCPs.

The sending TCP must be prepared to accept from the user and send at least one octet of new data even if the send window is zero. The sending TCP must regularly retransmit to the receiving TCP even when the window is zero. Two minutes is recommended for the retransmission interval when the window is zero. This retransmission is essential to guarantee that when either TCP has a zero window the re-opening of the window will be reliably reported to the other. -- RFC793

So the answer to your question is "probably, but it doesn't much matter".

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.