天天看點

BSCI—4:詳解OSPF包類型

一:OSPF包的類型:

1、 HELLO包:用來建立和維持鄰居關系;

2、 DATEBASE DESCRIPTION (DBD):用來檢驗路由器之間的資料庫并進行同步的;

3、 Link state request (LSR):鍊路狀态請求;

4、 Link state update(LSU):“特定”鍊路之間的請求記錄;

5、 Link state acknowledgement (LSAck):确認包;

二:解釋為何需要ACK包

OSPF包也是包含在IP資料分組中的,使用的協定号是89,而不是運用的傳輸層的TCP或者UDP,是以沒有一定的可靠性,但是OSPF又要求使用可靠的傳輸,是以就有了LSAck包的出現。【這些與EIGRP非常的相似。EIGRP也是直接封裝在IP分組中的,使用的協定号是88。沒有使用TCP或者UDP,也就随之有了ACK包。】

三:OSPF鄰接過程

1、初始化狀态:其中一個路由器A發送一個HELLO,我是A,有人嗎?這個時候B收到後,就将這個資訊儲存在一個鄰居“清單”【而不是鄰接關系資料庫】中。然後回應,我是路由器B,我能看的到你路由器A。這個時候呢,A接收到B的回應資訊以後呢,也将這個資訊儲存着在自己的一個鄰居“清單”中。這個過程是一個瞬時狀态.

2、Two-way state:而雙方都知道對方的存在的時候,他們就算是進入了另外一種狀态:Two-way state。【這是一個持久的狀态】

3、Exstart state(交換初始化狀态):這是一個雙方都争取DR的一個過程。A說他夠格,B說他夠格。其實就是一個DR與BDR的選舉過程:先是比較它們的優先級【預設的優先級都是1】,如果優先級相同的話,就開始比較它們的RID【RID大的那個就是DR;如果存在環回接口的話,那環回接口的IP位址就是RID。如果沒有的話,那就是接口中IP位址最大的那個IP就是RID】。這也是一個瞬間的狀态。

4、Exchange state (交換狀态):雙方向對方發送一個DBD(資料庫狀态描述),裡面包含的是自己本身的鍊路狀态資料庫的摘要資訊。并且雙方正确收到以後,給對方傳回一個LSAck進行确認!這也是一個瞬間狀态!

5、Loading state (加載狀态):通過對方發送來的那個DBD,與自己的LSDB進行比較。如果是缺少什麼條目的話,就用LSR(鍊路狀态請求)向對方索要,然後對方發送一個LSU,其中包含我們所需要的條目。正确收到LSU後,再發送一個LSAck進行确認!【這是一個瞬間狀态】

6、Full state(完全鄰接狀态):經過加載狀态,将所需要的條目都補充完全了後,就到了完全鄰接的狀态了。鄰居關系正式成立,并投入使用!【持久狀态】

注:在這些過程中,隻有【雙向狀态】與【完全鄰接狀态】是持久狀态,其他的都是瞬間狀态!

四:路由資訊的維持

當網絡穩定的時候,突然一個鍊路出現了故障,那麼發現這個故障的路由器就會生成一個LSA,這個LSA不是發送給他的所有的鄰居,而是發送給DR,然後用DR來管理“LSA的洪泛”,由DR來發送給其他的鄰居路由器,鄰居路由器接受了以後,更新自己的LSDB,然後複制出一個拷貝,發送給下面的鄰居。

本文轉自 meiyanaa 51CTO部落格,原文連結:http://blog.51cto.com/justim/268989,如需轉載請自行聯系原作者