摘要:闡述了P2P技術(shù)的原理,介紹了P2P技術(shù)的網(wǎng)絡(luò)模型和研究的現(xiàn)狀,并論述了P2P技術(shù)的主要應(yīng)用領(lǐng)域和典型產(chǎn)品,對(duì)P2P的發(fā)展前景進(jìn)行了展望。
關(guān)鍵詞:P2P;C/S;網(wǎng)絡(luò)模型;集中式;分布式;VoIP;網(wǎng)絡(luò)電視
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)36-10556-03
Research and Rencent Application of P2P Technology
GONG Li-hua1,2, LI Deng-dao2, LI Ke-feng1
(1.Continuing Education College of Taishan University, Taian 271021, China; 2.College of Information Science and Engineering of Shandong UniVersity of Science and Technology, Qingdao 266510, China)
Abstract: Expounding the principle of P2P technology, introducing the network model and the status of research of P2P technology, and discussing the main applications areas and typical products of P2P technology, prospecting the development of P2P.
Key words: P2P; C/S; network model; centralized; distributed; VoIP; network TV
對(duì)等網(wǎng)絡(luò)(P2P)技術(shù)是目前國際計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域研究的一個(gè)熱點(diǎn),被《財(cái)富》雜志譽(yù)為將改變互聯(lián)網(wǎng)未來的四大新技術(shù)之一,目前微軟、Sun、IBM等很多著名的企業(yè)和公司都投入到對(duì)P2P技術(shù)的研究之中。P2P計(jì)算并非一種全新的技術(shù),在20世紀(jì)70年代就已出現(xiàn),其典型代表是USENET和FidoNet兩個(gè)分散、分布的信息交換系統(tǒng),但是受早期計(jì)算機(jī)性能、資源等因素的限制,大多數(shù)連接到因特網(wǎng)上的普通用戶并沒有能力提供網(wǎng)絡(luò)服務(wù),從而逐步形成了以少數(shù)服務(wù)器為中心的客戶/服務(wù)器(Client/Server)架構(gòu)。將P2P(Peer to Peer)技術(shù)帶入網(wǎng)絡(luò)世界的是1999年成立的Napster,真正的P2P技術(shù)的大規(guī)模應(yīng)用正起源于該音樂文件交換軟件。雖然“客戶/服務(wù)器”模型是目前互聯(lián)網(wǎng)上占統(tǒng)治地位的計(jì)算模型,但從某種意義來說,P2P計(jì)算可以說是一種向傳統(tǒng)互聯(lián)網(wǎng)技術(shù)的回歸,體現(xiàn)了互聯(lián)網(wǎng)的本質(zhì),因?yàn)榛ヂ?lián)網(wǎng)最初的設(shè)計(jì)目標(biāo)就是讓網(wǎng)絡(luò)上的計(jì)算機(jī)互相之間可以直接通信而不需要中介。
目前,業(yè)界對(duì)P2P的定義還沒有一個(gè)標(biāo)準(zhǔn)的說法,Intel將P2P技術(shù)定義為“通過系統(tǒng)間的直接交換達(dá)成計(jì)算機(jī)資源與信息共享的系統(tǒng)”,這些資源與服務(wù)包括信息交換、處理器時(shí)鐘、緩存和磁盤空間等。IBM則對(duì)P2P賦予了更廣闊的定義,把它看成是由若干互聯(lián)協(xié)作的計(jì)算機(jī)構(gòu)成的系統(tǒng)并具備如下若干特性:系統(tǒng)依存于邊緣化(非中央式服務(wù)器)設(shè)備的主動(dòng)協(xié)作,每個(gè)成員直接從其他成員而不是從服務(wù)器的參與中受益;系統(tǒng)中成員同時(shí)扮演服務(wù)器與客戶端的角色;系統(tǒng)應(yīng)用的用戶能夠意識(shí)到彼此的存在而構(gòu)成一個(gè)虛擬或?qū)嶋H的群體。
1 P2P技術(shù)概述
簡單地說,P2P技術(shù)是一種用于不同PC用戶之間、不經(jīng)過中繼設(shè)備直接交換數(shù)據(jù)或服務(wù)的技術(shù)(其網(wǎng)絡(luò)通信模式如圖1所示),它打破了傳統(tǒng)的Client/Server模式(其網(wǎng)絡(luò)通信模式如圖2所示)。C/S模式造成互聯(lián)網(wǎng)絡(luò)上的集中,無論信息資源還是成本資源均向同一方向集中,這樣的模式符合一對(duì)多、強(qiáng)對(duì)弱的社會(huì)關(guān)系形式,如政府對(duì)個(gè)人、對(duì)企業(yè),大企業(yè)對(duì)小企業(yè),學(xué)校對(duì)學(xué)生,企業(yè)對(duì)職工等等關(guān)系。雖然“客戶/服務(wù)器”模型是目前互聯(lián)網(wǎng)上占統(tǒng)治地位的計(jì)算模型,但從某種意義來說,P2P模式可以說是一種向傳統(tǒng)互聯(lián)網(wǎng)技術(shù)的回歸,體現(xiàn)了互聯(lián)網(wǎng)的本質(zhì),因?yàn)榛ヂ?lián)網(wǎng)最初的設(shè)計(jì)目標(biāo)就是讓網(wǎng)絡(luò)上的計(jì)算機(jī)互相之間可以直接通信而不需要中介。在P2P網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)的地位都是相同的,具備客戶端和服務(wù)器雙重特性,可以同時(shí)作為服務(wù)使用者和服務(wù)提供者。由于P2P技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)的存儲(chǔ)模式將由目前的“內(nèi)容位于中心”模式轉(zhuǎn)變?yōu)椤皟?nèi)容位于邊緣”模式,改變Internet現(xiàn)在的以大網(wǎng)站為中心的狀態(tài),重返“非中心化”,將權(quán)力交還給用戶。
P2P的本質(zhì)思想是,整個(gè)網(wǎng)絡(luò)中不存在中心節(jié)點(diǎn)(或中心服務(wù)器)。在P2P結(jié)構(gòu)中,每一個(gè)節(jié)點(diǎn)(Peer)大都同時(shí)具有信息消費(fèi)者、信息提供者和信息通訊者等三方面的功能,在P2P網(wǎng)絡(luò)中每一個(gè)節(jié)點(diǎn)所擁有的權(quán)利和義務(wù)都是對(duì)等的。在P2P工作方式中,每一個(gè)客戶終端既是客戶機(jī),又是服務(wù)器。它弱化了服務(wù)器的作用,將信息數(shù)量、成本資源都向互聯(lián)網(wǎng)各點(diǎn)均勻分布,也就是所謂的“邊緣化”的趨勢,消除了單個(gè)資源帶來的瓶頸,可以控制和實(shí)現(xiàn)網(wǎng)絡(luò)上各節(jié)點(diǎn)的負(fù)荷平衡。P2P技術(shù)不僅能利用服務(wù)器的資源,同時(shí)能合理地使用用戶計(jì)算機(jī)的空閑資源。用戶在享受媒體節(jié)目的同時(shí),也在利用自身計(jì)算機(jī)所空閑的資源為其他用戶提供著服務(wù)。所以,使用P2P技術(shù)提供高質(zhì)量和大容量的流媒體服務(wù)系統(tǒng)成為可能。
2 P2P技術(shù)的網(wǎng)絡(luò)模型
到目前為止,P2P技術(shù)的發(fā)展經(jīng)歷了四個(gè)階段,每個(gè)階段都代表著一種P2P網(wǎng)絡(luò)模型:集中式、純分布式、混合式和結(jié)構(gòu)化模型。其中,混合式模型是當(dāng)前最為成熟、有效的實(shí)現(xiàn)方式。P2P技術(shù)起源于文件交換技術(shù),在P2P的發(fā)展過程中,文件交換技術(shù)的演變最具代表性,下面我們就以典型的P2P文件交換軟件為例來研究P2P模式的幾種主要形式。
1)集中目錄式結(jié)構(gòu)
集中目錄式P2P結(jié)構(gòu)是最早出現(xiàn)的P2P應(yīng)用模式。集中式P2P模式采用星型結(jié)構(gòu),由一個(gè)中心服務(wù)器來負(fù)責(zé)記錄共享信息以及反饋對(duì)這些信息的查詢;每一個(gè)對(duì)等實(shí)體要對(duì)它所需共享的信息以及進(jìn)行的通信負(fù)責(zé),根據(jù)需要下載它所需要的其他對(duì)等實(shí)體上的信息。這種形式具有中心化的特點(diǎn),但是它不同于傳統(tǒng)意義上的Client/Server模式。因?yàn)閭鹘y(tǒng)意義上的Client/Server模式采用的是一種壟斷的手段,所有資料都存放在服務(wù)器上,客戶機(jī)只能被動(dòng)地從服務(wù)器上讀取信息,并且客戶機(jī)之間不具有交互能力;而集中式P2P模式則是所有網(wǎng)上提供的資料都存放在提供該資料的客戶機(jī)上,服務(wù)器上只保留索引信息,此外服務(wù)器與對(duì)等實(shí)體以及對(duì)等實(shí)體之間都具有交互能力。
集中式P2P應(yīng)用又被稱為第一代P2P應(yīng)用,Napster程序是第一代P2P應(yīng)用的典型代表。Napster提供的MP3下載服務(wù)就是最早的P2P實(shí)踐。其用戶注冊(cè)與文件檢索過程類似于傳統(tǒng)的C/S模式,區(qū)別在于所有資料并非存儲(chǔ)在服務(wù)器上,而是存儲(chǔ)在各個(gè)節(jié)點(diǎn)中,這是一種集中式對(duì)等網(wǎng)絡(luò)模式。
集中式P2P可提供中心服務(wù)器目錄檢索、管理服務(wù)和標(biāo)準(zhǔn)的點(diǎn)到點(diǎn)通信,具有高效的檢索和低效的交換服務(wù)的特點(diǎn)。集中式P2P對(duì)小型網(wǎng)絡(luò)而言在管理和控制方面占有一定的優(yōu)勢,但對(duì)大型網(wǎng)絡(luò)并不適合。
2)純分布式結(jié)構(gòu)
純分布式P2P模式也被稱為廣播式的P2P模型。它取消了集中的中央服務(wù)器,每個(gè)用戶隨機(jī)按入網(wǎng)絡(luò),并與自己相鄰的一組節(jié)點(diǎn)通過端到端的連接,從而構(gòu)成一個(gè)邏輯覆蓋的網(wǎng)絡(luò)。對(duì)等節(jié)點(diǎn)之間的內(nèi)容查詢和內(nèi)容共享都是直接通過相鄰節(jié)點(diǎn)廣播接力 傳遞,同時(shí)每個(gè)節(jié)點(diǎn)還會(huì)記錄搜索軌跡,以防止搜索環(huán)路的產(chǎn)生。
純分布式P2P應(yīng)用被稱為第二代P2P應(yīng)用,它吸取了Napster失敗的教訓(xùn),改進(jìn)了第一代P2P軟件的缺陷。在純分布式P2P中,對(duì)等機(jī)通過與相鄰對(duì)等機(jī)之間的連接遍歷整個(gè)網(wǎng)絡(luò)體系。每個(gè)對(duì)等機(jī)在功能上都是相似的,并沒有專門的服務(wù)器,而對(duì)等機(jī)必須依靠它們所在的分布網(wǎng)絡(luò)來查找文件和定位其他對(duì)等機(jī)。Gnutella網(wǎng)絡(luò)是第二代P2P應(yīng)用的典型代表。在Gnutella網(wǎng)絡(luò)中,一臺(tái)新對(duì)等機(jī)首先通過訪問某特殊站點(diǎn)提供的“主機(jī)緩存服務(wù)”機(jī)制來得到一臺(tái)活動(dòng)對(duì)等機(jī)地址;接著,該新對(duì)等機(jī)主動(dòng)探查網(wǎng)絡(luò)中的其它對(duì)等機(jī),找到與之相鄰的對(duì)等機(jī)節(jié)點(diǎn),在進(jìn)行文件查找時(shí),該對(duì)等機(jī)首先向與之相鄰的所有活動(dòng)對(duì)等點(diǎn)發(fā)送一個(gè)查詢描述符Query,在其他對(duì)等機(jī)接收到該查詢描述符后,檢查本地是否有符合查詢請(qǐng)求的文件內(nèi)容,如果有,則按查詢描述符的發(fā)送路徑返回一個(gè)查詢響應(yīng)描述符QueryHit,無論本地是否存在符合查詢請(qǐng)求的文件內(nèi)容,其他對(duì)等機(jī)都會(huì)將該查詢包通過擴(kuò)散方式繼續(xù)在網(wǎng)絡(luò)中傳遞;一旦定位了響應(yīng)查詢文件的對(duì)等機(jī)之后,就與響應(yīng)對(duì)等機(jī)建立TCP連接,通過HTTP協(xié)議從響應(yīng)對(duì)等機(jī)中下載自己查詢的文件。
純分布式P2P模式也存在很多弊端,主要表現(xiàn)在以下方面:搜索請(qǐng)求要經(jīng)過整個(gè)網(wǎng)絡(luò)或者至少是一個(gè)很大的范圍才能得到結(jié)果,占用很多帶寬,而且需要花費(fèi)很長時(shí)間才能有返回結(jié)果;隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,通過擴(kuò)散方式定位對(duì)等點(diǎn)及查詢信息的方法將會(huì)造成網(wǎng)絡(luò)流量急劇增加,從而導(dǎo)致網(wǎng)絡(luò)擁塞,最終使Gnutella網(wǎng)絡(luò)被分片,使得查詢?cè)L問只能在網(wǎng)絡(luò)很小的范圍內(nèi)進(jìn)行,網(wǎng)絡(luò)的可擴(kuò)展性不好,不適合大型網(wǎng)絡(luò);純分布式的P2P模式很難被企業(yè)所利用,它缺少對(duì)網(wǎng)絡(luò)上的用戶節(jié)點(diǎn)數(shù)以及對(duì)他們提供的資源的一個(gè)總體把握;安全性不高,易遭受惡意攻擊,如攻擊者發(fā)送垃圾查詢信息,造成網(wǎng)絡(luò)擁塞。
3)混合式結(jié)構(gòu)
混合式P2P模式結(jié)合了集中式和分布式P2P的優(yōu)點(diǎn),在設(shè)計(jì)思想和處理能力上都得到了進(jìn)一步的優(yōu)化。它在分布式模式的基礎(chǔ)上,將用戶節(jié)點(diǎn)按能力進(jìn)行分類,使某些節(jié)點(diǎn)擔(dān)任特殊的任務(wù)。這些節(jié)點(diǎn)共分為3種:用戶節(jié)點(diǎn)、搜索節(jié)點(diǎn)、索引節(jié)點(diǎn)。
混合式P2P模式結(jié)合了集中式和分布式P2P的優(yōu)點(diǎn),它的出現(xiàn)是為了改善第二代P2P應(yīng)用的搜索效率和可用性等問題,因此又被稱為第三代P2P應(yīng)用。BT就是第三代混合式P2P網(wǎng)絡(luò)的典型代表,開創(chuàng)了新一代P2P的潮流,它批判地繼承了前輩產(chǎn)品的優(yōu)點(diǎn),將中心目錄服務(wù)器的穩(wěn)定性同優(yōu)化的分布式文件管理結(jié)合起來,從而在效率上遠(yuǎn)遠(yuǎn)超出了eDonkey這類產(chǎn)品。它要求提供一個(gè)或多個(gè)統(tǒng)一的Web發(fā)布服務(wù)器,以供發(fā)布和搜尋資料。在客戶端,它通過一個(gè)IE插件提供下載、上傳管理。BT把一份大文件切割成碎片,為每一個(gè)碎片標(biāo)上特殊標(biāo)識(shí),用戶無需到一個(gè)固定地點(diǎn)(如傳統(tǒng)網(wǎng)絡(luò)的中心服務(wù)器)上下載完整的文件,系統(tǒng)會(huì)自動(dòng)尋找、隨機(jī)下載具有相同標(biāo)識(shí)的文件碎片,將其加以整合成為完整的文件。
4)結(jié)構(gòu)化P2P模式
結(jié)構(gòu)化P2P網(wǎng)絡(luò)模型是一種采用純分布式的消息傳遞機(jī)制和根據(jù)關(guān)鍵字進(jìn)行查找的定位服務(wù),目前的主流方法是采用分布式哈希表(DHT)技術(shù),它與非結(jié)構(gòu)化模型的根本區(qū)別在于每個(gè)節(jié)點(diǎn)所維護(hù)的鄰居是否能夠按照某種全局方式組織起來以利于快速查找。這種模型有效地減少了節(jié)點(diǎn)信息的發(fā)送數(shù)量,從而增強(qiáng)了P2P網(wǎng)絡(luò)的擴(kuò)展性和避免了單一節(jié)點(diǎn)失效的問題。
基于DHT的代表性的研究項(xiàng)目有微軟研究院的Pastry項(xiàng)目等。由于基于DHT的結(jié)構(gòu)化模型的系統(tǒng)要比Gnutella模型和Kazza模型等無結(jié)構(gòu)的系統(tǒng)要復(fù)雜的多,所以采用DHT方式的P2P系統(tǒng)現(xiàn)在尚缺乏在因特網(wǎng)中大規(guī)模真實(shí)部署的實(shí)例,成功應(yīng)用還比較少見。
3 P2P技術(shù)的主要應(yīng)用領(lǐng)域
P2P技術(shù)有著廣闊的應(yīng)用領(lǐng)域。目前,在文件共享、網(wǎng)絡(luò)電視、VoIP、分布式計(jì)算、在線交流、網(wǎng)絡(luò)游戲甚至是企業(yè)計(jì)算與電子商務(wù)等應(yīng)用領(lǐng)域P2P都顯露出很強(qiáng)的技術(shù)優(yōu)勢。簡單的說,P2P直接將人們聯(lián)系起來,讓人們通過互聯(lián)網(wǎng)直接交互。P2P使得網(wǎng)絡(luò)上的溝通變得容易、更直接共享和交互。
1)文件下載
P2P文件下載是P2P應(yīng)用中最為廣泛的方式之一。它通過在不同用戶間直接進(jìn)行文件交換大道文件共享的目的。以典型的BT應(yīng)用為例,當(dāng)客戶端從Web服務(wù)器或者其他傳統(tǒng)服務(wù)器下載種子文件,客戶端解析種子文件后連接TRACKER服務(wù)器,依次與Peer建立連接獲取其需要的文件或片段。在文件下載的過程中,客戶端不斷地與TRACKER服務(wù)器交互已經(jīng)上傳或者下載得字節(jié)數(shù)、文件分片信息,方便其他客戶端連接本地客戶端獲取該文件資源。因此,客戶端越多,文件共享越頻繁,與傳統(tǒng)C/S模式相比,能滿足更多人的文件快速共享需求;而且文件資源由各個(gè)客戶端提供,非常豐富。
2)在視頻直播中的應(yīng)用
隨著P2P研究的進(jìn)一步深入,采用P2P技術(shù)的播放軟件成就了網(wǎng)絡(luò)電視的發(fā)展。P2P受到了廣大網(wǎng)民的喜愛,目前主要的應(yīng)用的網(wǎng)絡(luò)電視下載有PPStream、PPlive、沸點(diǎn)網(wǎng)絡(luò)電視、TVKoo、貓眼網(wǎng)絡(luò)電視、QQ直播等。網(wǎng)絡(luò)電視的發(fā)展吸引了眾多的網(wǎng)民。網(wǎng)絡(luò)電視提供的電視節(jié)目非常豐富,它比目前一般的有線電視節(jié)目更多,同時(shí)提供給用戶許多交互的功能,還能提供給用戶一個(gè)視頻播放的平臺(tái)。
3)在VoIP中的應(yīng)用
VoIP(Voice over Internet Protocol)是一種運(yùn)行在IP網(wǎng)絡(luò)層上的話音通信應(yīng)用,也可以理解為一種用因特網(wǎng)系統(tǒng)代替?zhèn)鹘y(tǒng)電話通信系統(tǒng)進(jìn)行話音通話的技術(shù)。以Skype為代表的VoIP軟件在網(wǎng)絡(luò)通話業(yè)務(wù)系統(tǒng)中靈活應(yīng)用了混合式P2P技術(shù),它結(jié)合了集中式和分布式P2P模式的特點(diǎn),在網(wǎng)絡(luò)的邊緣節(jié)點(diǎn)采用集中式的網(wǎng)絡(luò)結(jié)構(gòu),而在超級(jí)節(jié)點(diǎn)之間采用分布式的網(wǎng)絡(luò)結(jié)構(gòu)。Skype率先將電話公司變?yōu)檐浖蛯拵н\(yùn)營商,它將語音呼叫轉(zhuǎn)移到因特網(wǎng)中,正在改變著我們的語音通信。另外,還有許多類似的免費(fèi)VoIP應(yīng)用,像headcall、QQ、MSN等。
4)在其他領(lǐng)域中的應(yīng)用
此外,P2P技術(shù)在網(wǎng)絡(luò)游戲、協(xié)同計(jì)算、海量存儲(chǔ)、信息搜索、電子商務(wù)等領(lǐng)域有各種各樣的應(yīng)用。
4 結(jié)論
P2P以非集中方式,使用分布式資源來實(shí)現(xiàn)應(yīng)用,開創(chuàng)了“人人為我,我為人人”的信息交互模式,具有自由化、自擴(kuò)展、自愈合、自管理、低成本擴(kuò)張等特性,可有效解決傳統(tǒng)C/S架構(gòu)在承載大容量數(shù)字媒體業(yè)務(wù)時(shí)所面臨的高成本、低擴(kuò)展性等問題。在內(nèi)容共享、分布式計(jì)算和信息交流等方面,P2P的優(yōu)勢尤為明顯,具有廣闊的應(yīng)用前景。
參考文獻(xiàn):
[1] 王一煒,楊可揚(yáng).淺談P2P技術(shù)[J].忻州師范學(xué)院學(xué)報(bào),2007(5).
[2] Brookshier D.Java P2P 程序設(shè)計(jì)[M].北京:中國電力出版社,2006.
[3] 侯太平,顧大權(quán),汪晉.淺談P2P技術(shù)[J].微計(jì)算機(jī)應(yīng)用,2002(6):22-24.
[4] 胡中紅,王以群.基于P2P技術(shù)的信息網(wǎng)絡(luò)[J].中國信息導(dǎo)報(bào),2003(4).
[5] Robert.Java P2P技術(shù)內(nèi)幕[M].北京:人民郵電出版社,2003.
[6] 張聯(lián)峰等.對(duì)等網(wǎng)(P2P)技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2003(12).
[7] 龔君芳,李圣文.P2P應(yīng)用程序及設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2002(9):36-38.