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

Networking 为什么接收窗口右边缘的空TCP段是不可接受的?,networking,tcp,network-protocols,Networking,Tcp,Network Protocols,TCPv4规范(RFC 793)如果长度为零,则在接收窗口不为零(表中的第二行)时,序列号等于RCV.NXT+RCV.WND 这本质上意味着该段将被丢弃,而不可能发送ACK。不会进行确认处理或发送窗口更新 这样做的理由是什么 考虑以下情况: 主机A向主机B发送所有可能的数据段,只是耗尽了主机B的接收窗口 主机A也很快发送空段,例如窗口更新或接收数据确认。此段的序列号等于主机B接收窗口的右边缘(RCV.NXT+RCV.WND),因为它被设置为主机A的最新SND.NXT 所述数据分组在网络中丢失或延

TCPv4规范(RFC 793)如果长度为零,则在接收窗口不为零(表中的第二行)时,序列号等于RCV.NXT+RCV.WND

这本质上意味着该段将被丢弃,而不可能发送ACK。不会进行确认处理或发送窗口更新

这样做的理由是什么

考虑以下情况:

  • 主机A向主机B发送所有可能的数据段,只是耗尽了主机B的接收窗口
  • 主机A也很快发送空段,例如窗口更新或接收数据确认。此段的序列号等于主机B接收窗口的右边缘(RCV.NXT+RCV.WND),因为它被设置为主机A的最新SND.NXT
  • 所述数据分组在网络中丢失或延迟,并且主机B首先接收空段
  • 主机B将把空段归类为不可接受,并将其丢弃,忽略任何确认或窗口更新
  • 是否有某些部分我没有正确理解?这种情况真的可能吗


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

    它没有说“序列号等于RCV.NXT+RCV.WND”。它表示“RCV.NXT=