主机A和B使用TCP通信。在A接受到的报文段中,有这样连续的两个:ack=120和ack=100.这样可能吗(前一报文段确认的序号大于后一个)?试说明理由。
时间: 2023-12-06 18:42:26 浏览: 360
TCP的输入-modern differential geometry of curves and surfaces with mathematica
这是不可能的。
TCP协议中,当主机B收到主机A发送的数据报时,会向主机A回复一个ACK,表示成功接收到数据。而ACK的值表示期望收到下一个序列号的数据,即ACK值等于已经成功接收到的最后一个字节的序号加1。
在本题中,假设主机A已经成功发送了连续的两个报文段,并且主机B已经成功接收到了这两个报文段。那么,第一个报文段的序列号为X,长度为L1,第二个报文段的序列号为X+L1,长度为L2。同时,假设主机A收到的ACK值分别为120和100。
根据TCP协议的规定,主机A收到ACK值120,表示主机B已经成功接收到了序列号为X+L1-1的字节,期望收到序列号为X+L1的字节。而主机A收到ACK值100,表示主机B已经成功接收到了序列号为X+L2-1的字节,期望收到序列号为X+L2的字节。
由于X+L1<X+L2,所以ACK值120应该比ACK值100更小,不可能在主机A接收到的报文段中出现ACK值120在ACK值100之后的情况。因此,连续出现ACK值120和ACK值100的情况是不可能发生的。
阅读全文