P2P對等網(wǎng)絡(luò )路由模型及關(guān)鍵技術(shù)分析
P2P是近年來(lái)互聯(lián)網(wǎng)最熱門(mén)的技術(shù),在VOIP、下載、流媒體、協(xié)調計算等領(lǐng)域得到飛速發(fā)展。P2P是Peer to Peer的縮寫(xiě),即為對等計算或對等網(wǎng)絡(luò ),可以簡(jiǎn)單的定義成通過(guò)直接交換,共享計算機資源和服務(wù)。P2P架構是一種資源分布利用和共享的體系架構,與網(wǎng)絡(luò )中占據主導地位的客戶(hù)端/服務(wù)器(C/S)體系架構相對應。在P2P網(wǎng)絡(luò )模式中,每個(gè)節點(diǎn)的地位都是對等的,整個(gè)網(wǎng)絡(luò )一般不依賴(lài)于專(zhuān)用集中的服務(wù)器。每個(gè)節點(diǎn)同時(shí)承擔服務(wù)器和客戶(hù)端兩個(gè)角色,既提供資源和服務(wù),也享用其他節點(diǎn)的資源和服務(wù)。通常這些資源和服務(wù)包括:信息的共享與交換、存儲資源、磁盤(pán)空間和計算資源等的共享使用。
2 主流P2P網(wǎng)絡(luò )模型分析
2.1 集中目錄式P2P模型
集中目錄式P2P結構是最早的P2P應用模式,因其仍具有中心化的特點(diǎn)也被稱(chēng)為非純粹的P2P結構,Napster是這種模型的典型代表,如圖l所示。集中目錄式模型,是由一個(gè)中心服務(wù)器來(lái)負責記錄共享信息以及反饋對這些信息的查詢(xún),每一個(gè)對等實(shí)體要對它所需共享的信息以及進(jìn)行的通信負責。當某節點(diǎn)希望搜索一個(gè)不知道位置的資源時(shí),該節點(diǎn)向目錄服務(wù)器發(fā)送請求,目錄服務(wù)器在數據庫中查詢(xún)到匹配的資源后將其定位信息返回該節點(diǎn),然后在兩個(gè)節點(diǎn)之間執行交互。
與傳統的客戶(hù)朋艮務(wù)器模式不同,這種模式中客戶(hù)所需要的資料并非存儲在服務(wù)器上,而是存貯在P2P網(wǎng)絡(luò )內的各個(gè)節點(diǎn)中,當查詢(xún)節點(diǎn)收到節點(diǎn)地址信息列表后,會(huì )根據網(wǎng)絡(luò )流量和延遲等信息選擇合適的節點(diǎn)建立直接連接,其文件傳遞并不經(jīng)過(guò)中央目錄服務(wù)器,而是直接在節點(diǎn)之間通過(guò)TCP協(xié)議進(jìn)行。此外服務(wù)器與對等實(shí)體以及對等實(shí)體之間都互有交互能力。
集中目錄式P2P首先實(shí)現了文件查詢(xún)與文件傳輸的分離,有效地節約了中央服務(wù)器的帶寬消耗,減少了系統的文件傳輸延時(shí)。但中央目錄服務(wù)器卻成為脆弱的瓶頸,如果該服務(wù)器失效,整個(gè)系統都會(huì )癱瘓。而且,不同等級的用戶(hù)連接速度也會(huì )使系統性能大大降低。在Napster之后的P2P系統,都在這一點(diǎn)上進(jìn)行重點(diǎn)改進(jìn),系統基本上都采用無(wú)中心結構,準確性和可擴展性都得到極大提高。
2.2 分布式P2P模型
分布式P2P網(wǎng)絡(luò )采用隨機圖的組織方式,利用TTL(Time-to-Live),洪泛(Flooding),隨機漫步或有選擇轉發(fā)等方式搜索網(wǎng)絡(luò )資源。當節點(diǎn)度數服從冪率(power―law)規律時(shí),該方式能夠較快發(fā)現目標結點(diǎn),而且面對網(wǎng)絡(luò )的動(dòng)態(tài)變化體現了較好的容錯能力。代表性網(wǎng)絡(luò )是Gnutella,如圖2所示。
在分布式P2P模式下,所有節點(diǎn)都參與服務(wù),控制流和數據流都在對等節點(diǎn)之間交互,解決了中心化的問(wèn)題,避免服務(wù)器瓶頸,部分節點(diǎn)出問(wèn)題也不會(huì )影響整個(gè)網(wǎng)絡(luò )的運行,搜索結果更新比較及時(shí),時(shí)效性高;但是,采用flooding方式傳播搜索請求,造成網(wǎng)絡(luò )額外開(kāi)銷(xiāo)比較大,隨著(zhù)P2P網(wǎng)絡(luò )規模的逐漸擴大,網(wǎng)絡(luò )開(kāi)銷(xiāo)成指數級上升。因此準確性和可擴展性是非結構化網(wǎng)絡(luò )面臨的兩個(gè)重要問(wèn)題。
2.3 結構化P2P模型
結構化P2P模式是一種采用純分布式的消息傳遞機制和根據關(guān)鍵字(KEY)的定位服務(wù),從根本上改變了P2P網(wǎng)絡(luò )無(wú)結構的狀態(tài)。其中主流的方法就是采用分布式哈希表(Distributed Hash Table,DHT)技術(shù),是目前擴展性最好的P2P路由方式之一。DHT首先為網(wǎng)絡(luò )中的每一個(gè)節點(diǎn)分配虛擬地址(VID),同時(shí)用一個(gè)關(guān)鍵字(KEY)表示其可提供的共享內容。通過(guò)一個(gè)特定的哈希函數(一般使用的是安全哈希函數,如SHA一1等)將文件名(KEY)與節點(diǎn)信息(VID)運算為一個(gè)哈希值H(KEY,VID),當網(wǎng)絡(luò )上其它節點(diǎn)進(jìn)行資源定位的時(shí)候,可以容易地根據H(Key)值獲得文檔的精確存儲位置。由于DHT各節點(diǎn)并不需要維護整個(gè)網(wǎng)絡(luò )的信息,只在節點(diǎn)中存儲其臨近的后繼節點(diǎn)信息,因此較少的路由信息可有效地實(shí)現到目標節點(diǎn),同時(shí)又取消了洪泛算法,該模型有效地減少了節點(diǎn)信息的發(fā)送數量,增強了P2P網(wǎng)絡(luò )的擴展性。同時(shí),出于冗余度及延時(shí)的考慮,大部分DHT總是在節點(diǎn)的虛擬標識與關(guān)鍵字最接近的K個(gè)節點(diǎn)上備份冗余信息,避免了單一節點(diǎn)失效的問(wèn)題。
基于DHT的路由方式是P2P系統研究的主流之一。所涉及的系統一般都假定節點(diǎn)的能力相當,這對于較小規模的系統非常有效,但這種假設并不適合大規模的Intemet部署。目前,成功應用也比較少見(jiàn)。
2.4 混合式P2P模型
混合式P2P網(wǎng)絡(luò )結合了集中式結構和分布式拓撲的優(yōu)點(diǎn),網(wǎng)絡(luò )中存在著(zhù)中間服務(wù)器,文件目錄是分布的。在分布式模式的基礎上引入了超級節點(diǎn)(Super Node)概念,將用戶(hù)節點(diǎn)按能力(處理、存儲、帶寬等方面性能)分為搜索節點(diǎn)和普通節點(diǎn)兩類(lèi).搜索節點(diǎn)與其臨近的若干普通節點(diǎn)之間構成一個(gè)自治的簇(Cluster),簇內采用基于集中目錄式的P2P模式,而整個(gè)P2P網(wǎng)絡(luò )中存在著(zhù)眾多這樣的簇,各個(gè)不同的簇之間再通過(guò)分布式P2P模式將搜索節點(diǎn)相連起來(lái),甚至可在各個(gè)搜索節點(diǎn)之間,再次選取性能最優(yōu)的節點(diǎn)或者另外引入一新的性能最優(yōu)的節點(diǎn)作為索引節點(diǎn),來(lái)保存整個(gè)網(wǎng)絡(luò )中可以利用的搜索節點(diǎn)信息,并且負責維護整個(gè)網(wǎng)絡(luò )的結構?;旌鲜絇2P模型消除了分布式P2P結構中使用Flooding算法帶來(lái)的網(wǎng)絡(luò )擁塞、搜索遲緩等不利影響,吸收了集中式拓撲的易管理性與分布式拓撲的可擴展性,在異構的P2P網(wǎng)絡(luò )環(huán)境下是一種較好的模式選擇。其中最典型的案例就是Fastrack,如圖3所示。
p2p機相關(guān)文章:p2p原理
評論