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