網絡資源的變遷,促使網絡計算模式發生變化。相應地一種采用對等策略計算模式的網絡——對等網絡(P2P)得到了廣泛關注。P2P是一種分布式網絡,網絡的參與者共享他們所擁有的硬件資源,這些共享資源能被其他對等結點直接訪問而無需經過中間實體。網絡中的參與者既是資源提供者,又是資源獲取者。為了使讀者對P2P有所了解,本講座分3期對P2P進行介紹:上一期介紹了P2P的拓撲結構、組織模式以及核心查找算法;本期繼續介紹P2P研究現狀、應用情況以及下一步演進與拓展方向;下一期將討論P2P給Internet帶來的機遇和挑戰,并探討P2P對電信運營商和設備制造商的影響。
基金項目:國家“973”計劃項目
(2003CB314806);國家自然科學基金項目
(90204003)
2.3 結構化網絡模型
結構化模型與非結構化模型的根本區別在于每個結點所維護的鄰居是否能夠按照某種全局特定的規則(而不是隨機的方式)組織起來。結構化模型這種組織方式決定了結點之間可以方便地快速查找。
結構化對等網絡(P2P)模型是一種采用純分布式的消息傳遞機制和根據關鍵字進行查找的定位服務模型,目前的主流方法是采用分布式哈希表(DHT)技術。
分布式哈希表是一個廣域范圍內大量結點共同維護的巨大散列表。散列表被分割成不連續的塊,每個結點被分配給一個屬于自己的散列塊,并成為這個散列塊的管理者。在DHT技術中,網絡結點按照一定的方式分配一個唯一的結點標識符,資源對象通過散列運算產生一個唯一的資源標識符。(類比下棋應用中,每個下棋人都會被分配一個唯一的標識,通過這個標識,通過某種運算可聯系周邊結點,這樣所有的下棋人就被組織成了一個環)。當需要查找該資源時,通過散列運算可定位到存儲該資源的結點。
經典的DHT案例包括Chord、CAN、Pastry、Tapestry等算法。
Chord算法的主要貢獻是提出了一個分布式查找協議,該協議可將指定的關鍵字映射到對應的結點。在Chord算法中,結點并不需要知道所有其他結點的信息,在由N個結點組成的網絡中,每個結點只需要維護其他O(logN)個結點的信息,同樣,每次查找只需要O(logN)條消息。
CAN算法采用了多維的標識符空間來實現分布式散列算法。CAN將所有結點映射到一個n維的笛卡爾空間中,并為每個結點盡可能均勻地分配一塊區域。CAN采用的路由算法相當直接和簡單,知道目標點的坐標后,就將請求傳給當前結點四鄰中坐標最接近目標點的結點。
Pastry算法是微軟研究院提出的可擴展的分布式對象定位和路由算法,可用于構建大規模的P2P系統。在Pastry算法中,每個結點分配一個128比特的結點標識符,所有的結點標識符形成了一個環形的空間,范圍從0到2128-1,結點加入系統時通過散列結點的IP地址在128比特空間中隨機
分配。
Tapestry算法的思想來源于Plaxton算法,在Plaxton算法中,結點使用自己所知道的鄰近結點表,按照目的標識符來逐步傳遞消息。Tapestry算法在Plaxtion算法的基礎上,加入了容錯機制,從而可適應P2P動態變化的特點。
由于采用了確定性拓撲結構,DHT類結構能夠自適應結點的動態加入和退出,有著良好的可擴展性、魯棒性、結點標識分配的均勻性和自組織能力。DHT可以提供精確的資源發現,只要目的結點存在于網絡中,DHT總能發現它。總的說來,DHT算法比較適合大規模對等網絡應用,目前這種技術的應用主要集中在數據和文件共享系統上。
DHT網絡結構最大的問題是DHT的維護機制較為復雜,尤其是結點頻繁加入和退出造成的網絡波動會極大地增加DHT的維護代價(類比下棋應用中,每次下棋人進入系統和離開系統,都需要重新調整P2P結點的拓撲)。DHT所面臨的另外一個問題是由于DHT建立在精確哈希散列的基礎上,因此僅支持精確關鍵詞匹配查詢,無法支持內容/語義等復雜查詢(比如下棋應用中,只能通過標識來逐步發現下棋人,不能通過一些模糊信息,比如下棋人的段位信息、下棋人和自己之間的網絡性能信息進行查詢)。基于分布式哈希表的路由機制也有無法解決的問題,比如經過哈希運算之后,結點的位置信息被破壞了,來自同一個子網的站點很可能結點號相距甚遠,不利于查詢性能的優化(通過DHT建立起來的拓撲可能與實際的網絡拓撲不相符合,比如湖北和廣州的兩個棋友可能被分配在相鄰的位置,而兩者在網絡通信上時延很大)。

