摘要:P2P應用軟件主要包括文件分發軟件、語音服務軟件、流媒體軟件。目前P2P應用種類多、形式多樣,沒有統一的網絡協議標準,其體系結構和組織形式也在不斷發展。P2P應用已占運營商業務總量的60%~80%,P2P應用所產生的流量具有分布非均衡、上下行流量對稱、流量隱蔽、數據集中等特性。在P2P技術的發展道路上,有許多尚待解決的問題。版權問題一直是P2P發展的一個不確定因素,如何在技術層面支持合法文件的分發是需要解決的重要問題。安全問題也是P2P領域的重要研究課題,如何在P2P網絡中實現數據存取安全、路由安全、用戶身份認證和身份管理都需要進一步研究。此外,如果能夠實現P2P應用之間的統一資源定位,統一路由,使得P2P技術有一個統一開發標準,那么就能夠融合P2P技術,提升P2P應用的整體性能。
關鍵詞:對等網絡;覆蓋層網絡;分布式哈希表
Abstract:P2P application softwares include file delivery software, Voice over IP (VoIP) software, and streaming media software. Because of its various applications, there is still no formed standard for P2P network protocol. The architecture and organization of P2P are also constantly developing. However, network traffic generated by P2P takes a considerable 60%-80% of total traffic. The P2P traffic has the properties of imbalanced distribution, symmetric uploading and downloading, concealment flow, and data concentration. There are many open questions in P2P technology. Firstly, the copyright question is always an uncertainty factor for the development of P2P. Supporting the delivery of legal files at a technical level is an important problem that should be solved. Secondly, security, such as data access security, security routing, account authentication and identity, is another field which should be seriously considered. Moreover, if the uniformed resource location and uniformed routing between P2P applications are realized to form a uniformed development standard, all P2P technologies can be integrated, and the entire performance of P2P applications will improve.
Key words:P2P network; overlay network; DHT
基金項目:國家自然科學基金資助項目(863計劃)(No.60473082);國家重點基礎研究發展規劃項目(973計劃)(No.2003CB314801)
P2P應用已經成為互聯網的主要應用之一,P2P的模式也成為許多新型業務的首選模式。P2P技術被廣泛應用于文件共享、網絡視頻、網絡電話等領域,以分布式資源共享和并行傳輸的特點,為用戶提供了更多的資源、更高的可用帶寬以及更好的服務質量。P2P節點不依賴中心節點而是依靠網絡邊緣節點,實現自組織與對等協作的資源發現和共享,因此擁有自組織、可擴展性、魯棒性、容錯性以及負載均衡等優點。Cachelogic[1]公司的統計數據表明P2P已經占據了50%以上的網絡帶寬,而全球最熱門的P2P文件分發軟件eMule[2]和BitTorrent[3]產生的流量占了P2P總流量的50%以上。此外,PPLive[4]和CoolStreaming[5]等實時的流媒體應用發展也極其迅速,用戶數目急速增長。可以預見,隨著使用P2P實時流媒體(P2P-TV)用戶數目的迅速增加,在未來因特網業務提供商(ISP)主干鏈路的流量中,P2P實時流媒體應用將占有更大比例。
1 P2P技術原理
P2P應用軟件主要有:文件分發軟件,如BitTorrent、eMule;語音服務軟件,如Skype[6];流媒體軟件,如PPLive。目前P2P應用并沒有統一的網絡協議標準,種類多、形式多樣,其體系結構和組織形式也在不斷發展。
1.1 P2P的體系結構
P2P應用按照它的體系結構,可以分成3代,如圖1所示。
第1代P2P應用的是集中控制;第2代P2P是一種完全的無中心的分布式網絡;第3代P2P是一種混合式的體系結構,同時具備前兩代體系結構高效性和容錯性的優點。
1.2 P2P網絡的組織結構
P2P網絡的組織結構是P2P體系結構的具體實現。P2P網絡在本質上是無結構,無集中控制的分布式系統,節點通過自組織的Overlay網絡(覆蓋層網絡)來實現文件分發、流媒體以及語音等服務。Overlay網絡的組織方式可以分為有結構和無結構兩種[7]。有結構的P2P Overly網絡是指Overlay的網絡拓撲相對固定,內容的存放也相對有序。有結構的P2P Overly網絡通常使用分布式哈希表(DHT)來實現,文件存放的位置由文件的唯一標識符決定。無結構的Overlay網絡通過一些松散的規則組織在一起,其文件的存放也表現出很大隨機性。
1.2.1 有結構的Overlay網絡
有結構的Overlay網絡也有很多種不同的實現方法,比較著名的有結構的Overlay網絡包括Chord[8]、CAN[9]、Pastry[10]、eCAN[11],下面對Chord的工作原理進行簡單介紹。
Chord的原理如下:
節點在邏輯上按照標識的大小組成一個環,數據同樣有標識并且存放在和自己標識最近的節點上。當在某一個節點上輸入查詢請求的時候,如果節點的標識小于數據的標識,則向該節點知道的下一個節點請求文件,下一個節點如果擁有該文件則返回結果,否則按前面的方式繼續轉發給下一個節點。其中每個Chord節點只需要知道關于部分節點和到達它們的路由信息。Chord路由查找過程有兩個重要特性:每個節點都只需要知道一部分節點的信息,而且離它越近的節點,它就知道越多的關于它們上面的數據信息;每個節點的路由表只有部分節點的路由信息并且不能確定任意一個關鍵字的確切位置,只能知道下一跳的節點。圖2所示為Chord節點維護的指針表,其中N 4代表第4個節點。
1.2.2 無結構的Overlay網絡
典型的無結構的Overlay網絡如Freenet[12]、Gnutella[13]、FastTrack[14]、KaZaA[15],下面簡單介紹一下Gnutella的工作原理。

