网络路由OSPF协议

135 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天

OSPF

OSPF——开放最短路径优先,是为了克服RIP的缺点而在1989年开发出来的,它的原理很简单,但实现很复杂,其采用了Dijkstra提出的最短路径算法SPF,采用分布式链路状态协议。现在我们使用OSPFv2

三个主要特点

  1. 采用洪泛法,向本自治系统中所有路由器发送信息。
  2. 发送的信息是与本路由相邻的所有路由器的链路状态(说明本路由器都和那些路由器相邻,以及该链路的度量),但这只是路由器所知道的部分信息
  3. 当链路状态发生变化或每隔一段时间(如三十分钟),路由器才用洪泛法向所有路由器发送此信息。

链路状态数据库

网络中每个路由器最终都会建立一个自己的链路状态数据库,其中包含了全网的拓扑结构图,这张图在全网范围内是一致的(称为链路状态数据库的同步)

每个路由器都使用链路状态数据库中的数据构造自己的路由表,例如使用Dijkstra的最短路径路由算法

链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。重要优点是:OSPF更新过程收敛速度快。

但如果网络中路由过多,会导致数据库过大,传送的数据过大,所以OSPF会将网络分为不同的区域以便管理,不过这也使得OSPF协议更加复杂了

OSPF.jpg

OSPF的五种分组类型

OSPF协议中,路由器相互发送的信息有五种类型,称为五个分组:

  1. 问候分组——每隔十秒互换问候分组,确定邻站可达,若40秒没有收到问候分组,则认为该相邻路由器不可达
  2. 数据库描述分组——同步链路状态数据库,只有当同步了,才算是相邻路由器,因为信息过多,所以该分组仅发送自身数据库中的摘要信息
  3. 链路状态请求分组——根据摘要信息比对出缺少的分组内容,请求对应的详细信息
  4. 链路状态更新分组——用来回复请求,发送对方需要的详细信息
  5. 链路状态确认分组——更新完成后的确认步骤

工作过程:

OSPFwork.jpg

如果一个局域网接入了多个路由器,我们就可以指定一个路由器(DR),由它代表整个局域网链路向连接到该网络上的各路由器发送状态信息。