我们知道保证数据报不会在 IPv4 中分片的大小最大为 576 字节。但是使用UDP报头8字节时的大小,如果我们取UDP有效载荷512字节并选择IPv4的最大报头大小为60字节(带选项字段),则Ipv4数据报变为(512+8+60)=580字节。
当我们采用 UDP 有效载荷 508 字节时,IPv4 MTU 变为 (508+8+60)=576 字节。
那么 UDP 有效负载 508 或 512 字节的权利应该是什么,因此最大 IPv4 MTU 应该是 576 或 580 字节,以保证不分片?
我们知道保证数据报不会在 IPv4 中分片的大小最大为 576 字节。但是使用UDP报头8字节时的大小,如果我们取UDP有效载荷512字节并选择IPv4的最大报头大小为60字节(带选项字段),则Ipv4数据报变为(512+8+60)=580字节。
当我们采用 UDP 有效载荷 508 字节时,IPv4 MTU 变为 (508+8+60)=576 字节。
那么 UDP 有效负载 508 或 512 字节的权利应该是什么,因此最大 IPv4 MTU 应该是 576 或 580 字节,以保证不分片?
你混淆了几件事。MTU 是最大传输单元,它是特定介质上的数据链路(第 2 层)协议的值。
IP,IPv4 和 IPv6 都没有 MTU。它们都具有最大数据包大小,远大于任何数据链路 MTU。IPv4 数据包的总数据包大小(标头和有效载荷)为 65,535 个八位字节。对于 IPv6,最大有效载荷大小(不包括 IPv6 标头)为 65,535,但有一个扩展将其增加到超过 2G 八位字节。
UDP 和 TCP 也都使用 16 位长度,因此它们的数据报可以大于 IPv4 数据包的容量。理论上,两者都可以由除 IPv4 之外的其他网络(第 3 层)协议承载,并且它们与 IPv6 一起使用(IPX 上有 TCP 的 RFC,但我不知道任何真正的实现)。
576 值是 IPv4 路径中的最小保证 MTU(通过第 1/2 层协议),这意味着保证达到该大小的数据包不会在路径中分段。这不是对 IPv4 或其承载的任何协议的限制。
另一方面,IPv6 不允许在路径中分片,并且它要求路径中的最小 MTU 为 1280。
UDP 负载限制最小为 0,最大为 65,527 个八位字节(字节)。