Peer-To-Peer 综述(P2P技术综述)
Peer-To-Peer 綜述(P2P技術(shù)綜述)
2014-03-25 19:18?7295人閱讀?評論(0)?收藏?舉報 ?分類: P2P技術(shù)目錄(?)[+]
05年的關(guān)于P2P技術(shù)的綜述,還不錯,比較全面。是中科院計算機技術(shù)研究所的文章。
第?1?章?Peer-To-Peer 介紹
羅杰文
中科院計算技術(shù)研究所
?
最近幾年,Peer-to-Peer (對等計算,簡稱P2P) 迅速成為計算機界關(guān)注的熱門話題之一,財富雜志更將P2P列為影響Internet未來的四項科技之一。
“Peer”在英語里有“對等者”和“伙伴”的意義。因此,從字面上,P2P可以理解為對等互聯(lián)網(wǎng)。國內(nèi)的媒體一般將P2P翻譯成“點對點”或者“端對端”,學(xué)術(shù)界則統(tǒng)一稱為對等計算。P2P可以定義為:網(wǎng)絡(luò)的參與者共享他們所擁有的一部分硬件資源(處理能力、存儲能力、網(wǎng)絡(luò)連接能力、打印機等),這些共享資源通過網(wǎng)絡(luò)提供服務(wù)和內(nèi)容,能被其它對等節(jié)點(Peer)直接訪問而無需經(jīng)過中間實體。在此網(wǎng)絡(luò)中的參與者既是資源(服務(wù)和內(nèi)容)提供者(Server),又是資源獲取者(Client)。
客觀地說,這種計算模式并不是什么新技術(shù),自從上個世紀(jì)70年代網(wǎng)絡(luò)產(chǎn)生以來就存在了,只不過當(dāng)時的網(wǎng)絡(luò)帶寬和傳播速度限制了這種計算模式的發(fā)展。90年代末,隨著高速互聯(lián)網(wǎng)的普及、個人計算機計算和存儲能力的提升,P2P技術(shù)重新登上歷史舞臺并且?guī)砹艘粓黾夹g(shù)上的革命。許多基于P2P技術(shù)的殺手級應(yīng)用應(yīng)運而生,給人們的生活帶來了極大的便利。
從計算模式上來說,P2P打破了傳統(tǒng)的Client/Server (C/S)模式,在網(wǎng)絡(luò)中的每個結(jié)點的地位都是對等的。每個結(jié)點既充當(dāng)服務(wù)器,為其他結(jié)點提供服務(wù),同時也享用其他結(jié)點提供的服務(wù)。P2P與C/S模式的對比如下圖所示:
圖1 Client/Server模式
圖2 Peer to Peer 模式
P2P技術(shù)的特點體現(xiàn)在以下幾個方面[1]:
- 非中心化:網(wǎng)絡(luò)中的資源和服務(wù)分散在所有結(jié)點上,信息的傳輸和服務(wù)的實現(xiàn)都直接在結(jié)點之間進(jìn)行,可以無需中間環(huán)節(jié)和服務(wù)器的介入,避免了可能的瓶頸。P2P的非中心化基本特點,帶來了其在可擴展性、健壯性等方面的優(yōu)勢。
- 可擴展性:在P2P網(wǎng)絡(luò)中,隨著用戶的加入,不僅服務(wù)的需求增加了,系統(tǒng)整體的資源和服務(wù)能力也在同步地擴充,始終能比較容易地滿足用戶的需要。理論上其可擴展性幾乎可以認(rèn)為是無限的。例如:在傳統(tǒng)的通過FTP的文件下載方式中,當(dāng)下載用戶增加之后,下載速度會變得越來越慢,然而P2P網(wǎng)絡(luò)正好相反,加入的用戶越多,P2P網(wǎng)絡(luò)中提供的資源就越多,下載的速度反而越快。
- 健壯性:P2P架構(gòu)天生具有耐攻擊、高容錯的優(yōu)點。由于服務(wù)是分散在各個結(jié)點之間進(jìn)行的,部分結(jié)點或網(wǎng)絡(luò)遭到破壞對其它部分的影響很小。P2P網(wǎng)絡(luò)一般在部分結(jié)點失效時能夠自動調(diào)整整體拓?fù)?#xff0c;保持其它結(jié)點的連通性。P2P網(wǎng)絡(luò)通常都是以自組織的方式建立起來的,并允許結(jié)點自由地加入和離開。
- 高性價比:性能優(yōu)勢是P2P被廣泛關(guān)注的一個重要原因。隨著硬件技術(shù)的發(fā)展,個人計算機的計算和存儲能力以及網(wǎng)絡(luò)帶寬等性能依照摩爾定理高速增長。采用P2P架構(gòu)可以有效地利用互聯(lián)網(wǎng)中散布的大量普通結(jié)點,將計算任務(wù)或存儲資料分布到所有結(jié)點上。利用其中閑置的計算能力或存儲空間,達(dá)到高性能計算和海量存儲的目的。目前,P2P在這方面的應(yīng)用多在學(xué)術(shù)研究方面,一旦技術(shù)成熟,能夠在工業(yè)領(lǐng)域推廣,則可以為許多企業(yè)節(jié)省購買大型服務(wù)器的成本。
- 隱私保護(hù):?在P2P網(wǎng)絡(luò)中,由于信息的傳輸分散在各節(jié)點之間進(jìn)行而無需經(jīng)過某個集中環(huán)節(jié),用戶的隱私信息被竊聽和泄漏的可能性大大縮小。此外,目前解決Internet隱私問題主要采用中繼轉(zhuǎn)發(fā)的技術(shù)方法,從而將通信的參與者隱藏在眾多的網(wǎng)絡(luò)實體之中。在傳統(tǒng)的一些匿名通信系統(tǒng)中,實現(xiàn)這一機制依賴于某些中繼服務(wù)器節(jié)點。而在P2P中,所有參與者都可以提供中繼轉(zhuǎn)發(fā)的功能,因而大大提高了匿名通訊的靈活性和可靠性,能夠為用戶提供更好的隱私保護(hù)。
- 負(fù)載均衡:?P2P 網(wǎng)絡(luò)環(huán)境下由于每個節(jié)點既是服務(wù)器又是客戶機,減少了對傳統(tǒng)C/S結(jié)構(gòu)服務(wù)器計算能力、存儲能力的要求,同時因為資源分布在多個節(jié)點,更好的實現(xiàn)了整個網(wǎng)絡(luò)的負(fù)載均衡。
與傳統(tǒng)的分布式系統(tǒng)相比,P2P技術(shù)具有無可比擬的優(yōu)勢。同時,P2P技術(shù)具有廣闊的應(yīng)用前景。目前,Internet上各種P2P應(yīng)用軟件層出不窮,用戶數(shù)量急劇增加。據(jù)統(tǒng)計,自2001年以來,大量P2P軟件的用戶使用數(shù)量從幾十萬、幾百萬到上千萬急劇增加,給Internet帶寬帶來巨大沖擊。如圖3所示,在全球最大的開源網(wǎng)站Sourceforge[2]的下載排名中,前十名中有七個項目是基于P2P技術(shù)。其中eMule的下載量超過2億次,Azureus的下載量超過1億次。這個網(wǎng)站上的工程項目下載量,往往反映當(dāng)今軟件技術(shù)的前沿?zé)狳c。令人矚目的是,微軟公司在新一代操作系統(tǒng)Windows Vista中也加入了P2P技術(shù)以用來加強協(xié)作和應(yīng)用程序之間的通訊[3]。
圖3 Sourceforge的工程下載排名(數(shù)據(jù)截止到2006年8月23日)
目前,P2P計算技術(shù)正不斷應(yīng)用到軍事領(lǐng)域,商業(yè)領(lǐng)域,政府信息,通訊等領(lǐng)域。根據(jù)具體應(yīng)用不同,可以把P2P分為大致以下這些類型:
- 文件內(nèi)容共享和下載,例如Napster、Gnutella、eDonkey、eMule、Maze、BT等;
- 計算能力和存儲共享,例如SETI@home、Avaki、Popular Power等;
- 基于P2P技術(shù)的協(xié)同與服務(wù)共享平臺,例如JXTA、Magi、Groove等;
- 即時通訊工具,包括ICQ、QQ、Yahoo Messenger、MSN Messenger等;
- P2P通訊與信息共享,例如Skype、Crowds、Onion Routing等;
- 基于P2P技術(shù)的網(wǎng)絡(luò)電視:沸點、PPStream、 PPLive、 QQLive、 SopCast等。
參考文獻(xiàn)
- [1] 羅杰文 Peer to Peer 綜述?http://www.intsci.ac.cn/users/luojw/papers/p2p.htm
- [2] 開源網(wǎng)站Sourceforge?www.sourceforge.net
- [3]http://msdn.microsoft.com/windowsvista/prodinfo/what/connected/default.aspx
?
?
第?2?章?P2P網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)
?
拓?fù)浣Y(jié)構(gòu)是指分布式系統(tǒng)中各個計算單元之間的物理或邏輯的互聯(lián)關(guān)系,結(jié)點之間的拓?fù)浣Y(jié)構(gòu)一直是確定系統(tǒng)類型的重要依據(jù)。目前互聯(lián)網(wǎng)絡(luò)中廣泛使用集中式、層次式等拓?fù)浣Y(jié)構(gòu)。Internet本身是世界上最大的非集中式的互聯(lián)網(wǎng)絡(luò),但是九十年代所建立的一些網(wǎng)絡(luò)應(yīng)用系統(tǒng)卻是完全的集中式的系統(tǒng),許多Web應(yīng)用都是運行在集中式的服務(wù)器系統(tǒng)上。集中式拓?fù)浣Y(jié)構(gòu)系統(tǒng)目前面臨著過量存儲負(fù)載、DOS(Denial of Service,拒絕服務(wù))攻擊,網(wǎng)絡(luò)帶寬限制等一些難以解決的問題。Peer-to-Peer (簡稱P2P) 系統(tǒng)主要采用非集中式的拓?fù)浣Y(jié)構(gòu),一般來說不存在上述這些難題。根據(jù)結(jié)構(gòu)關(guān)系可以將P2P系統(tǒng)細(xì)分為四種拓?fù)湫问?#xff1a;
- 中心化拓?fù)?/strong>(Centralized Topology);
- 全分布式非結(jié)構(gòu)化拓?fù)?/strong>(Decentralized Unstructured Topology);
- 全分布式結(jié)構(gòu)化拓?fù)?/strong>(Decentralized Structured Topology,也稱作DHT網(wǎng)絡(luò));
- 半分布式拓?fù)?/strong>(Partially Decentralized Topology)。
其中,中心化拓?fù)?/strong>最大的優(yōu)點是維護(hù)簡單,資源發(fā)現(xiàn)效率高。由于資源的發(fā)現(xiàn)依賴中心化的目錄系統(tǒng),發(fā)現(xiàn)算法靈活高效并能夠?qū)崿F(xiàn)復(fù)雜查詢。最大的問題與傳統(tǒng)客戶機/服務(wù)器結(jié)構(gòu)類似,容易造成單點故障,訪問的“熱點”現(xiàn)象和版權(quán)糾紛等相關(guān)問題,這是第一代P2P網(wǎng)絡(luò)采用的結(jié)構(gòu)模式,經(jīng)典案例就是著名的MP3共享軟件Napster[1].
Napster是最早出現(xiàn)的P2P系統(tǒng)之一,并在短期內(nèi)迅速成長起來。它實質(zhì)上并非是純粹的P2P系統(tǒng),而是通過一個中央索引服務(wù)器保存所有Napster用戶上傳的音樂文件索引和存放位置的信息。它的工作原理如圖1所示。當(dāng)某個用戶需要某個音樂文件時,首先連接到Napster中央索引服務(wù)器,在服務(wù)器上進(jìn)行檢索,服務(wù)器返回存有該文件的用戶信息,再由請求者直接連到文件的所有者傳輸文件。Napster首先實現(xiàn)了文件查詢與文件傳輸?shù)姆蛛x,有效地節(jié)省了中央服務(wù)器的帶寬消耗,減少了系統(tǒng)的文件傳輸延時。
圖1 Napster的拓?fù)浣Y(jié)構(gòu)
然而,這種對等網(wǎng)絡(luò)模型存在以下這些問題:
- 中央索引服務(wù)器的癱瘓容易導(dǎo)致整個網(wǎng)絡(luò)的崩潰,因此可靠性和安全性較低。
- 隨著網(wǎng)絡(luò)規(guī)模的擴大,對中央索引服務(wù)器進(jìn)行維護(hù)和更新的費用將急劇增加,所需成本較高。
- 中央索引服務(wù)器的存在常引起版權(quán)問題上的糾紛,服務(wù)提供商容易被追究法律責(zé)任。
綜合上述優(yōu)缺點,對小型網(wǎng)絡(luò)而言,中心化拓?fù)?/strong>模型在管理和控制方面占一定優(yōu)勢。但鑒于其存在的上述缺陷,該模型并不適合大型網(wǎng)絡(luò)應(yīng)用。
全分布式非結(jié)構(gòu)化拓?fù)涞腜2P網(wǎng)絡(luò)是在重疊網(wǎng)絡(luò)(Overlay Network)(見標(biāo)注1)采用了隨機圖的組織方式,結(jié)點度數(shù)服從Power-law規(guī)律(冪次法則)[2],從而能夠較快發(fā)現(xiàn)目的結(jié)點,面對網(wǎng)絡(luò)的動態(tài)變化體現(xiàn)了較好的容錯能力,因此具有較好的可用性。同時可以支持復(fù)雜查詢,如帶有規(guī)則表達(dá)式的多關(guān)鍵詞查詢,模糊查詢等,采用這種拓?fù)浣Y(jié)構(gòu)最典型的案例便是Gnutella(音譯:紐特拉)。準(zhǔn)確地說,Gnutella不是特指某一款軟件,而是指遵守Gnutella協(xié)議[3]的網(wǎng)絡(luò)以及客戶端軟件的統(tǒng)稱。目前基于Gnutella網(wǎng)絡(luò)的客戶端軟件非常多,著名的有Shareaza、LimeWire和BearShare等。
圖2Gnutella的拓?fù)浣Y(jié)構(gòu)和文件檢索方法
Gnutella和Napster最大的區(qū)別在于Gnutella是更加純粹的P2P系統(tǒng),因為它沒有中央索引服務(wù)器,每臺機器在Gnutella網(wǎng)絡(luò)中是真正的對等關(guān)系,既是客戶機同時又是服務(wù)器,所以被稱為對等機(Servent,Server+Client的組合)。在文件檢索方面,它與Napster也不相同。在Gnutella網(wǎng)絡(luò)的發(fā)展初期,它主要采用基于完全隨機圖的Flooding搜索算法。圖2 顯示了Flooding的工作流程:當(dāng)一臺計算機要下載一個文件,它首先以文件名或者關(guān)鍵字生成一個查詢,并把這個查詢發(fā)送給與它相連的所有計算機,這些計算機如果存在這個文件,則與查詢的機器建立連接,如果不存在這個文件,則繼續(xù)在自己相鄰的計算機之間轉(zhuǎn)發(fā)這個查詢,直到找到文件為止。為了控制搜索消息不至于永遠(yuǎn)這樣傳遞下去,一般通過TTL (Time To Live)的減值來控制查詢的深度。
但是,隨著聯(lián)網(wǎng)節(jié)點的不斷增多,網(wǎng)絡(luò)規(guī)模不斷擴大,通過這種Flooding方式定位對等點的方法將造成網(wǎng)絡(luò)流量急劇增加,從而導(dǎo)致網(wǎng)絡(luò)中部分低帶寬節(jié)點因網(wǎng)絡(luò)資源過載而失效。所以在初期的Gnutella網(wǎng)絡(luò)中,存在比較嚴(yán)重的分區(qū),斷鏈現(xiàn)象。也就是說,一個查詢訪問只能在網(wǎng)絡(luò)的很小一部分進(jìn)行,因此網(wǎng)絡(luò)的可擴展性不好。所以,后來許多研究人員在Flooding的基礎(chǔ)上作了許多改進(jìn),例如采用Random work [4]、Dynamic Query[5]等方法。
由于非結(jié)構(gòu)化網(wǎng)絡(luò)將重疊網(wǎng)絡(luò)認(rèn)為是一個完全隨機圖,結(jié)點之間的鏈路沒有遵循某些預(yù)先定義的拓?fù)鋪順?gòu)建。這些系統(tǒng)一般不提供性能保證,但容錯性好,支持復(fù)雜的查詢,并受結(jié)點頻繁加入和退出系統(tǒng)的影響小。但是查詢的結(jié)果可能不完全,查詢速度較慢,采用Flooding查詢的系統(tǒng)對網(wǎng)絡(luò)帶寬的消耗非常大,并由此帶來可擴展性差等問題。
全分布式結(jié)構(gòu)化拓?fù)?/strong>的P2P網(wǎng)絡(luò)主要是采用分布式散列表(Distributed Hash Table, 簡寫成DHT)技術(shù)來組織網(wǎng)絡(luò)中的結(jié)點。DHT是一個由廣域范圍大量結(jié)點共同維護(hù)的巨大散列表。散列表被分割成不連續(xù)的塊,每個結(jié)點被分配給一個屬于自己的散列塊,并成為這個散列塊的管理者。通過加密散列函數(shù),一個對象的名字或關(guān)鍵詞被映射為128位或160位的散列值。分布式散列表起源于SDDS(Scalable Distribute Data Structures)[6]研究,Gribble等實現(xiàn)了一個高度可擴展,容錯的SDDS集群。DHT類結(jié)構(gòu)能夠自適應(yīng)結(jié)點的動態(tài)加入/退出,有著良好的可擴展性、魯棒性、結(jié)點ID分配的均勻性和自組織能力。由于重疊網(wǎng)絡(luò)采用了確定性拓?fù)浣Y(jié)構(gòu),DHT可以提供精確的發(fā)現(xiàn)。只要目的結(jié)點存在于網(wǎng)絡(luò)中DHT總能發(fā)現(xiàn)它,發(fā)現(xiàn)的準(zhǔn)確性得到了保證,最經(jīng)典的案例是Tapestry,Pastry,Chord和CAN。
Tapestry [7]提供了一個分布式容錯查找和路由基礎(chǔ)平臺,在此平臺基礎(chǔ)之上,可以開發(fā)各種P2P應(yīng)用(OceanStore[8]即是此平臺上的一個應(yīng)用)。Tapestry的思想來源于Plaxton。在Plaxton中,結(jié)點使用自己所知道的鄰近結(jié)點表,按照目的ID來逐步傳遞消息。Tapestry基于Plaxton的思想,加入了容錯機制,從而可適應(yīng)P2P的動態(tài)變化的特點。OceanStore是以Tapestry為路由和查找基礎(chǔ)設(shè)施的P2P平臺。它是一個適合于全球數(shù)據(jù)存儲的P2P應(yīng)用系統(tǒng)。任何用戶均可以加入OceanStore系統(tǒng),或者共享自己的存儲空間,或者使用該系統(tǒng)中的資源。通過使用復(fù)制和緩存技術(shù),OceanStore可提高查找的效率。最近,Tapestry為適應(yīng)P2P網(wǎng)絡(luò)的動態(tài)特性,作了很多改進(jìn),增加了額外的機制實現(xiàn)了網(wǎng)絡(luò)的軟狀態(tài)(soft state),并提供了自組織、魯棒性、可擴展性和動態(tài)適應(yīng)性,當(dāng)網(wǎng)絡(luò)高負(fù)載且有失效結(jié)點時候性能有限降低,消除了對全局信息的依賴、根結(jié)點易失效和彈性差的問題。
Pastry?是微軟研究院提出的可擴展的分布式對象定位和路由協(xié)議,可用于構(gòu)建大規(guī)模的P2P系統(tǒng)。如圖3 所示,在Pastry中,每個結(jié)點分配一個128位的結(jié)點標(biāo)識符號(nodeID) ,所有的結(jié)點標(biāo)識符形成了一個環(huán)形的nodeID空間,范圍從0到2128 - 1 ,結(jié)點加入系統(tǒng)時通過散列結(jié)點IP地址在128位nodeID空間中隨機分配。網(wǎng)絡(luò)結(jié)點的加入與退出,資源查詢的過程可以參考文獻(xiàn)[9]。
圖3Pastry的消息路由
Chord [10]項目誕生于美國的麻省理工學(xué)院。它的目標(biāo)是提供一個適合于P2P環(huán)境的分布式資源發(fā)現(xiàn)服務(wù),它通過使用DHT技術(shù)使得發(fā)現(xiàn)指定對象只需要維護(hù)O(logN)長度的路由表。在DHT技術(shù)中,網(wǎng)絡(luò)結(jié)點按照一定的方式分配一個唯一結(jié)點標(biāo)識符(Node ID) ,資源對象通過散列運算產(chǎn)生一個唯一的資源標(biāo)識符(Object ID) ,且該資源將存儲在結(jié)點ID與之相等或者相近的結(jié)點上。需要查找該資源時,采用同樣的方法可定位到存儲該資源的結(jié)點。因此,Chord的主要貢獻(xiàn)是提出了一個分布式查找協(xié)議,該協(xié)議可將指定的關(guān)鍵字(Key) 映射到對應(yīng)的結(jié)點(Node) 。從算法來看,Chord是相容散列算法的變體。
圖4 Chord的拓?fù)湫螤?/p>
CAN(Content Addressable Networks)[11] 項目采用多維的標(biāo)識符空間來實現(xiàn)分布式散列算法。CAN將所有結(jié)點映射到一個n維的笛卡爾空間中,并為每個結(jié)點盡可能均勻的分配一塊區(qū)域。CAN采用的散列函數(shù)通過對(key, value) 對中的key進(jìn)行散列運算,得到笛卡爾空間中的一個點,并將(key, value) 對存儲在擁有該點所在區(qū)域的結(jié)點內(nèi)。CAN采用的路由算法相當(dāng)直接和簡單,知道目標(biāo)點的坐標(biāo)后,就將請求傳給當(dāng)前結(jié)點四鄰中坐標(biāo)最接近目標(biāo)點的結(jié)點。CAN是一個具有良好可擴展性的系統(tǒng),給定N個結(jié)點,系統(tǒng)維數(shù)為d,則路由路徑長度為O(n1/d) ,每結(jié)點維護(hù)的路由表信息和網(wǎng)絡(luò)規(guī)模無關(guān)為O(d) 。
上述四種基于DHT的P2P系統(tǒng)的性能比較可以參照[12]。DHT這類結(jié)構(gòu)最大的問題是DHT的維護(hù)機制較為復(fù)雜,尤其是結(jié)點頻繁加入退出造成的網(wǎng)絡(luò)波動(Churn)會極大增加DHT的維護(hù)代價。DHT所面臨的另外一個問題是DHT僅支持精確關(guān)鍵詞匹配查詢,無法支持內(nèi)容/語義等復(fù)雜查詢。
半分布式拓?fù)浣Y(jié)構(gòu)(有的文獻(xiàn)亦稱作混雜模式,英文表達(dá)為Hybrid Structure)吸取了中心化結(jié)構(gòu)和全分布式非結(jié)構(gòu)化拓?fù)涞膬?yōu)點,選擇性能較高(處理、存儲、帶寬等方面性能)的結(jié)點作為超級結(jié)點(英文表達(dá)為SuperNodes或者Hubs),在各個超級結(jié)點上存儲了系統(tǒng)中其他部分結(jié)點的信息,發(fā)現(xiàn)算法僅在超級結(jié)點之間轉(zhuǎn)發(fā),超級結(jié)點再將查詢請求轉(zhuǎn)發(fā)給適當(dāng)?shù)娜~子結(jié)點。半分布式結(jié)構(gòu)也是一個層次式結(jié)構(gòu),超級結(jié)點之間構(gòu)成一個高速轉(zhuǎn)發(fā)層,超級結(jié)點和所負(fù)責(zé)的普通結(jié)點構(gòu)成若干層次。采用這種結(jié)構(gòu)的最典型的案例就是KaZaa。
圖5 半分布式拓?fù)浣Y(jié)構(gòu)(網(wǎng)絡(luò)中包含Super Node)
KaZaa是當(dāng)前世界最流行的幾款P2P文件共享軟件之一。根據(jù)CA公司統(tǒng)計,全球KaZaa的下載量超過2.5億次。使用KaZaa軟件進(jìn)行文件傳輸消耗了互聯(lián)網(wǎng)40%的帶寬。之所以它如此的成功,是因為它結(jié)合了Napster和Gnutella共同的優(yōu)點。從結(jié)構(gòu)上來說,它使用了Gnutella的全分布式的結(jié)構(gòu),這樣可以是系統(tǒng)更好的擴展,因為它無需中央索引服務(wù)器存儲文件名,它是自動的把性能好的機器成為SuperNode,它存儲著離它最近的葉子節(jié)點的文件信息,這些SuperNode,再連通起來形成一個Overlay Network. 由于SuperNode的索引功能,使搜索效率大大提高。
圖6 KaZaa的軟件界面
半分布式結(jié)構(gòu)的優(yōu)點是性能、可擴展性較好,較容易管理,但對超級點依賴性大,易于受到攻擊,容錯性也受到影響。
在實際應(yīng)用中,每種拓?fù)浣Y(jié)構(gòu)的P2P網(wǎng)絡(luò)都有其優(yōu)缺點,下表從可擴展性、可靠性、可維護(hù)性、發(fā)現(xiàn)算法的效率、復(fù)雜查詢等方面比較了這四種拓?fù)浣Y(jié)構(gòu)的綜合性能。
| 比較標(biāo)準(zhǔn)/拓?fù)浣Y(jié)構(gòu) | 中心化拓?fù)?/p> | 全分布式非結(jié)構(gòu)化拓?fù)?/p> | 全分布式結(jié)構(gòu)化拓?fù)?/p> | 半分布式拓?fù)?/p> |
| 可擴展性 | 差 | 差 | 好 | 中 |
| 可靠性 | 差 | 好 | 好 | 中 |
| 可維護(hù)性 | 最好 | 最好 | 好 | 中 |
| 發(fā)現(xiàn)算法效率 | 最高 | 中 | 高 | 中 |
| 復(fù)雜查詢 | 支持 | 支持 | 不支持 | 支持 |
參考文獻(xiàn):
- Napster官方網(wǎng)站http://www.napster.com/
- Matei Ripeanu et.al.Mapping the Gnutella Network: Properties of Large-Scale Peer-to-Peer Systems and Implications for System Design
- Gnutella協(xié)議http://www9.limewire.com/developer/gnutella_protocol_0.4.pdf
- C. Gkantsidis, et.al,Random Walks in Peer-to-Peer Networks,?INFOCOM 2004
- Dynamic Query協(xié)議http://www.the-gdf.org/index.php?title=Dynamic_Querying
- SDDS介紹http://www.usenix.org/events/osdi00/full_papers/gribble/gribble_html/dds.html
- Tapestry 工程http://p2p.cs.ucsb.edu/chimera/
- OceanStore工程http://oceanstore.cs.berkeley.edu/info/overview.html
- Pastry 工程http://research.microsoft.com/~antr/PAST/pastry.pdf
- Chord 工程http://pdos.csail.mit.edu/chord/
- Sylvia Ratnasamy.博士論文http://www.icir.org/sylvia/
- Fox Harrell et.al.Survey of Locating & Routing in Peer-to-Peer Systems
(標(biāo)注1)Several connected hosts using the same communication protocol are forming an overlay network that uses an underlying physical network infrastructure.
?
第?3?章?P2P搜索技術(shù)的研究與挑戰(zhàn)
?
隨著P2P應(yīng)用的蓬勃發(fā)展,作為P2P應(yīng)用中核心問題的搜索技術(shù)備受關(guān)注。本文將介紹主要的P2P搜索技術(shù)以及對搜索技術(shù)產(chǎn)生影響的一些因素和挑戰(zhàn)。
一、DHT網(wǎng)絡(luò)(結(jié)構(gòu)化P2P網(wǎng)絡(luò))的搜索技術(shù)
基于分布式Hash表的P2P系統(tǒng)包括CAN, Pastry, Tapestry ,Chord等,它們的路由和查詢方法前面已經(jīng)作介紹,這里不再贅述。這些系統(tǒng)建立在確定性拓?fù)浣Y(jié)構(gòu)的基礎(chǔ)上,從而表現(xiàn)出對網(wǎng)絡(luò)中路由的指導(dǎo)性和網(wǎng)絡(luò)中結(jié)點與數(shù)據(jù)管理的較強控制力。但是,對確定性結(jié)構(gòu)的認(rèn)識又限制了搜索算法效率的提升。研究分析了目前基于DHT的搜索算法,發(fā)現(xiàn)衡量搜索算法的兩個重要參數(shù)度數(shù)(表示節(jié)點的鄰居關(guān)系數(shù))和鏈路長度(搜索算法的平均路徑長度)之間存在漸進(jìn)曲線的關(guān)系,如圖1所示。
圖1 度數(shù)和直徑之間的漸進(jìn)曲線關(guān)系
在N個結(jié)點網(wǎng)絡(luò)中,圖中直觀顯示出當(dāng)度數(shù)為N時,搜索算法的直徑為O(1);當(dāng)每個結(jié)點僅維護(hù)一個鄰居時,搜索算法的直徑為O(N)。這是度數(shù)和直徑關(guān)系的兩種極端情況。同時,研究分析了O(d)的度和O(d)的直徑的算法是不可能的。
從漸進(jìn)曲線關(guān)系可以看出,如果想獲得更短的路徑長度,必然導(dǎo)致度數(shù)的增加;而網(wǎng)絡(luò)實際連接狀態(tài)的變化造成大度數(shù)鄰居關(guān)系的維護(hù)復(fù)雜程度增加。另外,研究者證明O(logN)甚至O(logN/loglogN)的平均路徑長度也不能滿足狀態(tài)變化劇烈的網(wǎng)絡(luò)應(yīng)用的需求。新的搜索算法受到這種折衷關(guān)系制約的根本原因在于DHT對網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的確定性認(rèn)識。
?? 現(xiàn)有DHT算法由于采用分布式散列函數(shù),所以只適合于準(zhǔn)確的查找,如果要支持目前Web上搜索引擎具有的多關(guān)鍵字查找的功能,還要引入新的方法。主要的原因在于DHT的工作方式。
?? 基于DHT的P2P系統(tǒng)采用相容散列函數(shù)根據(jù)精確關(guān)鍵詞進(jìn)行對象的定位與發(fā)現(xiàn)。散列函數(shù)總是試圖保證生成的散列值均勻隨機分布,結(jié)果兩個內(nèi)容相似度很高但不完全相同的對象被生成了完全不同的散列值,存放到了完全隨機的兩個結(jié)點上。因此,DHT可以提供精確匹配查詢,但是支持語義是非常困難的。
?? 目前在DHT基礎(chǔ)上開展帶有語義的資源管理技術(shù)的研究還非常少。由于DHT的精確關(guān)鍵詞映射的特性決定了無法和信息檢索等領(lǐng)域的研究成果結(jié)合,阻礙了基于DHT的P2P系統(tǒng)的大規(guī)模應(yīng)用。
二、非結(jié)構(gòu)化P2P網(wǎng)絡(luò)的搜索技術(shù)
?? 非結(jié)構(gòu)化P2P搜索技術(shù)一直采用洪泛轉(zhuǎn)發(fā)(Flooding)的方式,與DHT的啟發(fā)式搜索算法相比,可靠性差,對網(wǎng)絡(luò)資源的消耗較大。最新的研究從提高搜索算法的可靠性和尋找隨機圖中的最短路徑兩個方面展開。也就是對重疊網(wǎng)絡(luò)(Overlay Network)的重新認(rèn)識。其中,小世界模型特征和冪規(guī)律證明實際網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)既不是非結(jié)構(gòu)化系統(tǒng)所認(rèn)識的一個完全隨機圖,也不是DHT發(fā)現(xiàn)算法采用的確定性拓?fù)浣Y(jié)構(gòu)。實際網(wǎng)絡(luò)體現(xiàn)的冪規(guī)律分布的含義可以簡單解釋為在網(wǎng)絡(luò)中有少數(shù)結(jié)點有較高的“度”,多數(shù)結(jié)點的“度”較低。度較高的結(jié)點同其他結(jié)點的聯(lián)系比較多,通過它找到待查信息的概率較高。
?Small world模型的特性:網(wǎng)絡(luò)拓?fù)渚哂懈呔奂群投替湹奶匦浴T诜蟂mall World特性的網(wǎng)絡(luò)模型中,可以根據(jù)結(jié)點的聚集度將結(jié)點劃分為若干簇(Cluster),在每個簇中至少存在一個度最高的結(jié)點為中心結(jié)點。大量研究證明了以Gnutella為代表的P2P網(wǎng)絡(luò)符合Small World特征,也就是網(wǎng)絡(luò)中存在大量高連通結(jié)點,部分結(jié)點之間存在“短鏈”現(xiàn)象。
圖2 Gnutella 重疊網(wǎng)絡(luò)的Small World現(xiàn)象
因此,P2P搜索算法中如何縮短路徑長度的問題變成了如何找到這些“短鏈”的問題。尤其是在DHT搜索算法中,如何產(chǎn)生和找到“短鏈”是搜索算法設(shè)計的一個新的思路。Small World特征的發(fā)現(xiàn)和引入會對P2P搜索算法產(chǎn)生重大影響。
按照搜索策略,可以分為兩大類:盲目搜索和啟發(fā)式搜索。盲目搜索通過在網(wǎng)絡(luò)中傳播查詢信息并且把這些信息不斷擴散給每個節(jié)點。通過這種洪泛方式來搜索想要的資源。而啟發(fā)式搜索在搜索的過程中利用一些已有的信息來輔助查找過程。由于信息搜索對資源的存儲有一些知識,所以信息搜索能夠比較快的找到資源。
- Flooding 搜索方法
在最初的Gnutella協(xié)議中,使用的是Flooding方法,在網(wǎng)絡(luò)中,每個節(jié)點都不知道其他節(jié)點的資源。當(dāng)它要尋找某個文件,把這個查詢信息傳遞給它的相鄰節(jié)點,如果相鄰節(jié)點含有這個資源,就返回一個QueryHit的信息給Requester。如果它相鄰的節(jié)點都沒有命中這個被查詢文件,就把這條消息轉(zhuǎn)發(fā)給自己的相鄰節(jié)點。這種方式像洪水在網(wǎng)絡(luò)中各個節(jié)點流動一樣,所以叫做Flooding搜索。由于這種搜索策略是首先遍歷自己的鄰接點,然后再向下傳播,所以又稱為寬度優(yōu)先搜索方法(BFS)。如圖所示:搜索的節(jié)點一開始TTL=3,它每傳播一次TTL減1,如果TTL減到0還沒有搜索到資源,則停止。如果搜索到資源則返回目標(biāo)機器的信息以用來建立連接。在搜索過程中可能出現(xiàn)循環(huán),但是由于有TTL控制,所以這個循環(huán)不會永遠(yuǎn)進(jìn)行下去,當(dāng)TTL=0的時候自然結(jié)束。
圖3Flooding 方法示意圖
- Modified-BFS方法
這種方法是在寬度優(yōu)先方法Flooding上面作了一定修改。跟Flooding搜索方法不同,搜索源只是隨機的選取一定比例的相鄰節(jié)點作為查詢信息的發(fā)送目標(biāo),而不是發(fā)送給所有相鄰節(jié)點。相比于Flooding方法來說,是以時間換取空間的有效嘗試。
- Iterative Deepening搜索方法
迭代遞增是Flooding方法的改進(jìn),策略循環(huán)遞增TTL(Time to Live)值,這個值用來控制Flooding的搜索深度。跟Flooding搜索方法給TTL賦一個較大的值不同,這種方法在初始階段,給TTL一個很小的值,如果在TTL減為0,還沒有搜索到資源,則給TTL重新賦更高的值。這種策略可以減少搜索的半徑,但是在最壞的情況下,延遲很大,如果P2P網(wǎng)絡(luò)內(nèi)重復(fù)資源豐富,這種方法在不影響搜索質(zhì)量的基礎(chǔ)上將減少網(wǎng)絡(luò)內(nèi)的查詢流量,在有的文獻(xiàn)中亦稱為Expanding Ring(擴展環(huán)搜索)。
圖4 Iterative Deepening 過程
- Random Walk搜索方法:
在隨機漫步中,請求者發(fā)出K個查詢請求給隨機挑選的K個相鄰節(jié)點。然后每個查詢信息在以后的漫步過程中直接與請求者保持聯(lián)系,詢問是否還要繼續(xù)下一步。如果請求者同意繼續(xù)漫步,則又開始隨機選擇下一步漫步的節(jié)點,否則中止搜索。
圖5 Random Walk 效果圖
- Gnutella2的搜索方法
Gnutella2建立Super-Node,它存儲著離它最近的葉子節(jié)點的文件信息,這些SuperNode,再連通起來形成一個Overlay Network.當(dāng)葉子節(jié)點需要查詢文件,它首先從它連接的SuperNode的索引中尋找,如果找到了文件,則直接根據(jù)文件所存儲的機器的IP地址建立連接,如果沒有找到,則SuperNode把這個查詢請求發(fā)給它連接的其他超級節(jié)點,直到得到想要的資源,KaZaa,POCO等都是基于這種超級節(jié)點的思想。
圖6 Gnutella2的SuperNode節(jié)點圖
- 基于移動Agent的搜索方法
移動Agent是一個能在異構(gòu)網(wǎng)絡(luò)中自主地從一臺主機遷移到另一臺主機,并可與其他Agent或資源進(jìn)行交互的程序。Agent非常適合在網(wǎng)絡(luò)環(huán)境中來幫助用戶完成信息檢索的任務(wù)。現(xiàn)在意大利的一些研究人員在移動 Agent 結(jié)合P2P方面做了一些前沿的研究,其中的一些想法,就是通過在P2P軟件中嵌入Agent的運行時環(huán)境。當(dāng)有節(jié)點需要搜索的時候,它發(fā)送一個移動Agent 給它相鄰的節(jié)點,移動Agent記錄著它的一些搜索的信息。當(dāng)這個Agent到達(dá)一臺新的機器上,然后在這個機器上進(jìn)行資源搜索任務(wù),如果這臺機器上沒有它想要的資源,則它把這些搜索的信息傳給它的鄰節(jié)點,如果找到資源,則返回給請求的機器。
- Query Routing方法
這種方法是一種啟發(fā)式搜索方法。首先每個Peer給本節(jié)點的資源做索引,并且紀(jì)錄相鄰節(jié)點的資源信息,當(dāng)查詢到達(dá)的時候,可以查詢路由表直接定位到資源的位置,而不需要再次轉(zhuǎn)發(fā)查詢信息。
圖7Query Routing方法
三、P2P搜索技術(shù)研究的挑戰(zhàn)
P2P搜索技術(shù)中最重要的研究成果應(yīng)該是基于Small World理論的非結(jié)構(gòu)化搜索算法和基于DHT的結(jié)構(gòu)化搜索算法。尤其是DHT及其搜索技術(shù)為資源的組織與查找提供了一種新的方法,在近年來的P2P研究領(lǐng)域成為熱點。
隨著P2P系統(tǒng)實際應(yīng)用的發(fā)展,物理網(wǎng)絡(luò)中影響路由的一些因素開始影響P2P發(fā)現(xiàn)算法的效率。一方面,實際網(wǎng)絡(luò)中結(jié)點之間體現(xiàn)出較大的差異,即異質(zhì)性。由于客戶機/服務(wù)器模式在Internet和分布式領(lǐng)域十幾年的應(yīng)用和大量種類的電子設(shè)備的普及,如手提電腦、移動電話或PDA。這些設(shè)備在計算能力、存儲空間和電池容量上差別很大。另外,實際網(wǎng)絡(luò)被路由器和交換機分割成不同的自治區(qū)域,體現(xiàn)出嚴(yán)密的層次性。
另一方面,網(wǎng)絡(luò)波動的程度嚴(yán)重影響搜索算法的效率。網(wǎng)絡(luò)波動(Churn)包括結(jié)點的加入、退出、失敗、遷移、并發(fā)加入過程、網(wǎng)絡(luò)分割等。DHT的發(fā)現(xiàn)算法如Chord、CAN等都是考慮網(wǎng)絡(luò)波動的最差情況下的設(shè)計與實現(xiàn)。由于每個結(jié)點的度數(shù)盡量保持最小,這樣需要響應(yīng)的成員關(guān)系變化的維護(hù)可以比較小,從而可以快速恢復(fù)網(wǎng)絡(luò)波動造成的影響。但是每個結(jié)點僅有少量路由狀態(tài)的代價是發(fā)現(xiàn)算法的高延時,因為每一次查找需要聯(lián)系多個結(jié)點,在穩(wěn)定的網(wǎng)絡(luò)中這種思路是不必要的。
同時,作為一種資源組織與發(fā)現(xiàn)技術(shù)必然要支持復(fù)雜的查詢,如關(guān)鍵詞、內(nèi)容查詢等。盡管信息檢索和數(shù)據(jù)挖掘領(lǐng)域提供了大量成熟的語義查詢技術(shù),由于DHT精確關(guān)鍵詞映射的特性阻礙了DHT在復(fù)雜查詢方面的應(yīng)用。
P2P搜索方法一直是研究的熱點。一些新的搜索方法不斷的涌現(xiàn),但是,在資源搜索效率和準(zhǔn)確定位方面還有很大的改善空間,以及基于P2P技術(shù)的搜索引擎要達(dá)到現(xiàn)在集中式的搜索引擎Google,百度這樣廣泛使用還需要一段長時間的努力。
?
?
?
第?4?章?Peer-to-Peer 的應(yīng)用研究、面臨的問題與前景展望
一、國外公司與研究機構(gòu)研究情況
近年來,隨著Napster、KaZaa、BT、eMule這樣的基于P2P技術(shù)的文件共享軟件在Internet上迅速傳播,P2P技術(shù)在國際國內(nèi)都引發(fā)了研究的新熱潮。國外開展P2P研究的學(xué)術(shù)團體主要包括P2P工作組(P2PWG)、全球網(wǎng)格論壇(GGF)以及各高校的研究小組。P2P工作組成立的主要目的是希望加速P2P計算基礎(chǔ)設(shè)施的建立和相應(yīng)的標(biāo)準(zhǔn)化工作。P2PWG成立之后,對P2P計算中的術(shù)語進(jìn)行了統(tǒng)一,也形成相關(guān)的草案,但是在標(biāo)準(zhǔn)化工作方面工作進(jìn)展緩慢。目前P2PWG已經(jīng)和GGF合并,由該論壇管理P2P計算相關(guān)的工作。GGF負(fù)責(zé)網(wǎng)格計算和P2P計算等相關(guān)的標(biāo)準(zhǔn)化工作。
從國外公司對P2P計算的支持力度來看,Microsoft公司、Sun公司和Intel公司投入較大。Microsoft公司成立了Pastry項目組,主要負(fù)責(zé)P2P計算技術(shù)的研究工作,目前開發(fā)了基于Pastry的多種應(yīng)用,包括SCRIBE、PAST、SQUIRREL等。在新一代的Windows Vista操作系統(tǒng)中,也增加了最新的P2P研究成果來支持協(xié)同工作(標(biāo)注1)。在2000年8月,Intel公司宣布成立P2P工作組,正式開展P2P的研究。工作組成立以后,積極與應(yīng)用開發(fā)商合作,開發(fā)P2P應(yīng)用平臺。2002年Intel發(fā)布了. Net基礎(chǔ)架構(gòu)之上的Accelerator Kit (P2P加速工具包) 和P2P安全API軟件包,從而使得微軟. NET開發(fā)人員能夠迅速地建立P2P安全Web應(yīng)用程序。IBM公司也開展了基于P2P技術(shù)的研究,提出了Smart Networking,另外IBM公司大力支持的網(wǎng)格計算(Grid Computing)與P2P計算在許多方面研究類似。
Sun公司以Java技術(shù)為背景,開展了JXTA項目。JXTA是基于Java的開源P2P平臺,任何個人和組織均可以加入該項目。因此,該項目不僅吸引了大批P2P研究人員和開發(fā)人員,而且已經(jīng)發(fā)布了基于JXTA的即時聊天軟件包和搜索引擎。JXTA定義了一組核心業(yè)務(wù):認(rèn)證、資源發(fā)現(xiàn)和管理。在安全方面,JXTA加入了加密軟件包,允許使用該加密包進(jìn)行數(shù)據(jù)加密,從而保證消息的隱私、可認(rèn)證性和完整性。在JXTA核心之上,還定義了包括內(nèi)容管理、信息搜索以及服務(wù)管理在內(nèi)的各種其它可選JXTA服務(wù)。在核心服務(wù)和可選服務(wù)基礎(chǔ)上,用戶可以開發(fā)各種JXTA平臺上的P2P應(yīng)用。
二、應(yīng)用研究的分類
P2P實際的應(yīng)用研究和產(chǎn)品主要體現(xiàn)在以下幾個方面:
- P2P分布式存儲系統(tǒng)
P2P分布式存儲系統(tǒng)(文件共享與下載)是一個用于對等網(wǎng)絡(luò)的數(shù)據(jù)存儲系統(tǒng),它可以提供高效率的、魯棒的和負(fù)載平衡的文件存取功能。對于存儲系統(tǒng),用戶關(guān)心數(shù)據(jù)的定位、搜索以及路由的效率,安全性也是重要的因素。集中方式在很多情況下不再適用這種大規(guī)模數(shù)據(jù)存儲的要求,這就需要一個新的體系來管理系統(tǒng)中的數(shù)據(jù)。P2P分布式存儲系統(tǒng)就是解決這樣的問題。這些研究包括全分布式存儲系統(tǒng):Oceanstore,Past和FreeHaven等。其中,基于超級點結(jié)構(gòu)的半分布式P2P應(yīng)用如KaZaa、Edonkey、Morpheus、Bit Torrent等也屬于P2P共享存儲的范疇,并且用戶數(shù)量急劇增加。Oceanstore和Past都提供了一種有效的廣域網(wǎng)存儲模型。它們的底層都建立了一個代價上限為logN的路由策略。 Past則是面向一個相對簡單而緊湊的概念,它采用Pastry提供的路由機制,試圖利用網(wǎng)絡(luò)中閑置的存儲節(jié)點建立一個更為完善的存儲語義。FreeHaven則建立了一個詳細(xì)的匿名體系,用來防止?jié)撛诘膼阂夤簟?br />
- P2P計算能力的共享
加入對等網(wǎng)絡(luò)的結(jié)點除了可以共享存儲能力之外,還可以共享CPU處理能力。目前已經(jīng)有了一些基于對等網(wǎng)絡(luò)的計算能力共享系統(tǒng),比如SETI@home。SETI@home是由加州伯克利大學(xué)開展的尋找外星生命的研究計劃。它使用P2P技術(shù)串聯(lián)所有參與研究計劃的閑置的計算機來執(zhí)行復(fù)雜的運算,用來分析行星的無線電訊號,尋找宇宙可能存在其他外星文明的證據(jù),這些電腦每天平均發(fā)揮的效能超過了全球造價最高,運算最快的超級電腦。這種計算能力共享系統(tǒng)還可以用于進(jìn)行基因數(shù)據(jù)庫檢索和密碼破解等需要大規(guī)模計算能力的應(yīng)用。
- P2P協(xié)同工作環(huán)境
協(xié)同工作是指多用戶之間利用網(wǎng)絡(luò)中的協(xié)同計算平臺互相協(xié)同來共同完成計算任務(wù),共享信息資源等。通過采用P2P技術(shù),個人和組織可以隨時采用多種方式建立在線、非在線的協(xié)同應(yīng)用環(huán)境。協(xié)同應(yīng)用一般包括:實時通信、聊天室、文件共享、語音通訊等基本功能,除了這些基本功能,用戶之間還可以共享白板、協(xié)同寫作、視頻會議等。另外,協(xié)同有時候還包括工程人員的協(xié)作開發(fā)軟件。例如,JBuilder2006 Java集成開發(fā)環(huán)境就增加了P2P協(xié)同開發(fā)的屬性。采用P2P技術(shù)使協(xié)同工作不再需要中心服務(wù)器,參與協(xié)同工作的計算機可以點對點建立連接。Groove就是基于P2P的協(xié)同軟件平臺,已經(jīng)被微軟公司收購。
- P2P應(yīng)用層組播
組播技術(shù)(Multicast)是一種針對多點傳輸和多方協(xié)作應(yīng)用的組通信模型,有高效的數(shù)據(jù)傳輸效率,是下一代Internet應(yīng)用的重要支撐技術(shù)。早期的組播技術(shù)研究試圖在IP層提供組播通信功能,但I(xiàn)P組播的實施涉及到對現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施的調(diào)整,因此,大規(guī)模應(yīng)用受到限制。隨著P2P研究的興起,基于應(yīng)用層的組播技術(shù)逐漸受到廣泛關(guān)注。應(yīng)用層組播協(xié)議將組成員節(jié)點自組織成重疊網(wǎng)絡(luò)(Overlay network) ,在主機節(jié)點實現(xiàn)組播功能,為數(shù)據(jù)多點并發(fā)傳輸提供服務(wù)。應(yīng)用層組播是在應(yīng)用層實現(xiàn)組播功能而不需要網(wǎng)絡(luò)層的支持,這樣就可以避免出現(xiàn)由于網(wǎng)絡(luò)層遲遲不能部署對組播的支持而使組播應(yīng)用難以進(jìn)行的情況。當(dāng)然,應(yīng)用層組播也有許多局限:一是端系統(tǒng)對IP網(wǎng)絡(luò)的了解有限,節(jié)點參與組網(wǎng)時,只能通過探測獲得一些網(wǎng)絡(luò)性能參數(shù),選取的邏輯鏈路難以優(yōu)化;二是主機不了解IP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),只能通過帶寬和時延等外在的特性參數(shù),以啟發(fā)式的方式建立重疊網(wǎng)絡(luò),邏輯鏈路不能較好地利用質(zhì)量較好的底層網(wǎng)絡(luò)資源,重疊網(wǎng)絡(luò)的多條鏈路可能經(jīng)過同一條物理鏈路。
- Internet間接訪問基礎(chǔ)結(jié)構(gòu)
為了使Internet更好地支持組播、單播和移動等特性,Internet間接訪問基礎(chǔ)結(jié)構(gòu)提出了基于匯聚點的通信抽象。在這一結(jié)構(gòu)中,并不把分組直接發(fā)向目的結(jié)點,而是給每個分組分配一個標(biāo)識符,而目的結(jié)點則根據(jù)標(biāo)識符接收相應(yīng)的分組。標(biāo)識符實際上表示的是信息的匯聚點。目的結(jié)點把自己想接收的分組的標(biāo)識符預(yù)先通過一個觸發(fā)器告訴匯聚點,當(dāng)匯聚點收到分組時,將會根據(jù)觸發(fā)器把分組轉(zhuǎn)發(fā)該相應(yīng)的目的結(jié)點。Internet間接訪問基礎(chǔ)結(jié)構(gòu)實際上在Internet上構(gòu)成了一個重疊網(wǎng)絡(luò),它需要對等網(wǎng)絡(luò)的路由系統(tǒng)對它提供相應(yīng)的支持。
- P2P流媒體技術(shù)
傳統(tǒng)的分布式多媒體系統(tǒng)一般是基于客戶/服務(wù)器模式,服務(wù)器以單播的方式和每個用戶建立連接,由于流媒體服務(wù)具有高寬帶、持續(xù)時間長等特點,隨著用戶數(shù)量的增加,服務(wù)器的帶寬很快被消耗完,所以以前的網(wǎng)絡(luò)電視經(jīng)常出現(xiàn)斷斷續(xù)續(xù),需要不斷地進(jìn)行數(shù)據(jù)緩沖。為了解決系統(tǒng)的可擴展性,許多研究提出了相應(yīng)的解決辦法,例如IP組播技術(shù)來實現(xiàn)Internet上高效的一對多的通信,提高了系統(tǒng)的可擴展性。然而由于IP組播存在種種限制,如很難實現(xiàn)可靠性組播和擁塞控制等,IP組播技術(shù)并沒有得到廣泛的應(yīng)用。由于P2P網(wǎng)絡(luò)本身的可擴展性,基于P2P方式的流媒體技術(shù)很好的解決了傳統(tǒng)流媒體帶寬不足的問題。單源的P2P流媒體系統(tǒng)建立在應(yīng)用層組播技術(shù)的基礎(chǔ)之上,由一個發(fā)送者向多個接收者發(fā)送數(shù)據(jù),接收者有且只有一個數(shù)據(jù)源。服務(wù)器和所有客戶節(jié)點組織成組播樹,組播樹的中間節(jié)點接受來自父節(jié)點組播的媒體數(shù)據(jù),同時將數(shù)據(jù)以組播的方式傳送給子節(jié)點。而多源的P2P流媒體傳輸系統(tǒng),則是由多個發(fā)送者以單播的方式同時向一個接收者發(fā)送媒體數(shù)據(jù)。
- P2P搜索技術(shù)
P2P搜索技術(shù)使用戶能夠深度搜索文檔。而且這種搜索無需通過Web服務(wù)器,也可以不受信息文檔格式和宿主設(shè)備的限制,可達(dá)到傳統(tǒng)目錄式搜索引擎無可比擬的深度。目前,集中式搜索引擎谷歌、雅虎 、百度是人們在網(wǎng)絡(luò)中檢索信息資源的主要工具,但這種集中式的搜索引擎遠(yuǎn)遠(yuǎn)無法涵蓋所有互聯(lián)網(wǎng)內(nèi)的共享內(nèi)容,而P2P搜索技術(shù)正好是這種集中式檢索的一種良性互補。
簡單描述這個過程:每個節(jié)點在加入網(wǎng)絡(luò)的時候,會對存儲在本節(jié)點上的內(nèi)容進(jìn)行索引,以滿足本地內(nèi)容檢索的目的。然后按某種預(yù)定的規(guī)則選擇一些節(jié)點作為自己的鄰居,加入到P2P網(wǎng)絡(luò)當(dāng)中去。發(fā)起者P提出檢索請求q,并將q發(fā)送給自己的鄰居,P的鄰居收到q后,檢查本身是否存在查詢的信息,如果不存在,轉(zhuǎn)發(fā)查詢,直到返回結(jié)果。
圖3 P2P搜索流程
三、國內(nèi)學(xué)術(shù)機構(gòu)研發(fā)情況
- Maze
Maze 是北京大學(xué)網(wǎng)絡(luò)實驗室開發(fā)的一個中心控制與對等連接相融合的對等計算文件共享系統(tǒng),在結(jié)構(gòu)上類似Napster,對等計算搜索方法類似于Gnutella。網(wǎng)絡(luò)上的一臺計算機,不論是在內(nèi)網(wǎng)還是外網(wǎng),可以通過安裝運行Maze的客戶端軟件自由加入和退出Maze系統(tǒng)。每個節(jié)點可以將自己的一個或多個目錄下的文件共享給系統(tǒng)的其他成員,也可以分享其他成員的資源。Maze支持基于關(guān)鍵字的資源檢索,也可以通過好友關(guān)系直接獲得。http://maze.tianwang.com/
- Granary
Granary是清華大學(xué)自主開發(fā)的P2P存儲服務(wù)系統(tǒng)。所謂P2P存儲服務(wù)系統(tǒng)是指存儲服務(wù)的提供者在Internet中部署一定數(shù)量的存儲服務(wù)器,為用戶提供數(shù)據(jù)存儲服務(wù),確保數(shù)據(jù)的可靠性、可用性、安全性和訪問效率;存儲服務(wù)的使用者按照所存儲數(shù)據(jù)的容量和質(zhì)量付費。它以“對象”格式存儲數(shù)據(jù)并且支持屬性級的數(shù)據(jù)查詢。http://hpc.cs.tsinghua.edu.cn/granary/
- AnySee
AnySee是華中科大設(shè)計研發(fā)的視頻直播系統(tǒng)。它采用了一對多的服務(wù)模式,支持部分NAT和防火墻的穿越,提高了視頻直播系統(tǒng)的可擴展性;同時,它利用近播原則、分域調(diào)度的思想,使用Landmark路標(biāo)算法直接建樹的方式構(gòu)建應(yīng)用層上的組播樹,克服了ESM等一對多模式系統(tǒng)由聯(lián)接圖的構(gòu)造和維護(hù)帶來的負(fù)載影響。
- WonGoo
WonGoo是中科院計算所研制的一套P2P技術(shù)平臺,該平臺主要為信息安全、網(wǎng)格計算提供支撐技術(shù)和試驗環(huán)境,同時WonGoo的基礎(chǔ)部件將在開發(fā)完善之后以開放源代碼的方式向社會公開。
WonGoo主要包括兩個方面的特色功能:具有強匿名性的P2P通訊(WonGoo-Link),基于內(nèi)容查找的P2P資源共享(WonGoo-Search)。可以在這兩個功能的基礎(chǔ)上搭建各種特色化的P2P應(yīng)用,目前相關(guān)的應(yīng)用還沒有具體實現(xiàn)。WonGoo-Link與WonGoo-Search可以分別獨立構(gòu)造并搭建各自的應(yīng)用。同時,WonGoo-Search底層通訊也可以采用WonGoo-Link協(xié)議來實現(xiàn)更安全的應(yīng)用。
- 基于IPV6的P2P內(nèi)容存取應(yīng)用系統(tǒng)
這是北京大學(xué)、清華大學(xué)、上海交通大學(xué)、浙江大學(xué)、華中科技大學(xué)、華南理工大學(xué)、北京世紀(jì)鼎點軟件有限公司共同承擔(dān)的國家CNGI項目的一部分。它主要研究基于智能節(jié)點彈性重疊網(wǎng)絡(luò)技術(shù)的內(nèi)容存取應(yīng)用中間件系統(tǒng),在 CNGI 上建設(shè)可管理、可控制和可運營的智能節(jié)點彈性重疊網(wǎng)絡(luò),開發(fā)內(nèi)容存取類應(yīng)用。http://p2p.grids.cn/
四、國內(nèi)企業(yè)研發(fā)的情況
國內(nèi)企業(yè)在P2P的應(yīng)用領(lǐng)域研究一直與世界同步,開發(fā)了眾多使用廣泛的P2P產(chǎn)品。這些產(chǎn)品主要集中在文件共享與下載,網(wǎng)絡(luò)流媒體電視等方面。
- POCO
???POCO 是中國領(lǐng)先的免費電影、音樂、動漫等多媒體分享平臺,同時在線人數(shù)突破數(shù)七十萬人, 是中國最大的電影音樂動漫分享平臺,是有流量控制力的,無中心服務(wù)器的第三代 P2P 資源交換平臺。POCO提供多點傳輸、斷點續(xù)傳等技術(shù),來保障傳輸過程的高效和穩(wěn)定。
- OP
???? OP-又稱為Openext Media Desktop,一個網(wǎng)絡(luò)娛樂內(nèi)容平臺,Napster的后繼者,它可以最直接的方式找到您想要的音樂、影視、軟件、游戲、圖片、書籍以及各種文檔,隨時在線共享文件容量數(shù)以億計“十萬影視、百萬音樂、千萬圖片”。OP整合了Internet Explorer、Windows Media Player、RealOne Player和ACDSee ,是國內(nèi)的網(wǎng)絡(luò)娛樂內(nèi)容平臺。
- PPLive
??? PPLive是一款用于互聯(lián)網(wǎng)上大規(guī)模視頻直播的共享軟件。它使用網(wǎng)狀模型,有效解決了當(dāng)前網(wǎng)絡(luò)視頻點播服務(wù)的帶寬和負(fù)載有限問題,實現(xiàn)用戶越多,播放越流暢的特性,整體服務(wù)質(zhì)量大大提高。
?? 其他的非常優(yōu)秀的商業(yè)軟件包括PP點點通,eMule,BT客戶端軟件可以訪問中國P2P門戶網(wǎng)站?http://www.ppcn.NET/?,這里不再贅述。
五、面臨的問題
- 知識產(chǎn)權(quán)保護(hù)
在P2P共享網(wǎng)絡(luò)中普遍存在著知識產(chǎn)權(quán)保護(hù)問題。盡管目前Gnutella、Kazaa等P2P共享軟件宣傳其骨干服務(wù)器上并沒有存儲任何涉及產(chǎn)權(quán)保護(hù)的內(nèi)容的備份,而僅僅是保存了各個內(nèi)容在互聯(lián)網(wǎng)上的存儲索引。但無疑的是,P2P共享軟件的繁榮加速了盜版媒體的分發(fā),提高了知識產(chǎn)權(quán)保護(hù)的難點。美國唱片工業(yè)協(xié)會RIAA與這些共享軟件公司展開了漫長的官司拉鋸戰(zhàn),著名的Napster便是這場戰(zhàn)爭的第一個犧牲者。另一個涉及面很關(guān)的戰(zhàn)場則是RIAA和使用P2P來交換正版音樂的平民。從2004年1月至今RIAA已提交了1000份有關(guān)方面的訴訟。盡管如此,至今每個月仍然有超過150,000,000的歌曲在網(wǎng)絡(luò)上被自由下載。后Napster時代的P2P共享軟件較Napster更具有分散性,也更難加以控制。即使P2P共享軟件的運營公司被判違法而關(guān)閉,整個網(wǎng)絡(luò)仍然會存活,至少會正常工作一段時間。
另一方面,Napster以后的P2P共享軟件也在迫切尋找一個和媒體發(fā)布廠商的共生互利之道。如何更加合法合理的應(yīng)用這些共享軟件,是一個新時代的課題。畢竟P2P除了共享盜版軟件,還可以共享相當(dāng)多的有益的信息。
網(wǎng)絡(luò)社會與自然社會一樣,其自身具有一種自發(fā)地在無序和有序之間尋找平衡的趨勢。P2P技術(shù)為網(wǎng)絡(luò)信息共享帶來了革命性的改進(jìn),而這種改進(jìn)如果想要持續(xù)長期地為廣大用戶帶來好處,必須以不損害內(nèi)容提供商的基本利益為前提。這就要求在不影響現(xiàn)有P2P共享軟件性能的前提下,一定程度上實現(xiàn)知識產(chǎn)權(quán)保護(hù)機制。目前,已經(jīng)有些P2P廠商和其它公司一起在研究這樣的問題。這也許將是下一代P2P共享軟件面臨的挑戰(zhàn)性技術(shù)問題之一。
- 網(wǎng)絡(luò)病毒傳播
?? 隨著計算機網(wǎng)絡(luò)應(yīng)用的深入發(fā)展,計算機病毒對信息安全的威脅日益增加。特別是在P2P環(huán)境下,方便的共享和快速的選路機制,為某些網(wǎng)絡(luò)病毒提供了更好的入侵機會。
由于P2P網(wǎng)絡(luò)中邏輯相鄰的節(jié)點,地理位置可能相隔很遠(yuǎn),而參與P2P網(wǎng)絡(luò)的節(jié)點數(shù)量 又非常大,因此通過P2P系統(tǒng)傳播的病毒,波及范圍大,覆蓋面廣,從而造成的損失會很大。
在P2P網(wǎng)絡(luò)中,每個節(jié)點防御病毒的能力是不同的。只要有一個節(jié)點感染病毒,就可以通過內(nèi)部共享和通信機制將病毒擴散到附近的鄰居節(jié)點。在短時間內(nèi)可以造成網(wǎng)絡(luò)擁塞甚至癱瘓,共享信息丟失,機密信息失竊,甚至通過網(wǎng)絡(luò)病毒可以完全控制整個網(wǎng)絡(luò)。
一個突出的例子就是2003年通過即時通訊軟件傳播病毒的案例顯著增多。包括Symantec公司和McAfee公司的高層技術(shù)主管都預(yù)測即時通訊軟件將會成為網(wǎng)絡(luò)病毒傳播和黑客攻擊的主要載體之一。
隨著P2P技術(shù)的發(fā)展,將來會出現(xiàn)各種專門針對P2P系統(tǒng)的網(wǎng)絡(luò)病毒。利用系統(tǒng)漏洞,達(dá)到迅速破壞、瓦解、控制系統(tǒng)的目的。因此,網(wǎng)絡(luò)病毒的潛在危機對P2P系統(tǒng)安全性和健壯性提出了更高的要求,迫切需要建立一套完整、高效、安全的防毒體系。
- 網(wǎng)絡(luò)帶寬問題
P2P文件共享和下載給用戶帶來了很大便利。然而,隨著它的大面積流行,P2P下載流量占用帶寬接入的大量資源,被許多ISP視為洪水猛獸。據(jù)統(tǒng)計,在一些地方,Internet超過了70%以上的流量被P2P相關(guān)應(yīng)用占據(jù),很多公司和學(xué)校不得不封殺P2P端口來阻止這種視頻、音頻文件傳輸。這樣的下載流量在有時會影響了某些用戶使用正常的Web, Email以及視頻點播等業(yè)務(wù)。
- 安全問題
??P2P網(wǎng)絡(luò)系統(tǒng)的開發(fā),除了涉及傳統(tǒng)的安全性的領(lǐng)域:身份識別認(rèn)證、授權(quán)、數(shù)據(jù)完整性、保密性和不可否認(rèn)性,還有一系列安全管理問題比較突出:
- P2P網(wǎng)絡(luò)沒有中心服務(wù)器,信息完全共享,這給了使用者很大的自由,但是這也使其陷入“無政府主義”的困境色情影片、暴力影片在這些系統(tǒng)中隨處可見,獲取完全免費,這樣對青少年成長會造成負(fù)面影響。
- 由于P2P系統(tǒng)的復(fù)制傳播迅速,一些機密文件一旦丟失,在P2P系統(tǒng)只要有一份拷貝,就有可能迅速擴張,造成大面積的影響。
- 間諜軟件已經(jīng)成為P2P軟件的硬傷。例如,P2P軟件KaZaa在大面積流行的時候,里面出現(xiàn)了大量的間諜軟件,CA公司稱:KaZaa 是互聯(lián)網(wǎng)最具威脅的間諜件。許多使用P2P網(wǎng)絡(luò)下載的用戶被植入間諜軟件。
六、發(fā)展趨勢
在P2P文件共享領(lǐng)域,技術(shù)已經(jīng)比較成熟,這樣的軟件如eMule,BT,KaZaa,POCO分別培養(yǎng)了自己的用戶群。但是,由于基于不同協(xié)議的P2P系統(tǒng)資源并不共享,相互隔絕。所以,當(dāng)前階段,這一類型軟件正處在自由競爭階段,進(jìn)入市場的企業(yè)無論是規(guī)模還是實力,都不相上下。要想在競爭中取勝,下面這些內(nèi)容必須考慮。怎么樣激勵用戶提供資源?怎么樣保障網(wǎng)絡(luò)里資源高速穩(wěn)定的下載速度?怎么樣去除間諜軟件和病毒在系統(tǒng)中的傳播?除了這些,還有人氣的較量,服務(wù)質(zhì)量的較量,收費與免費的較量。最終研究方向是,P2P網(wǎng)間資源的整合,資源互通,搜索共享。
在P2P協(xié)同計算方面,國內(nèi)企業(yè)起步較晚。相關(guān)產(chǎn)品還不是很多,而國外例如Groove在這方面已經(jīng)作了大量的工作,開發(fā)了相對成熟的產(chǎn)品。隨著協(xié)同計算概念的興起,這方面軟件的需求呈現(xiàn)急劇增長的趨勢,應(yīng)該是一片廣闊的籃海。而且,這類軟件往往是面向企業(yè)和政府用戶,所以相對于免費的P2P文件共享軟件來說,有更好的盈利空間。
在P2P的流媒體技術(shù)方面,目前,流媒體傳輸?shù)难芯坎艅偲鸩讲痪?#xff0c;還有許多問題需要解決。由于P2P流媒體系統(tǒng)中節(jié)點的行為具有Ad-Hoc性質(zhì),如何在動態(tài)的系統(tǒng)環(huán)境下保證流媒體的服務(wù)質(zhì)量,需要結(jié)合流媒體對QoS的要求和網(wǎng)絡(luò)流量分析等方面的知識,研究高效率、低代價的QoS保障機制。可研究的方向包括:服務(wù)節(jié)點的選擇、節(jié)點失效時如何保證流媒體服務(wù)的連續(xù)以及對多個發(fā)送端的傳輸調(diào)度等。
基于P2P技術(shù)的VoIP產(chǎn)品Skype的巨大成功給P2P開辟了又一個新的領(lǐng)域。相關(guān)專家認(rèn)為,VOIP的發(fā)展目前應(yīng)該是有兩條路,一種是傳統(tǒng)電信運營商的路線,即在可管理的IP網(wǎng)上建立IMS平臺發(fā)展 VoIP話音業(yè)務(wù)。這種網(wǎng)絡(luò)是封閉的,可管理的。另外一種是基于現(xiàn)有互聯(lián)網(wǎng)公眾公共P2P VoIP網(wǎng)絡(luò)。它的特點是開放的,任何人可以自由加入和離開網(wǎng)絡(luò),具有分布管理和增長能力,任何設(shè)備只要支持標(biāo)準(zhǔn)協(xié)議都可以使用。傳統(tǒng)電信運營商的利益需求和廣大用戶的需求成為一個矛盾,但是市場的需求和VOIP 的發(fā)展趨勢是不可改變的。將來具體采用哪條路,還不確定,還要看發(fā)展,看競爭情況。或許會有很多的企業(yè)大客戶、政府機構(gòu)等對安全性等有特殊的要求,會采用電信運營商建立的VOIP業(yè)務(wù),但是對于廣大普通用戶來說,基于公共互聯(lián)網(wǎng)的P2P VoIP網(wǎng)絡(luò)將是大勢所趨。
綜上所述,P2P技術(shù)正處在發(fā)展的春天,基于這項技術(shù)的殺手級應(yīng)用將不斷涌現(xiàn),這些技術(shù)將極大地改善了整個IT世界的面貌,可以說是互聯(lián)網(wǎng)技術(shù)的又一次新的革命。
(標(biāo)注1)著名的P2P協(xié)同軟件Groove的創(chuàng)始人Ray Ozzie 目前被微軟公司任命為首席軟件架構(gòu)師。
?
轉(zhuǎn)載源地址:http://www.intsci.ac.cn/users/luojw/P2P/
?
總結(jié)
以上是生活随笔為你收集整理的Peer-To-Peer 综述(P2P技术综述)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【项目管理/PMP/PMBOK第六版/新
- 下一篇: UE4中Pak文件的读取规则