




已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
(計(jì)算機(jī)軟件與理論專(zhuān)業(yè)論文)基于kademlia的p2p分層資源定位模型.pdf.pdf 免費(fèi)下載
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要 摘要 近年濃p 2 p 研究升溫,而資源定位是p 2 p 網(wǎng)絡(luò)研究中的熱點(diǎn)問(wèn)題。目前,最 受磅變卷們關(guān)注戇是鏊予d i t t ( 分蠢式啥希裘) 黲繚構(gòu)化定位模型。d h t 鼴逢 簿 法茨藹分布式賒蘩委荻逶覃亍姿滾是燕,捷速、爵擴(kuò)鬣瞧葑。纛是d h t 方法只支持 關(guān)鍵字的精確查找,而不考慮節(jié)點(diǎn)的物理位置,數(shù)據(jù)沒(méi)有進(jìn)行本地化,效率受到 限制。輿型的d h t 模型瓴括:c h o r d 、p a s t r y 、c a n 積k a d e m l i a 簿。 零文在k a d e m l a 模型斡菱磷上,提出了一嵇麓次 皂的p 2 p 模壅。該系統(tǒng)分 為三層:服務(wù)提供層、越綴節(jié)點(diǎn)層釉注冊(cè)服務(wù)器麟,其中搬務(wù)掇供層和超級(jí)節(jié)點(diǎn) 層都用k a d e m l i a 協(xié)議進(jìn)行資源定位。越級(jí)節(jié)點(diǎn)層由超級(jí)節(jié)點(diǎn)構(gòu)成,超級(jí)節(jié)點(diǎn)怒山 注臻e 匿務(wù)囂搬擺繁點(diǎn)瓣熊力譚售撂建產(chǎn)生魏。服務(wù)提供層 墼饕避節(jié)點(diǎn)掏或,罄干 個(gè)蓄遂節(jié)點(diǎn)被巔分袋一個(gè)蠛。驁逶節(jié)患哭愛(ài)在蠛?;空d資灝,當(dāng)藩運(yùn)節(jié)點(diǎn)囊詢(xún)資 源失敗時(shí),內(nèi)超級(jí)節(jié)點(diǎn)幫助,在整個(gè)越級(jí)節(jié)點(diǎn)層中焱找相關(guān)資源。使用這個(gè)模型, 充分和悶丁焱詢(xún)和數(shù)掇的時(shí)間空間局部性,資源定位速度快,數(shù)據(jù)傳輸效率離。 曩綾篌露p t a n e t s i m 平臺(tái)稻j a v a 避 亍蕊囊,設(shè)計(jì)籬攀,可擴(kuò)曩注好。并繪 出了和k a d e m i i a 模型的仿真比較。 關(guān)鍵詞:p 2 p ,d h t ,k a d e m l i a ,分層模型、資源定位 a b s l 姒( 了 a 8 s t r a c t p 2 pn e t w o r kh a sb e e nb e c o m i n gah e a t e dt o p i cd r a m a t i c a l l yi nr e c e n ty e a r s r e s o u r c e sl o c a t i n gi so n eo ft h ek e yi s s u eo fp 2 pn e t w o r ka n dr e s e a r c h d h t - b a s e d d e c e n t r a l i z e ds t r u c t r u em o d l eh a sb e c o m eaf o c u si nt h er e s e a r c ha r e a + d h t - b a s e d m e t h o d se n j o yg r e a ta d v a n t a g e so fs i m p l i c i t ya n de x t e n s i b i l i t y h o w e v e r , s i n c et h ek e y w o r ds p a c ei si s o l a t e df r o mt h er e a lp h y s i c a ln e t w o r k ,t h em e t h o dw i l ld i s t u r bt h ed a t a l o c a l i t y a sar e s u l t ,w h i l et h eq u e r yl a t e n c yi sh i 曲,t h ed a t ad o w n l o a d i n gs p e e di st o w 。 t y p i c a ld h t - b a s e ds y s t e m si n c l u d ec h o r d ,p a s t r y , c a na n d k a d e m l i a t h i sp a p e rp r e s e n t sah i e r a r c h i c a lp 2 pl o c a t i n gm o d eb a s e do nk a d e m l i a t h i ss y s t e mc o n s i s t s r e s o u r c e s p r o v i d e l a y e r , s u p e r - n o d e l a y e r a n dr e g i s t e r - s e r v e r - l a y e r r e s o u r c e s p r o v i d e l a y e ra n d s u p e r - n o d e - l a y e rb o t h u s ek a d e m l i at ol o c a t er e s o u r c e s + t h es u p e r - n o d e - l a y e rc o n s i s t s o f s u p e r - n o d e s w h i c h a r ee v a l u a t e d b yr e g e s t e r s e r v e r a c c o r d i n g t ot h e i r c a p a b i l i t i e s t h e r e s o u r c e s p r o v i d e l a y e ri sc o n s t i t u t e do fb yh e m a l n o d e s s e v e r a ln o m a r l n o d e sc o n s t i t u t ead o m a i n - n o r m a l n o d e sc a no n l yl o c a t er e s o u r c e si ni t so w nd o m a i n + w h e nt h ec o n i co fan o r m a l - n o d e l o c a t i n gr e s o u r c e si ni t sd o m a i nf a i l e d ,i tc a nb eh e l p e db yt h es u m p e r - n o d et ol o o ku pr e s o u r c e si n s u p e v n o d e - l a y e f f o rt h eb e n e f i to fh i g he f f i c i e n yi nd a t al o c a t i n ga n dt r a n s p o r t i n g ,p h y s i c a l l yc l o s e n o d e sa r ed i s t r i b u t e di n t ot h es a m ed o m a i na n do u t s i d er e s o u r c e sa r er e - d i s c h a r g e di nt h el o c a l d o m a i na f t e rb e i n gd o w n l o a d e df r o mo t h e rd o m a i n t h es i m u l a t o ro ft h es y s t e mi nt h i sp a p e ri sb a s e do np l a n e t s i mp l a t f o r ma n dj a v a i nt h ee n do f t h ep a p e rw ep r o v i d et h ec o m p a r i s o no fc a p a c i t i e sb e t w e e nt h em o d e lo ft h i sp a p e ra n dk a d e m l i a k e y w o r d :p 2 p , d h t , k a d e m l i a ,h i e r a r c h y - b a s e dm o d e l ,r e s o u r c e sl o c a t i n g l i 獨(dú)創(chuàng)性聲明 本人聲明所呈交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工 作及取得的研究成果。據(jù)我所知,除了文中特別加以標(biāo)注和致謝的地 方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果,也不包含 為獲得電子科技大學(xué)或其它教育機(jī)構(gòu)的學(xué)位或證書(shū)而使用過(guò)的材料。 與我一同工作的同志對(duì)本研究所做的任何貢獻(xiàn)均已在論文中作了明 確的說(shuō)明并表示謝意。 簽名- _ 凌縫日期:2 d o i 年f 月f 日 關(guān)于論文使用授權(quán)的說(shuō)明 本學(xué)位論文作者完全了解電子科技大學(xué)有關(guān)保留、使用學(xué)位論文 的規(guī)定,有權(quán)保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和磁 盤(pán),允許論文被查閱和借閱。本人授權(quán)電子科技大學(xué)可以將學(xué)位論文 的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或 掃描等復(fù)制手段保存、匯編學(xué)位論文。 ( 保密的學(xué)位論文在解密后應(yīng)遵守此規(guī)定) 簽名:凌繾 導(dǎo)師簽名絲 日期:聊年參月彳日 1 1課題背景和研究意義 第一章引言 p 2 p 9 5 技術(shù)起源予互聯(lián)網(wǎng)應(yīng)愛(ài)爨旱嬲。雖然p 2 p 這個(gè)術(shù)語(yǔ)是璦在方發(fā)爨憋,謳 p 2 p 本身的蒸本技術(shù)豹存在時(shí)聞卻至少和u s e n e t 、f i d o n e t 這兩種非常成功豹分布 式對(duì)等網(wǎng)絡(luò)技術(shù)一樣長(zhǎng)。 u s e n e t 產(chǎn)生于1 9 7 9 年,是一種分靠式系統(tǒng),能夠?yàn)楦鱾€(gè)地方提供新聞鰓。 u s e n e t 最早蘸形是宙薄窩綦暑究生t o mt r u s c o t t 幫j i me l l i s 實(shí)戮豹。當(dāng)時(shí)著沒(méi)有 互聯(lián)網(wǎng)上“隨選”信息的概念,文件只能通過(guò)電話(huà)線(xiàn)路批量傳送,且常常選在長(zhǎng) 途費(fèi)用比較低的夜間進(jìn)行。因此,當(dāng)時(shí)的u s e n e t 若聚用集中式管理方法,效率將 曉較低下,囊然瑟然弱轆提出了一靜分?jǐn)?shù)、分毒式瓣管理方法。遮秘分布豹綴穩(wěn) 一直沿用劉今天。早期p 2 p 應(yīng)用另一個(gè)杰出的代表靛是f i d o n e t ,它和u s e n e t 類(lèi) 似,也是一個(gè)分散、分布的信息交換系統(tǒng)。t o mj e n n i n g s 于1 9 8 4 年創(chuàng)建了f i d o n e t 系統(tǒng),來(lái)讓不同b b s 系統(tǒng)中的用戶(hù)互榍交換信息。這種符合人們濡要的技術(shù),迅 速成長(zhǎng)莛來(lái),并一壹治曩j 到今天。 2 0 0 0 年,p 2 p 又一次成為業(yè)界的焦點(diǎn)。p 2 p 是網(wǎng)絡(luò)計(jì)算的一種新技術(shù),這種技 術(shù)的目的是將網(wǎng)絡(luò)中不同計(jì)算機(jī)連接在一起,并充分利用互聯(lián)網(wǎng)和w e b 站點(diǎn)中任 德闋置資澈。p 2 p 號(hào)穆羹鴦裁等弱予爨終,蓑零語(yǔ)s e r v e n t s ( s e r v e r + e l i e n t ) 羹三 伴隨著網(wǎng)絡(luò)計(jì)算領(lǐng)域的新機(jī)遇出現(xiàn)在我們面前,網(wǎng)絡(luò)計(jì)算領(lǐng)域內(nèi)某些因素的演變 正成為促使p 2 p 技術(shù)發(fā)展的源動(dòng)力,p 2 p 正在改變互聯(lián)網(wǎng)中各成爨問(wèn)的能力平街。 p 2 p 技術(shù)饅棱成互聯(lián)網(wǎng)的大多數(shù)計(jì)算機(jī)瓣能力锝到發(fā)震。只有在今天,我們強(qiáng)調(diào)的 才不是個(gè)浚,兩是各種詩(shī)算設(shè)備之閽靜平等。 所謂p 2 p 模型,是指?jìng)€(gè)網(wǎng)絡(luò)系統(tǒng),在其中每個(gè)節(jié)點(diǎn)都具有同等的能力和貴任, 所有的通訊都是對(duì)稱(chēng)的。p 2 p 模型將計(jì)辣均衡分布在每個(gè)節(jié)點(diǎn),使得一個(gè)任務(wù)怒由 多奪節(jié)點(diǎn)共溺完殘熬,苓患可戮垂篷黲燕入或遙窶溺終系統(tǒng),熬蟀謗籌戇力黢逶 應(yīng)網(wǎng)絡(luò)規(guī)模的變化。 p 2 p 系統(tǒng)的負(fù)載均衡策略讓系統(tǒng)中的節(jié)點(diǎn)均衡地承擔(dān)系統(tǒng)負(fù)載;它的自組織的 系統(tǒng)維護(hù)綴曝,能夠及時(shí)準(zhǔn)確地探測(cè)列動(dòng)態(tài)瘸絡(luò)中麴變訖,著進(jìn)行媚應(yīng)躊由鐮爨 的調(diào)整和上鼷應(yīng)用程序鞫關(guān)數(shù)據(jù)瀚調(diào)熬。因此,p 2 p 系統(tǒng)是一種可擴(kuò)展、自組織的 電子科技大學(xué)預(yù)二k 學(xué)位論文 分布式系統(tǒng)。最重要的是p 2 p 系統(tǒng)通過(guò)科學(xué)的組織路由信息,使節(jié)點(diǎn)在掌握局部 路由信息的情況下就能夠取得高效的全局路由的功能。這一點(diǎn)對(duì)p 2 p 系統(tǒng)的可擴(kuò) 展性做出了決定性的影響。 p 2 p 在互聯(lián)網(wǎng)中的應(yīng)用已非一朝一夕,經(jīng)過(guò)最早的p 2 p 系統(tǒng)雛形u s e n e t 、 f i d o n e t 等分布式信息共享軟件到以n a p s t e r “、g n u t e l l a 1 和f r e e n e t 為代表的 無(wú)結(jié)構(gòu)p 2 p 文件存儲(chǔ)系統(tǒng),再到現(xiàn)在主流的以d h t 為基礎(chǔ)的結(jié)構(gòu)化p 2 p 。文件存儲(chǔ) 系統(tǒng)c f s i t t l 、p a s t 和o c e a n s t o r e ,以及目前最流行的k a z a a 、b i t t o r r e n t 、s k y p e 等p 2 p 系統(tǒng)。p 2 p 系統(tǒng)己經(jīng)在不同的應(yīng)用范圍逐漸發(fā)展側(cè)重點(diǎn)不同的分布式技術(shù), 將給信息社會(huì)帶來(lái)不可估量的信息財(cái)富。 在過(guò)去的一年時(shí)間里,p 2 p 系統(tǒng)正迅速成為計(jì)算機(jī)業(yè)界關(guān)注的熱門(mén)話(huà)題,i n t e l 公司還發(fā)起成立了包括微軟、s l l n 和h p 等大公司在內(nèi)的p 2 p 工作組,以推動(dòng)p 2 p 進(jìn)一步發(fā)展,財(cái)富雜志更將p 2 p 列為影響i n t e r n e t 未來(lái)的四項(xiàng)科技之一。 1 2 國(guó)內(nèi)外研究動(dòng)態(tài) 1 2 1p 2 p 對(duì)等網(wǎng)絡(luò)的定義 p 2 p 。3 即是p e e rt op e e r 的縮寫(xiě),稱(chēng)為對(duì)等連接或?qū)Φ染W(wǎng)絡(luò)。p 2 p 是一種分布 式網(wǎng)絡(luò),其中的參與者共享他們所擁有的一部分硬件資源( 處理能力、存儲(chǔ)能力、 網(wǎng)絡(luò)連接能力、打印機(jī)) ,這些共享資源需要由網(wǎng)絡(luò)提供服務(wù)和內(nèi)容,能被其 他p e e r 直接訪(fǎng)問(wèn)而無(wú)需經(jīng)過(guò)中間實(shí)體。在次網(wǎng)絡(luò)中參與者既是資源( 服務(wù)和內(nèi)容) 提供著,又是資源( 服務(wù)和內(nèi)容) 獲取者。 目前,業(yè)界對(duì)p 2 p 的定義還沒(méi)有一個(gè)標(biāo)準(zhǔn)的說(shuō)法。 i n t e l 將p 2 p 計(jì)算定義為“通過(guò)系統(tǒng)間的直接交換所達(dá)成的計(jì)算機(jī)資源與信息 的共享”,這些資源與服務(wù)包括信息交換、處理器時(shí)鐘、緩存和磁盤(pán)空間等。 r o k ut e c h n o l o g i e s 公司將p 2 p 定義成“使個(gè)人與個(gè)人之間直接通信成為可能 且更便捷的網(wǎng)絡(luò)結(jié)構(gòu)”。 為了更好的理解p 2 p 網(wǎng)絡(luò),i b m 為p 2 p 做了如下定義:p 2 p 系統(tǒng)由若干互聯(lián)協(xié) 作的計(jì)算機(jī)構(gòu)成。且至少具有如下特征之一:系統(tǒng)依存于邊緣化( 非中央式服務(wù) 器) 設(shè)備的主動(dòng)協(xié)作,每個(gè)成員直接從其他成員而不是從服務(wù)器的參與中受益; 系統(tǒng)中成員同時(shí)扮演服務(wù)器與客戶(hù)端的角色;系統(tǒng)應(yīng)用的用戶(hù)能夠意識(shí)到彼此的 2 塑二至! ! 童 存在,構(gòu)戲一個(gè)虛叛躐實(shí)際的群 零。p 2 p 網(wǎng)絡(luò)愁互聯(lián)網(wǎng)整體絮梅的基礎(chǔ),互聯(lián)網(wǎng)最 基率的t c p i p 協(xié)議并沒(méi)有客戶(hù)端和服務(wù)器的概念,在通信過(guò)程中,所有豹設(shè)備都 是平等的一端。 。2 。2p 2 p 弱終戇努樊 1 2 2 1 按網(wǎng)絡(luò)結(jié)構(gòu)分類(lèi) 擻援是否有中央交務(wù)器嘲,可將p 2 p 羈絡(luò)分為混合式、分?jǐn)?shù)式幫畜怒綴節(jié)點(diǎn)豹 p 2 p 網(wǎng)絡(luò)。 混合式p 2 p 網(wǎng)絡(luò)的中央服務(wù)囂只是索引服務(wù)器,與c s 模式中的服務(wù)器不同, p 2 p 嬲終中懿素善| 黢務(wù)器靈遺錄內(nèi)容戇索弓l 翥節(jié)點(diǎn)懿必要售慧,轆韻節(jié)點(diǎn)之瓣建立 連接,而內(nèi)容本身存儲(chǔ)在節(jié)點(diǎn)中,內(nèi)容的傳送只在節(jié)點(diǎn)之間進(jìn)行,不通過(guò)服務(wù)器。 如n a p s t e r 、b t 、e d o n k e y 、e i u l e 、q q 等?;旌鲜絧 2 p 網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)如圖1 1 所示。 p e e x 2 圈l 。l :瀨會(huì)式p 2 p 匏潮絡(luò)李五羚結(jié)鞠 分散式p 2 p 網(wǎng)絡(luò)沒(méi)有服務(wù)器,通過(guò)基于p 2 p 仂- 議的客戶(hù)端軟件搜索網(wǎng)絡(luò)中存 在的對(duì)等節(jié)點(diǎn),節(jié)點(diǎn)之間可直接建立連接,每個(gè)節(jié)點(diǎn)都是完全平等的,如 g n u e l l 0 瑚。分觳式p 2 p 夔弱終臻癸結(jié)穩(wěn)魏舀l + 2 襞示。 l b 子科技大學(xué)碩一i 二學(xué)位論文 p e e r 圖l 2 :分散式p 2 p 的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) 有超級(jí)節(jié)點(diǎn)的p 2 p 網(wǎng)絡(luò)中,有著高網(wǎng)速( 特別是很高的上行速率) 和高性能的 計(jì)算機(jī)被自動(dòng)設(shè)置為超級(jí)節(jié)點(diǎn)。超級(jí)節(jié)點(diǎn)作為其它用戶(hù)的索引服務(wù)器。隨著節(jié)點(diǎn) 的頻繁加入和退出,超級(jí)節(jié)點(diǎn)有著很大的動(dòng)態(tài)性,如f a s t t r a c k 。有超級(jí)節(jié)點(diǎn)的 p 2 p 的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1 3 所示。 s n :超級(jí)節(jié)點(diǎn) 圖1 3 :帶超級(jí)節(jié)點(diǎn)p 2 p 的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) 1 2 2 2 按照內(nèi)容與網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的關(guān)系分類(lèi) 根據(jù)網(wǎng)絡(luò)中存儲(chǔ)的內(nèi)容與網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是否相關(guān),可將p 2 p 網(wǎng)絡(luò)分為結(jié)構(gòu)化、 4 剃縟囂 圖2 1 :d h t 技術(shù)的基本概念 基于d h t 分布式h a s h 表技術(shù)是與應(yīng)用無(wú)關(guān)的技術(shù);因?yàn)閐 h t 層單獨(dú)加入在 應(yīng)用層和下層通信層之間,可以不考慮具體的應(yīng)用,只利用d h t 層負(fù)責(zé)上層數(shù)據(jù) 和下層通信節(jié)點(diǎn)之間查詢(xún)和插k 1 8 。利用h a s h 函數(shù)得到的關(guān)鍵字并不能反映數(shù)據(jù) 的含義,具體關(guān)鍵字的產(chǎn)生,又完全取決于應(yīng)用層的開(kāi)發(fā)者。 d h t 作為應(yīng)用層的接口如圖2 2 。d h t 系統(tǒng)基本的操作就是l o o k u p ( k e y l 。 由于系統(tǒng)中的每一個(gè)節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)一定范圍的關(guān)鍵字,通過(guò)l o o k u p ( k e y ) 操作返回 一個(gè)存儲(chǔ)該關(guān)鍵字節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符( n o d e l d ) ,這個(gè)操作允許節(jié)點(diǎn)根據(jù)關(guān)鍵字進(jìn) 行存儲(chǔ)( p u t ) 和讀取( g e t ) 。通過(guò)d h t 層的l o o k u p ( k e y ) 操作,可以把應(yīng)用層的 數(shù)據(jù)均勻分布在網(wǎng)絡(luò)的各個(gè)節(jié)點(diǎn)內(nèi),這種方法使下層網(wǎng)絡(luò)完全不中心控制。 應(yīng)用層 ;e r t ( k e y , d a t a ) ll o o k u p ( k e y ) fl p 盯層 圖2 2 :d h t 層的操作 d h t 作為應(yīng)用層接口不僅簡(jiǎn)單,而且與傳統(tǒng)的應(yīng)用層接口相比還具有更多的 優(yōu)點(diǎn)如表2 1 。傳統(tǒng)應(yīng)用曾接口u d p i p 是以通信為中心的接口,一定要具體指出 要查找和發(fā)送數(shù)據(jù)的節(jié)點(diǎn)i p 地址。由于現(xiàn)在的i n t e m e t 過(guò)分依賴(lài)d n s 是網(wǎng)關(guān),只 要其中有一個(gè)服務(wù)出現(xiàn)“問(wèn)題”,相應(yīng)的其他任何服務(wù)就無(wú)法獲得。d h t 是以數(shù)據(jù) l b 予科投火學(xué)碩士學(xué)位論文 為中心的犢日,只要給出與數(shù)據(jù)礁一對(duì)應(yīng)翡k e y 轆可以送苻資源查找,著不需要 關(guān)心數(shù)據(jù)恩體存放在哪個(gè)節(jié)點(diǎn)上和熟有數(shù)據(jù)來(lái)自哪個(gè)應(yīng)用。 d h t 應(yīng)掰磊接疊u d p i p 痊稻瑤接墨 l o o k u p ( k e 燦d a t a s e n d ( pa d d r e s s ,d a t a ) i n s e r t ( k e y , d a t a ) r e c e l v e ( i pa d d r e s s ) + d a t a 表2 1 :d h t 應(yīng)用層按口和u d p i p 應(yīng)用層接口的比較 d h t 是一個(gè)好的共享下層設(shè)施,由于d h t 使用資源名字不必再編碼成位置 或鼴出鏈鼴,這撐形裁一個(gè)統(tǒng)一懿鏊予蓖騫鮑命名層,堪熱了尋技對(duì)象的靈灞性。 由于d h t 是一個(gè)均衡的體系結(jié)構(gòu),可以提供多種選擇用語(yǔ)考慮在哪些節(jié)點(diǎn)空間存 放對(duì)象( 和副本) 和用哪一條路徑哿找存放對(duì)象( 副本) 來(lái)確保應(yīng)用層的安全。 基于d h t 基礎(chǔ)結(jié)構(gòu)是翻緩和自治的,所阻不需人們事先預(yù)見(jiàn)額外操作,這樣就降 低了藏符,維護(hù)和管遴豹代徐。使闋d h t 接零鑲一個(gè)實(shí)薅并不躲道它要繯存紓么 樣的數(shù)據(jù),因此所有實(shí)體必須能夠志愿的提供p c 資源,網(wǎng)絡(luò)帶寬并且能夠按受任 何類(lèi)型的數(shù)據(jù)。 2 2幾種通用的d h t 資源定位的路由模烈 2 2 。1 c h o r d 路由摸數(shù) 2 , 2 1 1c h o r d 簡(jiǎn)介 c h o r d f a l 是由i o ns t o i c a 等人設(shè)計(jì)的一稃較麓薄豹結(jié)秘訖p 2 p 搜索策暗。它靜 設(shè)計(jì)目標(biāo)是提供一個(gè)分布式、負(fù)載均衡的、可擴(kuò)展的p 2 p 搜索策略,解決瞬前由 中心控制的搜索策略帶來(lái)的擴(kuò)展性能差、負(fù)載均襁差等限制問(wèn)題。 c h o r d 系襞蠹,餐一令節(jié)點(diǎn)逶避菜啥幕函數(shù)( 運(yùn)鬻是s h a - 1 ) 詩(shī)霧窶漆戇 m 位的標(biāo)示符( n o d ei d ) ,標(biāo)識(shí)該節(jié)點(diǎn)在c h o r d 系統(tǒng)中的位置。當(dāng)c h o r d 需要路 由某一消息時(shí),該消息也用哈希函數(shù)計(jì)算出消息k e y 值。消息的目標(biāo)節(jié)點(diǎn)就是n o d e l d 大于或磐等于港息k e y 焦鮑節(jié)點(diǎn)中n o d et d 最小熬一個(gè),梵警點(diǎn)稱(chēng)為這個(gè)瀵怠 的后繼節(jié)點(diǎn)( s u c c e s s o r ) 。 螭二章纂于d h tt l , o 資源定位方法 在d h t 技術(shù)中,兩絡(luò)結(jié)點(diǎn)按照一定靜方式分配個(gè)難一n o d ei d ,資源對(duì)象 通過(guò)敝列運(yùn)算產(chǎn)生一個(gè)唯一的資源標(biāo)識(shí)符( o b j e c t1 d ) ,且浚資源將存儲(chǔ)在結(jié)點(diǎn)l d 與之相等或者相j 黷的結(jié)點(diǎn)上。濡要查找浚資源時(shí),采用同樣的方法可定位到存儲(chǔ) 該資源豹結(jié)點(diǎn)。瓣詫?zhuān)琧 h o r d 瓣主要貢敷是撬壅了一令分布式查我蟄議,浚協(xié)議可 將指定的關(guān)鍵字( k e y ) 映射到對(duì)應(yīng)的結(jié)點(diǎn)。從算法來(lái)髫,c h o r d 是捆容散列算法 的變體。 2 2 。 + 2 稆窯哈莽 c h o r d 實(shí)現(xiàn)了這樣一種操作,給定一個(gè)關(guān)鍵字( k e y ) ,將k e y 映射到某個(gè)結(jié) 點(diǎn)。如果給對(duì)等劂絡(luò)應(yīng)用的每個(gè)數(shù)據(jù)都分配一個(gè)k e y ,那么對(duì)等網(wǎng)絡(luò)中的數(shù)據(jù)查找 蠡題簸可戮矮c h o r d 綴容荔蠢綏凌了。 c h o r d 采用了相容哈希的一種變體為結(jié)點(diǎn)分配關(guān)鍵字。相容哈希c 1 7 1 有幾個(gè)很 好的特點(diǎn),首先魁哈希函數(shù)可以做到負(fù)載平衡,也就是蛻所有的結(jié)點(diǎn)可以接收到 基本楣霹數(shù)量的關(guān)鍵字。另羚,當(dāng)?shù)趎 令終點(diǎn)熱入或者襄開(kāi)網(wǎng)絡(luò)時(shí),只套1 n 蛉 關(guān)鍵字需要移動(dòng)剿另外的位置。 c h o r d 進(jìn)一步改善了相容哈希的可擴(kuò)展性。在c h o r d 中,結(jié)點(diǎn)并不需要知道 所有其他結(jié)點(diǎn)的信息。每個(gè)c h o r d 結(jié)點(diǎn)只需要知道關(guān)于其他結(jié)點(diǎn)的少羹的路由信 惑。焱鑫n 令繕點(diǎn)縫戒熬弼終中,每令結(jié)煮哭囂要維護(hù)葵純o ( 1 0 9 n ) 令結(jié)點(diǎn)熬 信息,同樣,每次查找只需要0 ( 1 0 9 n ) 馨消息。當(dāng)結(jié)點(diǎn)加入或者離開(kāi)網(wǎng)絡(luò)時(shí), c h o r d 需要更新路內(nèi)信息,每次加入或者離開(kāi)需要傳遞0 ( 1 0 9 2 n ) 條消息。 耀容啥希邈數(shù)為每個(gè)結(jié)感稻關(guān)鍵字分聚1 2 :1 位豁舔識(shí)笱,此棟談雩李可戳爆 s h a - 1 等晗希函數(shù)產(chǎn)生。結(jié)點(diǎn)的標(biāo)識(shí)符可班通過(guò)哈希結(jié)點(diǎn)酌i p 地址產(chǎn)生,麗關(guān)鍵 字的標(biāo)識(shí)符可以盥接哈希此關(guān)鍵字。比如1 p 地址為1 9 8 1 0 1 0 1 的結(jié)點(diǎn)綴過(guò)s h a 1 哈希之后得到的標(biāo)識(shí)符為1 2 3 ,而關(guān)鍵字“l(fā) e t l t b e ”哈希之籍的關(guān)鍵字為6 0 。標(biāo)識(shí) 甕長(zhǎng)波m 毖須是夠長(zhǎng),這樣才麓鑲證兩令繚點(diǎn)或者關(guān)鍵字啥希到蠢一個(gè)標(biāo)識(shí)幸奇上 的概率小到可以忽略不計(jì)。從圈2 3 中可以贛出相容哈希的特點(diǎn)。 乜干科技大學(xué)1 4 - i :學(xué)位論文 圖2 3 相容哈希示例 在相容哈希中,每個(gè)關(guān)鍵字都保存在它的s u c c e s s o r 結(jié)點(diǎn)中,s u c c e s s o r 結(jié)點(diǎn) 是結(jié)點(diǎn)標(biāo)識(shí)符大于等于關(guān)鍵字k 標(biāo)識(shí)符的第一個(gè)結(jié)點(diǎn),我們將其記為s u c c e s s o r ( k ) 。 由于關(guān)鍵字“l(fā) e t l t b e ”的標(biāo)識(shí)符為6 0 ,因此它被保存在9 0 結(jié)點(diǎn)中。如果標(biāo)識(shí)符采用 m 位二進(jìn)制數(shù)表示,并且將從0 到2 ”1 的數(shù)排列成一個(gè)圓圈,那么s u c c e s s o r ( 1 【) 就 是從k 丌始順時(shí)針?lè)较蚓嚯x最近的結(jié)點(diǎn)。這一點(diǎn),可以從圖2 3 中很清楚地得出。 相容哈希的一個(gè)特點(diǎn)就是當(dāng)結(jié)點(diǎn)加入或者離開(kāi)網(wǎng)絡(luò)時(shí)對(duì)網(wǎng)絡(luò)帶來(lái)的沖擊可以 達(dá)到最小。當(dāng)結(jié)點(diǎn)n 加入網(wǎng)絡(luò)時(shí),為了保持相容哈希映射,某些原來(lái)分配給n 的 后繼結(jié)點(diǎn)的關(guān)鍵字將分配給n 。當(dāng)結(jié)點(diǎn)n 離開(kāi)網(wǎng)絡(luò)時(shí),所有分配給它的關(guān)鍵字將重 新分配給n 的后繼結(jié)點(diǎn)。除此之外,網(wǎng)絡(luò)中不會(huì)發(fā)生其他的變化。以圖2 3 為例, 當(dāng)結(jié)點(diǎn)n 9 0 離開(kāi)網(wǎng)絡(luò)時(shí),關(guān)鍵字“l(fā) e t l t b e ”將被分配給結(jié)點(diǎn)n 1 2 3 。 2 2 1 3 路由查找策略 在c h o r d 中,每個(gè)結(jié)點(diǎn)維護(hù)少量的路由信息,通過(guò)這些路由信息,可以提高 查詢(xún)的效率。如果m 是關(guān)鍵字和結(jié)點(diǎn)標(biāo)識(shí)符的位數(shù)( 采用二進(jìn)制表示) ,那么每個(gè) 結(jié)點(diǎn)只需要維護(hù)一張最多m 個(gè)表項(xiàng)的路由表,我們稱(chēng)之為指針表( f i n g e rt a b l e ) 。 結(jié)點(diǎn)n 的查找表的第i 個(gè)表項(xiàng)包括的是s = s u c c e s s f n + 2 i 一1 ) ,這里1 = i ( = m 并且所有 的計(jì)算都要進(jìn)行m o d2 m ,s 稱(chēng)為結(jié)點(diǎn)n 的第i 個(gè)指針,我們用n f i n g e r i n o d e 表示, 指針表中的其他項(xiàng)的含義如表2 2 所示。 1 4 第二章基于d h t 的資源定位方法 符號(hào)定義 f i n g e r k s t a r t ( n + 2 k 。1 ) m o d 2 m ,1 = k = m i n t e r v a l f i n g e r k s t a r t ,f i n g e r k + s t a r t 】 n o d e 第一個(gè)大于等于i 1 f i n g e r k s t a r t 的節(jié)點(diǎn) s u c c e s s o r 標(biāo)示符環(huán)中的下一個(gè)節(jié)點(diǎn):f i n g e r i n o d e p r e d e c e s s o r 標(biāo)示環(huán)中的前一個(gè)節(jié)點(diǎn) 表2 2c h o r d 中指針表項(xiàng)含義 以圖2 3 為例,結(jié)點(diǎn)1 的指針表的表項(xiàng)應(yīng)該分別指向標(biāo)識(shí)符f l + 2 0 ) r n o d2 3 = 2 ,f 1 + 2 1 ) m o d2 3 = 3 ,f 1 + 2 2 ) r o o d2 3 = 5 。而標(biāo)識(shí)符2 的后繼是結(jié)點(diǎn)3 ,因?yàn)樗?是2 之后的第一個(gè)結(jié)點(diǎn),標(biāo)識(shí)符3 的后繼是結(jié)點(diǎn)3 ,而標(biāo)識(shí)符5 的后繼是結(jié)點(diǎn)0 。 這一方案有兩個(gè)重要的特性:首先,每個(gè)結(jié)點(diǎn)都只需要知道一部分結(jié)點(diǎn)的信 息,而且離它越近的結(jié)點(diǎn),它就知道越多的信息。其次,每個(gè)結(jié)點(diǎn)的指針表通常 并不包括足夠的信息可以確定任意一個(gè)關(guān)鍵字的位置。例如,圖2 3 中的結(jié)點(diǎn)3 就 不知道關(guān)鍵字1 的位置,因?yàn)? 的后繼結(jié)點(diǎn)信息并沒(méi)有包含在結(jié)點(diǎn)3 的指針表中。 當(dāng)結(jié)點(diǎn)1 1 不知道關(guān)鍵字k 的后繼結(jié)點(diǎn)時(shí)怎么辦? 如果n 能夠找到一個(gè)結(jié)點(diǎn), 這個(gè)結(jié)點(diǎn)的標(biāo)識(shí)符更接近k ,那么這個(gè)結(jié)點(diǎn)將會(huì)知道該關(guān)鍵字的更多信息。根據(jù)這 一特性,n 將查找它的指針表,找到結(jié)點(diǎn)標(biāo)識(shí)符大于k 的第一個(gè)結(jié)點(diǎn)j ,并詢(xún)問(wèn)結(jié) 點(diǎn)j ,看j 是否知道哪個(gè)結(jié)點(diǎn)更靠近k 。通過(guò)重復(fù)這個(gè)過(guò)程,n 最終將會(huì)知道k 的后 繼結(jié)點(diǎn)。 仍然考慮圖2 3 中的例子,結(jié)點(diǎn)3 需要查找關(guān)鍵字1 的后繼結(jié)點(diǎn)。由于1 屬 于循環(huán)區(qū)間【7 ,3 ,它屬于3 f i n g e r 3 i n t e r v a l ,因此結(jié)點(diǎn)3 查找其指針表的第3 項(xiàng), 返回o 。由于0 在1 之前,因此結(jié)點(diǎn)3 將要求0 去尋找關(guān)鍵字1 的后繼結(jié)點(diǎn)。依此 類(lèi)推,結(jié)點(diǎn)0 將查找它的指針表并發(fā)現(xiàn)1 的后繼結(jié)點(diǎn)是1 本身,于是結(jié)點(diǎn)o 將告 訴結(jié)點(diǎn)3 結(jié)點(diǎn)1 是它要找的結(jié)點(diǎn)。 b 予科技火學(xué)碩士學(xué)位論文 圖2 4 c h o r d 數(shù)據(jù)組織實(shí)例 節(jié)點(diǎn)的加入 結(jié)點(diǎn)n 豹翔入分為三個(gè)除段。 初始化新結(jié)點(diǎn)的指針液。假設(shè)結(jié)點(diǎn)n 在加入網(wǎng)絡(luò)之前通過(guò)菜種機(jī)制知道網(wǎng)絡(luò) 中的某個(gè)緒點(diǎn)n t 。這時(shí),為了初始化n 的指針表,n 將要求結(jié)點(diǎn)n 為它查找指針衷 中懿葜縫表項(xiàng)。 更新現(xiàn)有其他結(jié)點(diǎn)| 詢(xún)指針表。結(jié)點(diǎn)加入網(wǎng)絡(luò)后將調(diào)用其他結(jié)點(diǎn)的更新函數(shù), 讓其他結(jié)點(diǎn)魘新其指針襲。 從后繼鐮點(diǎn)把關(guān)鍵字使遞到結(jié)點(diǎn)n 。這一步是撅藏有后繼縫點(diǎn)是n 的關(guān)鍵字 轉(zhuǎn)移到n 上。整個(gè)加入操作的時(shí)闋復(fù)雜度是0 ( 1 0 醇n ) ,如果采潮疆復(fù)雜匏算法嘲, 可以把復(fù)雜艘降低到0 ( 1 0 9 n ) 。 2 , 2 。1 4 節(jié)纛的退出 在對(duì)等網(wǎng)絡(luò)中,菜個(gè)對(duì)等結(jié)點(diǎn)隨時(shí)可能退出系統(tǒng)或者發(fā)生失效,因此處理結(jié) 點(diǎn)失效是一個(gè)重要的問(wèn)題。在c h o r d 中,當(dāng)結(jié)點(diǎn)i 失效h , j ,所以在指針表中包括n 豹結(jié)點(diǎn)都必須把n 替換成n 的后繼結(jié)點(diǎn)。另井,結(jié)點(diǎn)i 蛉失效不能影響系統(tǒng)中正 在進(jìn)彳亍的鲞詢(xún)過(guò)程。 第二章幕于d h t 的資源定位方法 在失效處理中最關(guān)鍵的步驟是維護(hù)正確的后繼指針。為了保證這一點(diǎn),每個(gè) c h o r d 結(jié)點(diǎn)都維護(hù)一張包括r 個(gè)最近后繼的后繼列表。如果結(jié)點(diǎn)n 注意到它的后繼 結(jié)點(diǎn)失效了,它就用后繼列表中第一個(gè)正常結(jié)點(diǎn)替換失效結(jié)點(diǎn)。 2 2 2c a n 路由模型 2 9 2 1c a n 的簡(jiǎn)介 c a n 可以在 n t e r n e t 規(guī)模的大型對(duì)等網(wǎng)絡(luò)上提供類(lèi)似哈希表的功能。c a n 具 有可擴(kuò)展、容錯(cuò)和完全自組織等特點(diǎn)。c a n 6 】類(lèi)似于一張大哈希表,基本操作包括 插入、查找和刪除。c a n 由大量自治的結(jié)點(diǎn)組成,每個(gè)結(jié)點(diǎn)保存哈希表的一部分, 稱(chēng)為一個(gè)區(qū)。c a n 的設(shè)計(jì)完全是分布式的,不需要任何形式的中央控制點(diǎn)。c a n 具有很好的可擴(kuò)展性,結(jié)點(diǎn)只需要維護(hù)少量的控制狀態(tài)而且狀態(tài)數(shù)量獨(dú)立于系統(tǒng) 中的結(jié)點(diǎn)數(shù)量。c a n 支持容錯(cuò)特性,結(jié)點(diǎn)可以繞過(guò)錯(cuò)誤結(jié)點(diǎn)進(jìn)行路由。 2 2 2 2c a n 的路由策略 c a n 使用了一個(gè)d 維直角坐標(biāo)系空間來(lái)執(zhí)行d h t 抽象。這個(gè)坐標(biāo)空間被超 矩形劃分,成為區(qū)域( z o n e ) 。每個(gè)在坐標(biāo)系統(tǒng)的節(jié)點(diǎn)負(fù)責(zé)一個(gè)區(qū)域( z o n e ) ,每個(gè) 節(jié)點(diǎn)由它區(qū)域( z o n e ) 邊界來(lái)標(biāo)識(shí)。一個(gè)關(guān)鍵字映射到指教坐標(biāo)系上的一點(diǎn),坐標(biāo) 系點(diǎn)對(duì)應(yīng)一個(gè)區(qū)域,將關(guān)鍵字存儲(chǔ)在負(fù)責(zé)這個(gè)區(qū)域的節(jié)點(diǎn)內(nèi)。如圖2 5 表示了2 維 0 ,1 1 * f 0 ,1 1 的c a n ,其中該系統(tǒng)有6 個(gè)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)維持它在坐標(biāo)系中所有 鄰居的一個(gè)路由表。如果兩個(gè)節(jié)點(diǎn)的區(qū)域共享d - 1 維超平面,則這兩個(gè)節(jié)點(diǎn)是鄰居。 ( 0 ,1 ) ( 0 ,0 5 ,0 5 ,1 ) ( 0 5 ,0 5 ,1 ,1 ) ( 叭2 5 咒7 5 ,0 5 ) ( 0 ,0 ,0 5 ,0 5 ) r 0 7 5 ,0 , ( 05 o ,o7 5 ,02 5 ) 1 ,0 5 ) 0 ) 圖2 5 :c a n 系統(tǒng)巾的節(jié)點(diǎn) 查詢(xún)操作通過(guò)在d 維直角坐標(biāo)系空間中轉(zhuǎn)發(fā)查詢(xún)消息被執(zhí)行,轉(zhuǎn)發(fā)是從查詢(xún) u 予科技人學(xué)砸= l 學(xué)位論文 初始化點(diǎn)沿著坐標(biāo)系上最接近直線(xiàn)的路徑到達(dá)存儲(chǔ)關(guān)鍵字的節(jié)點(diǎn)。當(dāng)收到一個(gè)查 詢(xún)請(qǐng)求,一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)請(qǐng)求到與存儲(chǔ)關(guān)鍵字節(jié)點(diǎn)在坐標(biāo)系中最接近的節(jié)點(diǎn)上,圖 2 6 表明找尋關(guān)鍵字( o 8 ,o 9 ) 的路徑。每個(gè)節(jié)點(diǎn)維護(hù)o ( d ) 個(gè)狀態(tài),查詢(xún)代價(jià) 是o ( d n l d ) 。如果d = o ( 1 c - g n ) ,c a n 查詢(xún)次數(shù)和存儲(chǔ)可以和在本文所介紹的其 他協(xié)議相匹配。 k e y = ( 0 8 ,0 9 、 ( 0 ,1 ) n o d e ( 0 ,7 5 ,0 7 5 ,1 ,1 ) ( 1 ,1 ) j 一 l ( 0 ,o ) 初始于n o d e ( 0 ,0 ,0 5 ,0 5 ) 查找( 0 8 ,o 9 ) 的路徑 ( 1 ,0 ) 圖2 6 :c a n 路由模型的路由過(guò)程 c a n 系統(tǒng)中,一個(gè)減少查詢(xún)時(shí)延的技術(shù)是多實(shí)現(xiàn)技術(shù)。用戶(hù)位于多哥坐標(biāo)空 間同時(shí)參與查詢(xún)來(lái)減少時(shí)延和提高c a n 的健壯性。每個(gè)節(jié)點(diǎn)在每個(gè)坐標(biāo)空間被分 配一個(gè)不同的區(qū)域。關(guān)鍵字在每個(gè)坐標(biāo)空間被復(fù)制,提高節(jié)點(diǎn)失效時(shí)系統(tǒng)的強(qiáng)壯 性。為了轉(zhuǎn)發(fā)消息,節(jié)點(diǎn)檢驗(yàn)在每個(gè)空間實(shí)際存在的鄰居節(jié)點(diǎn)并且轉(zhuǎn)發(fā)消息到離 本節(jié)點(diǎn)最近的鄰居節(jié)點(diǎn)。 2 223c a n 網(wǎng)絡(luò)中新節(jié)點(diǎn)的加入和退出 為了加入c a n 網(wǎng)絡(luò),一個(gè)新的節(jié)點(diǎn)首先在坐標(biāo)空間中選擇一個(gè)隨機(jī)點(diǎn)p ,找 到包含隨機(jī)點(diǎn)新加入節(jié)點(diǎn),如圖2 7 。新加入節(jié)點(diǎn)可以很容易的初始化其路由表, 因?yàn)楹退噜彽乃泄?jié)點(diǎn)除了n 節(jié)點(diǎn)之外,都在1 1 節(jié)點(diǎn)的鄰居表中。這也允許鄰 居用新節(jié)點(diǎn)更新路由表。 第二章赫于d h t 的資源定位方法 ( 0 ,1 )( 1 ,1 )( 0 1 )( 0 ,1 ) 剛弘點(diǎn)。 隨機(jī)點(diǎn)p 節(jié)點(diǎn)n 新氛 圖2 ,7 :新= 苘點(diǎn)加入c a n 系統(tǒng) 當(dāng)一個(gè)節(jié)點(diǎn)離開(kāi)時(shí),這個(gè)節(jié)點(diǎn)上交它的區(qū)域給它的鄰居。如果兩個(gè)區(qū)域能合 并成一個(gè)大的區(qū)域,則產(chǎn)生一個(gè)新的有效區(qū)域。如果兩個(gè)區(qū)域不能合并,那么鄰 居節(jié)點(diǎn)就會(huì)暫時(shí)處理兩個(gè)區(qū)域。當(dāng)一個(gè)節(jié)點(diǎn)失效時(shí),c a n 會(huì)執(zhí)行一個(gè)協(xié)議允許擁 有最小區(qū)域的鄰居來(lái)接管這個(gè)區(qū)域。c a n 系統(tǒng)潛在的問(wèn)題就是多點(diǎn)失效會(huì)導(dǎo)致一 個(gè)坐標(biāo)空間的分裂,由多個(gè)節(jié)點(diǎn)處理多個(gè)區(qū)域,區(qū)域越分越多,越分越小。為了 解決這個(gè)問(wèn)題,c a n 執(zhí)行一個(gè)特別的重分配節(jié)點(diǎn)( n o d e r e a s s i g n m e n t ) 算法。該算 法能夠盡量將多個(gè)可以合并的區(qū)域分配到c a n 系統(tǒng)中一個(gè)合法的節(jié)點(diǎn)上,來(lái)聯(lián)合 使用這些區(qū)域。 2 2 3 p a s t r y 路由模型 2 2 3 1 p a s t r y 簡(jiǎn)介 p a s t r y 是微軟研究院提出的可擴(kuò)展的分布式對(duì)象定位和路由協(xié)議,可用于構(gòu) 建大規(guī)模的p 2 p 系統(tǒng)。在p a s t r y 中,每個(gè)結(jié)點(diǎn)分配一個(gè)1 2 8 位的n o d ei d ,所有的 結(jié)點(diǎn)標(biāo)識(shí)符形成了一個(gè)環(huán)形的n o d ei d 空間,范圍從0 到2 1 2 8 1 ,結(jié)點(diǎn)加入系統(tǒng) 時(shí)通過(guò)散列結(jié)點(diǎn)i p 地址在1 2 8 位n o d ei d 空間中隨機(jī)分配。 p a s t r y 4 】提供了下面的功能。p a s t r y 網(wǎng)絡(luò)中的每個(gè)結(jié)點(diǎn)都有一個(gè)唯一的n o d e i d 。當(dāng)給定一條消息和一個(gè)關(guān)鍵字時(shí),p a s t r y 結(jié)點(diǎn)將會(huì)把這條消息路由到在當(dāng)前所 有的p a s t r y 結(jié)點(diǎn)中n o d ei d 和關(guān)鍵字最接近的那個(gè)結(jié)點(diǎn)。路由過(guò)程的復(fù)雜度是o ( 1 0 9 n ) ,這里n 表示網(wǎng)絡(luò)中p a s t r y 結(jié)點(diǎn)的總數(shù)。p a s t r y 考慮了網(wǎng)絡(luò)的位置信息, 它的目標(biāo)是使消息傳遞的距離最短。距離采用類(lèi)似于i p 路由的跳數(shù)的標(biāo)量距離度 量。每個(gè)p a s t r y 結(jié)點(diǎn)記錄在結(jié)點(diǎn)空間中和它直接相鄰的鄰居結(jié)點(diǎn),當(dāng)新結(jié)點(diǎn)加入、 1 9 電子科按大學(xué)頎l :學(xué)短途文 原有結(jié)點(diǎn)失效和恢復(fù)時(shí)通知上層應(yīng)用。幽于結(jié)點(diǎn)號(hào)怒隨機(jī)分配的,那么在結(jié)點(diǎn)空 間中相鄰的結(jié)點(diǎn)很可能在地理位置上是分散的,或者根本就屬于不同的組織。應(yīng) 用可以剝用這點(diǎn),因?yàn)閜 a s t r y 可以把關(guān)鍵字路出到秘它最接近贍k 個(gè)結(jié)點(diǎn)中鑫毫 任何一個(gè),p a s t r y 采嗣了稿發(fā)式算法可以鍵關(guān)鍵字首先潞出至l 在結(jié)點(diǎn)空闥中署消息 產(chǎn)生的結(jié)點(diǎn)距離最近的包括查找關(guān)鍵字的結(jié)點(diǎn)。 2 2 3 ,2p a s t r y 系統(tǒng)的組成 p a s t r y 系統(tǒng)是由獨(dú)立的p a s t r y 結(jié)點(diǎn)綴成的自組織的o v e r l a yn e t w o r k ,每個(gè)結(jié)點(diǎn) 都可以路由客戶(hù)請(qǐng)求并和成用程序( 可以是多個(gè)) 的本地實(shí)例進(jìn)行交互。任何 臺(tái)連接到i n t e r n e t 的計(jì)算楓只要運(yùn)行p a s t r y 結(jié)點(diǎn)軟件就可以稱(chēng)為p a s t r y 結(jié)點(diǎn),當(dāng)然, 它需要滿(mǎn)是應(yīng)用定義靜安全策略。 p a s t r y 系統(tǒng)中的每個(gè)絡(luò)點(diǎn)都被分配一個(gè)1 2 8 位的緒點(diǎn)號(hào)。結(jié)點(diǎn)號(hào)用于在結(jié)點(diǎn) 空間中標(biāo)識(shí)緒點(diǎn)豹位置。結(jié)點(diǎn)號(hào)是在結(jié)點(diǎn)加入系統(tǒng)時(shí)髓機(jī)分配的。分配策略是在 維點(diǎn)空闋中秘勻分蠢。縫點(diǎn)號(hào)霹戮逶遵詩(shī)纂結(jié)點(diǎn)公鑰殘謄l p 建縫懿泠豢丞鼗蕊寒 獲得。由于采用了均勻分布,因此結(jié)點(diǎn)標(biāo)識(shí)相鄰的結(jié)點(diǎn)處于不同的地理位置的概 察很大。 緩定嗣終幽n 個(gè)結(jié)點(diǎn)綴成,p a s t r y 可以把一個(gè)繪定的關(guān)鍵字路由到扶標(biāo)識(shí)符 來(lái)看最接近靜縮點(diǎn),在正鬻絳作條件下,路由豹步數(shù)小于l 0 9 2 b n 的上取整,這麓 b 是一個(gè)配置參數(shù),典型取德是4 ,即使同時(shí)發(fā)生結(jié)點(diǎn)失效的情況,也可以保證關(guān) 鍵字送達(dá)目標(biāo)繚點(diǎn)。 為了遴紓鼴由,我們撼繕點(diǎn)號(hào)蠢關(guān)鍵字表示為一率以弱為鏊懿數(shù)。p a s t r y 把 消息路由到結(jié)點(diǎn)號(hào)從數(shù)值上最接近關(guān)鍵字的結(jié)點(diǎn)。具體過(guò)程如下:在每個(gè)路由步 驟中,當(dāng)前結(jié)點(diǎn)將把消息路由給結(jié)點(diǎn)號(hào)和消息關(guān)鍵字的共同前綴長(zhǎng)度至少比當(dāng)附 鑲長(zhǎng)一個(gè)數(shù)經(jīng)( 也就是b 個(gè)二進(jìn)鍘位) 躲結(jié)點(diǎn)。如鬃不存在這樣黲結(jié)點(diǎn),消息褥 傳遞給前綴長(zhǎng)度相嗣毽是縮點(diǎn)號(hào)數(shù)值燹接近關(guān)鍵字的繡點(diǎn)。為了支持這樣的路囪 過(guò)程,每個(gè)結(jié)點(diǎn)必須維護(hù)一定的路由狀態(tài)。 每個(gè)p a s t r y 結(jié)點(diǎn)都需鼴維護(hù)一張路出表,一個(gè)鄰羼結(jié)點(diǎn)集合和一個(gè)葉子結(jié)點(diǎn) 集會(huì)。路耄袋爨l(xiāng) 0 9 2 b n 豹上醞整孑縫殘,每行包菇2 b ,1 令表頊。第n 李亍熬2 b 1 個(gè)表項(xiàng)分別指向前n 個(gè)數(shù)位和當(dāng)前結(jié)點(diǎn)的前n 個(gè)數(shù)位相同,而第n + 1 個(gè)數(shù)位取趟 2 b 一1 的可能的假( 要除掉當(dāng)前結(jié)點(diǎn)第n + 1 的值) 。當(dāng)b 取4 ,而網(wǎng)絡(luò)中有1 0 6 個(gè) 戇點(diǎn)時(shí),每個(gè)終點(diǎn)豹路由表乎均雹括7 5 個(gè)表項(xiàng)曩l i 預(yù)矮豹路由步數(shù)懋5 。纛鱺暴瓣 絡(luò)中有1 0 9 個(gè)縮點(diǎn),路由表的平均表項(xiàng)將為1 0 5 項(xiàng),麗預(yù)期韻路由步數(shù)將增加到7 。 韜二章堆- j id h t 的資源定位訂沾 鄰居結(jié)點(diǎn)集合龜括距離當(dāng)露結(jié)點(diǎn)最近昀結(jié)t i 魄撂淤雩弩硼1 p 遺址。鄰詹鯪點(diǎn)集翕在 正常的路出操作對(duì)是用不到的,它的主要作用是維護(hù)路幽弱位霞屬性。竹子結(jié)意 褒合中存放的是和當(dāng)前結(jié)點(diǎn)的標(biāo)u 符從數(shù)隨上看最接近的結(jié)點(diǎn),姒:巾一半足結(jié)點(diǎn) 號(hào)大予當(dāng)l 狐絡(luò)點(diǎn)的,另半是結(jié)點(diǎn)弓小于當(dāng)鋤。結(jié)點(diǎn)的。葉予結(jié)點(diǎn)集合在消息路由 時(shí)需要靂劐。般束浣,這兩個(gè)集合的大j 、為2 b 或者2 b + i 。 n o d ed1 u z 3 3 1 0 z r 葉子節(jié)點(diǎn)羹岱 s m a l l e r l a r g e r 0 2 3 3 0 3 31 0 2 3 3 0 2 1 0 2 3 3 1 2 0 0 2 3 3 2 2 0 2 3 3 0 0 11 0 2 3 3 0 0 0 10 2 3 3 2 3 01 0 2 3 3 2 3 2 路由表 一0 - 2 2 1 2 1 0 2 溪瓣翹瓣蒸溺 一2 2 3 0 12 0 3- 3 - i2 0 3 2 0 3 燧躐卜1 3 0 1 2 3 3 一2 2 3 0 2 0 3t - 3 0 2 t 0 2 2 0 - 0 - 3 t2 0 31 0 - 1 - 3 2 1 0 2;i 寰蔓囊毒未墓? 翻1 0 一3 2 3 3 0 2 0 2 - 0 0 2 3 01 0 2 - t - 1 3 0 2 10 2 - 2 - 2 3 0 2一。j 痞j 3 囂jj l 0 2 3 - 0 - 3 2 21 0 2 3 - 1 - 0 0 0 1 0 2 3 2 1 2 1 麟雩琴?lài)?guó)霉薯鞠 1 0 2 3 3 - 0 - 0 1 鼷釋鬻l 瓣勰1 0 2 3 3 2 3 2 鬻鬻矮冀窩 t 0 2 3 3 t 一2 0 ; 譽(yù)辮i 鬻蘧 鄰居節(jié)點(diǎn)繁合 1 3 0 2 1 0 2 21 0 2 0 0 2 3 01t 3 0 1 2 3 33 2 3 0 1 2 3 3 8 2 2 謹(jǐn) 8 22 2 3 0 1 2 0 33 i 2 0 3 2 0 33 3 2 3 3 2 嗣2 8p a s t r y :仃點(diǎn)數(shù)據(jù)結(jié)構(gòu)示惑陶 圖2 8 怒p a s t r y 一個(gè)結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)示意幽】。結(jié)點(diǎn)號(hào)為1 0 2 3 3 1 0 2 ,b 取值為 2 ,所有的數(shù)均是4 進(jìn)潮瓣。其中路由表數(shù)最上瑟一紛是第0 幸亍。這囪表;p 每約:揀 陰影項(xiàng)表示當(dāng)前結(jié)點(diǎn)號(hào)對(duì)應(yīng)的位。路幽表中每頂表示為“和1 0 2 3 3 1 0 2 的共同前綴 一f 數(shù)位一結(jié)點(diǎn)號(hào)的剩余位”。為了嗣r 起見(jiàn),圖中沒(méi)有列出相關(guān)的i p 地址。 2 2 3 3p a s t r y 款路走篆戇 p a s t r y 的路由過(guò)程如下。當(dāng)l j 父到一條消息明,結(jié)點(diǎn)首先檢查消息、的關(guān)鍵字是 酉落在葉子結(jié)點(diǎn)集合中。如果是,則直接把消息轉(zhuǎn)發(fā)給對(duì)應(yīng)的結(jié)點(diǎn),也就是葉子 結(jié)蕊集合中緒點(diǎn)號(hào)幫莢鍵字最接近熬緒點(diǎn)。魏栗關(guān)鍵字沒(méi)有落堯n + 予慈,董集禽中, 那么就將使用路由表進(jìn)行路由。當(dāng)前結(jié)點(diǎn)將會(huì)把消息發(fā)送給結(jié)點(diǎn)弓和1 關(guān)鍵字贏(yíng)接 的共同前綴至少比現(xiàn)在結(jié)點(diǎn)氐個(gè)數(shù)位的結(jié)點(diǎn)。肖然,在某些情況下,會(huì)出現(xiàn)路 由表對(duì)應(yīng)表項(xiàng)為空,或營(yíng)路由表表項(xiàng)對(duì)應(yīng)的續(xù)點(diǎn)不可達(dá)。這網(wǎng)候消息將會(huì)被轉(zhuǎn)發(fā) l u 了科批火學(xué)砸。i 擘位論。逝 給共同囂綴一樣睦躲終點(diǎn),但是該終點(diǎn)秘當(dāng)懿縫點(diǎn)穩(wěn)比,其終點(diǎn)號(hào)鼓數(shù)值上將更 接近關(guān)鍵字。這樣的緒點(diǎn)一定位子時(shí)子結(jié)點(diǎn)集合中。因跣,只要葉予結(jié)點(diǎn)集合中 不會(huì)出現(xiàn)一半以上的結(jié)點(diǎn)同時(shí)失效,路由過(guò)程就可以繼續(xù)。從上述過(guò)程中可以看 出,路出的每一步和上一步相比都向目標(biāo)結(jié)點(diǎn)前濰了一步,因此這個(gè)過(guò)程怒收斂 豹。蠶2 9 是p a s t r y 查找鼯由鈞一個(gè)示嬲。 銎2 9 :節(jié)點(diǎn)2 5 副節(jié)點(diǎn)4 5 9 8 熬路出過(guò)穩(wěn)如匿中耀線(xiàn)掰示。 2 2 3 4 帶點(diǎn)的加入和遐出 緩定贛競(jìng)瑟入結(jié)點(diǎn)蕊結(jié)點(diǎn)號(hào)為x ( 縫點(diǎn)號(hào)懿分囊0 過(guò)程是由盛瑗程序凌定黲,臣 如可以對(duì)結(jié)點(diǎn)的i p 地蚍或者公鑰進(jìn)行s h a 一1 哈希得到結(jié)點(diǎn)號(hào)) ,x 在加入p a s t r v 之前,需羧知道一個(gè)相鄰結(jié)點(diǎn)a 的位置信息。x 的加入過(guò)程主要包括初始化自己 蛉結(jié)點(diǎn)數(shù)攝維構(gòu)并通知蒺他結(jié)點(diǎn)自己已經(jīng)加入系統(tǒng)。 x 首先要求a 路函一條“齠入”消息,淆息靜關(guān)鍵字就是x 的結(jié)點(diǎn)號(hào)。和其他 的消息一午芊,這條消息最終會(huì)到達(dá)具有和x 最接邋的結(jié)點(diǎn)號(hào)的結(jié)點(diǎn)z 。 作為響應(yīng),結(jié)點(diǎn)a 耜結(jié)點(diǎn)z ,以及從a 到z 的路徑上的所有其他結(jié)點(diǎn)都會(huì)把 鴦己靜數(shù)攥繚翰傳繪x 。x 零j 嗣這登穰憊初稔純鏊已豁鼗莛結(jié)構(gòu),初始純完成螽, x 將通知藏他結(jié)點(diǎn)它已經(jīng)加入了系統(tǒng)。x 的數(shù)據(jù)結(jié)構(gòu)的具體構(gòu)造過(guò)程不再詳細(xì)描 述。按照消息數(shù)量來(lái)衡鬣,結(jié)點(diǎn)加入操作的復(fù)雜艘為o (
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)+在儀器儀表行業(yè)的應(yīng)用案例考核試卷
- 廢棄物肥料化處理經(jīng)濟(jì)效益分析考核試卷
- 保健品市場(chǎng)社會(huì)責(zé)任信息披露規(guī)范考核試卷
- 財(cái)務(wù)部門(mén)個(gè)人2024年終工作總結(jié)(30篇)
- 印刷品設(shè)計(jì)的創(chuàng)意與創(chuàng)新考核試卷
- 財(cái)務(wù)會(huì)計(jì)求職信11篇 關(guān)于財(cái)務(wù)會(huì)計(jì)崗位的求職信
- 2025年中國(guó)PU高固透明底漆數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國(guó)LCD模塊數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國(guó)EAS服務(wù)器系統(tǒng)數(shù)據(jù)監(jiān)測(cè)報(bào)告
- 2025年中國(guó)90°內(nèi)絲卡套彎頭數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年江西省公安廳招聘警務(wù)輔助人員考試真題
- 2025年湖北省中考英語(yǔ)真題含答案
- 砂石銷(xiāo)售提成管理制度
- 2025年湖南省中考生物試卷及答案
- 2025至2030中國(guó)地效飛行器行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025年四川省眉山市中考化學(xué)試卷及答案
- 2025年重慶市中考語(yǔ)文試卷(含解析)
- 2025年湖北省普通高中學(xué)業(yè)水平合格性考試模擬(三)歷史試題(含答案)
- 廣東省中山市2023-2024學(xué)年八年級(jí)下學(xué)期語(yǔ)文期末試卷(含答案)
- 2025至2030中國(guó)處方呼吸藥物行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 2025年河南高考真題化學(xué)試題含答案
評(píng)論
0/150
提交評(píng)論