欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種處理ospf報文亂序的方法及ospf路由器的制作方法

文檔序號:7693046閱讀:201來源:國知局
專利名稱:一種處理ospf報文亂序的方法及ospf路由器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及開放式最短路徑優(yōu)先(OSPF, Open Shortest Path First)技 術(shù),尤指一種處理OSPF報文亂序的方法及OSPF路由器。
背景技術(shù)
在OSPF協(xié)議中,為了保證路由創(chuàng)建的可靠性,在OSPF路由器上啟用 身份認(rèn)證功能,使通過身份認(rèn)證的路由器才能互通路由信息,實現(xiàn)創(chuàng)建路由 的可靠性。目前,OSPF協(xié)議通常使用信息-摘要算法(MD5, Message-Digest Algorithm 5 )身份認(rèn)證。在MD5認(rèn)證中,發(fā)送方和接收方協(xié)商確定雙方使 用的密鑰,發(fā)送方根據(jù)密鑰和發(fā)送報文信息計算得到報文摘要并攜帶在報文 的尾部,發(fā)送給接收方;接收方接收報文并根據(jù)協(xié)商的密鑰和收到報文的信 息計算得到報文摘要,比較計算得到的報文摘要和收到的報文摘要是否相同,相同,則確定當(dāng)前報文來自合法用戶,否則,丟棄當(dāng)前收到的報文。在MD5認(rèn)證過程中,為了加強認(rèn)證過程的安全性,通常在報文的頭部 添加MD5序列號,發(fā)送方OSPF路由器按照遞增的方式將序列號添加在發(fā) 送的OSPF報文中。接收方OSPF路由器針對每個鄰居路由器維護當(dāng)前收到 的最大序列號,如果收到發(fā)送方A發(fā)送的OSPF報文,則獲取該報文中攜帶 的序列號,并獲得自身記錄的該鄰居路由器發(fā)送的最大序列號,將報文中攜 帶的序列號與自身當(dāng)前記錄的最大序列號比較,如果當(dāng)前攜帶的序列號大于 等于記錄的序列號,則進行消息摘要的驗證,按照OSPF協(xié)議進行后續(xù)處理, 并用當(dāng)前獲取的序列號更新為發(fā)送方A維護的最大序列號;如果小于記錄 的序列號,則丟棄當(dāng)前收到的報文,不進行后續(xù)處理。在OSPF協(xié)議中,主要包括五類報文健康檢查(HELLO)報文、鏈路狀態(tài)信息庫描述(DD, Database Description )報文、鏈路狀態(tài)信息請求(LSR, Link State Request)報文、鏈路狀態(tài)信息更新(LSU, Link State Update )報 文和鏈路狀態(tài)信息確認(rèn)(LSAck, Link State Acknowledgment)報文。HELLO 報文,用于發(fā)現(xiàn)及維持鄰居關(guān)系,選舉DR、 BDR; DD報文,用于描述本 地鏈路狀態(tài)數(shù)據(jù)庫(LSDB, Link State Database )的情況;LSR報文,用于 向?qū)Χ苏埱蟊径藳]有或?qū)Χ烁碌腖SA; LSU報文,用于向?qū)Ψ礁翷SA; LSAck報文,用于收到LSU之后進行確認(rèn)。其中,如果Hello報文得不到及 時處理會導(dǎo)致鄰居DOWN,進而將會由于鄰居發(fā)生變化而發(fā)送大量的LSU 報文;同時,如果LSAck報文得不到及時處理會導(dǎo)致LSU報文的重傳。為 了避免沒有及時處理上述兩類報文而造成的網(wǎng)絡(luò)振蕩以及不必要的LSA重 傳,RFC4222提出優(yōu)先處理HELLO報文以及LSAck報文的解決方案。使 HELLO報文和LSAck報文進入OSPF高優(yōu)先級緩存,其他類型的報文進入 OSPF低優(yōu)先級緩存,在讀取當(dāng)前進行處理的OSPF報文,優(yōu)先從OSPF高 優(yōu)先級緩存中讀取。如果優(yōu)先處理HELLO報文和LSAck報文這兩種類型的報文,將導(dǎo)致處 理報文的順序與鄰居路由器發(fā)送報文的順序不同,這樣,由于報文中攜帶有 按照發(fā)送順序填入的序列號。因此,在進行序列號檢查時,會使接收在先而 未被優(yōu)先處理的報文被視為非法報文而被丟棄,造成報文亂序。為了解決這 個問題,在具體的處理過程中,現(xiàn)有技術(shù)對報文進行優(yōu)先級調(diào)整之前,先預(yù) 處理收到的OSPF協(xié)議報文,對其進行序列號的檢查以及報文摘要的驗證; 然后再按照優(yōu)先處理策略調(diào)整報文的處理順序,以解決MD5認(rèn)證過程中存 在的亂序問題。現(xiàn)有技術(shù)中之所以在調(diào)整處理順序之前對報文進行預(yù)處理,主要是因為 現(xiàn)有技術(shù)中序列號檢查的具體方式。如前所述,OSPF路由器為自身的每個 鄰居路由器僅維護一個最大序列號,所有來自該鄰居路由器的報文,都會用 維護的同一序列號與報文攜帶的序列號進行比較,進行序列號的更新,因此 在調(diào)整OSPF報文處理順序之后,再對報文進行序列號檢查,由于更新的是同一個序列號,進而無法避免MD5認(rèn)證過程中出現(xiàn)的亂序問題。由此可見,在現(xiàn)有技術(shù)中,為了避免MD5認(rèn)證過程中調(diào)整報文處理順 序而導(dǎo)致的亂序問題,現(xiàn)有技術(shù)必須在調(diào)整報文處理順序之前對報文的序列 號進行檢查,無法在調(diào)整報文處理順序之后,實現(xiàn)對報文序列號的成功檢查。 然而,在有些場景下,例如從IP層開始就按照優(yōu)先處理策略調(diào)整報文處理 順序,由于序列號檢查的操作必須在IP層之后的OSPF模塊中進行,因此 現(xiàn)有技術(shù)無法解決這種場景下MD5認(rèn)證過程中報文亂序的問題。發(fā)明內(nèi)容有鑒于此,本發(fā)明提供了 一種處OSPF報文亂序的方法及OSPF路由器, 應(yīng)用本發(fā)明所提供的方法以及OSPF路由器能夠在調(diào)整報文的處理順序之 后,實現(xiàn)對報文進行序列號的檢查,克服調(diào)整報文處理順序之后出現(xiàn)的亂序 問題。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的 一種處理OSPF報文亂序的方法,該方法包括在檢查OSPF報文的序列號時,根據(jù)OSPF報文類型獲得發(fā)送該OSPF 報文的鄰居路由器對應(yīng)的最大序列號;判斷該OSPF報文中攜帶的序列號是否大于等于所述獲得的最大序列 號,如果是,記錄當(dāng)前OSPF報文攜帶的序列號,根據(jù)OSPF協(xié)議處理當(dāng)前 OSPF報文;否則,丟棄當(dāng)前OSPF報文。一種OSPF路由器,該OSPF路由器包括處理單元和存儲單元;處理單元,用于在檢查開放式最短路徑優(yōu)先OSPF報文的序列號時,根 據(jù)OSPF報文類型從所述存儲單元中獲得發(fā)送該OSPF報文的鄰居路由器對 應(yīng)的最大序列號;判斷該OSPF報文中攜帶的序列號是否大于等于所述獲得 的最大序列號,如果是,將當(dāng)前OSPF報文攜帶的序列號記錄至所述存儲單 元,根據(jù)OSPF協(xié)議處理當(dāng)前OSPF報文;否則,丟棄當(dāng)前OSPF報文;存儲單元,用于存儲OSPF報文中攜帶的序列號。本發(fā)明所提供了一種處理OSPF報文亂序的方法及OSPF路由器,在本 發(fā)明實施例的技術(shù)方案中,在檢查報文的序列號時,根據(jù)當(dāng)前OSPF報文類 型分序列號,對OSPF報文進行序列號檢查,解決了現(xiàn)有序列號檢查方案無 法在調(diào)整報文處理順序之后執(zhí)行的問題,實現(xiàn)了在調(diào)整報文處理順序之后對 報文序列號的檢查,克服了報文處理順序調(diào)整而帶來的亂序問題。另外,本 發(fā)明實施例的技術(shù)方案不僅能夠在調(diào)整報文處理順序之后,成功的進行報文 序列號的檢查,同時,相對于現(xiàn)有的序列號檢查方案來說,還能夠提高OSPF 路由器處理處理OSPF協(xié)議報文的效率。


