0711

Traceroute 程序(icmp应用)

作用

可以让我们看到IP数据从一台主机传到另一台主机经过的路由

方式

使用icmpIP首部中的TTL

  •        每经过一个路由器,TTL减一。
  •        ICMP回显超时报文中包含信源IP地址
  •        IP数据报的内容是一份端口不可达的UDP数据。

主机发送一个IP数据报(TTL=1),处理数据的第一个路由器将TTL-1=0,丢弃该数据报,给主机发送一份ICMP超时报文,这样就得到了第一个路由器的IP地址。

主机发送一个IP数据报(TTL=2),处理数据的第二个路由器将TTL-1=0,丢弃该数据报,给主机发送一份ICMP超时报文,这样就得到了第二个路由器的IP地址。

以此类推......

当到达目的主机后,主机接收数据后,产生一份端口不可达的ICMP差错报文,从而告诉主机这是目的主机。

ICMP超时报文格式:

  与端口不可达报文类似,不同点:1.类型为11   2.代码为0

注意:

  1.源主机不断发送UDP数据报,每个路由返回ICMP超时报文,目的主机返回ICMP端口不可达报文。所以traceroute的关键就是分辨超时报文以及不可达报文即可。

  2.ICMP返回报文中的IP地址是UDP数据报到达路由接口的IP

广域网输出

  写法:traceroute+网址(linux

        tracert +网址

IP源站路由选项

  IP动态路由

每个路由器都要判断下面应该转发到哪个路由,程序对此并不能控制

  源站路由

1.严格源站路由(SSRR

  必须经过的确切路由路径,否则返回ICMP源站路由选路失败报文

2.宽松源站路由(LSRR

      数据经过的IP地址清单

  源站路由选项-----源站路由的存放

1.格式与记录路由的选项一致,不同点:填充IP清单------发送IP清单

2.严格code0x89);宽松code0x83

宽松选路的traceroute程序的往返路由

  格式:traceroute -g 目的主机 源主机

  效果:

      源主机到目的主机再到源主机的每一个路由都会被记录

  这样就可以检验由源主机到目的主机 和 目的主机到源主机经过的路由是否一致。

注意:

  这里的IP源站路由选项存放的为源主机指定的IP地址。所以只要自己指定的路由的个数不超过9即可,具体的执行过程还是按照Traceroute的过程。

第九章 IP选路

目的:搜索路由表并且决定向哪个网络接口发送分组数据

简单路由表

命令:netstat -r (列出路由表);-n (以数字格式的IP地址)

Flag

  U可用

  G间接相连,到目的主机的路径之中存在路由器

  H目的地是主机

  D重定向报文创建的

  M已经被重定向报文修改

初始化路由表

  守护程序初始路由

  使用route命令

未到达目的地的路由

  如果路由器没有默认项,而且又未找到匹配选项

  1.如果为本机发出的数据,发送给相应的应用程序一个:主机/网络不可达

  2.若为转发的数据,给原始发送端发送“主机不可达”的ICMP差错报文

ICMP重定向差错报文

概念:当IP数据报应当发送给另一个路由器时,收到数据报的路由器会发送一个ICMP重定向差错报文给IP数据报的发送端。

作用:通过重定向ICMP差错报文,发送端可以更新自己的路由表信息,下一次发送的时候便可以到达指定的路由器。

报文格式

类型(5

代码(0~3

检验和

应当使用的路由器IP地址

IP首部(包括选项)+IP数据报数据部分前8

ICMP路由器发现报文(ICMP路由器通告与请求报文)

作用:初始化路由表

格式:

1.ICMP路由请求报文

类型(10

代码(0

检验和

未用(设置为0

2.ICMP路由器通告报文格式

类型(9

代码(0

检验和

地址数

地址项长度(2

生存时间

路由器地址[1]

优先级[1]

路由器地址[2]

优先级[2]

......

第十章 动态选路协议

动态选路:守护程序 通过选路协议与相邻路由器之间进行通信,从而了解每个路由器相连的网络结构,从而更新路由表。

RIP:选路信息协议

报文格式:包含在UDP报文中

     

IP首部

UDP首部

RIP报文

20字节

8字节

 

守护程序的工作

1.初始化

  启动routed程序后,给每一个启动的接口发一个请求报文

2.接受请求

  接受请求后,按照请求的规则发送相应。

3.接受相应

  接收到路由表后,对自己的路由表进行更新。

4.定期路由更新

  一般30s一次,将自己的路由表发送给相邻路由器,可以以广播的形式。

5.触发更新

  每当一条路由度量发生了变化,便对变化的项目进行更新

度量

1.直接相连的接口为1

2.相邻路由器跳数为1 的网络,我们与那个网络的度量为2.

原文地址:https://www.cnblogs.com/sslblog/p/5661457.html