Gnutella是一種非集中控制的協議,Gnutella被廣泛使用并且有很多新的改進。Gnutella的特別之處在于它的分布式的文件定位和響應方法,圖3所示為Gnutella文件的定位方法。由于數據的查詢不依賴于任何有結構的拓撲結構,其查詢的方式只能把請求廣播到所有鄰近的節點(Peer),相應節點響應消息,之后下載所需的文件。這種網絡的突出優勢在于良好的健壯性和可擴展性,明顯的缺點在于會帶來很大的查詢消耗。一個節點想要加入Gnutella的網絡,首先連接一些全局的可以連接的節點,一旦建立連接,節點以廣播的方式通告給其他的存在。開始每一個消息被賦予一個唯一的隨機產生的標識,其他節點記錄到該節點的路由信息,用來防止重新廣播和后向傳播。廣播消息通過生存時間(TTL)和經過的跳數來控制消息泛洪的范圍。節點之間通過周期性的類似Ping機制的消息維護彼此的連接,每個節點建立的連接都根據本地信息來選擇。最新的Gnutella引入了超級節點的概念用來提高路由查找的效率。但是由于網絡本身的自組織特性使得這種超級節點的部署優勢不能充分的發揮。
2 P2P流量特性
據統計,P2P應用已占運營商業務總量的60%~80%,已經成為網絡帶寬的最大消費者,對底層網絡造成了巨大的影響。

2.1 P2P流量產生的影響
P2P網絡的發展首先對于個人用戶接入網絡的性能提出了更高的要求。由于P2P流量特征具有上下行流量對稱的特性,這使得直接面向用戶的接入網絡需要相應提高所能承載上行流量的能力。對大型的企業用戶,其關注目標是網絡的可控性以及安全性。P2P相對隨機的端口號,使得企業難以對內部的網絡實行有效地監測和管理,加大了日常維護的難度。對于ISP,P2P應用的影響不僅增加了網絡升級的難度,同時也將降低了網絡的總體性能以及P2P本身的服務質量。用戶可以選擇高帶寬接入以正常使用各種P2P應用,企業用戶可以通過謹慎的企業內部安全規范的制訂來保證網絡的正常使用,而ISP成為P2P應用產生流量的最終承擔者,設備升級速度加大,維護費用升高。有效識別和管理網絡中的P2P流量成為ISP最為關心的問題。
2.2 P2P流量特性
P2P的流量呈現出與傳統流量不同的特性,P2P應用所產生的流量具有分布非均衡的特性、上下行流量的對稱特性、流量的隱蔽性、數據集中性等。

