天天看點

對等網絡中主流分布式雜湊演算法比較分析[收集]

作者不詳,如果作者看到可聯系站長添加版權聲明。

本文首先從P2P的定義出發,介紹了結構化P2P與非結構化P2P的差別以及結構化P2P的核心技術DHT。而後,本文深入介紹了幾種主流的DHT算法與協定并對每種協定進行了讨論。文章的最後展望了DHT在未來的發展趨勢。

對 等網絡(Peer-to-Peer,簡稱P2P)是目前非常熱門的應用,自1999年以來,P2P的研究一直是國外知名學府(如美國麻省理工學院,加州大 學伯克利分校和萊斯大學等)以及知名企業的研發機構(如微軟,諾基亞的研究院)關注的重點。它甚至被美國《财富》雜志稱為改變網際網路發展的四大新技術之 一,被認為是代表無線寬帶網際網路未來的關鍵技術。

作為一項新興的技術,目前學術界對P2P在 技術層面上的定義尚未統一。Keith W. Ross (Polytechnic University)和Dan Rubenstein(Columbia University)在[9]中提到了對P2P系統的3個基本定義:

相比中央伺服器而言有明顯的自治性(Autonomy)。

利用網絡邊緣的資源,如存儲/計算能力和資訊資源。

網絡邊緣的資源處在動态的變化中(新的資源加入,已有的資源消失)。

自治性的要求使得P2P系統不再需要特定的中央管理機制,所有節點之間擁有對等的關系。這一方面為系統帶來了自組織、容錯性好、可擴充性強等優點;另一方面也提出了新的問題:如何在沒有集中管理機制的情況下實作系統的自組織和自管理?

定義2,3中分布性和動态性的特點使得上述問題的實作具有更大的難度。在分布式系統中,過多過快的資訊互動可能消耗大量的網絡資源;而為了實時反映系統的變化,又要求節點及時獲得更新資訊,這就需要在節點之間進行通信。

為了解決這一對沖突,已經有許多P2P的架構和協定被提出來并得到了很好的應用。

結構化與非結構化P2P

依照節點資訊存儲與搜尋方式的不同,諸多P2P協定可以分為2大類:結構化(Structured)的與非結構化(Unstructured)的系統。

非結構化P2P系統

在 非結構化的系統中,每個節點存儲自身的資訊或資訊的索引(如指針和IP位址)。當使用者需要在P2P系統中擷取資訊時,他們預先并不知道這些資訊(如某個文 件)會在那個節點上存儲。是以,在非結構化P2P系統中,資訊搜尋的算法難免帶有一定的盲目性,例如最簡單的泛洪式查找(類似于廣播)和擴充環查找(從最 近的n個節點開始,層層轉發直到找到目标或超出了跳數的上限為止)。

一些典型的應用采用了一 些優化的辦法。如在Gnutella中,采用了等級制的組成結構:節點被分成超級節點(Super Node)和普通節點。普通節點必須依附于超級節點,每個超級節點作為一個獨立的域管理者,負責處理域内的查詢操作。在查找的過程中,查詢首先在域内進 行,失敗後才會擴充到超級節點之間。

非結構化系統的優點在于實作結構簡單:無須中央伺服器,節點之間完全平等,網絡的層次是單一的,而且節點之間無需維護拓撲資訊。

結構化P2P系統

在結構化P2P系統中,每個節點隻存儲特定的資訊或特定資訊的索引。當使用者需要在P2P系統中擷取資訊時,他們必須知道這些資訊(或索引)可能存在于那些節點中。由于使用者預先知道應該搜尋哪些節點,避免了非結構化P2P系統中使用的泛洪式查找,是以提高了資訊搜尋的效率。

但是,結構化P2P也引入了新的問題:

首先,既然資訊是分布存儲的,那麼如何将資訊分布存儲在重疊網中的節點上?

其次,由于節點動态的加入和離開重疊網,如何将拓撲的變更資訊通知其它節點?