2.4 混合式網絡模型
Kazaa模型是P2P混合式模型(半分布式結構)的典型代表(如圖5所示,eDonkey、eMule等也可以劃分為這個類型),它在純P2P分布式模型基礎上引入了超級結點的概念,綜合了集中式P2P快速查找和純P2P去中心化的優勢。Kazaa模型將結點按能力不同(計算能力、內存大小、連接帶寬、網絡滯留時間等)區分為普通結點和搜索結點兩類。其中搜索結點與其臨近的若干普通結點之間構成一個自治的簇,簇內采用基于集中目錄式的P2P模式,而整個P2P網絡中各個不同的簇之間再通過純P2P的模式將搜索結點相連起來,甚至也可以在各個搜索結點之間再次選取性能最優的結點,或者另外引入一個新的性能最優的結點作為索引結點來保存整個網絡中可以利用的搜索結點信息,并且負責維護整個網絡的結構。
由于普通結點的文件搜索先在本地所屬的簇內進行,只有查詢結果不充分的時候,再通過搜索結點之間進行有限的“泛洪”。這樣就極為有效地消除了純P2P結構中使用“泛洪”算法帶來的網絡擁塞、搜索遲緩等不利影響。同時,由于每個簇中的搜索結點監控著所有普通結點的行為,這也能確保一些惡意的攻擊行為能在網絡局部得到控制,并且超級結點的存在能在一定程度上提高整個網絡的負載平衡。總的來說,基于超級結點的混合式P2P網絡結構比以往有較大程度的改進。然而,由于超級結點本身的脆弱性也可能導致其簇內的結點處于孤立狀態,因此這種局部索引的方法仍然存在著一定的局限性。
半分布式結構的優點是性能、可擴展性較好,較容易管理,但對超級結點依賴性大,易于受到攻擊,容錯性也受到影響。

