專利名稱:一種用于實現網絡拓撲雙向探測的方法
技術領域:
本發明涉及網絡管理的技術領域,特別涉及一種用于實現網絡拓撲雙向探測的方法。
背景技術:
網絡拓撲信息是網絡管理的基礎,它需要有廣泛的網絡設備的支持,通過對網絡中數據的廣泛收集和處理才能實現網絡拓撲結構的準確獲取。因此網絡拓撲的技術核心在于網絡上數據的收集。目前網絡上拓撲信息的收集主要采用基于SNMP和基于ICMP協議兩 種方式。SNMP協議雖然能收集到網絡中的詳細信息,但需要預先布置專門的測量軟件,且實現過程比較復雜,因此網絡測量中使用的不多,廣泛使用的還是利用ICMP協議的主動探測技術,即在指定的探測端向目標網絡發起拓撲探測,獲取網絡拓撲。互聯網中的路由協議“向前”策略,其自身的“熱點效應”和網絡安全的訪問控制因素。導致網絡中拓撲路徑的單向性和不對稱性,主要表現在由源到端的通信路徑往往不同于由端到源的通信路徑,因此ICMP主動式拓撲發現的結果通常存在鏈路缺失現象。
發明內容
本發明為克服現有技術中存在的上述不足之處,提供一種用于實現網絡拓撲雙向探測的方法,用以解決目前網絡拓撲發現中由于鏈路不對稱造成的端-源部分鏈路無法發現的問題,從而提高對網絡實際部署情況的掌握程度。本發明采用的技術方案為一種用于實現網絡拓撲雙向探測的方法,該方法的步驟如下步驟(I)、網絡拓撲探測的協商階段在網絡中運行有插件的節點通過sub操作訂閱所需要的網絡拓撲信息,系統使用notify的操作將sub消息通知探測節點,整個網絡拓撲探測的協商階段結束;步驟(2)、探測鏈路階段當探測鏈路開始時,探測節點的發起方源h開始正式向網絡中的其他節點sub該鏈路信息gh,當訂閱的消息到達相應的端g后,開始探測;h和g分別使用ICMP的探測技術向對方發起探測,獲取的信息分別表示為hg和gh ;g在完成gh的探測后使用pub技術將gh返回給h ;步驟(3)、鏈路融合階段在探測過程之后,發起方就進入了鏈路融合階段;首先,hg和gh兩條探測信息分別被表示成為網絡地址組成的二元組序列,每一個二元組為路由器一跳的鏈路,序列的源(h)和端(g)分別為序列的首尾。融合的主要工作是找出序列中屬于同一路由器的接口地址,而后判斷各個二元組表示的鏈路是否重合,如不重合則表明發現不對稱鏈路。源端鏈路hg和端源鏈路gh需要判斷各自的某些二元組是否屬于同一條鏈路,其判定方法為二元組中的網絡地址是否存在連續且子網掩碼一致的情況,若滿足該條件,則表明hg和gh存在屬于同一網段的IP地址,這些地址可以合并在一個路由器上;如果判定失敗,則表明在hg或gh中的某些鏈路開始出現不對稱的現象,需要將這些鏈路信息選出后單獨存放在融合的結果中;融合階段中對gh中二元組依照源-端的次序逐個對hg中的二元組實施判定工作,在gh中二元組遍歷完成后,該鏈路融合階段結束,輸出鏈路融合的結果。所述的網絡地址為路由器和交換機的接口 IP地址。本發明的原理如下用于實現探測節點之間的協作消息和協作能力的通信協議,拓撲發現過程中由插件執行的探測節點首先通過發布/訂閱機制對各個鏈路的源-端之間進行信息交換,訂閱所需要的源信息。在此過程中,各個探測節點使用notify操作獲取其他節點的訂閱內容,如果自身可以實現該任務,則該節點使用pub發布滿足對應的節點的消息;在此基礎上,各 節點開始按照任務進行探測活動,需要探測的節點使用sub的方式向網絡訂閱自身的鏈路請求,該消息傳遞給有關探測節點,探測結果同樣會返回到請求節點之上。此后在各個探測節點完成網絡中探測節點后,執行融合算法的邏輯流程,可以通過路由器端口匹配的方式,發現其中不一致的鏈路,即網絡拓撲的不對稱部分。在實現過程中,測量軟件以網絡插件的形式運行在網絡通信軟件之上,可以靈活的部署在各個網絡區域內部,通過網絡的sub/pub形式完成雙向鏈路的收集。本發明與現有技術相比的優點在于I、本發明采用插件技術可以靈活的在第三方軟件中攜帶實施,有利于網絡拓撲測量點的實施部署。2、本發明訂閱/發布技術可以按照實際需求實現鏈路探測,節省網絡中的通信流量。3、本發明雙向拓撲探測可以發現由路由不對稱所引起的隱藏鏈路問題,與現有技術相比,其探測結果更加真實。
圖I為本發明一種用于實現網絡拓撲雙向探測的方法的協議流程圖;圖2為本發明一種用于實現網絡拓撲雙向探測的方法的鏈路融合算法。
具體實施例方式下面結合附圖和實例對本發明方法作進一步的說明圖I所示的為本發明一種用于實現網絡拓撲雙向探測的方法的整個拓撲發現協議流程,首先網絡中運行有插件的節點通過sub操作訂閱所需要的網絡拓撲信息,這些信息通過notify到達可以滿足該條件的節點之上,當網絡中探測節點完成自身的發布之后,整個網絡拓撲探測的協商階段結束。當探測鏈路開始時,探測節點的發起方h開始正式向網絡中的其他節點sub該鏈路信息gh,當訂閱的消息到達相應的節點g后,開始探測。h和g分別使用ICMP的探測技術向對方發起探測,獲取的信息表示為hg和gh。g在完成gh的探測后使用pub技術將gh信息返回給h。在探測過程之后,發起方h就進入了鏈路融合階段。融合的算法如圖2所示。在初始階段,hg和gh兩條鏈路信息表示為若干條〈接口 i,接口 i+l>序列的形式,表示從h到g方向或者g到h方向上每一跳路由器的接口地址組成的二元組,算法的核心就是找出這些序列中是否有屬于同一路由器的不同接口。為算法執行方便,在初始階段對gh末端的第一個序列接口 m丨記為i,h記為pre。而后對hg從首到尾進行遍歷,尋找是否存在〈接口 j,接口 j+l>,其中接口 j與m'屬于同一路由器的不同接口,其判定方法主要看m'和接口 j+1的IP地址是否連續且子網掩碼一致,若滿足這些條件,則說明m'和接口 j+1可以合并為到為同一路由器。而后查看pre是否屬于hg的鏈路,會出現四種情況情況I :i和接口 j+1屬于同一路由器,pre為hg鏈路上的IP地址;情況2 i和接口 j+1屬于同一路由器,pre非hg鏈路上的IP地址; 情況3 i和接口 j+1不屬于同一路由器,pre為hg鏈路上的IP地址;情況4 i和接口 j+1不屬于同一路由器,pre非hg鏈路上的IP地址;情況I表示hg和gh在〈pre, i>上鏈路完全重合,記為(pre, i);情況2和3表示hg和gh部分鏈路重合,即〈pre, i>中pre或i屬于hg上的某一個路由器接口,記做〈pre, m)或(pre, m);情況4則表明〈pre, i>屬于與hg完全不相交的單獨鏈路,記做<pre,m>。根據判斷的結果對融合的結果T進行修改,而后將i指向gh的下一個二元組,繼續對hg重復上述的遍歷,當gh中的二元組遍歷完畢,融合算法接收,輸出融合后的鏈路T。綜上所述,基于插件的雙向網絡拓撲發現技術可以較好的實現網絡中由于不對稱所造成的隱藏鏈路問題。
權利要求
1.一種用于實現網絡拓撲雙向探測的方法,其特征在于該方法的步驟如下 步驟(I)、網絡拓撲探測的協商階段在網絡中運行有插件的節點通過SUb操作訂閱所需要的網絡拓撲信息,這些信息通過notify到達可以滿足該條件的節點之上,當網絡中探測節點完成自身的發布之后,整個網絡拓撲探測的協商階段結束; 步驟(2)、探測鏈路階段當探測鏈路開始時,探測節點的發起方源h開始正式向網絡中的其他節點sub該鏈路信息gh,當訂閱的消息到達相應的端g后,開始探測;h和g分別使用ICMP的探測技術向對方發起探測,獲取的彳目息分別表不為hg和gh ;g在完成gh的探測后使用pub技術將gh返回給h ; 步驟(3)、鏈路融合階段在探測過程之后,發起方就進入了鏈路融合階段;首先,hg和gh兩條探測信息分別被表示成為網絡地址組成的二元組序列,每一個二元組為路由器一跳的鏈路,序列的源(h)和端(g)分別為序列的首尾;融合的主要工作是找出序列中屬于同一路由器的接口地址,而后判斷各個二元組表示的鏈路是否重合,如不重合則表明發現不對稱鏈路; 源端鏈路hg和端源鏈路gh需要判斷各自的某些二元組是否屬于同一條鏈路,其判定方法為二元組中的網絡地址是否存在連續且子網掩碼一致的情況,若滿足該條件,則表明hg和gh存在屬于同一網段的IP地址,這些地址可以合并在一個路由器上;如果判定失敗,則表明在hg或gh中的某些鏈路開始出現不對稱的現象,需要將這些鏈路信息選出后單獨存放在融合的結果中;融合階段中,對gh中的二元組依照源-端的次序逐個對hg中的二元組實施判定工作,在gh中二元組遍歷完成后,該鏈路融合階段結束,輸出鏈路融合的結果。
2.根據權利要求I所述的一種用于實現網絡拓撲雙向探測的方法,其特征在于所述的網絡地址為路由器和交換機的接口。
全文摘要
本發明公開了一種用于實現網絡拓撲雙向探測的方法,用以解決目前網絡拓撲發現中由于鏈路不對稱造成的端-源部分鏈路無法發現的問題。該方法以插件的形式安裝在網絡各個節點的通信軟件中,各個插件使用訂閱/發布技術獲取需要探測的鏈路內容,通過專有協議完成鏈路兩端方向的探測,最后使用鏈路融合算法獲取探測雙方鏈路的實際拓撲,從而提高對網絡實際部署情況的掌握程度。
文檔編號H04L29/12GK102769542SQ20121023777
公開日2012年11月7日 申請日期2012年7月9日 優先權日2012年7月9日
發明者姚珊, 李肖堅, 焦健, 肖慶 申請人:北京信息科技大學