DHT的引入基本解決了上述問題,是以自從DHT協定出現以後,結構化P2P的應用得到了快速的發展。目前已經有很多較為成熟的DHT協定被提出并且得到了應用。其中比較有代表性的有:緩沖陣列路由協定(CARP);一緻性哈希;Chord;内容尋址網絡;Pastry。

DHT簡介

DHT使用分布式雜湊演算法來解決結構化的分布式存儲問題。分布式雜湊演算法的核心思想是通過将存儲對象的特征(關鍵字)經過哈希運算,得到鍵值(Hash Key),對象的分布存儲依據鍵值來進行。具體來講,大緻有以下步驟:

對存儲對象的關鍵字進行哈希運算,得到鍵值。這樣就将所有的對象映射到了一個具體的數值範圍中。

重疊網中的每個節點負責數值範圍中的特定段落。例如,節點A負責存儲鍵值從8000到8999的對象;而節點B負責7000~7999的對象。這樣就将對象集合分布地存儲在所有的節點中。

節點可以直接存儲對象本身,如檔案中的一個片段;也可以存儲對象的索引,如該對象所在節點的IP位址。

結 構化的分布式存儲問題解決後,剩下的問題就是使用者如何才能找到存儲着目标資訊的節點。在有着大量節點(如100萬個)的P2P系統中,任何節點都不可能擁 有全部的節點?鍵值?内容的對應關系;是以使用者獲得了鍵值之後,如何找到該鍵值對應的節點就被稱為DHT的路由問題。DHT協定必須定義優化的查找(路 由)算法來完成這一搜尋的工作。不同的DHT協定之間差別很大程度上就在于定義了不同的路由算法。

DHT的應用非常簡潔—-API簡單到隻有一項輸入和一項輸出:

應用層将資料對象(檔案、資料塊或索引)通過雜湊演算法獲得鍵值,将該鍵值送出給DHT後,傳回結果就是鍵值所在節點的IP位址。圖1(來自[9])顯示了這種應用結構:

對等網絡中主流分布式雜湊演算法比較分析[收集]

圖 1 DHT的應用結構

在這樣的支援下,可以開發多種P2P的應用程式,如網絡存儲與檔案共享、即時消息、音頻/視訊等。圖2(來自[9])顯示了這種應用結構:

對等網絡中主流分布式雜湊演算法比較分析[收集]

圖 2 DHT應用的層次

主流DHT協定

緩沖陣列路由協定(CARP,Cache Array Routing Protocol)

協定簡介

CARP 是由微軟公司的Vinod Valloppillil和賓西法尼亞大學的Keith W. Ross在1997年提出的。該協定可以将URL空間映射到一個僅有松散關聯關系的Web cache 伺服器(在協定中稱為“代理”,Proxy)陣列中。支援該協定的HTTP用戶端可以根據要通路的URL智能選擇目标代理。該協定解決了在代理陣列内分布 存儲内容的問題,避免了内容的重複存儲,提高了用戶端通路時Web Cache命中的機率。

雜湊演算法

哈 希使用的關鍵字有2個,一個是代理的辨別符(每個代理均有唯一的辨別),另一個是URL本身。存儲内容時,每個代理負責緩沖哈希鍵值最大的URL。這樣, 當緩沖代理陣列發生少量變化時(新的代理加入或舊的代理退出),原有的URL還有可能仍然被映射到原來的代理上,仍可以按照原有的方式通路。

路由算法

用戶端(HTTP浏覽器)首先加載一個代理配置檔案,該檔案中存儲了代理的辨別符和IP位址等用于哈希的關鍵參數。浏覽器在通路網頁時,可以根據URL和代理辨別獲得代理的位置資訊(IP位址),進而可以直接通路緩沖代理中的頁面。

讨論

CARP的哈希過程比較簡單,路由查找更是簡單到至多隻有一跳(O(1))。但是CARP在P2P的應用環境中有一些緻命的缺陷:

每個節點必須知道其它所有節點的資訊。在大規模的重疊網環境中,由于可能存在大量的(數百萬)節點,加之節點都是動态加入和退出網絡,是以這一條件幾乎不可能滿足。

