从以太网的物理传输上看,不管是TCP和UDP,肯定会出现先发后到的情况,但是这种数据帧的重组是靠传输层IP协议进行维护的,TCP和UDP只是应用层协议。
看到上面的说法
如果在物理传输时出现了这种情况,传到TCP的时候会不会已经修正好次序呢?
从以太网的物理传输上看,不管是TCP和UDP,肯定会出现先发后到的情况,但是这种数据帧的重组是靠传输层IP协议进行维护的,TCP和UDP只是应用层协议。
看到上面的说法
如果在物理传输时出现了这种情况,传到TCP的时候会不会已经修正好次序呢?
tcp会修正好次序的。
从应用层的角度(即使用tcp传输数据),我们从tcp中拿到的数据总是有序的,这是tcp对上层应用的保证。
如果从下层单个数据包的意义上,则【后发先到】是有可能的:
由于tcp发送数据时,有发送窗和接收窗的概念,会一次性发送多个IP数据包,例如,发送了1、2、3、4、5个IP数据包,其中,1和2在网络上走丢了,
对接受方的tcp协议栈而言,就是先到了3、4、5,这时的3、4、5不会暴露给对上层应用而言,而是通过重传机制,等到1和2收到了,才告诉上层说
有新的数据到达了。