摘 要:自P2P技術誕生,它的應用立刻以迅猛的速度傳播、發展。應用的普及程度,令人贊嘆。通過回顧P2P技術的發展歷史,結合P2P構架、工作原理、算法、檢索方式等內容,對P2P這一時下炙手可熱的技術進行詳細討論。
關鍵詞:歷史;構架;工作原理;算法
中圖分類號:TP
文獻標識碼:A
文章編號:1672-3198(2010)08-0283-03
1 引言
互聯網能夠發展至今,根本原因在于其布建的任何一根血脈都是為人與人之間的交流而設置的。而現在能夠引起互聯網震動的,無非也只有交流方式的變革本身。如今,在基于網絡的各種技術充斥于我們周圍之時,恐怕只有很少人不知道P2P的概念了,即便您沒有深入探究,但您每日在互聯網間進行的活動幾乎沒有不沾P2P技術的。一個簡單的例子,在你使用QQ盡情聊天之時,實際上就享受著P2P技術給你帶來的快感與興奮。P2P技術究竟意味著什么呢?
2 P2P概念
2.1 P2P的構架
網絡上流行的P2P軟件的架構手段主要有兩種:集中式和分布式。
集中式:便是利用服務器作為媒介使各個分散的節點(用戶)能互相聯系,生成各種服務響應各節點的業務需求,各節點一旦建立聯系,便可互相共亨對方資源,這種方式可使各節點定位比較容易,易于搜索,查找,使各節點間容易建立比較固定的關系,使得在此平臺上開發進一步的應用更加易于推廣;但這種方式對服務器性能要求也很高,應用系統功能越強大,對服務器的要求就越高,比如搜索,在此方式下如要提高搜索的命中和降低搜索的冗余,則必須提高結點對服務器的請求次數,增加了服務器資源的消耗;在這種架構中可以利用技術手段使得某些大節點分擔一些服務器的功能,從而降低服務器的負荷。
分布式:每個節點即做服務器又做客戶端,這種方式非常靈活,一個孤立的節點只要連上此P2P網絡內的任一節點便可與此網絡進行資源互享,事實上,這種方式宏觀來看應屬于Peer-to-Net(PTN),任何一個節點只是此網絡的一個組成部分,任何一個節點只是從此網絡上獲取資源,它可以在一個公司或企業內部無需額外配置而實現一個企業內部P2P系統,這此方式搜索功能強大而靈活,能夠體現出P2P的本質;由于架構的原因,此方式節點定位能力極差,無法使節點之間產生比較固定的關系,搜索能力雖然靈活強大,但冗余較大,如果技術手段處理不好很容易產生廣播風暴,引起網路資源的大量消耗,且些架構的技術實現難度極大,在國外特別是美國,此種架構應用較為廣泛;原因之一便是網絡環境因素,之二便是社會因素;國內網絡環境較為復雜,最為突出的便是局域網問題,這種復雜的網絡環境對這種架構的技術要求就更加重要了,再有就是社會因素也使得國內的P2P趨向的集中式的架構模式。
2.2 P2P工作原理
計算機網絡發展演化過程是在集中和分布之間擺動。早期的計算機使用模式是眾多用戶共享大型計算機,以后發展了個人計算機,從集中走向分布。在互聯網上存在類似情況,開始采用客戶機(瀏覽器)-服務器方式,使用網站上集中的服務器。進一步發展將走向分布式,集中的服務器將變成分布的,每一個用戶終端既是客戶機又是服務器,這就是對等連接peer to peer(簡稱P2P)模式。
近年來,互聯網上P2P業務發展迅速,已經成為寬帶互聯網業務的主流。P2P技術將各個用戶互相結合成一個網絡,共享其中的寬帶,共同處理其中的信息。與傳統的客戶機——服務器模式不同,P2P工作方式中,每一個客戶終端既是客戶機又是服務器。以共享下載文件為例,下載同一個文件的眾多用戶中的每一個用戶終端只需要下載文件的一個片段,然后互相交換,最終每個用戶都能得到完整的文件。
第一代P2P網絡采用中央控制網絡體系結構。早期的Napster就采用這種結構。它采用快速搜索算法,排隊響應時間短,使用簡單的協議能夠提供高性能和彈性,缺點是容易中斷服務。
第二代P2P采用分散分布網絡體系結構。不再使用中央服務器,消除了中央服務器帶來的問題。沒有中央控制點,不會因為一點故障導致全部癱瘓,是真正的分布式網絡。由于每次搜索都要在全網進行,造成大量網絡流量,使得其搜索速度慢,排隊響應時間長。用戶PC性能及其與網絡連接方式決定網絡彈性和性能。這種模式具有自組織(ad-hoc)行為,降低了擁有者的成本,提供可擴展性。特別適合在自組織(ad-hoc)網上的應用,如即時通信等。
第三代P2P采用混合網絡體系結構。這種模式綜合第一代和第二代的優點,用分布的超級結點取代中央檢索服務器。采用分層次的快速搜索改進了搜索性能,縮短了排隊響應時間,每次排隊產生的流量低于第二代分布網絡。超級智能結點的布設提供高性能和彈性。沒有中央控制點,不會因為一點故障導致全部癱瘓。內容被分布存儲在分布的存儲器和客戶終端中。通過快速檢索系統可以快速發現內容分布存儲的位置。目前常用的P2P軟件有BT,edonky和Gnutella等,這些軟件采用“快速追蹤”技術構成P2P網絡,有著許多傳統客戶機-服務器網絡所沒有的優點。技術上不但可以大大的減少文件搜尋的時間,更重要的是可以不用昂貴的中央控制硬件設備(服務器等)。這種P2P網絡使用終端本身電腦的處理能力,網絡處理能力隨著終端使用者人數增長而增加。
第四代P2P目前正在發展中。主要發展技術有動態口選擇和雙向下載。動態口選擇:目前P2P使用固定的口,但是一些公司已經開始引入協議可以動態選擇傳輸口,一般來說,口的數目在1024-4000之間。甚至P2P流可以用原來用于HTTP(SMTP)的口80(25)來傳輸以便隱藏。這將使得識別跨運營商網絡的P2P流,掌握其流量變得更困難。雙向下載:eD和BT等公司進一步發展引入雙向流下載。可以多路并行下載和上載一個文件或多路并行下載一個文件的一部分。而目前傳統的體系結構要求目標在完全下載后才能開始上載。這將大大加快文件分發速度。
2.3 P2P的過去
如果說涉及此種特點便稱之為信息技術中的P2P的誕生,那么它的歷史這可就遠了。P2P本身的基本技術的存在時間和我們曾經熟悉的USENET、FidoNet這兩種非常成功的分布式對等網絡技術幾乎是一同的,甚至更長些。翻翻資料就可以知道,USENET產生于1979年,FidoNet創建1984年,它們都是一個分散、分布的信息交換系統。在最初的P2P應用出現時,許多使用該技術的人們甚至不會使用計算機。然而正是這種孕育著思想的網絡技術為P2P的出現搭建了溫床。P2P正式步入發展的歷史可以追溯到1997年7月,那幾乎就是互聯網在中國起步的階段。在一段介紹此時P2P技術的時間表中這樣寫著:“HotlineCommunications is founded, giving consumers software that lets them offer files for download from their own computers.”(1997年7月,Hotline Communications公司成立,并且研制了一種可以使其用戶從別人電腦中直接下載東西的軟件)。或許有人還記得,早在1998年,美國東北波士頓大學的一年級新生、18歲的肖恩·范寧為了能夠解決他的室友的一個問題——如何在網上找到音樂而編寫的一個簡單的程序,這個程序能夠搜索音樂文件并提供檢索,把所有的音樂文件地址存放在一個集中的服務器中,這樣使用者就能夠方便地過濾上百的地址而找到自己需要的MP3文件。到了1999年,令他們沒有想到的是,這個叫做Napster的程序成為了人們爭相轉告的“殺手程序”——它令無數散布在互聯網上的音樂愛好者美夢成真,無數人在一夜之內開始使用Napster。在最高峰時Napster網絡有8000萬的注冊用戶,這是一個讓其他所有網絡望塵莫及的數字。這大概可以作為P2P軟件成功進入人們生活的一個標志。
2.4 P2P的現狀
直到現在使用P2P技術的軟件比比皆是,人們也在不知不覺中感受到了P2P作為高科技發展載體的快樂。平常我們使用的QQ、MSN就不提了,其他軟件更是鋪天蓋地,讓人目不暇接:eMule、迅雷Thunder、Kuro M3、酷狗(KuG-oo)、BT等等。歷史總是在曲折中前進,任何新事物的發展總不會是一帆風順的。2000年用于共享MP3音樂的Napster軟件與美國唱片界的一場官司將P2P技術與版權爭議帶進了人們的視線,就在今天,就在此時,爭議仍然不絕于耳。國外有關于P2P技術的糾紛一發而不可收拾,這種全新的極富生命力的傳輸方式從一誕生就和音樂,和版權聯系在一起。為什么會引起音樂制作商們這么大恐慌?顯然是其前所未有的傳輸速度挑起了他們的不安。在他們極力攔截還沒有來得及開始的時候,一首歌曲便以迅雷不及掩耳之勢傳遍了整個互聯網,而更加確切的說應該是全球,這顯然是傳統的盜版方式所不能比擬的。
3 P2P的信息檢索方式簡述
3.1 非結構化P2P搜索
非結構化P2P系統中發現技術一直采用洪泛轉發的方式,這類研究可以抽象為如何從一個隨機圖中的任一節點出發定位目標點,使得整個過程遍歷的點的個數最少。
3.2 結構化P2P搜索
在結構化網絡中,每個節點都有固定的編址,整個網絡具有相對穩定而規則的拓撲結構。這類網絡都是采用了DHT算法。無需目錄服務器的DHT動態哈希表技術,實際上也是一種特殊的目錄服務器,只不過把中央目錄服務器變為很多小目錄服務器。時下流行的P2P軟件如BT、電驢等均使用DHT算法。
3.3 基于興趣的P2P搜索
這類方法基于這樣的原則:每個節點都表現出某些可以捕捉到的興趣,相近興趣的節點保存的內容和提交的查詢也相近。通過挖掘每個節點的興趣。把節點按照興趣關系組成網絡,使得興趣相近的節點在網絡中比較近。
4 P2P軟件算法淺析
隨著P2P應用的蓬勃發展,作為P2P應用中核心問題的發現技術除了遵循技術本身的邏輯以外,也受到某些技術的發展趨勢、需求趨勢的深刻影響。如上所述,DHT發現技術完全建立在確定性拓撲結構的基礎上,從而表現出對網絡中路由的指導性和網絡中結點與數據管理的較強控制力。但是,對確定性結構的認識又限制了發現算法效率的提升。研究分析了目前基于DHT的發現算法,發現衡量發現算法的兩個重要參數度數(表示鄰居關系數、路由表的容量)和鏈路長度(發現算法的平均路徑長度)之間存在漸進曲線的關系。研究者采用圖論中度數(Degree)和直徑(Diameter)兩個參數研究DHT發現算法,發現這些DHT發現算法在度數和直徑之間存在漸進曲線關系,如下圖所示。在N個結點網絡中,圖中直觀顯示出當度數為N時,發現算法的直徑為O(1);當每個結點僅維護一個鄰居時,發現算法的直徑為O(N)。這是度數和直徑關系的2種極端情況。同時,研究以圖論的理論分析了O(d)的度和O(d)的直徑的算法是不可能的。從漸進曲線關系可以看出,如果想獲得更短的路徑長度,必然導致度數的增加;而網絡實際連接狀態的變化造成大度數鄰居關系的維護復雜程度增加。另外,研究者證明O(logN)甚至O(logN/loglogN)的平均路徑長度也不能滿足狀態變化劇烈的網絡應用的需求。新的發現算法受到這種折衷關系制約的根本原因在于DHT對網絡拓撲結構的確定性認識。非結構化P2P系統中發現技術一直采用洪泛轉發的方式,與DHT的啟發式發現算法相比,可靠性差,對網絡資源的消耗較大。最新的研究從提高發現算法的可靠性和尋找隨機圖中的最短路徑兩個方面展開。也就是對重疊網絡的重新認識。其中,small world特征和冪規律證明實際網絡的拓撲結構既不是非結構化系統所認識的一個完全隨機圖,也不是DHT發現算法采用的確定性拓撲結構。實際網絡體現的冪規律分布的含義可以簡單解釋為在網絡中有少數結點有較高的“度”,多數結點的“度”較低。度較高的結點同其他結點的聯系比較多,通過它找到待查信息的概率較高。Small-world[a][b]模型的特性:網絡拓撲具有高聚集度和短鏈的特性。在符合small world特性的網絡模型中,可以根據結點的聚集度將結點劃分為若干簇(Cluster),在每個簇中至少存在一個度最高的結點為中心結點。大量研究證明了以Gnutella為代表的P2P網絡符合small world特征,也就是網絡中存在大量高連通結點,部分結點之間存在“短鏈”現象。因此,P2P發現算法中如何縮短路徑長度的問題變成了如何找到這些“短鏈”的問題。尤其是在DHT發現算法中,如何產生和找到“短鏈”是發現算法設計的一個新的思路。small world特征的引入會對P2P發現算法產生重大影響。
結論:P2P對于用戶最大的意義,不是它的技術和功能,而是它的理念。這種理念源于人們互聯網的憧憬和夢想,它使網絡回歸到Internet的本質,讓共享與自由的精神充滿網絡世界。中國P2P的發展,必將經歷一個從技術到理念的過渡,技術的不斷進步為中國P2P的發展鋪平道路,而理念的不斷更新,則為中國P2P的發展指明方向。未來的競爭,不再僅僅以技術為導向,誰能以P2P的理念創造為網民所接受和留戀的產品和文化,誰才會最終奪得P2P勝利之杯。
參考文獻
[1]I. Stoica, R. Morris, D. Karger, F. Kasshoek, and H. Balakrishnan. Chord: A scalable peer-to-peer lookup service for internet applications. In Proceedings ACM SIGCOMM, 2001.
[2]中國P2P流媒體研究報告[R].2007.
[3]呂向辰.P2P技術與應用[J].計算機世界,2001,(28).
[4]呂建明,劉悅,丁林.P2P與信息檢索[J].信息技術快報,2005,(2).
[5]宋建濤,沙朝鋒,楊智應,朱洪.語義對等網構造及搜索機制研究[J].計算機研究與發展,2004,(4).