OSPF协议及链路状态算法(详解)

一、路由选择协议分类回顾

OSPF协议及链路状态算法(详解)

二、OSPF协议

  1. 开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;
  2. “最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF
  3. OSPF最主要的特征就是使用分布式的链路状态协议

OSPF的特点:

和谁交换?
  1. 使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。广播
    最终整个区域内所有路由器都得到了这个信息的一个副本。
交换什么?
  1. 发送的信息就是与本路由器相邻的所有路由器的链路状态链路状态是指本路由器和哪些路由器相邻,以及该链路的度量/代价——费用、距离、时延、带宽等,这些都由网络管理人员来决定。)。
    【举例】
    思科路由器中OSPF计算代价的方法:100Mbps/链路带宽计算结果小于1的值仍记为1;大于1且有小数的,舍去小数。
    OSPF协议及链路状态算法(详解)
多久交换?
  1. 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。

最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图

三、链路状态路由算法

  1. 每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居节点的网络地址。
  2. 设置到它的每个邻居的成本度量metric。
  3. 构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
  4. 如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的信息。
  5. 收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新。
  6. 更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。
    只要一个路由器的链路状态发生变化:
    5.泛洪发送【LSU链路状态更新分组】进行更新。
    6.更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认。
  7. 使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。

OSPF协议及链路状态算法(详解)

四、OSPF的区域

为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域(Area)
每一个区域都有一个32位的区域标识符(用点分十进制表示)
区域也不能太大,在一个区域内的路由器最好不超过200个。
OSPF协议及链路状态算法(详解)
区域内路由器IR(internal router):R1,R2,R8,R9
主干路由器BBR(backbone router):R3,R4,R5,R6,R7
区域边界路由器ABR(area border router):R3,R4,R7
自治系统边界路由器ASBR(AS border router):R6

五、OSPF分组

OSPF协议及链路状态算法(详解)

六、OSPF其他特点

1.每隔30min,要刷新一次数据库中的链路状态。
2.由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。
3.OSPF不存在坏消息传的慢的问题,它的收敛速度很快

七、总结

OSPF协议及链路状态算法(详解)