TCP - 收到错误的顺序

时间:2013-12-09 21:58:02

标签: networking tcp

是否有可能以错误的顺序获取TCP数据包,由序列号指示? 那么在接收方会发生什么? 例如,是否存在任何可以“过早”到达口袋的队列?

1 个答案:

答案 0 :(得分:3)

也许。接收TCP引擎有几个选择,可以做什么。它唯一不能做的是将那些无序数据包中的数据无序传递给接收进程。

  • 接收TCP引擎可以丢弃无序数据。最终,发送TCP引擎将重新发送它们。在此之前,它肯定也会在间隙中重新传输数据。当间隙中的数据到达时,接收引擎可以按顺序将其传递给接收过程。
  • 接收TCP引擎可以保存无序数据。最终,间隙中的数据将到达,或者发送TCP引擎将重新传输它。无论哪种方式,差距都将填补,接收引擎可以按顺序将所有数据传递给接收过程。
  • 接收TCP引擎可以保存乱序数据并提示发送TCP引擎它应该在间隙中重新传输数据。它通过重新确认收到的最后一个有序数据字节来做到这一点。 这是大多数TCP引擎的功能。