《TCP/IP详解 卷1:协议》读书笔记 第8章 Traceroute程序

来源:互联网 发布:网络运维书籍推荐 编辑:程序博客网 时间:2024/04/30 07:55

Traceroute程序

  • Traceroute程序
    • 引言
    • Traceroute程序的操作
      • 操作过程
    • IP源站选路选项

引言

Traceroute程序是一个能更深入探索TCP/IP协议的方便可用的工具,它可以让我们看到IP数据报从一台主机到另一台主机所经过的路由,还可以让我们使用IP源路由选项。


Traceroute程序的操作

为什么不使用IP记录路由选项而是用Traceroute?
原因有三:

  1. 并非所有路由器都支持记录路由选项。
  2. 记录路由一般是单向的选项。
  3. 主要原因:IP首部中留给选项的空间有限,不能存放当前大多数的路径。

Traceroute运行原理:

  • 使用ICMP报文和IP首部中的TTL字段(生存周期)。
  • 每个处理数据包的路由器都需要把TTL的值-1.TTL字段的目的是防止数据报在选路是无休止地在网络中流动。
  • 当TTL被减为0的时候,路由器不转发数据报,并且返回一份ICMP“超时”信息。
  • 当数据报已经到达最终目的的时候,不会返回ICMP“超时”报文,那就不知道已经到达了目的地。所以!Traceroute程序会发一份UDP数据报给目的主机(它使用一个不可能的值作为UDP端口号,应该封装在IP中),当数据报到达目的主机,就可以往上分用,抵达传输层,这个时候产生一份“端口不可达”错误的ICMP报文。

操作过程

  1. 发送一个TTL为1的IP数据报出去,第一个路由器把TTL减为0,返回一份ICMP“超时”报文。
  2. 发送TTL为2的IP数据报,以此类推。我们就可以知道数据报经过的路由IP了。
  3. 到达目的主机之后,返回一个“端口不可达”的UDP数据报,这样就知道了目的主机的IP。

IP源站选路选项

通常IP路由是动态的,即每个路由器都要判断数据报下面该转发到哪个路由器。
源站选路的思想是由发送者指定路由,有两种形式:

  1. 严格的源路由选择。发送端指明IP数据报所必须采用的确切路由。如果发现下一个指定的路由器不在其直接连接的网络上,就返回一个“源站路由失败”的ICMP差错报文。
  2. 宽松的源站选路。发送端指明了一个数据报经过的IP地址清单。只要经过上面的IP即可,不限制经过其他的路由以及顺序。
0 0
原创粉丝点击