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。