RIP

路由信息协议 RIP(Routing Information Protocol) 是内部网关协议 IGP中最先得到广泛使用的协议。RIP 是一种分布式的基于距离向量的路由选择协议。
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
RIP是应用层协议。使用UDP数据报传送。

“距离”的定义 :

  • 从一路由器到直接连接的网络的距离定义为 1。
  • 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。

RIP 协 议 中 的 “ 距 离 ” 也 称 为 “ 跳 数 ” (hop count),因为每经过一个路由器,跳数就加 1。这里的“距离”实际上指的是“最短距离”,
RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。RIP 允许一条路径最多只能包含 15 个路由器。“距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。 RIP 不能在两个网络之间同时使用多条路由。 RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。


RIP 协议的三个要点

  1. 仅和相邻路由器交换信息。
  2. 交换的信息是当前本路由器所知道的全部信息,即自己的路由表
  3. 按固定的时间间隔交换路由信息,例如,每隔 30 秒。

路由表的建立

  • 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。
  • 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
  • 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
  • RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。

距离向量算法

收到相邻路由器(其地址为 X)的一个 RIP 报文:

  1. 先修改此RIP报文中的所有项目:
    1. 把“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加1
    2. 每个项目中的三个关键数据:到目的网络N,距离为d,下一跳路由器是X
  2. 对修改后的RIP 报文中的每一个项目,进行以下步骤:
    1. 若原来的路由表中没有目的网络N,则把该项目加到路由表中。
    2. 否则若下一跳路由器地址是X,则用收到的项目替换原路由表中的项目。
    3. 否则若收到项目中的距离小于路由表中的距离,则进行更新,
    4. 否则,什么也不做。
  3. 若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16
  4. 返回。

RIP_第1张图片
RIP_第2张图片
RIP_第3张图片

RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的。


RIP2 协议的报文格式 :

RIP_第4张图片

RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。

  • 命令域:指出RIP报文是一个请求报文还是对请求的应答报文
    • 请求报文:请求路由器发送路由表
    • 应答报文:可以是对请求的应答,也可以是主动的更新。
  • 版本域:一般为1,新版本为2。
  • 地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。
  • 路由标记填入自治系统的号码,这是考虑使RIP有可能收到本自治系统以外的路由选择信息。
  • 再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。

RIP2的其他功能

  • 支持变长子网掩码VLSM和CIDR
  • 具有简单的鉴别功能
  • 支持多播

RIP2的鉴别功能
鉴别:确认合法的信息包,目前支持纯文本的口令形式。

RIP2的鉴别报文格式
RIP_第5张图片


RIP 协议的优缺点

  • RIP协议最大的优点就是实现简单,开销较小
  • 问题: 好消息传播得快,而坏消息传播得慢。当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
  • RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
  • 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加

RIP_第6张图片

坏消息传播得慢 :

  1. R2 在收到 R1 的更新报文之前,还发送原来的报文,因为这时 R2 并不知道 R1 出了故障。
  2. R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说:“我到网 1 的距离是3,下一跳经过R2”。然后将此更新信息发送给R2。
  3. R2 以后又更新自己的路由表为“1, 4, R1”,表明“我到网 1 距离是 4,下一跳经过 R1”。
  4. 这样不断更新下去,直到 R 1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网 1 是不可达的。

这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。


例 :
假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”)

              N1        7        A
              N2        2        C
              N6        8        F
              N8        4        E
              N9        4        F

现在B收到从C发来的路由信息(这两列分别表示“目的网络”“距离”):

              N2        4
              N3        8
              N6        4
              N8        3
              N9        5

试求出路由器B更新后的路由表(详细说明每一个步骤)。
路由器B更新后的路由表如下:

      N1   7  A    无新信息,不改变
      N2   5  C    相同的下一跳,更新
      N3   9  C    新的项目,添加进来
      N6   5  C    不同的下一跳,距离更短,更新
      N8   4  E    不同的下一跳,距离一样,不改变
      N9   4  F    不同的下一跳,距离更大,不改变

例 2:
假定网络中的路由器A的路由表有如下的项目(格式同上题):

        N1          4          B
        N2          2          C
        N3          1          F
        N4          5          G

现将A收到从C发来的路由信息(格式同上题):

        N1          2
        N2          1
        N3          3
        N4          7

试求出路由器A更新后的路由表(详细说明每一个步骤)。
路由器A更新后的路由表如下:

N1   3  C    不同的下一跳,距离更短,改变
N2   2  C    相同的下一跳,距离一样,更新
N3   1  F    不同的下一跳,距离更大,不改变
N4   5  G    无新信息,不改变

你可能感兴趣的:(计算机网络,交换与路由)