在緩沖陣列發生較大變化時(這在P2P網絡中非常常見),原有的URL和代理之間的對應關系可能發生改變,進而使得原有的配置檔案失效。

一緻性哈希(Consistent Hash)

協定簡介

一緻性雜湊演算法在1997年由麻省理工學院提出(參見0),設計目标是為了解決網際網路中的熱點(Hot pot)問題,初衷和CARP十分類似。一緻性哈希修正了CARP使用的簡單雜湊演算法帶來的問題,使得DHT可以在P2P環境中真正得到應用。

雜湊演算法

一緻性哈希提出了在動态變化的Cache環境中,雜湊演算法應該滿足的4個适應條件:

平衡性(Balance)

平衡性是指哈希的結果能夠盡可能分布到所有的緩沖中去,這樣可以使得所有的緩沖空間都得到利用。很多雜湊演算法都能夠滿足這一條件。

單調性(Monotonicity)

單調性是指如果已經有一些内容通過哈希分派到了相應的緩沖中,又有新的緩沖加入到系統中。哈希的結果應能夠保證原有已配置設定的内容可以被映射到新的緩沖中去,而不會被映射到舊的緩沖集合中的其他緩沖區。

簡單的雜湊演算法往往不能滿足單調性的要求,如最簡單的線性哈希:

x → ax + b mod (P)

在上式中,P表示全部緩沖的大小。不難看出,當緩沖大小發生變化時(從P1到P2),原來所有的哈希結果均會發生變化,進而不滿足單調性的要求。

哈希結果的變化意味着當緩沖空間發生變化時,所有的映射關系需要在系統内全部更新。而在P2P系統内,緩沖的變化等價于Peer加入或退出系統,這一情況在P2P系統中會頻繁發生,是以會帶來極大計算和傳輸負荷。單調性就是要求雜湊演算法能夠避免這一情況的發生。

分散性(Spread)

在 分布式環境中,終端有可能看不到所有的緩沖,而是隻能看到其中的一部分。當終端希望通過哈希過程将内容映射到緩沖上時,由于不同終端所見的緩沖範圍有可能 不同,進而導緻哈希的結果不一緻,最終的結果是相同的内容被不同的終端映射到不同的緩沖區中。這種情況顯然是應該避免的,因為它導緻相同内容被存儲到不同 緩沖中去,降低了系統存儲的效率。分散性的定義就是上述情況發生的嚴重程度。好的雜湊演算法應能夠盡量避免不一緻的情況發生,也就是盡量降低分散性。

負載(Load)

負載問題實際上是從另一個角度看待分散性問題。既然不同的終端可能将相同的内容映射到不同的緩沖區中,那麼對于一個特定的緩沖區而言,也可能被不同的使用者映射為不同的内容。與分散性一樣,這種情況也是應當避免的,是以好的雜湊演算法應能夠盡量降低緩沖的負荷。

從表面上看,一緻性哈希針對的是分布式緩沖的問題,但是如果将緩沖看作P2P系統中的Peer,将映射的内容看作各種共享的資源(資料,檔案,媒體流等),就會發現兩者實際上是在描述同一問題。

路由算法

在 一緻性雜湊演算法中,每個節點(對應P2P系統中的Peer)都有随機配置設定的ID。在将内容映射到節點時,使用内容的關鍵字和節點的ID進行一緻性哈希運算 并獲得鍵值。一緻性哈希要求鍵值和節點ID處于同一值域。最簡單的鍵值和ID可以是一維的,比如從0000到9999的整數集合。

根據鍵值存儲内容時,内容将被存儲到具有與其鍵值最接近的ID的節點上。例如鍵值為1001的内容,系統中有ID為1000,1010,1100的節點,該内容将被映射到1000節點。

為 了建構查詢所需的路由,一緻性哈希要求每個節點存儲其上行節點(ID值大于自身的節點中最小的)和下行節點(ID值小于自身的節點中最大的)的位置資訊 (IP位址)。當節點需要查找内容時,就可以根據内容的鍵值決定向上行或下行節點發起查詢請求。收到查詢請求的節點如果發現自己擁有被請求的目标,可以直 接向發起查詢請求的節點傳回确認;如果發現不屬于自身的範圍,可以轉發請求到自己的上行/下行節點。

