OSPF是一种链路状态路由协议,是一种用于基于IP的网络中交换路由信息的协议。OSPF协议具有优良的收敛性能和可扩展性,已经被广泛应用于因特网和企业网络中。本文将从多个角度分析OSPF协议的七种状态,并通过状态图解进行说明。
一、OSPF协议概述
OSPF是Open Shortest Path First的缩写,翻译为“开放最短路径优先协议”。它是一种基于链路状态(Link State)的路由协议,以支持基于IP的网络为基础。OSPF协议的主要特点是乘坐SPF算法(Shortest Path First)来计算路由,并采用链路状态广播的方式,让所有路由器对整个网络的拓扑结构保持一致。
二、OSPF协议七种状态
OSPF协议有七种状态,包括DOWN、INIT、ATTEMPT、2WAY、EXSTART、EXCHANGE、LOADING。下面我们将从状态转换图的角度来分析OSPF协议的这七种状态。
1、DOWN状态
DOWN状态是初始状态,表示没有与邻居建立连接,或当前连接已经被释放。当发现邻居或本地接口有变化,或者启动OSPF协议时,会进入DOWN状态。
2、INIT状态
INIT状态代表的是OSPF正在尝试与邻居进行协商,可能是在非OSPF状态下的邻居,或已经在OSPF状态下的邻居。在此阶段,OSPF协议已经初始化好了路由器ID和相关配置信息,并且已经通过Hello消息发现了邻居。
3、ATTEMPT状态
如果INIT状态没有得到响应,就会进入ATTEMPT状态,这个状态下OSPF尝试与邻居建立连接。如果仍未建立连接,则会回到INIT状态,重新进行协商尝试。
4、2WAY状态
当OSPF邻居在INIT报文的基础上收到了正确的回复报文,就进入2WAY状态。此时路由器之间已经建立了双向通信,可以进行协议密钥交换等操作。这个状态下的hello消息为"Two-Way"类型。
5、EXSTART状态
当OSPF路由器在2WAY状态下准备开始协商网络上的LSA信息时,会进入EXSTART状态。这个状态下的报文是DD(Database Description)消息,用于请求邻居的数据库信息。在这个阶段中,路由器需要协商出一个Master和Slave的角色,用于后续的LSA协商。
6、EXCHANGE状态
在EXSTART状态协商后,路由器会进入EXCHANGE状态,在这个状态下交换需要协商的LSA信息。如果发现有更优的路由,就更新路由信息。这个阶段最终是要达到LSA数据库的一致性。
7、LOADING状态
在LSA信息交换结束后,进入LOADING状态,即从最优路径提取对应的LSA信息,包括网络拓扑、路由距离等信息。在这个阶段,路由器会向邻居请求缺少的LSA信息,来进行自身的LSA计算。
三、状态转换图解
下面附上OSPF状态转换图解,可以更加清晰地了解OSPF的七种状态及其相互关系。
![OSPFSate](https://user-images.githubusercontent.com/39016197/109437149-9e28e300-7a5f-11eb-839c-a2e309daaabc.png)