混合P2P網(wǎng)絡(luò)模型研究與設(shè)計

時間:2022-03-12 10:28:00

導(dǎo)語:混合P2P網(wǎng)絡(luò)模型研究與設(shè)計一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

混合P2P網(wǎng)絡(luò)模型研究與設(shè)計

摘要當(dāng)前主流P2P網(wǎng)絡(luò)模型存在的可擴展性不高,效率低下等問題已經(jīng)嚴(yán)重阻礙了P2P應(yīng)用的發(fā)展。雖然結(jié)構(gòu)化P2P網(wǎng)絡(luò)模型在一定程度上解決了這些問題,但其本身存在的缺陷也使其很難轉(zhuǎn)化成實用系統(tǒng)。本文在分析以上網(wǎng)絡(luò)優(yōu)缺點的基礎(chǔ)上,提出一種基于混合模式的新型p2p網(wǎng)絡(luò)模型,并對新模型實現(xiàn)方式和重要過程進行詳細(xì)描述。在此基礎(chǔ)上進一步引入管理機制和新型關(guān)鍵值匹配方案以增強網(wǎng)絡(luò)的管理型和實用性。

關(guān)鍵詞P2P網(wǎng)絡(luò);結(jié)構(gòu)化網(wǎng)絡(luò)模型;混合模式;關(guān)鍵值匹配算法

1引言

計算機對等網(wǎng)(Peer-to-peernetwork,P2P)技術(shù)是目前流行于國際計算機網(wǎng)絡(luò)技術(shù)研究領(lǐng)域的一個熱點。隨著因特網(wǎng)的發(fā)展,分布在世界各地的計算機上的信息可以被連在因特網(wǎng)上的用戶共享,各種信息在網(wǎng)上隨時可被獲取,大大方便了人們的生活。信息共享涉及很多方面,比如網(wǎng)絡(luò)的架構(gòu),查詢信息的路徑等,對等網(wǎng)絡(luò)(即Peer-to-Peer)就是一種用于信息共享的網(wǎng)絡(luò)架構(gòu),在這種架構(gòu)中,各站點既是網(wǎng)絡(luò)服務(wù)提供者—服務(wù)器,又是網(wǎng)絡(luò)服務(wù)申請者—工作站,即對等網(wǎng)絡(luò)上各臺計算機有相同的功能,無主從之分,網(wǎng)絡(luò)上任一臺計算機既可以作為網(wǎng)絡(luò)服務(wù)器,其資源為其它計算機共享,也可以作為工作站,以分享其它服務(wù)器的資源。任一臺計算機均可同時兼作服務(wù)器和工作站,也可只作其中之一。

在P2P技術(shù)的推動下,互聯(lián)網(wǎng)的存儲模式將由現(xiàn)在的“內(nèi)容位于中心”模式轉(zhuǎn)變?yōu)椤皟?nèi)容位于邊緣”模式[1]。從這個角度看P2P帶來了幾個改變:首先,客戶不再需要將文件上載到服務(wù)器,而只需要使用P2P將共享信息提供出去;其次運行P2P的個人電腦不需要固定IP地址和永久的互聯(lián)網(wǎng)連接,這使得那些撥號上網(wǎng)的用戶也可以享受P2P帶來的變革,這部分用戶在互聯(lián)網(wǎng)用戶總數(shù)中占有極大的比重;最后,P2P完全改變過去控制互聯(lián)網(wǎng)的客戶機/服務(wù)器模式,消除客戶機和服務(wù)器二者之間的差別。

本文在P2P網(wǎng)絡(luò)主流模型基礎(chǔ)上提出一種融合各個主流P2P網(wǎng)絡(luò)模型優(yōu)勢,在現(xiàn)在網(wǎng)絡(luò)下層切實可行的混合型網(wǎng)絡(luò)模型。并對新模型實現(xiàn)方式和重要過程進行詳細(xì)描述。最后得出結(jié)論。

