RIP和OSPF的区别

RIP和OSPF是两种内部网关协议,二者均属于动态路由协议。其中,RIP是出现最早的一种动态路由协议,在算法实现上较简单,在早期的小型简单网络中具有较好的应用效果。但是,随着网络的发展,网络规模扩大且愈加复杂,使得RIP无法满足网络需求,为此OSPF协议得到了更广泛的应用。OSPF协议所采用的实现机制和算法虽然相对较复杂,但在处理大规模网络的路由学习和路径选择问题上更具优势。

RIP和OSPF的区别
RIP和OSPF在具体实现上存在较大区别,主要体现在路由算法和路由更新方式上,其次它们的邻居间可交互报文类型、协议报文交互方式、管理距离、防环机制、网络规模限制等方面也存在较大差异。

路由算法
1、RIP路由算法
RIP主要采用距离矢量算法计算路由,当发生路由更新时,通过距离矢量叠加的方式直接计算路由,并根据路由开销越小越优先的原则进行路由加表,路由的度量值(开销)由跳数决定。当跳数超过15时,就认为网络不可达。
距离矢量算法示例图

例如,假设存在上图所示网络,且Router 1的路由表中已增加直连网络192.168.0.0的路由信息,如图2-2中(a)所示,而Router 2、3中还未同步到此路由更新。此时,路由计算过程如下:

(1) 对于Router 2,当从Router 1发来的更新报文中学习未知网络192.168.0.0的路由时,会在Router 1的路由基础上进行矢量叠加,距离加1,且下一跳置为报文发送端口G1/2的地址,路由信息如下图中(b)所示。

(2) 对于Router 3,当从Router 2发来的更新报文中学习未知网络192.168.0.0的路由时,会在Router 2的路由基础上进行矢量叠加,距离再加1,下一跳同样置为报文发送端口G2/2的地址,路由信息如下图中(c)所示。
去往192.168.0.0网络的路由信息示意图

2、OSPF路由算法
OSPF是一种基于链路状态(Link State, LS)的协议,根据链路带宽来计算路由开销,每台路由器独立维护一张LSDB(Link State DataBase,链路状态数据库),当链路发生变化时,先同步LSDB,再通过SPF(Shortest Path First, 最短路径优先)算法计算获得SPT(Shortest Path Tree,最短路径树),最后更新路由表,如下图所示:
OSPF路由计算过程示意图

路由开销计算
OSPF路由开销为沿途入接口开销的总和,接口开销通过如下公式计算:
接口开销 = 参考带宽 / 接口链路带宽
接口开销计算采用向上取整的方式,参考带宽默认值一般为100Mbps。
OSPF路由开销计算过程示意图

例如,假设存在如上图所示网络,当Router 3学习未知网络192.168.0.0的路由时,路由开销计算如下:
入接口G2/1路由开销 = 100M / 10M = 10;
入接口G3/1路由开销 = 100M / 1000M = 0.1,向上取整为1;
路由开销 = 入接口G2/1路由开销 + 入接口G3/1路由开销 = 11。

 SPF算法
SPF算法中,将每台路由设备当作一个节点(本端设备作为根节点),链路状态信息由带有链路开销值(计算方法参考路由开销计算)的有向线段表示,通过节点加有向线段的方式描绘整个网络拓扑,例如图(a)。然后,基于Dijkstra算法计算从本端(根节点)去往各个节点的开销最小的路径,最终获得无环路的最短路径树图(b),根据SPT就可以更新路由表。
SPF算法中网络拓扑结构和计算后的SPT示意图

对比分析
RIP采用的是距离矢量算法计算路由,算法原理较简单,因此实现和维护管理都比较容易,但网络规模受到跳数限制(大于15即认为不可达),且直接以路由跳数决定路由优劣,在一些场景下的路由选择可能并非最优。
OSPF采用SPF算法计算路由,算法相对较复杂,实现和维护较困难,但不受路由跳数约束,可以适用于较大规模的网络,且基于链路带宽度量路由的策略,在一些场景下路由选择相对更加合理。
例如,假设存在下图所示网络,对于目的网络192.168.0.0/24,Router 2有两条路径可供选择,其中,路径①跳数为1,带宽为10M;路径②跳数为2,带宽为1000M。对于数据转发效率来说,路径②应比路径①更优,但RIP协议仅简单地根据跳数大小判断路径①更优,而OSPF协议通过链路带宽计算路由开销的结论为路径②更优,OSPF的度量方式明显更加符合实际情况。
路由计算和选择示意图

路由更新方式
RIP路由更新
RIP协议主要基于四个定时器进行路由更新与维护,分别为更新定时器、无效定时器、清除定时器和抑制定时器。RIP的整个路由维护更新过程的覆盖范围为自治系统,当发生路由更新时,同一自治系统下所有路由器都会进行相应的更新过程。
四个定时器的作用如下:
● 更新定时器:决定定时给邻居发送更新报文的时间间隔;
● 无效定时器:决定一条路由信息的有效时长;
● 清除定时器:决定彻底清除无效路由的时间;
● 已知定时器:决定抑制一条无效路由更新的时长,此定时器主要用于防止出现路由状态反复变化导致路由震荡的问题;
基于四个定时器,RIP路由更新维护过程如图所示:
RIP路由定时更新维护过程示意图

