1

Let's assume that A is connected to B, and A has received 100 bytes until now. So, the next packet he will receive should have a SEQ number of 100 or a little more if the packets don't reach A in order.

What happens if he receives a significantly different value, for example, 800?

1 Answer 1

8

Queue the traffic waiting for the rest of the traffic to arrive. If that traffic doesn't appear within some hold-off period, it will re-ACK the last segment it received. This is all well documented TCP processing. (read: use any search engine, or visit a book store.)

4
  • nice answer ricky Dec 20, 2013 at 20:08
  • Thank you, but I didn't find the answer despite using a search engine, most results explain how it works, not what happens in special situations like this.
    – Ulysse
    Dec 20, 2013 at 20:10
  • 3
    It's not a special situation. It's an integral part of the protocol -- reliable, error free, in order traffic delivery. 'tho I'll agree it's faster to ask someone who knows rather than research it yourself.
    – Ricky
    Dec 20, 2013 at 20:21
  • 2
    IMHO it's important to add that this only happens when the received SEQ falls within the receive window, otherwise the segment is dropped. Also, if both A and B support SACK (selective ACK) then instead of saying "I'm waiting for 100", A can also tell B "I'm waiting for 100 but I already have 800-2099" allowing B to just retransmit 100-799 instead of retransmitting everything from 100 on.
    – hertitu
    Sep 27, 2016 at 7:01

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.