2主流P2P網(wǎng)絡(luò)模型

從P2P概念的出現(xiàn)至今出現(xiàn)了多種已被使用和正在研究的P2P網(wǎng)絡(luò)體協(xié)議,從網(wǎng)絡(luò)結(jié)構(gòu)的特點來看P2P的發(fā)展主要經(jīng)歷了以下四個階段。第一個階段,P2P協(xié)議仍處于萌芽階段,這時候的協(xié)議多是client-sever運行模式,以集中目錄式對等網(wǎng)絡(luò)模型Napster為代表。第二個階段,樹型P2P網(wǎng)絡(luò)協(xié)議的出現(xiàn),該協(xié)議的出現(xiàn)時間較短,F(xiàn)astTrack是該階段比較典型的一種網(wǎng)絡(luò)協(xié)議。第三個階段,非結(jié)構(gòu)化網(wǎng)絡(luò)協(xié)議的出現(xiàn),該階段提出了很多新型的網(wǎng)絡(luò)模型,其中Gnutella網(wǎng)絡(luò)模型最具有代表性并且也得到了廣泛的應(yīng)用。第四個階段,結(jié)構(gòu)化網(wǎng)絡(luò)模型的出現(xiàn),以Chord為代表的結(jié)構(gòu)化網(wǎng)絡(luò)模型雖然存在一些問題但比前幾個階段的網(wǎng)絡(luò)協(xié)議具有更多的優(yōu)勢,這種新型網(wǎng)絡(luò)協(xié)議雖然處于研究階段,卻給未來的對等網(wǎng)絡(luò)協(xié)議的研究指明了方向。

3基于混合模式對等網(wǎng)絡(luò)(HybridModelbasedP2PNetwork)模型設(shè)計

3.1設(shè)計思想與目的

HMPN的主要設(shè)計思想是,對結(jié)構(gòu)化對等網(wǎng)絡(luò)模型進行進一步的擴展,在其中引入分層的概念并融入多種的網(wǎng)絡(luò)模型。新型網(wǎng)絡(luò)模型中的關(guān)鍵值查詢算法通過結(jié)合雜湊函數(shù)散列表查詢算法和文字模糊匹配算法在提高查詢效率的基礎(chǔ)上為用戶提供了更好的服務(wù)。以上所描述的設(shè)計思想,可以達到以下設(shè)計目的:

新型的網(wǎng)絡(luò)體系結(jié)構(gòu)融合了現(xiàn)存主流P2P網(wǎng)絡(luò),增強了Gnutella和Napster的可擴展性。

針對Chord所存在的繞路(Detouring)問題和Internet主干網(wǎng)超荷負(fù)載的問題提出了一套在Internet網(wǎng)絡(luò)上切實可行的P2P網(wǎng)絡(luò)方案

在網(wǎng)絡(luò)體系結(jié)構(gòu)中加入相應(yīng)的管理機制,增強了網(wǎng)絡(luò)的可管理性,避免了P2P網(wǎng)絡(luò)一直存在的管理混亂和商業(yè)價值不高的缺點。

在網(wǎng)絡(luò)體系結(jié)構(gòu)中加入的新型關(guān)鍵值匹配方案保證了網(wǎng)絡(luò)的透明性,為用戶提供了更好的服務(wù)。

3.2新型網(wǎng)絡(luò)模型總體結(jié)構(gòu)描述

正如圖1所示,HMPN采取多級分層結(jié)構(gòu),其中N代表子網(wǎng),p代表子網(wǎng)中的節(jié)點,e代表子網(wǎng)中的邊緣節(jié)點。該網(wǎng)絡(luò)模型通過邊緣節(jié)點把各個子網(wǎng)連接起來,邊緣節(jié)點組合成Chord環(huán),形成一個以Chord為主干網(wǎng)各種子網(wǎng)共存的大型網(wǎng)絡(luò),每個子網(wǎng)絡(luò)中的節(jié)點只能通過本子網(wǎng)的邊緣節(jié)點與其它子網(wǎng)在主干網(wǎng)中的邊緣節(jié)點交流,并不知道其它子網(wǎng)的具體屬性。從理論上來說子網(wǎng)可以是任何一種網(wǎng)絡(luò),本文只討論子網(wǎng)是Gnutella,Napster和Chord的情況。首先引進邊緣節(jié)點和管理節(jié)點的概念:

