1、OSPF是真正的LOOP- FREE(无路由自环)路由协议。源自其算法本身的优点。(链路状态及最短路径树算法)
2、OSPF收敛速度快:能够在最短的时间内将路由变化传递到整个自治系统。
3、提出区域(area)划分的概念,将自治系统划分为不同区域后,通过区域之间的对路由信息的摘要,大大减少了需传递的路由信息数量。也使得路由信息不会随网络规模的扩大而急剧膨胀。
4、将协议自身的开销控制到最小。见下:
1)用于发现和维护邻居关系的是定期发送的是不含路由信息的hello报文,非常短小。包含路由信息的报文时是触发更新的机制。(有路由变化时才会发送)。但为了增强协议的健壮性,每1800秒全部重发一次。
2)在广播网络中,使用组播地址(而非广播)发送报文,减少对其它不运行ospf 的网络设备的干扰。
3)在各类可以多址访问的网络中(广播,NBMA),通过选举DR,使同网段的路由器之间的路由交换(同步)次数由 O(N*N)次减少为 O (N)次。
4)提出STUB区域的概念,使得STUB区域内不再传播引入的ASE路由。
5)在ABR(区域边界路由器)上支持路由聚合,进一步减少区域间的路由信息传递。
6)在点到点接口类型中,通过配置按需播号属性(OSPF over On Demand Circuits),使得ospf不再定时发送hello报文及定期更新路由信息。只在网络拓扑真正变化时才发送更新信息。
5、通过严格划分路由的级别(共分四极),提供更可信的路由选择。
6、良好的安全性,ospf支持基于接口的明文及md5 验证。
7、OSPF适应各种规模的网络,最多可达数千台。
二、EIGRP协议
EIGRP和早期的IGRP协议都是由Cisco发明,是基于距离向量算法的动态路由协议。EIGRP(Enhanced Interior Gateway Routing Protocol)是增强版的IGRP协议。它属于动态内部网关路由协议,仍然使用矢量-距离算法。但它的实现比IGRP已经有很大改进,其收敛特性和操作效率比IGRP有显著的提高。
EIGRP的收敛特性是基于DUAL ( Distributed Update Algorithm ) 算法的。DUAL 算法使得路径在路由计算中根本不可能形成环路。它的收敛时间可以与已存在的其他任何路由协议相匹敌。
EIGRP协议主要具有如下特点:
1. 精确的路由计算和多路由的支持
EIGRP协议继续了IGRP协议的最大的优点:矢量路由权。EIGRP协议在路由计算中要对网络带宽,网络时延,信道占用率,信道可信度等因素作全面的综合考虑,所以EIGRP的路由计算更为准确,更能反映网络的实际情况。同时EIGRP协议支持多路由,使路由器可以按照不同的路径进行负载分担。
2. 较少的带宽占用
使用EIGRP协议的对等路由器之间周期性的发送很小的hello报文,以此来保证从前发送报文的有效性。路由的发送使用增量发送方法,即每次只发送发生变化的路由。发送的路由更新报文采用可靠传输,假如没有收到确认信息则重新发送,直至确认。EIGRP还可以对发送的EIGRP报文进行控制,减少EIGRP报文对接口带宽的占用率,从而避免连续大量发送路由报文而影响正常数据业务的事情发生。
3. 无环路由和较快的收敛速度
路由计算的无环路和路由的收敛速度是路由计算的重要指标。EIGRP协议由于使用了DUAL算法,使得EIGRP协议在路由计算中不可能有环路路由产生,同时路由计算的收敛时间也有很好的保证。因为,DUAL算法使得EIGRP在路由计算时,只会对发生变化的路由进行重新计算;对一条路由,也只有此路由影响的路由器才会介入路由的重新计算。
4. MD5认证
为确保路由获得的正确性,运行EIGRP协议进程的路由器之间可以配置MD5认证,对不符合认证的报文丢弃不理,从而确保路由获得的安全。
5. 任意掩码长度的路由聚合
EIGRP协议可以通过配置,对所有的EIGRP路由进行任意掩码长度的路由聚合,从而减少路由信息传输,节省带宽。
6. 同一目的但优先级的路由可实现负载分担
去往同一目的的路由表项,可根据接口的速率、连接质量、可靠性等属性,自动生成路由优先级,报文发送时可根据这些信息自动匹配接口的流量,达到几个接口负载分担的目的。
7. 协议配置简单
使用EIGRP协议组建网络,路由器配置非常简单,它没有复杂的区域设置,也无需针对不同网络接口类型实施不同的配置方法。使用EIGRP协议只需使用router eigrp命令在路由器上启动EIGRP 路由进程,然后再使用network 命令使能网络范围内的接口即可。
三、OSPF和EIGRP的比较
OSPF和EIGRP都是收敛速度较快并且不会形成环路的算法,网络带宽占用较小,使用灵活,安全性较好的路由协议。但是从以上分析可以看出,各自还是有优缺点。
(一)、OSPF的缺点
1、配置相对复杂。由于网络区域划分和网络属性的复杂性,需要网络分析员有较高的网络知识水平才能配置和治理OSPF网络。
2、路由负载均衡能力较弱。OSPF虽然能根据接口的速率、连接可靠性等信息,自动生成接口路由优先级,但通往同一目的的不同优先级路由,OSPF只选择优先级较高的转发,不同优先级的路由,不能实现负载分担。只有相同优先级的,才能达到负载均衡的目的,不象EIGRP那样可以根据优先级不同,自动匹配流量。
(二)、EIGRP的缺点
1. EIGRP没有区域(AREA)的概念,而OSPF在大规模网络的情况下,可以通过划分区域来规划和限制网络规模。所以EIGRP适用于网络规模相对较小的网络,这也是矢量-距离路由算法(RIP协议就是使用这种算法)的局限所在。
2. 运行EIGRP的路由器之间必须通过定时发送HELLO报文来维持邻居关系,这种邻居关系即使在拨号网络上,也需要定时发送HELLO报文,这样在按需拨号的网络上,无法定位这是有用的业务报文还是EIGRP发送的定时探询报文,从而可能误触发按需拨号网络发起连接,尤其在备份网络上,引起不必要的麻烦。所以一般运行EIGRP的路由器,在拨号备份端口还需配置Dialer list和Dialer group,以便过滤不必要的报文,或者运行TRIP协议,这样做增加路由器运行的开销。而OSPF可以提供对拨号网络按需拨号的支持,只用一种路由协议就可以满足各种专线或拨号网络应用的需求。
3. EIGRP的无环路计算和收敛速度是基于分布式的DUAL算法的,这种算法实际上是将不确定的路由信息(active route)散播(向邻居发query报文),得到所有邻居的确认后(reply报文)再收敛的过程,邻居在不确定该路由信息可靠性的情况下又会重复这种散播,因此某些情况下可能会出现该路由信息一直处于active状态(这种路由被称为stUCk in active route),并且,假如在active route的这次DUAL计算过程中,出现到该路由的后继(successor)的metric发生变化的情况,就会进入多重计算,这些都会影响DUAL算法的收敛速度。而OSPF算法则没有这种问题,所以从收敛速度上看,虽然整体相近,但在某种非凡情况下,EIGRP还有不理想的情况。
4、EIGRP是Cisco公司的私有协议。Cisco公司是该协议的发明者和唯一具备该协议解释和修改权的厂商。假如要支持EIGRP协议需向Cisco公司购买相应版权,并且Cisco公司修改该协议没有义务通知任何其他厂家和使用该协议的用户。而OSPF是开放的协议,是IETF组织公布的标准。世界上主要的网络设备厂商都支持该协议,所以它的互操作性和可靠性由于公开而得到保障,并且在众多的厂商支持下,该协议也会不断走向更加完善。
附录: Quidway(R) 系列路由器对OSPF的支持
Quidway(R) 系列路由器上所实现的OSPF软件遵循 Internet RFC2328所描述的协议文本,下面列出一些主要特色:
支持STUB区域:定义STUB区域以节省该区域内路由器引入ASE路由时的开销。也可以用该命令过滤区域间路由。
支持按需拨号:OSPF 按需拨号(OSPF over On Demand Circuits)是对OSPF协议的一种改进,它通过抑制HELLO报文和连接状态广播报文的定时传送,使得协议在ISDN、X.25 、SVCs 和 拨号线等按需拨号网上运行得更为有效。
丰富的路由策略:支持引入其它路由协议发现的路由。支持路由过滤功能。
授权验证字:OSPF对同一区域内的相邻路由器之间可以选择明文验证字和MD5加密验证字两种报文合法性验证手段。
路由器接口参数的灵活配置:在路由器的接口上,可以配置OSPF的参数包括:输出花费、HELLO报文发送间隔、重传间隔、接口传输时延、路由优先级、相邻路由器"死亡"时间、报文验证方式和报文验证字等。
虚连接: Quidway(R) 系列路由器的OSPF支持虚连接。以保证和增强骨干区域的连通性。
支持多种接口类型:支持协议中规定的广播,NBMA,点到多点,点到点四种接口类型。并支持将某种类型的接口任意改为其它类型。
支持配置邻接点:在NBMA等不支持多播发送报文的网络上,可以手工配置邻接点,单播发送协议报文。
支持区域间路由聚合: 假如某区域中存在一些连续的网段,可以在它的区域边界路由器(ABR)上使用聚合命令将这些连续的网段聚合成一个网段。可以减少其它区域中链路状态数据库(LSDB)的规模。
丰富的调试信息: Quidway(R) 系列路由器的OSPF,提供了丰富的调试信息帮助用户诊断故障。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05