1.宣告OSPF的跌幅器从所有启动OSPF协议的接口上发出Hello数据包。如果两台路由器共享一条公共数据链路,并且能够相互成功协商它们各自Hello数据包中所指定的某些参数,那么它们就成为了邻居。(Neighbor)
2.邻接关系(Adjaceney),可以想象成为一条点到点的虚链路,它是在一些邻居路由器之间构成的。OSPF协议定义了一些网络类型和一些路由器类型的邻接关系。邻接关系的建立是由Hello信息的路由器类型和Hello信息的网络类型决定的。
3.每一台路由器都会在所有形成邻接关系的邻居之间发送链路状态通告(Link
State Advertisement,LSA)。LSA描述了路由器所有的链路、接口、路由器的邻居以及链路状态信息。这些链路可以是到一个末梢网络(Stub
network,是指没有和其他路由器相连的网络)的链路、由于这些链路状态信息的多样性,OSPF协议定义了许多LSA类型。
4.每一台收到从邻居路由器发出的LSA的路由器都会把这些LSA记录在它的链路状态数据库中,并且发送一份LSA的拷贝给该路由器的其它所有邻居。
5.通过LSA泛洪扩散到整个区域,所有的路由器都会形成同样的链路状态数据库。
6.当这些路由器的数据库完全相同时,每一台路由器都将以其自身为根,使用SPF算法来计算一个无环路的拓扑图,以描述它所知道的到达每一个目的地的最短路径。这个拓扑图就是SPF算法树。
7.每一台路由器都将从SPF算法树中构建出自己的路由表。当所有的链路状态信息泛洪到区域内的所有路由器上,并且邻居检验它们的数据库也相同(也就是说,链路状态数据库已经同步,)从而成功的创建路由表时,OSPF协议就成了一个“安静”的协议。邻居之间交换的Hello数据包称为Keepalive,并且每30分重传一次。