linux内核如何处理无序的tcp段?

linux内核如何处理无序的tcp段?,linux,networking,tcp,Linux,Networking,Tcp,我正在开发一个多rx线程以太网驱动程序,但这可能会导致向linux网络堆栈发送无序数据包的潜在问题。此问题已在PPTP连接上验证,因为GRE具有序列号,并且将丢失无序数据包。 那么,TCP是否有一个TCP重组队列或类似的机制来处理无序段。TCP有一个窗口缓冲区。当数据包到达时,它们被缓存,直到收到下一个预期的数据包序列号。当接收到下一个预期的数据包(并且它是有效的)时,它将按顺序传递给应用程序进行接收 请参见在不了解详细信息的情况下,TCP实现需要能够处理无序数据包

我正在开发一个多rx线程以太网驱动程序,但这可能会导致向linux网络堆栈发送无序数据包的潜在问题。此问题已在PPTP连接上验证,因为GRE具有序列号,并且将丢失无序数据包。
那么,TCP是否有一个TCP重组队列或类似的机制来处理无序段。

TCP有一个窗口缓冲区。当数据包到达时,它们被缓存,直到收到下一个预期的数据包序列号。当接收到下一个预期的数据包(并且它是有效的)时,它将按顺序传递给应用程序进行接收


请参见

在不了解详细信息的情况下,TCP实现需要能够处理无序数据包