為 了維護上述路由資訊,在節點加入/退出系統時,相鄰的節點必須及時更新路由資訊。這就要求節點不僅存儲直接相連的下行節點位置資訊,還要知道一定深度(n 跳)的間接下行節點資訊,并且動态地維護節點清單。當節點退出系統時,它的上行節點将嘗試直接連接配接到最近的下行節點,連接配接成功後,從新的下行節點獲得下行 節點清單并更新自身的節點清單。同樣的,當新的節點加入到系統中時,首先根據自身的ID找到下行節點并獲得下行節點清單,然後要求上行節點修改其下行節點 清單,這樣就恢複了路由關系。

讨論

一緻性哈希基本解決了在P2P環境中最為關鍵的問題——如何在動态的網絡拓撲中分布存儲和路由。每個節點僅需維護少量相鄰節點的資訊,并且在節點加入/退出系統時,僅有相關的少量節點參與到拓撲的維護中。所有這一切使得一緻性哈希成為第一個實用的DHT算法。

但 是一緻性哈希的路由算法尚有不足之處。在查詢過程中,查詢消息要經過O(N)步(O(N)表示與N成正比關系,N代表系統内的節點總數) 才能到達被查詢的節點。不難想象,當系統規模非常大時,節點數量可能超過百萬,這樣的查詢效率顯然難以滿足使用的需要。換個角度來看,即使使用者能夠忍受漫 長的時延,查詢過程中産生的大量消息也會給網絡帶來不必要的負荷。

下文中讨論的幾種DHT協定都對路由做出了優化,提出了各自的算法。

Chord協定

Chord 在2001年由麻省理工學院提出(參見0),其核心思想就是要解決在P2P應用中遇到的基本問題:如何在P2P網絡中找到存有特定資料的節點。與前兩種協 議不同,Chord專門為P2P應用設計,是以考慮了在P2P應用中可能遇到的特殊問題,這些内容将在路由的部分進行讨論。

雜湊演算法

Chord使用一緻性哈希作為雜湊演算法。在一緻性哈希協定中并沒有定義具體的算法,在Chord協定中将其規定為SHA-1。

路由算法

Chord在一緻性哈希的基礎上提供了優化的路由算法:

在 Chord中,每個節點同樣需要存儲m個其他節點的資訊,這些資訊的集合被稱為查詢表(Finger Table)。一緻性哈希中的節點同樣具有這樣的表格,但在Chord中,表格中的節點不再是直接相鄰的節點,它們的間距(ID間隔)将成2i 的關系排列(i 表示表中的數組下标)。這樣形成的節點之間路由關系實際上就是折半查找算法需要的排列關系。

在 查詢的過程中,查詢節點将請求發送到與鍵值最接近的節點上。收到查詢請求的節點如果發現自身存儲了被查詢的資訊,可以直接回應查詢節點 (這與一緻性哈希完全相同);如果被查詢的資訊不在本地,就根據查詢表将請求轉發到與鍵值最接近的節點上。這樣的過程一直持續到找到相應的節點為止。不難 看出,查詢過程實際上就是折半查找的過程。

經過Chord的優化後,查詢需要的跳數由O ( N)減少到O(log(N))。這樣即使在大規模的P2P網絡中(例如N=100,000,000),查詢的跳數也僅為O(8),每個節點僅需存儲27個(log2100000000)其他節點的資訊。

Chord還考慮到多個節點同時加入系統的情況并對節點加入/退出算法作了優化。

讨論

Chord算法本身具有如下優點:

負載平衡

這一優點來自于一緻性哈希,也就是一緻性哈希中提到的平衡性。所有的節點以同等的機率分擔系統負荷,進而可以避免某些節點負載過大的情況。

分布性

Chord是純分布式系統,節點之間完全平等并完成同樣的工作。這使得Chord具有很高的魯棒性,可以抵禦DoS攻擊。

