TCP - 接收器窗口中的间隙

时间:2015-10-20 05:30:51

标签: tcp

想要验证以下内容:

假设接收器缓冲区,即滑动窗口大小为100字节。 进一步假设接收器在流中接收了大约60个字节,发送 他们的ACK现在准备好下一个字节,也就是那个用的那个 SEQ#= 1401。在这种状态下,进一步假设:

  • 接收方没有将这60个字节提供给申请流程 - 因此它们仍在窗口中
  • 接收器也接收并在其窗口中具有字节1421-1440。

所以,有20个字节'差距尚未收到。在这种状态下, 接收器的缓冲区已被填满 - 但它不能从发送方接收更多的字节 有一个20字节的间隙用SEQ#s 1401-1420等待字节。

此方案中是否缺少任何内容?即,只要接收到的字节序列中存在间隙,该间隙仍然在接收器的窗口中保持缓冲空间。这有什么例外吗?

TIA。

1 个答案:

答案 0 :(得分:1)

  

此方案中是否缺少任何内容?即,只要接收到的字节序列存在间隙,该间隙仍然会占用接收器窗口中的缓冲区空间。这有什么例外吗?

您无法在接收者的网络缓冲区中获得空白。如果接收到一个不按顺序的段,则接收器将丢弃它并重新确认最后接收的序列号。

接收方的假设是网络丢失了一个或多个IP数据包(序列号太大)或重复数据包(序列号太小),并通过重新调整最后一个好的段,发送方将被戳入重新传输丢失的段。