李紹靜
摘 要:該文首先介紹了P2P文件共享系統的發展現狀以及相關特性,總結了P2P文件共享系統的技術特性,并且介紹了幾個經典的系統實例的設計思想及工作原理,為P2P文件共享系統相關的研究內容提供了參考。
關鍵詞:P2P網絡 文件共享系統 信任
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1672-3791(2017)01(b)-0023-02
Abstract: This paper first introduces the development and present situation of P2P file sharing system and related characteristics, summed up the P2P file sharing technology characteristics of the system, and introduces the working principle and design idea of the system several examples of classic, provides the reference for the related research contents of P2P file sharing system.
Key Words: Peer-to-Peer Network; File sharing system; Reputation
對等(Peer-to-Peer,P2P)網絡及其相關技術是近年來熱門的研究領域之一,其中P2P文件共享系統受到了眾多網絡用戶的歡迎和支持。P2P文件共享系統從出現至今,相繼涌現出40多個相關系統,并且有多個系統已經各自擁有數以百萬計的用戶,P2P文件共享系統最大的特點是聚集了海量的文件資源,總體具有成本低廉、使用靈活自由、能為用戶提供簡便的文件交換服務等特點。
1 應用現狀
如今的P2P文件共享系統依然顯示著蓬勃的生命力。根據OReilly(2004)關于P2P文件共享系統的資料,著名的應用系統己經達到40余種,而且很多系統還相繼產生變種產品,如Napster的衍生變種SlavaNap和OpenNap等,Gnutella衍生的變種也有LimeWire、Clip2、BearShare、FurthurNet等。另外還有興起不久的BitTorrent和eDonkey等。
2 P2P文件共享系統的特性
P2P文件共享系統具有的技術特性,主要是以下幾點。
(1)分散性(decentralization)。
P2P文件共享系統將管理任務分攤到各個節點上,文件分散在各個節點,節點擁有文件的所有權和控制權,如此可以通過文件復制避免單一失效點問題。
(2)自組織性(self-organization)。
自組織是指一個系統的組織結構自發增強的過程。P2P文件共享系統由大量節點構成,其規模巨大而且結構經常發生變化,節點需要能夠自由地進入和退出網絡,文件資源數量時刻在變化,因此P2P文件共享系統必須具有自組織性。
(3)匿名性(anonymity)。
匿名性可以保護使用者的隱私,如P2P文件共享系統中,提供文件服務時隱藏文件提供者的身份。文件服務過程中,可以采用的匿名方式有3種:文件提供者匿名、文件請求者匿名和相互匿名。
(4)可擴展性(scalability)。
大量的處理任務和數據存儲無疑是擴展性的極大負擔,在P2P文件共享系統中,可擴展性得益于其分散性,任務處理負荷和空間負荷可以分攤到不同的節點上,有利于實現系統的擴展。
(5)安全性(security)。
安全性包括會話密鑰交換、信任傳遞、簽名和加密等。P2P文件共享系統還有新的安全方面的要求,可以引入數字版權管理來保證作者的知識產權不被竊取,可以在文件中加入水印技術,一個附著于文件內容但不影響文件內容的簽名。
(6)失效恢復和容錯性。
與C/S結構相比,P2P結構的優勢之一就是可以避免單點失效問題。由于擁有文件的節點失效或者退出了系統或者是網絡連接失效而導致目的節點不可到達,繼而導致節點失效,節點失效會導致文件服務不可用。對于前者,可以采用緩存和復制策略來應對;對于后者,可以通過路由策略繞過失效連接所在的區域來解決。
3 經典系統實例
近年來,P2P文件共享系統受到廣泛的關注,與此有關的研究也越來越多,已發展出許多應用系統和設計協議。
3.1 Napster
Napster[1]是出現最早的P2P文件共享系統,Napster中并沒有文件存儲服務器,只有一個中心服務器,用來放索引信息。需要獲取文件的用戶首先在Napster的中心服務器上進行信息查詢,系統中若有節點共享了所查詢的文件,則用戶可以根據中心服務器上提供的信息直接去目的節點下載,因此它屬于混合式的P2P文件共享系統。
3.2 Gnutella
Gnutella[7]是一種純粹P2P架構的分布式文件共享系統,節點發起查詢請求時,節點會提供一個標志自身的搜索字符串和hops-to-live參數,并將這個查詢請求發給與自己有連接的所有節點。當其他節點收到查詢請求時,會首先在本地展開查找。如果節點找到所請求文件,則反向返回查詢成功信息及本節點自身的相關信息;如若當前節點并未找到所需相關文件,則會把查詢請求轉發至與當前節點有連接的所有節點,直到成功為止。
3.3 Freenet
1999年,Edinburgh大學的Ian Clarke提出了關于Freenet[8]這一系統的設計思想。2000年,Freenet進入實際的設計與開發階段。和Gnutella一樣,Freenet是一種純粹的P2P結構的文件共享系統。Freenet為P2P網絡中的節點提供文件的存儲和下載服務,而節點提供一定的存儲空間來存儲P2P文件共享系統中用于其他結點分享和下載的文件。
4 結語
該文概括了P2P文件共享系統的發展過程和現狀,并介紹了幾個經典系統實例的設計思想及工作原理,總結了P2P文件共享系統的技術特性,為P2P文件共享系統相關的研究內容提供了參考。
參考文獻
[1] http://www.napster.com.
[2] http://www.limewire.com/.
[3] http://www.bearshare.com/.
[4] http://www.furthurnet.com/.
[5] http://bitconjurer.org/BitTorrent/.
[6] http://www.edonkey2000.com/.
[7] http://www.gnutella.com.
[8] http://freenet.sourceforge.net/.