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