OSPF协议及链路状态算法
这个感觉不是太懂,完了应该还会补充
OSPF协议
定义:
叫做开放最短路径优先OSPF协议:"开放"表明OSPF协议不是受某一家厂商所控制,而是公开发表的;"最短路径优先"是因为使用了最短路径算法SPF
OSPF协议最主要的特征就是使用了分布式的链路状态协议
特点
- 使用洪泛法向自治系统内的所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器,类似于广播,所有最后整个区域内的所有路由器都将得到这个信息的一个副本
- 发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由和哪些路由器相邻,以及该链路的度量/代价)
- 只有当链路状态发生变化的时候,路由器才向所有的路由器洪泛发送此信息
最后,所有的路由器都能够建立一个链路状态数据库,即全网拓扑图
算法
- 每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居节点的网络地址
- 设置到它的每个邻居的成本度量metric
- 构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的信息
- 收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新
- 更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认
只要一个路由器的链路状态发生变化:
- 泛洪发送【LSU链路状态更新分组】进行更新
- 更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认
- 使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径
OSPF的区域
为了使OSPF能够应用于规模更大的网络,OSPF将一个自治系统再划分为若干个范围,叫做区域。
每一个区域都有一个32位的区域标识符(用点分十进制表示)
区域也不能太大,一个区域内的路由器最好不超过200个