可擴充性

Chord協定的開銷随着系統規模(結點總數N)的增加而按照O(logN)的比例增加。是以Chord可以用于大規模的系統。

可用性

Chord協定要求節點根據網絡的變化動态的更新查詢表,是以能夠及時恢複路由關系,使得查詢可以可靠地進行。

命名的靈活性

Chord并未限制查詢内容的結構,是以應用層可以靈活的将内容映射到鍵值空間而不受協定的限制。

Chord在CFS系統中得到了應用,具體的介紹可參見[8]

内容尋址網絡(Content-Addressable Network,CAN)

CAN在2001年由加州大學伯克利分校提出(參見[3])。與Chord一樣,CAN也是DHT的一個變種。

雜湊演算法

CAN的雜湊演算法與一緻性哈希有所不同。Chord中,哈希得到的鍵值總是一維的,而在CAN中,哈希的結果由d維的笛卡爾空間來表示。d是一個由系統規模決定的常量。

路由算法

CAN的路由查詢将在d維笛卡爾空間中進行。

在 CAN中,每個節點自身的ID經由哈希後得到的d維向量。經過這樣的映射後,整個P2P系統将被映射到一個d維笛卡爾空間中,每個節點的位置由其自身ID 決定。CAN對鄰居節點的定義并不要求成2i的關系排列,而是改為用在笛卡爾空間上相鄰來表示:在d維笛卡爾空間中,2個節點的d維坐标中有d-1維是相 等的,剩餘的一維是相鄰的節點稱之為相鄰節點。

CAN中的節點僅存儲相鄰節點表。由于在d維的空間中最多有2d個相鄰的節點,是以節點的相鄰節點表最多有2d個表項。

在 查詢的過程中,查詢節點首先計算被查詢内容的鍵值(d維向量),然後在節點清單中查找在笛卡爾空間中與該鍵值最為接近的相鄰節點,找到後向該節點發送查詢 請求(這一政策被稱為貪婪政策)。查詢請求中将攜帶被查詢内容的鍵值。收到查詢請求的節點如果發現自身存儲了被查詢的資訊,可以直接回應查詢節點(這與一 緻性哈希完全相同);如果被查詢的資訊不在本地,就根據相鄰節點表将請求轉發到與鍵值最接近的節點上。這樣的過程一直持續到找到相應的節點為止。在查詢過 程中,被查詢節點到目标節點的笛卡爾空間距離單調地減少。

如果查詢節點或轉發節點發現鄰居節點表中無法找到可用的下一跳節點,則采用非結構化P2P常用的擴充環搜尋(Expanding Ring Search,使用無狀态,受控的泛洪算法在重疊網中搜尋)以找到合适的(符合貪婪政策)下一節點。

經過CAN的優化後,查詢需要的跳數由O ( N)減少到均值為(d/4)(n1/d)的随機制,考慮到d為常數,這一值可以表示為O(n1/d)或O(dn1/d)。

讨論

CAN 和Chord的主要差別在于路由算法不同。相比之下,在節點數量非常大時,CAN的平均查詢跳數要比Chord增加得更快。而且 CAN查詢過程中需要的運算量也要高于Chord。但CAN使用的d為預先設定的常量,是以并不假設系統節點數量。在節點總數動态變化範圍很大的系統中, CAN的相鄰節點表結構保持穩定,這在P2P的應用中也是很重要的優點。

Pastry

Pastry在2001年由位于英國劍橋的微軟研究院和萊斯(Rice)大學提出(參見[4])。Pastry也是DHT的一個變種。

雜湊演算法

Pastry使用一緻性哈希作為雜湊演算法。哈希所得的鍵值為一維(實際上使用的是128bit的整數空間)。Pastry也沒有規定具體應該采用何種雜湊演算法。

路由算法

在Pastry協定中,每個節點都擁有一個128bit的辨別(Node Id)。為了保證Node ID的唯一性,一般由節點的網絡辨別(如IP位址)經過哈希得到。