2.5 各種結構模型的性能比較
表2對中心化拓撲、全分布式非結構化拓撲、全分布式結構化拓撲、半分布式拓撲4種結構模型的綜合性能進行了比較。可以看出不同結構模型在系統復雜性、可擴展性、功能上有不同的均衡性能。
3 P2P網絡的典型應用
Internet最初產生和發展的主要動力之一就是資源共享。而文件交換的需求直接導致了P2P技術的興起,這是P2P最初的應用,也是最成功的應用之一。針對這類應用的共享軟件Napster使得人們在客戶/服務器模式下開始重新認識P2P思想對人們使用網絡習慣的影響。
隨著人們對P2P思想的理解和技術的發展,作為一種軟件架構,P2P還可以被開發出種類繁多的應用模式,除了最初的文件交換之外,還出現了一些分布式存儲、深度搜索、分布式計算、個人即時通信和協同工作等新穎應用。其中最著名的例子是基于分布式計算的搜索外星文明的科學實驗SETI@home,每個志愿參加者只需下載并運行相應軟件,就可以貢獻自己閑置的計算能力,參與分析Arecibo射電望遠鏡的無線電磁波數據并回送計算數據。另外,隨著Sun公司將其JXTA協議擴展到諸如個人數字助理(PDA)和移動電話等手持終端上,并允許人們屏蔽具體的物理平臺進行資料共享和文件交換等,P2P技術在移動通信和智能網領域也開始呈現出較大應用前景。
近年來,Internet上各種P2P應用軟件層出不窮,P2P計算技術正不斷應用到軍事、商業、政府信息、通信等領域。根據具體應用不同,P2P可以分為如下類型:
(1)提供文件和其他內容共享的P2P網絡,例如Napster、Gnutella、eDonkey、emule、BitTorrent等。
(2)挖掘P2P對等計算能力和存儲共享能力的應用,例如Xenoservers[25]、SETI@home、Avaki、Popular Power等。
(3)實現基于P2P方式的協同處理與服務共享平臺,例如JXTA、Magi、Groove、NET My Service等。
(4)提供即時通信交流,例如ICQ、OICQ、Yahoo Messenger等。
(5)實現安全的P2P通信與信息共享,例如Skype、Crowds、Onion Routing等等。
(6)實現P2P應用層組播。就是在應用層實現組播功能而不需要網絡層的支持,這樣就可以避免由于網絡層遲遲不能部署對組播的支持而使組播應用難以進行的情況出現。應用層組播需要在參加的應用結點之間實現一個可擴展的,支持容錯能力的重疊網絡,而基于DHT的發現機制正好為應用層組播的實現提供了良好的基礎平臺。例如天天在線、QQ視頻、深圳藍波網絡、PPLive等。
(7)實現Internet間接訪問基礎結構。為了使Internet更好地支持組播、單播和移動等特性,Internet間接訪問基礎結構提出了基于匯聚點的通信抽象。在這一結構中,并不把分組直接發向目的結點,而是給每個分組分配一個標識符,目的結點根據標識符接收相應的分組。標識符實際上表示的是信息的匯聚點。目的結點把自己想接收的分組的標識符預先通過一個觸發器告訴匯聚點,當匯聚點收到分組時,將會根據觸發器把分組轉發給相應的目的結點。Internet間接訪問基礎結構實際上在Internet上構成了一個重疊網絡,它需要對等網絡的路由系統提供相應的支持。
4 P2P網絡的研究和市場現狀
4.1 中國學術機構P2P研究現狀
(1)北京大學的Maze系統
Maze是北京大學網絡實驗室開發的一個中心控制與對等連接相融合的對等計算文件共享系統,結構類似于共享軟件Napster,對等計算搜索方法類似于共享軟件Gnutella。網絡上的一臺計算機,不論是在內網還是外網,可以通過安裝運行Maze的客戶端軟件自由加入和退出Maze系統。每個結點可以將自己的一個或多個目錄下的文件共享給系統的其他成員,也可以分享其他成員的資源。Maze系統支持基于關鍵字的資源檢索,也可以通過好友關系直接獲得。
(2)華中科技大學的AnySee系統
AnySee是華中科大設計研發的視頻直播系統。它采用了一對多的服務模式,支持部分網絡地址轉換(NAT)和防火墻的穿越,提高了視頻直播系統的可擴展性。
4.2 企業研發產品
(1)廣州數聯軟件技術有限公司的POCO平臺
POCO是中國最大的P2P用戶分享平臺,是有安全、流量控制力的無中心服務器的第三代P2P資源交換平臺,也是世界范圍內少有的盈利的P2P平臺。目前已經形成了可以支持2 600萬用戶的能力,平均在線用戶58.5萬,在線用戶峰值突破71萬,并且全部是寬帶用戶。
(2)深圳市點石軟件有限公司的OP平臺
OP又稱為Openext Media Desktop,一個網絡娛樂內容平臺,是共享軟件Napster的后繼者,它可以最直接的方式找到用戶想要的音樂、影視、軟件、游戲、圖片、書籍以及各種文檔,隨時在線共享文件,容量數以億計,號稱“十萬影視、百萬音樂、千萬圖片”。OP整合了Internet Explorer、Windows Media Player、RealOne Player和ACDSee,是中國的網絡娛樂內容平臺。
(3)基于P2P的在線電視直播共享軟件PPLive
PPLive是一款用于互聯網上大規模視頻直播的共享軟件。它使用網狀模型,有效地解決了當前網絡視頻點播服務的帶寬和負載有限問題,實現用戶越多,播放越流暢的特性,整體服務質量大大提高(2005年的超級女聲決賽期間,這款軟件非常地火爆,同時通過它觀看湖南衛視的觀眾達到上萬人)。
4.3 國際P2P技術應用情況
國際開展P2P研究的學術團體主要包括P2P工作組(P2PWG)、全球網格論壇(Global Grid Forum,GGF)。目前P2PWG已經和GGF合并,由該論壇管理P2P計算相關的工作。GGF負責網格計算和P2P計算等相關內容的標準化工作。
從國外公司對P2P計算的支持力度來看,Sun公司、Microsoft公司和Intel公司投入較大。
Sun公司以Java技術為背景,開展了JXTA項目。JXTA是基于Java的開放P2P平臺,任何個人和組織均可以加入該項目。因此,該項目不僅吸引了大批P2P研究人員和開發人員,而且已經發布了基于JXTA的即時聊天軟件包。JXTA定義了一組核心業務:認證、資源發現和管理。在安全方面,JXTA加入了加密軟件包,允許使用該加密包進行數據加密,從而保證消息的隱私、可認證性和完整性。在JXTA核心之上,還定義了包括內容管理、信息搜索以及服務管理在內的各種其他可選JXTA服務。在核心服務和可選服務基礎上,用戶可以開發各種JXTA平臺上的P2P應用。
Microsoft公司成立了Pastry項目組,主要負責P2P計算技術的研究和開發工作。目前Microsoft公司已經發布了基于Pastry的軟件包SimPastry/VisPastry。美國休斯頓萊斯(Rice)大學也在Pastry的基礎之上發布了FreePastry軟件包。
Intel公司成立了P2P工作組開展P2P的研究。工作組成立以后,Intel公司積極與應用開發商合作,開發P2P應用平臺。2002年Intel公司發布了Net基礎架構之上的P2P加速工具包(Accelerator Kit)和P2P安全應用編程接口(API)軟件包,從而使得微軟NET開發人員能夠迅速地建立P2P安全Web應用程序。
5 P2P網絡的繼續演進

