想要验证以下内容:
假设接收器缓冲区,即滑动窗口大小为100字节。 进一步假设接收器在流中接收了大约60个字节,发送 他们的ACK现在准备好下一个字节,也就是那个用的那个 SEQ#= 1401。在这种状态下,进一步假设:
所以,有20个字节'差距尚未收到。在这种状态下, 接收器的缓冲区已被填满 - 但它不能从发送方接收更多的字节 有一个20字节的间隙用SEQ#s 1401-1420等待字节。
此方案中是否缺少任何内容?即,只要接收到的字节序列中存在间隙,该间隙仍然在接收器的窗口中保持缓冲空间。这有什么例外吗?
TIA。
答案 0 :(得分:1)
此方案中是否缺少任何内容?即,只要接收到的字节序列存在间隙,该间隙仍然会占用接收器窗口中的缓冲区空间。这有什么例外吗?
您无法在接收者的网络缓冲区中获得空白。如果接收到一个不按顺序的段,则接收器将丢弃它并重新确认最后接收的序列号。
接收方的假设是网络丢失了一个或多个IP数据包(序列号太大)或重复数据包(序列号太小),并通过重新调整最后一个好的段,发送方将被戳入重新传输丢失的段。