内部网关协议OSPF
- “链路状态”指本路由器都和哪些路由器相邻,以及该链路的“度量”(代价)。
工作流程:
- 当一个路由器刚开始工作时,
用“数据库描述分组”和相邻路由器交换链路状态的摘要信息。
用“链路状态请求分组”请求自己缺少的项目信息。 - 所有的路由器最终都能建立一个“链路状态数据库”(全网的拓扑结构图),全网范围内一致。
- 每个路由器利用“链路状态数据库”中的数据,构造出自己的“路由表”(使用Dijkstra的最短路径算法)。
- 只有当“链路状态”发生变化时,路由器才用“洪泛法”向所有路由器发送“更新分组”。
OSPF分组格式
- 版本:OSPF协议的版本。
- 分组长度:OSPF分组的长度,单位是字节。
- 路由器标识符:标志发送该分组的路由器接口的IP地址。
- 区域标识符:分组属于的区域的标识符。
- 检验和:用来检验分组中的差错。
OSPF的5种分组类型
- 问候分组:用来发现和维持邻站的可达性。
- 数据库描述分组:向邻站给出自己所有链路项目的摘要信息。
- 链路状态请求分组:向对方请求发送某些链路项目的详细信息。
- 链路状态更新分组:用“洪泛法”对全网更新链路状态。
- 链路状态确认分组:对链路更新分组的确认。
OSPF的其他特点:
- 允许管理员给每条路由指派不同的代价。不同类型的业务可设置不同的代价,据此计算出不同的路由。
- 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径(load balancing)。
其它
- OSPF规定,相邻路由器每隔10s要交换一次hello分组。
- 若有40s没有收到相邻路由器的hello分组,则认为其不可达。同时修改链路状态数据库,重新计算路由表。
OSPF的优势
- OSPF的“链路状态数据库”更新较快是其重要优点,“洪泛法”达到指数级的收敛速度。
- 为了使OSPF能够用于规模很大的网络,OSPF将一个规模很大的网络再划分为若干个更小的“区域”。
- 划分区域使得利用“洪泛法”交换链路状态信息的范围局限在一个区域,而不是整个自制系统,这就减少了整个网络上的通信量。