为什么接收窗口右边缘的空TCP段不可接受?

时间:2016-08-20 16:43:59

标签: networking tcp network-protocols

TCPv4规范(RFC 793)classifies a received segment as unacceptable如果它的长度为零,则序列号等于RCV.NXT + RCV.WND,而接收窗口不为零(表中的第二行)。

这实质上意味着除了可能发送ACK之外,该段将被丢弃。不会进行ACK处理或发送窗口更新。

这有什么理由?

考虑这种情况:

  1. 主机A将所有可能的数据段发送给主机B,只是耗尽了B的接收窗口。
  2. 主持人A很快也会发送一个空片段,例如窗口更新或接收数据的确认。该段的序列号等于主机B(RCV.NXT + RCV.WND)的接收窗口的右边缘,因为它被设置为主机A的最新SND.NXT。
  3. 上述数据包在网络中丢失或延迟,主机B首先接收空段。
  4. 主机B会将空段分类为不可接受,并将其删除,忽略任何确认或窗口更新。
  5. 是否有一些我不理解的部分?这种情况真的可能吗?

    note :我问这里而不是networkengineering.stackexchange.com,因为我在实现TCP / IP堆栈时遇到了这个问题,这些协议细节似乎比通常被理解为网络更接近编程工程。

0 个答案:

没有答案