P2P流量的分布具有明顯的非均衡特性,在網絡中,大部分節點的數據流量都是從為數很少的一些節點獲取。文獻[16]對該流量分布的非均衡性做了比較詳細的研究。文章認為,P2P中服務提供者的價值不應該只以高的鏈路帶寬來刻畫,還應考慮節點的可用時間。在實驗結果中,系統只有20%的主機擁有93%以上的實際在線時間。不到20%的P2P節點擁有80%以上的P2P網絡在線時間。而正是這些少數的長時間在線主機貢獻了網絡中的主要流量。文獻[17]中的研究結果表明,研究者可通過僅僅監測網絡中1%的節點來達到了解整個P2P網絡中80%以上流量的目的。
P2P流量還表現出上下行流量的對稱性。在文獻[16]中對上下行流量的對稱特性進行了詳細的研究,通過對P2P上下行流量比較得出結論,具有高帶寬的用戶通常會以更長的時間為其他的節點提供下載服務,上下行對稱流量已經成為P2P網絡流量區別于其他流量的主要特征。
P2P流量還具備很強的隱蔽的特性,它們通常使用隨機端口或用戶自定義端口,無法通過簡單的端口識別P2P流量,目前常用的方法是通過特征碼檢測的方式識別P2P流量。P2P應用的特征碼處在不斷變化之中,加深了P2P流量的這種隱蔽特性。此外,對P2P節點之間傳輸文件的研究中發現,80%以上的P2P流量都是在不斷地重復傳播幾個用戶樂于獲取的熱點文件,這種熱點文件的存在影響了P2P網絡中的傳輸效率,針對P2P網絡傳輸數據的高集中性,研究者提出了一系列包括文件緩存在內的解決方案。P2P數據的集中性,已經成為網絡服務提供商控制P2P域間流量以及提高P2P服務質量的基本理論依據。
3 典型P2P應用的機制分析
分析典型的P2P應用機制可以深入了解P2P的原理。本節將對文件分發、流媒體應用、語音服務3個領域中具有代表性的軟件機制進行詳細的分析。對于這些軟件的分析有助于理解P2P技術的原理和把握P2P技術未來發展的趨勢。
3.1 BitTorrent
BitTorrent軟件用戶首先從Web服務器上獲得下載文件的種子文件,種子文件中包含下載文件名及數據部分的哈希值,還包含一個或者多個的索引(Tracker)服務器地址。它的工作過程如下:客戶端向索引服務器發一個超文本傳輸協議(HTTP)的GET請求,并把它自己的私有信息和下載文件的哈希值放在GET的參數中;索引服務器根據請求的哈希值查找內部的數據字典,隨機地返回正在下載該文件的一組節點,客戶端連接這些節點,下載需要的文件片段。因此可以將索引服務器的文件下載過程簡單地分成兩個部分:與索引服務器通信的HTTP,與其他客戶端通信并傳輸數據的協議,我們稱為BitTorrent對等協議。BitTorrent軟件的工作原理如圖4所示。BitTorrent協議也處在不斷變化中,可以通過數據報協議(UDP)和DHT的方法獲得可用的傳輸節點信息,而不是僅僅通過原有的HTTP,這種方法使得BitTorrent應用更加靈活,提高BitTorrent用戶的下載體驗。
3.2 eMule
eMule軟件基于eDonkey協議改進后的協議,同時兼容eDonkey協議。每個eMule客戶端都預先設置好了一個服務器列表和一個本地共享文件列表,客戶端通過TCP連接到eMule服務器進行登錄,得到想要的文件的信息以及可用的客戶端的信息。一個客戶端可以從多個其他的EMule客戶端下載同一個文件,并從不同的客戶端取得不同的數據片段。eMule同時擴展了eDonkey的能力,允許客戶端之間互相交換關于服務器、其他客戶端和文件的信息。eMule服務器不保存任何文件,它只是文件位置信息的中心索引。eMule客戶端一啟動就會自動使用傳輸控制協議(TCP)連接到eMule服務器上。服務器給客戶端提供一個客戶端標識(ID),它僅在客戶端服務器連接的生命周期內有效。連接建立后,客戶端把其共享的文件列表發送給服務器。服務器將這個列表保存在內部數據庫內。eMule客戶端也會發送請求下載列表。連接建立以后,eMule服務器給客戶端返回一個列表,包括哪些客戶端可以提供請求文件的下載。然后,客戶端再和它們主動建立連接下載文件。圖5所示為eMule的工作原理。
eMule基本原理與BitTorrent類似,客戶端通過索引服務器獲得文件下載信息。eMule同時允許客戶端之間傳遞服務器信息,BitTorrent只能通過索引服務器或者DHT獲得。eMule共享的是整個文件目錄,而BitTorrent只共享下載任務,這使得BitTorrent更適合分發熱門文件,eMule傾向于一般熱門文件的下載。

