zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    使用本地系统帐户和域用户帐户两者区别(microsoft SQLServer2000)(ZT)
    Winform中消息循环、异步操作、Control.Invoke&Control.BeginInvoke学习
    SQL字符串的分组聚合(ZT)
    一次项目维护案例而对事务学习的笔记
    NOIP2011提高组 选择客栈
    NOIP2012提高组 Day 2 Problem 2 借教室
    201793模拟赛T2 取数(win)
    201793模拟赛T1 卡片(card)
    01Dart 变量常量
    01TypeScript 基础类型
  • 原文地址:https://www.cnblogs.com/sslblog/p/5661457.html
Copyright © 2011-2022 走看看