在TCP中进行快速重传后,接收方发送什么ACK号?

时间:2018-12-26 13:42:48

标签: tcp

我了解到,经过三个重复的ACK(因此总共有4个具有相同值的ACK),发送方认为丢失了一个数据包,然后再次发送具有该值的数据包。

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

enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

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

如果尚未协商SACK:

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