OSPF協議
OSPF協議也是一種內部關協議,OSPF協議采用了Djkstra算法來計算最短路徑,相比RIP采用的距離向量算法,這種算法更加可靠,OSPF使用的時分布式的鏈路狀態協議,而不是距離響亮協議,OSPF協議於RIP協議有很大的不同:
- 采用OSPF協議的路由器,會向本自治系統中的所有路由器發送信息,而RIP協議僅僅向相鄰的路由器發送信息
- 采用OSPF協議的路由器,發送的信息是與本路由器相鄰的所有路由器的鏈路狀態,所謂的鏈路狀態,就是說明本路由器都和哪些路由器相鄰,以及該鏈路的“度量”,度量用來表示費用、距離、時延、帶寬等等可以對通信質量產生影響的因素,度量可以由網絡管理員來設置,所以比價靈活,而對於RIP協議來說發送的信息的內容是:“到所有網絡的距離,以及下一跳路由器”,這又是一個區別。
- 采用OSPF協議的路由器,只有在鏈路狀態發生變化時才向所有路由器發送信息,而RIP協議每隔一段時間就要向相鄰的路由器發送信息,超過一定的時間沒有向相鄰的路由器發送信息,其他相鄰的路由器會將此路由器設置為“不可到達”;
可見OSPF協議與RIP協議之間有很多的不同的地方,RIP協議只適用於小型網絡,而OSPF協議在大型網絡中也可以發揮作用,采用OSPF協議的網絡,各個路由器之間頻繁交換數據,最終每一個路由器都會知道整個自治系統中的網絡拓撲結構。每一個路由器都知道整個自治系統中有多少個路由器,哪些路由器是相鄰的。RIP協議的每一個路由器雖然知道到所有網段的距離,以及下一跳路由器,但是不知道整個網絡的結構。
OSPF將一個自治系統又進一步劃分為若幹個區域,如下圖所示:
上圖表示將一個自治系統劃分為4個區域,每一個區域都有一個32位的標識符,一個區域不能太大,路由器的數量最好不要超過200個,
劃分區域的好處就是將處於某一個區域的路由器只會跟本區域的路由器交換鏈路狀態信息,這就大大減少了整個網絡的通信量,在一個區域中的路由器只知道本區域的網絡結構,同時OSPF還采用了分層次的區域劃分,上層的區域為主幹區域,標識符為0.0.0.0,主幹區域用來連通其他下層的區域,與其他區域的信息交換都要都過邊界路由器,如上圖中的R3、R4、R7路由器,主幹區域中的路由器叫做主幹路由器,一個路由器可以同時是主幹路由器和邊界路由器。R6叫做自治系統邊界路由器,用來與其他的自治系統交換信息。
OSPF協議與RIP協議的另一個區別是,OSPF協議直接采用IP數據報進行傳送(IP數據報首部協議字段為89),而RIP協議還要經過UDP協議的包裝,OSPF構成的數據報很短,這樣就減小了路由器的通信量,同時數據報短的另一個好處是,在IP層,不用分片,分片傳送的數據報,只要丟失一個,就無法組裝成一個完整的報文,就必須重傳整個數據報。
OSPF分組結構如下:
版本:當前的版本號為2
類型:五種類型分組中的一種
分組長度:包括OSPF首部在內的分組長度
路由器標識符:標誌發送該分組的路由器的接口的IP地址,
區域標識符:分組屬於哪一個區域
檢驗和:檢測差錯
鑒別類型:0(不使用),1(口令鑒別)
鑒別:當類型為0時,填入0,否則填入8字節的口令
OSPF協議