內部網關協議OSPF
1.引言
OSPF(Open Shortest Path Firest)的名字是開放最短路徑優先。OSPF運用的是鏈路狀態協議,與RIP的距離向量協議是不同的。與RIP相比OSPF的三個要點與RIP不同:
①向本自治系統中的所有路由器發送消息。這里使用的是洪泛法(flooding)。
②發送的信息是與本路由器相鄰的所有路由器的鏈路狀態。鏈路狀態就是用來說明該路由器與那些路由器相鄰以及該鏈路的“度量”。這個度量可以自行定義,而不是像RIP那樣的單一(跳數),可以定義為表示費用、距離、時延、帶寬等等。所以SOPF比RIP要靈活許多。
③只有當鏈路狀態發生變化的時候,路由器才向所有路由器用泛洪法發送此消息,這與RIP的定期交換路由表信息不同。
經過交換細心,所有的路由器最終都能建立一個鏈路狀態數據庫(記錄的數據都是某兩臺相鄰路由器之間的鏈路狀態),這個數據庫實際上就是全網的拓撲結構圖,且這個數據庫在所有路由器中是一致的(這稱為鏈路狀態數據庫的同步)。有了鏈路狀態數據庫中的數據,路由器就可以使用特定的算法(例如,使用Dijkstra最短路徑算法)自己構造路由表。(注意RIP是不知道全網的拓撲結構的,只能知道下一跳路由器。)
其實按照上邊的泛洪法,OSPF的鏈路狀態數據庫能較快地進行更新,由此路由器的路由表更新也較快。OSPF的更新過程收斂得快是其重要優點。
值得注意的是,OSPF不用UDP而是直接用IP數據報傳送。OSPF構成的數據報就很短。這樣可以減少路由信息的通信量。
2.劃分區域
由于要運用泛洪法所以如果網絡中的路由器過多的話,那么運用OSPF效果不佳。所以當OSPF運用于規模很大的網絡時,OSPF將一個自治系統在劃分為若干個更小的區域。每個區域都有一個32位的標示符,如下圖:
這樣泛洪法只需要在各個區域中運用,但是此時區域中的路由器只知道該區域的拓撲結構,而不知道全網的拓撲結構。為了使每個區域之間可以進行通信,OSPF運用了層次結構的區域劃分。
在上層的區域叫做主干區域(標示符0.0.0.0)。主干區域的作用就是用來連通其他在下層的區域。從其他區域來的信息都由區域邊界路由器(R347)來概括,這些路由器同時也屬于主干區域,是主干路由器。另外自治系統之間的信息交互使用自治系統邊界路由器(R6)。
3.OSPF的五種分組類型
OSPF共有以下五種分組類型:
(1)問候分組——用來發現和維持臨站的可達性。
(2)數據庫描述分組——向臨站給出自己的鏈路狀態數據庫中的所有鏈路狀態項目的摘要信息
(3)鏈路狀態請求分組——向對方請求發送某些鏈路狀態項目的詳細信息。
(4)鏈路狀態更新分組——用洪泛法對全網跟新鏈路狀態。
(5)鏈路狀態確認分組——對鏈路更新分組的確認。
當某路由器的鏈路狀態發送變化的時候就需要運用泛洪法發送更新報文,收到的路由器需要發送確認報文,確認報文只需要發送一次(下圖的白箭頭為確認報文)。
博客原文地址:http://blog.csdn.net/sicofield/article/details/9701641