跳到主要内容

9. 应用探测

所有实现 必须 包含一种机制, 使使用无连接协议的应用能够发送自己的探测分组. 如第 10.4 节所述, 这是在应用协议中实现 PLPMTUD 所必需的, 也是实现用于调试 PMTUD 问题的诊断工具所必需的. 必须 有一种机制允许应用发送大于 eff_pmtu 的数据报且不被分片, 其中 eff_pmtu 是操作系统对路径 MTU 的估计值. 如果这些是 IPv4 分组, 它们 必须 设置 DF bit.

目前, 大多数操作系统支持两种发送数据报的模式: 一种会静默分片过大的分组, 另一种会拒绝过大的分组. 这两种模式都不适合在应用中实现 PLPMTUD, 也不适合诊断路径 MTU 发现 (Path MTU Discovery) 的问题. 要求提供第三种模式, 即即使数据报大于当前的路径 MTU 估计值, 也仍然发送该数据报.

在应用中实现 PLPMTUD 还需要一种机制, 使应用能够按照第 7.6 节所述将探测结果告知操作系统, 或者直接更新第 7.1 节所述的 search_low, search_higheff_pmtu.

诊断应用有助于发现 PMTUD 问题, 例如由故障路由器返回包含错误大小信息的 ICMP PTB 消息所导致的问题. 能够发送任意指定大小的探测分组, 并收集,显示所有返回的 ICMP PTB 消息的工具, 可以最快定位这类问题.