邊緣節(jié)點(Edgenode):邊緣節(jié)點是指子網(wǎng)與主干網(wǎng)交接的一個或者多個節(jié)點。其作用是在子網(wǎng)查詢失敗時,通過邊緣節(jié)點把子網(wǎng)中查詢失敗的過程發(fā)送到更大的主干網(wǎng)上查詢;并且子網(wǎng)中的節(jié)點通過邊緣節(jié)點把自身的共享信息到主干網(wǎng)上。邊緣節(jié)點具有子網(wǎng)中普通節(jié)點同等的所有功能。

管理節(jié)點(Managernode):HMPN中的管理節(jié)點是由子網(wǎng)中專門的終端來擔(dān)當(dāng)。其作用是與其它子網(wǎng)管理節(jié)點交流并監(jiān)視(Monitor)子網(wǎng)節(jié)點以及運行邊緣節(jié)點選舉算法。只存在于各個子網(wǎng)中管理節(jié)點的地位非常特殊,它們具有公開的身份(如網(wǎng)絡(luò)運行商),卻并不具備子網(wǎng)中普通節(jié)點所具備的功能。

3.3邊緣節(jié)點選舉算法描述

邊緣節(jié)點選舉算法運行在管理節(jié)點上。同時,管理節(jié)點還必須實時監(jiān)視邊緣節(jié)點,當(dāng)邊緣節(jié)點出現(xiàn)崩潰時,可以利用選舉出的備份邊緣節(jié)點(Backupedgenode)代替原邊緣節(jié)點。具體的算法如下:

1)在每個節(jié)點加入網(wǎng)絡(luò)之后,根據(jù)自身的帶寬能力和計算能力解析出一個優(yōu)先級(Priority),并把這個優(yōu)先級發(fā)送至管理節(jié)點,管理節(jié)點把所有節(jié)點的優(yōu)先級記錄在一個節(jié)點優(yōu)先級列表(Nodeprioritylist)中。

2)當(dāng)子網(wǎng)中只存在一個節(jié)點的時候,這個節(jié)點被選為邊緣節(jié)點,備份邊緣節(jié)點為空。

3)在子網(wǎng)中存在多個節(jié)點時,根據(jù)節(jié)點的優(yōu)先級,管理節(jié)點選取優(yōu)先級最高的點作為邊緣節(jié)點,選取次高的點記錄在管理節(jié)點的備份邊緣節(jié)點值中。例如當(dāng)網(wǎng)絡(luò)中需要n(n>=1)個邊緣節(jié)點時,則管理節(jié)點選取節(jié)點優(yōu)先級列表中的最前面n個節(jié)點作為邊緣節(jié)點,在從剩余節(jié)點中選取優(yōu)先級最高的n個節(jié)點作為備份邊緣節(jié)點記錄在管理節(jié)點中。

4)當(dāng)有新的節(jié)點加入網(wǎng)絡(luò)時,管理節(jié)點記錄新節(jié)點的優(yōu)先級。管理節(jié)點把優(yōu)先級列表中除邊緣節(jié)點外的所有節(jié)點重新按遞減順序排序,并把最前面n個節(jié)點值作為備份節(jié)點記錄在管理節(jié)點中。

5)當(dāng)邊緣節(jié)點崩潰或出現(xiàn)優(yōu)先級降低的問題時,管理節(jié)點使用備份節(jié)點代替出現(xiàn)問題的邊緣節(jié)點,成為新的邊緣節(jié)點,并把崩潰邊緣節(jié)點中的關(guān)鍵值等信息拷貝到新的邊緣節(jié)點上。然后管理節(jié)點把剩余節(jié)點優(yōu)先級列表重新排隊選取新的備份邊緣節(jié)點。

