P2P對等網(wǎng)絡路由模型及關鍵技術分析
P2P是近年來互聯(lián)網(wǎng)最熱門的技術,在VOIP、下載、流媒體、協(xié)調計算等領域得到飛速發(fā)展。P2P是Peer to Peer的縮寫,即為對等計算或對等網(wǎng)絡,可以簡單的定義成通過直接交換,共享計算機資源和服務。P2P架構是一種資源分布利用和共享的體系架構,與網(wǎng)絡中占據(jù)主導地位的客戶端/服務器(C/S)體系架構相對應。在P2P網(wǎng)絡模式中,每個節(jié)點的地位都是對等的,整個網(wǎng)絡一般不依賴于專用集中的服務器。每個節(jié)點同時承擔服務器和客戶端兩個角色,既提供資源和服務,也享用其他節(jié)點的資源和服務。通常這些資源和服務包括:信息的共享與交換、存儲資源、磁盤空間和計算資源等的共享使用。
2 主流P2P網(wǎng)絡模型分析
2.1 集中目錄式P2P模型
集中目錄式P2P結構是最早的P2P應用模式,因其仍具有中心化的特點也被稱為非純粹的P2P結構,Napster是這種模型的典型代表,如圖l所示。集中目錄式模型,是由一個中心服務器來負責記錄共享信息以及反饋對這些信息的查詢,每一個對等實體要對它所需共享的信息以及進行的通信負責。當某節(jié)點希望搜索一個不知道位置的資源時,該節(jié)點向目錄服務器發(fā)送請求,目錄服務器在數(shù)據(jù)庫中查詢到匹配的資源后將其定位信息返回該節(jié)點,然后在兩個節(jié)點之間執(zhí)行交互。
與傳統(tǒng)的客戶朋艮務器模式不同,這種模式中客戶所需要的資料并非存儲在服務器上,而是存貯在P2P網(wǎng)絡內的各個節(jié)點中,當查詢節(jié)點收到節(jié)點地址信息列表后,會根據(jù)網(wǎng)絡流量和延遲等信息選擇合適的節(jié)點建立直接連接,其文件傳遞并不經(jīng)過中央目錄服務器,而是直接在節(jié)點之間通過TCP協(xié)議進行。此外服務器與對等實體以及對等實體之間都互有交互能力。
集中目錄式P2P首先實現(xiàn)了文件查詢與文件傳輸?shù)姆蛛x,有效地節(jié)約了中央服務器的帶寬消耗,減少了系統(tǒng)的文件傳輸延時。但中央目錄服務器卻成為脆弱的瓶頸,如果該服務器失效,整個系統(tǒng)都會癱瘓。而且,不同等級的用戶連接速度也會使系統(tǒng)性能大大降低。在Napster之后的P2P系統(tǒng),都在這一點上進行重點改進,系統(tǒng)基本上都采用無中心結構,準確性和可擴展性都得到極大提高。
2.2 分布式P2P模型
分布式P2P網(wǎng)絡采用隨機圖的組織方式,利用TTL(Time-to-Live),洪泛(Flooding),隨機漫步或有選擇轉發(fā)等方式搜索網(wǎng)絡資源。當節(jié)點度數(shù)服從冪率(power—law)規(guī)律時,該方式能夠較快發(fā)現(xiàn)目標結點,而且面對網(wǎng)絡的動態(tài)變化體現(xiàn)了較好的容錯能力。代表性網(wǎng)絡是Gnutella,如圖2所示。
在分布式P2P模式下,所有節(jié)點都參與服務,控制流和數(shù)據(jù)流都在對等節(jié)點之間交互,解決了中心化的問題,避免服務器瓶頸,部分節(jié)點出問題也不會影響整個網(wǎng)絡的運行,搜索結果更新比較及時,時效性高;但是,采用flooding方式傳播搜索請求,造成網(wǎng)絡額外開銷比較大,隨著P2P網(wǎng)絡規(guī)模的逐漸擴大,網(wǎng)絡開銷成指數(shù)級上升。因此準確性和可擴展性是非結構化網(wǎng)絡面臨的兩個重要問題。
2.3 結構化P2P模型
結構化P2P模式是一種采用純分布式的消息傳遞機制和根據(jù)關鍵字(KEY)的定位服務,從根本上改變了P2P網(wǎng)絡無結構的狀態(tài)。其中主流的方法就是采用分布式哈希表(Distributed Hash Table,DHT)技術,是目前擴展性最好的P2P路由方式之一。DHT首先為網(wǎng)絡中的每一個節(jié)點分配虛擬地址(VID),同時用一個關鍵字(KEY)表示其可提供的共享內容。通過一個特定的哈希函數(shù)(一般使用的是安全哈希函數(shù),如SHA一1等)將文件名(KEY)與節(jié)點信息(VID)運算為一個哈希值H(KEY,VID),當網(wǎng)絡上其它節(jié)點進行資源定位的時候,可以容易地根據(jù)H(Key)值獲得文檔的精確存儲位置。由于DHT各節(jié)點并不需要維護整個網(wǎng)絡的信息,只在節(jié)點中存儲其臨近的后繼節(jié)點信息,因此較少的路由信息可有效地實現(xiàn)到目標節(jié)點,同時又取消了洪泛算法,該模型有效地減少了節(jié)點信息的發(fā)送數(shù)量,增強了P2P網(wǎng)絡的擴展性。同時,出于冗余度及延時的考慮,大部分DHT總是在節(jié)點的虛擬標識與關鍵字最接近的K個節(jié)點上備份冗余信息,避免了單一節(jié)點失效的問題。
基于DHT的路由方式是P2P系統(tǒng)研究的主流之一。所涉及的系統(tǒng)一般都假定節(jié)點的能力相當,這對于較小規(guī)模的系統(tǒng)非常有效,但這種假設并不適合大規(guī)模的Intemet部署。目前,成功應用也比較少見。
2.4 混合式P2P模型
混合式P2P網(wǎng)絡結合了集中式結構和分布式拓撲的優(yōu)點,網(wǎng)絡中存在著中間服務器,文件目錄是分布的。在分布式模式的基礎上引入了超級節(jié)點(Super Node)概念,將用戶節(jié)點按能力(處理、存儲、帶寬等方面性能)分為搜索節(jié)點和普通節(jié)點兩類.搜索節(jié)點與其臨近的若干普通節(jié)點之間構成一個自治的簇(Cluster),簇內采用基于集中目錄式的P2P模式,而整個P2P網(wǎng)絡中存在著眾多這樣的簇,各個不同的簇之間再通過分布式P2P模式將搜索節(jié)點相連起來,甚至可在各個搜索節(jié)點之間,再次選取性能最優(yōu)的節(jié)點或者另外引入一新的性能最優(yōu)的節(jié)點作為索引節(jié)點,來保存整個網(wǎng)絡中可以利用的搜索節(jié)點信息,并且負責維護整個網(wǎng)絡的結構?;旌鲜絇2P模型消除了分布式P2P結構中使用Flooding算法帶來的網(wǎng)絡擁塞、搜索遲緩等不利影響,吸收了集中式拓撲的易管理性與分布式拓撲的可擴展性,在異構的P2P網(wǎng)絡環(huán)境下是一種較好的模式選擇。其中最典型的案例就是Fastrack,如圖3所示。
從上述分析知,這4種結構各具優(yōu)缺點,有的還存在著本身難以克服的缺陷,在目前P2P技術還未到成熟的階段,這4種結構依然會共存,甚至出現(xiàn)相互借鑒結合的趨勢。
3 P2P網(wǎng)絡關鍵技術分析
3.1 資源定位
資源定位是節(jié)點通過一定方式找到資源在網(wǎng)絡中的存放位置,P2P方式的資源定位主要有以下3種算法。
(1)集中索引算法,代表系統(tǒng)為Napster在Napster系統(tǒng)中,用戶都與一個中央服務器相連接,中央服務器上保存了共享文件的索引,由中央服務器對收到的用戶請求進行匹配查找,直到找到保存了所需文件的目的用戶。然后,由發(fā)起請求的用戶與目的用戶直接進行文件交換。這種算法的不足在于依賴一個集中式的結構,將會影響系統(tǒng)的可擴展性。
(2)洪泛消息算法,代表系統(tǒng)為Gnutella 每一個用戶消息都將被廣播給與該用戶直接相連的若干其他用戶,這些用戶收到消息后,也同樣地將消息廣播給各自連接的用戶,以此類推,直到請求被應答,消息的TTL值減少為0,或超過了最大的廣播次數(shù)(通常為5~9)。這種算法的不足在于占用的網(wǎng)絡帶寬較大,因此也會影響可擴展性。
(3)文件路由算法,代表系統(tǒng)為Freenet算法的特點是采用基于哈希函數(shù)的映射。系統(tǒng)中的每一個用戶都有一個隨機的ID序列號,系統(tǒng)中的每一個文件也有一個ID序列號,該序列號是根據(jù)文件的內容和它的名字,經(jīng)過哈希函數(shù)映射得來的。文件發(fā)布時,每一個用戶都把文件轉發(fā)到擁有與文件的ID最相近ID值的用戶,直到最接近文件ID的用戶就是該用戶本身。轉發(fā)過程中每經(jīng)過的一個用戶都將保持該文件的副本。索取文件時,每個用戶都將請求消息轉發(fā)給一個擁有與所需文件ID最相近的ID用戶,直到文件或文件的一個拷貝被發(fā)現(xiàn)為止。Tapestry,Pastry,Chord,CAN都是采用這種方法的P2P系統(tǒng)。這種算法的優(yōu)勢在于可擴展性較好,不足在于可能導致整個網(wǎng)絡分裂成若干彼此不相連的子網(wǎng)絡,形成所謂的孤島,其查詢也要比洪泛消息算法麻煩些。
3.2 多源傳輸
為了提高一些多用戶同時下載熱點文件的傳輸速率,P2P網(wǎng)絡普遍采用多源傳輸策略(MFTP協(xié)議)。該協(xié)議定義了一系列傳輸、壓縮和打包的標準,甚至還定義了一套積分的標準,上傳的數(shù)據(jù)量越大,積分越高,下載的速度也越快。MFTP協(xié)議允許用戶之間多點下載文件,多用戶同時下載一個文件時,將該文件分段,每個用戶下載其中的一部分。P2P客戶端軟件在網(wǎng)絡上搜索下載同一個文件的用戶,然后從這些用戶那里下載該文件不同的塊,用MD4算法檢查每一塊是否受到破壞,以保證傳輸?shù)恼_性,最后將所有的塊組合成原來的文件。MFTP充分利用下載用戶之間的帶寬傳輸數(shù)據(jù),從而減輕服務器負擔,提高下載速度和系統(tǒng)的可擴展性。多源傳輸機制的出現(xiàn)使得P2P技術在信息傳輸方面擁有網(wǎng)絡層傳輸無法比擬的優(yōu)勢。
3.3 網(wǎng)絡監(jiān)控與安全技術
面對大規(guī)模出現(xiàn)的P2P虛擬網(wǎng)絡,由于缺乏必要有效的認證機制,安全性這一問題在P2P網(wǎng)絡中更為嚴重,這將直接決定P2P能否被大規(guī)模商用。如何有效的監(jiān)測與評估P2P網(wǎng)絡性能已經(jīng)變得越來越重要。由于缺乏集中式的監(jiān)控功能,當前大多P2P系統(tǒng)無法提供網(wǎng)絡運行狀況的信息,也無法為網(wǎng)絡結構調整優(yōu)化提供參考依據(jù),所以,將網(wǎng)絡監(jiān)測作為一個未來的研究重點是很有必要的。
此外,P2P中的安全問題包括信息的加密、用戶身份的認證、惡意節(jié)點的識別和應對等,總的來說可以歸納為服務可用性、文件授權、匿名和存取控制等方面,但是到目前還沒有一個公認的模型和評價體系,可以用來P2P網(wǎng)絡系統(tǒng)的安全性進行定性或者定量的研究,這也將是P2P網(wǎng)絡安全研究領域的一個重要課題。
4 P2P網(wǎng)絡的特性與問題
作為一種新型的網(wǎng)絡應用方式,P2P具有一些傳統(tǒng)C/S模式所不具備的優(yōu)勢,主要表現(xiàn)在信息量的擴大以及匿名服務的自由開放性等。P2P最大的優(yōu)點在于能夠提供可靠、便捷的信息查詢,但也由于P2P網(wǎng)絡這種缺乏中心監(jiān)管以及匿名服務的特性,P2P也存在著許多自身所無法克服的不足。
絕大多數(shù)的P2P服務都將不可避免地遇到知識產權問題,同時,惡意代碼的傳播將更快、更隱蔽,更難以控制等。
此外,P2P在技術層面也有較多的問題難以解決。一般每個P2P網(wǎng)絡都是眾多參與者按照共同興趣組建起來的一個虛擬組織,對等節(jié)點之間存在著一種假定的相互信任關系,其中的P2P服務更是緊密依賴于節(jié)點之間彼此信任的協(xié)作模型。但是,隨著P2P網(wǎng)絡規(guī)模的擴大,其中預先假設的信任機制實際上就會非常脆弱,這就直接導致了全局性信任的缺乏,影響了整個網(wǎng)絡的可靠性與穩(wěn)定性。
此外,安全問題、內容過濾、信息審查、帶寬問題等都是隨著P2P網(wǎng)絡規(guī)模的擴大必需要考慮的問題。
5 結語
P2P并不是一個新概念,早在1969年ARPANET出現(xiàn)的時候,網(wǎng)絡應用的模式就是P2P。如今,P2P又回到了人們視線。盡管P2P技術現(xiàn)在還不成熟,但為我們提供了前所未有的自由和便利。隨著P2P研究的進一步深入,P2P技術將為信息社會帶來更多的機遇與挑戰(zhàn)。