TCP/IP详解卷1:第八章(traceroute程序)

1. traceroute程序的操作

1. 使用traceroute而不使用IP记录路由选项(RR)的三个原因

1) 并不是所有的路由器都支持记录路由选项,因此该选项在某些路径上不能使用。

2) 记录路由一般是单向的选项。发送端设置了该选项,那么接收端不得不从收到的IP首部中提取出所有的信息,然后全部返回给发送端。

3) IP首部中留给选项的空间有限,只能存放9个IP地址。

2. traceroute的原理

    当路由器收到一份IP数据报,如果其TTL字段是0或1,则路由器不转发该数据报(接收到这种数据报的目的主机可以将它交给应用程序,这是因为不需要转发该数据报。但是通常情况下,系统不应该接收TTL字段为0的数据报)。相反,路由器将该数据报丢弃,并给信源机发送一份ICMP“超时信息”。traceroute程序的关键在于包含这份ICMP信息的IP报文的信源地址是该路由器的IP地址。

    traceroute发送TTL为1给目的主机,然后第一个路由器将TTL减1,返回超时信息;接着traceroute发送TTL为2给目的主机,然后就得到第二个路由器的IP地址了(包含在ICMP的超时信息中)。那么我们如何才能知道所为的超时信息是到达目的IP地址的路由器信息呢?

    traceroute选择了一个不可能的值作为UDP端口号(大于30000),使目的主机的任何一个应用程序都不可能使用该端口。这样就会产生“端口不可达”的错误ICMP报文,来判断traceroute什么时候结束。

2. 局域网输出和广域网输出

1. 局域网输出

leichaojian@ThinkPad-T430i:~$ traceroute ThinkPad-T430i;date
traceroute to ThinkPad-T430i (127.0.1.1), 30 hops max, 60 byte packets
 1  ThinkPad-T430i (127.0.1.1)  0.026 ms  0.012 ms  0.008 ms
2014年 10月 26日 星期日 09:08:34 CST



ICMP超时报文如下:

    关于traceroute程序,必须注意的三点如下:

1)并不能保证现在的路由也是将来所要采用的路由,甚至两份连续的IP数据报都可能采用不同的路由。(路由是会动态发生变化的)

2) 不能保证ICMP报文的路由与traceroute程序发送的UDP数据报采用同一路由。

3) 返回的ICMP报文中的信源IP地址是UDP数据报到达的路由器接口的IP地址,这与IP记录路由选项不同,记录的IP地址指的是发送接口地址。

2. 广域网输出

leichaojian@ThinkPad-T430i:~$ traceroute www.google.com.hk
traceroute to www.google.com.hk (74.125.204.199), 30 hops max, 60 byte packets
 1  192.168.0.1 (192.168.0.1)  1.279 ms  1.660 ms  1.986 ms
 2  192.168.1.1 (192.168.1.1)  27.994 ms  28.376 ms  28.685 ms
 3  119.96.204.1 (119.96.204.1)  28.986 ms  29.286 ms  29.589 ms
 4  111.175.232.77 (111.175.232.77)  29.895 ms  30.193 ms  30.496 ms
 5  111.175.208.225 (111.175.208.225)  30.866 ms  31.138 ms  31.690 ms
 6  202.97.67.13 (202.97.67.13)  50.041 ms  23.080 ms  32.844 ms
 7  202.97.35.250 (202.97.35.250)  33.118 ms  33.366 ms  33.724 ms
 8  202.97.60.50 (202.97.60.50)  34.024 ms 202.97.60.86 (202.97.60.86)  37.643 ms 202.97.60.50 (202.97.60.50)  37.158 ms
 9  202.97.61.118 (202.97.61.118)  42.660 ms  42.939 ms  46.857 ms
10  202.97.62.214 (202.97.62.214)  44.642 ms  46.453 ms  48.269 ms
11  209.85.241.58 (209.85.241.58)  52.237 ms 209.85.241.56 (209.85.241.56)  56.457 ms  55.748 ms
12  72.14.233.169 (72.14.233.169)  51.668 ms  50.910 ms 209.85.241.99 (209.85.241.99)  58.799 ms
13  209.85.253.39 (209.85.253.39)  55.533 ms 209.85.246.218 (209.85.246.218)  56.362 ms 209.85.253.39 (209.85.253.39)  52.079 ms
14  * * *
15  74.125.204.199 (74.125.204.199)  59.396 ms  60.967 ms  63.083 ms



3. IP源站选路选项

1. 基本原理

    源站选的思想是由发送者指定路由,采用以下两种形式:

1) 严格的源路由选择。发送端指明IP数据报所必须采用的确切路由。如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,那么它就返回一个“源站路由失败”的ICMP差错报文。

2) 宽松的源站选路。 发送端指明了一个数据报经过的IP地址清单,但是数据报在清单上指明了任意两个地址之间可以通过其他路由器。

    这和记录路由选项不同之处如下:

1) 对于源站选路,我们必须在发送IP数据报前填充IP地址清单;而对于记录路由选项,我们需要为IP地址清单分配并清空一些空间,并让路由器填充该清单中的各项。

2) 对于源站选路,只要为所需要的IP地址数分配空间并进行初始化,通常其数量小于9.而对于记录路由选项来说,必须尽可能的分配空间,以达到9个地址。

    对于宽松的源站选路来说,code字段的值是0x83,而对于严格的源站选路,其值为0x89。

    IP源路的原理如下:


转载于:https://my.oschina.net/voler/blog/337360

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值