当前位置:文档之家› RIP协议的工作原理及仿真分析

RIP协议的工作原理及仿真分析

中国宇航学会深空探测技术专业委员会第九届学术年会论文集 698 RIP协议的工作原理及仿真分析 李园利,王宇 (中国空间技术研究院西安分院,西安,710100)

摘 要:RIP(Routing Information Protocol )是一种应用较早、使用较普遍的基于距离向量算法

的内部网关路由协议。本文阐述了该动态路由协议的工作原理以及路由信息的处理过程,并通过OPNET

软件对其收敛性,协议开销,路由表的变化进行了仿真分析,总结出RIP存在的局限性,最后提出了优化改进方案。 关键词:Bellman-ford算法;RIP;路由,OPNET

0 引言 随着网络的规模的不断扩大和互联网的迅猛发展,路由技术在网络中已逐渐成为关键部分。目前,最主要的IP

路由技术是链路状态算法和距离向量算法。链路状态算法(也称最短路径算法)发送路由

信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分。距离向量算法(也称为Bellman-Ford算法)则要求每个路由器发送其路由表全部或部分信息,

但仅发送到邻近结点上。最基本的距离向量算法(Distance Vector Algorithm)是RIP(Routing Information

Protocol )路由信息协议。RIP是应用较早、使用较普遍的内部网关协议(Interior Gateway Protocol,IGP),

它使用“跳数”(metric)来衡量到达目标地址的路由距离,著名的路径刷新程序Routed便是根据RIP

实现的。RIP协议被设计用于使用同种技术的中型网络,因此适应于大多数的校园网和使用速率变化不是很大的地区性网络,目前,它已成为路由器、主机路由信息传递的标准之一。本文主要阐述了RIP

路由技术的基本工作原理,并用OPNET软件对其收敛性和协议开销进行了仿真分析,总结出RIP协议的优缺点和其适应范围,针对其存在的问题,提出了优化改进方案。

1 RIP路由的基本原理 RIP 路由协议是一种基于Bellman-ford的距离向量算法的内部网关路由协议。它实际上是工作在相

邻路由器之间的,运行该协议的邻居路由器通过互相学习和交换路由信息的距离向量,得知网络的连接情况,从而实现各网络之间的连通。 Bellman-ford算法是一种典型的点到多点的路由算法,即寻找网络中一个节点到其它所有节点的路

由。在一个网络图中,公式D(i,j)表示节点i、j之间的最佳度量;d(i,j)表示节点i、j

之间的度量,若节点

直接相连时,d(i,j)表示其连接成本;否则,d(i,j)表示无穷大。因此,最佳度量的计算公式为:

0 j=i

(,) jmin[(,)(,)] k DijdikDkj

⎧⎪=∞⎨⎪+⎩;不可达;

为i直接邻居。 中国宇航学会深空探测技术专业委员会第九届学术年会论文集 699 节点i从相邻k收到k到j的度量D(k,j),将D(k,j)加上i到k的度量d(i,k),i比较从所有实体得到的数值,取最小数,即i到j的最佳度量,且对应的k为路由的下一跳实体。以此类推,实体k

将用同样的方法获得

到j的下一跳实体。

2 RIP协议的工作原理 RIP 协议每30秒向相邻路由器发送一次路由更新信息,同时监听来自网络中的其它相邻路由器的

路由信息,从而实现对本地路由表的动态维护,以确保IP层发送报文时选择正确的路由。

2.1 RIP路由运行流程 RIP的工作流程很简单,如图1-1。当路由器A刚启动RIP时,以广播的形式向相邻路由器B发送请

求报文,路由器B的RIP收到请求报文后,响应请求,回发包含本地路由表信息的响应报文。路由器A

的RIP收到响应报文后,修改本地路由表的信息,同时以触发修改的形式向相邻路由器B广播本地路由修改信息。路由器B

收到触发修改报文后,又向其各自的相邻路由器发送触发修改报文。在一连串的触

发修改广播后,各路由器的路由都得到修改并保持最新信息。同时,RIP每30

秒向相邻路由器广播本地

路由表,各相邻路由器的RIP

在收到路由报文后,对本地路由进行的维护,在众多路由中选择一条最佳

路由,并向各自的相邻网广播路由修改信息,使路由达到全局的有效。运行RIP

协议的路由器并不是把

每一条新的路由信息都添加到自己的路由表中。而是根据Bellman-ford

算法的最佳度量的计算公式获得

D(i,j),并根据D(i,j)的结果,更新路由条目: (1)如果路由条目是新的,则接受路由器将把该条目加入路由表中; (2)如果此路由已存在于路由表,但新的路由条目具有不同的来源,并且该条目具有更低的跳数,则路由表将用新的条目替换已存在的条目; (3)如果此路由已存在于路由表中,并且两个条目的来源相同,则路由表将用新的条目替换已存在的条目,尽管两者的度量值一样。

