專利名稱:流量拓撲生成方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)測量和性能分析技術(shù)領(lǐng)域,特別涉及一種流量拓撲生成方法和裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)的規(guī)模呈現(xiàn)加速增長的態(tài)勢,互聯(lián)網(wǎng)上的應(yīng)用也呈現(xiàn)爆炸式的增長,由此也帶來了互聯(lián)網(wǎng)流量的急劇增長。在這樣的背景下,流量監(jiān)測逐漸成為互聯(lián)網(wǎng)監(jiān)測與管理中非常重要的一環(huán)。在目前的研究和工程現(xiàn)狀中,流量監(jiān)測主要通過SNMP輪詢或者專用探針設(shè)備的方式實現(xiàn)。前者價格低廉、部署簡便,但信息量少且對網(wǎng)絡(luò)性能造成的影響大;后者雖然能夠提供豐富的信息,但價格昂貴,只能局部部署,無法從全局角度監(jiān)測網(wǎng)絡(luò)流量。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)無法從全局角度監(jiān)測網(wǎng)絡(luò)流量的缺陷,從而提供一種流量拓撲生成方法和裝置。為了實現(xiàn)上述目的,本發(fā)明提供了一種流量拓撲生成方法,包括步驟1)、在網(wǎng)絡(luò)上采集路由信息與流量信息;步驟2、、從所述流量信息中讀取流量的源地址和目的地址,根據(jù)所述路由信息找出源路由器地址和目的路由器地址,進而計算源路由器與目的路由器之間的路徑,根據(jù)所述路徑遍歷網(wǎng)絡(luò)鏈路,將所述流量信息添加到鏈路中。上述技術(shù)方案中,所述的步驟2、包括步驟2-1)、判斷所述流量信息是否都已經(jīng)被處理;步驟2-2)、若所有的流量信息都已經(jīng)被處理,則流量拓撲生成過程結(jié)束,否則提取一條未經(jīng)處理的流量信息條目后執(zhí)行下一步;步驟2- 、從待處理的流量信息條目中提取出該條目的源地址和目的地址,然后結(jié)合所述的路由信息找出源路由器地址和目的路由器地址;步驟2-4)、查找所述源路由器地址和目的路由器地址間的路徑是否已知,若是已知,則執(zhí)行步驟2-6),否則,執(zhí)行下一步;步驟2- 、根據(jù)所述的源路由器地址與目的路由器地址進行路徑計算,計算成功執(zhí)行下一步,否則重新執(zhí)行步驟2-1);步驟2-6)、按照所述路徑做鏈路遍歷,將所述流量條目中的流量信息添加到當(dāng)前鏈路中,然后重新執(zhí)行步驟2-1)。上述技術(shù)方案中,在所述的步驟2- 中,所述的路徑計算包括步驟2-5-1)、將表示源路由器的節(jié)點放入候選組,并且查找源路由器宣告的 RouterLSA作為表示源路由器的節(jié)點的LSA ;步驟2-5-2)、判斷所述候選組是否為空,如果為空則進入步驟2-5-8),否則執(zhí)行下一步;步驟2-5- 、從候選組中選擇距離值最小的節(jié)點放入選擇組,判斷該節(jié)點是否是目的路由器,如果是,則進入步驟2-5-7),否則,執(zhí)行下一步;步驟2-5-4)、判斷該節(jié)點是路由器節(jié)點還是子網(wǎng)節(jié)點,如果是路由器節(jié)點則進入下一步,否則執(zhí)行步驟2-5-6);步驟2-5- 、取出該路由器的RouterLSA,遍歷該RouterLSA中宣告的所有鏈接, 根據(jù)鏈接的類型判斷鏈接的鄰居節(jié)點,完成對所有鏈接的遍歷后,重新執(zhí)行步驟2-5-2);步驟2-5-6)、取出該子網(wǎng)節(jié)點對應(yīng)的NetworkLSA,然后遍歷該NetworkLSA中描述的該子網(wǎng)所鄰接的路由器,為每一個鄰接的路由器查找其RouterLSA,然后在候選組中查找是否已有該節(jié)點,如果有,則更新距離值和節(jié)點中的鏈表,如果沒有,則將這個新節(jié)點加入候選組,在完成對所述子網(wǎng)所鄰接的所有路由器的遍歷后,重新執(zhí)行步驟2-5-2)。步驟2-5-7)、將所述選擇組中的節(jié)點按進入的先后順序排列,得到從源路由器到目的路由器的路徑;步驟2-5-8)、未找到路徑,計算結(jié)束。上述技術(shù)方案中,在所述的步驟2-5- 中,根據(jù)鏈接的類型判斷鏈接的鄰居節(jié)點包括步驟a)、對于所述鏈接為類型1或類型4的鏈接,取得對端路由器的RouterID ;步驟b)、在選擇組中根據(jù)所述RouterID進行查找,如果發(fā)現(xiàn)選擇組有此節(jié)點,則不做任何處理,重新選擇一條未經(jīng)處理的鏈路,否則執(zhí)行下一步;步驟c)、在候選組中根據(jù)所述RouterID進行查找,如果候選組已有該節(jié)點存在, 則將剛剛加入候選組的節(jié)點的距離值加上該鏈接的鏈路度量值metric,利用所得到的結(jié)果更新節(jié)點的距離值,然后用更新后的節(jié)點距離值跟該節(jié)點在候選組中的距離值比較,取較小的值,并執(zhí)行下一步;如果候選組中沒有該節(jié)點存在,則新建一個節(jié)點,將該節(jié)點的距離值設(shè)為剛剛加入候選組的節(jié)點的距離值與該鏈接的鏈路度量值metric的和,LSA設(shè)為剛剛?cè)〉降腞outerLSA,然后將這個新節(jié)點加入所述候選組,然后重新選擇一條未經(jīng)處理的鏈路;步驟d)、節(jié)點的距離值被更新,將節(jié)點中存儲的鏈表替換為當(dāng)前路徑,然后重新選擇一條未經(jīng)處理的鏈路。上述技術(shù)方案中,在所述的步驟2-5- 中,根據(jù)鏈接的不同類型,判斷鏈路連接的鄰居節(jié)點包括步驟A)、對于類型2的鏈接,查找對應(yīng)子網(wǎng)的NetworkLSA,此時如果建立新節(jié)點, 則將新節(jié)點的LSA設(shè)置為剛剛找到的NetworkLSA ;步驟B)、選擇一個未經(jīng)處理的對端路由器的RouterID ;步驟C)、在選擇組中根據(jù)所述RouterID進行查找,如果發(fā)現(xiàn)選擇組有此節(jié)點,則不做任何處理,直接執(zhí)行步驟F),否則執(zhí)行下一步;步驟D)、在候選組中根據(jù)所述RouterID進行查找,如果候選組已有該節(jié)點存在, 則將剛剛加入候選組的節(jié)點的距離值加上該鏈接的鏈路度量值metric,利用所得到的結(jié)果更新節(jié)點的距離值,然后用更新后的節(jié)點距離值跟該節(jié)點在候選組中的距離值比較,取較小的值,并執(zhí)行下一步;如果候選組中沒有該節(jié)點存在,則新建一個節(jié)點,將該節(jié)點的距離值設(shè)為剛剛加入候選組的節(jié)點的距離值與該鏈接的鏈路度量值metric的和,LSA設(shè)為剛剛?cè)〉降腞outerLSA,然后將這個新節(jié)點加入所述候選組,然后執(zhí)行步驟F);步驟E)、節(jié)點的距離值被更新,將節(jié)點中存儲的鏈表替換為當(dāng)前路徑,然后執(zhí)行下
一步;步驟F)、判斷是否對當(dāng)前鏈路所對應(yīng)的所有對端路由器做了處理,若還有未經(jīng)處理的對端路由器,則重新執(zhí)行步驟B),否則重新選擇一條未經(jīng)處理的鏈路。本發(fā)明還提供了一種流量拓撲生成裝置,包括信息采集探針、流量信息采集探針以及流量拓撲生成服務(wù)器;其中,所述的路由信息采集探針用于對所在網(wǎng)絡(luò)中的路由信息加以采集;所述的流量信息采集探針用于采集所在網(wǎng)絡(luò)中的流量信息;所述的流量拓撲生成服務(wù)器用于從所述流量信息中讀取流量的源地址和目的地址,根據(jù)所述路由信息找出源路由器地址和目的路由器地址,進而計算源路由器與目的路由器之間的路徑,根據(jù)所述路徑遍歷網(wǎng)絡(luò)鏈路,將所述流量信息添加到鏈路中。本發(fā)明的優(yōu)點在于本發(fā)明不需要專用的采集設(shè)備,不需要價格高昂的服務(wù)器,只需要利用普通計算機進行路由信息和Netflow流量信息的采集,就可以通過計算生成被監(jiān)測網(wǎng)絡(luò)的流量拓撲,從而實現(xiàn)對大規(guī)模IP網(wǎng)絡(luò)全面的流量監(jiān)測。
圖1為本發(fā)明的流量拓撲生成方法的流程圖;圖2為安裝有流量拓撲生成裝置的網(wǎng)絡(luò)的示意圖;圖3為根據(jù)路由信息所創(chuàng)建的路由拓撲的示意圖;圖4為根據(jù)圖3所示的路由拓撲所生成的流量拓撲的示意圖;圖5為流量拓撲生成過程中路徑計算的示意圖。
具體實施例方式在對本發(fā)明的內(nèi)容做詳細說明前,首先對本發(fā)明中所涉及的相關(guān)概念予以說明。路由拓撲路由拓撲是指網(wǎng)絡(luò)元素之間的一種連接性信息。在路由拓撲中,一個網(wǎng)絡(luò)設(shè)備(通常為路由器)在拓撲中表現(xiàn)為一個節(jié)點,而一個鄰居關(guān)系則表現(xiàn)為兩個節(jié)點之間的一條連接。流量拓撲流量拓撲是指將流量信息在路由拓撲上的分布疊加到拓撲中,也就是說,流量拓撲中的一條邊(邏輯鏈路)不止表示一個鄰居關(guān)系,同時還會有這條邊上所經(jīng)過的流量信息(流量大小、流量組成等)。通過流量拓撲,網(wǎng)絡(luò)管理者可以非常直觀、宏觀地監(jiān)測網(wǎng)絡(luò)中流量的分布狀況,從全局角度把握網(wǎng)絡(luò)整體運行狀況,及時發(fā)現(xiàn)過載鏈路和利用率低的鏈路,進而為將來的網(wǎng)絡(luò)擴容與規(guī)劃提供參考。在對本發(fā)明的概念做相應(yīng)說明后,下面結(jié)合實施例與附圖1對本發(fā)明的方法做詳細說明。為了實現(xiàn)本發(fā)明的方法,需要在網(wǎng)絡(luò)中添加路由信息采集探針以及流量信息采集探針。顧名思義,路由信息采集探針用于對所在網(wǎng)絡(luò)中的路由信息加以采集,具體的說,路由信息采集探針通過對路由協(xié)議(0SPF和BGP)的模擬,可以模擬成一臺普通的路由器參與路由協(xié)議的交互,以此獲得其他路由器發(fā)來的路由更新報文,但該探針本身則不向外發(fā)送任何更新報文。一般來說,路由信息采集探針在硬件上只要通過一臺個人計算機或服務(wù)器即可實現(xiàn),在整個網(wǎng)絡(luò)中可以如圖2所示那樣有一個集中式的路由信息采集探針,也可以在網(wǎng)絡(luò)的各個域中存在分布式的路由信息采集探針。 流量信息采集探針用于采集所在網(wǎng)絡(luò)中的流量信息。流量信息采集探針通過對特定端口的監(jiān)聽,被動式采集各個路由器發(fā)送來的流量數(shù)據(jù)(如Netflow數(shù)據(jù))。只需要在要開啟流量信息采集功能的路由器上打開該功能,并且將所述流量信息采集探針的IP和端口配置到路由器上,路由器就會將新產(chǎn)生的流量數(shù)據(jù)逐條發(fā)送給所述的流量信息采集探針。流量信息采集探針在硬件上也可通過個人計算機或服務(wù)器實現(xiàn)。流量信息采集探針可以如圖2所示那樣,在網(wǎng)絡(luò)的各個域中分別配置。下面對網(wǎng)絡(luò)中流量拓撲的生成過程予以說明。網(wǎng)絡(luò)流量拓撲的生成過程可以分為兩個階段,第一階段是路由信息與流量信息的采集,第二階段是流量拓撲的生成。在下文中對上述兩個階段展開討論。一、路由信息與流量信息的采集在網(wǎng)絡(luò)上采集路由信息與流量信息的操作由路由信息采集探針與流量信息采集探針分別實現(xiàn)。路由信息采集探針在采集路由信息時,對于用于域間通信的BGP協(xié)議,通過采集 BGP UPDATE報文來構(gòu)建BGP路由表。一條BGP路由一般包括如下幾個要素前綴地址、 下一跳地址、AS路徑。前綴地址即目標(biāo)地址,下一條地址即為了達到目標(biāo)地址下一跳路由器的接口地址,AS路徑是要達到目標(biāo)地址所要經(jīng)過的AS號的序列。對于用于域內(nèi)通信的 OSPF協(xié)議中,路由信息采集探針采集五種鏈路狀態(tài)宣告(LSA) =RouterLSA, NetworkLSA, NetworkSummaryLSA,ASExterna 1LSA,ASBRSummaryLSA 各種不同的 LSA 中包含了不同的路由信息。根據(jù)采集到的路由信息,可以構(gòu)建網(wǎng)絡(luò)的路由拓撲圖,在圖3中給出了根據(jù)路由信息所創(chuàng)建的路由拓撲圖的示意圖。在該網(wǎng)絡(luò)拓撲圖中,包括有六個路由器,分別用Rl、R2、 R3、R4、R5、R6表示,其中的路由器R3分別與路由器Rl、R2、R4、R5直接連接,此外,路由器 R4、R5還分別連接到路由器R6上。圖中給出了前述路由器所在子網(wǎng)的IP地址,如路由器 Rl所在子網(wǎng)的IP地址為1. 1. 1.0。圖中的metric表示了鏈路度量值,鏈路度量值metric 是OSPF協(xié)議中固有的描述鏈路屬性的一個值,Metric大表明通過這條鏈路的代價較大,因而優(yōu)先級較低。流量信息采集探針對網(wǎng)絡(luò)中流量信息的采集過程已經(jīng)在前文中有相應(yīng)的說明。所采集到的流量信息包括流量大小、流量類型、流量持續(xù)時間等數(shù)據(jù),可以通過Netflow協(xié)議或者sFlow協(xié)議(或者其他可以提供流量統(tǒng)計信息的協(xié)議)從路由器獲得。在本實施例中, 流量數(shù)據(jù)以Netflow數(shù)據(jù)為例,但其它類型的流量數(shù)據(jù),如sFlow數(shù)據(jù)同樣可以應(yīng)用于本發(fā)明。Netflow協(xié)議有多個版本,以應(yīng)用最為廣泛的V5版本為例,一個Netflow條目的數(shù)據(jù)格式如下面的表1所示
源地址目的地址源端口號目的端口號流量大小
表 1在下面的表2中給出了前文所提到的圖3所示的路由拓撲中的路由器的兩個 Netflow 條目
權(quán)利要求
1.一種流量拓撲生成方法,包括步驟1)、在網(wǎng)絡(luò)上采集路由信息與流量信息;步驟2、、從所述流量信息中讀取流量的源地址和目的地址,根據(jù)所述路由信息找出源路由器地址和目的路由器地址,進而計算源路由器與目的路由器之間的路徑,根據(jù)所述路徑遍歷網(wǎng)絡(luò)鏈路,將所述流量信息添加到鏈路中。
2.根據(jù)權(quán)利要求1所述的流量拓撲生成方法,其特征在于,所述的步驟2、包括 步驟2-1)、判斷所述流量信息是否都已經(jīng)被處理;步驟2-2)、若所有的流量信息都已經(jīng)被處理,則流量拓撲生成過程結(jié)束,否則提取一條未經(jīng)處理的流量信息條目后執(zhí)行下一步;步驟2- 、從待處理的流量信息條目中提取出該條目的源地址和目的地址,然后結(jié)合所述的路由信息找出源路由器地址和目的路由器地址;步驟2-4)、查找所述源路由器地址和目的路由器地址間的路徑是否已知,若是已知,則執(zhí)行步驟2-6),否則,執(zhí)行下一步;步驟2- 、根據(jù)所述的源路由器地址與目的路由器地址進行路徑計算,計算成功執(zhí)行下一步,否則重新執(zhí)行步驟2-1);步驟2-6)、按照所述路徑做鏈路遍歷,將所述流量條目中的流量信息添加到當(dāng)前鏈路中,然后重新執(zhí)行步驟2-1)。
3.根據(jù)權(quán)利要求2所述的流量拓撲生成方法,其特征在于,在所述的步驟2- 中,所述的路徑計算包括步驟2-5-1)、將表示源路由器的節(jié)點放入候選組,并且查找源路由器宣告的 RouterLSA作為表示源路由器的節(jié)點的LSA ;步驟2-5-2)、判斷所述候選組是否為空,如果為空則進入步驟2-5-8),否則執(zhí)行下一止少;步驟2-5-3)、從候選組中選擇距離值最小的節(jié)點放入選擇組,判斷該節(jié)點是否是目的路由器,如果是,則進入步驟2-5-7),否則,執(zhí)行下一步;步驟2-5-4)、判斷該節(jié)點是路由器節(jié)點還是子網(wǎng)節(jié)點,如果是路由器節(jié)點則進入下一步,否則執(zhí)行步驟2-5-6);步驟2-5- 、取出該路由器的RouterLSA,遍歷該RouterLSA中宣告的所有鏈接,根據(jù)鏈接的類型判斷鏈接的鄰居節(jié)點,完成對所有鏈接的遍歷后,重新執(zhí)行步驟2-5-2);步驟2-5-6)、取出該子網(wǎng)節(jié)點對應(yīng)的NetworkLSA,然后遍歷該NetworkLSA中描述的該子網(wǎng)所鄰接的路由器,為每一個鄰接的路由器查找其RouterLSA,然后在候選組中查找是否已有該節(jié)點,如果有,則更新距離值和節(jié)點中的鏈表,如果沒有,則將這個新節(jié)點加入候選組,在完成對所述子網(wǎng)所鄰接的所有路由器的遍歷后,重新執(zhí)行步驟2-5-2)。步驟2-5-7)、將所述選擇組中的節(jié)點按進入的先后順序排列,得到從源路由器到目的路由器的路徑;步驟2-5-8)、未找到路徑,計算結(jié)束。
4.根據(jù)權(quán)利要求3所述的流量拓撲生成方法,其特征在于,在所述的步驟2-5- 中,根據(jù)鏈接的類型判斷鏈接的鄰居節(jié)點包括步驟a)、對于所述鏈接為類型1或類型4的鏈接,取得對端路由器的RouterID ;步驟b)、在選擇組中根據(jù)所述RouterID進行查找,如果發(fā)現(xiàn)選擇組有此節(jié)點,則不做任何處理,重新選擇一條未經(jīng)處理的鏈路,否則執(zhí)行下一步;步驟c)、在候選組中根據(jù)所述RouterID進行查找,如果候選組已有該節(jié)點存在,則將剛剛加入候選組的節(jié)點的距離值加上該鏈接的鏈路度量值metric,利用所得到的結(jié)果更新節(jié)點的距離值,然后用更新后的節(jié)點距離值跟該節(jié)點在候選組中的距離值比較,取較小的值,并執(zhí)行下一步;如果候選組中沒有該節(jié)點存在,則新建一個節(jié)點,將該節(jié)點的距離值設(shè)為剛剛加入候選組的節(jié)點的距離值與該鏈接的鏈路度量值metric的和,LSA設(shè)為剛剛?cè)〉降腞outerLSA,然后將這個新節(jié)點加入所述候選組,然后重新選擇一條未經(jīng)處理的鏈路;步驟d)、節(jié)點的距離值被更新,將節(jié)點中存儲的鏈表替換為當(dāng)前路徑,然后重新選擇一條未經(jīng)處理的鏈路。
5.根據(jù)權(quán)利要求3所述的流量拓撲生成方法,其特征在于,在所述的步驟2-5- 中,根據(jù)鏈接的不同類型,判斷鏈路連接的鄰居節(jié)點包括步驟A)、對于類型2的鏈接,查找對應(yīng)子網(wǎng)的NetworkLSA,此時如果建立新節(jié)點,則將新節(jié)點的LSA設(shè)置為剛剛找到的NetworkLSA ;步驟B)、選擇一個未經(jīng)處理的對端路由器的RouterID ;步驟C)、在選擇組中根據(jù)所述RouterID進行查找,如果發(fā)現(xiàn)選擇組有此節(jié)點,則不做任何處理,直接執(zhí)行步驟F),否則執(zhí)行下一步;步驟D)、在候選組中根據(jù)所述RouterID進行查找,如果候選組已有該節(jié)點存在,則將剛剛加入候選組的節(jié)點的距離值加上該鏈接的鏈路度量值metric,利用所得到的結(jié)果更新節(jié)點的距離值,然后用更新后的節(jié)點距離值跟該節(jié)點在候選組中的距離值比較,取較小的值,并執(zhí)行下一步;如果候選組中沒有該節(jié)點存在,則新建一個節(jié)點,將該節(jié)點的距離值設(shè)為剛剛加入候選組的節(jié)點的距離值與該鏈接的鏈路度量值metric的和,LSA設(shè)為剛剛?cè)〉降腞outerLSA,然后將這個新節(jié)點加入所述候選組,然后執(zhí)行步驟F);步驟E)、節(jié)點的距離值被更新,將節(jié)點中存儲的鏈表替換為當(dāng)前路徑,然后執(zhí)行下一止少;步驟F)、判斷是否對當(dāng)前鏈路所對應(yīng)的所有對端路由器做了處理,若還有未經(jīng)處理的對端路由器,則重新執(zhí)行步驟B),否則重新選擇一條未經(jīng)處理的鏈路。
6.一種流量拓撲生成裝置,其特征在于,包括信息采集探針、流量信息采集探針以及流量拓撲生成服務(wù)器;其中,所述的路由信息采集探針用于對所在網(wǎng)絡(luò)中的路由信息加以采集; 所述的流量信息采集探針用于采集所在網(wǎng)絡(luò)中的流量信息;所述的流量拓撲生成服務(wù)器用于從所述流量信息中讀取流量的源地址和目的地址,根據(jù)所述路由信息找出源路由器地址和目的路由器地址,進而計算源路由器與目的路由器之間的路徑,根據(jù)所述路徑遍歷網(wǎng)絡(luò)鏈路,將所述流量信息添加到鏈路中。
全文摘要
本發(fā)明提供一種流量拓撲生成方法,包括在網(wǎng)絡(luò)上采集路由信息與流量信息;從所述流量信息中讀取流量的源地址和目的地址,根據(jù)所述路由信息找出源路由器地址和目的路由器地址,進而計算源路由器與目的路由器之間的路徑,根據(jù)所述路徑遍歷網(wǎng)絡(luò)鏈路,將所述流量信息添加到鏈路中。本發(fā)明不需要專用的采集設(shè)備,不需要價格高昂的服務(wù)器,只需要利用普通計算機進行路由信息和Netflow流量信息的采集,就可以通過計算生成被監(jiān)測網(wǎng)絡(luò)的流量拓撲,從而實現(xiàn)對大規(guī)模IP網(wǎng)絡(luò)全面的流量監(jiān)測。
文檔編號H04L12/56GK102215136SQ20101013965
公開日2011年10月12日 申請日期2010年4月1日 優(yōu)先權(quán)日2010年4月1日
發(fā)明者馮曉林, 畢經(jīng)平, 郝帥, 黃雙明 申請人:中國科學(xué)院計算技術(shù)研究所