由于采用定时更新方式时路由收敛速度较慢,因此,RIP中还增加了触发更新机制。若开启了触发更新,定时更新会自动关闭,当路由信息发生变化时,路由器会立即向邻居同步路由变化信息,加快路由收敛。

OSPF路由更新
OSPF协议对自治系统进行区域划分,并基于LSA(Link-State Advertisement,链路状态通告)和LSDB进行路由更新维护。同一OSPF区域内的路由器维护相同的LSDB,只有当链路状态发生变化时,才会触发路由更新,此时,同一区域内路由器会先进行LS同步,区域间的路由更新同步则由处于区域边界的路由器(也称ABR)完成路由更新后同步到其他区域,通过这个机制减少网络拓扑变化造成的链路状态信息交互量。
OSPF路由更新过程示意图

例如,假设存在如上所示网络拓扑,R1、R2和R3的G3/1口在Area 0,R3的G3/2、R4在Area 1。若路由器R1新增直连网络192.168.0.0,此时,网络中路由更新过程大致为:
(2) R1更新本地LSDB并计算、更新路由表,同时以LSA 1的形式向同区域的R2同步此LS;
(3) R2收到后更新本地LSDB并计算、更新路由表,同时以LSA 1的形式将此LS同步给R3;
(4) R3收到R2的报文后,更新本地LSDB并计算、更新路由表,然后从端口G3/2以LSA 3的形式同步给相邻区域Area 1的路由器;
(5) R4收到R3的报文后,更新本地LSDB并计算、更新路由表;
在多路访问网络中,OSPF还在区域内增加了DR选举机制,规定非DR、BDR的路由器(DR other)只和DR、BDR交互报文,DR other相互之间不进行报文交互,以此减少报文交互量,节约资源。

 对比分析
RIP中有定时更新维护路由和触发更新两种方式,一般系统默认采用定时更新方式。若采用定时更新方式,当发生网络故障时,由于四个定时器的约束,整个网络完成路由同步所需的时间较长。此外,由于RIP的更新域为整个网络,即当某一处网络拓扑发生变化,同一自治系统下所有路由器都要同步进行更新操作,影响范围较广,整个网络路由收敛速度较慢。由于信息同步慢,还可能出现部分路由器更新未及时导致产生路由环路的问题。
OSPF中只有发生链路状态更新时才会进行路由更新维护,能节约资源,且采用了区域划分的机制,按区域进行链路状态同步,减少信息交互量,路由收敛速度较快。此外,OSPF不是直接进行路由更新,而是在区域内同步LSDB后通过SPF算法计算获得无环路的最短路径树(SPT),且有骨干区域和非骨干区域的区分,非骨干区域只能与骨干区域相连和交互信息,通过这些机制避免路由环路问题。
例如,假设存在如图2-9所示网络,网络192.168.0.0突然出现故障,则RIP(采用定时更新方式时)和OSPF的表现分别如下:
● RIP协议中,R1会在本地删除对应路由,但是R2不会立即感知到这个变化,而是等无效定时器计时超时,才会将对应路由置为无效,在这个计时等待期间,当R1收到R2的更新报文时,会从中学习自己未知的192.168.0.0网络的路由,且下一跳指向R2,而R2中去往192.168.0.0网络的路由的下一跳指向R1,形成路由环路。在故障产生到R2彻底删除对应路由,中间需要花费几分钟时间。
● OSPF协议中,假设3台路由器均在同一区域,R2、R3会先同步这条链路变化,然后各自根据LSDB计算SPT,完成路由更新,虽然过程相对复杂,但信息传递时间花费远低于RIP,且能避免路由环路问题。
路由更新示意图

其它
● 邻居间可交互报文差异:RIP中运行了RIP协议的直连双方之间都可以交互报文,没有限制;OPSF中有邻居、邻接关系的设定,建立邻居关系的双方只能交互Hello报文,而建立邻接关系的双方可以交互所有类型OSPF报文,能交互链路更新信息。
● 报文交互方式:RIP使用UDP数据报传送协议报文,端口号为520,而OSPF将协议报文封装在IP包中进行传送,OSPF的协议号为89。
● 管理距离:RIP的管理距离往往比OSPF要大,具体默认值在不同厂商设备中规定不同,例如,在锐捷网络的设备中,RIP路由的管理距离默认为120,OSPF路由的管理距离默认为110。
● 防环机制:RIP中主要有水平分割、毒性逆转和触发更新3种防环机制;OSPF协议在算法本身上就能够达到防环效果,一般不需要额外的防环机制。
● 网络规模限制:RIP中规定当转发跳数超过15即认为网络不可达,因此所能应用的网络最大直径为15,只能用在中小型网络中;OSPF中没有跳数限制,可以用在较大规模的网络中。

综合所述,RIP和OSPF的区别主要包含如下
RIP和OSPF的区别

ICP备案号:晋ICP备18007549号-1
站长微信:13613567205