图1-1 RIP 路由运行流程 2.2 RIP协议处理过程 RIP协议的处理过程就是RIP路由器对消息输入和输出处理过程,其输入和输出处理大致如下图1-2所示: 中国宇航学会深空探测技术专业委员会第九届学术年会论文集 700 图1-2 RIP协议处理过程框图 输入处理:主要是指路由器协议软件对在520号UDP端口收到的数据报进行处理。首先,必须先做一定的格式检查,检查通过后,再分别对输入的Request(请求报文)和Response

(应答报文)做相应

的处理。 (1)对于Request信息的处理,RIP采用逐个路由项(Entry)地判断。如果没有任何的Entry,则不会返回Response。如果在Request中,只有一个Entry,并且Address Family Identify为0,Metric为16

,那么

就要回复自己所有的路由条目作为Response

返回信息。除此之外,则是要求部分路由,处理很简单,

逐个检测Request中的Entry,在自己的路由数据库中查找Entry

的网络字段,如果有匹配的,则用自己

的Metric覆盖Entry中的Metric;如果没有匹配的,则直接设置Entry中的Metric为Infinity(即16

)。一旦

所有Entries都检测了一遍,则可以回复Response给发送者了。

(2)Response报文:因为指定查询、周期性更新或主动触发更新等原因而更新路由表,Response信息都会被生成,并发布出去。一旦Response被认为是有效的,将会检测路由表中的每一项;并开始针对各个Entry的Metric

和其它字段进行检测,如果任何一个失效,则忽略它,记录下错误信息,然后

直接检测下一个Entry。如果某个Entry是有效的,则更新它的Metric值,若超过16就认为是无穷大

(infinity)。现在,如果在路由表中没有检测到一条明确指向该目的地的路由,则将新的Entry添加到路

由表,除非该Entry的Metric是infinity;然后,初始化该路由条目的超时计时器。若该条目的垃圾计时

器开始运作,则关闭超时计时器。记录路由的变化,并将该更新发布出去。如果检测到路由表中已有一条明确指向该目的地的路由,则比较已有条目的下一跳地址和Response

的来源地址:如果是一样的,

则说明已有条目还是有效的,立即初始化其超时计时器;再比较两者的Metric值:如果Response中的Entry的Metric和已有条目的Metric不一样,则采纳新的Metric,更新老的Metric;标记路由更新,并将该更新通告出去;如果新的Metric是infinity,则删除该已有条目;如果不是,则初始化超时计时器。如果Response中的Entry的Metric和已有条目的Metric一样,则直接初始化超时计时器。 输出处理:用于产生包含全部或部分路由表的响应信息的处理,可能由于输入进程发现请求或路由修改而触发。

3 RIP路由协议的仿真实验 本实验的环境如下:机器的操作系统为Widows XP,网络仿真平台为 OPNET Modeler14.5。网络模型的规模为10kmx10km

的大小。该网络由四个路由器组成,每个路由器连接两个局域网

(100BaseT_LAN),还有一组故障设定组件,路由器之间四条链路采用PPP_D3

链路,路由器和局域中国宇航学会深空探测技术专业委员会第九届学术年会论文集 701 网之间采用100Base链路。RIP 路由协议的定时器设置为:更新间隔30sec,超时时限180sec,回收时限240sec;故障设定为:router1与router2之间的链路200秒后失效,500秒后恢复。 实验的仿真时间设定为10分钟,选取的相关数据有:收敛性(RIP Network Convergence),协议开销(RIP Traffic Received/Sent(bits/sec)),其仿真结果如下图1-3所示;路由表(Router1 routing table

的变化如图1-4所示:

(a)路由收敛仿真图 (b) RIP路由开销仿真结果 (c) RIP链路修复仿真结果 图1-3 RIP协议仿真结果

仿真结果分析:从图(a)中可以看出RIP网络的收敛周期在不断变化,并且每次的收敛持续时间很短;图(b)中我们发现RIP 会定时产生协议开销,并这种开销一直维持在较高的水平上,在1800到3800bits/sec

之间,这将占用很大的带宽;图(c)中,在200秒时,链路失效,因此链路上的流量变为零,当500秒链路恢复时,该链路上的流量没有马上恢复失效前的正常流量,而是延后了大概10

秒左右。由此,我们

可以得出RIP具有路由收敛缓慢,并且协议开销大的局限性。

仿真结果分析:由这些路由表中可以看出:(1)200秒时,到达地址192.0.4.0,192.0.5.0,192.0.6.0的度量都为1,并下一跳都为192.0.3.2(路由器2的地址),此时由于路由器1、2 之间链路失效,Router1 的路由表发生变化,说明Router1 选择了另一条路由;设置500秒后链路恢复,而510 秒时路由表依然未恢复正常,直到517

秒时才恢复正常,说明链路恢复正常时,路由表要恢复正常需要一段延迟,大约

17秒,这将网络性能产生一定的影响。(2)4张路由表中都存在相同的信息量,如果路由节点非常多,

这将造成每次更新后的路由表非常大,不利于信息的快速处理。

(1)200秒时router1的路由表 (2)500秒时Router1的路由表

相关主题