
我想知道如果接收方的接收缓冲区已满,ACK 号是多少。例如,考虑发送方发送一个 SEQ 为 800,大小为 100 字节的段的情况。由于接收缓冲区已满,接收方发送一个 ACK 900 段,其中包含 rwnd = 0。然后,接收方将继续发送 1 字节探测段,其 1 字节数据是窗口中原始数据的一部分。那么接收器如何响应这些探测段呢?
我猜至少 ACK 将是 900,而不是 901,因为它的缓冲区已满,因此接收器无法存储该段。但是如果 ACK 是 900,就会发生超时,因为发送方的计时器会一直计时,直到 ACK 901 到达。发送方是否根据该超时重新传输探测段?还是有其他我不知道的机制?