3.3 迅雷
迅雷是一款新型的基于多資源多線程技術的下載軟件,迅雷擁有比目前用戶常用的下載軟件快7~10倍的下載速度。迅雷的技術主要分成兩個部分,一部分是對現有Internet下載資源的搜索和整合,將現有Internet上的下載資源進行校驗,將相同校驗值的統一資源定位(URL)信息進行聚合。當用戶點擊某個下載連接時,迅雷服務器按照一定的策略返回該URL信息所在聚合的子集,并將該用戶的信息返回給迅雷服務器。另一部分是迅雷客戶端通過多資源多線程下載所需要的文件,提高下載速率。迅雷高速穩定下載的根本原因在于同時整合多個穩定服務器的資源實現多資源多線程的數據傳輸。多資源多線程技術使得迅雷在不降低用戶體驗的前提下,對服務器資源進行均衡,有效降低了服務器負載。
每個用戶在網上下載的文件都會在迅雷的服務器中進行數據記錄,如有其他用戶再下載同樣的文件,迅雷的服務器會在它的數據庫中搜索曾經下載過這些文件的用戶,服務器再連接這些用戶,通過用戶已下載文件中的記錄進行判斷,如用戶下載文件中仍存在此文件(文件如改名或改變保存位置則無效),用戶將在不知不覺中扮演下載中間服務角色,上傳文件。

3.4 PPLive
PPLive軟件的工作機制和BitTorrent十分類似,PPLive將視頻文件分成大小相等的片段,第三方提供播放的視頻源,用戶啟礬PPLive以后,從PPLive服務器獲得頻道的列表,用戶點擊感興趣的頻道,然后從其他節點獲得數據文件,使用流媒體實時傳輸協議(RTP)和實時傳輸控制協議(RTCP)進行數據的傳輸和控制。將數據下載到本地主機后,開放本地端口作為視頻服務器,PPLive的客戶端播放器連接此端口,任何同一個局域網內的用戶都可以通過連接這個地址收看到點播的節目。圖6所示為PPLive的工作原理示意圖。

3.5 Skype
Skype是網絡語音溝通工具。它可以提供免費高清晰的語音對話,也可以用來撥打國內國際長途,還具備即時通訊所需的其他功能,比如文件傳輸、文字聊天等。Skype是在KaZaA的基礎上開發的,就像KaZaA一樣,Skype本身也是基于覆蓋層的P2P網絡,在它里面有兩種類型的節點:普通節點和超級節點。普通節點是能傳輸語音和消息的一個功能實體;超級節點則類似于普通節點的網絡網關,所有的普通節點必須與超級節點連接,并向Skype的登陸服務器注冊它自己來加入Skype網絡。Skype的登陸服務器上存有用戶名和密碼,并且授權特定的用戶加入Skype網絡,圖7所示為Skype的體系結構[18]。
Skype的另一個突出特點就是能夠穿越地址轉換設備和防火墻。Skype能夠在最小傳輸帶寬32 kb/s的網絡上提供高質量的語音。Skype是使用P2P語音服務的代表。由于其具有超清晰語音質量、極強的穿透防火墻能力、免費多方通話以及高保密性等優點,成為互聯網上使用最多的P2P應用之一。
4 P2P未來發展和展望
P2P技術不斷地改變著互聯網,用戶無疑是P2P技術的最大受益者。在P2P技術的發展道路上,仍然有許多尚待解決的問題。

