




已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀
(計(jì)算機(jī)軟件與理論專業(yè)論文)基于kademlia的p2p分層資源定位模型.pdf.pdf 免費(fèi)下載
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
摘要 摘要 近年濃p 2 p 研究升溫,而資源定位是p 2 p 網(wǎng)絡(luò)研究中的熱點(diǎn)問題。目前,最 受磅變卷們關(guān)注戇是鏊予d i t t ( 分蠢式啥希裘) 黲繚構(gòu)化定位模型。d h t 鼴逢 簿 法茨藹分布式賒蘩委荻逶覃亍姿滾是燕,捷速、爵擴(kuò)鬣瞧葑。纛是d h t 方法只支持 關(guān)鍵字的精確查找,而不考慮節(jié)點(diǎn)的物理位置,數(shù)據(jù)沒有進(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)層釉注冊服務(wù)器麟,其中搬務(wù)掇供層和超級節(jié)點(diǎn) 層都用k a d e m l i a 協(xié)議進(jìn)行資源定位。越級節(jié)點(diǎn)層由超級節(jié)點(diǎn)構(gòu)成,超級節(jié)點(diǎn)怒山 注臻e 匿務(wù)囂搬擺繁點(diǎn)瓣熊力譚售撂建產(chǎn)生魏。服務(wù)提供層 墼饕避節(jié)點(diǎn)掏或,罄干 個蓄遂節(jié)點(diǎn)被巔分袋一個蠛。驁逶節(jié)患哭愛在蠛?;空d資灝,當(dāng)藩運(yùn)節(jié)點(diǎn)囊詢資 源失敗時,內(nèi)超級節(jié)點(diǎn)幫助,在整個越級節(jié)點(diǎn)層中焱找相關(guān)資源。使用這個模型, 充分和悶丁焱詢和數(shù)掇的時間空間局部性,資源定位速度快,數(shù)據(jù)傳輸效率離。 曩綾篌露p t a n e t s i m 平臺稻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ā)表或撰寫過的研究成果,也不包含 為獲得電子科技大學(xué)或其它教育機(jī)構(gòu)的學(xué)位或證書而使用過的材料。 與我一同工作的同志對本研究所做的任何貢獻(xiàn)均已在論文中作了明 確的說明并表示謝意。 簽名- _ 凌縫日期:2 d o i 年f 月f 日 關(guān)于論文使用授權(quán)的說明 本學(xué)位論文作者完全了解電子科技大學(xué)有關(guān)保留、使用學(xué)位論文 的規(guī)定,有權(quán)保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和磁 盤,允許論文被查閱和借閱。本人授權(quán)電子科技大學(xué)可以將學(xué)位論文 的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或 掃描等復(fù)制手段保存、匯編學(xué)位論文。 ( 保密的學(xué)位論文在解密后應(yīng)遵守此規(guī)定) 簽名:凌繾 導(dǎo)師簽名絲 日期:聊年參月彳日 1 1課題背景和研究意義 第一章引言 p 2 p 9 5 技術(shù)起源予互聯(lián)網(wǎng)應(yīng)愛爨旱嬲。雖然p 2 p 這個術(shù)語是璦在方發(fā)爨憋,謳 p 2 p 本身的蒸本技術(shù)豹存在時聞卻至少和u s e n e t 、f i d o n e t 這兩種非常成功豹分布 式對等網(wǎng)絡(luò)技術(shù)一樣長。 u s e n e t 產(chǎn)生于1 9 7 9 年,是一種分靠式系統(tǒng),能夠?yàn)楦鱾€地方提供新聞鰓。 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)時著沒有 互聯(lián)網(wǎng)上“隨選”信息的概念,文件只能通過電話線路批量傳送,且常常選在長 途費(fèi)用比較低的夜間進(jìn)行。因此,當(dāng)時的u s e n e t 若聚用集中式管理方法,效率將 曉較低下,囊然瑟然弱轆提出了一靜分?jǐn)?shù)、分毒式瓣管理方法。遮秘分布豹綴穩(wěn) 一直沿用劉今天。早期p 2 p 應(yīng)用另一個杰出的代表靛是f i d o n e t ,它和u s e n e t 類 似,也是一個分散、分布的信息交換系統(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),來讓不同b b s 系統(tǒng)中的用戶互榍交換信息。這種符合人們濡要的技術(shù),迅 速成長莛來,并一壹治曩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 號穆羹鴦裁等弱予爨終,蓑零語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ā)展的源動力,p 2 p 正在改變互聯(lián)網(wǎng)中各成爨問的能力平街。 p 2 p 技術(shù)饅棱成互聯(lián)網(wǎng)的大多數(shù)計(jì)算機(jī)瓣能力锝到發(fā)震。只有在今天,我們強(qiáng)調(diào)的 才不是個浚,兩是各種詩算設(shè)備之閽靜平等。 所謂p 2 p 模型,是指個網(wǎng)絡(luò)系統(tǒng),在其中每個節(jié)點(diǎn)都具有同等的能力和貴任, 所有的通訊都是對稱的。p 2 p 模型將計(jì)辣均衡分布在每個節(jié)點(diǎn),使得一個任務(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ù)綴曝,能夠及時準(zhǔn)確地探測列動態(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)通過科學(xué)的組織路由信息,使節(jié)點(diǎn)在掌握局部 路由信息的情況下就能夠取得高效的全局路由的功能。這一點(diǎn)對p 2 p 系統(tǒng)的可擴(kuò) 展性做出了決定性的影響。 p 2 p 在互聯(lián)網(wǎng)中的應(yīng)用已非一朝一夕,經(jīng)過最早的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 為代表的 無結(jié)構(gòu)p 2 p 文件存儲系統(tǒng),再到現(xiàn)在主流的以d h t 為基礎(chǔ)的結(jié)構(gòu)化p 2 p 。文件存儲 系統(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ù), 將給信息社會帶來不可估量的信息財富。 在過去的一年時間里,p 2 p 系統(tǒng)正迅速成為計(jì)算機(jī)業(yè)界關(guān)注的熱門話題,i n t e l 公司還發(fā)起成立了包括微軟、s l l n 和h p 等大公司在內(nèi)的p 2 p 工作組,以推動p 2 p 進(jìn)一步發(fā)展,財富雜志更將p 2 p 列為影響i n t e r n e t 未來的四項(xiàng)科技之一。 1 2 國內(nèi)外研究動態(tài) 1 2 1p 2 p 對等網(wǎng)絡(luò)的定義 p 2 p 。3 即是p e e rt op e e r 的縮寫,稱為對等連接或?qū)Φ染W(wǎng)絡(luò)。p 2 p 是一種分布 式網(wǎng)絡(luò),其中的參與者共享他們所擁有的一部分硬件資源( 處理能力、存儲能力、 網(wǎng)絡(luò)連接能力、打印機(jī)) ,這些共享資源需要由網(wǎng)絡(luò)提供服務(wù)和內(nèi)容,能被其 他p e e r 直接訪問而無需經(jīng)過中間實(shí)體。在次網(wǎng)絡(luò)中參與者既是資源( 服務(wù)和內(nèi)容) 提供著,又是資源( 服務(wù)和內(nèi)容) 獲取者。 目前,業(yè)界對p 2 p 的定義還沒有一個標(biāo)準(zhǔn)的說法。 i n t e l 將p 2 p 計(jì)算定義為“通過系統(tǒng)間的直接交換所達(dá)成的計(jì)算機(jī)資源與信息 的共享”,這些資源與服務(wù)包括信息交換、處理器時鐘、緩存和磁盤空間等。 r o k ut e c h n o l o g i e s 公司將p 2 p 定義成“使個人與個人之間直接通信成為可能 且更便捷的網(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è)備的主動協(xié)作,每個成員直接從其他成員而不是從服務(wù)器的參與中受益; 系統(tǒng)中成員同時扮演服務(wù)器與客戶端的角色;系統(tǒng)應(yīng)用的用戶能夠意識到彼此的 2 塑二至! ! 童 存在,構(gòu)戲一個虛叛躐實(shí)際的群 零。p 2 p 網(wǎng)絡(luò)愁互聯(lián)網(wǎng)整體絮梅的基礎(chǔ),互聯(lián)網(wǎng)最 基率的t c p i p 協(xié)議并沒有客戶端和服務(wù)器的概念,在通信過程中,所有豹設(shè)備都 是平等的一端。 。2 。2p 2 p 弱終戇努樊 1 2 2 1 按網(wǎng)絡(luò)結(jié)構(gòu)分類 擻援是否有中央交務(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)容本身存儲在節(jié)點(diǎn)中,內(nèi)容的傳送只在節(jié)點(diǎn)之間進(jìn)行,不通過服務(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 :瀨會式p 2 p 匏潮絡(luò)李五羚結(jié)鞠 分散式p 2 p 網(wǎng)絡(luò)沒有服務(wù)器,通過基于p 2 p 仂- 議的客戶端軟件搜索網(wǎng)絡(luò)中存 在的對等節(jié)點(diǎn),節(jié)點(diǎn)之間可直接建立連接,每個節(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) 有超級節(jié)點(diǎn)的p 2 p 網(wǎng)絡(luò)中,有著高網(wǎng)速( 特別是很高的上行速率) 和高性能的 計(jì)算機(jī)被自動設(shè)置為超級節(jié)點(diǎn)。超級節(jié)點(diǎn)作為其它用戶的索引服務(wù)器。隨著節(jié)點(diǎn) 的頻繁加入和退出,超級節(jié)點(diǎn)有著很大的動態(tài)性,如f a s t t r a c k 。有超級節(jié)點(diǎn)的 p 2 p 的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1 3 所示。 s n :超級節(jié)點(diǎn) 圖1 3 :帶超級節(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)系分類 根據(jù)網(wǎng)絡(luò)中存儲的內(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)用無關(guān)的技術(shù);因?yàn)閐 h t 層單獨(dú)加入在 應(yīng)用層和下層通信層之間,可以不考慮具體的應(yīng)用,只利用d h t 層負(fù)責(zé)上層數(shù)據(jù) 和下層通信節(jié)點(diǎn)之間查詢和插k 1 8 。利用h a s h 函數(shù)得到的關(guān)鍵字并不能反映數(shù)據(jù) 的含義,具體關(guān)鍵字的產(chǎn)生,又完全取決于應(yīng)用層的開發(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)中的每一個節(jié)點(diǎn)負(fù)責(zé)存儲一定范圍的關(guān)鍵字,通過l o o k u p ( k e y ) 操作返回 一個存儲該關(guān)鍵字節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識符( n o d e l d ) ,這個操作允許節(jié)點(diǎn)根據(jù)關(guān)鍵字進(jìn) 行存儲( p u t ) 和讀取( g e t ) 。通過d h t 層的l o o k u p ( k e y ) 操作,可以把應(yīng)用層的 數(shù)據(jù)均勻分布在網(wǎng)絡(luò)的各個節(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)用層接口不僅簡單,而且與傳統(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 過分依賴d n s 是網(wǎng)關(guān),只 要其中有一個服務(wù)出現(xiàn)“問題”,相應(yīng)的其他任何服務(wù)就無法獲得。d h t 是以數(shù)據(jù) l b 予科投火學(xué)碩士學(xué)位論文 為中心的犢日,只要給出與數(shù)據(jù)礁一對應(yīng)翡k e y 轆可以送苻資源查找,著不需要 關(guān)心數(shù)據(jù)恩體存放在哪個節(jié)點(diǎn)上和熟有數(shù)據(jù)來自哪個應(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 是一個好的共享下層設(shè)施,由于d h t 使用資源名字不必再編碼成位置 或鼴出鏈鼴,這撐形裁一個統(tǒng)一懿鏊予蓖騫鮑命名層,堪熱了尋技對象的靈灞性。 由于d h t 是一個均衡的體系結(jié)構(gòu),可以提供多種選擇用語考慮在哪些節(jié)點(diǎn)空間存 放對象( 和副本) 和用哪一條路徑哿找存放對象( 副本) 來確保應(yīng)用層的安全。 基于d h t 基礎(chǔ)結(jié)構(gòu)是翻緩和自治的,所阻不需人們事先預(yù)見額外操作,這樣就降 低了藏符,維護(hù)和管遴豹代徐。使闋d h t 接零鑲一個實(shí)薅并不躲道它要繯存紓么 樣的數(shù)據(jù),因此所有實(shí)體必須能夠志愿的提供p c 資源,網(wǎng)絡(luò)帶寬并且能夠按受任 何類型的數(shù)據(jù)。 2 2幾種通用的d h t 資源定位的路由模烈 2 2 。1 c h o r d 路由摸數(shù) 2 , 2 1 1c h o r d 簡介 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)是提供一個分布式、負(fù)載均衡的、可擴(kuò)展的p 2 p 搜索策略,解決瞬前由 中心控制的搜索策略帶來的擴(kuò)展性能差、負(fù)載均襁差等限制問題。 c h o r d 系襞蠹,餐一令節(jié)點(diǎn)逶避菜啥幕函數(shù)( 運(yùn)鬻是s h a - 1 ) 詩霧窶漆戇 m 位的標(biāo)示符( n o d ei d ) ,標(biāo)識該節(jié)點(diǎn)在c h o r d 系統(tǒng)中的位置。當(dāng)c h o r d 需要路 由某一消息時,該消息也用哈希函數(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 最小熬一個,梵警點(diǎn)稱為這個瀵怠 的后繼節(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)按照一定靜方式分配個難一n o d ei d ,資源對象 通過敝列運(yùn)算產(chǎn)生一個唯一的資源標(biāo)識符( o b j e c t1 d ) ,且浚資源將存儲在結(jié)點(diǎn)l d 與之相等或者相j 黷的結(jié)點(diǎn)上。濡要查找浚資源時,采用同樣的方法可定位到存儲 該資源豹結(jié)點(diǎn)。瓣詫,c h o r d 瓣主要貢敷是撬壅了一令分布式查我蟄議,浚協(xié)議可 將指定的關(guān)鍵字( k e y ) 映射到對應(yīng)的結(jié)點(diǎn)。從算法來髫,c h o r d 是捆容散列算法 的變體。 2 2 。 + 2 稆窯哈莽 c h o r d 實(shí)現(xiàn)了這樣一種操作,給定一個關(guān)鍵字( k e y ) ,將k e y 映射到某個結(jié) 點(diǎn)。如果給對等劂絡(luò)應(yīng)用的每個數(shù)據(jù)都分配一個k e y ,那么對等網(wǎng)絡(luò)中的數(shù)據(jù)查找 蠡題簸可戮矮c h o r d 綴容荔蠢綏凌了。 c h o r d 采用了相容哈希的一種變體為結(jié)點(diǎn)分配關(guān)鍵字。相容哈希c 1 7 1 有幾個很 好的特點(diǎn),首先魁哈希函數(shù)可以做到負(fù)載平衡,也就是蛻所有的結(jié)點(diǎn)可以接收到 基本楣霹數(shù)量的關(guān)鍵字。另羚,當(dāng)?shù)趎 令終點(diǎn)熱入或者襄開網(wǎng)絡(luò)時,只套1 n 蛉 關(guān)鍵字需要移動剿另外的位置。 c h o r d 進(jìn)一步改善了相容哈希的可擴(kuò)展性。在c h o r d 中,結(jié)點(diǎn)并不需要知道 所有其他結(jié)點(diǎn)的信息。每個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)加入或者離開網(wǎng)絡(luò)時, c h o r d 需要更新路內(nèi)信息,每次加入或者離開需要傳遞0 ( 1 0 9 2 n ) 條消息。 耀容啥希邈數(shù)為每個結(jié)感稻關(guān)鍵字分聚1 2 :1 位豁舔識笱,此棟談雩李可戳爆 s h a - 1 等晗希函數(shù)產(chǎn)生。結(jié)點(diǎn)的標(biāo)識符可班通過哈希結(jié)點(diǎn)酌i p 地址產(chǎn)生,麗關(guān)鍵 字的標(biāo)識符可以盥接哈希此關(guān)鍵字。比如1 p 地址為1 9 8 1 0 1 0 1 的結(jié)點(diǎn)綴過s h a 1 哈希之后得到的標(biāo)識符為1 2 3 ,而關(guān)鍵字“l(fā) e t l t b e ”哈希之籍的關(guān)鍵字為6 0 。標(biāo)識 甕長波m 毖須是夠長,這樣才麓鑲證兩令繚點(diǎn)或者關(guān)鍵字啥希到蠢一個標(biāo)識幸奇上 的概率小到可以忽略不計(jì)。從圈2 3 中可以贛出相容哈希的特點(diǎn)。 乜干科技大學(xué)1 4 - i :學(xué)位論文 圖2 3 相容哈希示例 在相容哈希中,每個關(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)識符大于等于關(guān)鍵字k 標(biāo)識符的第一個結(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)識符為6 0 ,因此它被保存在9 0 結(jié)點(diǎn)中。如果標(biāo)識符采用 m 位二進(jìn)制數(shù)表示,并且將從0 到2 ”1 的數(shù)排列成一個圓圈,那么s u c c e s s o r ( 1 【) 就 是從k 丌始順時針方向距離最近的結(jié)點(diǎn)。這一點(diǎn),可以從圖2 3 中很清楚地得出。 相容哈希的一個特點(diǎn)就是當(dāng)結(jié)點(diǎn)加入或者離開網(wǎng)絡(luò)時對網(wǎng)絡(luò)帶來的沖擊可以 達(dá)到最小。當(dāng)結(jié)點(diǎn)n 加入網(wǎng)絡(luò)時,為了保持相容哈希映射,某些原來分配給n 的 后繼結(jié)點(diǎn)的關(guān)鍵字將分配給n 。當(dāng)結(jié)點(diǎn)n 離開網(wǎng)絡(luò)時,所有分配給它的關(guān)鍵字將重 新分配給n 的后繼結(jié)點(diǎn)。除此之外,網(wǎng)絡(luò)中不會發(fā)生其他的變化。以圖2 3 為例, 當(dāng)結(jié)點(diǎn)n 9 0 離開網(wǎng)絡(luò)時,關(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 中,每個結(jié)點(diǎn)維護(hù)少量的路由信息,通過這些路由信息,可以提高 查詢的效率。如果m 是關(guān)鍵字和結(jié)點(diǎn)標(biāo)識符的位數(shù)( 采用二進(jìn)制表示) ,那么每個 結(jié)點(diǎn)只需要維護(hù)一張最多m 個表項(xiàng)的路由表,我們稱之為指針表( f i n g e rt a b l e ) 。 結(jié)點(diǎn)n 的查找表的第i 個表項(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 稱為結(jié)點(diǎn)n 的第i 個指針,我們用n f i n g e r i n o d e 表示, 指針表中的其他項(xiàng)的含義如表2 2 所示。 1 4 第二章基于d h t 的資源定位方法 符號定義 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 第一個大于等于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)中的下一個節(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)中的前一個節(jié)點(diǎn) 表2 2c h o r d 中指針表項(xiàng)含義 以圖2 3 為例,結(jié)點(diǎn)1 的指針表的表項(xiàng)應(yīng)該分別指向標(biāo)識符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)識符2 的后繼是結(jié)點(diǎn)3 ,因?yàn)樗?是2 之后的第一個結(jié)點(diǎn),標(biāo)識符3 的后繼是結(jié)點(diǎn)3 ,而標(biāo)識符5 的后繼是結(jié)點(diǎn)0 。 這一方案有兩個重要的特性:首先,每個結(jié)點(diǎn)都只需要知道一部分結(jié)點(diǎn)的信 息,而且離它越近的結(jié)點(diǎn),它就知道越多的信息。其次,每個結(jié)點(diǎn)的指針表通常 并不包括足夠的信息可以確定任意一個關(guān)鍵字的位置。例如,圖2 3 中的結(jié)點(diǎn)3 就 不知道關(guān)鍵字1 的位置,因?yàn)? 的后繼結(jié)點(diǎn)信息并沒有包含在結(jié)點(diǎn)3 的指針表中。 當(dāng)結(jié)點(diǎn)1 1 不知道關(guān)鍵字k 的后繼結(jié)點(diǎn)時怎么辦? 如果n 能夠找到一個結(jié)點(diǎn), 這個結(jié)點(diǎn)的標(biāo)識符更接近k ,那么這個結(jié)點(diǎn)將會知道該關(guān)鍵字的更多信息。根據(jù)這 一特性,n 將查找它的指針表,找到結(jié)點(diǎn)標(biāo)識符大于k 的第一個結(jié)點(diǎn)j ,并詢問結(jié) 點(diǎn)j ,看j 是否知道哪個結(jié)點(diǎn)更靠近k 。通過重復(fù)這個過程,n 最終將會知道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)。依此 類推,結(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 豹翔入分為三個除段。 初始化新結(jié)點(diǎn)的指針液。假設(shè)結(jié)點(diǎn)n 在加入網(wǎng)絡(luò)之前通過菜種機(jī)制知道網(wǎng)絡(luò) 中的某個緒點(diǎn)n t 。這時,為了初始化n 的指針表,n 將要求結(jié)點(diǎn)n 為它查找指針衷 中懿葜縫表項(xiàng)。 更新現(xiàn)有其他結(jié)點(diǎ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 上。整個加入操作的時闋復(fù)雜度是0 ( 1 0 醇n ) ,如果采潮疆復(fù)雜匏算法嘲, 可以把復(fù)雜艘降低到0 ( 1 0 9 n ) 。 2 , 2 。1 4 節(jié)纛的退出 在對等網(wǎng)絡(luò)中,菜個對等結(jié)點(diǎn)隨時可能退出系統(tǒng)或者發(fā)生失效,因此處理結(jié) 點(diǎ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)彳亍的鲞詢過程。 第二章幕于d h t 的資源定位方法 在失效處理中最關(guān)鍵的步驟是維護(hù)正確的后繼指針。為了保證這一點(diǎn),每個 c h o r d 結(jié)點(diǎn)都維護(hù)一張包括r 個最近后繼的后繼列表。如果結(jié)點(diǎn)n 注意到它的后繼 結(jié)點(diǎn)失效了,它就用后繼列表中第一個正常結(jié)點(diǎn)替換失效結(jié)點(diǎn)。 2 2 2c a n 路由模型 2 9 2 1c a n 的簡介 c a n 可以在 n t e r n e t 規(guī)模的大型對等網(wǎng)絡(luò)上提供類似哈希表的功能。c a n 具 有可擴(kuò)展、容錯和完全自組織等特點(diǎn)。c a n 6 】類似于一張大哈希表,基本操作包括 插入、查找和刪除。c a n 由大量自治的結(jié)點(diǎn)組成,每個結(jié)點(diǎn)保存哈希表的一部分, 稱為一個區(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 支持容錯特性,結(jié)點(diǎn)可以繞過錯誤結(jié)點(diǎn)進(jìn)行路由。 2 2 2 2c a n 的路由策略 c a n 使用了一個d 維直角坐標(biāo)系空間來執(zhí)行d h t 抽象。這個坐標(biāo)空間被超 矩形劃分,成為區(qū)域( z o n e ) 。每個在坐標(biāo)系統(tǒng)的節(jié)點(diǎn)負(fù)責(zé)一個區(qū)域( z o n e ) ,每個 節(jié)點(diǎn)由它區(qū)域( z o n e ) 邊界來標(biāo)識。一個關(guān)鍵字映射到指教坐標(biāo)系上的一點(diǎn),坐標(biāo) 系點(diǎn)對應(yīng)一個區(qū)域,將關(guān)鍵字存儲在負(fù)責(zé)這個區(qū)域的節(jié)點(diǎn)內(nèi)。如圖2 5 表示了2 維 0 ,1 1 * f 0 ,1 1 的c a n ,其中該系統(tǒng)有6 個節(jié)點(diǎn)。每個節(jié)點(diǎn)維持它在坐標(biāo)系中所有 鄰居的一個路由表。如果兩個節(jié)點(diǎn)的區(qū)域共享d - 1 維超平面,則這兩個節(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) 查詢操作通過在d 維直角坐標(biāo)系空間中轉(zhuǎn)發(fā)查詢消息被執(zhí)行,轉(zhuǎn)發(fā)是從查詢 u 予科技人學(xué)砸= l 學(xué)位論文 初始化點(diǎn)沿著坐標(biāo)系上最接近直線的路徑到達(dá)存儲關(guān)鍵字的節(jié)點(diǎn)。當(dāng)收到一個查 詢請求,一個節(jié)點(diǎn)轉(zhuǎn)發(fā)請求到與存儲關(guān)鍵字節(jié)點(diǎn)在坐標(biāo)系中最接近的節(jié)點(diǎn)上,圖 2 6 表明找尋關(guān)鍵字( o 8 ,o 9 ) 的路徑。每個節(jié)點(diǎn)維護(hù)o ( d ) 個狀態(tài),查詢代價 是o ( d n l d ) 。如果d = o ( 1 c - g n ) ,c a n 查詢次數(shù)和存儲可以和在本文所介紹的其 他協(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 路由模型的路由過程 c a n 系統(tǒng)中,一個減少查詢時延的技術(shù)是多實(shí)現(xiàn)技術(shù)。用戶位于多哥坐標(biāo)空 間同時參與查詢來減少時延和提高c a n 的健壯性。每個節(jié)點(diǎn)在每個坐標(biāo)空間被分 配一個不同的區(qū)域。關(guān)鍵字在每個坐標(biāo)空間被復(fù)制,提高節(jié)點(diǎn)失效時系統(tǒng)的強(qiáng)壯 性。為了轉(zhuǎn)發(fā)消息,節(jié)點(diǎn)檢驗(yàn)在每個空間實(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ò),一個新的節(jié)點(diǎn)首先在坐標(biāo)空間中選擇一個隨機(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)一個節(jié)點(diǎn)離開時,這個節(jié)點(diǎn)上交它的區(qū)域給它的鄰居。如果兩個區(qū)域能合 并成一個大的區(qū)域,則產(chǎn)生一個新的有效區(qū)域。如果兩個區(qū)域不能合并,那么鄰 居節(jié)點(diǎn)就會暫時處理兩個區(qū)域。當(dāng)一個節(jié)點(diǎn)失效時,c a n 會執(zhí)行一個協(xié)議允許擁 有最小區(qū)域的鄰居來接管這個區(qū)域。c a n 系統(tǒng)潛在的問題就是多點(diǎn)失效會導(dǎo)致一 個坐標(biāo)空間的分裂,由多個節(jié)點(diǎn)處理多個區(qū)域,區(qū)域越分越多,越分越小。為了 解決這個問題,c a n 執(zhí)行一個特別的重分配節(jié)點(diǎn)( n o d e r e a s s i g n m e n t ) 算法。該算 法能夠盡量將多個可以合并的區(qū)域分配到c a n 系統(tǒng)中一個合法的節(jié)點(diǎn)上,來聯(lián)合 使用這些區(qū)域。 2 2 3 p a s t r y 路由模型 2 2 3 1 p a s t r y 簡介 p a s t r y 是微軟研究院提出的可擴(kuò)展的分布式對象定位和路由協(xié)議,可用于構(gòu) 建大規(guī)模的p 2 p 系統(tǒng)。在p a s t r y 中,每個結(jié)點(diǎn)分配一個1 2 8 位的n o d ei d ,所有的 結(jié)點(diǎn)標(biāo)識符形成了一個環(huán)形的n o d ei d 空間,范圍從0 到2 1 2 8 1 ,結(jié)點(diǎn)加入系統(tǒng) 時通過散列結(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ò)中的每個結(jié)點(diǎn)都有一個唯一的n o d e i d 。當(dāng)給定一條消息和一個關(guān)鍵字時,p a s t r y 結(jié)點(diǎn)將會把這條消息路由到在當(dāng)前所 有的p a s t r y 結(jié)點(diǎn)中n o d ei d 和關(guān)鍵字最接近的那個結(jié)點(diǎn)。路由過程的復(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)是使消息傳遞的距離最短。距離采用類似于i p 路由的跳數(shù)的標(biāo)量距離度 量。每個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ù)時通知上層應(yīng)用。幽于結(jié)點(diǎn)號怒隨機(jī)分配的,那么在結(jié)點(diǎn)空 間中相鄰的結(jié)點(diǎn)很可能在地理位置上是分散的,或者根本就屬于不同的組織。應(yīng) 用可以剝用這點(diǎn),因?yàn)閜 a s t r y 可以把關(guān)鍵字路出到秘它最接近贍k 個結(jié)點(diǎn)中鑫毫 任何一個,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 ,每個結(jié)點(diǎn) 都可以路由客戶請求并和成用程序( 可以是多個) 的本地實(shí)例進(jìn)行交互。任何 臺連接到i n t e r n e t 的計(jì)算楓只要運(yùn)行p a s t r y 結(jié)點(diǎn)軟件就可以稱為p a s t r y 結(jié)點(diǎn),當(dāng)然, 它需要滿是應(yīng)用定義靜安全策略。 p a s t r y 系統(tǒng)中的每個絡(luò)點(diǎn)都被分配一個1 2 8 位的緒點(diǎn)號。結(jié)點(diǎn)號用于在結(jié)點(diǎn) 空間中標(biāo)識緒點(diǎn)豹位置。結(jié)點(diǎn)號是在結(jié)點(diǎn)加入系統(tǒng)時髓機(jī)分配的。分配策略是在 維點(diǎn)空闋中秘勻分蠢。縫點(diǎn)號霹戮逶遵詩纂結(jié)點(diǎn)公鑰殘謄l p 建縫懿泠豢丞鼗蕊寒 獲得。由于采用了均勻分布,因此結(jié)點(diǎn)標(biāo)識相鄰的結(jié)點(diǎn)處于不同的地理位置的概 察很大。 緩定嗣終幽n 個結(jié)點(diǎn)綴成,p a s t r y 可以把一個繪定的關(guān)鍵字路由到扶標(biāo)識符 來看最接近靜縮點(diǎn),在正鬻絳作條件下,路由豹步數(shù)小于l 0 9 2 b n 的上取整,這麓 b 是一個配置參數(shù),典型取德是4 ,即使同時發(fā)生結(jié)點(diǎn)失效的情況,也可以保證關(guān) 鍵字送達(dá)目標(biāo)繚點(diǎn)。 為了遴紓鼴由,我們撼繕點(diǎn)號蠢關(guān)鍵字表示為一率以弱為鏊懿數(shù)。p a s t r y 把 消息路由到結(jié)點(diǎn)號從數(shù)值上最接近關(guān)鍵字的結(jié)點(diǎn)。具體過程如下:在每個路由步 驟中,當(dāng)前結(jié)點(diǎn)將把消息路由給結(jié)點(diǎn)號和消息關(guān)鍵字的共同前綴長度至少比當(dāng)附 鑲長一個數(shù)經(jīng)( 也就是b 個二進(jìn)鍘位) 躲結(jié)點(diǎn)。如鬃不存在這樣黲結(jié)點(diǎn),消息褥 傳遞給前綴長度相嗣毽是縮點(diǎn)號數(shù)值燹接近關(guān)鍵字的繡點(diǎn)。為了支持這樣的路囪 過程,每個結(jié)點(diǎn)必須維護(hù)一定的路由狀態(tài)。 每個p a s t r y 結(jié)點(diǎn)都需鼴維護(hù)一張路出表,一個鄰羼結(jié)點(diǎn)集合和一個葉子結(jié)點(diǎn) 集會。路耄袋爨l(xiāng) 0 9 2 b n 豹上醞整孑縫殘,每行包菇2 b ,1 令表頊。第n 李亍熬2 b 1 個表項(xiàng)分別指向前n 個數(shù)位和當(dāng)前結(jié)點(diǎn)的前n 個數(shù)位相同,而第n + 1 個數(shù)位取趟 2 b 一1 的可能的假( 要除掉當(dāng)前結(jié)點(diǎn)第n + 1 的值) 。當(dāng)b 取4 ,而網(wǎng)絡(luò)中有1 0 6 個 戇點(diǎn)時,每個終點(diǎn)豹路由表乎均雹括7 5 個表項(xiàng)曩l i 預(yù)矮豹路由步數(shù)懋5 。纛鱺暴瓣 絡(luò)中有1 0 9 個縮點(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)集翕在 正常的路出操作對是用不到的,它的主要作用是維護(hù)路幽弱位霞屬性。竹子結(jié)意 褒合中存放的是和當(dāng)前結(jié)點(diǎn)的標(biāo)u 符從數(shù)隨上看最接近的結(jié)點(diǎn),姒:巾一半足結(jié)點(diǎn) 號大予當(dāng)l 狐絡(luò)點(diǎn)的,另半是結(jié)點(diǎn)弓小于當(dāng)鋤。結(jié)點(diǎn)的。葉予結(jié)點(diǎn)集合在消息路由 時需要靂劐。般束浣,這兩個集合的大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 麟雩琴國霉薯鞠 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 一個結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)示意幽】。結(jié)點(diǎn)號為1 0 2 3 3 1 0 2 ,b 取值為 2 ,所有的數(shù)均是4 進(jìn)潮瓣。其中路由表數(shù)最上瑟一紛是第0 幸亍。這囪表;p 每約:揀 陰影項(xiàng)表示當(dāng)前結(jié)點(diǎn)號對應(yīng)的位。路幽表中每頂表示為“和1 0 2 3 3 1 0 2 的共同前綴 一f 數(shù)位一結(jié)點(diǎn)號的剩余位”。為了嗣r 起見,圖中沒有列出相關(guān)的i p 地址。 2 2 3 3p a s t r y 款路走篆戇 p a s t r y 的路由過程如下。當(dāng)l j 父到一條消息明,結(jié)點(diǎn)首先檢查消息、的關(guān)鍵字是 酉落在葉子結(jié)點(diǎn)集合中。如果是,則直接把消息轉(zhuǎn)發(fā)給對應(yīng)的結(jié)點(diǎn),也就是葉子 結(jié)蕊集合中緒點(diǎn)號幫莢鍵字最接近熬緒點(diǎn)。魏栗關(guān)鍵字沒有落堯n + 予慈,董集禽中, 那么就將使用路由表進(jìn)行路由。當(dāng)前結(jié)點(diǎn)將會把消息發(fā)送給結(jié)點(diǎn)弓和1 關(guān)鍵字贏接 的共同前綴至少比現(xiàn)在結(jié)點(diǎn)氐個數(shù)位的結(jié)點(diǎn)。肖然,在某些情況下,會出現(xiàn)路 由表對應(yīng)表項(xiàng)為空,或營路由表表項(xiàng)對應(yīng)的續(xù)點(diǎn)不可達(dá)。這網(wǎng)候消息將會被轉(zhuǎn)發(fā) l u 了科批火學(xué)砸。i 擘位論。逝 給共同囂綴一樣睦躲終點(diǎn),但是該終點(diǎn)秘當(dāng)懿縫點(diǎn)穩(wěn)比,其終點(diǎn)號鼓數(shù)值上將更 接近關(guān)鍵字。這樣的緒點(diǎn)一定位子時子結(jié)點(diǎn)集合中。因跣,只要葉予結(jié)點(diǎn)集合中 不會出現(xiàn)一半以上的結(jié)點(diǎn)同時失效,路由過程就可以繼續(xù)。從上述過程中可以看 出,路出的每一步和上一步相比都向目標(biāo)結(jié)點(diǎn)前濰了一步,因此這個過程怒收斂 豹。蠶2 9 是p a s t r y 查找鼯由鈞一個示嬲。 銎2 9 :節(jié)點(diǎn)2 5 副節(jié)點(diǎn)4 5 9 8 熬路出過穩(wěn)如匿中耀線掰示。 2 2 3 4 帶點(diǎn)的加入和遐出 緩定贛競瑟入結(jié)點(diǎn)蕊結(jié)點(diǎn)號為x ( 縫點(diǎn)號懿分囊0 過程是由盛瑗程序凌定黲,臣 如可以對結(jié)點(diǎn)的i p 地蚍或者公鑰進(jìn)行s h a 一1 哈希得到結(jié)點(diǎn)號) ,x 在加入p a s t r v 之前,需羧知道一個相鄰結(jié)點(diǎn)a 的位置信息。x 的加入過程主要包括初始化自己 蛉結(jié)點(diǎn)數(shù)攝維構(gòu)并通知蒺他結(jié)點(diǎn)自己已經(jīng)加入系統(tǒng)。 x 首先要求a 路函一條“齠入”消息,淆息靜關(guān)鍵字就是x 的結(jié)點(diǎn)號。和其他 的消息一午芊,這條消息最終會到達(dá)具有和x 最接邋的結(jié)點(diǎn)號的結(jié)點(diǎn)z 。 作為響應(yīng),結(jié)點(diǎn)a 耜結(jié)點(diǎn)z ,以及從a 到z 的路徑上的所有其他結(jié)點(diǎn)都會把 鴦己靜數(shù)攥繚翰傳繪x 。x 零j 嗣這登穰憊初稔純鏊已豁鼗莛結(jié)構(gòu),初始純完成螽, x 將通知藏他結(jié)點(diǎn)它已經(jīng)加入了系統(tǒng)。x 的數(shù)據(jù)結(jié)構(gòu)的具體構(gòu)造過程不再詳細(xì)描 述。按照消息數(shù)量來衡鬣,結(jié)點(diǎn)加入操作的復(fù)雜艘為o (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公務(wù)員協(xié)議書范本
- 環(huán)保產(chǎn)業(yè)代收款合作協(xié)議范本
- 高新技術(shù)產(chǎn)業(yè)園區(qū)廠房租賃安全合同樣本
- 特色美食街三股東合作協(xié)議及區(qū)域經(jīng)濟(jì)發(fā)展貢獻(xiàn)
- 車輛租賃合同保證金與車輛租賃企業(yè)社會責(zé)任履行協(xié)議
- 企業(yè)參股合作協(xié)議書范本
- 生物質(zhì)能源財產(chǎn)抵押合同
- 城市交通車輛翻新烤漆租賃合作協(xié)議
- 餐廳餐飲員工離職合同范本
- 廢舊鋼模板翻新工藝技術(shù)方案
- 鐵路車輛-鐵路車輛的運(yùn)用與檢修
- 火鍋店領(lǐng)班的崗位職責(zé)和工作流程
- 二人合伙協(xié)議書(電子版)
- 上門廚師項(xiàng)目商業(yè)計(jì)劃書
- 第35屆中國化學(xué)奧林匹克(初賽競賽)試題及參考答案
- 許可證有效期內(nèi)輻射安全和防護(hù)工作總結(jié)
- 四川省中小流域暴雨洪水計(jì)算表格(尾礦庫洪水計(jì)算)
- 山東大學(xué)齊魯醫(yī)學(xué)院
- 椅子部件圖紙
- 街道綜合協(xié)管員筆試題
- 入庫單(標(biāo)準(zhǔn)范本)
評論
0/150
提交評論