【问题标题】:What ACK number does the receiver send after a fast retransmit in TCP?在 TCP 中快速重传后,接收方发送的 ACK 号是多少?
【发布时间】:2018-12-26 21:48:40
【问题描述】:

我了解到,在三个重复的 ACK 之后(因此总共有 4 个具有相同值的 ACK),发送方假设一个数据包丢失并再次发送具有该值的数据包。

这是我正在阅读的书中的图表:

在这种情况下,接收方会响应什么? ACK 120 还是 ACK 157?

【问题讨论】:

    标签: tcp


    【解决方案1】:

    这实际上取决于是否已协商 SACK(选择性 ACK)。如果有:

    • ACK 100 的每次重传都将包含一个 TCP SACK 选项,该选项指示在缺失段之后已接收到的字节的总和,如果间隙被填充,则待处理的字节数
    • 根据您显示的内容,您应该会看到 SACK 指示偏移量为 120-135,然后是 120-141,然后是 120-157。
    • 传输丢失的 20 个字节时,您将看到 ACK 157

    如果 SACK 尚未协商:

    • 您将看到 ACK 100 指示此后每个段的丢失段
    • 发送丢失的段时,如果它只包含原始的 20 个字节,则 ACK 将为 120,所有后续段也必须重新传输

    【讨论】:

      猜你喜欢
      • 2021-01-13
      • 2017-01-19
      • 1970-01-01
      • 2013-11-17
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多