我最近正在对网络连接元问题进行故障排除,因为我知道可以到达给定的目的地,但我无法证明这一点,traceroute
因为路径在经过一定数量的跃点后变冷了。鉴于观察到的最后一跳就在感兴趣的节点的上游,我嗅探了流量,希望确认探测器正在到达它并了解哪个过滤器规则正在阻止它们。果然,我了解到探测是 UDP 数据报,发往高(和变化)端口,当然,我阻止了入站流量。
这让我感到惊讶,因为我假设所有traceroute
探测都默认为 ICMP,因为响应是 ICMP。我做了一个文档调查,发现不同的实现做出了不同的选择,有些是不允许用户进行非默认选择的。
Traceroute 探测方法和转发 IP 路径推理的抽象支持我的直觉,即 ICMP 探测将更经常成功地到达目的地。
允许不同的探测方法似乎是个好主意,但默认使用 ICMP 以外的其他方法似乎是个坏主意。有人可以描述为什么默认使用 UDP 更好的原因吗?