p2p技術分類與發展方向

P2P,即英文Peer-to-Peer的縮寫,中譯爲對等互聯或點對點技術。它區別與傳統的客戶端/服務器(C/S)或瀏覽器/服務器(B/S)模式,最大的不同是降低了對服務器的依賴,在P2P網絡中各Peer之間的關係是對等的,Peer同時具有Client和Server的特點。它們可以直接通信,進行文件傳輸,無需依賴集中式服務器或資源就可完成。它在寬帶網絡方面具備強大的應用潛力並解決了互聯網模型中的弱鏈接模塊的信息傳遞這個障礙,使得互聯網的信息流動更加通暢。

    P2P改變了Internet以大網站爲中心的狀態、重返"非中心化",並把權力交還給用戶。從某種意義上講,P2P體現了Internet的本質,從而滿足了人們信息共享與消息傳遞的網絡需求。

(一) 常用P2P協議

  一、Napster:世界上第一個大型的P2P應用網絡;中央集中式,倒閉了。

  Napster,這是當時很火的一種共享服務,主要用於查找mp3,它有一個服務器用於存儲mp3文件的鏈接位置並提供檢索,而真正的mp3文件則存放在千千萬萬的個人電腦上,搜索到的文件通過P2P方式直接在個人電腦間傳播共享。這種方式的缺點就是需要一臺服務器,在mp3文件版權之爭火熱的年代,Napster很快就成爲衆矢之的,被衆多唱片公司訴訟侵犯版權而被迫關閉。當然服務器一關Napster也就不復存在。

  二、Gnutella和Gnutella2(Gnutella2是對Gnutella的改進和擴展):開源的;第一個真正非中心的無結構P2P網絡,文件查詢採用洪泛方式。

  Gnutella吸取了Napster的失敗教訓,將P2P的理念更推進一步:它不存在中樞目錄服務器,所有資料都放在個人電腦上。用戶只要安裝了該軟件,就將自己的電腦立即變成一臺能夠提供完整目錄和文件服務的服務器,並會自動搜尋其它同類服務器,從而聯成一臺由無數PC組成的超級服務器網絡。傳統網絡的Server和Client在它的面前被重新定義。

  三、FastTrack:

  第一個客戶端是KazaA。協議與Gnutella類似。02-03年的最大用戶網,05年退至第三名。衰退原因是這個網絡無法應對衆多用戶同時使用,而且有版權擁有者pollution的行爲,以及間諜軟件的問題。

  iMesh也是以FastTrack爲協議的。

  四、eDonkey,overnet,kad:

  自私的人們在利用P2P軟件的時候大多隻願“獲取”,而不願“共享”,P2P的發展遇到了意識的發展瓶頸。不過,一頭“驢”很快改變了遊戲規則,這就是電驢-eDonkey,它引入了強制共享機制。

  eDeonkey將網絡節點分成服務器層和客戶層,並且將文件分塊以提高下載速度。eDonkey網絡下最普及的p2p客戶端程序是eDonkey2000和emule。Emule是eDonkey的後繼,但是更出色,採用了DHT來構建底層網絡拓撲,目前非常流行的P2P文件共享軟件。

  overnet設計的目的是取代eDonkey,它沒有中心服務器,但用戶數少於eDonkey。

  Kademlia 協議,在這裏叫做kad網絡,採用UDP方式通信。很類似於overnet,幾乎只有eDonkey用戶使用它。

  五、BitTorrent:藉助分散式服務器提供共享文件索引的混合式P2P網絡,文件分片下載。

  下載速度高,沒有查找功能,種子具有時效性。它將中心目錄服務器的穩定性同優化的分佈式文件管理結合起來。

  六、Direct Connect:

  一種常用在小的網絡和大學內部網絡中的協議,適用於小網絡環境中,DC++是常見客戶端。

  七、Ares:類似Gnutella網絡。

(二) 現有P2P技術主要涉及的領域和發展方向

  (1)提供文件和其它內容共享的P2P網絡,例如Napster、Gnotella、Freenet、CAN、eDonkey、eMule、BitTorrent等。

  (2)基於P2P方式的協同處理與服務共享平臺,例如JXTA、Magi、Groove、.NETMy Service等。

  (3)即時通訊交流,包括ICQ、OICQ、Yahoo Messenger等。

  (4)安全的P2P通訊與信息共享,利用P2P無中心的特性可以爲隱私保護和匿名通訊提供新的技術手段。例如CliqueNet、Crowds、Onion Routing等。

  (5)語音與流媒體:由於P2P技術的使用,大量的用戶同時訪問流媒體服務器,也不會造成服務器因負載過重而癱瘓。例如Skype、Coolstream、AnyChat等。

  (6)網格計算,挖掘P2P分佈計算能力。使用P2P技術以集中那些聯接在網絡上的電腦的空閒的CPU時間片斷、內存空間、硬盤空間來替代“超級計算機”。例如SETI@home、Avaki、Popular Power、distributed.net等。網格計算的宗旨是:將遍佈全球的數以萬計的計算節點通過高速Internet連接並組織成一個巨系統,使其能夠透明、高效地完成複雜計算任務。

  (7)IBM、微軟、Ariba也在合作開展一個名爲UDDI的項目以將B2B電子商務標準化

  (8)Eazel正在建立下一代的Linux桌面。

  (9)Jabber已經開發了一種基於XML、開放的即時訊息標準,Jabber被認爲是建立了未來使用P2P數據交換的標準。

  (10)Lotus Notes的開發者創建的Groove試圖“幫助人們以全新的方式溝通”。

  (11)英特爾也在推廣它的P2P技術以幫助更有效地使用芯片的計算能力。

(三) P2P資源定位方式

  P2P網絡中進行資源定位是首先要解決問題。一般採用三種方式:

  (1)集中方式索引

  每一個節點將自身能夠提供共享的內容註冊到一個或幾個集中式的目錄服務器中。查找資源時首先通過服務器定位,然後兩個節點之間再直接通訊。例如早期的Napster。這類網絡實現簡單,但往往需要大的目錄服務器的支持,並且系統的健壯性不好。

  (2)廣播方式

  沒有任何索引信息,內容提交與內容查找都通過相鄰接節點直接廣播傳遞。例如Gnutella。一般情況下,採取這種方式的P2P網絡對參與節點的帶寬要求比較高。

  (3)動態哈希表的方式

  上述兩種定位方式可以依據不同的P2P應用環境進行選擇,但是人們普遍看好DHT(Distributed Hash Table,分散式雜湊表)方式。基於DHT的P2P網絡在一定程度上可以直接實現內容的定位。一個矛盾的問題是:如果一個節點提供共享的內容表示越複雜,則哈希函數越不好選擇;相應的,網絡的拓撲結構就越複雜。而如果內容表示簡單,則又達不到真正實現依據內容定位的能力。目前大多數DHT方式的P2P網絡對節點所提供共享內容的表示都很簡單,一般僅僅爲文件名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章