EN
返回档案库

案例库 · 工程与运营 · 技术决策 · 1996

这条还没译成中文,下面是英文原文。

TCP SACK retransmits only the blocks actually missing after a loss

Selective Acknowledgement lets a receiver report exactly which segments arrived, so a sender retransmits just the gaps instead of everything after a loss.

University of Southern California

那一手

When one TCP segment is lost, cumulative acknowledgements are blind: the receiver only names the boundary of the contiguously received data, so the sender has no idea which of the later segments actually got through and retransmits the entire tail.

RFC 2018 added a selective-acknowledgement option in which the receiver lists the edge blocks it holds. The sender can then build a map of the holes and transmit only those, which matters when losses affect separate segments rather than a contiguous run.

The effect is that the sender stops wasting bandwidth on data the receiver already has, and recovery from multi-segment loss becomes a matter of filling the gaps rather than redoing the whole transfer.

为什么管用

  • Cumulative ACK hides which later segments survived.
  • SACK names the blocks received, exposing only the true holes.
  • Retransmitting just the gaps cuts wasted bandwidth.
值了多少Tell the sender what you got; send only the gaps利落

可以搬走什么

When you announce only the total, you hide useful detail; reporting the actual set of what arrived lets the other side act on the true gap instead of a pessimistic guess.

后来呢

SACK became a staple of modern TCP stacks and was refined by loss-recovery algorithms such as RFC 6675, which use the selective-ack map to recover from bursty loss far more efficiently.

资料来源

发现哪里写错了?告诉我们。

同一路聪明