P2P概述

Peer to Peer ( Peer to Peer) 綜述

 

羅傑文

[email protected]

中科院計算技術研究所

2005-11-3

1 緒言

1.1 Peer-To-Peer 介紹

最近幾年,對等計算( Peer-to-Peer,簡稱P2P) 迅速成爲計算機界關注的熱門話題之一,財富雜誌更將P2P列爲影響Internet未來的四項科技之一。

目前,在學術界、工業界對於P2P沒有一個統一的定義,下面列舉幾個常用的定義供參考:

定義:1Peer-to-peer is a type of Internet network allowing a group of computer users with the same networking program to connect with each other for the purposes of directly accessing files from one another's hard drives.

2Peer-to-peer networking (P2P) is an application that runs on a personal computer and shares files with other users across the Internet. P2P networks work by connecting individual computers together to share files instead of having to go through a central server.

3P2P是一種分佈式網絡,網絡的參與者共享他們所擁有的一部分硬件資源(處理能力、存儲能力、網絡連接能力、打印機等),這些共享資源需要由網絡提供服務和內容,能被其它對等節點(Peer)直接訪問而無需經過中間實體。在此網絡中的參與者既是資源(服務和內容)提供者(Server),又是資源(服務和內容)獲取者(Client)。

雖然上述定義稍有不同但共同點都是P2P打破了傳統的Client/Server (C/S)模式,在網絡中的每個結點的地位都是對等的。每個結點既充當服務器,爲其他結點提供服務,同時也享用其他結點提供的服務。P2PC/S模式的對比如下圖所示:

Client/Server模式

Peer to Peer 模式

P2P技術的特點體現在以下幾個方面。

  • 非中心化Decentralization):網絡中的資源和服務分散在所有結點上,信息的傳輸和服務的實現都直接在結點之間進行,可以無需中間環節和服務器的介入,避免了可能的瓶頸。P2P的非中心化基本特點,帶來了其在可擴展性、健壯性等方面的優勢

  • 可擴展性:在P2P網絡中,隨着用戶的加入,不僅服務的需求增加了,系統整體的資源和服務能力也在同步地擴充,始終能較容易地滿足用戶的需要。整個體系是全分佈的,不存在瓶頸。理論上其可擴展性幾乎可以認爲是無限的。

  • 健壯性P2P架構天生具有耐攻擊、高容錯的優點。由於服務是分散在各個結點之間進行的,部分結點或網絡遭到破壞對其它部分的影響很小。P2P網絡一般在部分結點失效時能夠自動調整整體拓撲,保持其它結點的連通性。P2P網絡通常都是以自組織的方式建立起來的,並允許結點自由地加入和離開。P2P網絡還能夠根據網絡帶寬、結點數、負載等變化不斷地做自適應式的調整。

  • 高性能/價格比:性能優勢是P2P被廣泛關注的一個重要原因。隨着硬件技術的發展,個人計算機的計算和存儲能力以及網絡帶寬等性能依照摩爾定理高速增長。採用P2P架構可以有效地利用互聯網中散佈的大量普通結點,將計算任務或存儲資料分佈到所有結點上。利用其中閒置的計算能力或存儲空間,達到高性能計算和海量存儲的目的。通過利用網絡中的大量空閒資源,可以用更低的成本提供更高的計算和存儲能力。

  • 隱私保護: P2P網絡中,由於信息的傳輸分散在各節點之間進行而無需經過某個集中環節,用戶的隱私信息被竊聽和泄漏的可能性大大縮小。此外,目前解決Internet隱私問題主要採用中繼轉發的技術方法,從而將通信的參與者隱藏在衆多的網絡實體之中。在傳統的一些匿名通信系統中,實現這一機制依賴於某些中繼服務器節點。而在P2P中,所有參與者都可以提供中繼轉發的功能,因而大大提高了匿名通訊的靈活性和可靠性,能夠爲用戶提供更好的隱私保護。

  • 負載均衡: Peer to Peer網絡環境下由於每個節點既是服務器又是客戶機,減少了對傳統C/S結構服務器計算能力、存儲能力的要求,同時因爲資源分佈在多個節點,更好的實現了整個網絡的負載均衡。

與傳統的分佈式系統相比,P2P技術具有無可比擬的優勢。同時,P2P技術具有廣闊的應用前景。Internt上各種P2P應用軟件層出不窮,用戶數量急劇增加。20043月來自www.slyck.com的數據顯示,大量P2P軟件的用戶使用數量分佈從幾十萬、幾百萬到上千萬並且急劇增加,並給Internet帶寬帶來巨大沖擊。P2P計算技術正不斷應用到軍事領域,商業領域,政府信息,通訊等領域。

根據具體應用不同,可以把P2P分爲以下這些類型:

  • 提供文件和其它內容共享的P2P網絡,例如NapsterGnutellaeDonkeyemuleBitTorrent等;

  • 挖掘P2P對等計算能力和存儲共享能力,例如SETI@homeAvakiPopular Power等;

  • 基於P2P方式的協同處理與服務共享平臺,例如JXTAMagiGroove.NET My Service等;

  • 即時通訊交流,包括ICQOICQYahoo Messenger等;

  • 安全的P2P通訊與信息共享,例如SkypeCrowdsOnion Routing等。

 

1.2國內外P2P技術研究現狀

1.2.1 P2P網絡中的拓撲結構研究

拓撲結構是指分佈式系統中各個計算單元之間的物理或邏輯的互聯關係,結點之間的拓撲結構一直是確定系統類型的重要依據。目前互聯網絡中廣泛使用集中式、層次式等拓撲結構,Interne本身是世界上最大的非集中式的互聯網絡,但是九十年代所建立的一些網絡應用系統卻是完全的集中式的系統、很多Web應用都是運行在集中式的服務器系統上。集中式拓撲結構系統目前面臨着過量存儲負載、Dos攻擊等一些難以解決的問題。

P2P系統一般要構造一個非集中式的拓撲結構,在構造過程中需要解決系統中所包含的大量結點如何命名、組織以及確定結點的加入/離開方式、出錯恢復等問題。

根據拓撲結構的關係可以將P2P研究分爲4種形式:中心化拓撲Centralized Topology);全分佈式非結構化拓撲Decentralized Unstructured Topology);全分佈式結構化拓撲Decentralized Structured Topology,也稱作DHT網絡)和半分佈式拓撲Partially Decentralized Topology)。

