根据 Stevens (TCP/IP Illustrated) 的说法,traceroute程序将 UDP 数据包发送到具有增量 TTL(1、2、3 等)的目标主机,以从ICMP TTL EXPIRED消息中获取中间跃点信息。
“目的地已到达”条件是ICMP PORT UNREACHABLE消息,因为 traceroute 寻址一个具有高数字的随机端口(即:不太可能有人在那里监听)
所以我的问题是:是否存在技术原因(缺点、RFC 等? ) 使用 UDP 数据包而不是使用例如ICMP 回显请求消息(具有增加的 TTL)并使用回显答复作为结束条件?
我知道 ICMP 回显回复可能会被中间的防火墙或其他网络设备过滤掉,但我想这也可能发生在 UDP 数据包中;)
非常感谢
塞尔吉奥