关于路由选择协议OSPF协议的认识
关于对路由协议的认识,我们首先要从根本上了解什么是路由协议,路由协议的作用有哪些?在计算机网络的网络层所使用的设备叫做路由器,而路由协议就是路由器在源IP数据包发送给目的地址时所预先规定的规则和标准,路由选择协议就是运行在路由器上,起着进行路径选择的功能。对于路由选择的核心就是路由算法,路由算法应具有算法必须是正确和完整的、算法在计算上应简单、算法应适应通信量和网络拓补的变化、算法应具有稳定性、算法应是公平的、算法是最佳的等特点。
由于目前的网络规模非常大,并且许多单位不愿意外界了解本单位内部网络的布局细节和本部门所采用的路由选择协议,所以需要使用分层次路由选择协议,因此因特网把整个互联网分成了许多较小的自治系统AS,由此路由协议分成两大类(1)AS内部的内部网关协议IGP(2)AS之间的外部网关协议EGP(注:由于历史原因许多有关TCP/IP的文献把网络层所使用的路由器称为网关)。而内部路由器协议又具体分为RIP和OSPF协议。接下来了解我们的核心内容:关于OSPF的认识。
在因特网标准协议【RFC 2328】中这样规定:OSPF is a link state routing protocol. Such protocols are also referred to in the literature as SPF-based or distributed-database protocols.它的意思就是OSPF是一种链路状态路由协议,这样的协议在文献中也称为基于SPF或分布式数据库协议。所以国人翻译过来OSPF就是开放最短路径优先协议,
之前内部路由协议使用的是RIP,由于RIP协议存在着好消息传播的快,而坏消息传播的慢的特点,在RIP协议下,若网络出现故障,往往路由信息交换需要较长的时间。针对此缺点,在1989年开发出了OSPF协。
一OSPF协议的主要特点
OSPF最主要的特征就是使用分布式的链路状态协议,在向本AS 中所有路由器发送消息时使用洪泛法,通过所有输出端口向所有相邻的路由发送消息,消息的内容就是与本路由器相邻的所有路由器的链路状态(链路状态就是说明本路由器都和那些路由器相邻,已经链路的度量,度量也可以成为代价),只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送消息。由此可以知道,在经过一段时间后,各个路由器中的路由表都可以建立一个一致的链路状态数据库即整个网路的拓扑结构图。通过网络拓扑图路由器可以知道整个AS 中有多少路由器,哪些路由器是相连的,并且代价是多少,并因此构造出自己的路由表。
OSPF的链路状态数据库能够较快的进行更新,使各个路由器能够及时更新自己的路由表,这也是OSPF协议的重要优点。OSPF的另一重要优点就是此协议适用于规模较大的网络,在OSPF协议中,OSPF把一个AS划分为若干小的区域,这样的区域内的路由器最好不能超过200个,OSPF的划分法如下图所示,区域划分的好处就是把利用洪分法交换链路状态信息的范围局限于每一个区域而不是整
个AS中,减少了网络上的通信量,因此有上述可以知道区域内的路由器中知道本区域内的网络拓扑信息,为了使不同区域进行通信,OSPF使用了层次结构区域划分,上层区域称为主干区域,主干区域
的标志符规定为0.0.0.0,而每一个区域都应当至少有一个边界路由器,用于交换和获得其他区域的路由信息,在主干区域内也应至少有一个路由器专门和本自治系统外的自治系统路由器进行路由信息的交换,由于采用非层次划分区域的方法使交换的信息种类增多导致OSPF协议更加复杂,但这样做使每一个区域的内部路由信息的通信
量减小,因而可以用于规模很大的自治系统中。
在RIP协议中,IP数据报中使用的是UDP协议传送数据报文段,而在OSPF中则直接使用IP数据报传送,由于OSPF构成的数据报很短,因此大大较少了路由信息的通信量,并且由于数据报很短而不用把数据报进行分片传送,提高了数据的传输效率,节省了网络资源。
在网络中每一种协议的格式都比较重要,了解协议的格式有助于我们进一步了解网络数据传输的原理,OSPF分组使用了24字节的固定长度首部
位0 8 16 31
关于上述各个部分的意义如下:版本-当前的版本号为2,类型-可以
是五种类型分组中的一种,分组长度-包括OSPF首部在内的分组长度,以字节为单位,路由器标识符-标志发送该分组的路由器的接口IP地址,区域标识符-分组属于的区域的标识符,检验和-用来检测分组中的差错,类型鉴别-目前有两种0(不用)和1(口令),鉴别-鉴别类型为0时就填入0,鉴别类型为1时则填入8个字符的口令。
以上所述就是OSPF的基本特点,然而除了以上几点,OSPF还具有以下几个特点(1)OSPF对不同的链路可根据IP分组的不同服务类型而设置成不同代价,例如可根据是否是实时或是非实时任务而划分,OSPF可根据不同的类型的业务计算不同的路由,链路的代价可以是1到65535中的任何一个(2)假如同一个目的网路具有多条相同代价的路径,那么可以讲通信量分配个这几条路径,这叫做负载平衡(3)所有的OSPF路由器之间交换的分组都具有鉴别功能,因此可以保证仅在可信赖的路由器之间交换链路状态信息(4)OSPF 支持可变长度的子网划分和无分类的编址CIDR(5)由于网络中的链路状态可能经常发生变化,因此OSPF让每一个链路状态都带上一个32位的序号,OSPF规定链路状态序号增长的速率不得超过每5秒一次,因此全部序号空间在600年内不会产生重复。
二OSPF的五种分组类型
OSPF的五种分组类型分别是:类型一,问候分组,用来发现和维持临站的可达性。类型二,数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。类型三,链路状态
请求分组,向对方请求发送某些链路状态项目的详细信息。类型四,链路状态更新分组,用洪泛法对全网更新链路状态。类型五,链路状态确认分组,对链路更新分组的确认。OSPF 中规定每隔十秒就交换一次问候分组,这样就知道哪些链路是连通的,因此可以存入链路状态数据库里,在正常情况下大多数OSPF 分组都是问候分组,若四十秒未收到相邻路由起发来的问候分组,则认为该路由不可达,更新自己的链路状态数据库,其他四个分组都是用来实现链路状态数据库的同步,两个同步的路由器叫做完全邻接的,不是完全邻接的路由器表明它们在物理上是相邻的,但链路状态数据库不是一致的。每一个路由器在开始工作时,只能通过问候分组获得哪些相邻路由器在工作,以及向相邻路由器发送数据所需要的代价,若所有路由器对全网进行广播,来获得所需要的信息,这样的开销是相当大的,因此,OSPF 使用下述办法: