有人能解释一下接收方是如何知道两个不连续的TCP段是否属于同一个包的吗?



谁能解释一下接收方是如何知道两个非连续的TCP段是属于相同还是不同的数据包的?它如何知道下一个段是否是数据包中的最后一个段?

接收端不将TCP段组装成数据包,而是将它们组装成流。接收端通过其序列号知道其接收段在流中的位置。

您是否期望接收应用程序的read()系统调用的计数结果符合发送应用程序的write()系统调用?如果是这样,你会失望的。TCP流是字节流,而不是数据包流。它们既不保留也不尊重发送系统调用的边界。

TCP不处理分片。这是一个IP问题。报文只有在完成后才能到达TCP层。IP在报文头中使用特殊字段来表示报文是否分片,如果分片,则表示收到的分片是否是最后一个分片。

你可以看一下:
传输控制协议
互联网协议

最新更新