其中,中心化拓撲最大的優點是維護簡單發現效率高。由於資源的發現依賴中心化的目錄系統,發現算法靈活高效並能夠實現複雜查詢。最大的問題與傳統客戶機/服務器結構類似,容易造成單點故障,訪問的“熱點”現象和法律等相關問題,這是第一代P2P網絡採用的結構模式,經典案例就是著名的MP3共享軟件Napster

Napster是最早出現的P2P系統之一,並在短期內迅速成長起來。Napster實質上並非是純粹的P2P系統,它通過一箇中央服務器保存所有Napster用戶上傳的音樂文件索引和存放位置的信息。當某個用戶需要某個音樂文件時,首先連接到Napster服務器,在服務器進行檢索,並由服務器返回存有該文件的用戶信息;再由請求者直接連到文件的所有者傳輸文件。

Napster首先實現了文件查詢與文件傳輸的分離,有效地節省了中央服務器的帶寬消耗,減少了系統的文件傳輸延時。這種方式最大的隱患在中央服務器上,如果該服務器失效,整個系統都會癱瘓。當用戶數量增加到105或者更高時,Napster的系統性能會大大下降。另一個問題在於安全性上,Napster並沒有提供有效的安全機制。

Napster模型中,一羣高性能的中央服務器保存着網絡中所有活動對等計算機共享資源的目錄信息。當需要查詢某個文件時,對等機會向一臺中央服務器發出文件查詢請求。中央服務器進行相應的檢索和查詢後,會返回符合查詢要求的對等機地址信息列表。查詢發起對等機接收到應答後,會根據網絡流量和延遲等信息進行選擇,和合適的對等機建立連接,並開始文件傳輸。Napster的工作原理如圖1所示。

這種對等網絡模型存在很多問題,主要表現爲:

(1)中央服務器的癱瘓容易導致整個網絡的崩饋,可靠性和安全性較低。

(2)隨着網絡規模的擴大,對中央索引服務器進行維護和更新的費用將急劇增加,所需成本過高。

(3)中央服務器的存在引起共享資源在版權問題上的糾紛,並因此被攻擊爲非純粹意義上的P2P網絡模型。對小型網絡而言,集中目錄式模型在管理和控制方面佔一定優勢。但鑑於其存在的種種缺陷,該模型並不適合大型網絡應用。

Napster結構

Napster界面

全分佈非結構化網絡在重疊網絡(overlay)採用了隨機圖的組織方式,結點度數服從"Power-law"[a][b]規律,從而能夠較快發現目的結點,面對網絡的動態變化體現了較好的容錯能力,因此具有較好的可用性。同時可以支持複雜查詢,如帶有規則表達式的多關鍵詞查詢,模糊查詢等,最典型的案例是Gnutella

Gnutella是一個P2P文件共享系統,它和Napster最大的區別在於Gnutella是純粹的P2P系統,沒有索引服務器,它採用了基於完全隨機圖的洪泛(Flooding)發現和隨機轉發(Random Walker)機制。爲了控制搜索消息的傳輸,通過TTL (Time To Live)的減值來實現。具體協議參照[Gnutella協議中文版

Gnutella分佈式對等網絡模型N中,每一個聯網計算機在功能上都是對等的,既是客戶機同時又是服務器,所以被稱爲對等機(ServentServer+Client的組合)

隨着聯網節點的不斷增多,網絡規模不斷擴大,通過這種洪泛方式定位對等點的方法將造成網絡流量急劇增加,從而導致網絡中部分低帶寬節點因網絡資源過載而失效。所以在初期的Gnutella網絡中,存在比較嚴重的分區,斷鏈現象。也就是說,一個查詢訪問只能在網絡的很小一部分進行,因此網絡的可擴展性不好。所以,解決Gnutella網絡的可擴展性對該網絡的進一步發展至關重要。

由於沒有確定拓撲結構的支持,非結構化網絡無法保證資源發現的效率。即使需要查找的目的結點存在發現也有可能失敗。由於採用TTLTime-to-Live)、洪泛(Flooding)、隨機漫步或有選擇轉發算法,因此直徑不可控,可擴展性較差。

因此發現的準確性和可擴展性是非結構化網絡面臨的兩個重要問題。目前對此類結構的研究主要集中於改進發現算法和複製策略以提高發現的準確率和性能。

最初的Gnutella採用的Flooding搜索算法示意圖

採用第二代Gnutella協議最經典的軟件-Bearshare

由於非結構化網絡將重疊網絡認爲是一個完全隨機圖,結點之間的鏈路沒有遵循某些預先定義的拓撲來構建。這些系統一般不提供性能保證,但容錯性好,支持複雜的查詢,並受結點頻繁加入和退出系統的影響小。但是查詢的結果可能不完全,查詢速度較慢,採用廣播查詢的系統對網絡帶寬的消耗非常大,並由此帶來可擴展性差等問題。

另外,由於非結構化系統中的隨機搜索造成的不可擴展性,大量的研究集中在如何構造一個高度結構化的系統。目前研究的重點放在瞭如何有效地查找信息上,最新的成果都是基於DHT的分佈式發現和路由算法。這些算法都避免了類似Napster的中央服務器,也不是像Gnutella那樣基於廣播進行查找,而是通過分佈式散列函數,將輸入的關鍵字惟一映射到某個結點上,然後通過某些路由算法同該結點建立連接。

