RIP协议的工作原理及仿真分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国宇航学会深空探测技术专业委员会第九届学术年会论文集
RIP协议的工作原理及仿真分析
李园利,王宇
(中国空间技术研究院西安分院,西安,710100) 摘 要:RIP(Routing Information Protocol )是一种应用较早、使用较普遍的基于距离向量算法
的内部网关路由协议。 本文阐述了该动态路由协议的工作原理以及路由信息的处理过程, 并通过OPNET 软件对其收敛性,协议开销,路由表的变化进行了仿真分析,总结出RIP存在的局限性,最后提出了优 化改进方案。 关键词:Bellman-ford算法;RIP;路由,OPNET
0 引言
随着网络的规模的不断扩大和互联网的迅猛发展,路由技术在网络中已逐渐成为关键部分。目前, 最主要的IP路由技术是链路状态算法和距离向量算法。链路状态算法(也称最短路径算法)发送路由 信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那 一部分。距离向量算法(也称为Bellman-Ford算法)则要求每个路由器发送其路由表全部或部分信息, 但仅发送到邻近结点上。 最基本的距离向量算法 Distance Vector Algorithm) RIP Routing Information ( 是 ( 路由信息协议。 是应用较早、 RIP 使用较普遍的内部网关协议 Interior Gateway Protocol, ) ( IGP , Protocol ) 它使用“跳数”(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 ⎪ D(i, j ) = ⎨∞ ⎪min[d (i, k ) + D(k , j )] ⎩
j=i ; j不可达; k为i直接邻居。
698
中国宇航学会深空探测技术专业委员会第九届学术年会论文集 节点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
所示:
699
中国宇航学会深空探测技术专业委员会第九届学术年会论文集
图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链路,路由器和局域
700