有关 UDP 数据报大小的注意事项

一个 IPv4/v6 数据报的最大尺寸取决于 MTU(最大传输单位)和在 Payload Length 上的字段大小。

  • Payload Length 字段 16 bits 宽,这意味着正常的有效载荷超过 64K 八位字节,包括互联网报头和数据(65,507 字节 = 65,535 − 8 字节 UDP 头 − 20 字节 IP 头);这通常适用于环回接口,但是这样长的数据报消息对于大多数主机和网络是不切实际的。

  • MTU 是一个给定的链路层技术可以支持的最大数据报消息尺寸。对于任何链路,IPv4 规定最小的 MTU 限制是 68 个八位字节,同时推荐的 IPv4 MTU576(通常推荐为拨号类型应用程序的 MTU),无论它们是整体还是碎片。

    对于 IPv6,最小的 MTU1280 个八位字节,然而,强制最小片段重组 buffer 大小为 1500 个八位字节。68 个八位字节的值非常小,由于大多数当前链路层技术,例如以太网,具有的最小 MTU1500

不可能提前知道包可能传输通过的每个链路的 MTU。发送大于接收方 MTU 的数据报将不起作用,因为包将被静默丢弃,而不会通知源,该数据未到达其预期接收者。