最新的研究成果體現在採用分佈式散列表(DHT[a]完全分佈式結構化拓撲網絡

分佈式散列表(DHT)實際上是一個由廣域範圍大量結點共同維護的巨大散列表。散列表被分割成不連續的塊,每個結點被分配給一個屬於自己的散列塊,併成爲這個散列塊的管理者。DHT的結點既是動態的結點數量也是巨大的,因此非中心化和原子自組織成爲兩個設計的重要目標。通過加密散列函數,一個對象的名字或關鍵詞被映射爲128位或160位的散列值。一個採用DHT的系統內所有結點被映射到一個空間 ,如果散列函數映射一個 位的名字到一個散列值 ,則有

分佈式散列表起源於SDDSScalable Distribute Data Structures[a]研究,Gribble等實現了一個高度可擴展,容錯的SDDS集羣。

最近的研究集中在採用新的拓撲圖構建重疊路由網絡,以減少路由表容量和路由延時。這些新的拓撲關係的基本原理是在DHT表一維空間的基礎上引入更多的拓撲結構圖來反映底層網絡的結構。

DHT類結構能夠自適應結點的動態加入/退出,有着良好的可擴展性、魯棒性、結點ID分配的均勻性和自組織能力。由於重疊網絡採用了確定性拓撲結構,DHT可以提供精確的發現。只要目的結點存在於網絡中DHT總能發現它,發現的準確性得到了保證,最經典的案例是TapestryChord,CAN,Pastry

Tapestry提供了一個分佈式容錯查找和路由基礎平臺,在此平臺基礎之上,可以開發各種P2P應用(OceanStore即是此平臺上的一個應用) Tapestry的思想來源於Plaxton。在Plaxton中,結點使用自己所知道的鄰近結點表,按照目的ID來逐步傳遞消息。Tapestry基於Plaxtion的思想,加入了容錯機制,從而可適應P2P的動態變化的特點。OceanStore是以Tapestry爲路由和查找基礎設施的P2P平臺。它是一個適合於全球數據存儲的P2P應用系統。任何用戶均可以加入OceanStore系統,或者共享自己的存儲空間,或者使用該系統中的資源。通過使用複製和緩存技術,OceanStore可提高查找的效率。最近,Tapstry爲適應P2P網絡的動態特性,作了很多改進,增加了額外的機制實現了網絡的軟狀態(soft state),並提供了自組織、魯棒性、可擴展性和動態適應性,當網絡高負載且有失效結點時候性能有限降低,消除了對全局信息的依賴、根結點易失效和彈性(resilience)差的問題。

Pastry是微軟研究院提出的可擴展的分佈式對象定位和路由協議,可用於構建大規模的P2P系統。在Pastry中,每個結點分配一個128位的結點標識符號(nodeID) ,所有的結點標識符形成了一個環形的nodeID空間,範圍從02128 - 1 ,結點加入系統時通過散列結點IP地址在128nodeID空間中隨機分配。

MIT,開展了多個與P2P相關的研究項目:ChordGRIDRONChord項目的目標是提供一個適合於P2P環境的分佈式資源發現服務,它通過使用DHT技術使得發現指定對象只需要維護O(logN)長度的路由表。

DHT技術中,網絡結點按照一定的方式分配一個唯一結點標識符(Node ID) ,資源對象通過散列運算產生一個唯一的資源標識符(Object ID) ,且該資源將存儲在結點ID與之相等或者相近的結點上。需要查找該資源時,採用同樣的方法可定位到存儲該資源的結點。因此,Chord的主要貢獻是提出了一個分佈式查找協議,該協議可將指定的關鍵字(Key) 映射到對應的結點(Node) 。從算法來看,Chord是相容散列算法的變體。MITGRIDRON項目則提出了在分佈式廣域網中實施查找資源的系統框架。

AT&T ACIRI中心的CAN(Content Addressable Networks) 項目獨特之處在於採用多維的標識符空間來實現分佈式散列算法。CAN將所有結點映射到一個n維的笛卡爾空間中,併爲每個結點儘可能均勻的分配一塊區域。CAN採用的散列函數通過對(key, value) 對中的key進行散列運算,得到笛卡爾空間中的一個點,並將(key, value) 對存儲在擁有該點所在區域的結點內。CAN採用的路由算法相當直接和簡單,知道目標點的座標後,就將請求傳給當前結點四鄰中座標最接近目標點的結點。CAN是一個具有良好可擴展性的系統,給定N個結點,系統維數爲d,則路由路徑長度爲O(n1/d) ,每結點維護的路由表信息和網絡規模無關爲O(d)

DHT類結構最大的問題DHT的維護機制較爲複雜,尤其是結點頻繁加入退出造成的網絡波動(Churn)會極大增加DHT的維護代價。DHT所面臨的另外一個問題是DHT僅支持精確關鍵詞匹配查詢,無法支持內容/語義等複雜查詢。

ChordIdentifier Circle

Pastry的消息路由

半分佈式結構(有的文獻稱作 Hybrid Structure)吸取了中心化結構和全分佈式非結構化拓撲的優點,選擇性能較高(處理、存儲、帶寬等方面性能)的結點作爲超級點(英文文獻中多稱作:SuperNodes, Hubs),在各個超級點上存儲了系統中其他部分結點的信息,發現算法僅在超級點之間轉發,超級點再將查詢請求轉發給適當的葉子結點。半分佈式結構也是一個層次式結構,超級點之間構成一個高速轉發層,超級點和所負責的普通結點構成若干層次。最典型的案例就是KaZaa

KaZaa是現在全世界流行的幾款p2p軟件之一。根據CA公司統計,全球KaZaa的下載量超過2.5億次。使用KaZaa軟件進行文件傳輸消耗了互聯網40%的帶寬。之所以它如此的成功,是因爲它結合了NapsterGnutella共同的優點。從結構 上來說,它使用了Gnutella的全分佈式的結構,這樣可以是系統更好的擴展,因爲它無需中央索引服務器存儲文件名,它是自動的把性能好的機器成爲SuperNode,它存儲着離它最近的葉子節點的文件信息,這些SuperNode,再連通起來形成一個Overlay Network. 由於SuperNode的索引功能,使搜索效率大大提高。

半分佈式結構(含有SuperNode

kaZaa界面

半分佈式結構的優點是性能、可擴展性較好,較容易管理,但對超級點依賴性大,易於受到攻擊,容錯性也受到影響。下表比較了4種結構的綜合性能,比較結果如表1-1所示。

14種結構的性能比較

 

比較標準/拓撲結構

中心化拓撲

全分佈式非結構化拓撲

全分佈式結構化拓撲

半分佈式拓撲

可擴展性

可靠性

可維護性

最好

最好

發現算法效率

最高

複雜查詢

支持

支持

不支持

支持

1.2.2 國內的P2P研究現狀

學術機構研發

  • 北京大學—Maze

   Maze 是北京大學網絡實驗室開發的一箇中心控制與對等連接相融合的對等計算文件共享系統,在結構上類似Napster,對等計算搜索方法類似於Gnutella。網絡上的一臺計算機,不論是在內網還是外網,可以通過安裝運行Maze的客戶端軟件自由加入和退出Maze系統。每個節點可以將自己的一個或多個目錄下的文件共享給系統的其他成員,也可以分享其他成員的資源。Maze支持基於關鍵字的資源檢索,也可以通過好友關係直接獲得。

  • 清華大學Granary

   Granary是清華大學自主開發的對等計算存儲服務系統。它以對象格式存儲數據。另外,Granary設計了專門的結點信息收集算法PeerWindow的結構化覆蓋網絡路由協議Tourist

  • 華中科技大學AnySee

   AnySee是華中科大設計研發的視頻直播系統。它採用了一對多的服務模式,支持部分NAT和防火牆的穿越,提高了視頻直播系統的可擴展性;同時,它利用近播原則、分域調度的思想,使用Landmark路標算法直接建樹的方式構建應用層上的組播樹,克服了ESM等一對多模式系統由聯接圖的構造和維護帶來的負載影響。 

  更詳細介紹見[中國計算機學會通訊 Page 38-51 鄭緯民等 對等計算研究概論]

企業研發產品

  • 廣州數聯軟件技術有限公司-Poco

    POCO 是中國最大的 P2P用戶分享平臺 , 是有安全、流量控制力的,無中心服務器的第三代 Peer to Peer資源交換平臺 , 也是世界範圍內少有的盈利的 Peer to Peer平臺。目前已經形成了 2600 萬海量用戶,平均在線 58.5 萬,在線峯值突破 71 萬,並且全部是寬帶用戶的用戶羣。 成爲中國地區第一的 Peer to Peer分享平臺。[a]

  • 深圳市點石軟件有限公司-OP

     OP-又稱爲Openext Media Desktop,一個網絡娛樂內容平臺,Napster的後繼者,它可以最直接的方式找到您想要的音樂、影視、軟件、遊戲、圖片、書籍以及各種文檔,隨時在線共享文件容量數以億計“十萬影視、百萬音樂、千萬圖片”。OP整合了Internet ExplorerWindows Media PlayerRealOne PlayerACDSee ,是國內的網絡娛樂內容平臺。[a]

  • 基於P2P的在線電視直播-PPLive

    PPLive是一款用於互聯網上大規模視頻直播的共享軟件。它使用網狀模型,有效解決了當前網絡視頻點播服務的帶寬和負載有限問題,實現用戶越多,播放越流暢的特性,整 體服務質量大大提高!(2005年的超級女聲決賽期間,這款軟件非常的火爆,同時通過它看湖南衛視的有上萬觀衆)

   其他商業軟件這裏不一一列舉,請訪問P2P門戶網站 http://www.ppcn.net/

1.2.3 P2P技術的應用研究

  國外開展P2P研究的學術團體主要包括P2P工作組(P2PWG) 、全球網格論壇(Global Grid Forum GGF) P2P工作組成立的主要目的是希望加速P2P計算基礎設施的建立和相應的標準化工作。P2PWG成立之後,對P2P計算中的術語進行了統一,也形成相關的草案,但是在標準化工作方面工作進展緩慢。目前P2PWG已經和GGF合併,由該論壇管理P2P計算相關的工作。GGF負責網格計算和P2P計算等相關的標準化工作。

從國外公司對P2P計算的支持力度來看,Microsoft公司、Sun公司和Intel公司投入較大。Microsoft公司成立了Pastry項目組,主要負責P2P計算技術的研究和開發工作。目前Microsoft公司已經發布了基於Pastry的軟件包SimPastry/ VisPastryRice大學也在Pastry的基礎之上發佈了FreePastry軟件包。

20008月,Intel公司宣佈成立P2P工作組,正式開展P2P的研究。工作組成立以後,積極與應用開發商合作,開發P2P應用平臺。2002Intel發佈了. Net基礎架構之上的Accelerator Kit (P2P加速工具包) P2P安全API軟件包,從而使得微軟. NET開發人員能夠迅速地建立P2P安全Web應用程序。

Sun公司以Java技術爲背景,開展了JXTA項目。JXTA是基於Java的開源P2P平臺,任何個人和組織均可以加入該項目。因此,該項目不僅吸引了大批P2P研究人員和開發人員,而且已經發布了基於JXTA的即時聊天軟件包。JXTA定義了一組核心業務:認證、資源發現和管理。在安全方面,JXTA加入了加密軟件包,允許使用該加密包進行數據加密,從而保證消息的隱私、可認證性和完整性。在JXTA核心之上,還定義了包括內容管理、信息搜索以及服務管理在內的各種其它可選JXTA服務。在覈心服務和可選服務基礎上,用戶可以開發各種JXTA平臺上的P2P應用。

P2P實際的應用主要體現在以下幾個方面:

P2P分佈式存儲

P2P分佈式存儲系統是一個用於對等網絡的數據存儲系統,它可以提供高效率的、魯棒的和負載平衡的文件存取功能。這些研究包括:OceanStoreFarsite等。其中,基於超級點結構的半分佈式P2P應用如KazzaEdonkeyMorpheusBittorrent等也是屬於分佈式存儲的範疇,並且用戶數量急劇增加。

計算能力的共享

加入對等網絡的結點除了可以共享存儲能力之外,還可以共享CPU處理能力。目前已經有了一些基於對等網絡的計算能力共享系統。比如SETI@home。目前SETI@home採用的仍然是類似於Napster的集中式目錄策略。Xenoservers向真正的對等應用又邁進了一步。這種計算能力共享系統可以用於進行基因數據庫檢索和密碼破解等需要大規模計算能力的應用。

P2P應用層組播。

應用層組播,就是在應用層實現組播功能而不需要網絡層的支持。這樣就可以避免出現由於網絡層遲遲不能部署對組播的支持而使組播應用難以進行的情況。應用層組播需要在參加的應用結點之間實現一個可擴展的,支持容錯能力的重疊網絡,而基於DHT的發現機制正好爲應用層組播的實現提供了良好的基礎平臺。

Internet間接訪問基礎結構(Internet Indirection Infrastructure)。

爲了使Internet更好地支持組播、單播和移動等特性,Internet間接訪問基礎結構提出了基於匯聚點的通信抽象。在這一結構中,並不把分組直接發向目的結點,而是給每個分組分配一個標識符,而目的結點則根據標識符接收相應的分組。標識符實際上表示的是信息的匯聚點。目的結點把自己想接收的分組的標識符預先通過一個觸發器告訴匯聚點,當匯聚點收到分組時,將會根據觸發器把分組轉發該相應的目的結點。Internet間接訪問基礎結構實際上在Internet上構成了一個重疊網絡,它需要對等網絡的路由系統對它提供相應的支持。

P2P技術從出現到各個領域的應用展開,僅用了幾年的時間。從而證明了P2P技術具有非常廣闊的應用前景。

 

1.3 對研究內容有重大影響的幾個方面

  隨着P2P應用的蓬勃發展,作爲P2P應用中核心問題的發現技術除了遵循技術本身的邏輯以外,也受到某些技術的發展趨勢、需求趨勢的深刻影響。 

1.3.1 度數和直徑的折衷關係(tradeoff)對發現算法的影響

  如上所述,DHT發現技術完全建立在確定性拓撲結構的基礎上,從而表現出對網絡中路由的指導性和網絡中結點與數據管理的較強控制力。但是,對確定性結構的認識又限制了發現算法效率的提升。研究分析了目前基於DHT的發現算法,發現衡量發現算法的兩個重要參數度數(表示鄰居關係數、路由表的容量)和鏈路長度(發現算法的平均路徑長度)之間存在漸進曲線的關係。

  研究者採用圖論中度數(Degree)和直徑(Diameter)兩個參數研究DHT發現算法,發現這些DHT發現算法在度數和直徑之間存在漸進曲線關係,如下圖所示。在N個結點網絡中,圖中直觀顯示出當度數爲N時,發現算法的直徑爲O(1);當每個結點僅維護一個鄰居時,發現算法的直徑爲O(N)。這是度數和直徑關係的2種極端情況。同時,研究以圖論的理論分析了O(d)的度和O(d)的直徑的算法是不可能的。

 

度數和直徑之間的漸進曲線關係

從漸進曲線關係可以看出,如果想獲得更短的路徑長度,必然導致度數的增加;而網絡實際連接狀態的變化造成大度數鄰居關係的維護複雜程度增加。另外,研究者證明O(logN)甚至O(logN/loglogN)的平均路徑長度也不能滿足狀態變化劇烈的網絡應用的需求。新的發現算法受到這種折衷關係制約的根本原因在於DHT對網絡拓撲結構的確定性認識。

1.3.2 Small world 理論對P2P發現技術的影響

   非結構化P2P系統中發現技術一直採用洪泛轉發的方式,與DHT的啓發式發現算法相比,可靠性差,對網絡資源的消耗較大。最新的研究從提高發現算法的可靠性和尋找隨機圖中的最短路徑兩個方面展開。也就是對重疊網絡的重新認識。其中,small world特徵和冪規律證明實際網絡的拓撲結構既不是非結構化系統所認識的一個完全隨機圖,也不是DHT發現算法採用的確定性拓撲結構。

  實際網絡體現的冪規律分佈的含義可以簡單解釋爲在網絡中有少數結點有較高的“度”,多數結點的“度”較低。度較高的結點同其他結點的聯繫比較多,通過它找到待查信息的概率較高。

  Small-world[a][b]模型的特性:網絡拓撲具有高聚集度和短鏈的特性。在符合small world特性的網絡模型中,可以根據結點的聚集度將結點劃分爲若干簇(Cluster),在每個簇中至少存在一個度最高的結點爲中心結點。大量研究證明了以Gnutella爲代表的P2P網絡符合small world特徵,也就是網絡中存在大量高連通結點,部分結點之間存在“短鏈”現象。

因此,P2P發現算法中如何縮短路徑長度的問題變成了如何找到這些“短鏈”的問題。尤其是在DHT發現算法中,如何產生和找到“短鏈”是發現算法設計的一個新的思路。small world特徵的引入會對P2P發現算法產生重大影響。

1.3.3 語義查詢和DHT的矛盾

   現有DHT算法由於採用分佈式散列函數,所以只適合於準確的查找,如果要支持目前Web上搜索引擎具有的多關鍵字查找的功能,還要引入新的方法。主要的原因在於DHT的工作方式。

   基於DHTP2P系統採用相容散列函數根據精確關鍵詞進行對象的定位與發現。散列函數總是試圖保證生成的散列值均勻隨機分佈,結果兩個內容相似度很高但不完全相同的對象被生成了完全不同的散列值,存放到了完全隨機的兩個結點上。因此,DHT可以提供精確匹配查詢,但是支持語義是非常困難的。

   目前在DHT基礎上開展帶有語義的資源管理技術的研究還非常少。由於DHT的精確關鍵詞映射的特性決定了無法和信息檢索等領域的研究成果結合,阻礙了基於DHTP2P系統的大規模應用。[a]

1.4 P2P發現技術研究的成果與不足

  P2P發現技術中最重要的研究成果應該是基於small world理論的非結構化發現算法和基於DHT的結構化發現算法。尤其是DHT及其發現技術爲資源的組織與查找提供了一種新的方法。

隨着P2P系統實際應用的發展,物理網絡中影響路由的一些因素開始影響P2P發現算法的效率。一方面,實際網絡中結點之間體現出較大的差異,即異質性。由於客戶機/服務器模式在Internet和分佈式領域十幾年的應用和大量種類的電子設備的普及,如手提電腦、移動電話或PDA。這些設備在計算能力、存儲空間和電池容量上差別很大。另外,實際網絡被路由器和交換機分割成不同的自治區域,體現出嚴密的層次性。

另一方面,網絡波動的程度嚴重影響發現算法的效率。網絡波動(Churnfluctuation of network)包括結點的加入、退出、失敗、遷移、併發加入過程、網絡分割等。DHT的發現算法如ChordCANKoorde等都是考慮網絡波動的最差情況下的設計與實現。由於每個結點的度數儘量保持最小,這樣需要響應的成員關係變化的維護可以比較小,從而可以快速恢復網絡波動造成的影響。但是每個結點僅有少量路由狀態的代價是發現算法的高延時,因爲每一次查找需要聯繫多個結點,在穩定的網絡中這種思路是不必要的。

同時,作爲一種資源組織與發現技術必然要支持複雜的查詢,如關鍵詞、內容查詢等。儘管信息檢索和數據挖掘領域提供了大量成熟的語義查詢技術,由於DHT精確關鍵詞映射的特性阻礙了DHT在複雜查詢方面的應用。

2複雜P2P網絡拓撲模型

2.1 Internet拓撲模型

Internet作爲當今人類社會信息化的標誌,其規模正以指數速度高速增長.如今Internet面貌已與其原型ARPANET大相徑庭,依其高度的複雜性,可以將其看作一個由計算機構成的生態系統”.雖然Internet是人類親手建造的,但卻沒有人能說出這個龐然大物看上去到底是個什麼樣子,運作得如何.Internet拓撲建模研究就是探求在這個看似混亂的網絡之中蘊含着哪些還不爲我們所知的規律.發現Internet拓撲的內在機制是認識Internet的必然過程,是在更高層次上開發利用Internet的基礎.然而,Internet與生俱來的異構性動態性發展的非集中性以及如今龐大的規模都給拓撲建模帶來巨大挑戰.Internet拓撲建模至今仍然是一個開放性問題,在計算機網絡研究中佔有重要地位.

Internet拓撲作爲Internet這個自組織系統的骨骼”,與流量協議共同構成模擬Internet3個組成部分,即在拓撲網絡中節點間執行協議,形成流量.Internet拓撲模型是建立Internet系統模型的基礎,由此而體現的拓撲建模意義也可以說就是Internet建模的意義,即作爲一種工具,人們用其來對Internet進行分析預報決策或控制.Internet模型中的拓撲部分刻畫的是Internet在宏觀上的特徵,反映一種總體趨勢,所以其應用也都是在大尺度上展開的.Internet拓撲模型的需求主要來自以下幾個方面:(1) 許多新應用或實驗不適合直接應用於Internet,其中一些具有危害性,如蠕蟲病毒在大規模網絡上的傳播模擬;(2) 對於一些依賴於網絡拓撲的協議(如多播協議),在其研發階段,當前Internet拓撲只能提供一份測試樣本,無法對協議進行全面評估,需要提供多個模擬拓撲環境來進行實驗;(3) 從國家安全角度考慮,需要在線控制網絡行爲,如美國國防高級研究計劃局(DARPA)NMS(network modeling and simulation)項目.

2.1.1隨機網絡與拓撲模型

隨機網絡是由N個頂點構成的圖中,可以存在 條邊,我們從中隨機連接M條邊所構成的網絡。還有一種生成隨機網絡的方法是,給一個概率p,對於 中任何一個可能連接,我們都嘗試一遍以概率p的連接。如果我們選擇M = p ,這兩種隨機網絡模型就可以聯繫起來。對於如此簡單的隨機網絡模型,其幾何性質的研究卻不是同樣的簡單。隨機網絡幾何性質的研究是由PaulAlfréd Rényila Bollobás在五十年代到六十年代之間完成的。隨機網絡在Internet的拓撲中佔有很重要的位置。

2.1.2隨機網絡參數

描述隨機網絡有一些重要的參數。一個節點所擁有的度是該節點與其他節點相關聯的邊數,度是描述網絡局部特性的基本參數。網絡中並不是所有節點都具有相同的度,系統中節點度的分佈情況,可以用分佈函數 描述,度分佈函數反映了網絡系統的宏觀統計特徵。理論上利用度分佈可以計算出其他表徵全局特性參數的量化數值。

聚集係數是描述與第三個節點連接的一對節點被連接的概率。從連接節點的邊的意義上,若 爲第i個節點的度,在由k.個近鄰節點構成的子網中,實際存在的邊數E(i)與全部k.個節點完全連接時的總邊數充 的比值定義爲節點i的聚集係數

 

2.1.3拓撲模型

Internet拓撲模型可分爲兩類:一類是描述Internet拓撲特徵,包括Waxman模型,Tiers,Transit -Stub和冪律;另一類是描述拓撲特徵形成的機理,包括BarabásiAlbert提出的BAESF以及一種改進模型GLP.由於後一類模型對Internet冪律形成機理的描述還不成熟,更多的是作爲一種產生冪律的圖生成算法。對於第1類模型來說,Internet拓撲特徵的發現,實際上就是刻畫該特徵的度量(metric)的發現.一個屬於第一類的拓撲模型就是包含若干已存在的或新發現的度量,然後根據實際的Internet拓撲數據求出這些度量的值.因此,對這類模型進行評價需要從兩方面入手:一方面,對它所採用的拓撲數據進行評價;另一方面,對其度量進行評價.在所有已經發現的Internet拓撲度量中,最爲基本的就是節點出度頻率fd.其分佈是判斷一幅拓撲圖是否與Internet拓撲相類似的最重要的依據.在研究早期,研究人員或者認爲Internet節點出度是完全隨機的(Waxman模型),或者認爲節點出度是正規的(Tiers模型).而冪律的發現證明了Internet拓撲結構介於兩者之間,呈冪率分佈.根據對出度頻率分佈的刻畫,可將Internet拓撲模型分爲以下3:

(1) 隨機型,即認爲Internet拓撲圖處於一個完全無序的狀態,在大尺度上是均一的.Waxman模型,是一種類似於Erds-Rényi模型的隨機模型,出度頻率呈泊松分佈.這個模型有兩個版本:RG1,先將節點隨機佈置在直角座標網格中,節點間的距離就是其歐幾里德距離;RG2,依據(0,L)均勻隨機分佈爲節點對指定距離.兩個版本中,節點間相接的概率P(u,v)與其距離相關,服從泊松分佈,距離越近,概率越大.

其中,d(u,v)表示節點uv之間的距離,L爲節點間最長距離,áa取值範圍是(0,1).

(2) 層次型,來自對Internet結構所具有的層次特徵的認識,在同一層上的節點出度接近,不同層間節點出度差別很大.對同一層上的節點佈置借用Waxman模型方法.Tiers(等級)模型將Internet劃分爲LAN(局域網),MAN(城域網)WAN(廣域網)3個層次.在該模型中,WAN只有一個,通過指定LANMAN數量以及各自內部所包含節點的數量來構造拓撲圖.Transit-Stub模型將AS域劃分爲Transit類和Stub.在該模型中,Transit節點彼此互聯構成一個節點羣,一個或多個Transit節點羣構成拓撲圖的核心,Stub節點分佈在Transit節點羣四周與Transit節點相連.Transit -StubGT-ITM(georgia tech Internetwork topology models)軟件包的一部分,有時GT-ITM也就是指Transit-Stub模型.

(3) 冪率型.1999,Faloutsos等人對NLANR(National Lab for Applied Network Research)1997~1998年間的3BGP數據以及1995年的一份traceroute測量數據進行分析,發現Internet拓撲中存在着4條冪律.

冪律是指形如 的方程,對於兩個變量XY,存在一個常數C,使得YXC次冪成比例.有兩個聲明:(1) 節點v的等級爲 ,v是在按出度降序排列序列中的索引值;(2) 鄰接矩陣特徵值按降序排列,i個特徵值爲li.冪律1(等級指數R):節點出度dv與該節點等級rvR次冪成比例.冪律2(出度指數O):出度頻率fd與該出度dO次冪成比例.

近似冪律(hop-plot指數H):h跳內節點對(pairs of nodes)的數量與hH次冪成比例.冪律3(特徵指數E):特徵值li與其次序iE次冪成比例.

 

2.2 Small World網絡

在現實的Internet環境中,網絡拓撲並不完全滿足隨機網絡拓撲。WattStrogatz發現,只需要在規則網絡上稍作隨機改動就可以同時具備以上兩個性質。改動的方法是,對於規則網絡的每一個頂點的所有邊,以概率p斷開一個端點,並重新連接,連接的新的端點從網絡中的其他頂點裏隨機選擇,如果所選的頂點已經與此頂點相連,則再隨機選擇別的頂點來重連。當p = 0時就是規則網絡,p = 1則爲隨機網絡,對於0 < p < 1的情況,存在一個很大的p的區域,同時擁有較大的集聚程度和較小的最小距離。Small World網絡的幾何性質如圖所示。

p值不同的small world網絡

(1)平均路徑。圖中被隨機選擇又重新連結後的線稱爲捷徑,它對整個網絡的平均路徑有着很大影響,分析表明:p>=21(NK),即在保證系統中至少出現一條捷徑的情況下,系統的平均路徑開始下降。即使是相當少的捷徑也能夠顯著地減小網絡的平均路徑長度。這是因爲每出現一條捷徑,它對整個系統的影響是非線性的,它不僅影響到被這條線直接連着的兩點,也影響到了這兩點的最近鄰、次近鄰,以及次次近鄰等。

(2) WS網絡的集團係數。r1初始固定的節點數可計算t1{ p=0時規則網絡的聚集係數爲C(0), C(0)取決於網絡結構而與尺寸N無關,因此有相對較大的值。隨着邊按一定的概率p隨機化,聚集係數在CYO}的附近變化。

(3)度分佈。WS模型是介於規則網絡和隨機網絡之間的模型,p-O時規則網絡的度分佈是中心點位於K=k8函數,P=1時隨機網絡Poisson分佈,在K=k點達到極大值。P從。變化到1的過程中,原來S函數形式的度分佈逐漸拓寬最終形成Poisson分佈。在Small World網絡的研究興起之後,越來越多的科學家投入到複雜網絡的研究中去。大家發現其實更多的其他幾何量的特徵也具有很大程度上的普適性和特定的結構功能關係。Scale Free網絡就是其中的一個重要方面。Scale Free網絡指的是網絡的度分佈符合冪率分佈,由於其缺乏一個描述問題的特徵尺度而被稱爲無標度網絡。我們都知道在統計物理學相變與臨界現象,以及在自組織臨界性(SOC)中冪率具有特殊地位。Scale-free 其實也具有small world 的特性。

 

3 非結構化P2P搜索算法

  按照搜索策略,可以分爲兩大類:盲目搜索和信息搜索。盲目搜索通過在網絡中傳播查詢信息並且把這些信息不斷擴散給每個節點。通過這種洪泛方式來搜索想要的資源。而信息搜索在搜索的過程中利用一些已有的信息來輔助查找過程。由於信息搜索對資源的存儲有一些知識,所以信息搜索能夠比較快的找到資源。

3.1 Blind search

  在最初的Gnutella協議中,使用的Flooding方法,就是一種典型的盲目搜索。在網絡中,每個節點都不知道其他節點的資源。當它要尋找某個文件,把這個查詢信息傳遞給它的相鄰節點,如果相鄰節點含有這個資源,就返回一個QueryHit的信息給Requester。如果它相鄰的節點都沒有命中這個被查詢文件,就把這條消息轉發給自己的相鄰節點。這種方式像洪水在網絡中各個節點流動一樣,所以叫做Flooding搜索。由於這種搜索策略是首先遍歷自己的鄰接點,然後再向下傳播,所以又稱爲寬度優先搜索方法(BFS)。

BFS搜索把消息傳播給所有的鄰接點,它消耗了大量的網絡帶寬,使消息堵塞嚴重,效率比較低,擴展性不好。一些人在BFS的基礎上進行改進,它的方法是隨機抽取一定比例的相鄰節點傳遞消息,而不是像Flooding一樣把查詢信息傳播給所有鄰接點。這種修正的極大地減少了網絡中的查詢信息,但是在命中率上不如BFS

Iterative Deepening:這種搜索策略是在初始階段,給TTL一個很小的值,如果在TTL減爲0,還沒有搜索到資源,則給TTL重新賦更高的值。這種策略可以減少搜索的半徑,但是在最壞的情況下,延遲很大。

Random Walk: 在隨機漫步中,請求者發出K個查詢請求給隨機挑選的K個相鄰節點。然後每個查詢信息在以後的漫步過程中直接與請求者保持聯繫,詢問是否還要繼續下一步。如果請求者同意繼續漫步,則又開始隨機選擇下一步漫步的節點,否則中止搜索。

Gnutella2: 建立super-node,它存儲着離它最近的葉子節點的文件信息,這些SuperNode,再連通起來形成一個Overlay Network.當葉子節點需要查詢文件,它首先從它連接的SuperNode的索引中尋找,如果找到了文件,則直接根據文件所存儲的機器的IP地址建立連接,如果沒有找到,則SuperNode把這個查詢請求發給它連接的其他超級節點,直到得到想要的資源。

3.2 Informed Search Methods

3.2.1 Cache Method

 

這種方法不同於盲目搜索很大的地方在與它在每個節點上,不管是中央節點還是簡單節點都存有路徑信息。這就是Cache的思路。新的搜索並不需要直接達到資源的存儲地,只要在搜索的路徑中找到以前搜索的記錄也就是在它以前的搜索的基礎上找到源IP地址,就可以把請求消息返回。這樣可以極大的減少搜索的消息,提高效率。

3.2.2 Mobile Agent based Method

移動Agent是一個能在異構網絡中自主地從一臺主機遷移到另一臺主機,並可與其他Agent或資源進行交互的程序。Agent非常適合在網絡環境中來幫助用戶完成信息檢索的任務。現在意大利的一些研究人員在Mobile Agent 結合P2P方面做了一些前沿的研究,其中的一些想法,就是通過在P2P軟件中嵌入Agent的運行時環境。當有節點需要搜索的時候,它發送一個移動Agent 給它相鄰的節點,移動Agent記錄着它的一些搜索的信息。當這個Agent到達一臺新的機器上,然後在這個機器上進行資源搜索任務,如果這臺機器上沒有它想要的資源,則它把這些搜索的信息傳給它的鄰節點,如果找到資源,則返回給請求的機器。

  關於搜索方法綜述:參照[ Chonggang Wang Bo LiPeer-to-Peer Overlay Networks: A Survey]

   [Hybrid Search Schemes for Unstructured Peer-to-Peer Networks]   

    

4 P2P帶來的信息安全問題

4.1 知識產權保護
  

   P2P共享網絡中普遍存在着知識產權保護問題。儘管目前GnutellaKazaaP2P共享軟件宣傳其骨幹服務器上並沒有存儲任何涉及產權保護的內容的備份,而僅僅是保存了各個內容在互聯網上的存儲索引。但無疑的是,P2P共享軟件的繁榮加速了盜版媒體的分發,提高了知識產權保護的難點。美國唱片工業協會RIAA(Recording Industry Association of America)與這些共享軟件公司展開了漫長的官司拉鋸戰,著名的Napster便是這場戰爭的第一個犧牲者。另一個涉及面很關的戰場則是RIAA和使用P2P來交換正版音樂的平民。從20041月至今RIAA已提交了1000份有關方面的訴訟。儘管如此,至今每個月仍然有超過150,000,000的歌曲在網絡上被自由下載。後Napster時代的P2P共享軟件較Napster更具有分散性,也更難加以控制。即使P2P共享軟件的運營公司被判違法而關閉,整個網絡仍然會存活,至少會正常工作一段時間。
  另一方面,Napster以後的P2P共享軟件也在迫切尋找一個和媒體發佈廠商的共生互利之道。如何更加合法合理的應用這些共享軟件,是一個新時代的課題。畢竟P2P除了共享盜版軟件,還可以共享相當多的有益的信息。
  網絡社會與自然社會一樣,其自身具有一種自發地在無序和有序之間尋找平衡的趨勢。P2P技術爲網絡信息共享帶來了革命性的改進,而這種改進如果想要持續長期地爲廣大用戶帶來好處,必須以不損害內容提供商的基本利益爲前提。這就要求在不影響現有P2P共享軟件性能的前提下,一定程度上實現知識產權保護機制。目前,已經有些P2P廠商和其它公司一起在研究這樣的問題。這也許將是下一代P2P共享軟件面臨的挑戰性技術問題之一。

4.2 網絡病毒傳播

   隨着計算機網絡應用的深入發展,計算機病毒對信息安全的威脅日益增加。特別是在P2P環境下,方便的共享和快速的選路機制,爲某些網絡病毒提供了更好的入侵機會。
  由於P2P網絡中邏輯相鄰的節點,地理位置可能相隔很遠,而參與P2P網絡的節點數量 又非常大,因此通過P2P系統傳播的病毒,波及範圍大,覆蓋面廣,從而造成的損失會很大。
  在P2P網絡中,每個節點防禦病毒的能力是不同的。只要有一個節點感染病毒,就可以通過內部共享和通信機制將病毒擴散到附近的鄰居節點。在短時間內可以造成網絡擁塞甚至癱瘓,共享信息丟失,機密信息失竊,甚至通過網絡病毒可以完全控制整個網絡。
  一個突出的例子就是2003年通過即時通訊(Instant Message)軟件傳播病毒的案例顯著增多。包括Symantec公司和McAfee公司的高層技術主管都預測即時通訊軟件將會成爲網絡病毒傳播和黑客攻擊的主要載體之一。
  隨着P2P技術的發展,將來會出現各種專門針對P2P系統的網絡病毒。利用系統漏洞,達到迅速破壞、瓦解、控制系統的目的。因此,網絡病毒的潛在危機對P2P系統安全性和健壯性提出了更高的要求,迫切需要建立一套完整、高效、安全的防毒體系。

   其它信息安全問題還包括反動影片、色情影片的在P2P氾濫,對國家、青少年造成的負面影響。

   詳細可參照[程學旗等  信息技術快報 2004年第三期 P2P技術與信息安全]

5 結尾

5.1 P2P一些資源

http://www.ppcn.net/  中國的P2P門戶網站

http://iptps05.cs.cornell.edu/IPTPS_cfp.htm  P2P領域著名的國際會議

http://www.jxta.org/  Java Peer to Peer技術網站

http://www.hpl.hp.com/techreports/2002/HPL-2002-57R1.pdf   非常經典的P2P綜述文章

http://david.weekly.org/code/napster.php3 第一個Peer to Peer軟件-Napster 協議

http://www.globus.org/alliance/publications/papers/kazaa.pdf 非常著名的kaZaa軟件解析

http://p2p.weblogsinc.com/ 比較著名的p2p weblog 

http://www.google.com   最後,當然是好幫手 Google 了 :)

5.2 致謝和建議

這篇文章是我在中科院計算所的一篇技術報告的部分內容(修改)。最先是在2005-4-25號掛在自己的個人主頁上。目的是讓更多的朋友通過閱讀對P2P技術有一個大概的瞭解。爲了讓文章變得通俗易懂,我刪除了其中非常細節的部分,這次又對第一版進行了修改。承蒙厚愛,在這期間,我收到了很多朋友,包括學校的同學、公司的技術人員給我寫的email,表達對文章的肯定,希望一起探討p2p的問題,這裏表示感謝。

因爲P2P技術包括很多方面,以一篇文章之力肯定不能面面俱到,所以要想對P2P進行深入的研究,個人覺得,一定多看Paper,多看程序。記得剛寫這篇文章時候,包括從Google, Citeseer,IEEE , ACMWanfang期刊網等搜索了624paper(英文610篇,中文14篇),然後對其進行了分類,包括各種綜述、拓撲網絡、搜索算法、安全等等。這絕對是一個必由之路。另外,由於大多數P2P軟件都是開源的,所以通過看源碼可以對其進行更深的瞭解。

 
發佈了1 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章