“RIP”协议(原理+实例)

一、RIP相关介绍

1、RIP

RIP (Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议,他的中文名称叫做路由信息协议,但很少被使用。RIP是一种分布式的基于距离向量的路由选择协议,是互联网的标准协议,最大优点是简单。

2、距离(距离向量)解释

从一个路由器到直接连接的网络的距离定义为1。从一路由器到非直接连接的网络的距离是定义的路由器的数量再加1。加1是因为到达目的网络之后进行直接交付,而到直接连接的网络的距离已经定义为1。
如下图,路由器R1到网1和网2的距离为1,到网3的距离为2,到网4的距离为3

RIP协议的距离也称为跳数,每经过一个路由器,可以理解为跳一下,跳数就加1。RIP认为,好的路由就是它通过的路由器的数目少,即距离短,注意这个在后面理解原理的时候会用到。RIP只允许一条路径包含15个路由器,当跳数(距离)超过15时,则认为不可达。

3、RIP协议的特点

  • 仅和相邻路由器交换信息。如果两个路由器之间的通信不需要第三个路由器,则称其相邻。RIP规定,不相邻的路由器不交换信息。
  • 路由器交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表
  • 按固定的时间间隔交换路由信息。例如,每隔30秒,然后路由器根据收到的路由信息更新路由表。当网络拓扑发生变化时,路由器也及时向相邻路由器通告变化后的路由信息。

二、距离向量算法

上面的描述可以看出来,路由器之间路由表的更新,就是一个不断找最短距离的过程。这个过程中,一个路由器传给另外一个,另外一个再传给第三个。慢慢的,所有的路由器中的路由表都对应网络跳转的最小距离。这种更新的算法称为距离向量算法

算法描述

首先要知道,RIP报文每一个项目都有三个关键字段,即:目的网络、距离、下一跳路由器
对每一个路由器的相邻路由器发过来的RIP报文,都进行一下步骤

1、对地址为X的相邻路由器发过来的RIP报文,先修改报文中所有项目:把“下一跳”字段中的地址都改为X,并把所有的“距离”字段都增加1.每一个项目对应的到目的网络N、距离d、下一跳路由器X
2、对修改后的RIP报文的每一个项目,都进行一下操作:

若原来的路由表中没有目的网络N,则把这个项目添加到路由表中。
否则(即原来的路由表中有目的网络N,这时候就查看下一跳路由器)

若下一跳路由器地址为X,则把刚收到的项目替换原来路由表中的项目
否则(即这个项目,到目的网络N,但下一跳路由器不是X)

若收到的项目的距离小于路由表中的距离,则进行更新
否则什么也不做

3、若3分钟还没收到相邻路由器的更新路由表,则把子相邻路由器记为不可达的路由器,即把距离记为16。(大于15即不可达,上文提到过)
4、返回

三、实例

路由器R6的路由表

目的网络 距离 下一跳路由器
Net2 3 R4
Net3 4 R5

R4发给R6路由更新信息

目的网络 距离 下一跳路由器
Net1 3 R1
Net2 4 R2
Net3 1 直接交付

直接按照上述步骤先修改R4发来的RIP报文

目的网络 距离 下一跳路由器
Net1 3+1=4 R4
Net2 4+1=5 R4
Net3 1+1=2 R4

然后看修改后的RIP报文信息

  • 原路由表中没有Net1,直接把这个项目添加进去
  • 原路由表中有Net2,且其下一跳路由器跟R4中的相同,所以替换掉
  • 原路由表中youNet3,但是下一跳路由器不同,收到的项目距离小于原来的距离,所以替换掉

所以最终R6的路由表信息为

目的网络 距离 下一跳路由器
Net1 4 R4
Net2 5 R4
Net3 2 R4

四、注解

待更新ing

猜你喜欢

转载自blog.csdn.net/weixin_43716048/article/details/111145837
今日推荐