博文

目前显示的是 八月, 2017的博文

ACK, SACK, D-SACK

In an ACK, the Acknowledgment Number field indicates the number for the next byte in the contiguous byte stream that the ACK’s sender expects to receive。

SACK(RFC 2018): SACK包含多个块,每个块里是已收到的。

通常来说  ACK < SLE1 < SRE1 < SLE2 < SRE2 ...

ACK是我下一个想要的,[SLE1, SRE1],[SLE2, SRE2]是我已经收到的。


D-SACK(rfc2883): 这种是SLE1<ACK的情形

例如:
Transmitted    Received    ACK Sent
Segment        Segment     (Including SACK Blocks)

3000-3499      3000-3499   3500 (ACK dropped)
3500-3999      3500-3999   4000 (ACK dropped)
3000-3499      3000-3499   4000, SACK=3000-3500

OS:Windows Server 2008 and Windows Vista, Linux 2.4+

Fast retransmit: 连续收到多个重复的ACK。

TODO: RFC 3517