Pastry中的每個節點擁有一個路由表R(Routing table),一個鄰居節點集M(Neighborhood Set)和一個葉子節點集合L(Leaf set),它們一起構成了節點的狀态表。

路 由表R共有logBN(B = 2b為系統參數,典型值為16,N表示系統的節點總數)行,每行包括B-1個表項,每個表項記錄了一個鄰居節點的資訊(節點辨別、IP位址、目前狀态 等)。這樣就形成了擁有(B-1)logBN個條目的二維表格。路由表第n行的表項所記錄的鄰居節點的Node ID前n個數位和目前節點的前n個數位相同,而第n+1個數位則分别取從0到B-1的值(除了與目前節點第n+1數位的值)。這樣形成的路由表很類似IP 路由中最長掩碼比對的算法。參數b(或B)大小非常關鍵:B過大則節點需要維護很大的路由表,可能超出節點的負載能力,但路由表大些可以存儲更多的鄰居節 點,在轉發時更為精确。平均每次路由查找需要的跳數在Pastry中計算的結果是logBN,是以B的選擇反映了路由表大小和路由效率之間的折衷。

葉子節點集合L中存放的是在鍵值空間中與目前節點距離最近的|L|個節點的資訊,其中一半節點辨別大于目前節點,另一半節點辨別小于目前節點。|L|的典型值為2b或者2*2b。

鄰 居節點集合M中存放的是在真實網絡中與目前節點“距離”最近的|M|個節點的資訊。“距離”的定義在Pastry中非常類似IP路由協定中對距離的定義, 也就是考慮到轉發跳數、傳輸路徑帶寬、QoS等綜合因素後所得的轉發開銷(可以參見OSPF等路由協定)。Pastry并未提供距離資訊的擷取方法,而是 假設應用層可以通過某種手段(人工配制或自動協商)得到資訊并配置鄰居節點集合。|M|的典型值為2b或者2*2b。

對等網絡中主流分布式雜湊演算法比較分析[收集]

圖 3給出了一個Pastry節點狀态表的例子,該圖來源于[4]。

在節點狀态表中,節點本身的ID為10233102。葉子集合中有8項,每一項都代表一個目前節點已知的其他節點的資訊。路由表共有4*8項,可以看出由上至下節點ID重合的位數(字首)不斷增加。鄰居集合中的節點ID由于來源于應用層,一般沒有規律性可循。

Pastry的路由過程如下:

首 先,路由查詢消息中将攜帶被查詢對象ID(Object Id),又稱消息鍵值。當收到路由消息時,節點首先檢查消息鍵值是否落在葉子節點集合的範圍内。如果是,則直接把消息轉發給葉子節點集合中節點辨別和消息 鍵值最接近的節點;否則就從路由表中根據最長字首優先的原則選擇一個節點作為路由目标,轉發路由消息。如果不存在這樣的節點,目前節點将會從其維護的所有 鄰居節點集合(包括路由表葉子集合及鄰居集合中的節點)中選擇一個距離消息鍵值最近的節點作為轉發目标。

從上述過程中可以看出,每一步路由和上一步相比都更靠近目标節點,是以這個過程是收斂的。如果路由表不為空,每步路由至少能夠增加一個字首比對數位,是以在路由表始終有效時,路由的步數至多為logBN。

讨論

Pastry的路由利用了成熟的最大掩碼比對算法,是以實作時可以利用很多現成的軟體算法和硬體架構,可以獲得很好的效率。

與Chord和CAN相比,Pastry引入了葉子節點和鄰居節點集合的概念。在應用層能夠及時準确地獲得這兩個集合的節點資訊時,可以大大加快路由查找的速度,同時降低因路由引起的網絡傳輸開銷;不過在動态變化的P2P網絡中如何理想地做到這一點的确有很大的難度。

Pastry的典型應用包括PAST(參見[5][6])和SCRIBE(參見[7])。

趨勢分析

目前DHT算法的發展方向非常多,不斷有新的改進算法被提出來。就筆者目前了解到的資訊而言,至少有以下一些方向:

