当前位置: 代码迷 >> 综合 >> 内部网关协议 OSPF 的简单介绍
  详细解决方案

内部网关协议 OSPF 的简单介绍

热度:30   发布时间:2023-09-23 00:48:49.0

OSPF的介绍

OSPF(Open Shortest Path First),开放最短路径优先。
和前面讲的RIP一样,OSPF也是内部网关协议。它是为克服RIP协议的缺点在1989年开发出来的。OSPF的原理很简单,但是实现起来却比较复杂。“开放”表示OSPF协议并不是受一家厂商控制,而是公开发表的。“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。

这里需要注意的一点就是:OSPF只是一个协议的名字,它并不表示其他的路由选择协议不是最短路径优先。实际上,在所有的自治系统内部,使用的路由选择协议(包括RIP协议)都要寻找一条最短的路径。


OSPF最主要的特征就是使用分布式的链路状态协议,而不是像RIP那样的距离向量协议。和RIP协议相比,OSPF的三个要点和RIP的都不一样:

1. 向本自治系统的所有路由器发送消息。这里使用的方法是flooding(洪泛法),这就是路由器通过所有输出端口向所有邻近的路由器发送消息。而每一个相邻路由器又将此消息发往其所有的相邻路由器(但不在发往刚刚发来消息的那个路由器)。这样,最终整个区域中所有的路由器都得到了这个消息的一个副本。RIP协议仅仅向自己相邻的几个路由器发送消息。

2. 发送的消息就是与本路由器相邻的所有路由器的链路状态。但这只是路由器所知道的部分信息。所谓的“链路状态”就是说明本路由器都和那些路由器相邻,以及该链路的metric(度量)。OSPF将这个“度量”用来表示费用,距离,时延,宽带等等。这些都是由网络管理人员来决定,因此较为灵活。有时为了方便就称这个度量为“代价”。在RIP协议中,发送的消息是:到所有网络的距离和下一条路由器。

3.只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此消息。在RIP协议中,不管网络拓扑是否有变化,路由器之间都要定期交换路由表的信息。


由于各路由器之间频繁的交换路由转态信息,因此所有的路由器最终都能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图,这个拓扑结构图在全网范围内是一致的。因此,每个路由器都知道全网共有多少个路由器,以及那些路由器是相连的,其代价是多少。与RIP协议的区别就是:RIP协议的每个路由器虽然知道到所有网络的距离以及下一跳路由器,但却不知道全网的拓拓扑结构(只有到了下一跳路由器,才知道下一跳应当怎样走)。

OSPF的链路状态数据库能较快的进行更新,使各个路由器能及时的更新路由表。OSPF的更新过程收敛得快是其重要优点。

为了使OSPF适用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域(area)。
划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,这就减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。为了使每一个区域能够和本区域以外的区域进行通信,OSPF采用层次结构的区域划分。在上层的区域叫做主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用就是用来连通其他在下层的区域。从其他区域来的信息都由区域边界路由器(area border router)进行概括。在主干区域内的路由器叫做主干路由器(backbone router)。一个主干路由器可以同时是区域边界路由器。在主干区域内还有一个路由器专门和本自治系统外的其他自治系统交换路由信息。这样的路由器叫做自治系统边界路由器。


OSPF不用UDP而是直接用IP数据包传送(其ip数据包首部的协议字段为89)。OSPF构成的协议数据包很短。这样可减少路由信息的通信量。数据包很短的另一个好处就是不必将长的数据包分片传送。分片传送的数据报只要丢失一个,就无法组装成原始的数据报,而整个数据报就必须重传。