跳到主要内容

5. 数据包大小问题

IPv6 要求 Internet 中每条链路的 MTU 为 1280 个八位字节或更大. 这称为 IPv6 最小链路 MTU. 在任何无法一次性传送 1280 八位字节数据包的链路上, 必须在 IPv6 之下的某一层提供链路特定的分片和重组.

具有可配置 MTU 的链路 (例如 PPP 链路 [RFC1661]) 必须配置为至少 1280 八位字节的 MTU. 建议将它们配置为 1500 八位字节或更大, 以适应可能的封装 (即隧道), 而无需产生 IPv6 层分片.

对于节点直接附着的每条链路, 该节点必须能够接受与该链路 MTU 一样大的数据包.

强烈建议 IPv6 节点实现 Path MTU Discovery [RFC8201], 以发现并利用大于 1280 八位字节的路径 MTU. 不过, 最小 IPv6 实现 (例如在 boot ROM 中) 可以简单地限制自己发送不大于 1280 八位字节的数据包, 并省略 Path MTU Discovery 的实现.

为了发送大于路径 MTU 的数据包, 节点可以使用 IPv6 Fragment header 在源处分片该数据包, 并在目的地重组. 不过, 对于任何能够调整其数据包以适配测得路径 MTU (即降至 1280 八位字节) 的应用, 不鼓励使用这种分片.

节点必须能够接受分片数据包, 该数据包在重组后大小可达 1500 八位字节. 允许节点接受重组后超过 1500 八位字节的分片数据包. 依赖 IPv6 分片来发送大于路径 MTU 数据包的上层协议或应用, 不应发送大于 1500 八位字节的数据包, 除非它能确信目的地能够重组该更大大小的数据包.