Alex_McAvoy

想要成为渔夫的猎手

RIP 协议

【概述】

路由信息协议(Routing Informatica Protocol,RIP),是内部网关协议 IGP 中最先得到广泛应用的协议,其是一种分布式的基于距离向量算法的路由选择协议,最大的优点就是简单

需要注意的是,RIP 是基于 UDP 协议的应用层协议

RIP 协议具有以下特点:

  • 仅与相邻路由器交换信息
  • 路由器交换的信息是当前路由器知道的全部信息,即自己的路由表
  • 按固定的时间间隔交换路由信息,一般为 $30$ 秒

【基本规定】

RIP 协议有以下基本规定:

  • 网络中的每个路由器都要维护从它自身到其他每一个目的网络的距离记录,这一组距离被称为距离向量
  • 距离被规定为跳数(Hop Count),同时,从一个路由器到直接连接的网络距离规定为 $1$,每经过一个路由器,距离加 $1$
  • 允许一条路径最多包含 $15$ 个路由器,即最多允许 $15$ 跳,当距离等于 $16$ 跳时,表示网络不可达
  • 认为好的路由就是通过的路由器的数目少,即优先选择跳数少的路径
  • 默认在任意两个使用 RIP 协议的路由器间每 $30$ 秒广播一次 RIP 路由更新信息,以便自动建立并动态维护路由表
  • 默认超时时间为 $180$ 秒
  • 不支持子网掩码的 RIP 广播,因此 RIP 中每个网络的子网掩码必须相同(RIP2 中,支持变长子网掩码与 CIDR)

【RIP 报文格式】

RIP 报文作为数据分装到 UDP 数据报中,RIP 报文的格式如下图

【收敛】

RIP 协议通过距离向量算法来完成路由表的更新

最开始时,每个路由器只知道与自己直接相连的网络,通过每 $30$ 秒的 RIP 广播,相邻两个路由器将自己的路由表发送给对方

于是,经过第一次 RIP 广播,每个路由器就知道与自己相邻路由器的路由表,即知道了与自己距离跳数为 $1$ 的网络的路由信息;经过第二次 RIP 广播,每个路由器就知道了与自己距离跳数为 $2$ 的网络的路由信息…

因此,在经过若干次 RIP 广播后,所有路由器都最终知道了整个网络的路由表,因此 RIP 最终是收敛(Convergence)

通过 RIP 协议收敛后,每个路由器到每个目标网络的路由都是距离最短,即跳数最少的,但此时可能存在另一条低时延但路由器较多的路由

【慢收敛现象】

RIP 限制了网络规模,路由链路长度最长为 $15$ 跳,同时,由于路由器间交换的是当前路由器的完整路由表,这就导致了网络规模越大开销也越大,因此其只适合小型网络

而当网络出现故障时,需要较长时间紧才能将此信息传送到所有路由器,这被称为慢收敛现象,即坏消息传得慢

慢收敛现象会导致更新过程的收敛时间过长,从而使得路由器可能接收无效路由信息,这就可能造成路由回路问题

【距离向量算法】

在采用 RIP 的路由器中,每一个路由表项都有三个项目:<目的网络 N,距离 d,下一跳路由器的地址 X>

在每次路由器对相邻路由器发送路由更新信息时,对发送过来的 RIP 报文,执行以下步骤:

1)对地址为 $X$ 的相邻路由器发来的 RIP 报文,修改此报文中的项目:将下一跳中的地址改为 $X$,所有距离值加 $1$

2)对修改后的 RIP 报文中的每一项目,进行以下步骤:

① 当原来的路由表中没有目的网络 $N$ 时,将该项目添加到路由表中

② 当原来的路由表中有目的网络 $N$,且下一跳路由器地址是 $X$ 时,用收到的项目替换路由表中原有的项目

③ 当原来的路由表中有目的网络 $N$,且下一跳路由器地址不是 $X$ 时,若收到的项目中的距离小于路由表中的距离,用收到的项目替换路由表中原有的项目

3)若在默认超时时间 $180$ 秒内,没有收到相邻路由器的更新路由表信息,就将该相邻路由器视为不可达的路由器,即将距离设为 $16$

感谢您对我的支持,让我继续努力分享有用的技术与知识点!