專利名稱:一種基于層次化可導航網(wǎng)絡的p2p協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種P2P協(xié)議,特別涉及一種基于層次化可導航網(wǎng)絡的P2P協(xié)議。
背景技術(shù):
目前,P2P網(wǎng)絡主要性能指標的復雜度無法完全達到對數(shù)級別,P2P技術(shù)已經(jīng)成為 互聯(lián)網(wǎng)的重要組成部分,甚至很多人已經(jīng)認為P2P技術(shù)將成為未來互聯(lián)網(wǎng)的發(fā)展方向;P2P 應用的流行源于P2P技術(shù)所提供的無限服務能力、低廉的成本和良好的服務穩(wěn)定性;在P2P 文件共享系統(tǒng)中,內(nèi)容發(fā)布功能被開放給每一個peer端,極大地豐富了系統(tǒng)的內(nèi)容,從而 吸引了大量新用戶;隨著P2P技術(shù)的快速發(fā)展,P2P技術(shù)進一步得到發(fā)展,但P2P技術(shù)的普 及破壞了傳統(tǒng)的網(wǎng)絡業(yè)務訪問模型,對P2P技術(shù)的繼續(xù)發(fā)展設置了障礙。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供一種基于層次化可導航網(wǎng)絡的 P2P協(xié)議。為實現(xiàn)上述目的,本發(fā)明的具體方案為一種基于層次化可導航網(wǎng)絡的P2P協(xié)議,包括節(jié)點加入、節(jié)點退出以及路由。每個節(jié)點具有一個在W,2H)之間均勻分布的H個比特位的標識符;節(jié)點的所述標 識符代表著該節(jié)點在樹T(H)的葉子節(jié)點集中的位置;每個節(jié)點維護H-I個鄰居節(jié)點列表, 其中第h(l <=h<=H-l)個列表中的鄰居節(jié)點和該節(jié)點的距離為h,該列表被稱為h-距 離鄰居節(jié)點列表。所述的節(jié)點加入為加入節(jié)點j首先通過引導機制獲得P2P協(xié)議中的一個隨機引 導節(jié)點s ;然后,從節(jié)點s到節(jié)點j執(zhí)行路由操作。所述的路由為步驟一加入節(jié)點j被加入到所有路由中繼節(jié)點r或節(jié)點s的 h-距離鄰居節(jié)點列表,中繼節(jié)點r被加入節(jié)點j的h-距離鄰居節(jié)點列表;步驟二 每個中 繼節(jié)點r的所有鄰居節(jié)點被加入到節(jié)點j的相應距離鄰居節(jié)點列表;步驟三如果前兩個 動作執(zhí)行之前,中繼節(jié)點r的h-距離鄰居節(jié)點列表為空,則節(jié)點j被加入到節(jié)點r的距離 小于h的所有鄰居節(jié)點的h-距離鄰居節(jié)點列表中;節(jié)點j的所有h距離節(jié)點知道節(jié)點j。本發(fā)明中,所述路由的算法為算法1 引導節(jié)點s開始以加入節(jié)點j為目標節(jié)點進行路由;步驟將引導節(jié)點s作為中繼節(jié)點rwhile (中繼節(jié)點r !=目標節(jié)點j) {h =節(jié)點r和節(jié)點j之間的距離if(03and節(jié)點r的h_距離鄰居節(jié)點列表為空)將節(jié)點j加入所有和節(jié)點r距離小于h的節(jié)點的h-距離鄰居節(jié)點列表,將節(jié)點j加入節(jié)點r的h-距離鄰居節(jié)點列表;
if將節(jié)點r加入節(jié)點j的h_距離鄰居節(jié)點列表else將節(jié)點r及其所有鄰居節(jié)點加入節(jié)點j的相應鄰居節(jié)點列表,從節(jié)點r的h_距離鄰居節(jié)點列表中選擇和節(jié)點j的距離最近的節(jié)點作為下一跳 中繼節(jié)點r}。本發(fā)明中,所述h為節(jié)點j和中繼節(jié)點r的距離。本發(fā)明的有益效果是本發(fā)明中的所有節(jié)點被認為是一顆完全二叉樹上均勻分 布的葉子節(jié)點,任意兩個節(jié)點之間的距離定義為這兩個節(jié)點在二叉樹中的最低共同祖先節(jié) 點的高度;對于該P2P協(xié)議中的每個節(jié)點,如果存在和它距離為h的節(jié)點,則至少保證其 中的一個節(jié)點作為該節(jié)點的鄰居節(jié)點,該P2P協(xié)議的平均路由路徑長度為(log2N)/2,路 由成功率為100%,節(jié)點平均度數(shù)為(log2N),節(jié)點加入P2P協(xié)議時所需發(fā)送的消息個數(shù)是 (log2N)/2 ;與之前的主要P2P網(wǎng)絡相比,該P2P協(xié)議的優(yōu)點是性能指標的復雜度都是對數(shù) 量級,穩(wěn)定性好。
圖1為樹T(H)的等腰三角特性示意圖。
具體實施例方式為了使本發(fā)明的技術(shù)手段、創(chuàng)作特征與達成目的易于明白理解,以下結(jié)合具體實 施例進一步闡述本發(fā)明本發(fā)明的一種基于層次化可導航網(wǎng)絡的P2P協(xié)議,包括節(jié)點加入、節(jié)點退出以及路由。本發(fā)明中,層次化可導航網(wǎng)絡模型;首先,定義一個完全二叉樹T (H),該樹具有2H個葉子節(jié)點,高度為H,其中葉子節(jié) 點的高度為0,根節(jié)點的高度為H-I ;對于任意兩個葉子節(jié)點u和v,定義它們之間的距離 h(u, ν)為它們在樹T(H)中的最低共同祖先節(jié)點的高度;在這樣的距離定義下,樹T(H)具 有等腰三角特性如圖1所示,對于任何葉子節(jié)點u,所有和u的距離為h的葉子節(jié)點集內(nèi) 的節(jié)點之間的距離都小于h。其次,定義層次化可導航網(wǎng)絡模型G(N,H,k),該網(wǎng)絡模型G(N,H,k)為圖G具有N個節(jié)點,這些節(jié)點均勻分布在樹T(H)的葉子節(jié)點集合中。對于圖G中任何節(jié)點U,定義與其距離為h的節(jié)點集合為Vu (h);盡量保證Vu (h) 中有k個節(jié)點被選擇作為節(jié)點u的h-距離鄰居節(jié)點,S卩如果|Vu(h)|小于等于k,則將 Vu (h)中所有節(jié)點作為節(jié)點u的h-距離鄰居節(jié)點;如果|Vu (h) I大于k,則從Vu (h)中隨機 選取k個節(jié)點作為節(jié)點u的h-距離鄰居節(jié)點;特別的,如果k= 1,則網(wǎng)絡模型G(N,H,k) 被稱為G (N,H,l)。再次,定義層次化可導航網(wǎng)絡模型G(N,H,k)中的貪婪路由策略每個節(jié)點選擇與 目標節(jié)點距離最近的鄰居節(jié)點作為路由的下一跳節(jié)點;如果有多個鄰居節(jié)點和目標節(jié)點的距離相等,則從中選取和本節(jié)點距離最遠的節(jié)點。命題1 :G(N,H,1)的節(jié)點平均度數(shù)為log2N,平均路由路徑長度為log2N/2。命題2 當k<<H時,G(N,H,k)的節(jié)點平均度數(shù)約為klog2N,平均路由路徑長度 約為 log2N/(log2k+l. 33)。證明G(N, H,k)中節(jié)點間距離的期望值為log2N_l,定義Δh為路由時每跳所減少的節(jié) 點間距離的期望值,那么平均路由路徑長度=log2N-l/Ah,下面計算每跳所減少的節(jié)點 間距離的期望值A(chǔ)h,對于任意節(jié)點u(可以是源節(jié)點或中繼節(jié)點)和目標節(jié)點w,如果u和 w之間的距離為h,定義與節(jié)點u距離為h的節(jié)點集合為Vu(h),根據(jù)G(N,H,k)的定義和樹 T (H)的等腰三角特性,有節(jié)點u的所有h-距離鄰居節(jié)點和節(jié)點w都屬于Vu (h),它們之間 的距離都小于h。根據(jù)G(N,H,k)的定義,當h>k時,節(jié)點u的h-距離鄰居節(jié)點的個數(shù)為 k個。根據(jù)貪婪路由策略,將從這k個鄰居節(jié)點中選擇和目標節(jié)點距離最近的節(jié)點作為下一 跳節(jié)點。問題轉(zhuǎn)化為這k個節(jié)點和目標節(jié)點w的最小距離的期望值,h與該值的差就是每 跳所減少距離的期望值A(chǔ)h。最后,Vu (h)的期望值E (Vu (h)) = N/2H-h, Vu (h)中任意一個節(jié)點ν和目標節(jié)點 w的距離小于δ (1 <= δ <=h)的概率為Pr[d(v,w) < δ ] = 2“,Vu(h)中任意k個節(jié)點和目標節(jié)點w的距離小于δ (1 <= δ <= h)的概率為 Pr[min{d(v, w)} < δ] = 1-(1-2 5^h)k,Vu (h)中任意k個節(jié)點和目標節(jié)點w的距離等于δ (1<= δ <=h)的概率為
Pr[min{d(v,w)} = δ] = (1-2 “)k-(1-2 s+1_h)k,
h-\期望值為五(mind(v, w)=句=Σ 州 1 _ 廣Α)"-(!-)k)
軸,每跳所減少距離的期望值A(chǔ)h = h-E (min d(v, w) = δ ),可得 Ah ;log2k+l. 33 ; 特別地,當k = 1時,Ah = 2。本發(fā)明所述的一種基于層次化可導航網(wǎng)絡的P2P協(xié)議,包括節(jié)點加入、節(jié)點退出 以及路由。所述的節(jié)點加入為加入節(jié)點j首先通過引導機制獲得P2P協(xié)議中的一個隨機引 導節(jié)點s ;然后,從節(jié)點s到節(jié)點j執(zhí)行路由操作。所述的路由為步驟一加入節(jié)點j被加入到所有路由中繼節(jié)點r或節(jié)點s的h_距離鄰居節(jié)點列 表,中繼節(jié)點r被加入節(jié)點j的h-距離鄰居節(jié)點列表;步驟二 每個中繼節(jié)點r的所有鄰居節(jié)點被加入到節(jié)點j的相應距離鄰居節(jié)點列 表;步驟三如果前兩個動作執(zhí)行之前,中繼節(jié)點r的h-距離鄰居節(jié)點列表為空,則節(jié) 點j被加入到節(jié)點r的距離小于h的所有鄰居節(jié)點的h-距離鄰居節(jié)點列表中;節(jié)點j的所 有h距離節(jié)點知道節(jié)點j。其中,所述路由的算法為算法1 引導節(jié)點s開始以加入節(jié)點j為目標節(jié)點進行路由;
5
步驟將引導節(jié)點s作為中繼節(jié)點rwhile (中繼節(jié)點r !=目標節(jié)點j) {h =節(jié)點r和節(jié)點j之間的距離if(03and節(jié)點r的h_距離鄰居節(jié)點列表為空)將節(jié)點j加入所有和節(jié)點r距離小于h的節(jié)點的h-距離鄰居節(jié)點列表,將節(jié)點j加入節(jié)點r的h-距離鄰居節(jié)點列表;if將節(jié)點r加入節(jié)點j的h_距離鄰居節(jié)點列表else將節(jié)點r及其所有鄰居節(jié)點加入節(jié)點j的相應鄰居節(jié)點列表,從節(jié)點r的h_距離鄰居節(jié)點列表中選擇和節(jié)點j的距離最近的節(jié)點作為下一跳 中繼節(jié)點r}。其中,所述h為節(jié)點j和中繼節(jié)點r的距離。本發(fā)明中的所有節(jié)點被認為是一顆完全二叉樹上均勻分布的葉子節(jié)點,任意兩個 節(jié)點之間的距離定義為這兩個節(jié)點在二叉樹中的最低共同祖先節(jié)點的高度;對于該P2P協(xié) 議中的每個節(jié)點,如果存在和它距離為h的節(jié)點,則至少保證其中的一個節(jié)點作為該節(jié)點 的鄰居節(jié)點,該P2P協(xié)議的平均路由路徑長度為(log2N)/2,路由成功率為100%,節(jié)點平 均度數(shù)為(log2N),節(jié)點加入P2P協(xié)議時所需發(fā)送的消息個數(shù)是(log2N)/2 ;與之前的主要 P2P網(wǎng)絡相比,該P2P協(xié)議的優(yōu)點是性能指標的復雜度都是對數(shù)量級,穩(wěn)定性好。以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù) 人員應該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本 發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下本發(fā)明還會有各種變化和改進,這些變 化和改進都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要求保護范圍由所附的權(quán)利要求書及其 等同物界定。
權(quán)利要求
1.一種基于層次化可導航網(wǎng)絡的P2P協(xié)議,其特征在于該P2P協(xié)議包括節(jié)點加入與路由;所述的節(jié)點加入為加入節(jié)點j首先通過引導機制獲得P2P協(xié)議中的一個隨機引導節(jié) 點s ;然后,從節(jié)點s到節(jié)點j執(zhí)行路由操作;所述的路由為步驟一加入節(jié)點j被加入到所有路由中繼節(jié)點r或節(jié)點s的h-距離 鄰居節(jié)點列表,中繼節(jié)點r被加入節(jié)點j的h-距離鄰居節(jié)點列表;步驟二 每個中繼節(jié)點r 的所有鄰居節(jié)點被加入到節(jié)點j的相應距離鄰居節(jié)點列表;步驟三如果前兩個動作執(zhí)行 之前,中繼節(jié)點r的h-距離鄰居節(jié)點列表為空,則節(jié)點j被加入到節(jié)點r的距離小于h的 所有鄰居節(jié)點的h-距離鄰居節(jié)點列表中;節(jié)點j的所有h距離節(jié)點知道節(jié)點j。
2.根據(jù)權(quán)利要求1所述的一種基于層次化可導航網(wǎng)絡的P2P協(xié)議,其特征在于所述 路由的算法為算法1,引導節(jié)點s開始以加入節(jié)點j為目標節(jié)點進行路由; 步驟將引導節(jié)點s作為中繼節(jié)點rwhile (中繼節(jié)點r !=目標節(jié)點j) {h=節(jié)點r和節(jié)點j之間的距離if(03and節(jié)點r的h_距離鄰居節(jié)點列表為空)將節(jié)點j加入所有和節(jié)點r距離小于h的節(jié)點的h-距離鄰居節(jié)點列表, 將節(jié)點j加入節(jié)點r的h-距離鄰居節(jié)點列表; if將節(jié)點r加入節(jié)點j的h-距離鄰居節(jié)點列表 else將節(jié)點r及其所有鄰居節(jié)點加入節(jié)點j的相應鄰居節(jié)點列表 從節(jié)點r的h-距離鄰居節(jié)點列表中選擇和節(jié)點j的距離最近的節(jié)點作為下一跳中繼 節(jié)點r }。
3.根據(jù)權(quán)利要求1或2所述的一種基于層次化可導航網(wǎng)絡的P2P協(xié)議,其特征在于 所述h為節(jié)點j和中繼節(jié)點r的距離。
全文摘要
本發(fā)明公開了一種基于層次化可導航網(wǎng)絡的P2P協(xié)議,包括節(jié)點加入與路由;所述節(jié)點加入加入節(jié)點j首先通過引導機制獲得P2P協(xié)議中的一個隨機引導節(jié)點s;然后,從節(jié)點s到節(jié)點j執(zhí)行路由操作;所述路由步驟一加入節(jié)點j被加入到所有路由中繼節(jié)點r或節(jié)點s的h-距離鄰居節(jié)點列表,中繼節(jié)點r被加入節(jié)點j的h-距離鄰居節(jié)點列表;步驟二每個中繼節(jié)點r的所有鄰居節(jié)點被加入到節(jié)點j的相應距離鄰居節(jié)點列表;步驟三如果前兩個動作執(zhí)行之前,中繼節(jié)點r的h-距離鄰居節(jié)點列表為空,則節(jié)點j被加入到節(jié)點r的距離小于h的所有鄰居節(jié)點的h-距離鄰居節(jié)點列表中;節(jié)點j的所有h距離節(jié)點知道節(jié)點j。本發(fā)明穩(wěn)定性好。
文檔編號H04L29/08GK102148877SQ201110120740
公開日2011年8月10日 申請日期2011年5月10日 優(yōu)先權(quán)日2011年5月10日
發(fā)明者馮文峰, 安吉宇, 張治斌, 閆俊豪, 陳慧琴 申請人:河南理工大學