李秀君,李成
(蘭州交通大學(xué)電子與信息工程學(xué)院 蘭州 730070)
P2P起源于20世紀(jì)60年代后期APPANET的建立,它的最初目標(biāo)是共享美國(guó)研究機(jī)構(gòu)間的計(jì)算資源和文檔,在這個(gè)系統(tǒng)中,并沒(méi)有C/S(客戶端/服務(wù)器)這種模式,主機(jī)相互之間都是平等的,這便是P2P(對(duì)等網(wǎng)絡(luò))思想的核心,雖然這個(gè)網(wǎng)絡(luò)既不是自組織的,也沒(méi)有完整的體系,但是,可以說(shuō)從APPANET誕生那一刻起,最早的P2P思想的雛形也就隨之出現(xiàn)了[1]。
到目前為止,網(wǎng)絡(luò)的連接模式主要分為集中模式、分布模式和混合模式,其中,集中模式的集中P2P模式、分布模式和混合模式是P2P模式的3個(gè)主要發(fā)展階段。
集中模式主要分為C/S模式、CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))模式和集中P2P模式,它們網(wǎng)絡(luò)中的節(jié)點(diǎn)的地位都不平等,即服務(wù)器處于主導(dǎo)地位,客戶端處于從屬地位。C/S模式分為基于一臺(tái)高性能中心服務(wù)器的C/S模式和基于一組帶有負(fù)載均衡機(jī)制的同構(gòu)或異構(gòu)的服務(wù)器組的C/S模式,它們要求所有的資源都集中存儲(chǔ)在服務(wù)器上,并且客戶端所執(zhí)行的操作以及客戶端之間的信息交換都要受到服務(wù)器的控制。這一方面限制了系統(tǒng)的擴(kuò)展性,一方面也浪費(fèi)了寶貴的骨干網(wǎng)帶寬。CDN模式將部分或全部的服務(wù)器資源傳送到置于網(wǎng)絡(luò)“邊緣”的緩存服務(wù)器中,使用戶能就近獲取資源,在增加了系統(tǒng)容量的同時(shí),也減輕了骨干網(wǎng)帶寬的壓力。集中P2P模式,弱化了中心服務(wù)器的功能,它只負(fù)責(zé)記錄共享資源的索引信息,實(shí)現(xiàn)了文件查詢和文件下載的分離,極大地減輕了服務(wù)器的負(fù)擔(dān)[2]。
分布模式按照對(duì)信息定位是否有嚴(yán)格的限制,分為結(jié)構(gòu)化P2P模式和非結(jié)構(gòu)化P2P模式,它們完全取消了服務(wù)器,網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)都處于平等的地位,它們?cè)谙硎芷渌?jié)點(diǎn)提供的資源的同時(shí)也為其它節(jié)點(diǎn)提供服務(wù)。非結(jié)構(gòu)化P2P模式,系統(tǒng)結(jié)構(gòu)比較簡(jiǎn)單隨意,適用于信息發(fā)布、即時(shí)通信等主機(jī)隨時(shí)加入和退出的情況,并且支持復(fù)雜查詢,但是由于它采用了洪泛式搜索和隨機(jī)轉(zhuǎn)發(fā)機(jī)制,使發(fā)現(xiàn)的可擴(kuò)展性和準(zhǔn)確性受到了很大的制約。結(jié)構(gòu)化P2P模式,資源并不是隨機(jī)存儲(chǔ)在節(jié)點(diǎn)上,而是以一種使得查詢更加高效的方式來(lái)存儲(chǔ)的[3]。它通過(guò)DHT技術(shù),形成具有某種結(jié)構(gòu)的邏輯拓?fù)?,并將各個(gè)資源的位置信息按照某種規(guī)則保存到確定的節(jié)點(diǎn)上,從而提供準(zhǔn)確的發(fā)現(xiàn)。但是,節(jié)點(diǎn)頻繁加入和退出會(huì)造成網(wǎng)絡(luò)波動(dòng),會(huì)極大增加DHT的維護(hù)代價(jià),而且DHT不支持復(fù)雜查詢。
混合模式,即混合式P2P系統(tǒng),它既具有集中模式的易管理性,又繼承了分布模式的可擴(kuò)展性,在異構(gòu)的P2P網(wǎng)絡(luò)中是一種較好的模式選擇。
P2P可以被簡(jiǎn)單的定義為通過(guò)直接交換來(lái)共享計(jì)算機(jī)資源和服務(wù)[4]。在傳統(tǒng)的P2P方式下,數(shù)據(jù)節(jié)點(diǎn)的選擇和傳輸都是隨機(jī)的,這占用了運(yùn)營(yíng)商大部分的網(wǎng)絡(luò)帶寬資源,并且這種占用不僅無(wú)法給運(yùn)營(yíng)商帶來(lái)收入,還影響到運(yùn)營(yíng)商的其他應(yīng)用的正常運(yùn)行,從而屢屢有運(yùn)營(yíng)商限制P2P應(yīng)用的情況發(fā)生,但是,從推進(jìn)互聯(lián)網(wǎng)市場(chǎng)發(fā)展的角度看,這既不利于推進(jìn)互聯(lián)網(wǎng)產(chǎn)業(yè)鏈的進(jìn)一步成熟,也不利于形成網(wǎng)絡(luò)運(yùn)營(yíng)商與互聯(lián)網(wǎng)內(nèi)容及應(yīng)用提供商之間合作共盈的局面。而且,無(wú)論是ISP,還是P2P軟件廠商,想要單方面解決兩者之間的網(wǎng)絡(luò)資源分配和優(yōu)化問(wèn)題的可能性都很小,并且純粹基于本地化的鏈接也存在一定的問(wèn)題。
為了解決上述問(wèn)題,耶魯大學(xué)的謝海永博士提出了P4P理論。所謂P4P,是“Proactive network Provider Participation for P2P(電信運(yùn)營(yíng)商主動(dòng)參與P2P網(wǎng)絡(luò))[5]”的簡(jiǎn)稱,被譽(yù)為電信級(jí)別或者運(yùn)營(yíng)商級(jí)的P2P文件傳輸系統(tǒng),它將成為網(wǎng)絡(luò)分享機(jī)制與電信運(yùn)營(yíng)商之間關(guān)系的歷史轉(zhuǎn)折點(diǎn)[6]。
P4P技術(shù)在原有P2P體系結(jié)構(gòu)的基礎(chǔ)上,增加了iTracker,它含有整個(gè)ISP的網(wǎng)絡(luò)信息[7]。系統(tǒng)通過(guò)綜合考慮iTracker提供的網(wǎng)絡(luò)信息和P2P軟件廠商的要求,對(duì)節(jié)點(diǎn)的選擇和資源的傳輸進(jìn)行優(yōu)化,以便讓P2P更好的使用網(wǎng)絡(luò)資源。
iTracker將網(wǎng)絡(luò)拓?fù)涑橄鬄镻ID(模糊ID)和連接PID的鏈路的集合,并給PID之間的鏈路分配或計(jì)算出一個(gè)virtual cost,具有相同的PID的結(jié)點(diǎn)具有相似的網(wǎng)絡(luò)成本[8]。P4P既可以在每個(gè)ISP的服務(wù)器中獨(dú)立部署一個(gè)iTracker,又可以是由受信任的第三方來(lái)運(yùn)營(yíng)一個(gè)由多個(gè)ISP共享的iTracker。
當(dāng)有新節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),新節(jié)點(diǎn)將獲得由自己的IP地址映射而成的PID和AS號(hào),然后向appTracker注冊(cè)并將這些信息交給appTracker。其中,自治系統(tǒng)(Autonomous System ,簡(jiǎn)稱AS)是組成因特網(wǎng)的相對(duì)獨(dú)立的網(wǎng)絡(luò),在AS內(nèi)有自主的路由策略,在AS之間通過(guò)公共網(wǎng)絡(luò)訪問(wèn)點(diǎn)和邊界網(wǎng)關(guān)協(xié)議交換路由信息。每個(gè)自治系統(tǒng)都被分配一個(gè)全球唯一的標(biāo)識(shí)號(hào),即自治系統(tǒng)號(hào)( Autonomous System Number,ASN ),可以依據(jù)ASN將P2P網(wǎng)絡(luò)分成不同的區(qū)域和層次[9]。
當(dāng)請(qǐng)求節(jié)點(diǎn)需要查詢某個(gè)資源時(shí),首先通過(guò)某種資源定位算法得到存儲(chǔ)該資源的資源節(jié)點(diǎn)的IP地址列表,然后將該列表傳送給 appTracker并向它發(fā)送資源優(yōu)化請(qǐng)求;
appTracker保存了IP地址與PID的映射表,可將得到的IP地址列表轉(zhuǎn)化為PID列表,并向iTracker尋求來(lái)自ISP的指導(dǎo),iTracker通過(guò)政策、信息接口向appTracker返回從請(qǐng)求PID到各個(gè)資源PID的virtual cost、策略等信息; appTracker還可以向iTracker請(qǐng)求分配一個(gè)固定的高性能的服務(wù)器用于輔助內(nèi)容分發(fā),iTracker將通過(guò)能力接口將服務(wù)器的地址返回給appTracker;
appTracker通過(guò)權(quán)衡P2P應(yīng)用的需求和iTracker提供的信息,從資源節(jié)點(diǎn)的列表中選擇一組效率較高的節(jié)點(diǎn),并將所選擇的節(jié)點(diǎn)的PID列表映射為IP地址列表,若有iTracker回復(fù)的服務(wù)器的地址,則把它一起加入到返回節(jié)點(diǎn)列表中;
appTracker將返回節(jié)點(diǎn)列表發(fā)送給請(qǐng)求節(jié)點(diǎn),然后請(qǐng)求節(jié)點(diǎn)與資源節(jié)點(diǎn)(結(jié)點(diǎn)或服務(wù)器)直接建立連接,進(jìn)行資源的下載。
隨著寬帶互聯(lián)網(wǎng)技術(shù)和個(gè)人計(jì)算機(jī)性能的不斷發(fā)展,P2P 技術(shù)在互聯(lián)網(wǎng)上的應(yīng)用日益廣泛,與此同時(shí),由于P2P節(jié)點(diǎn)在連接和傳輸時(shí)完全不考慮底層實(shí)際網(wǎng)絡(luò)的拓?fù)浜玩溌窢顩r,造成了帶寬吞噬,并且使ISP花費(fèi)了很多代價(jià)得出的優(yōu)化路徑失去了意義。在這種情況下,P4P技術(shù)應(yīng)運(yùn)而生,它更多的選擇同一路由器或地域性網(wǎng)絡(luò)的節(jié)點(diǎn)來(lái)進(jìn)行數(shù)據(jù)交換,大大提高了數(shù)據(jù)的傳輸能力。當(dāng)然,P4P的運(yùn)行機(jī)制,要遠(yuǎn)遠(yuǎn)超過(guò)“同城交換”的概念,它還會(huì)根據(jù)用戶的上傳、下載帶寬進(jìn)行綜合判斷,從而最大化整體交換的效率[10]。例如,當(dāng)存儲(chǔ)某一資源的各個(gè)節(jié)點(diǎn)的上傳、下載帶寬相差不多時(shí),可盡量將用戶的點(diǎn)對(duì)點(diǎn)的資源傳輸范圍限制在同一地區(qū)、同一運(yùn)營(yíng)商網(wǎng)絡(luò)之內(nèi)的兩個(gè)節(jié)點(diǎn)之間,這樣既能有效提高用戶的網(wǎng)絡(luò)上傳、下載速度,又能盡量避免支付跨網(wǎng)的流量費(fèi)用。但是,若臨近的、同一運(yùn)營(yíng)商的節(jié)點(diǎn)的帶寬遠(yuǎn)小于其它節(jié)點(diǎn)的帶寬時(shí),P4P便會(huì)判斷,是和前者交換效率最優(yōu),還是和后者交換效率更好。這不是預(yù)先設(shè)定的,而是由網(wǎng)絡(luò)運(yùn)營(yíng)商的網(wǎng)絡(luò)策略、使用情況等因素共同決定的。
[1]關(guān)磊.P2P技術(shù)揭秘——P2P網(wǎng)絡(luò)技術(shù)原理與典型系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2011:14-15.
[2]王杰昌.基于Chord的P4P網(wǎng)絡(luò)搜索模型研究[D].武漢:武漢理工大學(xué),2010:15-19.
[3]劉華春.P2P網(wǎng)絡(luò)的分類以及關(guān)鍵技術(shù)分析[J].微計(jì)算機(jī)信息,2008,24(9):112-114.
[4]張文,趙子銘.P2P網(wǎng)絡(luò)技術(shù)原理與C++開發(fā)案例[M].北京:人民郵電出版社,2008:15-16.
[5]阮偉超.P4P體系下的節(jié)點(diǎn)選擇算法研究[D].廣州:中山大學(xué),2010:21-24.
[6]姜朝暉.P2P網(wǎng)絡(luò)的搜索算法研究[D].南京:南京理工大學(xué),2009:1-6.
[7]李光華,朱志祥.P4P:網(wǎng)絡(luò)供應(yīng)商與P2P矛盾的調(diào)節(jié)者[J].科學(xué)技術(shù)與工程,2008,8(20):5612-5614.
[8]朱柳明.P4P技術(shù)簡(jiǎn)介[J].中國(guó)新通信,2008,(15):79-81.
[9]周明天,汪文勇.TCP / IP 網(wǎng)絡(luò)原理與技術(shù)[M].北京:清華大學(xué)出版社,2005:33-36,105-106.
[10]陳倩,侯秀紅,汪國(guó)安.P4P:P2P產(chǎn)業(yè)可持續(xù)發(fā)展的必經(jīng)之路[J].電腦知識(shí)與技術(shù),2009,5(16):4130-4131.