專利名稱:基于物理位置的分層Chord路由方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種移動P2P(Peer-to-Peer,端對端)環(huán)境中的通信方法,具體地講, 是一種基于物理位置的分層Chord路由方法。
背景技術(shù):
P2P技術(shù)的產(chǎn)生和發(fā)展,改變了互聯(lián)網(wǎng)的資源共享方式。在移動P2P網(wǎng)絡(luò)中一個(gè) 很重要的問題是如何實(shí)現(xiàn)資源的查找定位,Chord(帶弦狀拓?fù)?路由方法就是一種用于 實(shí)現(xiàn)資源查找定位的方法。在傳統(tǒng)的Chord方法中,基于DHT (Distributed Hash Table, 分布式哈希表)結(jié)構(gòu)化P2P系統(tǒng)采用統(tǒng)一的相容哈希算法,建立節(jié)點(diǎn)的N0deID(N0de Identification,節(jié)點(diǎn)標(biāo)識符)與資源關(guān)鍵字的KeyID (Key Identification,關(guān)鍵字標(biāo)識 符)之間的一一對應(yīng)關(guān)系,從而實(shí)現(xiàn)資源的存儲和查找。傳統(tǒng)的Chord拓?fù)浣Y(jié)構(gòu)如圖1所 示,節(jié)點(diǎn)的路由信息表包括節(jié)點(diǎn)的關(guān)鍵字信息、起始節(jié)點(diǎn)信息、區(qū)間節(jié)點(diǎn)信息和后繼節(jié)點(diǎn)信 息,節(jié)點(diǎn)η的查找表的第i個(gè)表項(xiàng)包含節(jié)點(diǎn)η的后繼節(jié)點(diǎn)信息I I = successor (n+2") mod (2m),1 彡 i 彡 m(1)
其中NodeID和KeyID的位長m = 6。在圖1中,節(jié)點(diǎn)N8的后繼節(jié)點(diǎn)為附4,路由 節(jié)點(diǎn)信息包括A+fj+〗1,’"S+ "1:資源信息存儲在KeyID號最近的后繼節(jié)點(diǎn)上,在圖1 中表示為節(jié)點(diǎn)N14和N42存儲了相應(yīng)的關(guān)鍵字標(biāo)識符KeyID為KlO和K38的資源信息,節(jié) 點(diǎn)N32存儲了 K24和K30。Chord路由方法通過把網(wǎng)絡(luò)虛擬成單一環(huán)形的拓?fù)浣Y(jié)構(gòu),完成了信息的快速搜索, 提高了查詢效率,但是存在以下兩方面的問題一是Chord網(wǎng)絡(luò)的繞路(Detouring)問題, 二是未考慮節(jié)點(diǎn)性能,包括計(jì)算能力、存儲能力、網(wǎng)絡(luò)帶寬等性能上的差異,嚴(yán)重影響了網(wǎng) 絡(luò)的穩(wěn)定性和搜索信息的速度。目前已經(jīng)有一些文獻(xiàn)提出對Chord路由方法進(jìn)行改進(jìn),其中最有代表性的是文獻(xiàn) 《一種改進(jìn)的chord路由算法》(姜守旭,韓希先,李建中.一種改進(jìn)的chord路由算法[J]. 計(jì)算機(jī)應(yīng)用,2006,26 (4) 918-921.),它的基本思想是去掉路由表中的冗余信息,在Chord 的長度為m的初始路由表構(gòu)建完畢以后,對表中的元素進(jìn)行再次操作,刪除表中冗余信息, 增加有效的路由信息以提高系統(tǒng)的性能。但是它存在的問題是平均查詢路徑長度沒有明
顯變化,仍為|log2#。文獻(xiàn)《Dual-chord:—種更加有效的分布式哈希表》(張浩,金海,
聶江武等.Dual-chord: —種更加有效的分布式哈希表[J].小型微型計(jì)算機(jī)系統(tǒng),2006, 27(8) =1450—1454.)提出的雙向路由Chord是從前節(jié)點(diǎn)的順時(shí)針和逆時(shí)針方向同時(shí)構(gòu)建 路由表,減少了平均查詢路由長度,同時(shí)每個(gè)節(jié)點(diǎn)路由表是原始的兩倍,增大了網(wǎng)絡(luò)傳輸?shù)?信息量。文獻(xiàn)《基于小世界層次分布式路由模型研究》(朱曉妹,周規(guī),黃桂敏.基于小世界 層次分布式路由模型研究[J].計(jì)算機(jī)工程,2006,32(15) :120—122.)根據(jù)IPv6網(wǎng)絡(luò)中 前綴分配有很強(qiáng)的層次性的特點(diǎn),利用哈希節(jié)點(diǎn)IP地址的前綴和剩余部分來分段構(gòu)建節(jié) 點(diǎn)的標(biāo)識符。由于具有相同前綴的節(jié)點(diǎn)物理空間相近,實(shí)現(xiàn)了邏輯空間和物理拓?fù)涞挠行呛?,更好地將同一個(gè)域的節(jié)點(diǎn)分配在一起,在一定程度上提高了查詢的效率,但是也破壞 了原有Chord的負(fù)載均衡性。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種搜索效率高的基于物理位置的分 層Chord路由方法。為此,本發(fā)明提供了一種基于物理位置的分層Chord路由方法,包括以下步驟 A.由至少一個(gè)基站和屬于基站的節(jié)點(diǎn)構(gòu)成外層Chord環(huán),節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符由基站的物理 位置標(biāo)識和經(jīng)過哈希運(yùn)算的該節(jié)點(diǎn)的邏輯位置標(biāo)識組成;B.計(jì)算外層Chord環(huán)中節(jié)點(diǎn)的能 力評分為W = aB+bS+cT+dC+eK,其中,B為節(jié)點(diǎn)網(wǎng)絡(luò)帶寬評分,S為節(jié)點(diǎn)可靠度評分,T為節(jié) 點(diǎn)平均在線時(shí)間評分,C為節(jié)點(diǎn)計(jì)算能力評分,K為節(jié)點(diǎn)存儲能力評分,a、b、C、d、e為加權(quán)系 數(shù),將能力評分W高于預(yù)設(shè)閾值的節(jié)點(diǎn)設(shè)置為超級節(jié)點(diǎn),由超級節(jié)點(diǎn)和基站構(gòu)成內(nèi)層Chord 環(huán)并建立路由表; C.查詢起始節(jié)點(diǎn)到資源的路由,根據(jù)資源的關(guān)鍵字標(biāo)識符查詢到對應(yīng)的 目標(biāo)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符,如果起始節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符與目標(biāo)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符相同,將起 始節(jié)點(diǎn)記為目標(biāo)節(jié)點(diǎn),查詢結(jié)束;否則,如果起始節(jié)點(diǎn)所屬的超級節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符與目標(biāo) 節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符相同,就將超級節(jié)點(diǎn)記為目標(biāo)節(jié)點(diǎn),查詢結(jié)束;否則,查詢目標(biāo)節(jié)點(diǎn)的節(jié) 點(diǎn)標(biāo)識符中物理位置標(biāo)識以找出距離資源最近的超級節(jié)點(diǎn),查詢該超級節(jié)點(diǎn)連接的節(jié)點(diǎn), 直到查詢到存儲資源的目標(biāo)節(jié)點(diǎn),將從起始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路由路徑加入路由表中。根據(jù)本發(fā)明的一個(gè)方面,基于物理位置的分層Chord路由方法還包括新節(jié)點(diǎn)加入 步驟,新節(jié)點(diǎn)加入步驟為獲取新節(jié)點(diǎn)所屬基站的物理位置標(biāo)識和新節(jié)點(diǎn)的邏輯位置標(biāo)識, 組成新節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符;選擇一個(gè)外層Chord環(huán)中的節(jié)點(diǎn)作為新節(jié)點(diǎn)的引導(dǎo)節(jié)點(diǎn),如果 引導(dǎo)節(jié)點(diǎn)為超級節(jié)點(diǎn),引導(dǎo)節(jié)點(diǎn)為新節(jié)點(diǎn)提供前趨節(jié)點(diǎn)信息和后繼節(jié)點(diǎn)信息,如果引導(dǎo)節(jié) 點(diǎn)為除超級節(jié)點(diǎn)外的普通節(jié)點(diǎn),引導(dǎo)節(jié)點(diǎn)將新節(jié)點(diǎn)的加入請求傳輸給引導(dǎo)節(jié)點(diǎn)所屬的超級 節(jié)點(diǎn)后,由該超級節(jié)點(diǎn)為新節(jié)點(diǎn)提供前趨節(jié)點(diǎn)信息和后繼節(jié)點(diǎn)信息。根據(jù)本發(fā)明的另一個(gè)方面,基于物理位置的分層Chord路由方法還包括節(jié)點(diǎn)退出 步驟,節(jié)點(diǎn)退出步驟為如果超級節(jié)點(diǎn)需要退出網(wǎng)絡(luò),超級節(jié)點(diǎn)向前趨超級節(jié)點(diǎn)和后繼超級 節(jié)點(diǎn)發(fā)出退出信息并轉(zhuǎn)交自身保存的信息,同時(shí)向超級節(jié)點(diǎn)所屬的基站發(fā)出退出信息;如 果除超級節(jié)點(diǎn)外的普通節(jié)點(diǎn)需要退出網(wǎng)絡(luò),普通節(jié)點(diǎn)向前趨節(jié)點(diǎn)發(fā)出退出信息,并將自身 保存的信息轉(zhuǎn)交給后繼節(jié)點(diǎn)。根據(jù)本發(fā)明的又一個(gè)方面,基于物理位置的分層Chord路由方法還包括熱點(diǎn)資源 管理步驟,熱點(diǎn)資源管理步驟為節(jié)點(diǎn)周期性地統(tǒng)計(jì)自身管理的資源的訪問情況,將一個(gè)周 期內(nèi)訪問次數(shù)超過網(wǎng)絡(luò)中同一周期內(nèi)所有資源平均訪問次數(shù)的資源記為熱點(diǎn)資源,發(fā)送到 節(jié)點(diǎn)所屬的超級節(jié)點(diǎn)上,由超級節(jié)點(diǎn)將資源復(fù)制到同一基站下的所有超級節(jié)點(diǎn)上,各超級 節(jié)點(diǎn)建立熱點(diǎn)資源索引表。根據(jù)本發(fā)明的又一個(gè)方面,熱點(diǎn)資源管理步驟還包括超級節(jié)點(diǎn)周期性地統(tǒng)計(jì)熱 點(diǎn)資源索引表中熱點(diǎn)資源的訪問情況,將一個(gè)周期內(nèi)訪問次數(shù)小于其自身前三個(gè)周期內(nèi)平 均訪問次數(shù)的50%的熱點(diǎn)資源從熱點(diǎn)資源索引表中刪除。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是該基于物理位置的分層Chord路由方法 將基站引入到Chord環(huán)中,使得節(jié)點(diǎn)標(biāo)識符中包含了實(shí)際物理位置信息,查詢時(shí)先確定資源屬于哪個(gè)基站的范圍內(nèi),不再需要遍歷整個(gè)網(wǎng)絡(luò)的所有節(jié)點(diǎn),從而加快了資源的快速定 位,同時(shí)引入超級節(jié)點(diǎn)的概念,提取性能較高的節(jié)點(diǎn)由基站直接管理,而其他普通節(jié)點(diǎn)由超 級節(jié)點(diǎn)進(jìn)行管理,充分利用了超級節(jié)點(diǎn)優(yōu)秀的工作性能,提高了網(wǎng)絡(luò)的搜索速度,在基站失 效的情況下,節(jié)點(diǎn)之間還能夠通過超級節(jié)點(diǎn)進(jìn)行聯(lián)系和通信,提高了網(wǎng)絡(luò)的穩(wěn)定性和安全 性。
本發(fā)明上述的各方面優(yōu)點(diǎn),可以從下面附圖和對實(shí)例的描述中將變得明顯和容易 理解,其中圖1為現(xiàn)有技術(shù)中的Chord環(huán)的結(jié)構(gòu)示意圖;圖2為本發(fā)明的PLHChord環(huán)的結(jié)構(gòu)示意圖;圖3為本發(fā)明的基于物理位置的分層Chord路由方法的流程圖;圖4為本發(fā)明的基于物理位置的分層Chord路由方法中新節(jié)點(diǎn)加入步驟的流程 圖;圖5為本發(fā)明的基于物理位置的分層Chord路由方法的平均路由跳數(shù)示意圖;圖6為本發(fā)明的基于物理位置的分層Chord路由方法的平均路由延遲伸展度示意 圖。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號表示相同或類似的器件或具有相同或類似功能的器件。下面通過參考附 圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。圖 2 示出的是本發(fā)明的 PLHChord(Physical Location Based HierarchicalChord,基于物理位置的分層Chord環(huán),唐朝偉、陳宏旦、王恒,重慶大學(xué),邵艷 清,重慶電子工程職業(yè)學(xué)院)的體系結(jié)構(gòu)。在PLHChord模型中,整個(gè)網(wǎng)絡(luò)外層Chord環(huán)是 由至少一個(gè)基站和屬于這些基站的節(jié)點(diǎn)彼此互連構(gòu)成的,內(nèi)層是由超級節(jié)點(diǎn)和基站組成的 Chord環(huán),由節(jié)點(diǎn)的NodeID號可以看出節(jié)點(diǎn)是根據(jù)實(shí)際物理地址劃分的,需要周期性的向 基站來檢測自己的地理位置來變化NodeID中用于表示實(shí)際物理位置的高位信息。Chord環(huán) 中的節(jié)點(diǎn)依然按照Chord協(xié)議的規(guī)則組成結(jié)構(gòu)化的P2P網(wǎng)絡(luò),當(dāng)同一個(gè)基站內(nèi)的節(jié)點(diǎn)之間 沒有資源的時(shí)候可以通過超級節(jié)點(diǎn)來完成通信。根據(jù)本發(fā)明的分層Chord路由方法,包括以下步驟A.首先由至少一個(gè)基站和屬于基站的節(jié)點(diǎn)構(gòu)成外層Chord環(huán),節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符 由基站的物理位置標(biāo)識和經(jīng)過哈希運(yùn)算的該節(jié)點(diǎn)的邏輯位置標(biāo)識組成;B.計(jì)算外層Chord環(huán)中節(jié)點(diǎn)的能力評分為W = aB+bS+cT+dC+eK(2)其中,B為節(jié)點(diǎn)網(wǎng)絡(luò)帶寬評分,S為節(jié)點(diǎn)可靠度評分,T為節(jié)點(diǎn)平均在線時(shí)間評 分,C為節(jié)點(diǎn)計(jì)算能力評分,K為節(jié)點(diǎn)存儲能力評分,a、b、c、d、e為加權(quán)系數(shù),將能力評 分W高于預(yù)設(shè)閾值的節(jié)點(diǎn)設(shè)置為超級節(jié)點(diǎn),由超級節(jié)點(diǎn)和基站構(gòu)成內(nèi)層Chord環(huán)。在本 發(fā)明的一個(gè)實(shí)施例中,評分B、S、T、C和K分別由1、2、3、4分來表示,其中4分表示能力最高,1分表示能力最低,加權(quán)系數(shù)a、b、C、d、e設(shè)置為1、1· 5、3、2、2,如果一個(gè)節(jié)點(diǎn)N的各 項(xiàng)得分依次為B = 2、S = 2、T = 4、C = 3和K = 4,那么這個(gè)節(jié)點(diǎn)N的能力評分為W = 2X1+2X1. 5+4X3+3X2+4X2 = 31。確定超級節(jié)點(diǎn)的閾值根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境決定,比如一 個(gè)基站包含有1024個(gè)節(jié)點(diǎn),一個(gè)超級節(jié)點(diǎn)的能力足以管理256個(gè)節(jié)點(diǎn),那么一共只需要4 個(gè)超級節(jié)點(diǎn),此時(shí)將所有節(jié)點(diǎn)的能力評分W按從大到小進(jìn)行排序,令閾值等于其中第5位的 W,從而將高于閾值的4個(gè)節(jié)點(diǎn)提取為超級節(jié)點(diǎn)??梢钥闯?,超級節(jié)點(diǎn)是基站所連接的節(jié)點(diǎn)中具有很好的計(jì)算能力、存儲能力和網(wǎng) 絡(luò)帶寬的高性能節(jié)點(diǎn),因此它被賦予了更多的職責(zé),也對網(wǎng)絡(luò)性能起到了更大的影響作用。 超級節(jié)點(diǎn)建立路由表以保存信息,在外層負(fù)責(zé)保存與其前趨超級節(jié)點(diǎn)之間的普通節(jié)點(diǎn)和 本基站中超級節(jié)點(diǎn)的信息,在內(nèi)層根據(jù)Chord路由保存其他超級節(jié)點(diǎn)的信息,同時(shí)需要復(fù) 制目前網(wǎng)絡(luò)中流行的文件,新節(jié)點(diǎn)的加入也需要超級節(jié)點(diǎn)的協(xié)助。在PLHChord環(huán)中,一 個(gè)基站負(fù)責(zé)管理其后到下一個(gè)基站之前的所有節(jié)點(diǎn),具體而言,基站直接管理控制超級節(jié) 點(diǎn),再由每個(gè)超級節(jié)點(diǎn)來管理一定范圍內(nèi)的包含自身在內(nèi)的節(jié)點(diǎn),還是以上述包含1024個(gè) 節(jié)點(diǎn)的基站為例,如果節(jié)點(diǎn)Ni、N300、N700、NlOOO為超級節(jié)點(diǎn),那么該基站直接管理超級 節(jié)點(diǎn)Ni、N300、N700、附000,再由超級節(jié)點(diǎn)附管理節(jié)點(diǎn)附 N256,超級節(jié)點(diǎn)N300管理節(jié) 點(diǎn)N257 N512,超級節(jié)點(diǎn)N700管理節(jié)點(diǎn)N513 N768,超級節(jié)點(diǎn)N1000管理節(jié)點(diǎn)N769 N1024。C.然后查詢起始節(jié)點(diǎn)到資源的路由,根據(jù)資源的關(guān)鍵字標(biāo)識符查詢到對應(yīng)的目 標(biāo)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符,如果起始節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符與目標(biāo)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符相同,將起始 節(jié)點(diǎn)記為目標(biāo)節(jié)點(diǎn),查詢結(jié)束;否則,如果起始節(jié)點(diǎn)所屬的超級節(jié)點(diǎn)的 節(jié)點(diǎn)標(biāo)識符與目標(biāo)節(jié) 點(diǎn)的節(jié)點(diǎn)標(biāo)識符相同,就將超級節(jié)點(diǎn)記為目標(biāo)節(jié)點(diǎn),查詢結(jié)束;否則,查詢目標(biāo)節(jié)點(diǎn)的節(jié)點(diǎn) 標(biāo)識符中基站的物理位置標(biāo)識以找出距離資源最近的超級節(jié)點(diǎn),查詢該超級節(jié)點(diǎn)連接的節(jié) 點(diǎn),直到查詢到存儲資源的目標(biāo)節(jié)點(diǎn),將從起始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路由路徑加入路由表中。圖3示出的是本發(fā)明的分層Chord路由方法的流程。一個(gè)節(jié)點(diǎn)N要查詢關(guān)鍵字 key的資源的路由過程為a.首先找到與哈希運(yùn)算后的資源的關(guān)鍵字標(biāo)識符KeyID相對應(yīng)的節(jié)點(diǎn)標(biāo)識符 NodeID,再查詢起始節(jié)點(diǎn)N的Local表,判斷關(guān)鍵字key是否落在Local表范圍內(nèi),Local表 是節(jié)點(diǎn)的本地路由表,也就是節(jié)點(diǎn)的指針表(Finger表),存儲的是連接其他節(jié)點(diǎn)的路由信 息。如果是就返回相應(yīng)目標(biāo)節(jié)點(diǎn),查詢結(jié)束,否則轉(zhuǎn)向b。b.通過supernode表將查詢發(fā)送到超級節(jié)點(diǎn)。超級節(jié)點(diǎn)查詢其Local表,Cache 表和HotResource表。Cache表是緩存路由信息表,同時(shí)也可以把下載次數(shù)多的、比較熱 點(diǎn)的資源信息存儲到HotResource表,緩存一定數(shù)量的信息,碰到熱點(diǎn)信息的時(shí)候直接從 HotResource表中查找即可,節(jié)省時(shí)間,提高效率。如果找到就返回目標(biāo)節(jié)點(diǎn)地址,查找結(jié) 束。否則轉(zhuǎn)向C。c.超級節(jié)點(diǎn)查詢其Finger表和Bucket表,分別找出一個(gè)在關(guān)鍵字key之前且距 離key最近的超級節(jié)點(diǎn)。Bucket表是按順序存儲的節(jié)點(diǎn)的緩存信息表,利用NodeID中包含 的物理位置信息可以快速判定出資源位于哪個(gè)基站的范圍內(nèi),提高了搜索速度。d.該超級節(jié)點(diǎn)將查詢其Local表,Cache表和HotResource表等本地信息,把信息 發(fā)送給該起始節(jié)點(diǎn)。
e.當(dāng)一個(gè)目標(biāo)節(jié)點(diǎn)收到查詢時(shí),它將在Bucket表中緩存起始節(jié)點(diǎn)地址信息。當(dāng)一 個(gè)查詢完成時(shí),節(jié)點(diǎn)通知超級節(jié)點(diǎn)及其副本緩存查詢成功的節(jié)點(diǎn)信息。當(dāng)表填充滿時(shí)利用 LRU (Least Recently Used,最近最久未使用法則)替換策略管理表中的信息。圖4示出的是本發(fā)明的分層Chord路由方法中新節(jié)點(diǎn)加入步驟,新節(jié)點(diǎn)加入步驟 為獲取新節(jié)點(diǎn)N所屬基站的物理位置標(biāo)識和新節(jié)點(diǎn)的邏輯位置標(biāo)識,組成新節(jié)點(diǎn)的節(jié)點(diǎn) 標(biāo)識符NodeID ;選擇一個(gè)外層Chord環(huán)中的節(jié)點(diǎn)M作為新節(jié)點(diǎn)N的引導(dǎo)節(jié)點(diǎn),如果引導(dǎo)節(jié) 點(diǎn)M為超級節(jié)點(diǎn),引導(dǎo)節(jié)點(diǎn)M為新節(jié)點(diǎn)N提供前趨節(jié)點(diǎn)信息和后繼節(jié)點(diǎn)信息,如果引導(dǎo)節(jié)點(diǎn) M為除超級節(jié)點(diǎn)外的普通節(jié)點(diǎn),引導(dǎo)節(jié)點(diǎn)M將新節(jié)點(diǎn)N的加入請求傳輸給引導(dǎo)節(jié)點(diǎn)M所屬的 超級節(jié)點(diǎn)后,由該超級節(jié)點(diǎn)為新節(jié)點(diǎn)提供前趨節(jié)點(diǎn)信息和后繼節(jié)點(diǎn)信息。新節(jié)點(diǎn)N的加入 算法與現(xiàn)有Chord模型中的節(jié)點(diǎn)加入算法類似,只是由超級節(jié)點(diǎn)來進(jìn)行管理控制,提高了 P2P網(wǎng)絡(luò)的動態(tài)性。分層Chord路由方法還包括節(jié)點(diǎn)退出步驟,節(jié)點(diǎn)退出步驟為如果超級節(jié)點(diǎn)需要 退出網(wǎng)絡(luò),因?yàn)椴坏銎胀ü?jié)點(diǎn)退出網(wǎng)絡(luò)所做的工作來保持Chord環(huán)的完整性,而且還 要維護(hù)內(nèi)層Chord環(huán)的連接關(guān)系,所以超級節(jié)點(diǎn)要向其前趨超級節(jié)點(diǎn)和后繼超級節(jié)點(diǎn)發(fā)出 退出信息并轉(zhuǎn)交自身保存的信息,同時(shí)向超級節(jié)點(diǎn)所屬的基站發(fā)出退出信息;如果除超級 節(jié)點(diǎn)外的普通節(jié)點(diǎn)需要退出網(wǎng)絡(luò),只需遵循Chord協(xié)議的節(jié)點(diǎn)退出規(guī)則退出它所在基站節(jié) 點(diǎn)的Chord環(huán)即可,因?yàn)樵赑LHChord模型中,普通節(jié)點(diǎn)只需維護(hù)它在本站中的位置,無需知 道其他基站節(jié)點(diǎn)的信息,與其他站內(nèi)節(jié)點(diǎn)沒有直接的聯(lián)系,因此普通節(jié)點(diǎn)只需向其前趨節(jié) 點(diǎn)發(fā)出退出信息,并將自身保存的信息轉(zhuǎn)交給其后繼節(jié)點(diǎn)。
在實(shí)際查詢過程中,某些信息可能被頻繁地查詢而形成熱點(diǎn)資源,因此分層Chord 路由方法還包括熱點(diǎn)資源管理步驟,熱點(diǎn)資源管理步驟為節(jié)點(diǎn)周期性地統(tǒng)計(jì)自身管理的 資源的訪問情況,將一個(gè)周期內(nèi)訪問次數(shù)超過網(wǎng)絡(luò)中所有資源平均訪問次數(shù)的資源記為熱 點(diǎn)資源,發(fā)送到節(jié)點(diǎn)所屬的超級節(jié)點(diǎn)上,由超級節(jié)點(diǎn)將資源復(fù)制到同一基站下的所有超級 節(jié)點(diǎn)上,各超級節(jié)點(diǎn)建立熱點(diǎn)資源索引表。當(dāng)某個(gè)查詢路由到該基站時(shí),可以選擇其中一個(gè) 超級節(jié)點(diǎn)進(jìn)行訪問,可以減輕其他超級節(jié)點(diǎn)的負(fù)擔(dān)。熱點(diǎn)資源索引表保存從別的超級節(jié)點(diǎn)冗余過來的資源信息,超級節(jié)點(diǎn)周期性地統(tǒng) 計(jì)熱點(diǎn)資源索引表中熱點(diǎn)資源的訪問情況,如果某個(gè)熱點(diǎn)資源在一個(gè)周期內(nèi)訪問次數(shù)小于 其自身前三個(gè)周期內(nèi)平均訪問次數(shù)的50%,說明它已經(jīng)不能再被認(rèn)為是熱點(diǎn)資源,需要將 其從熱點(diǎn)資源索引表中刪除。采用仿真試驗(yàn)來檢驗(yàn)本發(fā)明點(diǎn)分層PLHChord路由方法的工作性能,仿真試驗(yàn)中 米用 BRITG (Boston university Representative Internet Topology Generator,波士頓 大學(xué)的典型網(wǎng)絡(luò)拓?fù)渖善?來模擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),BRITG生成的底層網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)與實(shí) 際網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)十分相似。路由結(jié)構(gòu)使用Waxman模式。本仿真試驗(yàn)環(huán)境配置如下一臺 pc機(jī),其cpu為Intel P42. 6GHz,內(nèi)存為IG RAM,操作系統(tǒng)為Redhat linux9. O。仿真軟件 開發(fā)語言C++,開發(fā)工具ECLIPSE3. 2。安裝了基于p2psim-0. 3修改的覆蓋網(wǎng)仿真器,m = 32,故標(biāo)識空間為0 232-1。仿真試驗(yàn)中通過p2psim比較原來的可擴(kuò)展Chord路由協(xié)議和改進(jìn)后的PLHChord 路由協(xié)議在資源定位性能方面的差別。p2psim運(yùn)行之后,從它的輸出可以得到很多重要的 數(shù)據(jù),包括平均路由跳數(shù)、平均查找延遲時(shí)間等,在這里只需要考慮這兩方面的數(shù)據(jù)。
平均查找路由跳數(shù)是評價(jià)P2P系統(tǒng)的重要指標(biāo),結(jié)構(gòu)化DHT算法Chord模型的平 均查找路由跳數(shù)是|
為網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)。PLHChord模型是基于物理位置的分層網(wǎng)絡(luò)模型,利用基站物理位置ID實(shí)現(xiàn)了節(jié) 點(diǎn)的NodeID和資源的KeyID的相互匹配,提高了物理網(wǎng)絡(luò)的位置距離與覆蓋層邏輯排列的 一致性,通過內(nèi)層的查找減少了查詢的路由跳數(shù)。假設(shè)一個(gè)超級節(jié)點(diǎn)管理^-個(gè)普通節(jié)點(diǎn),那么PLHChord模型下路由路徑為從普 通節(jié)點(diǎn)到內(nèi)層超級節(jié)點(diǎn)到資源所屬節(jié)點(diǎn)。最大路由跳數(shù)為
如果超級
節(jié)點(diǎn)為基站節(jié)點(diǎn)則通過核心網(wǎng)一跳到所屬資源基站節(jié)點(diǎn),跳數(shù)為4。當(dāng)Mn。de取16、64、256, 以及隨機(jī)模擬情況時(shí)進(jìn)行實(shí)驗(yàn)仿真。采用512、1024、2048、4096、6144、8192、10240 —共七 組不同數(shù)量規(guī)模的節(jié)點(diǎn)分別來進(jìn)行仿真試驗(yàn),其中每個(gè)節(jié)點(diǎn)分別存儲50個(gè)文件,每個(gè)節(jié)點(diǎn) 平均隨機(jī)請求2次。圖5示出的是不同算法下的平均路由跳數(shù)的仿真結(jié)果。從圖5中可以看出 PLHChord在平均路由跳數(shù)上比原Chord減少了 22%到38%。由于在Local表節(jié)點(diǎn)設(shè)置了 限定區(qū)間且超級節(jié)點(diǎn)包含更多的節(jié)點(diǎn)信息,其覆蓋的邏輯距離肯定比原Chord算法更加逼 近目標(biāo),故PLHChord系統(tǒng)相對于原Chord路由效率有了很大的提升。消息的端到端路由延時(shí)(end-to-end latency)是衡量P2P系統(tǒng)實(shí)際路由性能的 重要參數(shù)。由于查詢消息在覆蓋網(wǎng)絡(luò)中的所經(jīng)過的距離和在底層網(wǎng)絡(luò)中實(shí)際的距離不一 致,所以通常用平均延遲伸展度(Latency Stretch)來表示距離之間的比值。平均延遲伸 展度S定義為系統(tǒng)平均邏輯延遲與平均物理延遲的比值,具體表達(dá)式為 式中,Dchord(i, j)為邏輯網(wǎng)絡(luò)Chord下節(jié)點(diǎn)i到節(jié)點(diǎn)j之間的延時(shí),DIP(i,j)為 物理網(wǎng)絡(luò)IPdnternet Protocol,網(wǎng)絡(luò)互連協(xié)議)下節(jié)點(diǎn)i到節(jié)點(diǎn)j之間的延時(shí),Nnode為 網(wǎng)絡(luò)節(jié)點(diǎn)個(gè)數(shù)。若延遲伸展度大,則說明覆蓋網(wǎng)絡(luò)和底層網(wǎng)絡(luò)差異很大,反之,延遲伸展度 越小,說明覆蓋網(wǎng)絡(luò)與底層網(wǎng)絡(luò)越一致。在實(shí)際Internet網(wǎng)絡(luò)中,域內(nèi)的延時(shí)總是遠(yuǎn)遠(yuǎn)小 于域間延時(shí)。因此假定站內(nèi)跳數(shù)開銷為20ms,而站間跳數(shù)開銷為100ms。同樣為了實(shí)驗(yàn) 數(shù)據(jù)的準(zhǔn)確性,采用256、1024、2048、4096、6000、8192、10000等七組不同規(guī)模的情況進(jìn)行 1000次路由查找操作,仿真結(jié)果如圖6所示。從圖6中可以看出,隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)的增加, HChord(Hierarchical Chord,分層Chord環(huán))路由方法由于考慮了超級節(jié)點(diǎn)的影響,使得 其工作性能明顯好于Chord路由方法,而PLHChord路由方法綜合考慮了超級節(jié)點(diǎn)和基站對 網(wǎng)絡(luò)性能的影響,其工作性能相比于HChord路由方法又有了進(jìn)一步的提高。由于節(jié)點(diǎn)標(biāo)識符NodeID哈希值的高位信息表示的是基站物理位置信息,根據(jù)資 源KeyID可以找到相應(yīng)基站位置,查詢路徑從起始查詢節(jié)點(diǎn)到所屬基站節(jié)點(diǎn)到核心網(wǎng)再到 資源所屬基站節(jié)點(diǎn)最后到目標(biāo)資源節(jié)點(diǎn),基站節(jié)點(diǎn)之間的路由基本是一致的。PLHChord的 平均延遲伸展度基本趨于穩(wěn)定,節(jié)點(diǎn)物理距離越遠(yuǎn)延遲伸展度反而更小。在實(shí)際移動P2P網(wǎng)絡(luò)環(huán)境中,節(jié)點(diǎn)之間的通信會受到多徑衰落、障礙物、節(jié)點(diǎn)的移 動速度快等多種不利因素的影響,使得通信不暢,導(dǎo)致查找時(shí)間延長或者通信中斷,在經(jīng)過節(jié)點(diǎn)判斷后認(rèn)定節(jié)點(diǎn)失效,需選擇新的路由路徑。這兩種情況下使得PLHChord路由方法整 個(gè)資源查詢時(shí)間延長,但對平均路由跳數(shù)和平均延遲伸展度沒有太大影響。相反,PLHChord 路由方法利用超級節(jié)點(diǎn)能更快的更新路由表,選擇新的路徑,比Chord路由方法更迅捷,受 網(wǎng)絡(luò)環(huán)境的影響更小。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種基于物理位置的分層Chord路由方法,其特征在于包括以下步驟A.由至少一個(gè)基站和屬于所述基站的節(jié)點(diǎn)構(gòu)成外層Chord環(huán),所述節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符由基站的物理位置標(biāo)識和經(jīng)過哈希運(yùn)算的該節(jié)點(diǎn)的邏輯位置標(biāo)識組成;B.計(jì)算所述外層Chord環(huán)中節(jié)點(diǎn)的能力評分為W=aB+bS+cT+dC+eK,其中,B為節(jié)點(diǎn)網(wǎng)絡(luò)帶寬評分,S為節(jié)點(diǎn)可靠度評分,T為節(jié)點(diǎn)平均在線時(shí)間評分,C為節(jié)點(diǎn)計(jì)算能力評分,K為節(jié)點(diǎn)存儲能力評分,a、b、c、d、e為加權(quán)系數(shù),將能力評分W高于預(yù)設(shè)閾值的節(jié)點(diǎn)設(shè)置為超級節(jié)點(diǎn),由所述超級節(jié)點(diǎn)和所述基站構(gòu)成內(nèi)層Chord環(huán)并建立路由表;C.查詢起始節(jié)點(diǎn)到資源的路由,根據(jù)所述資源的關(guān)鍵字標(biāo)識符查詢到對應(yīng)的目標(biāo)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符,如果所述起始節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符與所述目標(biāo)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符相同,將所述起始節(jié)點(diǎn)記為目標(biāo)節(jié)點(diǎn),查詢結(jié)束;否則,如果所述起始節(jié)點(diǎn)所屬的超級節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符與所述目標(biāo)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符相同,就將所述超級節(jié)點(diǎn)記為目標(biāo)節(jié)點(diǎn),查詢結(jié)束;否則,查詢所述目標(biāo)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符中物理位置標(biāo)識以找出距離資源最近的超級節(jié)點(diǎn),查詢該超級節(jié)點(diǎn)連接的節(jié)點(diǎn),直到查詢到存儲所述資源的目標(biāo)節(jié)點(diǎn),將從所述起始節(jié)點(diǎn)到所述目標(biāo)節(jié)點(diǎn)的路由路徑加入路由表中。
2.根據(jù)權(quán)利要求1所述的基于物理位置的分層Chord路由方法,其特征在于還包括 新節(jié)點(diǎn)加入步驟,所述新節(jié)點(diǎn)加入步驟為獲取新節(jié)點(diǎn)所屬基站的物理位置標(biāo)識和新節(jié)點(diǎn)的邏輯位置標(biāo)識,組成所述新節(jié)點(diǎn)的節(jié) 點(diǎn)標(biāo)識符;選擇一個(gè)所述外層Chord環(huán)中的節(jié)點(diǎn)作為所述新節(jié)點(diǎn)的引導(dǎo)節(jié)點(diǎn),如果所述引導(dǎo)節(jié) 點(diǎn)為超級節(jié)點(diǎn),所述引導(dǎo)節(jié)點(diǎn)為所述新節(jié)點(diǎn)提供前趨節(jié)點(diǎn)信息和后繼節(jié)點(diǎn)信息,如果所述 引導(dǎo)節(jié)點(diǎn)為除超級節(jié)點(diǎn)外的普通節(jié)點(diǎn),所述引導(dǎo)節(jié)點(diǎn)將所述新節(jié)點(diǎn)的加入請求傳輸給所述 引導(dǎo)節(jié)點(diǎn)所屬的超級節(jié)點(diǎn)后,由該超級節(jié)點(diǎn)為所述新節(jié)點(diǎn)提供前趨節(jié)點(diǎn)信息和后繼節(jié)點(diǎn)信 肩、ο
3.根據(jù)權(quán)利要求1所述的基于物理位置的分層Chord路由方法,其特征在于還包括 節(jié)點(diǎn)退出步驟,所述節(jié)點(diǎn)退出步驟為如果超級節(jié)點(diǎn)需要退出網(wǎng)絡(luò),所述超級節(jié)點(diǎn)向前趨超級節(jié)點(diǎn)和后繼超級節(jié)點(diǎn)發(fā)出退出 信息并轉(zhuǎn)交自身保存的信息,同時(shí)向所述超級節(jié)點(diǎn)所屬的基站發(fā)出退出信息;如果除超級節(jié)點(diǎn)外的普通節(jié)點(diǎn)需要退出網(wǎng)絡(luò),所述普通節(jié)點(diǎn)向前趨節(jié)點(diǎn)發(fā)出退出信 息,并將自身保存的信息轉(zhuǎn)交給后繼節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1所述的基于物理位置的分層Chord路由方法,其特征在于還包括 熱點(diǎn)資源管理步驟,所述熱點(diǎn)資源管理步驟為所述節(jié)點(diǎn)周期性地統(tǒng)計(jì)自身管理的資源的訪問情況,將一個(gè)周期內(nèi)訪問次數(shù)超過網(wǎng)絡(luò) 中同一周期內(nèi)所有資源平均訪問次數(shù)的資源記為熱點(diǎn)資源,發(fā)送到所述節(jié)點(diǎn)所屬的超級節(jié) 點(diǎn)上,由所述超級節(jié)點(diǎn)將所述資源復(fù)制到同一基站下的所有超級節(jié)點(diǎn)上,各超級節(jié)點(diǎn)建立 熱點(diǎn)資源索引表。
5.根據(jù)權(quán)利要求4所述的基于物理位置的分層Chord路由方法,其特征在于所述熱 點(diǎn)資源管理步驟還包括所述超級節(jié)點(diǎn)周期性地統(tǒng)計(jì)所述熱點(diǎn)資源索弓丨表中熱點(diǎn)資源的訪問情況,將一個(gè)周期內(nèi)訪問 次數(shù)小于其自身前三個(gè)周期內(nèi)平均訪問次數(shù)的50%的熱點(diǎn)資源從所述熱點(diǎn)資源索弓丨表中刪除。
全文摘要
本發(fā)明提供了一種基于物理位置的分層Chord路由方法,該路由方法將基站的物理位置信息加入到基于DHT原理的Chord環(huán)中,同時(shí)將性能比較高的節(jié)點(diǎn)設(shè)置為超級節(jié)點(diǎn),由基站和超級節(jié)點(diǎn)構(gòu)成內(nèi)層Chord環(huán),查詢過程中可以首先判斷資源的實(shí)際物理位置范圍,避免了對整個(gè)網(wǎng)絡(luò)所有節(jié)點(diǎn)的遍歷,加快了資源的快速定位,提高了網(wǎng)絡(luò)的搜索速度,同時(shí)利用超級節(jié)點(diǎn)對其他普通節(jié)點(diǎn)進(jìn)行控制和管理,在基站失效的情況下,節(jié)點(diǎn)之間還能夠通過超級節(jié)點(diǎn)進(jìn)行聯(lián)系和通信,提高了網(wǎng)絡(luò)的穩(wěn)定性和安全性。
文檔編號H04L12/56GK101867527SQ20101021874
公開日2010年10月20日 申請日期2010年7月6日 優(yōu)先權(quán)日2010年7月6日
發(fā)明者唐朝偉, 王恒, 邵艷清, 陳宏旦 申請人:重慶大學(xué)