在 Two-Way 状态之后,路由器转变为数据库同步状态。 当 Hello 数据包用于建立邻接关系时,在交换和同步 LSDB 的过程中,使用其他四种类型的 OSPF 数据包。

在 ExStart 状态下,每个路由器与其相邻的 DR 和 BDR 之间会形成主从关系。 具有较高路由器 ID 的路由器在 Exchange 状态下为主路由器。 在图 1 中,R2 将成为主路由器。

在 Exchange 状态下,主路由器和从属路由器交换一个或多个 DBD 数据包。 DBD 数据包包括路由器 LSDB 中显示的 LSA 条目报头的相关信息。 条目可以与链路有关,也可以与网络有关。 每个 LSA 条目报头包括关于链路状态类型、通告路由器的地址、链路成本以及序列号的信息。 路由器使用序列号来确定接收到的链路状态信息的更新程度。

在图 2 中,R2 将 DBD 数据包发送到 R1。 当 R1 收到请求时,它会执行以下操作:

1. 它使用 LSAck 数据包确认收到 DBD。

2. 然后 R1 将 DBD 数据包发送到 R2。

3. R2 确认 R1。

R1 将收到的信息与其 LSDB 中的信息进行比较。 如果 DBD 数据包有较新的链路状态条目,路由器将转换为 Loading 状态。

例如,在图 3 中,R1 将与网络 172.16.6.0 有关的条目发送到 R2。 R2 在 LSU 数据包中响应与 172.16.6.0 有关的完整信息。 同样,R1 接收到 LSU 时,它会发送 LSAck。 R1 随后将新的链路状态添加到其 LSDB。

当所有 LSR 满足特定路由器的要求时,邻接路由器被视为已同步并处于 full 状态。

只要相邻路由器继续接收 Hello 数据包,传输的 LSA 中的网络就会留在拓扑数据库中。 同步拓扑数据库后,更新 (LSU) 仅在下列情况下发送给邻居: