Retransmission-on-timeout answers drop. But a timeout can only fire on silence, and silence is ambiguous β the data may have arrived with the ACK lost, or everything arrived late and the timer was impatient. So retransmission manufactures duplicates on top of the ones IP already creates.
Acknowledgments must therefore name what is acknowledged, and the receiver must detect duplicates and place early arrivals. One mechanism solves all three: label each byte with its position in the stream.
Why positions and not timestamps β this is the crux. Timestamps are sparse: transmissions stamped are ambiguous (was there a , or nothing to send?). Byte positions are dense: bytes β, β, β prove β are missing and must exist, because position 300 is unreachable without passing 299.
Because positions in a stream are dense, a gap in positions is proof of loss, and it names precisely what was lost.
Three of IPβs failure modes collapse into this one mechanism:
- drop β a gap reveals it; retransmit exactly those bytes
- reorder β an early arrival sits past the gap; buffer until it fills
- duplicate β positions already held are discarded
Ordering and deduplication were never separately designed β thatβs the compression.
See also
- Every guarantee above IP is manufactured by state at the two endpoints β sequence numbers are the first concrete guarantee built from endpoint-held state (a buffer + a counter)
- IP promises nothing β it is best-effort and never reports delivery outcome β the drop/reorder/duplicate this mechanism repairs are exactly IPβs silent failure modes
- A cumulative ACK N means βI have everything through Nβ β the acknowledgment scheme built directly on top of these byte positions
- The three-way handshake is agreement on sequence-space plus injection resistance β sequence numbers only work if both sides first agree where the streamβs numbering starts
- An AEAD record nonce is the static IV XOR the record sequence number β TLS reuses a per-record sequence number the same way, exploiting that the reliable stream lets both sides count in lockstep
References
Questions
flashcards/software-engineering/networking
Why does labeling bytes by stream position (not timestamps) let a receiver prove and name loss?::Positions are dense β a gap in positions must exist and names exactly which bytes are missing; timestamps are sparse and ambiguous
Which three IP failure modes collapse into the single sequence-number mechanism?::Drop (a gap β retransmit those bytes), reorder (early arrival buffered past the gap), and duplicate (already-held positions discarded)
Retransmission itself manufactures duplicates, because a timeout fires on ambiguous silence β the data may have arrived with only the ACK lost.