接近性(Proximity)

文中提到的DHT算法中,除了Pasrty以外,均未考慮重疊網絡拓撲結構與真實的IP網絡之間的重合關系。節點之間進行對等通信時,不會考慮優先選取距離自己最近的節點。這樣就使得最終形成的重疊網結構混亂,效率低下。是以如何讓節點獲得并利用接近性資訊就非常重要。

結構化

目 前基于DHT的應用尚未大規模展開,很多工程上的細節問題尚待解決。例如:目前有很多種類的P2P應用,如檔案存儲和共享、電子郵件、流媒體等。這些應用 在處理P2P路由算法、拓撲維護和資訊檢索上使用的方法均有很大差别,導緻即使是同類的應用也無法實作互通。如何為各種P2P的應用抽象出一個通用的層 次,也是目前研究的熱點問題之一。

資訊查詢

基于分布式哈希表的查詢是一種單關鍵字的精确比對,盡管相對于非結構化系統它使得系統資源可被确定性地查詢到,但它也極大地限制了查詢的應用範圍。目前有許多改進的結構化查詢算法已經被提出來。

參考文獻

David Karger, Eric Lehman, Tom Leighton, Matthew Levine, Daniel Lewin, Rina Panigrahy “Consistent Hashing and Random Trees:Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web”. In Proceedings of the 29th Annual ACM Sym-posium on Theory of Computing (El Paso, TX, May 1997), pp. 654-663.

Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan_ “Chord: A Scalable Peertopeer Lookup Service for Internet Applications” SIGCOMM’01, August 2731, 2001, San Diego, California, USA.

Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp, Scott Shenker “A Scalable Content-Addressable Network” SIGCOMM’01, August 27-31, 2001, San Diego, California, USA..

Antony Rowstron1 and Peter Druschel “Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems” Appears in Proc. of the 18th IFIP/ACM International Conference on Distributed Systems Platforms (Middleware 2001). Heidelberg, Germany, November 2001.

P. Druschel and A. Rowstron. PAST: A large-scale, persistent peer-to-peer storage utility. In Proc. HotOS VIII, Schloss Elmau, Germany, May 2001.

A. Rowstron and P. Druschel. Storage management and caching in PAST, a large-scale, persistent peer-to-peer storage utility. In Proc. ACM SOSP’01, Banff, Canada, Oct. 2001.

A. Rowstron, A.-M. Kermarrec, P. Druschel, and M. Castro. Scribe: The design of a large-scale event notification infrastructure. Submitted for publication. June 2001. http://www.research.microsoft.com/ antr/SCRIBE/.

F. Dabek, M. F. Kaashoek, D. Karger, R. Morris, and I. Stoica. Wide-area cooperative storage with CFS. In Proc. ACM SOSP’01, Banff, Canada, Oct. 2001.

Keith W. Ross, Dan Rubenstein, “P2P Systems”

甯 甯,“對等網絡組通信機制的位置感覺技術研究Research on Location-Aware Tech-nology in Peer-to-Peer Group Com-munication Mechanism”,申請清華大學工學碩士學位論文,May.2005.

李祖鵬,黃建華,唐輝,“基于P2P計算模式的自組織網絡路由模型”,軟體學報,1000-9825/2005/16(05)0916

胡進鋒,鄭緯民(清華大學計算機系高性能計算研究所,北京,100084),“p2p系統結點資訊收集算法 Node Collection Protocol in P2P Systems”

鄒 福泰,馬範援(上海交通大學計算機科學與工程系),“基于分布式哈希表的對等系統關鍵技術研究RESEARCH ON THE KEY TECHNIQUE OF PEER-TO-PEER SYSTEMS BASED ON DISTRIBUTED HASH TABLE”,申請上海交通大學博士學位論文,二零零四年十一月

原創文章如轉載,請注明:轉載自五四陳科學院[http://www.54chen.com] 

本文連結: http://www.54chen.com/architecture/peer-to-peer-distributed-hash-algorithm-in-the-mainstream-of-comparative-analysis-of-the-collection.html

繼續閱讀