專利名稱:一種鏈路狀態通告信息確認方法和設備的制作方法
技術領域:
本申請涉及鏈路狀態路由協議技術,特別涉及一種鏈路狀態通告信息確認方法和設備。
背景技術:
路由交換網絡設備在因特網互聯中,承擔著網絡流量的轉發和路由轉發等重要工作。網絡設備通過路由協議來學習路由信息,目前比較常用的路由協議為動態路由協議,如開放式最短路徑優先協議(Open Shortest Path First,0SPF)等。為了保證網絡設備路由學習的可靠性,動態路由協議,尤其是鏈路狀態路由協議,通常采用重傳確認技術來保證路由信息的可靠傳輸和路由學習的正確性及完整性,避免路
重傳確認技術是通過在網絡設備上運行的路由協議間傳遞確認(Ack)報文來完成的。例如OSPF協議,當OSPF設備收到來自鄰居OSPF設備的鏈路狀態更新(LSU)報文時,從LSU報文中解析鏈路狀態通告(LSA)信息,完成對LSA的數據庫安裝、泛洪,并將針對LSU報文中包含的每一個LSA信息進行確認,將所有的確認信息封裝成鏈路狀態確認(LSAck)報文發送給鄰居OSPF設備,表示正確接收了 LSU報文。當無法及時回復LSAck報文或鄰居OSPF設備無法及時接收到LSAck報文時,鄰居OSPF設備將重傳LSU報文。當網絡振蕩較厲害時,OSPF設備將進行大量的LSU報文的轉發,OSPF設備將處理大量的LSU報文,每處理一個LSU報文后回復對應的LSAck信息,當處理一個LSU報文時,后續收到的LSU報文將被堆積,后續的LSU報文將無法及時回復LSAck信息,當OSPF設備忙于路由計算等計算密集型操作時,將長時間占用CPU,導致LSU報文不能及時得到處理,從而LSAck信息不能及時發送,最終導致鄰居OSPF設備重傳LSU報文。大量的重傳報文將占用部分網絡帶寬,當網絡中數據流量較大時,大量的重傳可能造成網絡擁塞,使網絡延遲增大。
發明內容
有鑒于此,本申請提供一種鏈路狀態通告信息確認方法和設備,能夠快速完成LSAck報文回復,避免因CPU繁忙LSAck報文回復延遲而導致的大量報文重傳、網絡擁塞、路由不通、浪費系統資源的問題。為解決上述技術問題,本發明的技術方案是這樣實現的一種鏈路狀態通告信息確認方法,所述方法應用于包含多個開放式最短路徑優先OSPF設備的網絡中,該網絡中相鄰的OSPF設備之間建立鄰居關系,包括任一所述OSPF設備啟動第一進程接收鄰居OSPF設備發送的鏈路狀態更新LSU報文,解析并確認該LSU報文中的鏈路狀態通告LSA信息后,向所述鄰居OSPF設備發送鏈路狀態確認LSAck報文,并向第二進程發送接收的LSU報文;該OSPF設備啟動第二進程接收第一進程發送的LSU報文,并對接收的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理。一種設備,應用于包含多個開放式最短路徑優先OSPF設備的網絡中,該網絡中相鄰的OSPF設備之間建立鄰居關系,該設備包括第一進程模塊和第二進程模塊;所述第一進程模塊,用于接收鄰居OSPF設備發送的鏈路狀態更新LSU報文,解析并確認該報文中的鏈路狀態通告LSA信息,并向該鄰居OSPF設備發送鏈路狀態確認LSAck報文,向所述第二進程模塊發送接收的LSU報文;所述第二進程模塊,用于接收所述第一進程模塊發送的LSU報文,并對所述接收到的LSU報文進行LSAck報文回復之外的OSPF協議任 務的處理。綜上所述,本申請通過對接收的LSU報文通過第一進程和第二進程分別進行不同的處理,調用第一進程先完成對LSU報文的LSAck報文的回復,之后再傳遞給第二進程,進行LSAck報文回復之外的處理,能夠快速完成LSAck報文回復,避免因CPU繁忙LSAck報文回復延遲而導致的大量報文重傳、網絡擁塞、路由不通、浪費系統資源的問題。
圖I為本發明實施例中鏈路狀態通告信息確認方法流程示意圖;圖2為用于實現鏈路狀態通告信息確認的設備的結構示意圖。
具體實施例方式為使本發明的目的、技術方案及優點更加清楚明白,以下參照附圖并舉實施例,對本發明所述方案作進一步地詳細說明。本發明實施例中提出一種鏈路狀態通告信息確認方法,該方法應用于包含多個OSPF設備的網絡中,該網絡中相鄰的各OSPF設備之間建立鄰居關系,該方法能夠快速完成LSAck報文回復,避免因CPU繁忙LSAck報文回復延遲而導致的大量報文重傳、網絡擁塞、路由不通、浪費系統資源的問題。參見圖1,圖I為本發明實施例中鏈路狀態通告信息確認方法流程示意圖。具體步驟為步驟101,任一所述OSPF設備啟動第一進程接收鄰居OSPF設備發送的LSU報文,解析并確認該LSU報文中的LSA信息后,向所述鄰居OSPF設備發送LSAck報文,并向第二進程發送接收的LSU報文。OSPF設備啟動第一進程僅用來接收鄰居OSPF設備發送的LSU報文,解析LSU報文中的LSA信息并確認,進行LSAck報文的回復,不進行LSAck報文回復之外的處理,LSAck報文回復之后,第一進程將該LSU報文發送給第二進程。步驟102,該OSPF設備啟動第二進程接收第一進程發送的LSU報文,并對接收的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理。本步驟中,OSPF設備啟動第二進程接收第一進程發送的LSU報文,對接收的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理,具體包括第二進程從所述接收到的LSU報文中解析LSA信息,完成對LSA信息的數據庫安裝、泛洪以及路由計算和路由更新。在LSA安裝數據庫時不能失敗,如果當時安裝不成功,則臨時存儲,直到條件具備時安裝,避免出現路由丟失的情況。
在具體實現時,該OSPF設備也會有產生本地LSU報文的情況,發送給鄰居OSPF設備時,接收到自身OSPF設備回復的LSAck報文。這些操作都由OSPF設備啟動第二進程來執行。因此,OSPF啟動第一進程所做的處理僅為如下三件事第一件事為接收鄰居OSPF設備發送的LSU報文。第 二件事為解析該接收的LSU報文得到LSA信息,對發送該LSU報文的鄰居OSPF設備發送LSAck報文。具體為解析接收到的LSU報文,獲得該報文中所有LSA信息,對每一個LSA信息進行確認,將所有的確認信息封裝成一條LSAck報文,回復給發送該LSU報文的鄰居OSPF設備。第三件事為傳遞接收的LSU報文給第二進程。該OSPF設備啟動第一進程向第二進程發送接收的LSU報文時采用的通信方式為內部TCP方式或管道方式或通信信號量方式
坐寸οOSPF設備啟動的第一進程和第二進程的數據不共享,即完全分離,互不相關。第一進程與第二進程之間的通信可以作為一般進程間通信來考慮,任務間通信機制一般包括內部TCP、管道、信號量、共享數據結構等。如果使用共享數據結構,則存在對數據結構的互斥訪問,一旦互斥訪問數據結構就需要兩個任務使用一個信號量來保護被訪問的數據結構,如果第一進程取得信號量后對被訪問的數據結構執行數據密集型計算操作時,將長時間占用信號量,此時將導致第一進程因獲取不到信號量而被阻塞不能運行,或導致系統中的其它進程得不到調度。因此對于本發明具體實施例中,第一進程和第二進程之間的通信方式可以采用內部TCP方式、管道方式或通信信號量方式等。該方法進一步包括0SPF設備為第一進程和第二進程設置優先級別,且設置第一進程處理LSU報文的優先級別高于所述第二進程處理LSU報文的優先級別。即第一進程處理完接收的所有LSU報文,才啟動第二進程處理其接收到的LSU報文。具體實現時,對第一進程的設置可以滿足實時性要求的較高優先級別,該進程處理的任務相對簡單,對第二進程的設置可以設置為相對較低的優先級別,避免對系統中其他實時性要求較高的任務造成沖擊。該OSPF設備啟動第二進程對接收的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理之前,所述方法進一步包括該OSPF設備確定所述第一進程中是否存在未處理的LSU報文,如果是,繼續通過第一進程處理接收的LSU報文;否則,該OSPF設備啟動第二進程對接收的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理。由于OSPF設備對第一進程設置的優先級高于第二進程,如果僅對于該兩個進程處理報文來說,要等第一進程處理完所有的LSU報文時,才會啟動第二進程處理其接收到的LSU報文。第二進程按照互聯網協議草案及標準(RFC)等來具體設計實現,自身在處理接收LSU報文的基本流程可以不受第一進程的影響,僅是在接收到LSU報文時,不進行LSAck報文回復。由上可見,本發明實施例中在實現鏈路狀態通告信息確認方法中將現有技術中一個進程完成的協議主體任務,分離為兩個進程來完成,并且將完成回復LSAck報文的進程的優先級設置高于完成協議主體任務中的其他任務的進程優先級,能夠實現鏈路狀態通告信息快速確認,避免了由于不能及時回復LSAck報文,導致大量報文重傳、網絡擁塞、路由不同、浪費系統資源等問題。本發明具體實施例中基于同樣的發明構思,還提出一種設備,可應用于包含多個OSPF設備的網絡中,該網絡中相鄰的OSPF設備之間建立鄰居關系。參見圖2,圖2為用于實現鏈路狀態通告信息確認的設備的結構示意圖。該設備包括第一進程模塊201和第二進程模塊20 2。第一進程模塊201,用于接收鄰居OSPF設備發送的LSU報文,解析并確認該報文中的LSA信息,并向該鄰居OSPF設備發送LSAck報文,向第二進程模塊202發送接收的LSU報文。第二進程模塊202,用于接收第一進程模塊201發送的LSU報文,并對所述接收到的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理。較佳地,第一進程模塊201,進一步用于設置自身處理任務的優先級別高于第二進程模塊202處理任務的優先級別;當存在未回復LSAck報文的LSU報文時,繼續對未處理的LSU報文進行回復LSAck報文處理。第二進程模塊202,進一步用于設置自身處理任務的優先級別低于所述第一進程模塊處理任務的優先級別;當第一進程模塊201中不存在未回復LSAck報文的LSU報文時,對接收到的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理。較佳地,第二進程模塊202,用于從接收到的LSU報文中解析LSA信息,完成對LSA信息的數據庫安裝、泛洪以及路由計算和路由更新;進一步用于若本地產生LSU報文時,發送給與本設備建立鄰居關系的OSPF設備,并接收各鄰居OSPF設備發送的LSAck報文。較佳地,第一進程模塊201向第二進程模塊202發送接收的LSU報文時采用的通信方式為內部TCP方式、管道方式或通信信號量方式。上述實施例的單元可以集成于一體,也可以分離部署;可以合并為一個單元,也可以進一步拆分成多個子單兀。綜上所述,本發明具體實施例中對接的LSU報文通過第一進程和第二進程分別進行不同的處理,調用第一進程先完成對LSU報文的LSAck報文的回復,之后再傳遞給第二進程,進行LSAck報文回復之外的處理,能夠快速完成LSAck報文回復,避免因CPU繁忙LSAck報文回復延遲而導致的大量報文重傳、網絡擁塞、路由不通、浪費系統資源的問題。在具體實施例中設置第一進程的優先級高于第二進程,使第一進程完成所有的LSU報文的確認處理之后,再啟動第二進程進行LSU報文的確認之外的處理,且由于第一進程的LSU報文確認處理過程簡單,且不進行其他處理,因此在不影響網絡中其他進程的情況下快速完成了 LSAck報文的回復。以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種鏈路狀態通告信息確認方法,所述方法應用于包含多個開放式最短路徑優先 OSPF設備的網絡中,該網絡中相鄰的OSPF設備之間建立鄰居關系,其特征在于,包括任一所述OSPF設備啟動第一進程接收鄰居OSPF設備發送的鏈路狀態更新LSU報文, 解析并確認該LSU報文中的鏈路狀態通告LSA信息后,向所述鄰居OSPF設備發送鏈路狀態確認LSAck報文,并向第二進程發送接收的LSU報文;該OSPF設備啟動第二進程接收第一進程發送的LSU報文,并對接收的LSU報文進行 LSAck報文回復之外的OSPF協議任務的處理。
2.根據權利要求I所述的方法,其特征在于,該OSPF設備啟動第二進程對接收的LSU 報文進行LSAck報文回復之外的OSPF協議任務的處理之前,所述方法進一步包括該OSPF 設備確定所述第一進程中是否存在未處理的LSU報文,如果是,繼續通過第一進程處理接收的LSU報文;否則,該OSPF設備啟動第二進程對接收的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理。
3.根據權利要求2所述的方法,其特征在于,所述該OSPF設備啟動第二進程對所述接收到的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理,包括從所述接收到的 LSU報文中解析LSA信息,完成對LSA信息的數據庫安裝、泛洪以及路由計算和路由更新。
4.根據權利要求I所述的方法,其特征在于,所述方法進一步包括該OSPF設備若啟動第二進程在本地產生LSU報文,發送給各鄰居OSPF設備;則該OSPF設備啟動第二進程接收各鄰居OSPF設備發送的LSAck報文。
5.根據權利要求1-4任意一項所述的方法,其特征在于,所述方法進一步包括設置所述第一進程處理LSU報文的優先級別高于所述第二進程處理LSU報文的優先級別。
6.根據權利要求5所述的方法,其特征在于,該OSPF設備啟動第一進程向第二進程發送接收的LSU報文時采用的通信方式包括內部TCP、管道或通信信號量方式。
7.一種設備,應用于包含多個開放式最短路徑優先OSPF設備的網絡中,該網絡中相鄰的OSPF設備之間建立鄰居關系,其特征在于,該設備包括第一進程模塊和第二進程模塊;所述第一進程模塊,用于接收鄰居OSPF設備發送的鏈路狀態更新LSU報文,解析并確認該報文中的鏈路狀態通告LSA信息,并向該鄰居OSPF設備發送鏈路狀態確認LSAck報文,向所述第二進程模塊發送接收的LSU報文;所述第二進程模塊,用于接收所述第一進程模塊發送的LSU報文,并對所述接收到的 LSU報文進行LSAck報文回復之外的OSPF協議任務的處理。
8.根據權利要求7所述的設備,其特征在于,所述第一進程模塊,進一步用于設置自身處理任務的優先級別高于所述第二進程模塊處理任務的優先級別;當存在未回復LSAck報文的LSU報文時,繼續對未處理的LSU報文進行回復LSAck報文處理;所述第二進程模塊,進一步用于設置自身處理任務的優先級別低于所述第一進程模塊處理任務的優先級別;當所述第一進程模塊中不存在未回復LSAck報文的LSU報文時,對接收到的LSU報文進行LSAck報文回復之外的OSPF協議任務的處理。
9.根據權利要求8所述的設備,其特征在于,所述第二進程模塊,用于從接收到的LSU報文中解析LSA信息,完成對LSA信息的數據庫安裝、泛洪以及路由計算和路由更新;進一步用于若本地產生LSU報文時,發送給與鄰居 OSPF設備,并接收各鄰居OSPF設備發送的LSAck報文。
10.根據權利要求7-9中任意一項所述的設備,其特征在于,所述第一進程模塊向所述第二進程模塊發送接收的LSU報文時采用的通信方式為內部TCP方式、管道方式或通信信號量方式。
全文摘要
本申請公開了一種鏈路狀態通告信息確認方法,該方法包括OSPF設備啟動第一進程接收鄰居OSPF設備發送的LSU報文,解析并確認該LSU報文中的LSA信息,并向所述鄰居OSPF設備發送LSAck報文,向第二進程發送接收的LSU報文;啟動第二進程接收第一進程發送的LSU報文,并進行LSAck報文回復之外的OSPF協議任務的處理。基于同樣的發明構思,本申請還提出一種設備,能夠快速完成LSAck報文回復,避免因CPU繁忙LSAck報文回復延遲而導致的大量報文重傳、網絡擁塞、路由不通、浪費系統資源的問題。
文檔編號H04L1/16GK102932116SQ20121041545
公開日2013年2月13日 申請日期2012年10月26日 優先權日2012年10月26日
發明者杜云飛 申請人:邁普通信技術股份有限公司