1

If I set the receiving window to zero (receiver), does this automatically pause the timer for the unacknowledged segments at the sender?

Is there any RFC or spec about this?

Example:
S sends Seg1, Seg2.
C receives Seg1, 2 and ACK the Seg1. And sets the receive window to 0.
And waits for a few seconds until it would ACK the Seg2.
After this time it sends the ACK for Seg2 and with it a new window size.
Will the timer have been timed out for Seg2?

1
  • I really believe you are overthinking this.
    – Ron Maupin
    Commented Mar 5, 2016 at 22:27

1 Answer 1

1

A simple Internet search will turn up a lot of information on this subject. if you add rfc to your search, you will get links to the RFCs. For instance, RFC 793, TRANSMISSION CONTROL PROTOCOL:

Note that when the receive window is zero no segments should be acceptable except ACK segments. Thus, it is be possible for a TCP to maintain a zero receive window while transmitting data and receiving ACKs. However, even when the receive window is zero, a TCP must process the RST and URG fields of all incoming segments.

Edit:

Based on the comments and discussion, the timer is not paused, it continues to run and may expire. If the ACK for the expired timer is received before the window size is reset, the timer is moot since the segment(s) was acknowledged. If the window size is reset before the ACK is received, the timer has already expired since it continued to run, and the sender will immediately resend the unacknowledged segment(s). It will not resume a paused timer and wait for it to expire.

7
  • But the interesting part about the timer is not mentioned in the RFC.
    – bpichon
    Commented Mar 5, 2016 at 22:12
  • The timer has nothing to do with it. The segments can still be acknowledged because ACKs can still be sent and processed.
    – Ron Maupin
    Commented Mar 5, 2016 at 22:13
  • I meant the timer in the sender, not in the receiver. Example: S sends Seg1, Seg2. C receives Seg1, 2 and ACK the Seg1. And sets the receive window to 0. And wait for a few seconds until it would ACK the Seg2. After this time it sends the ACK for Seg2 and with it a new window size. Will the timer have been timed out for Seg2?
    – bpichon
    Commented Mar 5, 2016 at 22:16
  • Right, but it can still send ACKs. The sender will pause sending, but there is nothing which prevents the receiver from sending anything, including the required ACKs or any data back to the sender. I just don't see the problem.
    – Ron Maupin
    Commented Mar 5, 2016 at 22:19
  • Just edited my previous comment
    – bpichon
    Commented Mar 5, 2016 at 22:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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