版權問題一直是P2P發展的一個不確定因素,如何在技術層面支持合法文件的分發是需要解決的重要問題。安全問題也是P2P領域的重要研究課題,如何在P2P網絡中實現數據存取安全、路由安全、用戶身份認證和身份管理都需要進一步研究。如果能夠實現P2P應用之間的統一資源定位,統一路由,使得P2P技術有一個統一開發標準,將能夠融合P2P技術,提升整體性能。
如何有效管理P2P應用所帶來的巨大流量是網絡運營商面對的重大課題,如何通過緩存或者流量工程的方法,減少P2P流量對網絡本身的影響,同時利用P2P技術優化網絡性能,比如,將P2P覆蓋網絡路由的優點引入到傳統的網絡路由中,可以實現更好的負載均衡,并利用P2P技術提供流媒體等新的增值服務。實際上,P2P技術的發展為運營商提供了可以在低成本的條件下提供更好服務的可能途徑。
5 參考文獻
[1] The true picture of peer-to-peer filesharing [EB/OL]. http://www.cachelogic.com
[2] eMule [EB/OL]. http://www.emule.com.
[3] bittorrent [EB/OL]. http://www.bittorrent.com.
[4] pplive [EB/OL]. http://www.pplive.com.
[5] Zhang m, Luo j g, Zhao l, et al. Donet/CoolStreaming: A data-driven overlay network for live media streaming [C]//Proceedings of IEEE Conference on Computer Communications (INFOCOM'05), Mar 13-17, 2005, Miami, FL,USA. Piscataway, NJ,USA: IEEE, 2005:2102-2111.
[6] skype [EB/OL]. http://skype.tom.com.
[7] Lua E K, Crowcroft J, Pias M, et al. A survey and comparison of peer-to-peer overlay network schemes [J]. Journal of IEEE Communications Survey and Tutorial, 2005,7(2):72-93.
[8] STOICA I, MORRIS R, Karger D, et al. Chord: a scalable peer-to-peer lookup service for Internet applications [C]//Proceedings of the International Conference of the Special Interest Group on Data Communication (SIGCOMM '01), Aug 27-31,2001, San Diego, CA, USA. New York , NY, USA: ACM Press, 2001:149-160.
[9] RATNASAMY S, FRANCIS P, HANDLEY M, et al. A scalable content-addressable network [C]//Proceedings of the International Conference of the Special Interest Group on Data Communication (SIGCOMM '01), Aug 27-31,2001, San Diego, CA, USA. New York, NY, USA: ACM Press, 2001:161-172
[10] ROWSTRON A, DRUSCHEL P. Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems [C]//Proceedings of IFIP/ACM International Conference on Distributed Systems Platforms (Middleware ‘01), Nov 12-16,2001, Heidelberg, Germany. Berlin, Germany: Springer-Verlag, 2001:329-350.
[11] XU Z, MAHALINGAM M, KARLSSON M. Turning heterogeneity into an advantage in overlay routing [C]// Proceedings of Twenty-Second Annual Joint Conference of the IEEE Computer and Communications Societies (INFOCOM ’03): Vol 2, Mar 30-Apr 3,2003, San Francisco, CA, USA. Piscataway, NJ, USA :IEEE, 2003:1499-1509.
[12] CLARKE I, SANDBERG O, WILEY B, et al. Freenet: A distributed anonymous information storage and retrieval system [EB/OL]. Freenet White Paper. Http://freenetproject.org/.1999.
[13] Gnutella development forum, the Gnutella v0.6 protocol [EB/OL]. http://groups.yahoo.com/group/the gdf/files/, 2001.
[14] FastTrack. Peer-to-Peer technology company [EB/OL]. Http://www.FastTrack.nu/2001.
[15] KaZaA media desktop [EB/OL]. Http://www.KaZaA.com/2001.
[16] SAROIU S, GUMMADI P K, GRIBBLE S D. A measurement study of peer-to-peer file sharing systems [C]// Proceedings of Multimedia Computing and Networking, Jan 18-25, 2002 , San Jose, CA,USA. 2002:156-170.
[17] SEN S, WANG J. Analyzing peer-to-peer traffic across large networks [J]. IEEE/ACM Transactions on Networking, 2004,12(2):219-232.
[18] BASET S A, SCHRULZRINNE H. An analysis of the skype peer-to-peer Internet telephony protocol [C]//Proceedings of 25th IEEE International Conference on Computer Communications, Apr 23-29, 2006 ,Barcelona, Spain. Piscataway, NJ,USA: IEEE,2006:1-11.
收稿日期:2007-09-12
徐恪,清華大學計算機系畢業,工學博士。清華大學計算機系副教授。主要研究方向為新一代互聯網體系結構、高性能路由器、P2P與Overlay網絡等。近年來已經在國內外主要學術刊物和學術會議上發表了50多篇學術論文。
葉明江,清華大學計算機系在讀博士研究生。研究方向為P2P網絡與互聯網流量模型。已發表學術論文2篇。
胡懋智,清華大學計算機系在讀碩士研究生。研究方向為網絡監測與管理、網絡安全、P2P緩存。已在中國核心期刊上發表論文2篇。