《RIP路由选择协议》由会员分享,可在线阅读,更多相关《RIP路由选择协议(8页珍藏版)》请在金锄头文库上搜索。
1、RIP路由选择协议一、 背景RIP(RoutingInformationProtocols,路由信息协议)是使用最广泛的距离向量协议,它是由施乐(Xerox)在70年代开发的。当时,RIP是XNS(XeroxNetworkService,施乐网络服务)协议簇的一部分。TCP/IP版本的RIP是施乐协议的改进版。RIP最大的特点是,无论实现原理还是配置方法,都非常简单。二、 工作原理RIP是一种简单的分布式的基于距离向量的路由选择协议。1. 度量值距离 “距离”的定义 n 从一路由器到直接连接的网络的距离定义为 1。n 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。n RIP
2、 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。 n RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。n RIP 允许一条路径最多只能包含 15 个路由器。n “距离”的最大值为16 时即相当于不可达,跳数为16的网络被认为不可达。可见 RIP 只适用于小型互联网。n RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。 2. 交换的信息 RIP报文 (1) 交换的内容是到本自治系统(AS)中所有往来的(最短)距离,以及到每个网络要经过的下
3、一跳路由器。路由表中与这些内容相关的字段会被封装在RIP报文中,在邻居路由器之间传送。 (2) 路由表的字段目的网络 :任何路由表中所包含的最重要信息就是到所知目的地的I P地址的网络号。一旦一台RIP路由器收到一个数据报文,就会查找路由表中的目的I P地址(的网络号)与收到报文的目的IP地址(的网络号)进行匹配,以决定从哪里转发那个报文。距离 :路由表中的度量域指出报文从起始点到特定目的地的总耗费。路由表中的度量是从路由器到特定目的地之间网络链路的耗费总和。RIP协议以“跳数”作为度量。下一跳:下一跳IP地址域包括到目的网络的路径上,下一个路由器接口的IP地址。如果目的IP地址所在的网络与路
4、由器不直接相连时,路由器表中此项为空,用“”来表示。路由变化标志域:路由变化标志域用于指出至目的I P地址的路由是否在最近发生了变化。这个域是重要的,因为R I P为每一个目的I P地址只记录一条路由。路由计时器域:有两个计时器与每条路由相联系,一个是超时计时器,一个是路由刷新计时器。这些计时器一同工作来维护路由表中存储的每条路由的有效性。3. 路由表的建立n 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。n 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。n 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳
5、路由器的地址。n RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。 4. 路由的更新 更新的算法距离向量算法 收到相邻路由器(其地址为 X)的一个 RIP 报文:(1) 先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地址都改为 X,并将所有的“距离”字段的值加 1。(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:若项目中的目的网络不在路由表中,则将该项目加到路由表中。 否则 若下一跳字段给出的路由器地址是同样的,则将收到的项目替换原路由表中的项目。 否则 若收到项目中的距离小于路由表中的距离,则进行更新,否则
6、,什么也不做。(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为16(距离为16表示不可达)。(4) 返回。看下面的例子: 图中的路由表字段为(目的网络,距离,下一跳路由) 路由表的维护(更新定时器) (关于这个知识点,我在上课的时候讲得不够准确,请以这个版本为准!)RIP为每个目的地只记录一条路由的事实要求RIP积极地维护路由表的完整性。通过要求所有活跃的RIP路由器在固定时间间隔广播其路由表内容至相邻的RIP路由器来做到这一点,所有收到的更新自动代替已经存储在路由表中的信息。 RIP依赖4个计时器来维护路由表:更新计时器(Update T
7、imer)路由超时计时器(Invalid Timer)路由刷新计时器(Flush Timer)路由保持计时器(Holddown Timer)(1) 更新计时器用于在节点一级初始化路由表更新。每个RIP节点只使用一个更新计时器,相反,路由超时计时器和路由刷新计时器为每一个路由维护一个。RIP路由器每隔3 0秒触发一次表更新。更新计时器用于记录时间量。一旦时间到, RIP节点就会产生一系列包含自身全部路由表的报文。这些报文广播到每一个相邻节点。因此,每一个RIP路由器大约每隔3 0秒钟应收到从每个相邻RIP节点发来的更新。注意在更大的基于RIP的自治系统中,这些周期性的更新会产生不能接受的流量。因
8、此,一个节点一个节点地交错进行更新更理想一些。RIP自动完成更新,每一次更新计时器会被复位,一个小的、任意的时间值加到时钟上。(2) 路由超时计时器,又名“无效计时器”有两种方式使路由变为无效:一是 :路由终止。二是 :路由器从其他路由器处学习到路由不可用。在任何一种情形下, RIP路由器需要改变路由表以反映给定路由已不可达。一个路由如果在一个给定时间之内没有收到更新就中止。比如,路由超时计时器通常设为180秒。当路由变为活跃或被更新时,这个时钟被初始化。180秒是大致估计的时间,这个时间足以令一台路由器从它的相邻路由器处收到6个路由表更新报文(假设它们每隔30秒发送一次路由更新),如果180
9、秒消逝之后, RIP路由器没收到关于那条路由的更新, RIP路由器就认为那个目的I P地址不再是可达的。因此,路由器就会把那条路由表项标记为无效。通过设置它的路由度量值为1 6来实现,并且要设置路由变化标志。这个信息可以通过周期性的路由表更新来与其相邻路由器交流。注意:对于RIP节点而言,16等于无穷。因此,简单的设置耗费度量值为16能作废一条路由。(3) 路由刷新计时器,又名“清除计时器”路由表中得无效项存在时间很短。即使表项保持在路由表中,报文也不能发送到那个表项的目的地址: RIP不能把报文转发至无效的目的地。一旦路由器把某条路由标识为无效,它会为该条路由初始化一个秒计时器:路由刷新计时
10、器。因此,在最后一次超时计时器初始化后180秒,路由刷新计时器被初始化。这个计时器通常设为90秒。如果路由更新在270秒之后仍未收到( 180秒超时加上90秒路由刷新时间),就从路由表中移去此路由(也就是刷新)。而为了路由刷新递减计数的计时器称为路由刷新计时器。这个计时器对于RIP从网络故障中恢复的能力绝对必要。(4) 路由保持计时器当一个路由器向外宣告了某条路由不可达后,它会初始化一个计时器,并在这个计时器递减计数的期间拒绝接收有关这条路由的更新消息。缺省值为180秒。路由保持计时器也是为每一条路由维护一个。当路由保持计时器倒计时完毕后,就开始接受来自其他来源的有关该路由得更新消息。这个计时
11、器常用于抑止路由循环。这些路由计时器的值都是可以在路由器中配置的。三、 收敛问题至此可见,RIP的更新方式比较简单,因此也导致了一些问题:(1) 通信链路可能会通过低效路径传递(2) 路由更新可能需要较长时间才能达到收敛。在这段时间内,整个路由域很不稳定,可能导致数据传输低效,甚至传递错误。收敛问题主要体现在路由循环问题上。下面来详细讨论这个路由循环的问题。1. 问题描述当网络有新加入的路由器或网络是,此信息(好消息)可以很快地传送给所有的路由器;当网络出现故障的时候,要经过比较长的时间才能把信息(坏消息)传给所有路由器。看下面的例子:这一特点就叫做“好消息传播得快,坏消息传播得慢”。这问题的
12、实质是一个“路由循环”问题(Routing Loops),也叫“路由环路”、“循环路由”、“无穷计数”问题。距离向量类的算法容易产生路由循环,RIP是距离向量算法的一种,所以它也不例外。2. 防范措施 为了避免这个问题,RIP等距离向量算法实现了下面4个机制。(1) 水平分割(splithorizon)水平分割保证路由器记住每一条路由信息的来源,并且不在收到这条信息的端口上再次发送它。这是保证不产生路由循环的最基本措施。但当物理拓扑结构是环形的时候,问题依然存在。(2) 毒性逆转(poisonreverse)运行从接收路由的端口发送与从这端口接收的路由有关的信息,但把距离设置为16。这对消除路
13、由循环很有帮助,它可以立即清除相邻路由器之间的任何环路。(3) 触发更新(triggerupdate)当路由表发生变化时,更新报文立即广播给相邻的所有路由器,而不是等待30秒的更新周期。同样,当一个路由器刚启动RIP时,它广播请求报文。收到此广播的相邻路由器立即应答一个更新报文,而不必等到下一个更新周期。这样,网络拓扑的变化会最快地在网络上传播开,减少了路由循环产生的可能性。(4) 抑制计时(holddowntimer),即路由保持计时一条路由信息无效之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新。如果,路由器从一个网段上得知一条路径失效,然后,立即在
14、另一个网段上得知这个路由有效。这个有效的信息往往是不正确的,抑制计时避免了这个问题,而且,当一条链路频繁起停时,抑制计时减少了路由的浮动,增加了网络的稳定性。即便采用了上面的4种方法,路由循环的问题也不能完全解决,只是得到了最大程度的减少。一旦路由循环真的出现,路由项的度量值就会出现计数到无穷大(CounttoInfinity)的情况。这是因为路由信息被循环传递,每传过一个路由器,度量值就加1,一直加到16,路径就成为不可达的了。RIP选择16作为不可达的度量值是很巧妙的,它既足够的大,保证了多数网络能够正常运行,又足够小,使得计数到无穷大所花费的时间最短。四、 RIPv1和RIPv2的区别
15、RIP-V2不是一个新的协议,它只是在RIPV1协议的基础上增加了一些扩展特性,以适用于现代网络的路由选择环境。这些扩展特性有: 每个路由条目都携带自己的子网掩码(支持可变长子网掩码) 路由选择更新更具有认证功能(鉴别功能) 每个路由条目都携带下一跳地址 外部路由标志 组播路由更新(多点播送RIPv2报文)最重要的一项是路由更新条目增加了子网掩码的字段,因而RIP协议可以使用可变长的子网掩码,从而使RIPV2协议变成了一个无类别的路由选择协议。这个“无类别的路由协议”是相对比较先进的技术,不作重点考查,大家有兴趣可以找资料了解一下。五、 RIP的优缺点1. RIP 协议最大的优点就是实现简单,开销较小。2. RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。3. RIP 存在的一个问题是收敛得慢,尤其是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。4. 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,