如果网络层自动将事物分解成片段,为什么 TCP 需要段?

网络工程 ip 通讯协议 传输协议 碎片化
2021-07-30 14:03:26

我试图更好地理解 IP 片段和 TCP 段之间的区别(https://www.shubhsblog.com/tech/difference-ip-fragmentation-tcp-segmentation.html),但有一件事我无法理解理论上搞清楚。如果 netowrk 层自动将事物分解为片段以适应网络接口,那么为什么 TCP 需要将其消息分解成段?无论如何,这一切不应该在网络层完成吗?

1个回答

IP 数据包有大小限制(65,535 字节),因此重组数据包是有限的,应用程序需要发送不大于理论 IP 数据包有效负载大小(总数据包长度减去 IPv4 的数据包标头)的块。另一方面,TCP 可以通过分段来处理任意大(兆字节、千兆字节等)的数据流。

此外,由于执行分段所需的中间路由器所使用的资源以及对目标主机进行分段攻击的可能性,IP 分段已不再受欢迎。