当我在我的 Mac 上使用traceroute
它来检查任何网站的路径时,第一行总是 3 颗星。
imac:~ Jerome$ traceroute google.com
traceroute: Warning: google.com has multiple addresses; using 173.194.70.113
traceroute to google.com (173.194.70.113), 64 hops max, 52 byte packets
1 * * *
2 217-168-54-101.static.cablecom.ch (217.168.54.101) 9.515 ms 8.757 ms 10.104 ms
3 172.31.208.73 (172.31.208.73) 14.512 ms 14.605 ms 14.264 ms
4 ch-zrh01b-ra1-ae-1.aorta.net (84.116.134.142) 13.587 ms 12.892 ms 13.936 ms
5 74.125.49.101 (74.125.49.101) 13.966 ms 14.850 ms 14.915 ms
6 72.14.232.120 (72.14.232.120) 26.573 ms
72.14.232.88 (72.14.232.88) 20.072 ms 19.758 ms
7 72.14.236.68 (72.14.236.68) 26.913 ms
72.14.236.20 (72.14.236.20) 26.825 ms
72.14.239.62 (72.14.239.62) 25.381 ms
8 209.85.254.118 (209.85.254.118) 22.240 ms 22.365 ms
209.85.254.112 (209.85.254.112) 24.826 ms
9 * * *
10 fa-in-f113.1e100.net (173.194.70.113) 25.715 ms 26.960 ms 25.191 ms
据我所知,这*
意味着路由器没有应答。为什么第一行就有星号?
答案1
traceroute 的工作方式是发送一个故意设置低 TTL 计数的数据包。该计数会随着它经过的每个路由器而减少,当计数为零时,路由器会丢弃该数据包并发送一条回复,表示 TTL 已过期。
三个星号是因为 traceroute 在特定的 TTL 设置下尝试三次来获得响应。
如果任何路由器配置为在 TTL 过期的情况下不回复,它仍然会正常路由数据包,并且后续具有更高 TTL 的数据包仍会按应有的方式传递。
traceroute 发送的下一个数据包的初始 TTL 比前一个数据包高一个,使其能够到达链中更远的一个路由器,并让下一个路由器发送到期响应。这就是为什么一个没有响应的路由器不会停止 traceroute 的原因
答案2
最有可能的是,您的路由器没有响应“传输中超出 TTL”ICMP 响应,可能是因为防火墙(内置)抑制了这些响应。如果您是路由器管理员,请检查防火墙设置。否则,请忽略它。