OSPF通訊原理:
1, 創建鏈接:使用hello報文,當RA發送給RB一個空的hello報文時,RB會把RA的routerID加入到hello報文中回覆給RA,這時RA就收到了含有本身ID的報文,一樣的方法RB會收到有本身ID的報文,這樣通訊就創建了。
2, 進入到2way狀態中,這樣RA和RB會相互發送DBD鏈路數據庫描述,同時進入下個階段(exstart狀態)
3, 在exstart狀態雙方會對比本身的鏈路數據庫和收到的DBD,挑出本身須要的LSA,同時會發送給對方一個LSR(鏈路數據請求),對方會回覆一個LSA,而且接收到的每一個LSA會泛洪到其餘的路由器。
4, 在互相獲得第一個DBD時雙方會進入到exchange狀態,這時就會有不止一個的LSR(請求),LSA(鏈路數據)的相互交換,直到一方沒有LSA列表爲止,進入到loading狀態(信息加載狀態),這時交換達到了徹底狀態,進入到full狀態,最後路由器各自運行最短路徑優先樹(SPF)算法,造成路由表。在之後的階段會有低頻率的hello包來確認連接關係,若是有新的拓撲變化會有LSU來更新。
簡單來講OSPF是用一種相似於繪圖的方式擴展路由信息,每一個路由器把本身鏈接的區域使用LSA的形式發送給其餘路由器,來使得最終的數據庫同步,最終各自造成路由表。