Reputation: 25
Looking to verify the following:
Suppose the receiver buffer, i.e. the sliding window size is 100 bytes. Further suppose that the receiver received some 60 bytes in the stream, sent the ACK for them and now ready for the next byte, which is, say the one with the SEQ#=1401. At this state, further assume:
So, there is a 20 bytes' gap yet to be received. At this state, the receiver's buffer is filled up-- it can receive no further bytes from the sender although there is a 20 bytes gap waiting for the bytes with SEQ#s 1401-1420.
Is there anything missing in this scenario? I.e., whenever there's a gap in the sequence of bytes received, that gap is still holding up buffer space in receiver's window. Are there any exceptions to this?
TIA.
Upvotes: 0
Views: 842
Reputation: 12999
Is there anything missing in this scenario? I.e., whenever there's a gap in the sequence of bytes received, that gap is still holding up buffer space in receiver's window. Are there any exceptions to this?
You cannot get gaps in a receiver's network buffer. If a segment is received that's out of sequence then the receiver will drop it and re-ack the last received sequence number.
The assumption on the receiver's side is that the network has lost one or more IP packets (sequence number too large) or duplicated packets (sequence number too small) and by re-acking the last good segment the sender will be poked into retransmitting the missing segment.
Upvotes: 1