專利名稱:基于優(yōu)化直徑網(wǎng)絡的按度值對目的節(jié)點分段迭代的路由法的制作方法
技術領域:
本發(fā)明屬于互聯(lián)網(wǎng)技術領域。
背景技術:
P2P網(wǎng)絡的性能很大程度上取決于網(wǎng)絡的最大傳輸時延和路由方法。分組是指具有一定格式的數(shù)據(jù)包;網(wǎng)絡的最大傳輸時延是指從網(wǎng)絡的任意兩點之間發(fā)送分組到接收分組之間的最大時間差?;谝韵略蛭覀冋J為最人傳輸時延的控制對于網(wǎng)絡的擁塞控制以及網(wǎng)絡的服務質量都十分重要首先,某些應用會因端到端時延過大而不能很好地執(zhí)行,甚至不能執(zhí)行;其次,最大傳輸時延不確定的變化使得網(wǎng)絡對很多交互式實時應用的支持變得很困難;最后,最大傳輸時延值越大傳輸層協(xié)議對于高帶寬應用的支持就越困難。
網(wǎng)絡直徑直接決定了網(wǎng)絡的最大傳輸時延,路由機制則決定了分組的轉發(fā)效率。一個性能良好的P2P網(wǎng)絡應該具有相對較小的網(wǎng)絡直徑和高效的路由機制。目前已有一些比較好的方法(如Chord,Pastry,Tapestry),但是,這些方法的共同弱點是網(wǎng)絡直徑不夠小,分組轉發(fā)效率較低,一臺主機需要維護較多的其他主機信息。這就不適用于大規(guī)模網(wǎng)絡環(huán)境中對于最大傳輸時延等指標要求較高的應用,比如,病毒預警、布丁數(shù)據(jù)分發(fā)、病毒特征碼下載等應用。
優(yōu)化直徑網(wǎng)絡具有嚴格的拓撲結構,我們用圖論的方法來描述該結構,首先需要定義一些用到的圖論術語。有向圖是指所有邊都為有向邊的圖,用符號G=(V,E),V是點集,E是邊集;如果點u和點v之間存在一條有向邊(u,v),則點v和點u互稱為鄰居點;圖G的階定義為圖G中點的個數(shù);點v的入度是指圖G中以點v作為終點的邊的條數(shù),記為dG-(v);點u的出度是指圖G中以點u作為起點的邊的條數(shù),記為dG+(v);點的入度和出度通稱為點的度;圖G的直徑定義為圖G的兩個頂點之間的最大距離,記為d(G);若圖G的所有點的度都為d,則稱圖G為d正則圖。我們下面提到的圖均指有向圖,把網(wǎng)絡的拓撲圖中的點稱為節(jié)點。
因為一條有向邊可由它的兩個鄰居節(jié)點唯一確定,所以我們通過構造鄰居節(jié)點的方法來構造有向圖的邊。設圖G是一個階為n度為d直徑為k的有向正則圖(n>0,d>1),記為G=(V,E),設圖G的點集為V={0,1,2,...,n-1},對于任意節(jié)點i∈V,我們定義如下公式
d×i+s+t (modn)(1≤s≤d,t∈
)(1)以這個公式計算得到的數(shù)字作為節(jié)點i的鄰居節(jié)點的節(jié)點號。這樣構造出的總路由表具有模n周期回歸的特點(見圖1),并且其直徑可以達到 (logdn向上取整),這一結構具有比上述其他結構都小的網(wǎng)絡直徑,并且非常接近理論最小值。
本發(fā)明基于上述優(yōu)化直徑網(wǎng)絡拓撲結構設計出按度值對目的節(jié)點分段迭代的路由法,該方法通過對目的節(jié)點進行分段迭代歸類,在每一次數(shù)據(jù)轉發(fā)時都能使數(shù)據(jù)沿著趨向于目的節(jié)點的正確方向進行轉發(fā),從而保證了數(shù)據(jù)在經(jīng)過最多 次轉發(fā)后到達目的節(jié)點。按度值對目的節(jié)點分段迭代的路由法在具有較小直徑的同時還具有較小的計算開銷,其計算復雜度為 (見圖5),該方法可以滿足大規(guī)模網(wǎng)絡中許多對于傳輸時延要求苛刻的應用。
發(fā)明內容
本發(fā)明的目的在于克服已有方法普遍較低的數(shù)據(jù)轉發(fā)效率問題,提供一種新的在大規(guī)模P2P網(wǎng)絡上進行快速數(shù)據(jù)傳輸?shù)膯l(fā)式路由機制。
本發(fā)明解決其技術問題所采用的技術方案是源節(jié)點反復迭代公式(1) 次,得到一個長度為dx的序列(令 ),再對該序列進行d等分,然后根據(jù)節(jié)點歸屬判定方法判斷出目的節(jié)點所處位置,從而決定下一步轉發(fā)的節(jié)點號并將分組轉發(fā)給該節(jié)點,收到該分組的節(jié)點再根據(jù)上次序列劃分的結果迭代上述操作,并進行相應的分組轉發(fā),直到分組被最終轉發(fā)到目的節(jié)點為止。
本發(fā)明的特征在于所述方法是在任意規(guī)模的對等網(wǎng)絡上依次按以下步驟實現(xiàn)的步驟1設n為所述對等網(wǎng)絡的節(jié)點數(shù),w0為源節(jié)點的節(jié)點號,j為目的節(jié)點的節(jié)點號,P為轉發(fā)分組,d為節(jié)點的度,從源節(jié)點w0開始,對下列的計算結果模n后,得wk+1的值wk+1=d×wk+s+t,再反復按所述公式迭代x次,x為優(yōu)化直徑網(wǎng)絡的直徑, 符號 表示向上取整,求出wx,其中,s=1,t∈
任取;步驟2以首項wx開始,相鄰兩數(shù)差值為+1地順序寫出下一項,并判斷該下一項的值是否等于n-1,當該項的值等于n-1時再下一項的值變?yōu)?,然后再繼續(xù)順序按照步驟2所述的方法寫出下一項并進行同樣的判斷,直到寫完dx項為止,得到數(shù)列a;步驟3用源節(jié)點的節(jié)點號w0對數(shù)列a進行d等分,得到d個子列記為a1,a2,...ad,并把源節(jié)點w0的d個鄰居節(jié)點依節(jié)點號從小到大記為v1,v2,...vd;
步驟4用下述節(jié)點歸屬判定方法判斷出目的節(jié)點的序號j所處的區(qū)間設子列ai的首項是p(1≤i≤d),ai的末項是q,當前待分割子列的長度為h,d為節(jié)點的度,n為節(jié)點數(shù),第k次d分操作時h等于dx-k, 則q=p+(hd-1);]]>當p>g時,若j≥p或j≤q,則j∈ai;當p<q時,若p≤j≤q,則j∈ai;步驟5若目的節(jié)點序列號j屬于子列ai,則源節(jié)點w0把分組P和數(shù)列ai轉發(fā)給下標i相對應的那個鄰居節(jié)點vi若目的節(jié)點序列號j在多個子列中都有出現(xiàn),則從中任選一個子列ak,1<k<d,并把分組P和數(shù)列ak轉發(fā)給下標k相對應的那個鄰居節(jié)點vk;步驟6收到步驟5所述的分組的節(jié)點再根據(jù)步驟3劃分的結果,對收到的序號為j的目的節(jié)點所屬的數(shù)列按步驟3-步驟5進行同樣的操作,直到收到分組P的節(jié)點就是目的節(jié)點j為止。
本發(fā)明所提出的基于優(yōu)化直徑網(wǎng)絡的按度值對目的節(jié)點分段迭代的路由法,解決了已有方法由于網(wǎng)絡直徑限制所帶來的分組轉發(fā)效率低的問題,并且可以滿足大量具有低時延轉發(fā)需求的應用,提供了一種新的在P2P網(wǎng)絡上以接近理論最小值進行低時延分組轉發(fā)的技術方法,可以實現(xiàn)大規(guī)模P2P網(wǎng)絡上任意節(jié)點之間的快速通信,圖5中列出了本路由方法與幾種經(jīng)典路由方法Chord、Pastry和CAN的性能比較,Chord方法實現(xiàn)了 的網(wǎng)絡直徑和復雜度,Pastry方法實現(xiàn)了logbn的網(wǎng)絡直徑,CAN構造的網(wǎng)絡直徑可以達到1/2dn1/d,而本路由方法的網(wǎng)絡直徑和計算復雜度均僅為 這要小于其他幾種方法,從而解決了傳統(tǒng)方法中數(shù)據(jù)轉發(fā)效率低的問題。目前清華大學已經(jīng)將該項研究成果運用在“P2P蠕蟲防御系統(tǒng)”中,是該系統(tǒng)的重要組成部分。
圖1.優(yōu)化直徑網(wǎng)絡原理示意圖a.優(yōu)化直徑網(wǎng)絡的鄰居表;b.節(jié)點4、13的路由樹;圖2.基于優(yōu)化直徑網(wǎng)絡的按度值對目的節(jié)點分段迭代的路由法流程圖;圖3.基于優(yōu)化直徑網(wǎng)絡的按度值對目的節(jié)點分段迭代的路由法應用示例圖;圖4.按度值對目的節(jié)點分段迭代的路由法在“P2P蠕蟲防御系統(tǒng)”中的具體實施方法示例圖d=2,s=1,t=2,n=14,w0=4,j=5圖5.不同方法的比較示意圖。
具體實施例方式
步驟1.記源節(jié)點的節(jié)點號為w0,目的節(jié)點的節(jié)點號為j,轉發(fā)分組為P,節(jié)點的度為d,令公式(1)中的i為wk,根據(jù)公式(1)我們可得公式(2)wk+1=d×wk+s+t (mod n)(s=1,t∈
)(2)從源節(jié)點w0開始,反復迭代計算該公式x次( ),求出wx;步驟2.以wx作為數(shù)列的首項,寫出長度為dx,相鄰兩項差值為1的等差數(shù)列,并對每一項模n,最后我們得到數(shù)列a。
實際上,這一步也可以如下操作從首項wx開始,相鄰兩數(shù)差值為1地順序寫出數(shù)列的每一項,并判斷該項是否等于n-1,當它等于n-1時下一個元素變?yōu)?,然后繼續(xù)順序寫出下一項并進行同樣的判斷,直到寫完dx個元素為止;步驟3.節(jié)點w0對數(shù)列a進行d等分,(因為a的長度是dx,所以d等分操作總可以進行,分出的每一個子列長度為dx-1),將數(shù)列a進行d等分后得到的d個子列記為al、a2、...ad;并將w0的d個鄰居節(jié)點依節(jié)點號從小到大記為v1、v2、...vd;步驟4.用步驟6中節(jié)點歸屬判定方法判斷出數(shù)字j所處的區(qū)間,如果j屬于子列ai(1≤i≤d),則節(jié)點w0將分組P和數(shù)列ai轉發(fā)給下標相對應的那個鄰居節(jié)點vi;如果數(shù)字j在多個子列中都有出現(xiàn),則從中任選一個子列ak(1≤k≤d),并將分組P和數(shù)列ak轉發(fā)給下標相對應的那個鄰居節(jié)點vk;步驟5.收到分組P的節(jié)點再根據(jù)上次劃分的結果,對收到的目的節(jié)點j所屬的數(shù)列進行步驟3和步驟4中同樣的操作,反復迭代上述操作,直到收到分組P的節(jié)點就是目的節(jié)點j為止;步驟6.節(jié)點歸屬判定方法設子列ai的首項是p,ai的末項是q,h是當前待分割子列的長度,d為節(jié)點的度,n為節(jié)點數(shù),在第k次d分操作時h等于dx-k(其中 ),則q=p+(h/d-1),那么(1)當p>q時若j≥p或j≤q,則j∈ai(2)當P<q時若p≤j≤q,則j∈ai也就是說,目的節(jié)點j在上述兩種情形時屬于子列ai(1≤i≤d)。
本路由方法所適用的硬件平臺為任意規(guī)模的對等網(wǎng)絡,圖2為按度值對目的節(jié)點分段迭代的路由法的程序流程圖,圖4為按度值對目的節(jié)點分段迭代的路由法在“P2P蠕蟲防御系統(tǒng)”中的具體實施示例,我們以d=3,1≤s≤d,t=6,n=27為參數(shù),用周期回歸法構造出網(wǎng)絡拓撲,其直徑為3(見圖3)。假設“P2P蠕蟲防御系統(tǒng)”中的節(jié)點8要給節(jié)點17發(fā)送分組P,
按如下步驟進行路由(1)以節(jié)點8為起點迭代計算公式(2)(d=3,t=6,n=27,w0=8),共迭代3次,求出w3等于10;(2)以10為首項,寫出長度為27,相鄰兩項差值為1的等差數(shù)列,并對每一項模27,我們得到數(shù)列aa10111213141516171819202122232425260123456789;(3)節(jié)點8對數(shù)列a進行3等分,得到如下3個子列a1101112131415161718a219202122232425260a3 12 3 4 5 6 7 8 9節(jié)點8的3個鄰居節(jié)點是4,5,6,分別記為v1,v2,v3;(4)節(jié)點8判斷出目的節(jié)點17屬于子列a1,據(jù)此,節(jié)點8將分組P和子列a1一起發(fā)送給其鄰居節(jié)點v1,即節(jié)點4;(5)節(jié)點4收到分組P和數(shù)列a1后,令a=a1,再對數(shù)列a進行3等分,得到如下3個子列a1101112a2131415a3161718節(jié)點4的3個鄰居節(jié)點是19,20,21,分別記為v1,v2,v3;(6)節(jié)點4判斷出目的節(jié)點17屬于子列a3,據(jù)此,節(jié)點4將分組P和子列a3一起發(fā)送給其鄰居節(jié)點v3,即節(jié)點21;(7)節(jié)點21收到分組P和子列a3后,令a=a3,再對數(shù)列a進行3等分,得到3個子列a116a217a318節(jié)點21的3個鄰居節(jié)點是16,17,18,分別記為v1,v2,v3;(8)節(jié)點21判斷出目的節(jié)點17屬于子列a2,據(jù)此,節(jié)點21將分組P發(fā)送給其鄰居節(jié)點v2,即節(jié)點17,這就是目的節(jié)點。
至此,路由過程結束。整個轉發(fā)路徑就是8→4→21→17。
由此可見,本發(fā)明達到了預期目的。
權利要求
1.基于優(yōu)化直徑網(wǎng)絡的按度值對目的節(jié)點分段迭代的路由法,其特征在于,所述方法是在任意規(guī)模的對等網(wǎng)絡上依次按以下步驟實現(xiàn)的步驟1設n為所述對等網(wǎng)絡的節(jié)點數(shù),w0為源節(jié)點的節(jié)點號,j為目的節(jié)點的節(jié)點號,P為轉發(fā)分組,d為節(jié)點的度,從源節(jié)點w0開始,對下列的計算結果模n后,得wk+1的值wk+1=d×wk+s+t,再反復按所述公式迭代x次,x為優(yōu)化直徑網(wǎng)絡的直徑, 符號 表示向上取整,求出wx,其中,s=1,t∈
任??;步驟2以首項wx開始,相鄰兩數(shù)差值為+1地順序寫出下一項,并判斷該下一項的值是否等于n-1,當該項的值等于n-1時再下一項的值變?yōu)?,然后再繼續(xù)順序按照步驟2所述的方法寫出下一項并進行同樣的判斷,直到寫完dx項為止,得到數(shù)列a;步驟3用源節(jié)點的節(jié)點號w0對數(shù)列a進行d等分,得到d個子列記為a1,a2,...ad,并把源節(jié)點w0的d個鄰居節(jié)點依節(jié)點號從小到大記為v1,v2,...vd;步驟4用下述節(jié)點歸屬判定方法判斷出目的節(jié)點的序號j所處的區(qū)間設子列ai的首項是p(1≤i≤d),ai的末項是q,當前待分割子列的長度為h,d為節(jié)點的度,n為節(jié)點數(shù),第k次d分操作時h等于dx-k, 則q=p+(hd-1);]]>當p>q時,若j≥p或j≤q,則j∈ai;當p<q時,若p≤j≤q,則j∈ai;步驟5若目的節(jié)點序列號j屬于子列ai,則源節(jié)點w0把分組P和數(shù)列ai轉發(fā)給下標i相對應的那個鄰居節(jié)點vi;若目的節(jié)點序列號j在多個子列中都有出現(xiàn),則從中任選一個子列ak,1≤k≤d,并把分組P和數(shù)列ak轉發(fā)給下標k相對應的那個鄰居節(jié)點vk;步驟6收到步驟5所述的分組的節(jié)點再根據(jù)步驟3劃分的結果,對收到的序號為j的目的節(jié)點所屬的數(shù)列按步驟3-步驟5進行同樣的操作,直到收到分組P的節(jié)點就是目的節(jié)點j為止。
全文摘要
基于優(yōu)化直徑網(wǎng)絡的按度值對目的節(jié)點分段迭代的路由法屬于互聯(lián)網(wǎng)技術領域,其特征在于使源節(jié)點按優(yōu)化直徑網(wǎng)絡的迭代公式反復迭代[log
文檔編號H04L12/56GK1710882SQ20051001200
公開日2005年12月21日 申請日期2005年6月24日 優(yōu)先權日2005年6月24日
發(fā)明者徐恪, 丁強, 崔勇 申請人:清華大學