3.4節(jié)點查詢過程描述

當(dāng)節(jié)點需要查詢一個關(guān)鍵值所存儲的節(jié)點時,各個子網(wǎng)的查詢方式由于子網(wǎng)的構(gòu)造不同而有所差異,在描述具體的查詢過程之前,下面詳細(xì)描述節(jié)點查詢的過程:

1)查詢過程開始,首先該查詢節(jié)點會根據(jù)所在的子網(wǎng)構(gòu)造方式而利用不同的查詢方法,如果一個節(jié)點在Gnutella子網(wǎng)中,當(dāng)它需要查詢關(guān)鍵值時利用廣播的方式首先在本子網(wǎng)中進行查詢,如果查詢成功就直接返回進行連接下載。在Napster中則直接向服務(wù)器發(fā)送消息通過索引進行查詢。而在Chord子網(wǎng)中節(jié)點則會通過本身路由表查詢關(guān)鍵值所存儲的節(jié)點。

2)在子網(wǎng)內(nèi)部的查詢過程會在兩種情況下產(chǎn)生查詢失敗的結(jié)果。第一種是在調(diào)用查詢過程的節(jié)點收到內(nèi)部查詢失敗的消息時,第二種是在經(jīng)過一個時間值t(這個時間閥值可以靜態(tài)設(shè)置或者通過網(wǎng)絡(luò)的大小動態(tài)的設(shè)定)后調(diào)用過程節(jié)點沒有受到任何消息,則認(rèn)為該查詢在子網(wǎng)失敗。

3)當(dāng)節(jié)點得知內(nèi)網(wǎng)查詢失敗,向子網(wǎng)的邊緣節(jié)點發(fā)消息,通知邊緣節(jié)點需要向外查詢。

4)邊緣節(jié)點在主干網(wǎng)絡(luò)中利用Chord路由表小的優(yōu)點進行向外的擴展查詢,這里需要特別說明的是,在Chord主干網(wǎng)絡(luò)中只有各個子網(wǎng)的邊緣節(jié)點參與查詢過程。查詢成功返回關(guān)鍵值以及關(guān)鍵值代表資源所在地址給子網(wǎng)的邊緣節(jié)點。查詢失敗則返回查詢失敗信息。

5)最后邊緣節(jié)點把所收到的信息返回給查詢調(diào)用節(jié)點。查詢節(jié)點根據(jù)信息判斷如果成功,根據(jù)信息中的資源地址進行連接下載,并且所在子網(wǎng)對所查到的關(guān)鍵值進行拷貝(Replication),使得子網(wǎng)的查詢效率進一步提高。如果查詢失敗則返回失敗信息。

3.5關(guān)鍵值匹配過程描述

1)問題的提出

HMPN是一個多網(wǎng)絡(luò)共存的體系結(jié)構(gòu),在不同的網(wǎng)絡(luò)模型中所使用的關(guān)鍵值匹配技術(shù)也不完全相同。例如Napster的集中目錄式網(wǎng)絡(luò)中,查詢的要求都被直接送到中央服務(wù)器,通過服務(wù)器的索引功能查詢很容易使用簡單的文字模糊比對和存在信息返回技術(shù)。非結(jié)構(gòu)化的網(wǎng)絡(luò)也有同樣的功能,只是把這些索引分布在各個獨立的節(jié)點之上。雖然以Chord為代表的分布式P2P協(xié)議具有高性能的特性,但結(jié)構(gòu)化的分布式協(xié)議中,查詢過程卻是通過定位關(guān)鍵值的存儲節(jié)點的精確匹配算法。因此在Napster和Gnutella中可以容易完成的查詢過程,在Chord中卻無法完成。假設(shè)節(jié)點查找一個關(guān)鍵值“music”,在Gnutella和Napster網(wǎng)絡(luò)中查詢返回結(jié)果“tvmusic”,“radiomusic”,而在Chord網(wǎng)絡(luò)中只會返回查找失敗。為了在HMPN中使處于子網(wǎng)的用戶得到所期望的結(jié)果,并且對用戶屏蔽子網(wǎng)與主干網(wǎng)的差異,所以這種在查找結(jié)果上的差異是新型網(wǎng)絡(luò)架構(gòu)的一個關(guān)鍵問題,本文將會提出一個解決這種差異的方法。

