專利名稱:轉(zhuǎn)發(fā)節(jié)點選取方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)中的路由操作,特別涉及基于網(wǎng)絡(luò)拓樸分析的轉(zhuǎn)發(fā) 節(jié)點選取方法和裝置。
背景技術(shù):
隨著規(guī)模的擴張和應(yīng)用的豐富,因特網(wǎng)逐漸面臨服務(wù)質(zhì)量(Qos)、網(wǎng)絡(luò) 擁塞和安全等諸多問題。例如,在1995年,Paxson等人就開始對方興未 艾的Internet網(wǎng)的路由性能進行了統(tǒng)計,根據(jù)統(tǒng)計結(jié)果發(fā)現(xiàn)網(wǎng)絡(luò)大約存在 3.3%的嚴重路由故障率。而Labovitz等人在1997年至2000年的統(tǒng)計表 明,現(xiàn)有互聯(lián)網(wǎng)中10%的路由器的可靠性小于95%, 65%的路由器可靠性 小于99.9%,且故障恢復(fù)時間長達15分鐘之久,40%以上的路由失效甚至 需要30分鐘以上才能恢復(fù)正常。為了增強網(wǎng)絡(luò)的抗毀能力,解決互聯(lián)網(wǎng) 結(jié)構(gòu)僵化所造成的嚴重問題,業(yè)界一直以來都在不斷地提出一些新的IP 路由技術(shù),比如節(jié)點(鏈路)的冗余備份、Multi-homing等,但是這些技 術(shù)很難在實際的IP網(wǎng)絡(luò)中部署和使用。
近年來,研究者們提出采用在協(xié)議層架設(shè)覆蓋網(wǎng)(Overlay)的方式,來 繞過某些低效的BGP路徑以提升端到端的連接性能,縮短故障恢復(fù)時間。 所謂的覆蓋網(wǎng)是在現(xiàn)有因特網(wǎng)上構(gòu)建一個完全位于應(yīng)用層的網(wǎng)絡(luò)系統(tǒng),即 在IPv4底層網(wǎng)絡(luò)的基礎(chǔ)上通過節(jié)點之間單插^幾制將主機兩兩連接起來, 形成一個虛擬、獨立的網(wǎng)絡(luò)。它存在于因特網(wǎng)基礎(chǔ)設(shè)施和應(yīng)用程序之間, 利用ISP (Internet Service Provider,因特網(wǎng)服務(wù)提供商)提供的服務(wù)來向 其用戶提供更加優(yōu)化的服務(wù)。可以認為,覆蓋網(wǎng)是分布在因特網(wǎng)上的一組 提供服務(wù)的終端主機的集合,它們?yōu)橐粋€或多個應(yīng)用程序提供下層的傳輸 基礎(chǔ)設(shè)施,并在某種程度上處理和轉(zhuǎn)發(fā)應(yīng)用程序的數(shù)據(jù)。覆蓋網(wǎng)主要包括 兩個部分,分別為覆蓋網(wǎng)節(jié)點和邏輯鏈路。覆蓋網(wǎng)節(jié)點可以是各種網(wǎng)絡(luò)功 能節(jié)點,如路由器、服務(wù)器等,甚至可以是終端,這些節(jié)點通常具有路由、 數(shù)據(jù)處理和數(shù)據(jù)保存等功能;而邏輯鏈路是由底層網(wǎng)絡(luò)組成,通常對應(yīng)底 層的一條或多條物理路徑。在Detour和RON等典型的Overlay技術(shù)中,研究者們已通過建設(shè)相應(yīng)的實驗網(wǎng),驗證了采用Overlay網(wǎng)絡(luò)相對BGP在 快速響應(yīng)、故障恢復(fù)、業(yè)務(wù)QoS保證等方面的巨大優(yōu)勢。
覆蓋網(wǎng)的主要功能之一是實現(xiàn)對業(yè)務(wù)數(shù)據(jù)傳輸?shù)膬?yōu)化,而實現(xiàn)覆蓋網(wǎng) 傳輸優(yōu)化的關(guān)鍵就是其路由方式?;趯ΜF(xiàn)有路由覆蓋網(wǎng)絡(luò)技術(shù)方案的分 析,最常見的覆蓋網(wǎng)路由傳輸方式是基于選取轉(zhuǎn)發(fā)節(jié)點繞路路由的方式。 這種路由方式主要釆用了中繼轉(zhuǎn)發(fā)路由的技術(shù),即數(shù)據(jù)發(fā)送方把數(shù)據(jù)包發(fā) 給轉(zhuǎn)發(fā)節(jié)點,然后轉(zhuǎn)發(fā)節(jié)點將數(shù)據(jù)包中繼給數(shù)據(jù)接收方,從而構(gòu)造相應(yīng)的 Overlay路徑。已有研究發(fā)現(xiàn)2-跳的Overlay路徑提供的傳輸性能、可靠性 及路徑多樣程度(path diversity)與多跳Overlay路徑提供的近似,因此大 多數(shù)覆蓋網(wǎng)出于簡便和易于實現(xiàn)(不需要通過覆蓋網(wǎng)絡(luò)層實現(xiàn)非常復(fù)雜的 路由機制)的目的,均采用這種經(jīng)過一個轉(zhuǎn)發(fā)節(jié)點轉(zhuǎn)發(fā)的2-跳覆蓋網(wǎng)路徑。
對于這樣的繞路路由構(gòu)建方案,決定其所構(gòu)建路由的質(zhì)量的一個核心 因素就是轉(zhuǎn)發(fā)節(jié)點的選擇是否恰當。現(xiàn)有的大多數(shù)的Overlay網(wǎng)絡(luò)都是基 于覆蓋網(wǎng)自身的Overlay結(jié)構(gòu)進行轉(zhuǎn)發(fā)節(jié)點的選取和備用路徑的構(gòu)建。比 如,在參考文獻1 "D. Andersen, H. Balakrishnan, M. Kaashoek, and R. Morris.Resilient Overlay Networks. In Proc. of the 18th Symposium on Operating System Principles, Banff, Canada, October 2001"中,RON對路徑 性能進行探測,基于探測結(jié)果進行路徑篩選;而在參考文獻2 "C. Cheng, Y. Huan, H. Kung, C. Wu. Path probing relay routing for achieving high end-to-end performance. GLOBECOM 2004"中,Cheng提出了使用隨機搜 索的算法來發(fā)現(xiàn)可用的替換路徑。上述算法在實現(xiàn)路徑選取時,都只是基 于對Overlay路徑的分析,由于缺乏對底層網(wǎng)絡(luò)拓樸信息的分析和利用, 使得Overlay網(wǎng)絡(luò)中所使用的備用路徑與默認底層IP路徑所使用的物理鏈 路或路由器具有關(guān)聯(lián)性,即備用路徑可能會與默認路徑同時失效,因此實 際運行中所遇到的路徑故障大約有40- 50%無法在此類Overlay網(wǎng)絡(luò)中避 免。基于上述原因,在覆蓋網(wǎng)中選擇鄰居轉(zhuǎn)發(fā)節(jié)點時,應(yīng)當充分考慮底層 網(wǎng)絡(luò)的信息。
發(fā)明內(nèi)容
本發(fā)明的一個目的是克服現(xiàn)有技術(shù)中鄰居轉(zhuǎn)發(fā)節(jié)點所構(gòu)建的備用路 徑與默認路徑存在相關(guān)性的缺陷,從而提供一種鄰居轉(zhuǎn)發(fā)節(jié)點的選擇方 法。本發(fā)明的另一個目的是提供一種鄰居轉(zhuǎn)發(fā)節(jié)點的選擇裝置。 為了實現(xiàn)上述目的,本發(fā)明提供了一種轉(zhuǎn)發(fā)節(jié)點選取方法,用于在包 括服務(wù)節(jié)點、轉(zhuǎn)發(fā)節(jié)點和用戶節(jié)點的覆蓋網(wǎng)上為源用戶節(jié)點選取合適的轉(zhuǎn) 發(fā)節(jié)點以構(gòu)建從源用戶節(jié)點到目的用戶節(jié)點的備用路徑,該方法包括
步驟1)、根據(jù)源用戶節(jié)點的位置和該源用戶節(jié)點所在網(wǎng)絡(luò)的拓樸結(jié)
構(gòu),采用BFBB算法選取該源用戶節(jié)點的候選鄰居轉(zhuǎn)發(fā)節(jié)點;其中,
所述BFBB算法在對網(wǎng)絡(luò)拓樸圖中的每個節(jié)點計算FSRI指標值后, 調(diào)用廣度優(yōu)先算法選取所述網(wǎng)絡(luò)拓樸圖上FSRI值大于所述源用戶節(jié)點的 FSRI值的節(jié)點作為候選鄰居轉(zhuǎn)發(fā)節(jié)點,直到滿足對所述候選鄰居轉(zhuǎn)發(fā)節(jié)點 的數(shù)目要求;若所選取的鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù)目小于所述的數(shù)目要求,則將 所述用戶節(jié)點的FSRI值減1后,重新利用廣度優(yōu)先算法選取候選鄰居轉(zhuǎn) 發(fā)節(jié)點,直到滿足要求為止; 所述計算FSRI指標值包括 步驟a)、將一個變量curFSRI的值初始化為1;
步驟b)、在網(wǎng)絡(luò)拓樸圖中查找當前度值為1的節(jié)點,將其FSRI指標 值置為所述變量curFSRI的值,刪除這些點及其依附的邊,并將這些點的 鄰居節(jié)點的當前度值減1;
步驟c )、若在網(wǎng)絡(luò)拓樸圖中的所有節(jié)點都已經(jīng)處理完畢,則結(jié)束操作;
步驟d)、若在網(wǎng)絡(luò)拓樸圖中還存在未處理的節(jié)點,則從當前剩余節(jié)點 中選取所有原始度值乘積最小的相鄰節(jié)點對,刪除它們之間的連邊,降低 這些相鄰節(jié)點對的當前度值,重復(fù)本步驟的操作,直到出現(xiàn)當前度值為1 的節(jié)點后,將所述變量curFSRI的值后,重新執(zhí)行步驟b);
步驟2 )、檢測源用戶節(jié)點經(jīng)由所述候選鄰居轉(zhuǎn)發(fā)節(jié)點到達目的用戶節(jié) 點的候選路徑與所述源用戶節(jié)點到目的用戶節(jié)點的默認路徑的相關(guān)性,將 相關(guān)性高的候選路徑所對應(yīng)的轉(zhuǎn)發(fā)節(jié)點從所述候選鄰居轉(zhuǎn)發(fā)節(jié)點中刪除;
步驟3)、將源用戶節(jié)點經(jīng)由所述步驟2)得到的候選鄰居轉(zhuǎn)發(fā)節(jié)點到 達目的用戶節(jié)點的候選路徑做性能檢測以從所述的候選鄰居轉(zhuǎn)發(fā)節(jié)點進 一步選取轉(zhuǎn)發(fā)節(jié)點。
上述技術(shù)方案中,在所述的步驟l)之前,包括配置轉(zhuǎn)發(fā)節(jié)點的步驟, 該步驟包括
預(yù)先部署轉(zhuǎn)發(fā)節(jié)點;其中,
獲取網(wǎng)絡(luò)的拓樸結(jié)構(gòu)信息;基于所述拓樸結(jié)構(gòu)信息計算不同節(jié)點的FSRI值; 去除FSRI值最大和最小的部分節(jié)點,從剩余節(jié)點中選擇一定數(shù)量的 節(jié)點作為轉(zhuǎn)發(fā)節(jié)點。
上述技術(shù)方案中,所述的配置轉(zhuǎn)發(fā)節(jié)點步驟還包括; 由用戶節(jié)點提升轉(zhuǎn)發(fā)節(jié)點;其中,
在用戶節(jié)點加入所述覆蓋網(wǎng)時,所述服務(wù)節(jié)點向該用戶節(jié)點發(fā)送用戶 轉(zhuǎn)發(fā)節(jié)點提升消息,請求對節(jié)點性能進行測量并進行初選;
在初選通過后,將性能指標值發(fā)送給服務(wù)節(jié)點進行復(fù)選,復(fù)選通過后, 將該用戶節(jié)點提升為轉(zhuǎn)發(fā)節(jié)點。
上述技術(shù)方案中,在所述的步驟l)之前,還包括用戶節(jié)點加入所述 覆蓋網(wǎng),更新網(wǎng)絡(luò)拓樸圖的步驟,該步驟包括
服務(wù)節(jié)點請求新加入的用戶節(jié)點進行網(wǎng)絡(luò)拓樸探測;
所述用戶節(jié)點構(gòu)造探測的目標地址列表,進行周期的拓樸探測,整合 拓樸探測結(jié)果后得到局部的拓樸所述服務(wù)節(jié)點整合從所述用戶節(jié)點得到的局部拓樸圖,生成全局拓樸圖。
上述技術(shù)方案中,還包括
步驟4 )、根據(jù)所選取的轉(zhuǎn)發(fā)節(jié)點為源用戶節(jié)點和目的用戶節(jié)點構(gòu)建備 用路徑。
上述技術(shù)方案中,在所述的步驟l)中,所述的釆用BFBB算法選取 該用戶節(jié)點的候選鄰居轉(zhuǎn)發(fā)節(jié)點包括
所述的源用戶節(jié)點根據(jù)網(wǎng)絡(luò)拓樸的局部視圖調(diào)用BFBB算法,得到相 應(yīng)的候選鄰居轉(zhuǎn)發(fā)節(jié)點。
上述技術(shù)方案中,在所述的步驟l)中,所述的采用BFBB算法選取 該用戶節(jié)點的候選鄰居轉(zhuǎn)發(fā)節(jié)點包括
所述的源用戶節(jié)點向覆蓋網(wǎng)中的服務(wù)節(jié)點發(fā)出選擇候選鄰居節(jié)點的 請求;
所述的服務(wù)節(jié)點根據(jù)所述源用戶節(jié)點所在網(wǎng)絡(luò)域的網(wǎng)絡(luò)拓樸的視圖 調(diào)用BFBB算法,得到相應(yīng)的候選鄰居轉(zhuǎn)發(fā)節(jié)點。 上述技術(shù)方案中,所述的步驟2)包括
步驟2-1-1 )、通過Traceroute獲取源用戶節(jié)點C2到目的用戶節(jié)點Cl 的所有2-跳Overlay備用路徑,用P(C2,C1)表示;步驟2-1-2)、通過每個候選鄰居轉(zhuǎn)發(fā)節(jié)點分別獲取路徑P(C2,Fi)和 P(巧,C1),進而得到P'(C2,Fi,Cl)二P(C2,Fi)uP(Fi,Cl),其中Fj表示候選鄰居轉(zhuǎn)發(fā)
節(jié)點;
步驟2-1-3 )、對所有的候選鄰居轉(zhuǎn)發(fā)節(jié)點F,計算P(C2,Cl)與P(C2,Fj,Cl) 的交集,并將結(jié)果按升序做排列;
步驟2-1 -4 )、從排序結(jié)果中選取排序在前的若干個結(jié)果作為所要保留 的候選鄰居轉(zhuǎn)發(fā)節(jié)點。
上述技術(shù)方案中,所述的步驟2)包括
步驟2-2-1)、從用戶節(jié)點C2所在的AS作為起點,在AS拓樸上運行 廣度優(yōu)先算法,直到為C2選取的所有轉(zhuǎn)發(fā)節(jié)點的AS都被遍歷過之后, 隨機選取N個AS,從每個AS中隨才幾選取M個轉(zhuǎn)發(fā)節(jié)點作為目標主才幾, 存入Dests中;
步驟2-2-2)、對每個轉(zhuǎn)發(fā)節(jié)點F,在Dests集合中,循環(huán)地探測用戶 節(jié)點經(jīng)過F到達每個目標主機的轉(zhuǎn)發(fā)路徑,與用戶節(jié)點直接到達目標主機 的默認路徑重疊的路由器數(shù)目,存入用于表示經(jīng)過轉(zhuǎn)發(fā)節(jié)點F到達目的主 機的路徑與默認路徑重疊的路由器數(shù)目的FdOLPN中,用這個值除以默認路 徑的比值存入用于表示經(jīng)過轉(zhuǎn)發(fā)節(jié)點F到達目的主機的路徑和默認路徑重
疊的路由器數(shù)目與原始路徑長度的比值的FdOLPR中,重復(fù)執(zhí)行本步驟,直
到完成所有的轉(zhuǎn)發(fā)節(jié)點的測量和計算;
步驟2-2-3)、求一個轉(zhuǎn)發(fā)節(jié)點F的FdoLPR的均值E(F亂pR),所得到的 結(jié)果為用于表示轉(zhuǎn)發(fā)節(jié)點F構(gòu)成的備用路徑與默認路徑的近似重疊概率的 PAPO指標,若該指標大于第一閾值,則刪除該轉(zhuǎn)發(fā)節(jié)點,然后重復(fù)執(zhí)行 本步驟,直到處理完所有的轉(zhuǎn)發(fā)節(jié)點;
步驟2-2-4)、依據(jù)所述的FdQLPN值計算每2個轉(zhuǎn)發(fā)節(jié)點之間的 C0V(Xd0LPN,Yd0LPN)得到PPS指標,若該指標大于第二閾值,則刪除其中一 個轉(zhuǎn)發(fā)節(jié)點后,重復(fù)執(zhí)行本步驟,直到處理完所有轉(zhuǎn)發(fā)節(jié)點對后,結(jié)束操
作;其中,
CoWXy 職)-柳早) H,毅" 一 即 )
"尸rfeZ)esW即(XJ2; J] (X-柳)2
^尸rfeZ)e他
,Ko冊)=Z
"尸
其中,d表示目標主機,Dests表示目標主機集合,OP表示用戶到目 標主機的默認路徑數(shù),E表示期望,STD表示方差,Cov(X,Y)表示協(xié)方差。
上述技術(shù)方案中,在所述的步驟3)中,所述的性能檢測包括延時、 抖動、丟包率、可用帶寬的檢測。
本發(fā)明還提供了一種轉(zhuǎn)發(fā)節(jié)點選取裝置,用于在包括服務(wù)節(jié)點、轉(zhuǎn)發(fā) 節(jié)點和用戶節(jié)點的覆蓋網(wǎng)上為源用戶節(jié)點選取合適的轉(zhuǎn)發(fā)節(jié)點以構(gòu)建從 源用戶節(jié)點到目的用戶節(jié)點的備用路徑,該裝置包括候選鄰居轉(zhuǎn)發(fā)節(jié)點選 取模塊、路徑相關(guān)性檢測模塊、性能檢測模塊;其中,
所述的候選鄰居轉(zhuǎn)發(fā)節(jié)點選取模塊根據(jù)源用戶節(jié)點的位置和該用戶 節(jié)點所在網(wǎng)絡(luò)的拓樸結(jié)構(gòu),采用BFBB算法選取該用戶節(jié)點的候選鄰居轉(zhuǎn) 發(fā)節(jié)點;其中,
所述BFBB算法在對網(wǎng)絡(luò)拓樸圖中的每個節(jié)點計算FSRI指標值后, 調(diào)用廣度優(yōu)先算法選取所述網(wǎng)絡(luò)拓樸圖上FSRI值大于所述用戶節(jié)點的 FSRI值的節(jié)點作為候選鄰居轉(zhuǎn)發(fā)節(jié)點,直到滿足對所述鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù) 目要求;若所選取的鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù)目小于所述的數(shù)目要求,則將所述 用戶節(jié)點的FSRI值減1后,重新利用廣度優(yōu)先算法選取候選鄰居轉(zhuǎn)發(fā)節(jié) 點,直到滿足要求為止;
所述計算FSRI指標值包括
步驟a)、將一個變量curFSRI的值初始化為1;
步驟b)、在網(wǎng)絡(luò)拓樸圖中查找當前度值為1的節(jié)點,將其FSRI指標 值置為所述變量curFSRI的值,刪除這些點及其依附的邊,并將這些點的 鄰居節(jié)點的當前度值減1;
步驟c )、若在網(wǎng)絡(luò)拓樸圖中的所有節(jié)點都已經(jīng)處理完畢,則結(jié)束操作;
步驟d)、若在網(wǎng)絡(luò)拓樸圖中還存在未處理的節(jié)點,則從當前剩余節(jié)點 中選取所有原始度值乘積最小的相鄰節(jié)點對,刪除它們之間的連邊,降低 這些相鄰節(jié)點對的當前度值,重復(fù)本步驟的操作,直到出現(xiàn)當前度值為1 的節(jié)點后,將所述變量curFSRI的值后,重新執(zhí)行步驟b);
所述的路徑相關(guān)性檢測模塊檢測源用戶節(jié)點經(jīng)由所述候選鄰居轉(zhuǎn)發(fā)節(jié)點到達目的用戶節(jié)點的候選路徑與所述源用戶節(jié)點到目的用戶節(jié)點的 默認路徑的相關(guān)性,將相關(guān)性高的候選路徑所對應(yīng)的轉(zhuǎn)發(fā)節(jié)點從所述候選 鄰居轉(zhuǎn)發(fā)節(jié)點中刪除;
所述的性能檢測模塊將源用戶節(jié)點經(jīng)由所述路徑相關(guān)性檢測模塊得 到的候選鄰居轉(zhuǎn)發(fā)節(jié)點到達目的用戶節(jié)點的候選路徑做性能檢測以從所 述的候選鄰居轉(zhuǎn)發(fā)節(jié)點進一 步選取轉(zhuǎn)發(fā)節(jié)點。
本發(fā)明的優(yōu)點在于
本發(fā)明能夠有效降低所創(chuàng)建的Overlay路徑與默認原始路徑的重疊相 關(guān)度,可以顯著改善Overlay節(jié)點的探測強度,節(jié)省路徑建立的開銷。
圖1為覆蓋網(wǎng)的一個實例的示意圖2為對一個網(wǎng)絡(luò)拓樸圖做coreness分層的示意圖3為計算FSRI指標的流程圖4為為網(wǎng)絡(luò)拓樸圖中的節(jié)點所構(gòu)造的四元組鄰接表的示意圖; 圖5為對圖2所示網(wǎng)絡(luò)拓樸圖中的各個節(jié)點計算FSRI值后的結(jié)果示 意圖6為本發(fā)明的基于網(wǎng)絡(luò)拓樸分析的轉(zhuǎn)發(fā)節(jié)點選取方法的流程圖。
具體實施例方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明做進 一 步說明。 在本發(fā)明中,所涉及的覆蓋網(wǎng)可以應(yīng)用在多種類型的網(wǎng)絡(luò),如P2P網(wǎng) 絡(luò)、CDN網(wǎng)絡(luò)以及各種Overlay網(wǎng)絡(luò),如RON、 QRON、 NIRA.OverQos 等。在下面的實施例中,所涉及的覆蓋網(wǎng)不限于具體的網(wǎng)絡(luò)類型,可在前 面所提到的各種網(wǎng)絡(luò)上應(yīng)用。
在覆蓋網(wǎng)中,組成網(wǎng)絡(luò)的各個節(jié)點可以分為三種類型,分別為服務(wù)節(jié) 點、轉(zhuǎn)發(fā)節(jié)點和用戶節(jié)點。其中的服務(wù)節(jié)點用于向用戶提供服務(wù)。服務(wù)節(jié) 點全部由系統(tǒng)運營商部署,這些節(jié)點按照一定的規(guī)則分散地部署在網(wǎng)絡(luò)的 各個域中,它們彼此之間相互連接以構(gòu)成系統(tǒng)的服務(wù)端。轉(zhuǎn)發(fā)節(jié)點用于向 用戶提供穩(wěn)定的轉(zhuǎn)發(fā)服務(wù),或在系統(tǒng)啟動時啟動路由轉(zhuǎn)發(fā)服務(wù)。轉(zhuǎn)發(fā)節(jié)點 可以全部由系統(tǒng)運營商預(yù)先部署,也可以由系統(tǒng)運營商預(yù)先部署一部份, 剩余的部分則由網(wǎng)絡(luò)中性能優(yōu)異的用戶節(jié)點提升為轉(zhuǎn)發(fā)節(jié)點。用戶節(jié)點是系統(tǒng)中接受路由優(yōu)化服務(wù)的客戶,這些節(jié)點不需要提前部署,但是在享受 系統(tǒng)服務(wù)之前,需要經(jīng)過注冊,用戶節(jié)點才算真正加入系統(tǒng)。在圖1中給 出了一個覆蓋網(wǎng)的實例,根據(jù)對網(wǎng)絡(luò)中節(jié)點類型的上述劃分,可以將該網(wǎng)
絡(luò)分為用戶節(jié)點Cl、 C2,服務(wù)節(jié)點服務(wù)器001、服務(wù)器003,轉(zhuǎn)發(fā)節(jié)點 0F1、 OF2、 OF3、 OUFl、 OUF2、 OUF3等。此外,網(wǎng)絡(luò)中的R1、 R2等 代表網(wǎng)關(guān),網(wǎng)絡(luò)中的上述設(shè)備在AS1、 AS2、 AS3、 AS4、 AS5等不同的自 治域(AS)內(nèi),不同的AS域通常由不同的ISP運營商運營。
在上述覆蓋網(wǎng)中,不同用戶節(jié)點間做數(shù)據(jù)通信時存在默認的路徑,但 這些默認路徑會由于各種各樣的原因而發(fā)生故障,因此需要采用本發(fā)明的 方法從網(wǎng)絡(luò)中選擇合適的轉(zhuǎn)發(fā)節(jié)點,從而得到最適合的備用路徑。在本發(fā) 明中,引入了 FSRI(Forwarder selection reference index,轉(zhuǎn)發(fā)節(jié)點選取參考 指標)指標、限界廣度優(yōu)先算法BFBB這些新的概念,并提出了一些新的算 法,以更好地選擇轉(zhuǎn)發(fā)節(jié)點。為了便于理解,在對轉(zhuǎn)發(fā)節(jié)點的選擇過程做 詳細說明前,首先對本發(fā)明中所涉及到的概念或算法進行說明。
一、FSRI指標
在Overlay網(wǎng)絡(luò)中,為了使得最終構(gòu)造的備用路徑離散度更高、轉(zhuǎn)發(fā) 效率更高,在選擇轉(zhuǎn)發(fā)節(jié)點時一般需要遵循一些原則。這些原則具體包括
1 、選擇介數(shù)(Betweenness )和度值大的節(jié)點作為轉(zhuǎn)發(fā)節(jié)點; Betweenness和度值是用來刻畫節(jié)點在網(wǎng)絡(luò)中的中心性位置的值,值越大, 代表該節(jié)點越處在網(wǎng)絡(luò)的中心。在參考文獻3 "Freeman, L.C., Centrality in social networks: Conceptual clarification, Social Networks 1, 215-239, 1979" 中 對如何計算該值有詳細的說明。通過這一原則所選出的節(jié)點能夠衍生出更 加豐富的網(wǎng)絡(luò)路徑,以便轉(zhuǎn)發(fā)時路徑選取的空間更大。
2、選取那些適當靠近網(wǎng)絡(luò)中心,但不屬于網(wǎng)絡(luò)最中心的節(jié)點。在選 擇轉(zhuǎn)發(fā)節(jié)點時,處于網(wǎng)絡(luò)邊緣的節(jié)點所能夠造的備用路徑太少,而位于網(wǎng) 絡(luò)最中心的節(jié)點又由于與其連通的路徑太多,容易成為網(wǎng)絡(luò)傳輸?shù)钠款i。 因此,要選擇適當靠近網(wǎng)絡(luò)中心,但又不屬于網(wǎng)絡(luò)最中心的節(jié)點作為轉(zhuǎn)發(fā) 節(jié)點。本原則可以保證選出的轉(zhuǎn)發(fā)節(jié)點構(gòu)造的備用路徑的平均長度較短, 轉(zhuǎn)發(fā)效率更高,同時也能夠避免產(chǎn)生網(wǎng)絡(luò)瓶頸。這一原則的使用可以通過 選擇核數(shù)(coreness )值較大的節(jié)點實現(xiàn)。coreness是用來刻畫網(wǎng)絡(luò)拓樸圖 層次'l"生的l旨才示,通過參考文獻4"A. Hamelin, J. Lgnacio, D. A. Luca, B. Alain and V. Alessandro. k-core decomposition: a tool for the visualization of largearxiv.org/abs/cs.NI/0511007, 2005"中所提供的方法, 可以將網(wǎng)絡(luò)拓樸圖分層,coreness值高的節(jié)點屬于網(wǎng)絡(luò)的中心節(jié)點, coreness值低的節(jié)點屬于網(wǎng)絡(luò)的邊緣節(jié)點,coreness越高,節(jié)點越靠近網(wǎng) 絡(luò)的中心。在圖2中給出了對一個網(wǎng)絡(luò)拓樸圖做coreness分層的示意圖, 當前度值為1的節(jié)點屬于第1層,當前度值為2的節(jié)點屬于第2層。需要 說明的是,此處以及本發(fā)明中所涉及的網(wǎng)絡(luò)拓樸圖可以是無權(quán)簡單圖,也 可以是任何有意義的加權(quán)有向圖。
本發(fā)明在參考上述兩個原則的基礎(chǔ)上,提出一個用于選取Overlay網(wǎng) 絡(luò)轉(zhuǎn)發(fā)節(jié)點的指導(dǎo)性指標FSRI。 FSRI的計算方法類似于coreness的計算 方法,每個節(jié)點有自己的FSRI值。在計算FSRI時,從FSR卜1開始,每 次僅僅只刪除當前度值為1的節(jié)點及其所屬的邊,當沒有這樣的點時,就 通過刪除度值乘積最小的兩個節(jié)點之間的 一條邊來打破這個平衡,同時 FSRI自增,直到處理完所有的節(jié)點為止。
參考圖3, FSRI的具體計算方法包括以下步驟
步驟a、為網(wǎng)絡(luò)拓樸圖構(gòu)造一個四元組鄰接表,如圖4所示,表中的 一個記錄代表網(wǎng)絡(luò)拓樸圖中的一個節(jié)點,每個記錄包含4個表項節(jié)點標 號、原始度值、當前度值和指向鄰居單鏈表的指針,將表中當前度值初始 化為原始度值。
步驟b、將表中的各個節(jié)點按照原始度值的大小進行排序。 步驟c、將一個變量curFSRI做初始化,使其初始值為1。 步驟d、查找當前度值為l的節(jié)點,將其FSRI置為curFSRI,并從四 元組表中刪除這些點及其依附的邊,并同時將這些點的鄰居節(jié)點的當前度 值減l,重復(fù)上述操作直到?jīng)]有這樣的節(jié)點后,執(zhí)行下一步;
步驟e、判斷網(wǎng)絡(luò)拓樸圖中的所有節(jié)點是否都已經(jīng)處理完畢,如果都 已完畢,執(zhí)行步驟g,如果有未處理完的節(jié)點則執(zhí)行下一步。
步驟f、網(wǎng)絡(luò)拓樸圖中尚有未處理的節(jié)點,且此時所有剩余節(jié)點的當 前度值都大于1。從當前剩余節(jié)點中選取所有原始度值乘積最小的相鄰節(jié) 點對,刪除它們之間的連邊,從而降低這些相鄰節(jié)點對的當前度值,如果 仍然沒有當前度值等于1的節(jié)點產(chǎn)生,則重復(fù)本步驟的上述操作直到產(chǎn)生 這樣的節(jié)點,然后把curFSRI值自增后重新執(zhí)行步驟d。
步驟g、計算出網(wǎng)絡(luò)拓樸圖中所有節(jié)點的FSRI值后,停止運算。 本發(fā)明所提出的FSRI值既能夠兼顧節(jié)點Betweenness相對大小,又能
15夠?qū)oreness的劃分結(jié)果做進一步的細分,能夠很好地體現(xiàn)Overlay網(wǎng)絡(luò) 轉(zhuǎn)發(fā)節(jié)點的前述選取原則。例如,在圖5中給出了對圖2所示網(wǎng)絡(luò)拓樸圖 中的各個節(jié)點計算FSRI值后的結(jié)果,從圖中可以看出,F(xiàn)SRI比coreness 對一般的層次化明顯的圖形有更大的區(qū)分度,并能保證保留coreness對圖 的劃分結(jié)果。
二、 限界廣度優(yōu)先算法BFBB
限界廣度優(yōu)先算法BFBB是在FSRI指標的基礎(chǔ)上基于拓樸分析選取
轉(zhuǎn)發(fā)節(jié)點的方法。該算法的基本流程如下
步驟A、對網(wǎng)絡(luò)拓樸圖中的每個節(jié)點計算FSRI指標的值。
步驟B、選擇網(wǎng)絡(luò)拓樸圖中的一個節(jié)點作為當前節(jié)點,在當前節(jié)點上
調(diào)用廣度優(yōu)先算法,選取FSRI值大于當前節(jié)點的FSRI的節(jié)點,根據(jù)用戶
所請求的轉(zhuǎn)發(fā)節(jié)點數(shù)目N,選擇相應(yīng)的轉(zhuǎn)發(fā)節(jié)點。
步驟C、如果選擇所得到的轉(zhuǎn)發(fā)節(jié)點數(shù)目不足N個,則將當前節(jié)點的
FSRI值減1后,重新執(zhí)行步驟B,直到選到足夠數(shù)目的轉(zhuǎn)發(fā)節(jié)點為止。 步驟D、將查找到的這些轉(zhuǎn)發(fā)節(jié)點返回,算法結(jié)束。 以前面所提到的圖5為例,若將圖中的節(jié)點D作為當前節(jié)點,將N
的大小設(shè)為3,則選到的轉(zhuǎn)發(fā)節(jié)點為C、 F和H,他們的FSRI分別為2、 2、
三、 路徑相關(guān)診斷算法
本發(fā)明在選取轉(zhuǎn)發(fā)節(jié)點從而構(gòu)造備用路徑的過程中,需要評價多個候 選備用路徑與默認路徑間的相關(guān)性,從而選擇最合適的轉(zhuǎn)發(fā)節(jié)點。因此, 需要對路徑相關(guān)性進行判斷。為了評判Overlay備用路徑的相關(guān)性本發(fā)明 提出了兩個指標路徑近似重疊度PAPO(path approximation overlay)和位 置才莫式相似度PPS(position pattern similarity)。 PAPO用于衡量轉(zhuǎn)發(fā)節(jié)點可 以構(gòu)造的路徑與默認路徑的相似度,PPS用于計算多條備用路徑之間的相 似度。PPS小的轉(zhuǎn)發(fā)節(jié)點之間,在構(gòu)造備用路徑時,備用路徑之間相關(guān)度 較低,重疊可能性較小。PAPO小的轉(zhuǎn)發(fā)節(jié)點在為用戶構(gòu)造備用路徑時, 與默認路徑的相似度較低。
在路徑相關(guān)診斷算法中,需要計算PPS和PAPO指標,然后根據(jù)計算 結(jié)果做出相應(yīng)的判斷。為了說明的方便,先對該算法中所用到的幾個參數(shù) 的含義進行說明。
Dests:目標主才幾集合;OP(original paths):用戶到目標主機的默認路徑數(shù);
XdOLPN(overlap number through forwarder x to d): 經(jīng)過轉(zhuǎn)發(fā)節(jié)點x到達 目的主機d的路徑與默認路徑重疊的路由器數(shù)目;
XdOLPR(overlap rate through forwarder x to d):經(jīng)過轉(zhuǎn)發(fā)節(jié)點x到達目的 主機d的路徑和默認路徑重疊的路由器數(shù)目與原始路徑長度的比值;
E(V)、 STD(V):變量V的期望和方差;
Cov(X,Y):變量X和Y的協(xié)方差。
路徑相關(guān)診斷算法的實現(xiàn)步驟如下
步驟l、從用戶節(jié)點U所在的AS作為起點,在AS拓樸上運行廣度 優(yōu)先算法,直到為U選取的所有轉(zhuǎn)發(fā)節(jié)點的AS都被遍歷過之后,隨機選 取N (如15)個AS,從每個AS中隨機選取M (如2)個轉(zhuǎn)發(fā)節(jié)點作為目 標主才幾,存入Dests中;
步驟2、對每個轉(zhuǎn)發(fā)節(jié)點F,在Dests集合中,循環(huán)地探測用戶節(jié)點經(jīng) 過F到達每個目標主機的轉(zhuǎn)發(fā)路徑,與用戶節(jié)點直接到達目標主機的默認
路徑重疊的路由器數(shù)目,存入FdOLPN中,用這個值除以默認路徑的比值存
入FdoLPR中,重復(fù)執(zhí)行本步驟,直到完成所有的轉(zhuǎn)發(fā)節(jié)點的測量和計算; 步驟3、每個轉(zhuǎn)發(fā)節(jié)點F有兩個向量FdoLPN和FdOLPR。首先計算PAPO, 即每個F的FdoLPR的均值E(Fd0LPR),這個值表示了該轉(zhuǎn)發(fā)節(jié)點構(gòu)成的備用 路徑與默認路徑的近似重疊概率,如果E(FdowR)大于一預(yù)先指定的第一閾 值(該閾值的范圍在50%-100%之間,優(yōu)選80%),表明重疊度太高,則刪 除該轉(zhuǎn)發(fā)節(jié)點,重復(fù)執(zhí)行本步驟3,直到處理完所有F;
步驟4、計算PPS,即依據(jù)FdoLPN值計算的每2個轉(zhuǎn)發(fā)節(jié)點之間的 Cov(XdOLPN,YdOLPN),其計算公式如下
u尸(2 )
即n丄(z-柳)2
"尸rfsito ( 4 )
這個值表示了轉(zhuǎn)發(fā)節(jié)點X與Y構(gòu)成的備用路徑之間的相關(guān)度,如果C0V(XdOLPN,YdOLPN)大于預(yù)先指定的第二閾值(該閾值的范圍在0.5-1之間,
優(yōu)選0.9),表明相關(guān)度太高,刪除其中一個轉(zhuǎn)發(fā)節(jié)點,重復(fù)執(zhí)行本步驟,
直到處理完所有轉(zhuǎn)發(fā)節(jié)點對后,算法結(jié)束。 四、分布式轉(zhuǎn)發(fā)節(jié)點提升算法
本發(fā)明所涉及覆蓋網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)節(jié)點可由用戶預(yù)先配置,也可由用戶 節(jié)點提升而成。 一個用戶節(jié)點只有滿足一定的條件才有可能為其他節(jié)點提
供轉(zhuǎn)發(fā)服務(wù),本發(fā)明為能夠提升為轉(zhuǎn)發(fā)節(jié)點的用戶節(jié)點設(shè)定如下標準
1、 不是私網(wǎng)節(jié)點;
2、 沒有放火墻;
3、 要有合適的操作系統(tǒng),如采用Windows 95/98/ME操作系統(tǒng)或者是 Mac才喿作系統(tǒng);
4、 要有穩(wěn)定的在線時間;
5、 要有足夠的網(wǎng)絡(luò)帶寬,包括上行帶寬和下行帶寬;
6、 要有高性能的處理器;
7、 要有豐富的RAM資源。
在上述標準中,前四項指標為必須滿足的硬性指標,而后面三項則可 以依據(jù)當前網(wǎng)絡(luò)中對轉(zhuǎn)發(fā)節(jié)點需求的緊迫度和已有轉(zhuǎn)發(fā)節(jié)點的性能進行調(diào) 節(jié)。本發(fā)明針對后三項指標給出了下面一個篩選指標
ThFwd =aBwd + / Bwu + 7C + 7M (5)
其中Bwd表示用戶節(jié)點的平均下載帶寬,Bwu表示用戶節(jié)點的平均上 傳帶寬,C表示用戶節(jié)點的處理器的處理能力,M表示RAM資源的大小, 而a,/ ,/,//表示加權(quán)系數(shù),系數(shù)的大小可根據(jù)系統(tǒng)的運行情況或相關(guān)要求進行 調(diào)節(jié)。例如,當系統(tǒng)要求轉(zhuǎn)發(fā)節(jié)點具有較大的平均下載帶寬時,可以適當增 大a的值,以增強下載帶寬指標在整個篩選指標中的比重。
在上述標準的基礎(chǔ)上,本發(fā)明提出了相應(yīng)的分布式轉(zhuǎn)發(fā)節(jié)點提升算法。 該算法包括兩個部分,分別在服務(wù)節(jié)點和用戶節(jié)點上運行。
在用戶節(jié)點上運行的轉(zhuǎn)發(fā)節(jié)點提升算法包括
步驟l)、用戶節(jié)點首次啟動時獲取自身的靜態(tài)信息,如IP地址,操 作系統(tǒng)信息等。
步驟2 )、用戶節(jié)點對自身的IP地址是否為私網(wǎng)地址進行判斷,當IP 地址屬于私網(wǎng)地址時,用戶節(jié)點即退出轉(zhuǎn)發(fā)節(jié)點提升算法。
步驟3)、用戶節(jié)點對自身的操作系統(tǒng)是否符合標準進行判斷,當不符合標準時,用戶節(jié)點即退出轉(zhuǎn)發(fā)節(jié)點提升算法。
步驟4)、用戶節(jié)點判斷是否有放火墻,若存在放火墻,則退出轉(zhuǎn)發(fā)節(jié) 點提升算法。
步驟5)、用戶節(jié)點向服務(wù)節(jié)點發(fā)送轉(zhuǎn)發(fā)節(jié)點申請消息,并請求當前的
轉(zhuǎn)發(fā)節(jié)點初選標準,同時啟動計時器以保存用戶節(jié)點在線時間信息。服務(wù) 節(jié)點所返回的初選標準包括篩選指標Th^d、用戶節(jié)點在線時間T以及加權(quán)
系數(shù)a,々,;(V7的具體取值。如果服務(wù)節(jié)點直接返回拒絕信息,則退出轉(zhuǎn)發(fā)節(jié)
點提升算法。
步驟6)、在用戶節(jié)點上運行小型Benchmark進程,以測試用戶節(jié)點處 理器的處理能力C以及RAM資源的大小M。
步驟7)、在用戶節(jié)點上運行帶寬探測進程,測試用戶平均上傳帶寬 Bwu和下載帶寬Bwd。
步驟8 )、判斷用戶節(jié)點上的計時器所保存的用戶節(jié)點在線時間是否能 夠滿足初選標準中對用戶節(jié)點在線時間的規(guī)定,不滿足要求,則退出轉(zhuǎn)發(fā) 節(jié)點提升算法。
步驟9)、根據(jù)步驟6)、步驟7)的的測試結(jié)果以及加權(quán)系數(shù)《,々工/7的 具體取值,采用前述公式(5)計算Th^的具體取值,然后將計算結(jié)果值與 步驟5)的初選標準中的篩選指標Th d進行比較,若不能滿足要求,則退出
轉(zhuǎn)發(fā)節(jié)點提升算法。
步驟IO)、將用戶節(jié)點的IP地址、ThFwd、 C、 Bwd、 Bwu、 M信息組
成轉(zhuǎn)發(fā)節(jié)點可行消息發(fā)送給服務(wù)節(jié)點。
步驟ll)、用戶節(jié)點接收到服務(wù)節(jié)點發(fā)送的提升成功消息后,啟動轉(zhuǎn) 發(fā)模塊以將自身提升為轉(zhuǎn)發(fā)節(jié)點,否則只是一般的用戶節(jié)點。
在服務(wù)節(jié)點上運行的轉(zhuǎn)發(fā)節(jié)點提升算法包括
步驟l)、在一段時間后,服務(wù)節(jié)點對所有轉(zhuǎn)發(fā)節(jié)點的信息進行統(tǒng)計, 將使用頻率最低的若干個轉(zhuǎn)發(fā)節(jié)點刪除。
步驟2)、等待用戶節(jié)點的轉(zhuǎn)發(fā)節(jié)點申請消息。
步驟3)、服務(wù)節(jié)點收到用戶節(jié)點發(fā)送的轉(zhuǎn)發(fā)節(jié)點申請消息后,獲得該 用戶節(jié)點所在的AS,記錄該AS內(nèi)轉(zhuǎn)發(fā)節(jié)點的利用率P以及所有轉(zhuǎn)發(fā)節(jié)點 中Th^d的最大值MaxTh^d和平均值A(chǔ)vgTh^。將利用率P和第三閾值(如
20%)進行比較,若小于該閾值,則拒絕用戶節(jié)點的申請,然后返回步驟 2),然后再將利用率P和第四閾值(如80%)進行比較,若小于該閾值,則將MaxThFwd作為前述的初選標準發(fā)送給用戶節(jié)點,否則將AvgThFwd作為前 述的初選標準發(fā)送給用戶節(jié)點。
步驟4)、服務(wù)節(jié)點收到用戶的轉(zhuǎn)發(fā)節(jié)點可行消息后,再將AS內(nèi)轉(zhuǎn)發(fā) 節(jié)點的利用率P與第五閾值(如80%)進行比較,如果利用率P大于該閾 值,說明覆蓋網(wǎng)對轉(zhuǎn)發(fā)節(jié)點的需求很多,因此直接執(zhí)行下一步,否則,判 斷用戶節(jié)點的篩選指標Th^d在AS內(nèi)的所有轉(zhuǎn)發(fā)節(jié)點中是否居前(如在前
20%),若是則執(zhí)行下一步,否則返回拒絕消息后執(zhí)行步驟2 )。
步驟5 )、將用戶節(jié)點設(shè)置為轉(zhuǎn)發(fā)節(jié)點后,記錄信息,并返回接收消 息,然后執(zhí)行步驟2)。
通過上述操作即可實現(xiàn)用戶節(jié)點向轉(zhuǎn)發(fā)節(jié)點的提升。 在對本發(fā)明中所涉及的FSRI指標、限界廣度優(yōu)先算法BFBB以及路 徑相關(guān)診斷算法、分布式轉(zhuǎn)發(fā)節(jié)點提升算法做如上說明后,下面繼續(xù)以圖 1為例,并結(jié)合圖6對如何在圖1所示的網(wǎng)絡(luò)中選擇轉(zhuǎn)發(fā)節(jié)點,進而選擇 備選路徑的過程加以陳述。
假設(shè)在圖1所示的網(wǎng)絡(luò)中,用戶節(jié)點Cl與用戶節(jié)點C2間做數(shù)據(jù)通信, 兩個用戶節(jié)點間的默認通信路徑為C2-R1-R8-R9-R12-C1。為了在默認通 信路徑發(fā)生路徑故障后,兩個用戶節(jié)點間能夠快速地恢復(fù)通信,需要為這 兩個用戶節(jié)點預(yù)先設(shè)定備選路徑。
首先,根據(jù)用戶節(jié)點C2的位置和該節(jié)點所在網(wǎng)絡(luò)的拓樸結(jié)構(gòu),采用 BFBB算法選擇用戶節(jié)點C2的候選鄰居轉(zhuǎn)發(fā)節(jié)點。本步驟可由用戶節(jié)點 C2實現(xiàn),也可由網(wǎng)絡(luò)中的服務(wù)節(jié)點實現(xiàn)。
假設(shè)規(guī)定用戶節(jié)點C2的鄰居轉(zhuǎn)發(fā)節(jié)點需要有4個,當用戶節(jié)點C2 實現(xiàn)時,C2依據(jù)自身所擁有的網(wǎng)絡(luò)拓樸(AS )的局部視圖,直接調(diào)用BFBB 算法,選出域AS2、 AS1和AS4,然后向服務(wù)端請求相應(yīng)域中的轉(zhuǎn)發(fā)節(jié)點, 得到候選鄰居轉(zhuǎn)發(fā)節(jié)點0F1、 OF2和OF3。由于候選鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù)目 不足4個,因此重新運行BFBB算法,進一步選出AS5,向服務(wù)端請求 AS5中的轉(zhuǎn)發(fā)節(jié)點,得到第四個鄰居轉(zhuǎn)發(fā)節(jié)點OUFl。于是,C2得到了其 候選鄰居轉(zhuǎn)發(fā)節(jié)點列表(OFl,OF2,OF3,OUFl)。同樣的,當由網(wǎng)絡(luò)中的服務(wù) 節(jié)點實現(xiàn)時,C2向服務(wù)節(jié)點發(fā)出選擇候選鄰居轉(zhuǎn)發(fā)節(jié)點的請求,服務(wù)節(jié) 點依據(jù)C2所在的網(wǎng)絡(luò)域,在網(wǎng)絡(luò)拓樸上運行BFBB算法,最終確定域AS2、 AS1和AS4,得到候選鄰居轉(zhuǎn)發(fā)節(jié)點OFl、 OF2和OF3。由于候選鄰居轉(zhuǎn) 發(fā)節(jié)點的數(shù)目不足4個,重新運行BFBB算法,進一步選出AS5,得到第四個鄰居轉(zhuǎn)發(fā)節(jié)點0UF1。服務(wù)節(jié)點將所得到的候選鄰居轉(zhuǎn)發(fā)節(jié)點的信息 發(fā)送給用戶節(jié)點C2,于是,C2得到了其候選鄰居轉(zhuǎn)發(fā)節(jié)點列表 (OFl,OF2,OF3,OUFl)??梢?,無論采用何種方法,最終得到的用戶節(jié)點 C2的候選鄰居轉(zhuǎn)發(fā)節(jié)點列表的內(nèi)容不變。
其次,在得到用戶節(jié)點C2的候選鄰居轉(zhuǎn)發(fā)節(jié)點列表后,對用戶節(jié)點 C2經(jīng)由列表中各個鄰居轉(zhuǎn)發(fā)節(jié)點到目標節(jié)點Cl所形成的備選路徑與原 有默認路徑的相關(guān)性進行檢測。已知用戶節(jié)點Cl與用戶節(jié)點C2間的默認 路徑為C2-R1-R8-R9-R12-C1,如果最后得到的備選路徑與這一默認路徑 完全一致,或者有部分路徑一致,則當默認路徑發(fā)生路徑故障后,所得到 的備選路徑很可能同樣會有故障,無法起到恢復(fù)數(shù)據(jù)通信的作用,因此, 需要在本步驟中做相關(guān)性檢測。
在^f故相關(guān)性沖企測時,可以有多種實現(xiàn)方式,在一種實現(xiàn)方式中,首先 通過Traceroute獲取源用戶節(jié)點C2到目的用戶節(jié)點Cl的所有2-跳Overlay 備用路徑,用P(C2,C1)表示;然后通過每個候選鄰居轉(zhuǎn)發(fā)節(jié)點分別獲取路 徑P(C2,Fi)和P(Fi,Cl),進而得到P'(C2,Fi,Cl^P(C2,Fi)uP(Fi,Cl),其中S表示候 選鄰居轉(zhuǎn)發(fā)節(jié)點;然后對所有的F,計算I P(C2,Cl)nP'(C2,Fi,Cl) | ( " II "代表 集合中的元素個數(shù)),并將結(jié)果按升序做排列,保留排序結(jié)果的前m個候 選鄰居轉(zhuǎn)發(fā)節(jié)點。以前述的候選鄰居轉(zhuǎn)發(fā)節(jié)點列表(OF 1 ,OF2,OF3,OUF 1) 為例,通過4美選鄰居轉(zhuǎn)發(fā)節(jié)點OF1 的 Overlay備用^各徑為 C2-R1-R8-R9-R12-C1,通過候選鄰居轉(zhuǎn)發(fā)節(jié)點OF2的Overlay備用路徑為 C2-R1-R2-R3-R12-C1,通過候選鄰居轉(zhuǎn)發(fā)節(jié)點OF3的Overlay備用路徑為 C2-R1-R4-R5-R6-R7-R12-C1,候選鄰居轉(zhuǎn)發(fā)節(jié)點OUF1的Overlay備用路 徑為C2-R1-R4-R5-R6-R9-R12-C1。顯然,通過OF1的備用路徑與默認路 徑的相關(guān)度最高,兩者完全重疊,因此可以剔除OFl。通過OUFl的備用 路徑與默認路徑有部分重疊,而通過OF2和OF3的備用路徑則與默認路 徑不重疊。因此,候選鄰居轉(zhuǎn)發(fā)節(jié)點列表(OFl,OF2,OF3,OUFl)經(jīng)過相關(guān)性 檢測后所剩余的候選鄰居轉(zhuǎn)發(fā)節(jié)點為(OF2,OF3,OUFl )。采用這一實現(xiàn)方 式檢測路徑相關(guān)性時,需要預(yù)先知道用戶節(jié)點C2的目標節(jié)點Cl。
在相關(guān)性檢測的另 一種實現(xiàn)方式中,可采用前面所提到的路徑相關(guān)診 斷算法。在相關(guān)性檢測時,將用戶節(jié)點的信息(AS號)、用戶局部的網(wǎng)絡(luò) 拓樸視圖(AS拓樸圖)和候選鄰居轉(zhuǎn)發(fā)節(jié)點集合作為輸入,調(diào)用路徑相 關(guān)診斷算法,所得到的結(jié)果就是經(jīng)過相關(guān)性檢測的候選鄰居轉(zhuǎn)發(fā)節(jié)點。釆用該實現(xiàn)方式做相關(guān)性檢測時,并不依賴于與用戶節(jié)點C2做通信的對端
節(jié)點是哪一個,它是對用戶節(jié)點C2的候選鄰居轉(zhuǎn)發(fā)節(jié)點集進行路徑相關(guān)
性的綜合判斷,即采用該實現(xiàn)方式篩選后的候選鄰居轉(zhuǎn)發(fā)節(jié)點無論是對用
戶節(jié)點Cl還是其他用戶節(jié)點,都滿足相關(guān)性的要求。
接著,對用戶節(jié)點C2的候選鄰居轉(zhuǎn)發(fā)節(jié)點列表中經(jīng)過相關(guān)性檢測篩 選的候選鄰居轉(zhuǎn)發(fā)節(jié)點繼續(xù)做性能檢測。所做的性能檢測通常與所要進行 通信的應(yīng)用業(yè)務(wù)的類型有關(guān),在本實施例中,所做的性能檢測包括延時、 抖動、丟包率、可用帶寬的檢測。在檢測前,依據(jù)相關(guān)的標準,設(shè)定性能 指標的門限值,然后對經(jīng)由各個鄰居轉(zhuǎn)發(fā)節(jié)點的備用路徑計算包括延遲、 抖動、丟包率、可用帶寬在內(nèi)的性能值,最后將計算所得的性能值與前述 的門限值進行比較,只有在性能值滿足門限值的前提下,才保留相應(yīng)的候 選鄰居轉(zhuǎn)發(fā)節(jié)點作為最終的轉(zhuǎn)發(fā)節(jié)點,進而得到備用路徑。假設(shè)用戶C2 與Cl間做視頻和語音通信,由于語音敏感的傳輸性能指標為延遲和抖動, 視頻敏感的傳輸性能指標為可用帶寬,因此本步驟在做性能檢測時,需要 對候選鄰居轉(zhuǎn)發(fā)節(jié)點的備用路徑至少計算延遲、抖動和可用帶寬的性能 值,并與對應(yīng)的性能門限做比較。若探測得到經(jīng)過OF2的Overlay備用路 徑有最小的路徑延遲和抖動,而經(jīng)過OF3的Overlay備用路徑有最大的可 用帶寬。那么,最終確定由經(jīng)過OF2的2-跳Overlay備用路徑傳輸語音, 由經(jīng)過OF3的2-跳Overlay備用路徑傳輸視頻。
最后,當用戶節(jié)點C2與用戶節(jié)點Cl間的默認路徑發(fā)生故障時,網(wǎng)絡(luò) 可快速地將備用路徑代替默認路徑,或?qū)⒛J路徑與備用路徑組合在一 起,實現(xiàn)數(shù)據(jù)的傳輸。當默認路徑的故障解除后,可將備用路徑切換回默 認路徑。
在上面的實施例中,以整個覆蓋網(wǎng)已經(jīng)部署完成作為前提條件,對在 一個覆蓋網(wǎng)中如何建立用戶節(jié)點C2與Cl間的備用路徑做了說明,下面對 覆蓋網(wǎng)中各個類型的節(jié)點在部署過程中所涉及的 一 些具體問題做詳細說明。
在前面的說明中已經(jīng)提到,轉(zhuǎn)發(fā)節(jié)點在部署時可由系統(tǒng)運營商預(yù)先部 署,也可由用戶節(jié)點提升得到。在預(yù)先部署時,所要部署的轉(zhuǎn)發(fā)節(jié)點應(yīng)當 分散地部署在整個網(wǎng)絡(luò)的不同ISP網(wǎng)絡(luò)中。在預(yù)先部署時,首先獲取因特 網(wǎng)的AS拓樸結(jié)構(gòu)信息,然后基于這些拓樸結(jié)構(gòu)信息計算不同AS節(jié)點的 FSRI值,最后去除FSRI值最大和最小的部分節(jié)點,從剩余節(jié)點中選擇一定數(shù)量的節(jié)點作為轉(zhuǎn)發(fā)節(jié)點。由用戶節(jié)點提升轉(zhuǎn)發(fā)節(jié)點時,當一個用戶節(jié)
點剛加入到Overlay系統(tǒng),啟動前述用戶節(jié)點所運行的分布式轉(zhuǎn)發(fā)節(jié)點提 升算法,獲取節(jié)點基本信息,若滿足基本條件,則向服務(wù)節(jié)點發(fā)送轉(zhuǎn)發(fā)節(jié) 點申請消息,獲取轉(zhuǎn)發(fā)節(jié)點初選標準。若初選通過,向服務(wù)節(jié)點發(fā)送轉(zhuǎn)發(fā) 節(jié)點可行消息,進行復(fù)選。服務(wù)節(jié)點調(diào)用前述服務(wù)節(jié)點運行的分布式轉(zhuǎn)發(fā) 節(jié)點提升算法進行復(fù)選,若復(fù)選通過,則將該用戶節(jié)點提升為轉(zhuǎn)發(fā)節(jié)點, 否則,作為一般用戶節(jié)點。在圖l所示的實例中,轉(zhuǎn)發(fā)節(jié)點OFl、 OF2、 OF3可在預(yù)先部署時得到,而轉(zhuǎn)發(fā)節(jié)點0UF1、 OUF2、 OUF3則由用戶節(jié) 點提升后得到。
用戶節(jié)點在加入Overlay系統(tǒng)中時,向系統(tǒng)中的公知服務(wù)器發(fā)送用于 申請加入系統(tǒng)的注冊消息,公知服務(wù)器在服務(wù)系統(tǒng)中查詢距離用戶節(jié)點最 近的服務(wù)器,將其服務(wù)接口發(fā)送給用戶,然后用戶節(jié)點向該服務(wù)器發(fā)送注 冊消息,月良務(wù)器節(jié)點為其分配用戶ID,從而將用戶節(jié)點加入到Overlay系 統(tǒng)中。當有一個用戶節(jié)點新加入Overlay系統(tǒng)后,整個網(wǎng)絡(luò)系統(tǒng)的網(wǎng)絡(luò)拓 樸結(jié)構(gòu)會發(fā)生變化,因此可由服務(wù)節(jié)點將從互聯(lián)網(wǎng)管理機構(gòu)獲取的AS和 前綴對應(yīng)關(guān)系表發(fā)送給用戶節(jié)點,請求用戶節(jié)點進行網(wǎng)絡(luò)拓樸探測。用戶 節(jié)點依據(jù)這個對應(yīng)關(guān)系表,采用隨機的方法構(gòu)造探測的目標地址列表,進 行周期的拓樸探測,將探測的多個AS部分拓樸進行整合,可得到局部的 AS拓樸圖。將所得到的局部拓樸圖定期地發(fā)送給服務(wù)節(jié)點,服務(wù)節(jié)點整 合各個局部視圖可得到全局拓樸圖。網(wǎng)絡(luò)拓樸圖在計算FSRI指標值時有 重要的應(yīng)用。
本發(fā)明還提供了 一種基于網(wǎng)絡(luò)拓樸分析的轉(zhuǎn)發(fā)節(jié)點選取裝置,用于在 包括服務(wù)節(jié)點、轉(zhuǎn)發(fā)節(jié)點和用戶節(jié)點的覆蓋網(wǎng)上為源用戶節(jié)點選取合適的 轉(zhuǎn)發(fā)節(jié)點以構(gòu)建從源用戶節(jié)點到目的用戶節(jié)點的備用路徑,該裝置包括候 選鄰居轉(zhuǎn)發(fā)節(jié)點選取模塊、路徑相關(guān)性檢測模塊、性能檢測模塊;其中,
所述的候選鄰居轉(zhuǎn)發(fā)節(jié)點選取模塊根據(jù)源用戶節(jié)點的位置和該用戶 節(jié)點所在網(wǎng)絡(luò)的拓樸結(jié)構(gòu),采用BFBB算法選取該用戶節(jié)點的候選鄰居轉(zhuǎn) 發(fā)節(jié)點;其中,
所述BFBB算法在對網(wǎng)絡(luò)拓樸圖中的每個節(jié)點計算FSRI指標值后, 調(diào)用廣度優(yōu)先算法選取所述網(wǎng)絡(luò)拓樸圖上FSRI值大于所述用戶節(jié)點的 FSRI值的節(jié)點作為候選鄰居轉(zhuǎn)發(fā)節(jié)點,直到滿足對所述鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù) 目要求;若所選取的鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù)目小于所述的數(shù)目要求,則將所述
23用戶節(jié)點的FSRI值減1后,重新利用廣度優(yōu)先算法選取候選鄰居轉(zhuǎn)發(fā)節(jié)
點,直到滿足要求為止;
所述計算FSRI指標值包括
步驟a)、將一個變量curFSRI的值初始化為1;
步驟b)、在網(wǎng)絡(luò)拓樸圖中查找當前度值為1的節(jié)點,將其FSRI指標 值置為所述變量curFSRI的值,刪除這些點及其依附的邊,并將這些點的 鄰居節(jié)點的當前度值減1;
步驟c )、若在網(wǎng)絡(luò)拓樸圖中的所有節(jié)點都已經(jīng)處理完畢,則結(jié)束操作;
步驟d)、若在網(wǎng)絡(luò)拓樸圖中還存在未處理的節(jié)點,則從當前剩余節(jié)點 中選取所有原始度值乘積最小的相鄰節(jié)點對,刪除它們之間的連邊,降低 這些相鄰節(jié)點對的當前度值,重復(fù)本步驟的操作,直到出現(xiàn)當前度值為1 的節(jié)點后,將所述變量curFSRI的值后,重新執(zhí)行步驟b);
所述的路徑相關(guān)性檢測模塊檢測源用戶節(jié)點經(jīng)由所述候選鄰居轉(zhuǎn)發(fā) 節(jié)點到達目的用戶節(jié)點的候選路徑與所述源用戶節(jié)點到目的用戶節(jié)點的 默認路徑的相關(guān)性,將相關(guān)性高的候選路徑所對應(yīng)的轉(zhuǎn)發(fā)節(jié)點從所述候選 鄰居轉(zhuǎn)發(fā)節(jié)點中刪除;
所述的性能檢測模塊將源用戶節(jié)點經(jīng)由所述路徑相關(guān)性檢測模塊得 到的候選鄰居轉(zhuǎn)發(fā)節(jié)點到達目的用戶節(jié)點的候選路徑做性能檢測,將不滿 足性能要求的候選路徑所對應(yīng)的轉(zhuǎn)發(fā)節(jié)點從所述候選鄰居轉(zhuǎn)發(fā)節(jié)點中刪 除,剩余的候選鄰居轉(zhuǎn)發(fā)節(jié)點為所要選取的轉(zhuǎn)發(fā)節(jié)點。
本發(fā)明的方法和裝置與現(xiàn)有的Overlay技術(shù)中采用的隨機選擇和基于 最早分叉思想的選擇方法相比,通過充分的分析和利用網(wǎng)絡(luò)底層拓樸知 識,能夠有效降低所創(chuàng)建的Overlay路徑與默認原始路徑的重疊相關(guān)度, 可以顯著改善Overlay節(jié)點的探測強度,節(jié)省路徑建立的開銷。
本發(fā)明的方法通過路徑切換或多徑傳輸技術(shù),可更好的實現(xiàn)在網(wǎng)絡(luò)故 障或性能不穩(wěn)定的情況下,提升網(wǎng)絡(luò)容錯能力,保證通信的穩(wěn)定性,優(yōu)化 網(wǎng)絡(luò)的傳輸質(zhì)量。
本發(fā)明不僅適用于Overlay網(wǎng)絡(luò)中的用戶節(jié)點的備用路徑建立和切 換,也可作為進行Internet多徑傳輸系統(tǒng)的多^各徑創(chuàng)建基礎(chǔ),具有相當廣 闊的應(yīng)用前景。
最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。 盡管參照實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解,對本發(fā)明的技術(shù)方案進行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案 的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當中。
權(quán)利要求
1、一種轉(zhuǎn)發(fā)節(jié)點選取方法,用于在包括服務(wù)節(jié)點、轉(zhuǎn)發(fā)節(jié)點和用戶節(jié)點的覆蓋網(wǎng)上為源用戶節(jié)點選取合適的轉(zhuǎn)發(fā)節(jié)點以構(gòu)建從源用戶節(jié)點到目的用戶節(jié)點的備用路徑,該方法包括步驟1)、根據(jù)源用戶節(jié)點的位置和該源用戶節(jié)點所在網(wǎng)絡(luò)的拓撲結(jié)構(gòu),采用BFBB算法選取該源用戶節(jié)點的候選鄰居轉(zhuǎn)發(fā)節(jié)點;其中,所述BFBB算法在對網(wǎng)絡(luò)拓撲圖中的每個節(jié)點計算FSRI指標值后,調(diào)用廣度優(yōu)先算法選取所述網(wǎng)絡(luò)拓撲圖上FSRI值大于所述源用戶節(jié)點的FSRI值的節(jié)點作為候選鄰居轉(zhuǎn)發(fā)節(jié)點,直到滿足對所述候選鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù)目要求;若所選取的鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù)目小于所述的數(shù)目要求,則將所述用戶節(jié)點的FSRI值減1后,重新利用廣度優(yōu)先算法選取候選鄰居轉(zhuǎn)發(fā)節(jié)點,直到滿足要求為止;所述計算FSRI指標值包括步驟a)、將一個變量curFSRI的值初始化為1;步驟b)、在網(wǎng)絡(luò)拓撲圖中查找當前度值為1的節(jié)點,將其FSRI指標值置為所述變量curFSRI的值,刪除這些點及其依附的邊,并將這些點的鄰居節(jié)點的當前度值減1;步驟c)、若在網(wǎng)絡(luò)拓撲圖中的所有節(jié)點都已經(jīng)處理完畢,則結(jié)束操作;步驟d)、若在網(wǎng)絡(luò)拓撲圖中還存在未處理的節(jié)點,則從當前剩余節(jié)點中選取所有原始度值乘積最小的相鄰節(jié)點對,刪除它們之間的連邊,降低這些相鄰節(jié)點對的當前度值,重復(fù)本步驟的操作,直到出現(xiàn)當前度值為1的節(jié)點后,將所述變量curFSRI的值后,重新執(zhí)行步驟b);步驟2)、檢測源用戶節(jié)點經(jīng)由所述候選鄰居轉(zhuǎn)發(fā)節(jié)點到達目的用戶節(jié)點的候選路徑與所述源用戶節(jié)點到目的用戶節(jié)點的默認路徑的相關(guān)性,將相關(guān)性高的候選路徑所對應(yīng)的轉(zhuǎn)發(fā)節(jié)點從所述候選鄰居轉(zhuǎn)發(fā)節(jié)點中刪除;步驟3)、將源用戶節(jié)點經(jīng)由所述步驟2)得到的候選鄰居轉(zhuǎn)發(fā)節(jié)點到達目的用戶節(jié)點的候選路徑做性能檢測以從所述的候選鄰居轉(zhuǎn)發(fā)節(jié)點進一步選取轉(zhuǎn)發(fā)節(jié)點。
2、根據(jù)權(quán)利要求1所述的轉(zhuǎn)發(fā)節(jié)點選取方法,其特征在于,在所述 的步驟l)之前,包括配置轉(zhuǎn)發(fā)節(jié)點的步驟,該步驟包括預(yù)先部署轉(zhuǎn)發(fā)節(jié)點;其中,獲取網(wǎng)絡(luò)的拓樸結(jié)構(gòu)信息;基于所述拓樸結(jié)構(gòu)信息計算不同節(jié)點的FSRI值; 去除FSRI值最大和最小的部分節(jié)點,從剩余節(jié)點中選擇一定數(shù)量的 節(jié)點作為轉(zhuǎn)發(fā)節(jié)點。
3、 根據(jù)權(quán)利要求2所述的轉(zhuǎn)發(fā)節(jié)點選取方法,其特征在于,所述的 配置轉(zhuǎn)發(fā)節(jié)點步驟還包括;由用戶節(jié)點提升轉(zhuǎn)發(fā)節(jié)點;其中,在用戶節(jié)點加入所述覆蓋網(wǎng)時,所述服務(wù)節(jié)點向該用戶節(jié)點發(fā)送用戶 轉(zhuǎn)發(fā)節(jié)點提升消息,請求對節(jié)點性能進行測量并進行初選;在初選通過后,將性能指標值發(fā)送給服務(wù)節(jié)點進行復(fù)選,復(fù)選通過后, 將該用戶節(jié)點提升為轉(zhuǎn)發(fā)節(jié)點。
4、 根據(jù)權(quán)利要求1所述的轉(zhuǎn)發(fā)節(jié)點選取方法,其特征在于,在所述 的步驟l)之前,還包括用戶節(jié)點加入所述覆蓋網(wǎng),更新網(wǎng)絡(luò)拓樸圖的步 驟,該步驟包括服務(wù)節(jié)點請求新加入的用戶節(jié)點進行網(wǎng)絡(luò)拓樸探測; 所述用戶節(jié)點構(gòu)造探測的目標地址列表,進行周期的拓樸探測,整合 拓樸探測結(jié)果后得到局部的拓樸圖;所述服務(wù)節(jié)點整合從所述用戶節(jié)點得到的局部拓樸圖,生成全局拓樸圖。
5、 根據(jù)權(quán)利要求1所述的轉(zhuǎn)發(fā)節(jié)點選取方法,其特征在于,還包括 步驟4 )、根據(jù)所選取的轉(zhuǎn)發(fā)節(jié)點為源用戶節(jié)點和目的用戶節(jié)點構(gòu)建備用路徑。
6、 根據(jù)權(quán)利要求l或2或3或4或5所述的轉(zhuǎn)發(fā)節(jié)點選取方法,其 特征在于,在所述的步驟l)中,所述的采用BFBB算法選取該用戶節(jié)點 的候選鄰居轉(zhuǎn)發(fā)節(jié)點包括所述的源用戶節(jié)點根據(jù)網(wǎng)絡(luò)拓樸的局部視圖調(diào)用BFBB算法,得到相 應(yīng)的候選鄰居轉(zhuǎn)發(fā)節(jié)點。
7、 根據(jù)權(quán)利要求l或2或3或4或5所述的轉(zhuǎn)發(fā)節(jié)點選取方法,其 特征在于,在所述的步驟l)中,所述的采用BFBB算法選取該用戶節(jié)點 的候選鄰居轉(zhuǎn)發(fā)節(jié)點包括所述的源用戶節(jié)點向覆蓋網(wǎng)中的服務(wù)節(jié)點發(fā)出選擇候選鄰居節(jié)點的請求;所述的服務(wù)節(jié)點根據(jù)所述源用戶節(jié)點所在網(wǎng)絡(luò)域的網(wǎng)絡(luò)拓樸的視圖調(diào)用BFBB算法,得到相應(yīng)的候選鄰居轉(zhuǎn)發(fā)節(jié)點。
8、 根據(jù)權(quán)利要求1或2或3或4或5所述的轉(zhuǎn)發(fā)節(jié)點選取方法,其 特征在于,所述的步驟2)包括步驟2-1-1 )、通過Traceroute獲取源用戶節(jié)點C2到目的用戶節(jié)點Cl 的所有2-跳Overlay備用路徑,用P(C2,C1)表示;步驟2-1-2)、通過每個候選鄰居轉(zhuǎn)發(fā)節(jié)點分別獲取路徑P(C2,Fi)和 P(Fi,Cl),進而得到P'(C2,Fi,Cl):P(C2,F(xiàn)i)uP(Fi,Cl),其中Fj表示候選鄰居轉(zhuǎn)發(fā)節(jié)點;步驟2-1-3)、對所有的候選鄰居轉(zhuǎn)發(fā)節(jié)點F,計算P(C2,C1)與P'(C2,F,,C1) 的交集,并將結(jié)果按升序做排列;步驟2-1 -4 )、從排序結(jié)果中選取排序在前的若干個結(jié)果作為所要保留 的候選鄰居轉(zhuǎn)發(fā)節(jié)點。
9、 根據(jù)權(quán)利要求1或2或3或4或5所述的轉(zhuǎn)發(fā)節(jié)點選取方法,其 特征在于,所述的步驟2)包括步驟2-2-1)、從用戶節(jié)點C2所在的AS作為起點,在AS拓樸上運行 廣度優(yōu)先算法,直到為C2選取的所有轉(zhuǎn)發(fā)節(jié)點的AS都被遍歷過之后, 隨機選取N個AS,從每個AS中隨機選取M個轉(zhuǎn)發(fā)節(jié)點作為目標主機, 存入Dests中;步驟2-2-2)、對每個轉(zhuǎn)發(fā)節(jié)點F,在Dests集合中,循環(huán)地探測用戶 節(jié)點經(jīng)過F到達每個目標主機的轉(zhuǎn)發(fā)路徑,與用戶節(jié)點直接到達目標主機 的默認路徑重疊的路由器數(shù)目,存入用于表示經(jīng)過轉(zhuǎn)發(fā)節(jié)點F到達目的主 機的路徑與默認路徑重疊的路由器數(shù)目的FdOLPN中,用這個值除以默認路 徑的比值存入用于表示經(jīng)過轉(zhuǎn)發(fā)節(jié)點F到達目的主^L的^4圣和默i人^4圣重疊的路由器數(shù)目與原始路徑長度的比值的FdOLPR中,重復(fù)執(zhí)行本步驟,直到完成所有的轉(zhuǎn)發(fā)節(jié)點的測量和計算;步驟2-2-3 )、求一個轉(zhuǎn)發(fā)節(jié)點F的FdoLPR的均值E(FdOLPR),所得到的 結(jié)果為用于表示轉(zhuǎn)發(fā)節(jié)點F構(gòu)成的備用路徑與默認路徑的近似重疊概率的 PAPO指標,若該指標大于第一閾值,則刪除該轉(zhuǎn)發(fā)節(jié)點,然后重復(fù)執(zhí)行 本步驟,直到處理完所有的轉(zhuǎn)發(fā)節(jié)點;步驟2-2-4)、依據(jù)所述的FdoLPN值計算每2個轉(zhuǎn)發(fā)節(jié)點之間的 C0V(Xd0LPN,Yd0LPN)得到PPS指標,若該指標大于第二閾值,則刪除其中一個轉(zhuǎn)發(fā)節(jié)點后,重復(fù)執(zhí)行本步驟,直到處理完所有轉(zhuǎn)發(fā)節(jié)點對后,結(jié)束操作;其中,<formula>formula see original document page 5</formula>即(^函)2=7^ Z (義-早))2其中,d表示目標主機,Dests表示目標主機集合,OP表示用戶到目 標主機的默認路徑數(shù),E表示期望,STD表示方差,Cov(X,Y)表示協(xié)方差。
10、 根據(jù)權(quán)利要求l或2或3或4或5所述的轉(zhuǎn)發(fā)節(jié)點選取方法,其 特征在于,其特征在于,在所述的步驟3)中,所述的性能檢測包括延時、 抖動、丟包率、可用帶寬的檢測。
11、 一種轉(zhuǎn)發(fā)節(jié)點選取裝置,其特征在于,用于在包括服務(wù)節(jié)點、轉(zhuǎn) 發(fā)節(jié)點和用戶節(jié)點的覆蓋網(wǎng)上為源用戶節(jié)點選取合適的轉(zhuǎn)發(fā)節(jié)點以構(gòu)建 從源用戶節(jié)點到目的用戶節(jié)點的備用路徑,該裝置包括候選鄰居轉(zhuǎn)發(fā)節(jié)點 選取模塊、路徑相關(guān)性檢測模塊、性能檢測模塊;其中,所述的候選鄰居轉(zhuǎn)發(fā)節(jié)點選取模塊根據(jù)源用戶節(jié)點的位置和該用戶 節(jié)點所在網(wǎng)絡(luò)的拓樸結(jié)構(gòu),采用BFBB算法選取該用戶節(jié)點的候選鄰居轉(zhuǎn) 發(fā)節(jié)點;其中,所述BFBB算法在對網(wǎng)絡(luò)拓樸圖中的每個節(jié)點計算FSRI指標值后, 調(diào)用廣度優(yōu)先算法選取所述網(wǎng)絡(luò)拓樸圖上FSRI值大于所述用戶節(jié)點的 FSRI值的節(jié)點作為候選鄰居轉(zhuǎn)發(fā)節(jié)點,直到滿足對所述鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù) 目要求;若所選取的鄰居轉(zhuǎn)發(fā)節(jié)點的數(shù)目小于所述的數(shù)目要求,則將所述 用戶節(jié)點的FSRI值減1后,重新利用廣度優(yōu)先算法選取候選鄰居轉(zhuǎn)發(fā)節(jié) 點,直到滿足要求為止;所述計算FSRI指標值包括步驟a)、將一個變量curFSRI的值初始化為1;步驟b)、在網(wǎng)絡(luò)拓樸圖中查找當前度值為1的節(jié)點,將其FSRI指標 值置為所述變量curFSRI的值,刪除這些點及其依附的邊,并將這些點的鄰居節(jié)點的當前度值減1;步驟c )、若在網(wǎng)絡(luò)拓樸圖中的所有節(jié)點都已經(jīng)處理完畢,則結(jié)束操作;步驟d)、若在網(wǎng)絡(luò)拓樸圖中還存在未處理的節(jié)點,則從當前剩余節(jié)點 中選取所有原始度值乘積最小的相鄰節(jié)點對,刪除它們之間的連邊,降低 這些相鄰節(jié)點對的當前度值,重復(fù)本步驟的操作,直到出現(xiàn)當前度值為1 的節(jié)點后,將所述變量curFSRI的值后,重新執(zhí)行步驟b);所述的路徑相關(guān)性檢測模塊檢測源用戶節(jié)點經(jīng)由所述候選鄰居轉(zhuǎn)發(fā) 節(jié)點到達目的用戶節(jié)點的候選路徑與所述源用戶節(jié)點到目的用戶節(jié)點的 默認路徑的相關(guān)性,將相關(guān)性高的候選路徑所對應(yīng)的轉(zhuǎn)發(fā)節(jié)點從所述候選 鄰居轉(zhuǎn)發(fā)節(jié)點中刪除;所述的性能檢測模塊將源用戶節(jié)點經(jīng)由所述路徑相關(guān)性檢測模塊得 到的候選鄰居轉(zhuǎn)發(fā)節(jié)點到達目的用戶節(jié)點的候選路徑做性能檢測以從所 述的候選鄰居轉(zhuǎn)發(fā)節(jié)點進一步選取轉(zhuǎn)發(fā)節(jié)點。
全文摘要
本發(fā)明提供一種轉(zhuǎn)發(fā)節(jié)點選取方法,用于在包括服務(wù)節(jié)點、轉(zhuǎn)發(fā)節(jié)點和用戶節(jié)點的覆蓋網(wǎng)上為源用戶節(jié)點選取合適的轉(zhuǎn)發(fā)節(jié)點以構(gòu)建從源用戶節(jié)點到目的用戶節(jié)點的備用路徑,該方法包括根據(jù)源用戶節(jié)點的位置和該源用戶節(jié)點所在網(wǎng)絡(luò)的拓撲結(jié)構(gòu),采用BFBB算法選取該源用戶節(jié)點的候選鄰居轉(zhuǎn)發(fā)節(jié)點;檢測源用戶節(jié)點經(jīng)由候選鄰居轉(zhuǎn)發(fā)節(jié)點到達目的用戶節(jié)點的候選路徑與所述源用戶節(jié)點到目的用戶節(jié)點的默認路徑的相關(guān)性,將相關(guān)性高的候選路徑所對應(yīng)的轉(zhuǎn)發(fā)節(jié)點從所述候選鄰居轉(zhuǎn)發(fā)節(jié)點中刪除;將源用戶節(jié)點經(jīng)由候選鄰居轉(zhuǎn)發(fā)節(jié)點到達目的用戶節(jié)點的候選路徑做性能檢測,將不滿足性能要求的候選路徑所對應(yīng)的轉(zhuǎn)發(fā)節(jié)點從所述候選鄰居轉(zhuǎn)發(fā)節(jié)點中刪除,剩余的候選鄰居轉(zhuǎn)發(fā)節(jié)點為所要選取的轉(zhuǎn)發(fā)節(jié)點。
文檔編號H04L12/56GK101562569SQ20091008546
公開日2009年10月21日 申請日期2009年5月26日 優(yōu)先權(quán)日2009年5月26日
發(fā)明者張國清, 李彥君, 楊清峰 申請人:中國科學(xué)院計算技術(shù)研究所