1
为什么某些常见的traceroute实现默认使用UDP探针?
我最近正在对网络连接性元问题进行故障排除,因为我知道给定的目标是可以到达的,但是traceroute由于路径在经过一定的跳数后变冷,因此无法进行演示。鉴于观察到的最后一个跃点刚好在感兴趣的节点的上游,我嗅探了流量,期望确认探针正在到达该流量,并了解哪个过滤器规则正在阻止它们。毫无疑问,我了解到这些探针是UDP数据报,这些UDP数据报是发往高(可变)端口的,而我当然阻止了入站流量。 这让我感到惊讶,因为我假设所有的traceroute探测都将默认为ICMP,因为响应是ICMP。我进行了一次文档调查,发现不同的实现做出了不同的选择,有些不允许用户进行非默认选择。 UDP协议 思科公司 的Linux FreeBSD ICMP 杜松 锦缎 视窗 Traceroute探测方法和前向IP路径推断的摘要支持我的直觉,即ICMP探测将更经常成功到达目标。 允许使用不同的探测方法似乎是一个好主意,但是默认使用ICMP以外的其他方法似乎是个坏主意。有人可以说明默认情况下使用UDP更好的原因吗?
18
icmp
traceroute
icmpv6