混合P2P網絡模型研究與設計

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

導語:混合P2P網絡模型研究與設計一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

混合P2P網絡模型研究與設計

摘要當前主流P2P網絡模型存在的可擴展性不高,效率低下等問題已經嚴重阻礙了P2P應用的發展。雖然結構化P2P網絡模型在一定程度上解決了這些問題,但其本身存在的缺陷也使其很難轉化成實用系統。本文在分析以上網絡優缺點的基礎上,提出一種基于混合模式的新型p2p網絡模型,并對新模型實現方式和重要過程進行詳細描述。在此基礎上進一步引入管理機制和新型關鍵值匹配方案以增強網絡的管理型和實用性。

關鍵詞P2P網絡;結構化網絡模型;混合模式;關鍵值匹配算法

1引言

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

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

本文在P2P網絡主流模型基礎上提出一種融合各個主流P2P網絡模型優勢,在現在網絡下層切實可行的混合型網絡模型。并對新模型實現方式和重要過程進行詳細描述。最后得出結論。

2主流P2P網絡模型

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

3基于混合模式對等網絡(HybridModelbasedP2PNetwork)模型設計

3.1設計思想與目的

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

新型的網絡體系結構融合了現存主流P2P網絡,增強了Gnutella和Napster的可擴展性。

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

在網絡體系結構中加入相應的管理機制,增強了網絡的可管理性,避免了P2P網絡一直存在的管理混亂和商業價值不高的缺點。

在網絡體系結構中加入的新型關鍵值匹配方案保證了網絡的透明性,為用戶提供了更好的服務。

3.2新型網絡模型總體結構描述

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

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

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

3.3邊緣節點選舉算法描述

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

1)在每個節點加入網絡之后,根據自身的帶寬能力和計算能力解析出一個優先級(Priority),并把這個優先級發送至管理節點,管理節點把所有節點的優先級記錄在一個節點優先級列表(Nodeprioritylist)中。

2)當子網中只存在一個節點的時候,這個節點被選為邊緣節點,備份邊緣節點為空。

3)在子網中存在多個節點時,根據節點的優先級,管理節點選取優先級最高的點作為邊緣節點,選取次高的點記錄在管理節點的備份邊緣節點值中。例如當網絡中需要n(n>=1)個邊緣節點時,則管理節點選取節點優先級列表中的最前面n個節點作為邊緣節點,在從剩余節點中選取優先級最高的n個節點作為備份邊緣節點記錄在管理節點中。

4)當有新的節點加入網絡時,管理節點記錄新節點的優先級。管理節點把優先級列表中除邊緣節點外的所有節點重新按遞減順序排序,并把最前面n個節點值作為備份節點記錄在管理節點中。

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

3.4節點查詢過程描述

當節點需要查詢一個關鍵值所存儲的節點時,各個子網的查詢方式由于子網的構造不同而有所差異,在描述具體的查詢過程之前,下面詳細描述節點查詢的過程:

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

2)在子網內部的查詢過程會在兩種情況下產生查詢失敗的結果。第一種是在調用查詢過程的節點收到內部查詢失敗的消息時,第二種是在經過一個時間值t(這個時間閥值可以靜態設置或者通過網絡的大小動態的設定)后調用過程節點沒有受到任何消息,則認為該查詢在子網失敗。

3)當節點得知內網查詢失敗,向子網的邊緣節點發消息,通知邊緣節點需要向外查詢。

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

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

3.5關鍵值匹配過程描述

1)問題的提出

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

2)解決方案設計:

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

共享信息為文件名

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

a.Key:beijingcontext:radio,music

b.Key:radiocontext:beijing,music

c.Key:musiccontext:beijing,radio

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

a.Key:beijingcontext:music

b.Key:musiccontext:beijing

存儲關鍵值的節點將會返回以下結果:

a.Key:beijingcontext:radio,music

b.Key:musiccontext:beijing,radio

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

共享信息為Metadata

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

Style:Popular

Composer:RobertLee

medium:panic

title:GoingDowntown

country:Vienna

artist:JennyF.L.

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

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

在系統運行過程中,屬于主干網和Chord子網中的文件名或Metadata關鍵值都會被解析成數字存儲于網絡節點中,但在Gnutella和Napster子網中只有要在主干網進行查詢過程時才需要這個過程,也就是說邊緣節點會完成這個過程。

4結論與下一步研究方向

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

目前,我們的研究正處于P2P網絡建模階段,下一步工作將在網絡仿真實驗基礎上,進一步提出管理節點對網絡的多方面管理和安全應用的實現,并著手建立應用系統

參考文獻

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.,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.Kasshoek,andH.Balakrishnan.Chord:Ascalablepeer-to-peerlookupserviceforinternetapplications.InProceedingsACMSIGCOMM,2001.