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