内部网关协议OSPF协议的基本特点
开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在 1989 年开发出来的。
OSPF 的原理很简单,但实现起来却较复杂。
OSPF 协议的基本特点“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法 SPF
采用分布式的链路状态协议 (link state protocol)。
注意:OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
三个要点向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
链路状态数据库 (link-state database)由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。
OSPF 的更新过程收敛得快是其重要优点。
OSPF 的区域 (area)为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫做区域。
每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
区域也不能太大,在一个区域内的路由器最好不超过 200 个。
OSPF 划分为两种不同的区域
划分区域划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
OSPF 使用层次结构的区域划分。在上层的区域叫做主干区域 (backbone area)。
主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
OSPF 直接用 IP 数据报传送OSPF 不用 UDP 而是直接用 IP 数据报传送。
OSPF 构成的数据报很短。这样做可减少路由信息的通信量。
数据报很短的另一好处是可以不必将长的数据报分片传送。
但分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
OSPF 的其他特点OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫做多路径间的负载平衡。
所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
支持可变长度的子网划分和无分类编址 CIDR。
每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
OSPF 分组
OSPF首部各字段的意义:
版本:当前版本为2
类型:可以是五种类型分组中的一组
分组长度:包括OSPF首部在内的分组长度,以字节为单位
路由器标识符:标志发送该分组的路由器的接口的IP地址
区域标识符:分组属于的区域的标识符
检验和:用来检验分组中的差错
鉴别类型:目前只有两种,0(不用)1(用)
鉴别:鉴别类型为0时填入0,鉴别类型为1则填入8个字符的口令。
OSPF 的五种分组类型类型1,问候 (Hello) 分组。
类型2,数据库描述 (Database Description) 分组。
类型3,链路状态请求 (Link State Request) 分组。
类型4,链路状态更新 (Link State Update) 分组,用洪泛法对全网更新链路状态。
类型5,链路状态确认 (Link State Acknowledgment)分组。
OSPF 的基本操作
OSPF 使用可靠的洪泛法发送更新分组