圖1為本發(fā)明方法的示例性流程圖;圖2為本發(fā)明OSPF路由器的示例性結(jié)構(gòu)圖;圖3為本發(fā)明實施例方法的流程圖;圖4為本發(fā)明實施例OSPF路由器的結(jié)構(gòu)圖。
具體實施方式
在本發(fā)明實施例的技術(shù)方案,為了可以在調(diào)整OSPF報文處理順序之后, 仍然能夠正常實現(xiàn)對報文序列號的檢查,可以根據(jù)OSPF報文報文類型對 OSPF報文進行序列號檢查。參見圖1,圖1為本發(fā)明方法的示例性流程圖,包括在步驟101中, 在檢查OSPF報文的序列號時,根據(jù)OSPF報文類型獲得發(fā)送該OSPF報文 的鄰居路由器對應(yīng)的最大序列號。在步驟102中,判斷該OSPF報文中攜帶 的序列號是否大于等于所述獲得的最大序列號,如果是,執(zhí)行步驟103;否 則,執(zhí)行步驟104。在步驟103中,記錄當(dāng)前OSPF報文攜帶的序列號,根 據(jù)OSPF協(xié)議處理當(dāng)前OSPF報文。在步驟104中,丟棄當(dāng)前OSPF報文。另外,參見圖2,圖2為本發(fā)明OSPF路由器的示例性結(jié)構(gòu)圖,包括處 理單元和存儲單元。其中,處理單元,用于在^f企查開放式最短路徑優(yōu)先OSPF報文的序列號時,根據(jù)OSPF報文類型從所述存儲單元中獲得發(fā)送該OSPF 報文的鄰居路由器對應(yīng)的最大序列號;判斷該OSPF報文中攜帶的序列號是 否大于等于所述獲得的最大序列號,如果是,將當(dāng)前OSPF報文攜帶的序列 號記錄至所述存儲單元,根據(jù)OSPF協(xié)議處理當(dāng)前OSPF報文;否則,丟棄 當(dāng)前OSPF報文;存儲單元,用于存儲OSPF報文中攜帶的序列號。在收到的OSPF報文類型為HELLO報文或者LSAck報文時,獲得發(fā)送所述 HELLO報文或者LSAck報文的鄰居路由器對應(yīng)的第一最大序列號;在收到 的OSPF報文類型為鏈路狀態(tài)信息庫描述DD報文、鏈路狀態(tài)信息請求LSR 報文或者鏈路狀態(tài)信息更新LSU報文時,獲得發(fā)送所述DD報文、LSR報 文或者LSU報文的鄰居路由器對應(yīng)的第二最大序列號。OSPF路由器為每個鄰居路由器創(chuàng)建第一序列號變量和第二序列號變量; 在獲得所述第一最大序列號時,獲得第一序列號對應(yīng)的序列號變量,將該第一 序列號變量當(dāng)前的值作為所需獲得的第一最大序列號;相應(yīng)的,所述記錄當(dāng)前 OSPF報文中攜帶的序列號為用當(dāng)前OSPF報文中攜帶的序列號更新第 一序列 號對應(yīng)的第一序列號變量;在獲得所述第二最大序列號時,獲得第二序列號對 應(yīng)的第二序列號變量,將第二序列號變量當(dāng)前的值作為所需獲得的第二最大序 列號;相應(yīng)的,所述記錄當(dāng)前OSPF報文中攜帶的序列號為用當(dāng)前OSPF報 文中攜帶的序列號更新第二序列號對應(yīng)的第二序列號變量。另夕卜,對于OSPF報文類型和最大序列號之間還可以有其他的對應(yīng)方法。 比如說,每一報文類型對應(yīng)一個最大序列號HELLO報文對應(yīng)第一最大序 列號;LSAck報文對應(yīng)第二最大序列號;DD報文對應(yīng)第三最大序列號;LSR 報文對應(yīng)第四最大序列號;LSU報文對應(yīng)第五最大序列號。 一般情況下,系 統(tǒng)對OSPF報文有處理的先后,本發(fā)明將處于同一優(yōu)先等級類型的OSPF報 文設(shè)置一個對應(yīng)的最大序列號,另外一個優(yōu)先等級的OSPF報文設(shè)置另一個 對應(yīng)的最大序列號。這種對應(yīng)方法能夠很好的適用于優(yōu)先處理策略按照 OSPF報文的報文類型確定優(yōu)先處理等級的場景。在此種場景下,在獲得該報文類型對應(yīng)的最大序列號時,則找到發(fā)送當(dāng)前OSPF報文的鄰居路由器對 應(yīng)該報文類型的最大序列號變量,該最大序列號變量當(dāng)前的值即為所需的最 大序列號。在當(dāng)前OSPF報文攜帶的序列號大于當(dāng)前最大序列號時,則用當(dāng) 前OSPF報文中攜帶的序列號更新對應(yīng)的最大序列號變量。同優(yōu)先級處理級別的報文對應(yīng)同 一序列號,因此對應(yīng)同 一序列號的報文還是 按照接收順序進行排隊處理,因此本發(fā)明按照OSPF報文類型進行序列號檢 查,能夠解決報文亂序而導(dǎo)致合法報文序列號檢查不通過的問題。本發(fā)明實 施例的技術(shù)方案克服了調(diào)整報文處理順序之后出現(xiàn)的亂序問題,實現(xiàn)了調(diào)整 報文的處理順序之后對報文進行序列號的檢查。除了上述提及的兩種優(yōu)先處理策略之外,本發(fā)明的技術(shù)方案還適用于其 他的優(yōu)先處理策略。例如,在僅需要優(yōu)先級處理HELLO報文時,則可以將 HELLO報文設(shè)置為高優(yōu)先級類型,OSPF報文中的其他四個類型設(shè)置為低優(yōu) 先級類型。又如,當(dāng)優(yōu)先處理等級分為三類,具有高等優(yōu)先級的為HELLO 報文、具有中等優(yōu)先級的為LSAck報文,具有低等優(yōu)先級的DD報文、LSR 報文和LSU報文,則此時可以設(shè)置高優(yōu)先級類型、中優(yōu)先級類型以及低優(yōu) 先級類型。為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉 實施例,對本發(fā)明做進一步的詳細說明。由于本發(fā)明實施例能夠很好的應(yīng)用于先調(diào)整報文處理順序,再進行序列 號檢查的場合,因此,本發(fā)明實施例主要以該應(yīng)用場合為例進行介紹。報文時,可以將HELLO報文和LSAck報文設(shè)置為對應(yīng)第一序列號變量;將 DD報文、LSR報文和LSU報文設(shè)置為對應(yīng)第二序列號變量。同時,在OSPF 路由器設(shè)置序列號需要對應(yīng)每個鄰居路由器設(shè)置對應(yīng)的序列號變量。例如, 當(dāng)前OSPF路由器A存在三個鄰居路由器B、 C和D,那么在設(shè)置第一序列號變量和第二序列號變量時,需要為每個鄰居路由器設(shè)置第一和第二序列號變量。序列號變量隨著該變量對應(yīng)報文所攜帶的序列號的增大,而不斷更新, 始終保持序列號變量的值為接收該類型報文以來序列號的最大值。參見圖3,圖3為本實施例方法的流程圖,具體包括 在步驟301中,收到OSPF報文。在步驟302中,判斷是否為HELLO報文或者LSAck報文,如果是,執(zhí) 行步驟303;否則,執(zhí)行步驟304。在步驟303中,將當(dāng)前接收到的OSPF報文送入高優(yōu)先級通道,執(zhí)行步 驟305。在本發(fā)明實施例中,高優(yōu)先級通道可以是由高優(yōu)先級OSPF緩存組成, 在報文經(jīng)過IP層處理后,將當(dāng)前OSPF報文按照先進先出原則送入高優(yōu)先 級OSPF緩存,等待進行OSPF處理。另外,高優(yōu)先級通道也可以是由高優(yōu) 先級IP隊列和高優(yōu)先級OSPF緩存組成,在當(dāng)前OSPF報文進行IP層處理 之前,將當(dāng)前報文按照先進先出原則送入高優(yōu)先級IP隊列,待IP層處理完 畢之后,再按照先進先出送入高優(yōu)先級OSPF緩存,等待進行OSPF處理。 在步驟304中,將當(dāng)前接收到的OSPF報文送入低優(yōu)先級通道。 相對的,本發(fā)明實施例中的低優(yōu)先級通道可以是低優(yōu)先級OSPF緩存組 成,在報文經(jīng)過IP層處理后,將當(dāng)前OSPF報文按照先進先出原則送入低 優(yōu)先級OSPF緩存,等待進行OSPF處理。另外,低優(yōu)先級通道也可以是由 低優(yōu)先級IP隊列和低優(yōu)先級OSPF緩存組成,在當(dāng)前OSPF報文進行IP層 處理之前,將當(dāng)前報文按照先進先出送入低優(yōu)先級IP隊列,待IP層處理完 畢之后,再按照先進先出原則送入低優(yōu)先級OSPF緩存,等待進行OSPF處 理。在步驟305中,在需要讀取當(dāng)前進行OSPF處理的OSPF報文時,優(yōu)先從高優(yōu)先級通道中讀取OSPF報文。也就是,在高優(yōu)先級OSPF緩存存在有排隊的報文時,優(yōu)先從OSPF緩存中讀取當(dāng)前進行OSPF處理的報文。當(dāng)然,也并不僅限于這種優(yōu)先讀取方式。在步驟306中,確定當(dāng)前OSPF報文對應(yīng)的序列號變量。當(dāng)OSPF報文類型為HELLO報文或者LSAck報文時,獲得發(fā)送當(dāng)前 HELLO報文或者LSAck報文的鄰居路由器對應(yīng)的第一最大序列號;當(dāng)OSPF 報文類型為DD報文、LSR報文或者LSU報文時,獲得發(fā)送當(dāng)前DD報文、LSR 報文或者LSU報文的鄰居路由器對應(yīng)的第二最大序列號。在步驟307中,讀取當(dāng)前序列號變量的值得到最大序列號,即發(fā)送當(dāng)前 OSPF報文的鄰居路由器對應(yīng)的最大序列號。在步驟308中,獲得當(dāng)前取出OSPF報文中攜帶的序列號,判斷當(dāng)前 OSPF報文中攜帶的序列號是否大于等于當(dāng)前獲得的最大序列號,如果是, 執(zhí)行步驟309;否則,執(zhí)行步驟310。本步驟中,獲得當(dāng)前OSPF報文中攜帶的序列號的操作,可以在本步驟 中執(zhí)行,也可以在步驟305取出當(dāng)前OSPF報文之后執(zhí)行。在步驟309中,用當(dāng)前OSPF報文攜帶的序列號,更新發(fā)送該報文的鄰 居路由器對應(yīng)的序列號變量,并根據(jù)OSPF協(xié)議理當(dāng)前OSPF報文,結(jié)束當(dāng) 前處理流程。在步驟310中,則丟棄當(dāng)前OSPF報文,結(jié)束當(dāng)前處理流程。另外,參見圖4,圖4為本發(fā)明實施例OSPF路由器的結(jié)構(gòu)圖,包括處 理單元和存儲單元。與圖2所示的結(jié)構(gòu)相同,處理單元,用于在檢查開放式最短路徑優(yōu)先 OSPF報文的序列號時,根據(jù)OSPF報文類型從所述存儲單元中獲得發(fā)送該 OSPF報文的鄰居路由器對應(yīng)的最大序列號;判斷該OSPF報文中攜帶的序 列號是否大于等于所述獲得的最大序列號,如果是,將當(dāng)前OSPF報文攜帶 的序列號記錄至所述存儲單元,根據(jù)OSPF協(xié)議處理當(dāng)前OSPF報文;否貝寸, 丟棄當(dāng)前OSPF報文;存儲單元,用于存儲OSPF報文中攜帶的序列號。具體的,所述處理單元,用于根據(jù)OSPF報文類型獲得發(fā)送該OSPF報 文的鄰居路由器對應(yīng)的最大序列號時,當(dāng)OSPF報文類型為健康檢查HELLO 報文或者鏈路狀態(tài)信息確認(rèn)LSAck報文時,從所述存儲單元中獲得發(fā)送所 述HELLO報文或者LSAck報文的鄰居路由器對應(yīng)的第 一最大序列號;當(dāng)OSPF報文類型為鏈路狀態(tài)信息庫描述DD報文、鏈路狀態(tài)信息請求LSR報 文或者鏈路狀態(tài)信息更新LSU報文時,從所述存儲單元中獲得發(fā)送所述DD 報文、LSR報文或者LSU報文的鄰居路由器對應(yīng)的第二最大序列號。具體的,所述存儲單元,用于為每個鄰居路由器創(chuàng)建第一序列號變量和 第二序列號變量;所述處理單元,用于在獲得所述第一最大序列號時,找到 所述存儲單元中第一序列號對應(yīng)的第一序列號變量,將該第一序列號變量當(dāng) 前的值作為所需獲得的第一最大序列號;相應(yīng)的,在記錄當(dāng)前OSPF報文中 攜帶的序列號時,用當(dāng)前OSPF報文中攜帶的序列號更新第 一序列號對應(yīng)的 第一序列號變量;在獲得所述第二最大序列號時,找到所述存儲單元中第二 序列號對應(yīng)的第二序列號變量,將該第二序列號變量當(dāng)前的值作為所需獲得 的第二最大序列號;相應(yīng)的,在記錄當(dāng)前OSPF報文中攜帶的序列號時,用 當(dāng)前OSPF報文中攜帶的序列號更新第二序列號對應(yīng)的第二序列號變量。另外,OSPF路由器進一步包括接收單元、高優(yōu)先級處理單元、低優(yōu) 先級處理單元和控制單元。其中,所述接收單元,用于在收到Hello報文或 者LSAck報文時,送入高優(yōu)先級處理單元;在收到其他報文類型的OSPF 報文時,送入低優(yōu)先級處理單元;所述高優(yōu)先級處理單元和低優(yōu)先級處理單 元,用于按照先進先出策略緩存送入的報文;所述控制單元,用于優(yōu)先從高 優(yōu)先級單元中讀取OSPF報文,將讀取的報文發(fā)送至所述處理單元。具體的,所述高優(yōu)先級處理單元包括高優(yōu)先級IP隊列和高優(yōu)先級OSPF 緩存;所述高優(yōu)先級IP隊列,用于按照先進先出策略,接收所述接收單元 送入的OSPF報文、并發(fā)送至IP層處理;所述高優(yōu)先級OSPF緩存,用于按 照先進先出策略接收經(jīng)過IP層處理后的OSPF報文;所述低優(yōu)先級處理單 元包括低優(yōu)先級IP隊列和低優(yōu)先級OSPF緩存;所述低優(yōu)先級IP隊列, 用于按照先進先出策略,接收所述接收單元送入的OSPF報文、并發(fā)送至IP 層處理;所述低優(yōu)先級OSPF緩存,用于按照先進先出策略接收經(jīng)過IP層 處理后的OSPF報文。當(dāng)優(yōu)先處理策略是按照OSPF報文的報文類型確定優(yōu)先處理等級,則根據(jù)OSPF報文的報文類型設(shè)置對應(yīng)序列號,例如,HELLO報文對應(yīng)HELLO 序列號變量,LSAck報文對應(yīng)LSAck序列號變量,DD報文對應(yīng)DD序列號 變量,LSR報文對應(yīng)LSR序列號變量,LSU報文對應(yīng)LSU序列號變量。在 收到OSPF報文,則根據(jù)對應(yīng)的報文類型獲得對應(yīng)的序列號變量,序列號變 量當(dāng)前的值即為該報文類型對應(yīng)的最大值,然后根據(jù)獲得的最大序列號變量 與自身攜帶的序列號進行比較,進行序列號的檢查。顯然,根據(jù)OSPF報文 的報文類型設(shè)置對應(yīng)的序列號變量同樣適用于優(yōu)先級策略為優(yōu)先處理OSPF 報文中的HELLO報文和LSAck報文的場景。在根據(jù)報文類型設(shè)置對應(yīng)的序列號變量,處理單元根據(jù)OSPF報文類型 獲得發(fā)送該OSPF報文的鄰居路由器對應(yīng)的最大序列號時,則根據(jù)當(dāng)前OSPF最大序列號。通過上述技術(shù)方案,本發(fā)明實施例通過根據(jù)報文的不同類型分序列號, 對OSPF報文進行序列號檢查,解決了現(xiàn)有序列號檢查方案無法在調(diào)整報文 處理順序之后執(zhí)行的問題,實現(xiàn)了在調(diào)整報文處理順序之后,對報文序列號 的檢查,克服了報文處理順序調(diào)整而帶來的亂序問題。另外,從本發(fā)明實施例的技術(shù)方案不難得出,本發(fā)明的技術(shù)方案不僅能 夠在調(diào)整報文處理順序之后,成功對報文序列號進行檢查;還可以在調(diào)整報 文處理順序之前,對報文序列號進行成功檢查,克服了報文處理順序調(diào)整而 帶來的亂序問題。同時,相對于現(xiàn)有的序列號檢查方案來說,還能夠提高OSPF路由器處 理處理OSPF協(xié)議報文的效率?,F(xiàn)有的序列號檢查方案,先解析報文取出其 中的序列號,進行序列號的檢查;然后,根據(jù)報文的不同種類送入不同優(yōu)先 級的OSPF緩存,在正式進行OSPF處理再次解析OSPF報文進行OSPF處 理。可見,現(xiàn)有技術(shù)中對接收的報文進行了兩次解析。而在本發(fā)明的技術(shù)方 案中,由于序列號的檢查在調(diào)整報文處理順序之后執(zhí)行,這樣,就可以通過 一次解析的操作,完成對報文的序列號、報文摘要的驗證以及根據(jù)OSPF協(xié)議處理報文的操作,提高處理OSPF協(xié)議報文的效率。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本 發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在 本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種處理OSPF報文亂序的方法,其特征在于,該方法包括在檢查開放式最短路徑優(yōu)先OSPF報文的序列號時,根據(jù)OSPF報文類型獲得發(fā)送該OSPF報文的鄰居路由器對應(yīng)的最大序列號;判斷該OSPF報文中攜帶的序列號是否大于等于所述獲得的最大序列號,如果是,記錄當(dāng)前OSPF報文攜帶的序列號,根據(jù)OSPF協(xié)議處理當(dāng)前OSPF報文;否則,丟棄當(dāng)前OSPF報文。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)OSPF報文類型獲得發(fā)送該OSPF報文的鄰居路由器對應(yīng)的最大 序列號具體包括當(dāng)OSPF報文類型為健康檢查HELLO報文或者鏈路狀態(tài)信息確認(rèn)LSAck 報文時,獲得發(fā)送所述HELLO報文或者LSAck報文的鄰居路由器對應(yīng)的第一 最大序列號;當(dāng)OSPF報文類型為鏈路狀態(tài)信息庫描述DD報文、鏈路狀態(tài)信息請求LSR 報文或者鏈路狀態(tài)信息更新LSU報文時,獲得發(fā)送所述DD報文、LSR報文或 者LSU報文的鄰居路由器對應(yīng)的第二最大序列號。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,該方法進一步包括為每個鄰居路由器創(chuàng)建第一序列號變量和第二序列號變量;在獲得所述第一最大序列號時,獲得第一序列號對應(yīng)的序列號變量,將該 第一序列號變量當(dāng)前的值作為所需獲得的第一最大序列號;相應(yīng)的,所述記錄當(dāng)前OSPF報文中攜帶的序列號為用當(dāng)前OSPF報文中攜帶的序列號更新第一序列號對應(yīng)的第 一序列號變量;在獲得所述第二最大序列號時,獲得第二序列號對應(yīng)的第二序列號變量,將第二序列號變量當(dāng)前的值作為所需獲得的第二最大序列號;相應(yīng)的,所述記錄當(dāng)前OSPF報文中攜帶的序列號為用當(dāng)前OSPF報文中攜帶的序列號更新第二序列號對應(yīng)的第二序列號變量。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)OSPF報文類型獲得發(fā)送該OSPF報文的鄰居路由器對應(yīng)的最大 序列號具體包括根據(jù)當(dāng)前OSPF報文的報文類型,獲得發(fā)送所述OSPF報文 的鄰居路由器對應(yīng)該報文類型的最大序列號。
5、 根據(jù)權(quán)利要求1至4中任一權(quán)利要求所述的方法,其特征在于,在檢查 OSPF報文的序列號之前,該方法進一步包括在收到Hello報文或者LSAck報文時,送入高優(yōu)先級通道;在收到其他報 文類型的OSPF報文時,送入低優(yōu)先級通道;在讀取當(dāng)前進行OSPF處理的OSPF報文時,優(yōu)先從高優(yōu)先級通道中讀取 OSPF報文進行序列號檢查。
6、 一種OSPF路由器,其特征在于,該OSPF路由器包括處理單元和存儲單元;處理單元,用于在檢查開放式最短路徑優(yōu)先OSPF報文的序列號時,根據(jù) OSPF報文類型從所述存儲單元中獲得發(fā)送該OSPF報文的鄰居路由器對應(yīng)的 最大序列號;判斷該OSPF報文中攜帶的序列號是否大于等于所述獲得的最大 序列號,如果是,將當(dāng)前OSPF報文攜帶的序列號記錄至所述存儲單元,根據(jù) OSPF協(xié)議處理當(dāng)前OSPF報文;否則,丟棄當(dāng)前OSPF報文;存儲單元,用于存儲OSPF報文中攜帶的序列號。
7、 根據(jù)權(quán)利要求6所述的OSPF路由器,其特征在于, 所述處理單元,用于根據(jù)OSPF報文類型獲得發(fā)送該OSPF報文的鄰居路由器對應(yīng)的最大序列號時,當(dāng)OSPF報文類型為健康檢查HELLO報文或者鏈 路狀態(tài)信息確認(rèn)LSAck報文時,從所述存儲單元中獲得發(fā)送所述HELLO報文 或者LSAck報文的鄰居路由器對應(yīng)的第一最大序列號;當(dāng)OSPF報文類型為鏈 路狀態(tài)信息庫描述DD報文、鏈路狀態(tài)信息請求LSR報文或者鏈路狀態(tài)信息更 新LSU報文時,從所述存儲單元中獲得發(fā)送所述DD報文、LSR報文或者LSU 報文的鄰居路由器對應(yīng)的第二最大序列號。
8、 根據(jù)權(quán)利要求7所述的OSPF路由器,其特征在于, 所述存儲單元,用于為每個鄰居路由器創(chuàng)建第 一序列號變量和第二序列號水縣-又里,所述處理單元,用于在獲得所述第一最大序列號時,找到所述存儲單元中 第一序列號對應(yīng)的第一序列號變量,將該第一序列號變量當(dāng)前的值作為所需獲 得的第一最大序列號;相應(yīng)的,在記錄當(dāng)前OSPF報文中攜帶的序列號時,用 當(dāng)前OSPF報文中攜帶的序列號更新第一序列號對應(yīng)的第一序列號變量;在獲 得所述第二最大序列號時,找到所述存儲單元中第二序列號對應(yīng)的第二序列號 變量,將該第二序列號變量當(dāng)前的值作為所需獲得的第二最大序列號;相應(yīng)的, 在記錄當(dāng)前OSPF報文中攜帶的序列號時,用當(dāng)前OSPF報文中攜帶的序列號 更新第二序列號對應(yīng)的第二序列號變量。
9、 根據(jù)權(quán)利要求6所述的OSPF路由器,其特征在于, 所述處理單元,用于根據(jù)OSPF報文類型獲得發(fā)送該OSPF報文的鄰居路由器對應(yīng)的最大序列號時,根據(jù)當(dāng)前OSPF報文的報文類型,獲得發(fā)送所述 OSPF報文的鄰居路由器對應(yīng)該報文類型的最大序列號。
10、 根據(jù)權(quán)利要求6至9中任一權(quán)利要求所述的OSPF路由器,其特征在 于,該OSPF路由器進一步包括接收單元、高優(yōu)先級處理單元、低優(yōu)先級處 理單元和控制單元;所述接收單元,用于在收到Hello報文或者LSAck報文時,送入高優(yōu)先級 處理單元;在收到其他報文類型的OSPF報文時,送入低優(yōu)先級處理單元;所述高優(yōu)先級處理單元和低優(yōu)先級處理單元,用于按照先進先出策略緩存 送入的報文;所述控制單元,用于優(yōu)先從高優(yōu)先級單元中讀取OSPF報文,將讀取的報 文發(fā)送至所述處理單元。
全文摘要
本發(fā)明公開了一種處理開放式最短路徑優(yōu)先(OSPF,Open Shortest Path First)報文亂序的方法及OSPF路由器,在本發(fā)明實施例的技術(shù)方案中,根據(jù)OSPF報文類型分序列號,對OSPF報文進行序列號檢查,解決了現(xiàn)有序列號檢查方案無法在調(diào)整報文處理順序之后執(zhí)行的問題,實現(xiàn)了在調(diào)整報文處理順序之后對報文序列號的檢查,克服了報文處理順序調(diào)整而帶來的亂序問題。
文檔編號H04L12/56GK101237462SQ200810101898
公開日2008年8月6日 申請日期2008年3月13日 優(yōu)先權(quán)日2008年3月13日
發(fā)明者林長望, 章海鋒, 強 郭, 錢雪彪 申請人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
锡林郭勒盟| 彭阳县| 湾仔区| 石泉县| 鹰潭市| 治县。| 云阳县| 乌兰察布市| 正安县| 车险| 崇义县| 博客| 金湖县| 武胜县| 浦江县| 新绛县| 滕州市| 麻栗坡县| 南城县| 无极县| 郴州市| 县级市| 通江县| 遂川县| 新晃| 楚雄市| 广汉市| 桃江县| 浦城县| 阿荣旗| 乐东| 武川县| 土默特右旗| 广宁县| 鄱阳县| 华蓥市| 镇平县| 探索| 武夷山市| 哈巴河县| 灵宝市|