traceroute 命令可以给出从当前主机到目的主机之间的路由信息。
这篇备忘录揭示了一些关于该命令输出含义的内容。
比如先执行:
(base) ➜ ~ traceroute www.facebook.com
会得到:
traceroute to star-mini.c10r.facebook.com (157.240.241.35), 64 hops max, 52 byte packets
1 192.168.2.1 (192.168.2.1) 4.056 ms 3.758 ms 4.860 ms
2 loop0.8gw.ba19.hlfx.ns.aliant.net (142.176.50.21) 5.572 ms 3.864 ms 3.911 ms
3 ae17-182.cr02.hlfx.ns.aliant.net (142.166.242.117) 4.201 ms
be16-181.cr01.hlfx.ns.aliant.net (142.166.242.113) 5.178 ms 4.232 ms
4 hg-0-2-0-0-50.cr01.hlfx.ns.aliant.net (142.166.149.93) 5.281 ms
be19.bx01.nycm.ny.aliant.net (207.231.227.110) 33.980 ms
hg-0-2-0-0-50.cr01.hlfx.ns.aliant.net (142.166.149.93) 5.348 ms
5 ae31.pr05.lga1.tfbnw.net (157.240.74.202) 24.227 ms
be19.bx01.nycm.ny.aliant.net (207.231.227.110) 22.721 ms 23.541 ms
6 ae31.pr05.lga1.tfbnw.net (157.240.74.202) 22.444 ms
po105.psw02.lga3.tfbnw.net (31.13.24.211) 21.936 ms
ae31.pr05.lga1.tfbnw.net (157.240.74.202) 28.470 ms
7 po105.psw02.lga3.tfbnw.net (31.13.24.211) 21.051 ms
po105.psw01.lga3.tfbnw.net (31.13.24.203) 21.665 ms
157.240.36.59 (157.240.36.59) 23.690 ms
8 edge-star-mini-shv-02-lga3.facebook.com (157.240.241.35) 22.317 ms 24.717 ms
157.240.39.37 (157.240.39.37) 23.651 ms
这里的
8 edge-star-mini-shv-02-lga3.facebook.com (157.240.241.35) 22.317 ms 24.717 ms
157.240.39.37 (157.240.39.37) 23.651 ms
其实指的是facebook的服务器(应该是服务器防火墙对外的那个接口)
从当前主机到该服务器经历了8-1 = 7台路由器的处理。
源主机发出的ttl(time to live)最大的包的ttl为8.
这里面源主机发出的最长的ttl为8
我们可以使用-m属性指定一个ttl
比如现在ttl为3,那么只会显示到第三挑的路由信息。
(base) ➜ ~ traceroute -m 3 www.facebook.com
traceroute to star-mini.c10r.facebook.com (157.240.241.35), 3 hops max, 52 byte packets
1 192.168.2.1 (192.168.2.1) 3.905 ms 2.946 ms 2.819 ms
2 loop0.8gw.ba19.hlfx.ns.aliant.net (142.176.50.21) 4.206 ms 4.096 ms 4.002 ms
3 ae17-182.cr02.hlfx.ns.aliant.net (142.166.242.117) 4.458 ms 3.859 ms 3.978 ms
这里4.458 ms 3.859 ms 3.978 ms指的是三个包的round trip time,也就是一来一回的时间。
此时意味着在指定了最大ttl为3的情况下,源主机一共发出了3*3 = 9个数据包并得到了答复。
平均每个数据包从源主机到第三个节点花费的时间为sum(4.458 ms 3.859 ms 3.978 ms)/3/2