2)解決方案設(shè)計:

這個問題的關(guān)鍵之處在于提高Chord協(xié)議的資源可搜索性,即是系統(tǒng)要把用戶所提出的查詢定位到具有相似性的結(jié)果集合上。在本系統(tǒng)中我們將使用一種組合的方法來達到這個目的。由于主流P2P網(wǎng)絡(luò)里時常運用文件名和Metadata作為共享文件的描述方式,所以下面將對共享信息是文件名或Metadata的情況作分別討論。

共享信息為文件名

假設(shè)一個資源文件的文件名叫做“beijingradiomusic”,系統(tǒng)把此文件名分成單個的詞存儲在網(wǎng)絡(luò)中,每個詞就當(dāng)作這個文件的關(guān)鍵值,每個關(guān)鍵值還帶有一串附屬詞匯(context)用來說明這個文件名的具體內(nèi)容。最后資源文件將會分成如下的的幾種關(guān)鍵值形式進行存儲:

a.Key:beijingcontext:radio,music

b.Key:radiocontext:beijing,music

c.Key:musiccontext:beijing,radio

很顯然在Chord這種根據(jù)關(guān)鍵值存儲的系統(tǒng)中,以上每個關(guān)鍵值將會存儲在不同的節(jié)點中,無論用戶是利用文件的全名進行查詢還是文件名的一部份進行查詢,查詢的過程將是一樣的。例如:當(dāng)用戶查詢“beijingmusic”的時候,系統(tǒng)將會查詢下列關(guān)鍵值。

a.Key:beijingcontext:music

b.Key:musiccontext:beijing

存儲關(guān)鍵值的節(jié)點將會返回以下結(jié)果:

a.Key:beijingcontext:radio,music

b.Key:musiccontext:beijing,radio

用戶可以通過這些返回的關(guān)鍵值進行連接下載資源。其中的附屬字段可以給用戶用來計算查詢結(jié)果與查詢目標(biāo)的相近值。比如上述示例里面查詢返回的第一個結(jié)果,其中的關(guān)鍵值與附屬字串就與用戶的查詢目標(biāo)更為接近,用戶就可以通過第一個結(jié)果進行連接下載。在不成功的情況下用戶也可以用第二個結(jié)果進行下載。附屬字串的另外一個好處就在于當(dāng)用戶查詢的目標(biāo)非常的簡短時,附屬字串可以給用戶參考的空間決定是否進行連接。如果不使用這種方法的話,在Chord主干網(wǎng)中要查詢上述文件只能用文件的全名進行查找,否則查詢不能成功。為了增加結(jié)果發(fā)現(xiàn)的機會,所有的關(guān)鍵值都被轉(zhuǎn)化為小寫字母并且所有的停止詞(stop-word)都被刪掉。但限制詞的刪除有一點的限度否則關(guān)鍵值會導(dǎo)致為空值。

共享信息為Metadata

同樣的過程可以用于對Metadata(一種經(jīng)常用于P2P系統(tǒng)中描述文件屬性的文件)作為關(guān)鍵值進行查找。系統(tǒng)把Metadata中某些屬性的描述符作為關(guān)鍵值,把其它的一些字段作為附屬字串。由于Metadata文件中可能描述的文件屬性比較多,系統(tǒng)把其中的一部份屬性值作為文件的描述符并不作為查詢中的關(guān)鍵值,這些描述符使得用戶可以對資源進行更深入的了解,以確定這次查詢返回的結(jié)果是否是用戶所真正的需要。比如一個音樂文件的Metadata如下所示:

