Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在TCP中快速重新传输后,接收器发送什么ACK号?_Tcp - Fatal编程技术网

在TCP中快速重新传输后,接收器发送什么ACK号?

在TCP中快速重新传输后,接收器发送什么ACK号?,tcp,Tcp,我了解到,在三个重复的ack之后,总共有4个ack具有相同的值,发送方假设一个数据包丢失,并再次发送具有该值的数据包 这是我正在读的书中的图表: 在这种情况下,接收器的响应是什么?ACK 120或ACK 157?这实际上取决于是否已协商SACK选择性ACK。如有: ACK 100的每次重传都将包括一个TCP SACK选项,该选项指示在缺少的段之后接收到的字节总数,如果间隙被填满,该段将被挂起 根据您展示的内容,您应该看到SACK指示偏移量120-135,然后是120-141,然后是120-157

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

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


在这种情况下,接收器的响应是什么?ACK 120或ACK 157?

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

ACK 100的每次重传都将包括一个TCP SACK选项,该选项指示在缺少的段之后接收到的字节总数,如果间隙被填满,该段将被挂起 根据您展示的内容,您应该看到SACK指示偏移量120-135,然后是120-141,然后是120-157。 当传输丢失的20个字节时,您将看到ACK 157 如果SACK尚未协商:

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