内部网关协议OSPF

jakefei 2013-08-07

1.引言

OSPF(Open Shortest Path Firest)的名字是开放最短路径优先。OSPF运用的是链路状态协议,与RIP的距离向量协议是不同的。与RIP相比OSPF的三个要点与RIP不同:

①向本自治系统中的所有路由器发送消息。这里使用的是洪泛法(flooding)。

②发送的信息是与本路由器相邻的所有路由器的链路状态。链路状态就是用来说明该路由器与那些路由器相邻以及该链路的“度量”。这个度量可以自行定义,而不是像RIP那样的单一(跳数),可以定义为表示费用、距离、时延、带宽等等。所以SOPF比RIP要灵活许多。

③只有当链路状态发生变化的时候,路由器才向所有路由器用泛洪法发送此消息,这与RIP的定期交换路由表信息不同。

经过交换细心,所有的路由器最终都能建立一个链路状态数据库(记录的数据都是某两台相邻路由器之间的链路状态),这个数据库实际上就是全网的拓扑结构图,且这个数据库在所有路由器中是一致的(这称为链路状态数据库的同步)。有了链路状态数据库中的数据,路由器就可以使用特定的算法(例如,使用Dijkstra最短路径算法)自己构造路由表。(注意RIP是不知道全网的拓扑结构的,只能知道下一跳路由器。)

其实按照上边的泛洪法,OSPF的链路状态数据库能较快地进行更新,由此路由器的路由表更新也较快。OSPF的更新过程收敛得快是其重要优点。

值得注意的是,OSPF不用UDP而是直接用IP数据报传送。OSPF构成的数据报就很短。这样可以减少路由信息的通信量。

2.划分区域

由于要运用泛洪法所以如果网络中的路由器过多的话,那么运用OSPF效果不佳。所以当OSPF运用于规模很大的网络时,OSPF将一个自治系统在划分为若干个更小的区域。每个区域都有一个32位的标示符,如下图:

内部网关协议OSPF

这样泛洪法只需要在各个区域中运用,但是此时区域中的路由器只知道该区域的拓扑结构,而不知道全网的拓扑结构。为了使每个区域之间可以进行通信,OSPF运用了层次结构的区域划分。

在上层的区域叫做主干区域(标示符0.0.0.0)。主干区域的作用就是用来连通其他在下层的区域。从其他区域来的信息都由区域边界路由器(R347)来概括,这些路由器同时也属于主干区域,是主干路由器。另外自治系统之间的信息交互使用自治系统边界路由器(R6)。

3.OSPF的五种分组类型

OSPF共有以下五种分组类型:

(1)问候分组——用来发现和维持临站的可达性。

(2)数据库描述分组——向临站给出自己的链路状态数据库中的所有链路状态项目的摘要信息

(3)链路状态请求分组——向对方请求发送某些链路状态项目的详细信息。

(4)链路状态更新分组——用洪泛法对全网跟新链路状态。

(5)链路状态确认分组——对链路更新分组的确认。

内部网关协议OSPF

当某路由器的链路状态发送变化的时候就需要运用泛洪法发送更新报文,收到的路由器需要发送确认报文,确认报文只需要发送一次(下图的白箭头为确认报文)。

相关推荐