想要出于学习目的执行简单的跟踪:
traceroute google.com
它在其他行中给了我一些如下所示的行
...
15 * * *
16 * * *
17 * * *
... few similar lines
这是什么意思?
答案1
说明等待ICMP“时间超出”(TTL过期)消息超时了。
如果路由最终失败(可能目标机器已关闭),则这种情况可能发生在线路末端,或者如果该跳的路由器未生成 ICMP“超时”通知,则这种情况可能发生在路由的任何一点。遵守 TTL 是强制性的,但通知发起者由于 TTL 达到零而丢弃数据包是可选的。
答案2
这意味着数据包超时,默认情况下等待时间为 5 秒,如果在该时间内未收到响应,则显示星号并跳转到下一跳。超时可能是因为该跳上的路由器阻止了流量,或者因为它找不到到下一跳 IP 的路由。
您可以使用 -w 来增加超时时间。
-w waittime
Set the time (in seconds) to wait for a response to a probe (default 5.0 sec).
您还可以尝试使用不同的协议,在 UDP、ICMP 和 TCP 之间切换,因为有时路由器会阻止其中一种协议,但允许其他类型的协议。
-I Use ICMP ECHO for probes
-T Use TCP SYN for probes
-U Use UDP datagrams for probes (it is default). Only UDP method is allowed for unprivileged users.
答案3
所有 traceroute 的实现都依赖于发送给发起者的 ICMP 数据包。
该程序通过启动具有较小 ttl 的 UDP 探测数据包然后监听来自网关的 ICMP“超出时间”答复来尝试跟踪路由。