我目前正在研究 Internet 协议并且有一个关于 IP 数据报的问题。
在 IP 标头中,我知道有一个名为“总长度”的字段,它以位为单位指定特定分段数据报的总长度。然而,在阅读教科书(“TCP/IP Illustrated Vol. 1”)时,我读到“主机不需要能够接收大于 576 字节的 IPv4 数据报。”
如果它说它“不需要”,那么是否意味着它在技术上能够运输它?为什么在 IP MTU 方面有这样的限制?
编辑
我在学习 TCP 时遇到的一件事让我想起了我之前问过的这个问题。
TCP 是一种传输层(传统 OSI 模型中的第 4 层)协议,它封装在较低的网络层(第 3 层)协议中运行。这也是使用称为 IP 的互联网“动力马”的地方。
所有的协议都有一个特定的头部,在IP和TCP的情况下,它们的头部的最小长度为20字节(在TCP的情况下,最大长度为60字节,包括最后添加的选项)。
TCP 协议使用称为“段”的东西,它相当于其他协议的数据包。的最大段大小(MSS)是“最大的细分市场,一个TCP愿意从其收到对端,因此,当发送它的对等应该永远使用的最大尺寸。” ( TCP/IP Illustrated, Vol. 1, 2e p. 606)。
MSS 通常在 TCP 标头中指定为选项,但如果未指定,则默认大小为 536 字节。回想一下,IP 标头和 TCP 基本标头都至少为 20 个字节。这意味着:20(IP 标头)+ 20(TCP 标头)+ 536(默认 MSS)= 576 字节。
因此,IPv4 主机应该能够处理的最小数据包大小为 576 字节。