I will ask the question based on the following scenario. Assume I have to send 10 packets using TCP using a window size of 5. I send 1, 2 and receive ACK for them, I send 3 and the ACK is lost, I send 4, 5 and receive their ACK. My question is: having SACK negotiated, does TCP continue transmitting outside the window? I.e. It starts transmitting 6 before receiving 3? That in the case that the window doesn't shift

  • The ACK acknowledges everything that came before, so an ACK for anything subsequent to 3 covers it. – Ron Maupin Jun 4 '19 at 20:36
  • What I meant with 4, 5 receive their ACK is that it receives SACK 2 | 4,5 – Cioby Andrei Jun 4 '19 at 20:55
  • 1
    "The acknowledgment mechanism employed is cumulative so that an acknowledgment of sequence number X indicates that all octets up to but not including X have been received." – Ron Maupin Jun 4 '19 at 20:59
  • Hi Cioby. If an ACK for #2 is received and the window size is 10 "packets", this puts packets 3-12 within the window and eligible to be sent -- even if no other ACK's are received. Remember, the Window Size does not affect how often ACK's are sent, only how many "packets" can be sent unacknowledged. This answer has details of how ACKnowledgement numbers work, and this answer has details on how SACK works. They might help fill in more context of ACK's and SACK's. – Eddie Jun 4 '19 at 21:58
  • Eddie, assume we don't have SACK, for a window size of 5, packet 3 doesn't receive ACK, what packets have to wait for ACK of 3? – Cioby Andrei Jun 6 '19 at 10:42

Your Answer

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

Browse other questions tagged or ask your own question.