根据Stevens(TCP/IP Illustrated)的说法,traceroute程序发送UDP数据包到目标主机,并使用递增的TTL(1、2、3等)从ICMP TTL EXPIRED消息中获取中间跳数信息。
"destination reached"的条件是ICMP PORT UNREACHABLE消息,因为traceroute会向一个高端口地址(即:不太可能有人在那里监听)发送数据包。
所以我的问题是:相对于使用递增的TTL发送ICMP echo request消息并使用echo reply答复作为结束条件,是否存在使用UDP数据包的技术原因(缺点、RFC等)?
我知道ICMP echo reply可能会被防火墙或其他中间网络设备过滤掉,但我想UDP数据包也可能会遇到同样的情况 ;)
非常感谢
Sergio
"destination reached"的条件是ICMP PORT UNREACHABLE消息,因为traceroute会向一个高端口地址(即:不太可能有人在那里监听)发送数据包。
所以我的问题是:相对于使用递增的TTL发送ICMP echo request消息并使用echo reply答复作为结束条件,是否存在使用UDP数据包的技术原因(缺点、RFC等)?
我知道ICMP echo reply可能会被防火墙或其他中间网络设备过滤掉,但我想UDP数据包也可能会遇到同样的情况 ;)
非常感谢
Sergio