feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

tcpip详解笔记(8) traceroute

Posted on 2012-10-21 21:17  feisky  阅读(784)  评论(0编辑  收藏  举报

1. traceroute可以用来查询从一台主机到另一台主机所经过的路由。

2. 原理


ping程序提供一个记录路由选项,但并不是所有的路由机都支持这个选项,而且IP首部选项字段最多也只能存储9个IP地址,因此开发traceroute是必要的。
traceroute利用了ICMP报文和IP首部的TTL字段。TTL是一个8bit的字段,为路由器的跳站计数器,也表示数据报的生存周期。每个处理数据报的路由器都需要将TTL减一。如果TTL为0或者1,则路由器不转发该数据报,如果TTL为1,路由器丢弃该包并给源地址发送一个ICMP超时报文(如果是主机接收到TTL为1的数据报可以交给上层应用程序)。

traceroute程序开始时发送一个TTL字段为1的UDP数据报(选择一个不可能的值作为UDP端口号),然后将TTL每次加1,以确定路径中每个路由器。每个路由器在丢弃UDP数据报的时候都返回一个ICMP超时报文(如:ICMP time exceeded in-transit, length 36),而最终主机则产生一个ICMP端口不可达报文(如: ICMP 74.125.128.103 udp port 33492 unreachable, length )。

对每个TTL,发送3份数据报,并且计算打印出往返时间。如果5秒内未收到任意一份回应,则打印一个星号。

需要注意的是:

(1)并不能保证现在的路由就是将来所采用的路由;
(2)不能保证ICMP报文的路由与traceroute程序发出的UDP数据报采用同一路由;
(3)返回的ICMP报文中信源的IP地址是UDP数据报到达的路由器接口的IP地址。

3. 示例

# traceroute 192.168.10.15                                                                                                                      
traceroute to 192.168.10.15 (192.168.10.15), 30 hops max, 60 byte packets
1  192.168.10.15 (192.168.10.15)  5.656 ms  5.662 ms  5.660 ms
# traceroute www.google.com                                                                                                                    
traceroute to www.google.com (74.125.128.103), 30 hops max, 60 byte packets
1  192.168.0.11 (192.168.0.11)  0.149 ms  0.123 ms  0.104 ms
2  211.101.1.252 (211.101.1.252)  0.477 ms  0.555 ms  0.673 ms
3  124.202.128.89 (124.202.128.89)  0.297 ms  0.282 ms  0.268 ms
4  124.202.11.29 (124.202.11.29)  0.978 ms  1.157 ms  1.276 ms
5  124.202.11.9 (124.202.11.9)  1.486 ms  1.629 ms  1.744 ms
6  219.239.92.193 (219.239.92.193)  1.200 ms  1.164 ms  1.216 ms
7  * 14.197.246.217 (14.197.246.217)  104.973 ms *
8  221.4.0.162 (221.4.0.162)  106.755 ms  116.940 ms  106.763 ms
9  221.4.0.161 (221.4.0.161)  103.989 ms  114.443 ms  114.565 ms
10  120.80.7.153 (120.80.7.153)  117.309 ms  117.970 ms  118.753 ms
11  120.80.0.61 (120.80.0.61)  117.138 ms  117.105 ms  117.034 ms
12  219.158.14.241 (219.158.14.241)  114.114 ms  114.099 ms *
13  219.158.11.206 (219.158.11.206)  112.492 ms  112.350 ms  112.356 ms
14  219.158.97.2 (219.158.97.2)  113.497 ms  102.978 ms  102.965 ms
15  219.158.3.238 (219.158.3.238)  135.272 ms  146.019 ms  146.003 ms
16  72.14.215.130 (72.14.215.130)  50.959 ms  50.947 ms  50.926 ms
17  209.85.248.60 (209.85.248.60)  70.952 ms 209.85.248.62 (209.85.248.62)  40.450 ms 209.85.248.60 (209.85.248.60)  51.192 ms
18  216.239.43.17 (216.239.43.17)  50.559 ms  39.525 ms 209.85.253.71 (209.85.253.71)  51.180 ms
19  * * *
20  hg-in-f103.1e100.net (74.125.128.103)  50.472 ms  50.837 ms  50.605 ms

4. IP源站选路选项

这个选项由发送者制定路由,有两种方式:
(1)严格的路由选项:只能经过这些指定的地址,不能经 过其它地址
(2)宽松的路由选项:为数据报指定一系列经过的路由清单,清单中任意两个路由之间还可以通过其他路由

一个示例:

11

无觅相关文章插件,快速提升流量