OSPF(Open Shortest Path First)開放式最短路徑優先協議01

 包結構:

OSPF基於IP,協議號89.優先級爲6(QOS會講到)

組播地址224.0.0.5和224.0.0.6

 

IP頭部後面緊跟的是OSPF包的包頭。

版本號:IPV4中OSPF版本號爲2,IPV6的版本號是3.

類型:表示跟在OSPF包頭後的數據包類型。

長度:OSPF數據包的長度,包括OSPF包頭。

路由器ID:指首發路由器的ID。

區域ID:始發數據包的路由器所在的區域,如果數據在虛鏈路上發送,那麼區域爲0.0.0.0  因爲虛鏈路是骨幹區域的一部分。

校驗和:對整個數據包的標準IP校驗和。

認證類型:正在使用的認證類型。

 

HELLO包(用來建立和維持鄰居關係,HELLO包中的所有參數都應當和鄰居保持一致):

HELLO間隔:HELLO數據包傳送之間的時間間隔,如果接收路由器沒有一個相同的值,那麼他們不能建立一種鄰接關係。

可選項:其中的參數用來確保鄰居之間的兼容性。

路由器優先級:用來做DR/BDR的選舉,如果爲0,則不能參與DR/BDR的選舉。

指定路由器:指網絡上,指定路由器的IP地址。注:這可能是始發路由器自己認爲的DR,而不是最終的DR,如果是0.0.0.0,可能是網絡類型不需要DR或還沒有選出。

備份指定路由器:指網絡上,備份制定路由器的IP地址。注意細節同上。

鄰居:如果從鄰居的HELLO包中看到了自己的RID,則進入TWO-WAY狀態。

 

DBD(數據庫描述報文):

作用,描述始發路由器數據庫中的一些或全部LSA信息,以便接收者可以對比,DBD交互過程中,可能需要交換多個DBD,DBD中包含一個主/從控制關係標誌,用來管理這些DBD交互

序列號雙方隨機產生,比較RID,誰的RID大誰就是主。

MTU:不分段的情況下,始發路由器可以發送的最大MTU大小。

可選項:和HELLO包一樣的可選項。(後面講解)

I位:初始位,如果這個DBD是第一個DBD,此位置1

M位:數據包不是最後一個DBD,置1代表後續還有更多的數據包

MS位:主從位,置1代表爲主,置0代表從。

序列號:用來確保路由器能收到完整的DBD序列。序列號將由主路由器在最初設置數值,而後遞增。

LSA頭部:包含一個完整的LSA頭部信息。

 

LSR(鏈路狀態請求包):

DBD報文同步過程中,路由器會查看發來的LSA哪些本地沒有,或者相同的LSA比本地更新。

路由器會將這些LSA記錄在鏈路狀態請求列表中,然後,路由器發送一個或多個鏈路狀態請求,來請求自己記錄在鏈路狀態請求列表中的這些LSA。

鏈路狀態類型:用來指明LSA類型。

鏈路狀態ID:不同的LSA類型此字段代表不同的意思。

通告路由器:始發LSA通告路由器的RID。

 

LSU(用於LSA泛洪或相應鏈路狀態請求報文):

LSA只能傳送到直連的鄰居,由直連的鄰居重新封裝傳給下一個設備。TTL=1

 

LSA數量:標示此LSU包含多少個LSA的詳細信息。

LSA:LSA數據包格式中描述的全部LSA。

 

LSAck:

LSAck用來做LSA的可靠泛洪,路由器從鄰居收到的每條LSA都需要經過LSAck的確認。LSAck包含需要確認的LSA的頭部信息。多個LSA可以通過一個LSAck去確認。

確認分爲延時確認和直接確認

延時確認:通過此方法確認,更多的LSA可以被單個確認包來確認,被延時確認的數據包延時時間必須要小於5S,以避免不必要的重傳

直接確認:直接確認總是以單播發送,發生在下面兩種情況,1.從鄰居收到了重複的LSA,意味着鄰居沒有收到我的LSA確認2.收到一條LSA老化時間達到了最大的生存時間,說明鄰居沒有此LSA的實例了

可選項字段:

DC:表示始發路由器具有支持按需電路的OSPF能力。

NP:N位和P位都用於NSSA區域,因此可以使用在同一位置,N位,僅用於HELLO包,置1時表示支持NSSA的外部LSA,如果N位置1,那麼E位必須爲0. P位表示可以路由器可以將7類轉爲5類LSA。

MC:具有轉發組播IP數據包的能力,用於MOSPF。

E位:具有接受外部LSA的能力的路由器。此位置1,意味着,如果是Stub區域的話,所有STUB區域的路由器發出的LSA,此位應該爲0,HELLO包中可以表示爲一個接口是否有轉發5類LSA的能力。

MT:多拓撲OSPF,沒有實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章