圖6表明了P2P應用進化的幾個方向(網絡結構、計算資源、信息、人際網、智能化)及其對網絡的促動。基于這些要素的組合,P2P應用在不斷進化之中。
5.1 對計算能力的拓展
“計算拓展”意味著分散的計算機和設備的剩余處理能力的有效應用。因特網就是一個擁有巨大剩余能力的計算機。在這個虛擬的擁有數量巨大的分散CPU的超級計算機上所能做的事情超乎想象。在這方面已經有很多成功的應用,比如搜索外星文明實驗和癌癥基因分析等,都利用了分散的計算能力。現在,通常意義上的計算機的CPU處理能力還在不斷提高,內存容量也在不斷擴大。另一方面,PDA、移動電話等等也可以看成多樣化的計算機。寬帶通信的出現使得CPU的處理能力發生了巨大的變化。在有限的網絡環境里長時接續變得平常普遍,從IPv4到IPv6的演變是不可避免的發展趨勢。
5.2 對信息/數據應用的拓展
“信息/數據拓展”意味著分散數據庫訪問技術的發展應用。在同步檢索、文件傳輸、備份文件保管方面,基于分散形式的數字化產品的開發體現了分散數據的活力。信息通常被保存在各種數據庫、文件庫、圖書館、博物館,或者以數字化商品的形式存在。通常在分散的環境里保存保管數據的方案并不十分有效。但是在人們離開保存信息的固定場所以后,希望通過網絡檢索獲取信息的時候,分散環境保存保管數據的益處就體現出來了。
在因特網上,信息檢索的工具從開始的Fetch、Gopher到通用的Browser,再到最新的P2P文件共享。可擴展標記語言(XML)在這種數據交換的背景下得到了廣泛應用。當然這種發展也帶來數字版權(Digital Copyright)等亟待解決的問題。如何使P2P技術更有效合理地得到應用需要進一步研究。
5.3 人際網的拓展
“人際網拓展”意味著要確保信息發送和接收的主體同未知或已知的同伴之間可以容易地進行交流,特別是同商業伙伴之間能容易地經常地交流。像ICQ這樣的即時交流工具就是P2P應用的一個典型代表。利用這些交流工具人們可以在網絡上方便地同具有相同愛好的個人、組織進行交流。
人在本質上都是“移動地”存在的,對各種“位置”關心或厭惡的同時,維持著“總體”的關系,這導致人們總是有欲望同他人交流信息和資源,無論是真實的還是虛擬的。也就是說人的本性之一就是:在不安于現狀,拒絕千篇一律的同時,對新奇和與眾不同的事物有挑戰的欲望。這種矛盾的存在是P2P進化的基本動力。
電子商務的本質使人們能夠在市場交易中獲得有效的競爭力。因為商業的目的,依據人們的興趣取向的不同,各種各樣的網絡交流社區出現了。比如幾乎同e-mail和Web一樣,聊天(Chat)、空間信息網格(SIG)等越來越引人注目。現在網上拍賣也成為P2P的商業形式。進一步發展,虛擬公司、虛擬組織會漸漸成為人們生活的一部分。
5.4 智能化方面的拓展
智能到底能否被創造?這是似乎是個遙遠的問題。現有的神經元系統的主要局限在于:
(1)單個神經元及其傳導模型仿真過于簡單。
(2)神經元系統只能模擬數量在幾百萬量級的神經元系統,而人腦有幾十億甚至幾百億的神經元。
(3)對人腦的工作機理了解不足。
在P2P分布式網絡下,每一個結點可以模擬足夠復雜的神經元及其傳遞模型,只要網絡足夠大,就可能達到幾百億結點的規模,再加上有線/無線傳感器網絡作為系統的“感知器官”,已經有了創造智能的條件。
(待續)
收稿日期:2005-11-22
作 者 簡 介
林宇,北京郵電大學網絡與交換國家實驗室副教授,博士。主要研究方向包括QoS控制、測量和管理、P2P技術、移動應用等。曾作為主持研究人和項目負責人參與國家“973”、國家自然科學基金、國家“863”項目10余項。已出版專著3部,發表論文60余篇,論文被SCI收錄8篇,EI收錄近30篇。
程時端,北京郵電大學教授、博士生導師,北京郵電大學學術委員會副主任。目前研究方向包括ISDN、ATM、TCP/IP、ATM和IP網的話音通信技術、協議工程、流量工程、寬帶網絡性能和服務質量等。
李琦,北京大學教授、博士生導師,中國圖形圖像學會技術委員會主任,全國地理信息標準化技術委員會委員,國家電子標簽標準工作組成員,國家海洋局信息中心特聘教授,國務院信息化工作辦公室顧問,北京市政府專家顧問,中國數字地球發展戰略研究專家。