1

enter image description here

I wonder what ACK number would be if the receive buffer of receiver side is full. For example, Consider a case that sender transmits a segment whose SEQ is 800, and 100 bytes size. Because the receive buffer is full, receiver sends a ACK 900 segment, containing rwnd = 0. Then, the receiver will continue to send 1-byte probe segment whose 1-byte data are part of original data in the window. Then how does receiver respond those probe segments?

I guess that at least ACK will be 900, not 901, because its buffer is full so the receiver can not store the segment. But if ACK is 900, the timeout will occur because the timer of sender side will tick until ACK 901 arrives. Does the sender retransmit probe segments based on that timeout? Or is there any other mechanism that I don't know?

1

As rfc 1122 says (ch 4.2.2.17), Probing will use a retransmission timer for the probe. This timer will be increased exponentially between each successive probes (backoff algorithm).

When there is zero window, the byte in probe is outside window. It is not previously sent data (look at the seq number).

When sending the window update, the receiver can acknowledge the 1 byte probe if it responding to a window probe.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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