关于 TCP 数据包长度

网络工程 tcp
2022-02-06 16:34:31

既然TCP头没有指明数据包的长度,那么发送端的底层IP层如何知道一个TCP数据包的长度,而接收端的TCP层又如何知道接收到的数据包的长度呢?TCP 是否与 IP 交换此类信息作为附加信息?

虽然 TCP 是一种流式协议,但数据是以段的形式发送的,其长度可以是 1 到最大段大小之间的任何值。IP 需要知道这个长度信息来进行封装。TCP应该告诉IP长度吗?在接收端,长度信息在IP解封装后被丢弃。IP是否将其传递给TCP(长度=总长度-IP头长度)?

1个回答

一般来说,通信标准只讨论网络上其他主机可见的内容。API 标准通常只讨论操作系统和应用程序之间的接口。

在“传输”和“互联网”层之间传递一些元数据(大小、地址等)显然是必要的,但具体如何完成是一个实现细节。