我对一个事实有点困惑。根据规范,以太网帧的最大大小为1518字节,IPv4 报头中的 IPv4 数据包大小长度字段可以达到65535字节。
所以我的问题是:IP 数据包的最大长度怎么可能大于以太网帧,因为众所周知 IPv4 数据包封装到以太网帧中。
我只有一个猜测是碎片化。
请解释一下。
我对一个事实有点困惑。根据规范,以太网帧的最大大小为1518字节,IPv4 报头中的 IPv4 数据包大小长度字段可以达到65535字节。
所以我的问题是:IP 数据包的最大长度怎么可能大于以太网帧,因为众所周知 IPv4 数据包封装到以太网帧中。
我只有一个猜测是碎片化。
请解释一下。
您假设 IPv4 总是由以太网封装是有缺陷的。不要混淆网络层。以太网是第 2 层协议,可以承载任意数量的第 3 层协议,而不仅仅是 IPv4。另一方面,IPv4 是一种三层协议,可以由任意数量的二层协议承载,它并不关心哪个。某些承载 IPv4 的第 2 层协议具有比以太网更大的最大 MTU 大小。
以太网和 IPv4 大约在同一时间开发和发布,但由截然不同的团队开发。当时并不明显,两者最终会成为其网络层的主要协议。以太网是一种 LAN 协议,主要用于 IPX,而 IPv4 通常用于 WAN 上以连接大型大学计算机。
IPv4 可以被路径中的路由器分片,IPv6 不能,但它指定最小 MTU 为 1280。最近有 PMTUD,它在沿路径发送数据包之前发现路径中的最小 MTU,以便可以调整数据包大小在发送之前适合路径的最小 MTU。
a) 以太网不是唯一的第 2 层传输。
b) IP 支持分片。(这是一个坏主意,但它支持它。)
和 c) 许多供应商忽略标准的特定部分并允许“巨型帧”。由于它不是任何标准的一部分,因此没有固定数字——范围从 2k 到 16k。
除非发送方设置了Don't Fragment标志,否则一个数据包可以被分割成许多以太网帧。接收者组装片段并处理整个 IP 数据包。不会丢失原始 IP 数据包的任何信息。