OSPF的協議號爲89,當OSPF數據包多播發生時,它們的TTL設置爲1,,
1.數據包頭部
所有的OSPF數據包都是由一個24個八位組字節的頭部開始
版本version
OSPF的版本號,OSPF的版本號爲2。
類型Type
跟在頭部後面的數據包類型
數據包長度 Packet Length
OSPF數據包的長度,包括數據包頭部的長度,以八位組字節計
路由器ID Router ID
始發路由器的ID
區域ID Area ID
始發數據包的路由器所在的區域
校驗和Checksum
對整個數據包(包括包頭)的標準IP校驗和
認證類型(AuType)
正在使用的認證模式
認證 Authentication
Autype = 0 不檢查這個字段,可以包含任何內容
Autype = 1 包含一個最長爲64位的口令
Autype = 2 包含一個Key ID,認證數據長度,不減小的加密序列號
密鑰ID Key ID
表示認證算法和創建消息摘要使用的安全密鑰
加密序列號
不會減小的數字,用來防止重現***
2.Hello數據包
爲了形成一種鄰接關係,Hello數據包攜帶的參數必須和它的鄰居保持一致
網絡掩碼Network Mask
發送數據包接口的網絡掩碼,如果掩碼和接收數據包接口的網絡掩碼不匹配,數據包將被丟棄。
Hello時間間隔 Hello Interval
接口上Hello數據包的傳送之間的時間間隔,是一個週期性的時間段,以秒來計
可選項 Option
用來確保鄰居之間的兼容性問題
路由器優先級 Router Priority
用來做DR和BDR的選舉,優先級爲0,不參與選舉
路由器無效時間間隔 Router Dead Interval
始發路由器在宣告路由無效之前,將要等待從鄰居路由器發出的Hello數據包的時長
指定路由器DR
如果沒有DR(未選出或網絡類型不需要DR),則此字段設置爲0.0.0.0
備份指定路由器BDR
如果沒有DBR,此字段設置爲0.0.0.0
鄰居Neighbor
如果始發路由器在過去的一個Router DeadInterval時間內,從網絡上已經收到來自它的某些路由器有效的Hello數據包,那麼將會在這個字段中列出所有鄰居的ID
3.數據庫描述數據包
數據庫描述數據包的一個主要目的是描述始發路由器數據庫中一些或全部的LSA信息,以便接受路由器能夠確定所接收到LSA在其數據庫中是否有一個匹配的LSA,此操作只需要列出LSA的頭部就可以完成。
接口MTU Interface MTU
在數據包不分段的情況下,始發路由器接口可以發送的最大IP數據包的大小,以八位組字節計。
可選項 Option
包含在數據庫描述數據包中,使路由器可以選擇不轉發某些LSA到那些沒有必要的支持能力的鄰居路由器
報文下一個八位組字節的前5位沒有被使用,被設置爲00000b
*I位,初始位Initial bit
當發送的是一系列數據庫描述數據包中的最初一個數據包時,該位設置爲1,後續的數據庫描述數據包將把該位設置爲0,I-bit爲0
*M位,後繼位More bit
當發送的數據包還不是一系列數據庫描述數據包中的最後一個數據包時,該位設置爲1
*MS位,主從位 Master/Slave bit
在數據庫同步過程中,該位設置爲1,用來指明數據庫描述數據包的路由器是一臺主路由器,從路由器設置爲0,MS-bit = 0
*數據庫描述序列號 DD sequence Number
在數據庫同步過程中,用來確保路由器能夠收到完整的數據庫描述數據包序列
*LSA頭部 LSA Header
4.鏈路狀態請求數據包
鏈路狀態類型 Link State Type
鏈路狀態類型號,用來表示一個LSA的類型
鏈路狀態ID Link State ID
通告路由器 Advertising Router
始發LSA通告的路由器的路由器ID
5.鏈路狀態更新數據包
OSPF數據包是不能離開發起它們的網絡,一個鏈路狀態數據包可以攜帶一個或多個LSA,但是這些LSA只能傳送到始發它們的路由器的直連鄰居,接收LSA的鄰居路由器將負責在新的LS更新數據包中重新封裝相關的LSA,從而進一步泛洪擴散到它自己的鄰居
LSA數量 Number of LSA
此數據包中包含的LSA的數量
鏈路狀態通告 LSA
6.鏈路狀態確認數據包
用來進行LSA可靠的泛洪擴散