Style:Popular

Composer:RobertLee

medium:panic

title:GoingDowntown

country:Vienna

artist:JennyF.L.

由于country,style和media屬性非常的平常,查找返回結(jié)果將會過于巨大,用戶將需要很多的時間去進行判斷,因此這兩個屬性值作為文件的描述符。其他屬性作為可進行查找的關(guān)鍵值,關(guān)鍵值將會調(diào)整成以下形式:

a.Key:Composer:RobertLee

Context:title:GoingDowntown,artist:JennyF.L.

b.Key:title:GoingDowntown

Context:Composer:RobertLee,artist:JennyF.L.

c.Key:artist:JennyF.L.

Context:title:GoingDowntown,Composer:RobertLee

在系統(tǒng)運行過程中,屬于主干網(wǎng)和Chord子網(wǎng)中的文件名或Metadata關(guān)鍵值都會被解析成數(shù)字存儲于網(wǎng)絡(luò)節(jié)點中,但在Gnutella和Napster子網(wǎng)中只有要在主干網(wǎng)進行查詢過程時才需要這個過程,也就是說邊緣節(jié)點會完成這個過程。

4結(jié)論與下一步研究方向

綜上所述,在分析集中目錄式、非結(jié)構(gòu)化和結(jié)構(gòu)化對等網(wǎng)絡(luò)模型弊端的基礎(chǔ)上,本文提出了一種新型P2P網(wǎng)絡(luò)模型-基于混合模式對等網(wǎng)絡(luò)模型(HMPN)。通過引入網(wǎng)絡(luò)分層的思想,在P2P網(wǎng)絡(luò)中實現(xiàn)了多種網(wǎng)絡(luò)結(jié)構(gòu)并存的網(wǎng)絡(luò)模型設(shè)計,提高了網(wǎng)絡(luò)的可擴展性和透明性,并降低了主干網(wǎng)絡(luò)通信流量。在此基礎(chǔ)上提出的管理節(jié)點模式和關(guān)鍵值匹配方案進一步改善了P2P網(wǎng)絡(luò)不可管理現(xiàn)狀,并為該模型從理論到實用的轉(zhuǎn)化奠定了基礎(chǔ)。

目前,我們的研究正處于P2P網(wǎng)絡(luò)建模階段,下一步工作將在網(wǎng)絡(luò)仿真實驗基礎(chǔ)上,進一步提出管理節(jié)點對網(wǎng)絡(luò)的多方面管理和安全應(yīng)用的實現(xiàn),并著手建立應(yīng)用系統(tǒng)

參考文獻

1GeoffreyFox,“Peer-to-PeerNetworks”[J],WebComputing,Vol.3,No.3,pp.75–77,May/June2001.

2TheNapsterHomepage./.2003-11-5

3TheGnutellaHomepage./.200311-5

4MunindarP.Singh,“PeeringatPeer-to-PeerComputing”[J],IEEEInternetComputing,Vol.5,No.1,pp.4–5January/February2001

5KARGER,D.,LEHMAN,E.,LEIGHTON,F(xiàn).,LEVINE,M.,LEWIN,D.,ANDPANIGRAHY,R.Consistenthashingandrandomtrees:DistributedcachingprotocolsforrelievinghotspotsontheWorldWideWeb.InProceedingsofthe29thAnnualACMSymposiumonTheoryofComputing(ElPaso,TX,May1997),pp.654–663

6ClintHeyerNAANOU:AscalablemoderatedP2Pnetwork[OB/OL].innovexpo.itee.uq.edu.au/2002/projects/s359012/2004-10-13

7I.Stoica,R.Morris,D.Karger,F(xiàn).Kasshoek,andH.Balakrishnan.Chord:Ascalablepeer-to-peerlookupserviceforinternetapplications.InProceedingsACMSIGCOMM,2001.