才子佳人博客

我的故事我讲述

详解基于距离向量的路由选择协议:RIP协议算法
 
来源:xjh  编辑:xjh  2017-11-08

1、RIP协议的概念

路由信息协议RIP是一种分布式的基于距离向量的路由选择协议,属于内部网关协议。RIP协议中的“距离”也称为“跳数”,因为每经过一个路由器,跳数就加1。协议规定同一自治系统(A.S.)中的路由器每 30秒会与相邻的路由器交换路由表信息,以动态收敛方式建立路由表。当存储转发数据报时,RIP将选择一条距离最小的路由。

记住:RIP协议中,仅和相邻路由器交换自己的路由表信息,并且是按固定时间间隔交换。最大优点是实现简单,开销小。但缺点是规模有限,因最大距离是15,16为不可达,仅适用于小规模网络。另外,当网络出现故障时,要经过比较长的时间才能将此信息相互传送到所有的路由器中,这是个主要缺点。具体算法如下:

2、算法

对每一个相邻路由器发送过来的RIP报文,进行以下步骤:

(1)对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有的"距离"字段的值加1。每个项目都有三个关键数据,即:目的网络N,距离是d,下一跳路由器是X。

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

若原来的路由表中没有目的网络N,则把该项目添加到路由表中;

否则(即:原来的路由表中有目的网络N)

{
    若下一跳路由器地址是X,则直接把收到的项目替换原路由表中的项目(不论距离变大还是变小,以最新为原则,故直接修改);
     
   否则 (即:到目的网络N,但下一跳路由器地址不是X)

   {

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

}

(3)若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可到达的路由器,即把距离设置为16。

(4)返回。

上述算法用伪代码表示如下,更简洁:


简言之,RIP协议要领是用相邻路由器的路由表来更新自己的旧路由表,大致方法是比对两个路由表的条目:1)没有的给它添加进来;2)新旧表中目的网络和下一跳条目一样的直接覆盖旧的,采用新的;3)新旧表中目的网络和下一跳条目不一样,则采用距离小的条目。

3、RIP2的报文最多可包含25条路由,故报文最大长度为4+20*25=504字节,RIP2报文使用UDP,端口号520进行传送,报文格式如下:



来源参考:
谢希仁,《计算机网络(第5版)》,电子工业出版社,p148-150


分类:网络日志| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: