对于广播多路访问网络, 路由器在启动OSPF进程,到整个OSPF域形成相同的拓扑数据库,这中间一般来说,每台 路由器会经历八个状态:

1、失效状态(down):新 路由器处于失效状态。 路由器尝试发送Hello分组,向网段中的其他 路由器介绍自己,并试图发现其他的OSPF 路由器。该Hello分组使用多播地址224.0.0.5(所有SPF 路由器),其DR,BDR字段都设置为0。0。0。0

2、初始化状态(init):新 路由器发送出hello分组等待应答状态。通常等待时间为hello时间的4倍。在这段时间内,新 路由器从其他 路由器那里收到Hello分组,并获悉谁是DR,BDR。如果收到的hello分组没有指出谁是DR,BDR,则开始选举。

3、双向状态(two–way):在其他 路由器A收到来自 路由器B的hello分组后,将hello分组中的 路由器ID加入到拓扑数据库中,并用多播地址224.0.0.5发送一个HELLO分组,其中包含自己的ID和一个由所有邻居组成的列表。当B收到该HELLO分组后,如果发现自己的ID在这个来自A的HELLO分组里的邻居列表中,那么B将认为和A已经形成了双向的通信状态。

4、预启动状态(exstart):互为邻居的两台 路由器A,B。它们根据直连的接口IP选出较大IP那台 路由器做为主(master) 路由器,这就是预启动状态。两个邻居是根据接口的IP大小来确定主/从关系:谁主谁次并不重要,它们主要是决定由谁来发起通信。

5、交换状态(exchange):两台 路由器都发送数据库描述分组(DDP),并切换到交换状态。 路由器从邻居 路由器那里收到DDP后,将其同自己的拓扑表进行比较。DDP里面只包含拓扑数据库的摘要信息。

6、加载状态(loading):当一台 路由器收到了来自邻居的DDP分组,经过比较后发现自己的拓扑数据库信息和DDP中包含的摘要信息存在差异,,这时该接收 路由器需要更详细的信息,它将使用LSR分组请求有关特定链路的详细信息。

7、完全邻接(full):当A 路由器收到来自B的LSR时,它将返回一种LSU分组(就是指收到LSR分组后发送的一种LSA分组)。然后B收到该LSU后,将返回一种LSACK(链路状态确认)分组。同时B和A的拓扑数据库达到了同步,此时,邻居关系就变成了邻接状态。(loading to full)

(Attempt 只有在NBMA网络里才有,手工进行Neighbor的指定。)

这中间主要出现了四种分组:

1、HELLO分组:用于发现邻居和选举DR,BDR。 路由器不断的发送HELLO分组,以确保它始终出现在收到了这些分组的 路由器的拓扑数据库中。

2、数据库描述分组(DD):用于向邻居发送摘要信息以同步拓扑数据库。

3、LSR:用于请求更详细的信息, 路由器收到包含新信息的数据库描述分组后发送的一种分组

4、链路状态确认(LSACK):确认已经收到了LSU

A——————————hello——————————>B

A<——————————hello——————————B

A——————————DDP——————————>B

A<——————————DDP——————————B

A——————————LSR——————————>B

A<——————————LSU——————————B

A——————————LSACK——————————>B

转载于:https://blog.51cto.com/cisco2600/202609