Peer to Peer ( P2P ) 综述
1.1?Peer-To-Peer?介紹
最近幾年,對(duì)等計(jì)算( Peer-to-Peer,簡(jiǎn)稱P2P)?迅速成為計(jì)算機(jī)界關(guān)注的熱門(mén)話題之一,財(cái)富雜志更將P2P列為影響Internet未來(lái)的四項(xiàng)科技之一。
目前,在學(xué)術(shù)界、工業(yè)界對(duì)于P2P沒(méi)有一個(gè)統(tǒng)一的定義,下面列舉幾個(gè)常用的定義供參考:
定義:1、Peer-to-peer is a type of Internet network allowing a group of computer users with the same networking program to connect with each other for the purposes of directly accessing files from one another's hard drives.
2、Peer-to-peer networking (P2P) is an application that runs on a personal computer and shares files with other users across the Internet. P2P networks work by connecting individual computers together to share files instead of having to go through a central server.
3、P2P是一種分布式網(wǎng)絡(luò),網(wǎng)絡(luò)的參與者共享他們所擁有的一部分硬件資源(處理能力、存儲(chǔ)能力、網(wǎng)絡(luò)連接能力、打印機(jī)等),這些共享資源需要由網(wǎng)絡(luò)提供服務(wù)和內(nèi)容,能被其它對(duì)等節(jié)點(diǎn)(Peer)直接訪問(wèn)而無(wú)需經(jīng)過(guò)中間實(shí)體。在此網(wǎng)絡(luò)中的參與者既是資源(服務(wù)和內(nèi)容)提供者(Server),又是資源(服務(wù)和內(nèi)容)獲取者(Client)。
雖然上述定義稍有不同,但共同點(diǎn)都是P2P打破了傳統(tǒng)的Client/Server (C/S)模式,在網(wǎng)絡(luò)中的每個(gè)結(jié)點(diǎn)的地位都是對(duì)等的。每個(gè)結(jié)點(diǎn)既充當(dāng)服務(wù)器,為其他結(jié)點(diǎn)提供服務(wù),同時(shí)也享用其他結(jié)點(diǎn)提供的服務(wù)。P2P與C/S模式的對(duì)比如下圖所示:
| Client/Server模式 | Peer to Peer 模式 |
P2P技術(shù)的特點(diǎn)體現(xiàn)在以下幾個(gè)方面。
-
非中心化(Decentralization):網(wǎng)絡(luò)中的資源和服務(wù)分散在所有結(jié)點(diǎn)上,信息的傳輸和服務(wù)的實(shí)現(xiàn)都直接在結(jié)點(diǎn)之間進(jìn)行,可以無(wú)需中間環(huán)節(jié)和服務(wù)器的介入,避免了可能的瓶頸。P2P的非中心化基本特點(diǎn),帶來(lái)了其在可擴(kuò)展性、健壯性等方面的優(yōu)勢(shì)。
-
可擴(kuò)展性:在P2P網(wǎng)絡(luò)中,隨著用戶的加入,不僅服務(wù)的需求增加了,系統(tǒng)整體的資源和服務(wù)能力也在同步地?cái)U(kuò)充,始終能較容易地滿足用戶的需要。整個(gè)體系是全分布的,不存在瓶頸。理論上其可擴(kuò)展性幾乎可以認(rèn)為是無(wú)限的。
-
健壯性:P2P架構(gòu)天生具有耐攻擊、高容錯(cuò)的優(yōu)點(diǎn)。由于服務(wù)是分散在各個(gè)結(jié)點(diǎn)之間進(jìn)行的,部分結(jié)點(diǎn)或網(wǎng)絡(luò)遭到破壞對(duì)其它部分的影響很小。P2P網(wǎng)絡(luò)一般在部分結(jié)點(diǎn)失效時(shí)能夠自動(dòng)調(diào)整整體拓?fù)?#xff0c;保持其它結(jié)點(diǎn)的連通性。P2P網(wǎng)絡(luò)通常都是以自組織的方式建立起來(lái)的,并允許結(jié)點(diǎn)自由地加入和離開(kāi)。P2P網(wǎng)絡(luò)還能夠根據(jù)網(wǎng)絡(luò)帶寬、結(jié)點(diǎn)數(shù)、負(fù)載等變化不斷地做自適應(yīng)式的調(diào)整。
-
高性能/價(jià)格比:性能優(yōu)勢(shì)是P2P被廣泛關(guān)注的一個(gè)重要原因。隨著硬件技術(shù)的發(fā)展,個(gè)人計(jì)算機(jī)的計(jì)算和存儲(chǔ)能力以及網(wǎng)絡(luò)帶寬等性能依照摩爾定理高速增長(zhǎng)。采用P2P架構(gòu)可以有效地利用互聯(lián)網(wǎng)中散布的大量普通結(jié)點(diǎn),將計(jì)算任務(wù)或存儲(chǔ)資料分布到所有結(jié)點(diǎn)上。利用其中閑置的計(jì)算能力或存儲(chǔ)空間,達(dá)到高性能計(jì)算和海量存儲(chǔ)的目的。通過(guò)利用網(wǎng)絡(luò)中的大量空閑資源,可以用更低的成本提供更高的計(jì)算和存儲(chǔ)能力。
-
隱私保護(hù):?在P2P網(wǎng)絡(luò)中,由于信息的傳輸分散在各節(jié)點(diǎn)之間進(jìn)行而無(wú)需經(jīng)過(guò)某個(gè)集中環(huán)節(jié),用戶的隱私信息被竊聽(tīng)和泄漏的可能性大大縮小。此外,目前解決 Internet隱私問(wèn)題主要采用中繼轉(zhuǎn)發(fā)的技術(shù)方法,從而將通信的參與者隱藏在眾多的網(wǎng)絡(luò)實(shí)體之中。在傳統(tǒng)的一些匿名通信系統(tǒng)中,實(shí)現(xiàn)這一機(jī)制依賴于某些中繼服務(wù)器節(jié)點(diǎn)。而在P2P中,所有參與者都可以提供中繼轉(zhuǎn)發(fā)的功能,因而大大提高了匿名通訊的靈活性和可靠性,能夠?yàn)橛脩籼峁└玫碾[私保護(hù)。
-
負(fù)載均衡:?P2P 網(wǎng)絡(luò)環(huán)境下由于每個(gè)節(jié)點(diǎn)既是服務(wù)器又是客戶機(jī),減少了對(duì)傳統(tǒng)C/S結(jié)構(gòu)服務(wù)器計(jì)算能力、存儲(chǔ)能力的要求,同時(shí)因?yàn)橘Y源分布在多個(gè)節(jié)點(diǎn),更好的實(shí)現(xiàn)了整個(gè)網(wǎng)絡(luò)的負(fù)載均衡。
與傳統(tǒng)的分布式系統(tǒng)相比,P2P技術(shù)具有無(wú)可比擬的優(yōu)勢(shì)。同時(shí),P2P技術(shù)具有廣闊的應(yīng)用前景。Internt上各種P2P應(yīng)用軟件層出不窮,用戶數(shù)量急劇增加。2004年3月來(lái)自www.slyck.com的數(shù)據(jù)顯示,大量P2P軟件的用戶使用數(shù)量分布從幾十萬(wàn)、幾百萬(wàn)到上千萬(wàn)并且急劇增加,并給Internet帶寬帶來(lái)巨大沖擊。P2P計(jì)算技術(shù)正不斷應(yīng)用到軍事領(lǐng)域,商業(yè)領(lǐng)域,政府信息,通訊等領(lǐng)域。
根據(jù)具體應(yīng)用不同,可以把P2P分為以下這些類型:
-
提供文件和其它內(nèi)容共享的P2P網(wǎng)絡(luò),例如Napster、Gnutella、eDonkey、emule、BitTorrent等;
-
挖掘P2P對(duì)等計(jì)算能力和存儲(chǔ)共享能力,例如SETI@home?、Avaki、Popular Power等;
-
基于P2P方式的協(xié)同處理與服務(wù)共享平臺(tái),例如JXTA、Magi、Groove、.NET My Service等;
-
即時(shí)通訊交流,包括ICQ、OICQ、Yahoo Messenger等;
-
安全的P2P通訊與信息共享,例如Skype、Crowds、Onion Routing等。
1.2國(guó)內(nèi)外P2P技術(shù)研究現(xiàn)狀
1.2.1 P2P網(wǎng)絡(luò)中的拓?fù)浣Y(jié)構(gòu)研究
拓?fù)浣Y(jié)構(gòu)是指分布式系統(tǒng)中各個(gè)計(jì)算單元之間的物理或邏輯的互聯(lián)關(guān)系,結(jié)點(diǎn)之間的拓?fù)浣Y(jié)構(gòu)一直是確定系統(tǒng)類型的重要依據(jù)。目前互聯(lián)網(wǎng)絡(luò)中廣泛使用集中式、層次式等拓?fù)浣Y(jié)構(gòu),Interne本身是世界上最大的非集中式的互聯(lián)網(wǎng)絡(luò),但是九十年代所建立的一些網(wǎng)絡(luò)應(yīng)用系統(tǒng)卻是完全的集中式的系統(tǒng)、很多Web應(yīng)用都是運(yùn)行在集中式的服務(wù)器系統(tǒng)上。集中式拓?fù)浣Y(jié)構(gòu)系統(tǒng)目前面臨著過(guò)量存儲(chǔ)負(fù)載、Dos攻擊等一些難以解決的問(wèn)題。
P2P系統(tǒng)一般要構(gòu)造一個(gè)非集中式的拓?fù)浣Y(jié)構(gòu),在構(gòu)造過(guò)程中需要解決系統(tǒng)中所包含的大量結(jié)點(diǎn)如何命名、組織以及確定結(jié)點(diǎn)的加入/離開(kāi)方式、出錯(cuò)恢復(fù)等問(wèn)題。
根據(jù)拓?fù)浣Y(jié)構(gòu)的關(guān)系可以將P2P研究分為4種形式:中心化拓?fù)?/span>(Centralized Topology);全分布式非結(jié)構(gòu)化拓?fù)?/span>(Decentralized Unstructured Topology);全分布式結(jié)構(gòu)化拓?fù)?/span>(Decentralized Structured Topology,也稱作DHT網(wǎng)絡(luò))和半分布式拓?fù)?/span>(Partially Decentralized Topology)。
其中,中心化拓?fù)?/span>最大的優(yōu)點(diǎn)是維護(hù)簡(jiǎn)單發(fā)現(xiàn)效率高。由于資源的發(fā)現(xiàn)依賴中心化的目錄系統(tǒng),發(fā)現(xiàn)算法靈活高效并能夠?qū)崿F(xiàn)復(fù)雜查詢。最大的問(wèn)題與傳統(tǒng)客戶機(jī)/服務(wù)器結(jié)構(gòu)類似,容易造成單點(diǎn)故障,訪問(wèn)的“熱點(diǎn)”現(xiàn)象和法律等相關(guān)問(wèn)題,這是第一代P2P網(wǎng)絡(luò)采用的結(jié)構(gòu)模式,經(jīng)典案例就是著名的MP3共享軟件Napster。
Napster是最早出現(xiàn)的P2P系統(tǒng)之一,并在短期內(nèi)迅速成長(zhǎng)起來(lái)。Napster實(shí)質(zhì)上并非是純粹的P2P系統(tǒng),它通過(guò)一個(gè)中央服務(wù)器保存所有Napster用戶上傳的音樂(lè)文件索引和存放位置的信息。當(dāng)某個(gè)用戶需要某個(gè)音樂(lè)文件時(shí),首先連接到Napster服務(wù)器,在服務(wù)器進(jìn)行檢索,并由服務(wù)器返回存有該文件的用戶信息;再由請(qǐng)求者直接連到文件的所有者傳輸文件。
Napster首先實(shí)現(xiàn)了文件查詢與文件傳輸?shù)姆蛛x,有效地節(jié)省了中央服務(wù)器的帶寬消耗,減少了系統(tǒng)的文件傳輸延時(shí)。這種方式最大的隱患在中央服務(wù)器上,如果該服務(wù)器失效,整個(gè)系統(tǒng)都會(huì)癱瘓。當(dāng)用戶數(shù)量增加到105或者更高時(shí),Napster的系統(tǒng)性能會(huì)大大下降。另一個(gè)問(wèn)題在于安全性上,Napster并沒(méi)有提供有效的安全機(jī)制。
在Napster 模型中,一群高性能的中央服務(wù)器保存著網(wǎng)絡(luò)中所有活動(dòng)對(duì)等計(jì)算機(jī)共享資源的目錄信息。當(dāng)需要查詢某個(gè)文件時(shí),對(duì)等機(jī)會(huì)向一臺(tái)中央服務(wù)器發(fā)出文件查詢請(qǐng)求。中央服務(wù)器進(jìn)行相應(yīng)的檢索和查詢后,會(huì)返回符合查詢要求的對(duì)等機(jī)地址信息列表。查詢發(fā)起對(duì)等機(jī)接收到應(yīng)答后,會(huì)根據(jù)網(wǎng)絡(luò)流量和延遲等信息進(jìn)行選擇,和合適的對(duì)等機(jī)建立連接,并開(kāi)始文件傳輸。Napster的工作原理如圖1所示。
這種對(duì)等網(wǎng)絡(luò)模型存在很多問(wèn)題,主要表現(xiàn)為:
(1)中央服務(wù)器的癱瘓容易導(dǎo)致整個(gè)網(wǎng)絡(luò)的崩饋,可靠性和安全性較低。
(2)隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,對(duì)中央索引服務(wù)器進(jìn)行維護(hù)和更新的費(fèi)用將急劇增加,所需成本過(guò)高。
(3)中央服務(wù)器的存在引起共享資源在版權(quán)問(wèn)題上的糾紛,并因此被攻擊為非純粹意義上的P2P網(wǎng)絡(luò)模型。對(duì)小型網(wǎng)絡(luò)而言,集中目錄式模型在管理和控制方面占一定優(yōu)勢(shì)。但鑒于其存在的種種缺陷,該模型并不適合大型網(wǎng)絡(luò)應(yīng)用。
| Napster結(jié)構(gòu) | Napster界面 |
全分布非結(jié)構(gòu)化網(wǎng)絡(luò)在重疊網(wǎng)絡(luò)(overlay)采用了隨機(jī)圖的組織方式,結(jié)點(diǎn)度數(shù)服從"Power-law"[a][b]規(guī)律,從而能夠較快發(fā)現(xiàn)目的結(jié)點(diǎn),面對(duì)網(wǎng)絡(luò)的動(dòng)態(tài)變化體現(xiàn)了較好的容錯(cuò)能力,因此具有較好的可用性。同時(shí)可以支持復(fù)雜查詢,如帶有規(guī)則表達(dá)式的多關(guān)鍵詞查詢,模糊查詢等,最典型的案例是Gnutella。
Gnutella是一個(gè)P2P文件共享系統(tǒng),它和Napster最大的區(qū)別在于Gnutella是純粹的P2P系統(tǒng),沒(méi)有索引服務(wù)器,它采用了基于完全隨機(jī)圖的洪泛(Flooding)發(fā)現(xiàn)和隨機(jī)轉(zhuǎn)發(fā)(Random Walker)機(jī)制。為了控制搜索消息的傳輸,通過(guò)TTL (Time To Live)的減值來(lái)實(shí)現(xiàn)。具體協(xié)議參照[Gnutella協(xié)議中文版]
在Gnutella分布式對(duì)等網(wǎng)絡(luò)模型N中,每一個(gè)聯(lián)網(wǎng)計(jì)算機(jī)在功能上都是對(duì)等的,既是客戶機(jī)同時(shí)又是服務(wù)器,所以被稱為對(duì)等機(jī)(Servent,Server+Client的組合)。
隨著聯(lián)網(wǎng)節(jié)點(diǎn)的不斷增多,網(wǎng)絡(luò)規(guī)模不斷擴(kuò)大,通過(guò)這種洪泛方式定位對(duì)等點(diǎn)的方法將造成網(wǎng)絡(luò)流量急劇增加,從而導(dǎo)致網(wǎng)絡(luò)中部分低帶寬節(jié)點(diǎn)因網(wǎng)絡(luò)資源過(guò)載而失效。所以在初期的Gnutella網(wǎng)絡(luò)中,存在比較嚴(yán)重的分區(qū),斷鏈現(xiàn)象。也就是說(shuō),一個(gè)查詢?cè)L問(wèn)只能在網(wǎng)絡(luò)的很小一部分進(jìn)行,因此網(wǎng)絡(luò)的可擴(kuò)展性不好。所以,解決Gnutella網(wǎng)絡(luò)的可擴(kuò)展性對(duì)該網(wǎng)絡(luò)的進(jìn)一步發(fā)展至關(guān)重要。
由于沒(méi)有確定拓?fù)浣Y(jié)構(gòu)的支持,非結(jié)構(gòu)化網(wǎng)絡(luò)無(wú)法保證資源發(fā)現(xiàn)的效率。即使需要查找的目的結(jié)點(diǎn)存在發(fā)現(xiàn)也有可能失敗。由于采用TTL(Time-to-Live)、洪泛(Flooding)、隨機(jī)漫步或有選擇轉(zhuǎn)發(fā)算法,因此直徑不可控,可擴(kuò)展性較差。
因此發(fā)現(xiàn)的準(zhǔn)確性和可擴(kuò)展性是非結(jié)構(gòu)化網(wǎng)絡(luò)面臨的兩個(gè)重要問(wèn)題。目前對(duì)此類結(jié)構(gòu)的研究主要集中于改進(jìn)發(fā)現(xiàn)算法和復(fù)制策略以提高發(fā)現(xiàn)的準(zhǔn)確率和性能。
|
| |
| 最初的Gnutella采用的Flooding搜索算法示意圖 | 采用第二代Gnutella協(xié)議最經(jīng)典的軟件-Bearshare |
由于非結(jié)構(gòu)化網(wǎng)絡(luò)將重疊網(wǎng)絡(luò)認(rèn)為是一個(gè)完全隨機(jī)圖,結(jié)點(diǎn)之間的鏈路沒(méi)有遵循某些預(yù)先定義的拓?fù)鋪?lái)構(gòu)建。這些系統(tǒng)一般不提供性能保證,但容錯(cuò)性好,支持復(fù)雜的查詢,并受結(jié)點(diǎn)頻繁加入和退出系統(tǒng)的影響小。但是查詢的結(jié)果可能不完全,查詢速度較慢,采用廣播查詢的系統(tǒng)對(duì)網(wǎng)絡(luò)帶寬的消耗非常大,并由此帶來(lái)可擴(kuò)展性差等問(wèn)題。
另外,由于非結(jié)構(gòu)化系統(tǒng)中的隨機(jī)搜索造成的不可擴(kuò)展性,大量的研究集中在如何構(gòu)造一個(gè)高度結(jié)構(gòu)化的系統(tǒng)。目前研究的重點(diǎn)放在了如何有效地查找信息上,最新的成果都是基于DHT的分布式發(fā)現(xiàn)和路由算法。這些算法都避免了類似Napster的中央服務(wù)器,也不是像Gnutella那樣基于廣播進(jìn)行查找,而是通過(guò)分布式散列函數(shù),將輸入的關(guān)鍵字惟一映射到某個(gè)結(jié)點(diǎn)上,然后通過(guò)某些路由算法同該結(jié)點(diǎn)建立連接。
最新的研究成果體現(xiàn)在采用分布式散列表(DHT)[a]的完全分布式結(jié)構(gòu)化拓?fù)渚W(wǎng)絡(luò)。
分布式散列表(DHT)實(shí)際上是一個(gè)由廣域范圍大量結(jié)點(diǎn)共同維護(hù)的巨大散列表。散列表被分割成不連續(xù)的塊,每個(gè)結(jié)點(diǎn)被分配給一個(gè)屬于自己的散列塊,并成為這個(gè)散列塊的管理者。DHT的結(jié)點(diǎn)既是動(dòng)態(tài)的結(jié)點(diǎn)數(shù)量也是巨大的,因此非中心化和原子自組織成為兩個(gè)設(shè)計(jì)的重要目標(biāo)。通過(guò)加密散列函數(shù),一個(gè)對(duì)象的名字或關(guān)鍵詞被映射為128位或160位的散列值。一個(gè)采用DHT的系統(tǒng)內(nèi)所有結(jié)點(diǎn)被映射到一個(gè)空間,如果散列函數(shù)映射一個(gè)位的名字到一個(gè)散列值,則有。
分布式散列表起源于SDDS(Scalable Distribute Data Structures)[a]研究,Gribble等實(shí)現(xiàn)了一個(gè)高度可擴(kuò)展,容錯(cuò)的SDDS集群。
最近的研究集中在采用新的拓?fù)鋱D構(gòu)建重疊路由網(wǎng)絡(luò),以減少路由表容量和路由延時(shí)。這些新的拓?fù)潢P(guān)系的基本原理是在DHT表一維空間的基礎(chǔ)上引入更多的拓?fù)浣Y(jié)構(gòu)圖來(lái)反映底層網(wǎng)絡(luò)的結(jié)構(gòu)。
DHT類結(jié)構(gòu)能夠自適應(yīng)結(jié)點(diǎn)的動(dòng)態(tài)加入/退出,有著良好的可擴(kuò)展性、魯棒性、結(jié)點(diǎn)ID分配的均勻性和自組織能力。由于重疊網(wǎng)絡(luò)采用了確定性拓?fù)浣Y(jié)構(gòu),DHT可以提供精確的發(fā)現(xiàn)。只要目的結(jié)點(diǎn)存在于網(wǎng)絡(luò)中DHT總能發(fā)現(xiàn)它,發(fā)現(xiàn)的準(zhǔn)確性得到了保證,最經(jīng)典的案例是Tapestry,Chord,CAN,和Pastry。
Tapestry提供了一個(gè)分布式容錯(cuò)查找和路由基礎(chǔ)平臺(tái),在此平臺(tái)基礎(chǔ)之上,可以開(kāi)發(fā)各種P2P應(yīng)用(OceanStore即是此平臺(tái)上的一個(gè)應(yīng)用)?。Tapestry的思想來(lái)源于Plaxton。在Plaxton中,結(jié)點(diǎn)使用自己所知道的鄰近結(jié)點(diǎn)表,按照目的ID來(lái)逐步傳遞消息。Tapestry基于Plaxtion的思想,加入了容錯(cuò)機(jī)制,從而可適應(yīng)P2P的動(dòng)態(tài)變化的特點(diǎn)。OceanStore是以Tapestry為路由和查找基礎(chǔ)設(shè)施的P2P平臺(tái)。它是一個(gè)適合于全球數(shù)據(jù)存儲(chǔ)的P2P應(yīng)用系統(tǒng)。任何用戶均可以加入OceanStore系統(tǒng),或者共享自己的存儲(chǔ)空間,或者使用該系統(tǒng)中的資源。通過(guò)使用復(fù)制和緩存技術(shù),OceanStore可提高查找的效率。最近,Tapstry為適應(yīng)P2P網(wǎng)絡(luò)的動(dòng)態(tài)特性,作了很多改進(jìn),增加了額外的機(jī)制實(shí)現(xiàn)了網(wǎng)絡(luò)的軟狀態(tài)(soft state),并提供了自組織、魯棒性、可擴(kuò)展性和動(dòng)態(tài)適應(yīng)性,當(dāng)網(wǎng)絡(luò)高負(fù)載且有失效結(jié)點(diǎn)時(shí)候性能有限降低,消除了對(duì)全局信息的依賴、根結(jié)點(diǎn)易失效和彈性(resilience)差的問(wèn)題。
Pastry是微軟研究院提出的可擴(kuò)展的分布式對(duì)象定位和路由協(xié)議,可用于構(gòu)建大規(guī)模的P2P系統(tǒng)。在Pastry中,每個(gè)結(jié)點(diǎn)分配一個(gè)128位的結(jié)點(diǎn)標(biāo)識(shí)符號(hào)(nodeID)?,所有的結(jié)點(diǎn)標(biāo)識(shí)符形成了一個(gè)環(huán)形的nodeID空間,范圍從0到2128?- 1?,結(jié)點(diǎn)加入系統(tǒng)時(shí)通過(guò)散列結(jié)點(diǎn)IP地址在128位nodeID空間中隨機(jī)分配。
在MIT,開(kāi)展了多個(gè)與P2P相關(guān)的研究項(xiàng)目:Chord,GRID和RON。Chord項(xiàng)目的目標(biāo)是提供一個(gè)適合于P2P環(huán)境的分布式資源發(fā)現(xiàn)服務(wù),它通過(guò)使用DHT技術(shù)使得發(fā)現(xiàn)指定對(duì)象只需要維護(hù)O(logN)長(zhǎng)度的路由表。
在DHT技術(shù)中,網(wǎng)絡(luò)結(jié)點(diǎn)按照一定的方式分配一個(gè)唯一結(jié)點(diǎn)標(biāo)識(shí)符(Node ID)?,資源對(duì)象通過(guò)散列運(yùn)算產(chǎn)生一個(gè)唯一的資源標(biāo)識(shí)符(Object ID)?,且該資源將存儲(chǔ)在結(jié)點(diǎn)ID與之相等或者相近的結(jié)點(diǎn)上。需要查找該資源時(shí),采用同樣的方法可定位到存儲(chǔ)該資源的結(jié)點(diǎn)。因此,Chord的主要貢獻(xiàn)是提出了一個(gè)分布式查找協(xié)議,該協(xié)議可將指定的關(guān)鍵字(Key)?映射到對(duì)應(yīng)的結(jié)點(diǎn)(Node)?。從算法來(lái)看,Chord是相容散列算法的變體。MIT的GRID和RON項(xiàng)目則提出了在分布式廣域網(wǎng)中實(shí)施查找資源的系統(tǒng)框架。
AT&T ACIRI中心的CAN(Content Addressable Networks)?項(xiàng)目獨(dú)特之處在于采用多維的標(biāo)識(shí)符空間來(lái)實(shí)現(xiàn)分布式散列算法。CAN將所有結(jié)點(diǎn)映射到一個(gè)n維的笛卡爾空間中,并為每個(gè)結(jié)點(diǎn)盡可能均勻的分配一塊區(qū)域。CAN采用的散列函數(shù)通過(guò)對(duì)(key, value)?對(duì)中的key進(jìn)行散列運(yùn)算,得到笛卡爾空間中的一個(gè)點(diǎn),并將(key, value)?對(duì)存儲(chǔ)在擁有該點(diǎn)所在區(qū)域的結(jié)點(diǎn)內(nèi)。CAN采用的路由算法相當(dāng)直接和簡(jiǎn)單,知道目標(biāo)點(diǎn)的坐標(biāo)后,就將請(qǐng)求傳給當(dāng)前結(jié)點(diǎn)四鄰中坐標(biāo)最接近目標(biāo)點(diǎn)的結(jié)點(diǎn)。CAN是一個(gè)具有良好可擴(kuò)展性的系統(tǒng),給定N個(gè)結(jié)點(diǎn),系統(tǒng)維數(shù)為d,則路由路徑長(zhǎng)度為O(n1/d)?,每結(jié)點(diǎn)維護(hù)的路由表信息和網(wǎng)絡(luò)規(guī)模無(wú)關(guān)為O(d)?。
DHT類結(jié)構(gòu)最大的問(wèn)題是DHT的維護(hù)機(jī)制較為復(fù)雜,尤其是結(jié)點(diǎn)頻繁加入退出造成的網(wǎng)絡(luò)波動(dòng)(Churn)會(huì)極大增加DHT的維護(hù)代價(jià)。DHT所面臨的另外一個(gè)問(wèn)題是DHT僅支持精確關(guān)鍵詞匹配查詢,無(wú)法支持內(nèi)容/語(yǔ)義等復(fù)雜查詢。
| Chord的Identifier Circle | Pastry的消息路由 |
半分布式結(jié)構(gòu)(有的文獻(xiàn)稱作 Hybrid Structure)吸取了中心化結(jié)構(gòu)和全分布式非結(jié)構(gòu)化拓?fù)涞膬?yōu)點(diǎn),選擇性能較高(處理、存儲(chǔ)、帶寬等方面性能)的結(jié)點(diǎn)作為超級(jí)點(diǎn)(英文文獻(xiàn)中多稱作:SuperNodes, Hubs),在各個(gè)超級(jí)點(diǎn)上存儲(chǔ)了系統(tǒng)中其他部分結(jié)點(diǎn)的信息,發(fā)現(xiàn)算法僅在超級(jí)點(diǎn)之間轉(zhuǎn)發(fā),超級(jí)點(diǎn)再將查詢請(qǐng)求轉(zhuǎn)發(fā)給適當(dāng)?shù)娜~子結(jié)點(diǎn)。半分布式結(jié)構(gòu)也是一個(gè)層次式結(jié)構(gòu),超級(jí)點(diǎn)之間構(gòu)成一個(gè)高速轉(zhuǎn)發(fā)層,超級(jí)點(diǎn)和所負(fù)責(zé)的普通結(jié)點(diǎn)構(gòu)成若干層次。最典型的案例就是KaZaa。
KaZaa是現(xiàn)在全世界流行的幾款p2p軟件之一。根據(jù)CA公司統(tǒng)計(jì),全球KaZaa的下載量超過(guò)2.5億次。使用KaZaa軟件進(jìn)行文件傳輸消耗了互聯(lián)網(wǎng)40%的帶寬。之所以它如此的成功,是因?yàn)樗Y(jié)合了Napster和Gnutella共同的優(yōu)點(diǎn)。從結(jié)構(gòu)?上來(lái)說(shuō),它使用了Gnutella的全分布式的結(jié)構(gòu),這樣可以是系統(tǒng)更好的擴(kuò)展,因?yàn)樗鼰o(wú)需中央索引服務(wù)器存儲(chǔ)文件名,它是自動(dòng)的把性能好的機(jī)器成為SuperNode,它存儲(chǔ)著離它最近的葉子節(jié)點(diǎn)的文件信息,這些SuperNode,再連通起來(lái)形成一個(gè)Overlay Network.?由于SuperNode的索引功能,使搜索效率大大提高。
| 半分布式結(jié)構(gòu)(含有SuperNode) | kaZaa界面 |
半分布式結(jié)構(gòu)的優(yōu)點(diǎn)是性能、可擴(kuò)展性較好,較容易管理,但對(duì)超級(jí)點(diǎn)依賴性大,易于受到攻擊,容錯(cuò)性也受到影響。下表比較了4種結(jié)構(gòu)的綜合性能,比較結(jié)果如表1-1所示。
表1:4種結(jié)構(gòu)的性能比較
| 比較標(biāo)準(zhǔn)/拓?fù)浣Y(jié)構(gòu) | 中心化拓?fù)?/span> | 全分布式非結(jié)構(gòu)化拓?fù)?/span> | 全分布式結(jié)構(gòu)化拓?fù)?/span> | 半分布式拓?fù)?/span> |
| 可擴(kuò)展性 | 差 | 差 | 好 | 中 |
| 可靠性 | 差 | 好 | 好 | 中 |
| 可維護(hù)性 | 最好 | 最好 | 好 | 中 |
| 發(fā)現(xiàn)算法效率 | 最高 | 中 | 高 | 中 |
| 復(fù)雜查詢 | 支持 | 支持 | 不支持 | 支持 |
1.2.2?國(guó)內(nèi)的P2P研究現(xiàn)狀
學(xué)術(shù)機(jī)構(gòu)研發(fā)
-
北京大學(xué)—Maze
Maze 是北京大學(xué)網(wǎng)絡(luò)實(shí)驗(yàn)室開(kāi)發(fā)的一個(gè)中心控制與對(duì)等連接相融合的對(duì)等計(jì)算文件共享系統(tǒng),在結(jié)構(gòu)上類似Napster,對(duì)等計(jì)算搜索方法類似于 Gnutella。網(wǎng)絡(luò)上的一臺(tái)計(jì)算機(jī),不論是在內(nèi)網(wǎng)還是外網(wǎng),可以通過(guò)安裝運(yùn)行Maze的客戶端軟件自由加入和退出Maze系統(tǒng)。每個(gè)節(jié)點(diǎn)可以將自己的一個(gè)或多個(gè)目錄下的文件共享給系統(tǒng)的其他成員,也可以分享其他成員的資源。Maze支持基于關(guān)鍵字的資源檢索,也可以通過(guò)好友關(guān)系直接獲得。
-
清華大學(xué)—Granary
Granary是清華大學(xué)自主開(kāi)發(fā)的對(duì)等計(jì)算存儲(chǔ)服務(wù)系統(tǒng)。它以對(duì)象格式存儲(chǔ)數(shù)據(jù)。另外,Granary設(shè)計(jì)了專門(mén)的結(jié)點(diǎn)信息收集算法PeerWindow的結(jié)構(gòu)化覆蓋網(wǎng)絡(luò)路由協(xié)議Tourist。
-
華中科技大學(xué)—AnySee
AnySee是華中科大設(shè)計(jì)研發(fā)的視頻直播系統(tǒng)。它采用了一對(duì)多的服務(wù)模式,支持部分NAT和防火墻的穿越,提高了視頻直播系統(tǒng)的可擴(kuò)展性;同時(shí),它利用近播原則、分域調(diào)度的思想,使用Landmark路標(biāo)算法直接建樹(shù)的方式構(gòu)建應(yīng)用層上的組播樹(shù),克服了ESM等一對(duì)多模式系統(tǒng)由聯(lián)接圖的構(gòu)造和維護(hù)帶來(lái)的負(fù)載影響。?
更詳細(xì)介紹見(jiàn)[中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊 Page 38-51 鄭緯民等 對(duì)等計(jì)算研究概論]
企業(yè)研發(fā)產(chǎn)品
-
廣州數(shù)聯(lián)軟件技術(shù)有限公司-Poco
??? POCO 是中國(guó)最大的 P2P用戶分享平臺(tái) , 是有安全、流量控制力的,無(wú)中心服務(wù)器的第三代 P2P 資源交換平臺(tái) , 也是世界范圍內(nèi)少有的盈利的 P2P 平臺(tái)。目前已經(jīng)形成了 2600 萬(wàn)海量用戶,平均在線 58.5 萬(wàn),在線峰值突破 71 萬(wàn),并且全部是寬帶用戶的用戶群。 成為中國(guó)地區(qū)第一的 P2P 分享平臺(tái)。[a]
-
深圳市點(diǎn)石軟件有限公司-OP
???? OP-又稱為Openext Media Desktop,一個(gè)網(wǎng)絡(luò)娛樂(lè)內(nèi)容平臺(tái),Napster的后繼者,它可以最直接的方式找到您想要的音樂(lè)、影視、軟件、游戲、圖片、書(shū)籍以及各種文檔,隨時(shí)在線共享文件容量數(shù)以億計(jì)“十萬(wàn)影視、百萬(wàn)音樂(lè)、千萬(wàn)圖片”。OP整合了Internet Explorer、Windows Media Player、RealOne Player和ACDSee ,是國(guó)內(nèi)的網(wǎng)絡(luò)娛樂(lè)內(nèi)容平臺(tái)。[a]
-
基于P2P的在線電視直播-PPLive
??? PPLive是一款用于互聯(lián)網(wǎng)上大規(guī)模視頻直播的共享軟件。它使用網(wǎng)狀模型,有效解決了當(dāng)前網(wǎng)絡(luò)視頻點(diǎn)播服務(wù)的帶寬和負(fù)載有限 問(wèn)題,實(shí)現(xiàn)用戶越多,播放越流暢的特性,整 體服務(wù)質(zhì)量大大提高!(2005年的超級(jí)女聲決賽期間,這款軟件非常的火爆,同時(shí)通過(guò)它看湖南衛(wèi)視的有上萬(wàn)觀眾)
?? 其他商業(yè)軟件這里不一一列舉,請(qǐng)?jiān)L問(wèn)P2P門(mén)戶網(wǎng)站?http://www.ppcn.net/
1.2.3 P2P技術(shù)的應(yīng)用研究
國(guó)外開(kāi)展P2P研究的學(xué)術(shù)團(tuán)體主要包括P2P工作組(P2PWG)?、全球網(wǎng)格論壇(Global Grid Forum?,GGF)?。P2P工作組成立的主要目的是希望加速P2P計(jì)算基礎(chǔ)設(shè)施的建立和相應(yīng)的標(biāo)準(zhǔn)化工作。P2PWG成立之后,對(duì)P2P計(jì)算中的術(shù)語(yǔ)進(jìn)行了統(tǒng)一,也形成相關(guān)的草案,但是在標(biāo)準(zhǔn)化工作方面工作進(jìn)展緩慢。目前P2PWG已經(jīng)和GGF合并,由該論壇管理P2P計(jì)算相關(guān)的工作。GGF負(fù)責(zé)網(wǎng)格計(jì)算和P2P計(jì)算等相關(guān)的標(biāo)準(zhǔn)化工作。
從國(guó)外公司對(duì)P2P計(jì)算的支持力度來(lái)看,Microsoft公司、Sun公司和Intel公司投入較大。Microsoft公司成立了Pastry項(xiàng)目組,主要負(fù)責(zé)P2P計(jì)算技術(shù)的研究和開(kāi)發(fā)工作。目前Microsoft公司已經(jīng)發(fā)布了基于Pastry的軟件包SimPastry/ VisPastry。Rice大學(xué)也在Pastry的基礎(chǔ)之上發(fā)布了FreePastry軟件包。
在2000年8月,Intel公司宣布成立P2P工作組,正式開(kāi)展P2P的研究。工作組成立以后,積極與應(yīng)用開(kāi)發(fā)商合作,開(kāi)發(fā)P2P應(yīng)用平臺(tái)。2002年Intel發(fā)布了. Net基礎(chǔ)架構(gòu)之上的Accelerator Kit (P2P加速工具包)?和P2P安全API軟件包,從而使得微軟. NET開(kāi)發(fā)人員能夠迅速地建立P2P安全Web應(yīng)用程序。
Sun公司以Java技術(shù)為背景,開(kāi)展了JXTA項(xiàng)目。JXTA是基于Java的開(kāi)源P2P平臺(tái),任何個(gè)人和組織均可以加入該項(xiàng)目。因此,該項(xiàng)目不僅吸引了大批P2P研究人員和開(kāi)發(fā)人員,而且已經(jīng)發(fā)布了基于JXTA的即時(shí)聊天軟件包。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ǔ)上,用戶可以開(kāi)發(fā)各種JXTA平臺(tái)上的P2P應(yīng)用。
P2P實(shí)際的應(yīng)用主要體現(xiàn)在以下幾個(gè)方面:
P2P分布式存儲(chǔ)
P2P分布式存儲(chǔ)系統(tǒng)是一個(gè)用于對(duì)等網(wǎng)絡(luò)的數(shù)據(jù)存儲(chǔ)系統(tǒng),它可以提供高效率的、魯棒的和負(fù)載平衡的文件存取功能。這些研究包括:OceanStore,Farsite等。其中,基于超級(jí)點(diǎn)結(jié)構(gòu)的半分布式P2P應(yīng)用如Kazza、Edonkey、Morpheus、Bittorrent等也是屬于分布式存儲(chǔ)的范疇,并且用戶數(shù)量急劇增加。
計(jì)算能力的共享
加入對(duì)等網(wǎng)絡(luò)的結(jié)點(diǎn)除了可以共享存儲(chǔ)能力之外,還可以共享CPU處理能力。目前已經(jīng)有了一些基于對(duì)等網(wǎng)絡(luò)的計(jì)算能力共享系統(tǒng)。比如SETI@home?。目前SETI@home?采用的仍然是類似于Napster的集中式目錄策略。Xenoservers向真正的對(duì)等應(yīng)用又邁進(jìn)了一步。這種計(jì)算能力共享系統(tǒng)可以用于進(jìn)行基因數(shù)據(jù)庫(kù)檢索和密碼破解等需要大規(guī)模計(jì)算能力的應(yīng)用。
P2P應(yīng)用層組播。
應(yīng)用層組播,就是在應(yīng)用層實(shí)現(xiàn)組播功能而不需要網(wǎng)絡(luò)層的支持。這樣就可以避免出現(xiàn)由于網(wǎng)絡(luò)層遲遲不能部署對(duì)組播的支持而使組播應(yīng)用難以進(jìn)行的情況。應(yīng)用層組播需要在參加的應(yīng)用結(jié)點(diǎn)之間實(shí)現(xiàn)一個(gè)可擴(kuò)展的,支持容錯(cuò)能力的重疊網(wǎng)絡(luò),而基于DHT的發(fā)現(xiàn)機(jī)制正好為應(yīng)用層組播的實(shí)現(xiàn)提供了良好的基礎(chǔ)平臺(tái)。
Internet間接訪問(wèn)基礎(chǔ)結(jié)構(gòu)(Internet Indirection Infrastructure)。
為了使Internet更好地支持組播、單播和移動(dòng)等特性,Internet間接訪問(wèn)基礎(chǔ)結(jié)構(gòu)提出了基于匯聚點(diǎn)的通信抽象。在這一結(jié)構(gòu)中,并不把分組直接發(fā)向目的結(jié)點(diǎn),而是給每個(gè)分組分配一個(gè)標(biāo)識(shí)符,而目的結(jié)點(diǎn)則根據(jù)標(biāo)識(shí)符接收相應(yīng)的分組。標(biāo)識(shí)符實(shí)際上表示的是信息的匯聚點(diǎn)。目的結(jié)點(diǎn)把自己想接收的分組的標(biāo)識(shí)符預(yù)先通過(guò)一個(gè)觸發(fā)器告訴匯聚點(diǎn),當(dāng)匯聚點(diǎn)收到分組時(shí),將會(huì)根據(jù)觸發(fā)器把分組轉(zhuǎn)發(fā)該相應(yīng)的目的結(jié)點(diǎn)。Internet間接訪問(wèn)基礎(chǔ)結(jié)構(gòu)實(shí)際上在Internet上構(gòu)成了一個(gè)重疊網(wǎng)絡(luò),它需要對(duì)等網(wǎng)絡(luò)的路由系統(tǒng)對(duì)它提供相應(yīng)的支持。
P2P技術(shù)從出現(xiàn)到各個(gè)領(lǐng)域的應(yīng)用展開(kāi),僅用了幾年的時(shí)間。從而證明了P2P技術(shù)具有非常廣闊的應(yīng)用前景。
1.3 對(duì)研究?jī)?nèi)容有重大影響的幾個(gè)方面
隨著P2P應(yīng)用的蓬勃發(fā)展,作為P2P應(yīng)用中核心問(wèn)題的發(fā)現(xiàn)技術(shù)除了遵循技術(shù)本身的邏輯以外,也受到某些技術(shù)的發(fā)展趨勢(shì)、需求趨勢(shì)的深刻影響。
1.3.1 度數(shù)和直徑的折衷關(guān)系(tradeoff)對(duì)發(fā)現(xiàn)算法的影響
如上所述,DHT發(fā)現(xiàn)技術(shù)完全建立在確定性拓?fù)浣Y(jié)構(gòu)的基礎(chǔ)上,從而表現(xiàn)出對(duì)網(wǎng)絡(luò)中路由的指導(dǎo)性和網(wǎng)絡(luò)中結(jié)點(diǎn)與數(shù)據(jù)管理的較強(qiáng)控制力。但是,對(duì)確定性結(jié)構(gòu)的認(rèn)識(shí)又限制了發(fā)現(xiàn)算法效率的提升。研究分析了目前基于DHT的發(fā)現(xiàn)算法,發(fā)現(xiàn)衡量發(fā)現(xiàn)算法的兩個(gè)重要參數(shù)度數(shù)(表示鄰居關(guān)系數(shù)、路由表的容量)和鏈路長(zhǎng)度(發(fā)現(xiàn)算法的平均路徑長(zhǎng)度)之間存在漸進(jìn)曲線的關(guān)系。
研究者采用圖論中度數(shù)(Degree)和直徑(Diameter)兩個(gè)參數(shù)研究DHT發(fā)現(xiàn)算法,發(fā)現(xiàn)這些DHT發(fā)現(xiàn)算法在度數(shù)和直徑之間存在漸進(jìn)曲線關(guān)系,如下圖所示。在N個(gè)結(jié)點(diǎn)網(wǎng)絡(luò)中,圖中直觀顯示出當(dāng)度數(shù)為N時(shí),發(fā)現(xiàn)算法的直徑為O(1);當(dāng)每個(gè)結(jié)點(diǎn)僅維護(hù)一個(gè)鄰居時(shí),發(fā)現(xiàn)算法的直徑為O(N)。這是度數(shù)和直徑關(guān)系的2種極端情況。同時(shí),研究以圖論的理論分析了O(d)的度和O(d)的直徑的算法是不可能的。
| 度數(shù)和直徑之間的漸進(jìn)曲線關(guān)系 |
從漸進(jìn)曲線關(guān)系可以看出,如果想獲得更短的路徑長(zhǎng)度,必然導(dǎo)致度數(shù)的增加;而網(wǎng)絡(luò)實(shí)際連接狀態(tài)的變化造成大度數(shù)鄰居關(guān)系的維護(hù)復(fù)雜程度增加。另外,研究者證明O(logN)甚至O(logN/loglogN)的平均路徑長(zhǎng)度也不能滿足狀態(tài)變化劇烈的網(wǎng)絡(luò)應(yīng)用的需求。新的發(fā)現(xiàn)算法受到這種折衷關(guān)系制約的根本原因在于DHT對(duì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的確定性認(rèn)識(shí)。
1.3.2 Small world?理論對(duì)P2P發(fā)現(xiàn)技術(shù)的影響
?? 非結(jié)構(gòu)化P2P系統(tǒng)中發(fā)現(xiàn)技術(shù)一直采用洪泛轉(zhuǎn)發(fā)的方式,與DHT的啟發(fā)式發(fā)現(xiàn)算法相比,可靠性差,對(duì)網(wǎng)絡(luò)資源的消耗較大。最新的研究從提高發(fā)現(xiàn)算法的可靠性和尋找隨機(jī)圖中的最短路徑兩個(gè)方面展開(kāi)。也就是對(duì)重疊網(wǎng)絡(luò)的重新認(rèn)識(shí)。其中,small world特征和冪規(guī)律證明實(shí)際網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)既不是非結(jié)構(gòu)化系統(tǒng)所認(rèn)識(shí)的一個(gè)完全隨機(jī)圖,也不是DHT發(fā)現(xiàn)算法采用的確定性拓?fù)浣Y(jié)構(gòu)。
? 實(shí)際網(wǎng)絡(luò)體現(xiàn)的冪規(guī)律分布的含義可以簡(jiǎn)單解釋為在網(wǎng)絡(luò)中有少數(shù)結(jié)點(diǎn)有較高的“度”,多數(shù)結(jié)點(diǎn)的“度”較低。度較高的結(jié)點(diǎn)同其他結(jié)點(diǎn)的聯(lián)系比較多,通過(guò)它找到待查信息的概率較高。
? Small-world[a][b]模型的特性:網(wǎng)絡(luò)拓?fù)渚哂懈呔奂群投替湹奶匦浴T诜蟬mall world特性的網(wǎng)絡(luò)模型中,可以根據(jù)結(jié)點(diǎn)的聚集度將結(jié)點(diǎn)劃分為若干簇(Cluster),在每個(gè)簇中至少存在一個(gè)度最高的結(jié)點(diǎn)為中心結(jié)點(diǎn)。大量研究證明了以Gnutella為代表的P2P網(wǎng)絡(luò)符合small world特征,也就是網(wǎng)絡(luò)中存在大量高連通結(jié)點(diǎn),部分結(jié)點(diǎn)之間存在“短鏈”現(xiàn)象。
因此,P2P發(fā)現(xiàn)算法中如何縮短路徑長(zhǎng)度的問(wèn)題變成了如何找到這些“短鏈”的問(wèn)題。尤其是在DHT發(fā)現(xiàn)算法中,如何產(chǎn)生和找到“短鏈”是發(fā)現(xiàn)算法設(shè)計(jì)的一個(gè)新的思路。small world特征的引入會(huì)對(duì)P2P發(fā)現(xiàn)算法產(chǎn)生重大影響。
1.3.3?語(yǔ)義查詢和DHT的矛盾
?? 現(xiàn)有DHT算法由于采用分布式散列函數(shù),所以只適合于準(zhǔn)確的查找,如果要支持目前Web上搜索引擎具有的多關(guān)鍵字查找的功能,還要引入新的方法。主要的原因在于DHT的工作方式。
?? 基于DHT的P2P系統(tǒng)采用相容散列函數(shù)根據(jù)精確關(guān)鍵詞進(jìn)行對(duì)象的定位與發(fā)現(xiàn)。散列函數(shù)總是試圖保證生成的散列值均勻隨機(jī)分布,結(jié)果兩個(gè)內(nèi)容相似度很高但不完全相同的對(duì)象被生成了完全不同的散列值,存放到了完全隨機(jī)的兩個(gè)結(jié)點(diǎn)上。因此,DHT可以提供精確匹配查詢,但是支持語(yǔ)義是非常困難的。
?? 目前在DHT基礎(chǔ)上開(kāi)展帶有語(yǔ)義的資源管理技術(shù)的研究還非常少。由于DHT的精確關(guān)鍵詞映射的特性決定了無(wú)法和信息檢索等領(lǐng)域的研究成果結(jié)合,阻礙了基于DHT的P2P系統(tǒng)的大規(guī)模應(yīng)用。[a]
1.4 P2P發(fā)現(xiàn)技術(shù)研究的成果與不足
P2P發(fā)現(xiàn)技術(shù)中最重要的研究成果應(yīng)該是基于small world理論的非結(jié)構(gòu)化發(fā)現(xiàn)算法和基于DHT的結(jié)構(gòu)化發(fā)現(xiàn)算法。尤其是DHT及其發(fā)現(xiàn)技術(shù)為資源的組織與查找提供了一種新的方法。
隨著P2P系統(tǒng)實(shí)際應(yīng)用的發(fā)展,物理網(wǎng)絡(luò)中影響路由的一些因素開(kāi)始影響P2P發(fā)現(xiàn)算法的效率。一方面,實(shí)際網(wǎng)絡(luò)中結(jié)點(diǎn)之間體現(xiàn)出較大的差異,即異質(zhì)性。由于客戶機(jī)/服務(wù)器模式在Internet和分布式領(lǐng)域十幾年的應(yīng)用和大量種類的電子設(shè)備的普及,如手提電腦、移動(dòng)電話或PDA。這些設(shè)備在計(jì)算能力、存儲(chǔ)空間和電池容量上差別很大。另外,實(shí)際網(wǎng)絡(luò)被路由器和交換機(jī)分割成不同的自治區(qū)域,體現(xiàn)出嚴(yán)密的層次性。
另一方面,網(wǎng)絡(luò)波動(dòng)的程度嚴(yán)重影響發(fā)現(xiàn)算法的效率。網(wǎng)絡(luò)波動(dòng)(Churn、fluctuation of network)包括結(jié)點(diǎn)的加入、退出、失敗、遷移、并發(fā)加入過(guò)程、網(wǎng)絡(luò)分割等。DHT的發(fā)現(xiàn)算法如Chord、CAN、Koorde等都是考慮網(wǎng)絡(luò)波動(dòng)的最差情況下的設(shè)計(jì)與實(shí)現(xiàn)。由于每個(gè)結(jié)點(diǎn)的度數(shù)盡量保持最小,這樣需要響應(yīng)的成員關(guān)系變化的維護(hù)可以比較小,從而可以快速恢復(fù)網(wǎng)絡(luò)波動(dòng)造成的影響。但是每個(gè)結(jié)點(diǎn)僅有少量路由狀態(tài)的代價(jià)是發(fā)現(xiàn)算法的高延時(shí),因?yàn)槊恳淮尾檎倚枰?lián)系多個(gè)結(jié)點(diǎn),在穩(wěn)定的網(wǎng)絡(luò)中這種思路是不必要的。
同時(shí),作為一種資源組織與發(fā)現(xiàn)技術(shù)必然要支持復(fù)雜的查詢,如關(guān)鍵詞、內(nèi)容查詢等。盡管信息檢索和數(shù)據(jù)挖掘領(lǐng)域提供了大量成熟的語(yǔ)義查詢技術(shù),由于DHT精確關(guān)鍵詞映射的特性阻礙了DHT在復(fù)雜查詢方面的應(yīng)用。
2復(fù)雜P2P網(wǎng)絡(luò)拓?fù)淠P?/span>
2.1 Internet拓?fù)淠P?/span>
Internet作為當(dāng)今人類社會(huì)信息化的標(biāo)志,其規(guī)模正以指數(shù)速度高速增長(zhǎng).如今Internet的“面貌”已與其原型ARPANET大相徑庭,依其高度的復(fù)雜性,可以將其看作一個(gè)由計(jì)算機(jī)構(gòu)成的“生態(tài)系統(tǒng)”.雖然Internet是人類親手建造的,但卻沒(méi)有人能說(shuō)出這個(gè)龐然大物看上去到底是個(gè)什么樣子,運(yùn)作得如何.Internet拓?fù)浣Q芯烤褪翘角笤谶@個(gè)看似混亂的網(wǎng)絡(luò)之中蘊(yùn)含著哪些還不為我們所知的規(guī)律.發(fā)現(xiàn)Internet拓?fù)涞膬?nèi)在機(jī)制是認(rèn)識(shí)Internet的必然過(guò)程,是在更高層次上開(kāi)發(fā)利用Internet的基礎(chǔ).然而,Internet與生俱來(lái)的異構(gòu)性動(dòng)態(tài)性發(fā)展的非集中性以及如今龐大的規(guī)模都給拓?fù)浣?lái)巨大挑戰(zhàn).Internet拓?fù)浣V两袢匀皇且粋€(gè)開(kāi)放性問(wèn)題,在計(jì)算機(jī)網(wǎng)絡(luò)研究中占有重要地位.
Internet拓?fù)渥鳛?/span>Internet這個(gè)自組織系統(tǒng)的“骨骼”,與流量協(xié)議共同構(gòu)成模擬Internet的3個(gè)組成部分,即在拓?fù)渚W(wǎng)絡(luò)中節(jié)點(diǎn)間執(zhí)行協(xié)議,形成流量.Internet拓?fù)淠P褪墙?/span>Internet系統(tǒng)模型的基礎(chǔ),由此而體現(xiàn)的拓?fù)浣R饬x也可以說(shuō)就是Internet建模的意義,即作為一種工具,人們用其來(lái)對(duì)Internet進(jìn)行分析預(yù)報(bào)決策或控制.Internet模型中的拓?fù)洳糠挚坍?huà)的是Internet在宏觀上的特征,反映一種總體趨勢(shì),所以其應(yīng)用也都是在大尺度上展開(kāi)的.對(duì)Internet拓?fù)淠P偷男枨笾饕獊?lái)自以下幾個(gè)方面:(1)?許多新應(yīng)用或?qū)嶒?yàn)不適合直接應(yīng)用于Internet,其中一些具有危害性,如蠕蟲(chóng)病毒在大規(guī)模網(wǎng)絡(luò)上的傳播模擬;(2)?對(duì)于一些依賴于網(wǎng)絡(luò)拓?fù)涞膮f(xié)議(如多播協(xié)議),在其研發(fā)階段,當(dāng)前Internet拓?fù)渲荒芴峁┮环轀y(cè)試樣本,無(wú)法對(duì)協(xié)議進(jìn)行全面評(píng)估,需要提供多個(gè)模擬拓?fù)洵h(huán)境來(lái)進(jìn)行實(shí)驗(yàn);(3)?從國(guó)家安全角度考慮,需要在線控制網(wǎng)絡(luò)行為,如美國(guó)國(guó)防高級(jí)研究計(jì)劃局(DARPA)的NMS(network modeling and simulation)項(xiàng)目.
2.1.1隨機(jī)網(wǎng)絡(luò)與拓?fù)淠P?/span>
隨機(jī)網(wǎng)絡(luò)是由N個(gè)頂點(diǎn)構(gòu)成的圖中,可以存在條邊,我們從中隨機(jī)連接M條邊所構(gòu)成的網(wǎng)絡(luò)。還有一種生成隨機(jī)網(wǎng)絡(luò)的方法是,給一個(gè)概率p,對(duì)于中任何一個(gè)可能連接,我們都嘗試一遍以概率p的連接。如果我們選擇M?=?p,這兩種隨機(jī)網(wǎng)絡(luò)模型就可以聯(lián)系起來(lái)。對(duì)于如此簡(jiǎn)單的隨機(jī)網(wǎng)絡(luò)模型,其幾何性質(zhì)的研究卻不是同樣的簡(jiǎn)單。隨機(jī)網(wǎng)絡(luò)幾何性質(zhì)的研究是由Paul,Alfréd Rényi和Béla Bollobás在五十年代到六十年代之間完成的。隨機(jī)網(wǎng)絡(luò)在Internet的拓?fù)渲姓加泻苤匾奈恢谩?/span>
2.1.2隨機(jī)網(wǎng)絡(luò)參數(shù)
描述隨機(jī)網(wǎng)絡(luò)有一些重要的參數(shù)。一個(gè)節(jié)點(diǎn)所擁有的度是該節(jié)點(diǎn)與其他節(jié)點(diǎn)相關(guān)聯(lián)的邊數(shù),度是描述網(wǎng)絡(luò)局部特性的基本參數(shù)。網(wǎng)絡(luò)中并不是所有節(jié)點(diǎn)都具有相同的度,系統(tǒng)中節(jié)點(diǎn)度的分布情況,可以用分布函數(shù)描述,度分布函數(shù)反映了網(wǎng)絡(luò)系統(tǒng)的宏觀統(tǒng)計(jì)特征。理論上利用度分布可以計(jì)算出其他表征全局特性參數(shù)的量化數(shù)值。
聚集系數(shù)是描述與第三個(gè)節(jié)點(diǎn)連接的一對(duì)節(jié)點(diǎn)被連接的概率。從連接節(jié)點(diǎn)的邊的意義上,若為第i個(gè)節(jié)點(diǎn)的度,在由k.個(gè)近鄰節(jié)點(diǎn)構(gòu)成的子網(wǎng)中,實(shí)際存在的邊數(shù)E(i)與全部k.個(gè)節(jié)點(diǎn)完全連接時(shí)的總邊數(shù)充的比值定義為節(jié)點(diǎn)i的聚集系數(shù)
?
2.1.3拓?fù)淠P?/span>
Internet拓?fù)淠P涂煞譃閮深?/span>:一類是描述Internet拓?fù)涮卣?/span>,包括Waxman模型,Tiers,Transit -Stub和冪律;另一類是描述拓?fù)涮卣餍纬傻臋C(jī)理,包括Barabási與Albert提出的BA和ESF以及一種改進(jìn)模型GLP.由于后一類模型對(duì)Internet冪律形成機(jī)理的描述還不成熟,更多的是作為一種產(chǎn)生冪律的圖生成算法。對(duì)于第1類模型來(lái)說(shuō),Internet拓?fù)涮卣鞯陌l(fā)現(xiàn),實(shí)際上就是刻畫(huà)該特征的度量(metric)的發(fā)現(xiàn).一個(gè)屬于第一類的拓?fù)淠P途褪前舾梢汛嬖诘幕蛐掳l(fā)現(xiàn)的度量,然后根據(jù)實(shí)際的Internet拓?fù)鋽?shù)據(jù)求出這些度量的值.因此,對(duì)這類模型進(jìn)行評(píng)價(jià)需要從兩方面入手:一方面,對(duì)它所采用的拓?fù)鋽?shù)據(jù)進(jìn)行評(píng)價(jià);另一方面,對(duì)其度量進(jìn)行評(píng)價(jià).在所有已經(jīng)發(fā)現(xiàn)的Internet拓?fù)涠攘恐?/span>,最為基本的就是節(jié)點(diǎn)出度頻率fd.其分布是判斷一幅拓?fù)鋱D是否與Internet拓?fù)湎囝愃频淖钪匾囊罁?jù).在研究早期,研究人員或者認(rèn)為Internet節(jié)點(diǎn)出度是完全隨機(jī)的(如Waxman模型),或者認(rèn)為節(jié)點(diǎn)出度是正規(guī)的(如Tiers模型).而冪律的發(fā)現(xiàn)證明了Internet拓?fù)浣Y(jié)構(gòu)介于兩者之間,呈冪率分布.根據(jù)對(duì)出度頻率分布的刻畫(huà),可將Internet拓?fù)淠P头譃橐韵?/span>3類:
(1)?隨機(jī)型,即認(rèn)為Internet拓?fù)鋱D處于一個(gè)完全無(wú)序的狀態(tài),在大尺度上是均一的.Waxman模型,是一種類似于Erds-Rényi模型的隨機(jī)模型,出度頻率呈泊松分布.這個(gè)模型有兩個(gè)版本:RG1,先將節(jié)點(diǎn)隨機(jī)布置在直角坐標(biāo)網(wǎng)格中,節(jié)點(diǎn)間的距離就是其歐幾里德距離;RG2,依據(jù)(0,L)均勻隨機(jī)分布為節(jié)點(diǎn)對(duì)指定距離.兩個(gè)版本中,節(jié)點(diǎn)間相接的概率P(u,v)與其距離相關(guān),服從泊松分布,距離越近,概率越大.
其中,d(u,v)表示節(jié)點(diǎn)u與v之間的距離,L為節(jié)點(diǎn)間最長(zhǎng)距離,á與a取值范圍是(0,1).
(2)?層次型,來(lái)自對(duì)Internet結(jié)構(gòu)所具有的層次特征的認(rèn)識(shí),在同一層上的節(jié)點(diǎn)出度接近,不同層間節(jié)點(diǎn)出度差別很大.對(duì)同一層上的節(jié)點(diǎn)布置借用Waxman模型方法.Tiers(等級(jí))模型將Internet劃分為LAN(局域網(wǎng)),MAN(城域網(wǎng))和WAN(廣域網(wǎng))3個(gè)層次.在該模型中,WAN只有一個(gè),通過(guò)指定LAN和MAN數(shù)量以及各自內(nèi)部所包含節(jié)點(diǎn)的數(shù)量來(lái)構(gòu)造拓?fù)鋱D.Transit-Stub模型將AS域劃分為Transit類和Stub類.在該模型中,Transit節(jié)點(diǎn)彼此互聯(lián)構(gòu)成一個(gè)節(jié)點(diǎn)群,一個(gè)或多個(gè)Transit節(jié)點(diǎn)群構(gòu)成拓?fù)鋱D的核心,而Stub節(jié)點(diǎn)分布在Transit節(jié)點(diǎn)群四周與Transit節(jié)點(diǎn)相連.Transit -Stub是GT-ITM(georgia tech Internetwork topology models)軟件包的一部分,有時(shí)GT-ITM也就是指Transit-Stub模型.
(3)?冪率型.1999年,Faloutsos等人對(duì)NLANR(National Lab for Applied Network Research)在1997~1998年間的3份BGP數(shù)據(jù)以及1995年的一份traceroute測(cè)量數(shù)據(jù)進(jìn)行分析,發(fā)現(xiàn)Internet拓?fù)渲写嬖谥?/span>4條冪律.
冪律是指形如的方程,對(duì)于兩個(gè)變量X和Y,存在一個(gè)常數(shù)C,使得Y與X的C次冪成比例.有兩個(gè)聲明:(1)?節(jié)點(diǎn)v的等級(jí)為,v是在按出度降序排列序列中的索引值;(2)?鄰接矩陣特征值按降序排列,第i個(gè)特征值為li.冪律1(等級(jí)指數(shù)R):節(jié)點(diǎn)出度dv與該節(jié)點(diǎn)等級(jí)rv的R次冪成比例.冪律2(出度指數(shù)O):出度頻率fd與該出度d的O次冪成比例.
近似冪律(hop-plot指數(shù)H):h跳內(nèi)節(jié)點(diǎn)對(duì)(pairs of nodes)的數(shù)量與h的H次冪成比例.冪律3(特征指數(shù)E):特征值li與其次序i的E次冪成比例.
2.2 Small World網(wǎng)絡(luò)
在現(xiàn)實(shí)的Internet環(huán)境中,網(wǎng)絡(luò)拓?fù)洳⒉煌耆珴M足隨機(jī)網(wǎng)絡(luò)拓?fù)洹?/span>Watt和Strogatz發(fā)現(xiàn),只需要在規(guī)則網(wǎng)絡(luò)上稍作隨機(jī)改動(dòng)就可以同時(shí)具備以上兩個(gè)性質(zhì)。改動(dòng)的方法是,對(duì)于規(guī)則網(wǎng)絡(luò)的每一個(gè)頂點(diǎn)的所有邊,以概率p斷開(kāi)一個(gè)端點(diǎn),并重新連接,連接的新的端點(diǎn)從網(wǎng)絡(luò)中的其他頂點(diǎn)里隨機(jī)選擇,如果所選的頂點(diǎn)已經(jīng)與此頂點(diǎn)相連,則再隨機(jī)選擇別的頂點(diǎn)來(lái)重連。當(dāng)p?= 0時(shí)就是規(guī)則網(wǎng)絡(luò),p?= 1則為隨機(jī)網(wǎng)絡(luò),對(duì)于0 <?p?< 1的情況,存在一個(gè)很大的p的區(qū)域,同時(shí)擁有較大的集聚程度和較小的最小距離。Small World網(wǎng)絡(luò)的幾何性質(zhì)如圖所示。
| p值不同的small world網(wǎng)絡(luò) |
(1)平均路徑。圖中被隨機(jī)選擇又重新連結(jié)后的線稱為捷徑,它對(duì)整個(gè)網(wǎng)絡(luò)的平均路徑有著很大影響,分析表明:當(dāng)p>=21(NK),即在保證系統(tǒng)中至少出現(xiàn)一條捷徑的情況下,系統(tǒng)的平均路徑開(kāi)始下降。即使是相當(dāng)少的捷徑也能夠顯著地減小網(wǎng)絡(luò)的平均路徑長(zhǎng)度。這是因?yàn)槊砍霈F(xiàn)一條捷徑,它對(duì)整個(gè)系統(tǒng)的影響是非線性的,它不僅影響到被這條線直接連著的兩點(diǎn),也影響到了這兩點(diǎn)的最近鄰、次近鄰,以及次次近鄰等。
(2) WS網(wǎng)絡(luò)的集團(tuán)系數(shù)。r1初始固定的節(jié)點(diǎn)數(shù)可計(jì)算t1{ p=0時(shí)規(guī)則網(wǎng)絡(luò)的聚集系數(shù)為C(0), C(0)取決于網(wǎng)絡(luò)結(jié)構(gòu)而與尺寸N無(wú)關(guān),因此有相對(duì)較大的值。隨著邊按一定的概率p隨機(jī)化,聚集系數(shù)在CYO}的附近變化。
(3)度分布。WS模型是介于規(guī)則網(wǎng)絡(luò)和隨機(jī)網(wǎng)絡(luò)
總結(jié)
以上是生活随笔為你收集整理的Peer to Peer ( P2P ) 综述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 华为已经证实?华为将自主研发手机操作系统
- 下一篇: 20年,中国互联网主流产品的演变和逻辑