專利名稱::引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法
技術(shù)領(lǐng)域:
:本發(fā)明提出一種對(duì)等網(wǎng)絡(luò)中的超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,屬于計(jì)算機(jī)網(wǎng)絡(luò)、對(duì)等網(wǎng)絡(luò)
技術(shù)領(lǐng)域:
。技術(shù)背景目前的對(duì)等網(wǎng)絡(luò)應(yīng)用中,Gnutella是最成熟和最多開發(fā)支持的無中心節(jié)點(diǎn)的對(duì)等網(wǎng)絡(luò)協(xié)議。Gnutella是一份開放的協(xié)議,任何人都可以開發(fā)Gnutella兼容軟件,開發(fā)者們互相競(jìng)爭(zhēng)、改進(jìn),創(chuàng)造了一個(gè)不斷改進(jìn)、迅速變化和完善的用于文件共享的對(duì)等網(wǎng)絡(luò)。任何人只需要把他希望共享的文件放在硬盤的一個(gè)目錄下,然后利用Gnutella網(wǎng)絡(luò)就可以將資源共享給所有該對(duì)等網(wǎng)絡(luò)的用戶。Gnutella是沒有中心的,Gnutella允許用戶與其他Gnutella節(jié)點(diǎn)直接聯(lián)系,可以分享任何種類文件,大多數(shù)文件共享的系統(tǒng)集中于媒體文件。目前Gnutella己經(jīng)在大規(guī)模運(yùn)行,而且主機(jī)量已經(jīng)達(dá)到上萬級(jí)別,共享的文件數(shù)量已經(jīng)達(dá)到數(shù)十萬。Gnutella在起初使用的0.4版本協(xié)議是無中心節(jié)點(diǎn)的,主要通過洪泛的方式進(jìn)行査詢等操作,在一段時(shí)間內(nèi),0.4版本協(xié)議取得了很大的成功。為了改進(jìn)網(wǎng)絡(luò)利用率,隨后提出了0.6版本協(xié)議。GnutellaO.6版本提出了超級(jí)節(jié)點(diǎn)和普通節(jié)點(diǎn)的概念,當(dāng)網(wǎng)絡(luò)運(yùn)行一段時(shí)間后,網(wǎng)絡(luò)中一些運(yùn)行穩(wěn)定、利用率和效率較高的節(jié)點(diǎn)(一般為在線時(shí)間長并且鄰居節(jié)點(diǎn)數(shù)多的節(jié)點(diǎn))將被選舉為超級(jí)節(jié)點(diǎn),這些節(jié)點(diǎn)構(gòu)成整個(gè)Gmrtella0.6網(wǎng)絡(luò)消息通信的骨干。其他節(jié)點(diǎn)將變?yōu)槠胀ü?jié)點(diǎn),他們優(yōu)先連接到一個(gè)或幾個(gè)超級(jí)節(jié)點(diǎn)上,由超級(jí)節(jié)點(diǎn)管理節(jié)點(diǎn)間通信和查詢等操作的消息傳遞等。超級(jí)節(jié)點(diǎn)的選取問題又是該種網(wǎng)絡(luò)設(shè)計(jì)的重點(diǎn)問題之一。GnutellaO.6中一般是采用計(jì)算自己的在線時(shí)間和節(jié)點(diǎn)度,如果超過相應(yīng)的閾值,而自己的鄰居中又沒有超級(jí)節(jié)點(diǎn)時(shí),則向自己的鄰居廣播自己成為超級(jí)節(jié)點(diǎn),然后此信息向網(wǎng)絡(luò)中擴(kuò)散,普通節(jié)點(diǎn)就會(huì)越來越多的直接將超級(jí)節(jié)點(diǎn)添加為鄰居節(jié)點(diǎn),這樣超級(jí)節(jié)點(diǎn)就擁有了更多的鄰居,也即擁有了更多的資源,來引導(dǎo)網(wǎng)絡(luò)中資源的搜索。GnutellaO.6設(shè)計(jì)的另一個(gè)重要問題是如何解決超級(jí)節(jié)點(diǎn)的失效問題,這是提高網(wǎng)絡(luò)效率、增強(qiáng)網(wǎng)絡(luò)魯棒性的關(guān)鍵。超級(jí)節(jié)點(diǎn)承載比較大的負(fù)載,所以網(wǎng)絡(luò)的負(fù)載情況很不均勻,為了提高超級(jí)節(jié)點(diǎn)對(duì)等網(wǎng)絡(luò)的魯棒性,GnutellaO.6協(xié)議規(guī)定每個(gè)葉結(jié)點(diǎn)可以同時(shí)屬于d個(gè)不同超級(jí)節(jié)點(diǎn),每個(gè)葉結(jié)點(diǎn)必須把自己的文件索引傳送給超級(jí)節(jié)點(diǎn),這樣會(huì)增加網(wǎng)絡(luò)流量,且占用超級(jí)節(jié)點(diǎn)的有效帶寬,使得超級(jí)節(jié)點(diǎn)數(shù)目增加,且規(guī)定d最大不超過3。與Gnutella0.4不同的是,Gnutella0.4的消息在所有的節(jié)點(diǎn)之間進(jìn)行泛洪,以節(jié)點(diǎn)為單位進(jìn)行消息的核查處理;而Gnutella0.6的消息僅在超級(jí)節(jié)點(diǎn)之間進(jìn)行泛洪,以簇為單位進(jìn)行消息的查找工作。對(duì)Gnutdla0.6而言,雖然不對(duì)消息的發(fā)起節(jié)點(diǎn)做消息查找,但顯然不能將消息傳給所有和它相鄰的節(jié)點(diǎn),而是首先要在消息的發(fā)起節(jié)點(diǎn)所在的簇進(jìn)行本地査找,若消息的發(fā)起節(jié)點(diǎn)是葉節(jié)點(diǎn),那還需要找到管理該葉節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn),然后再由管理該簇的超級(jí)節(jié)點(diǎn)將消息發(fā)送給所有和該超級(jí)節(jié)點(diǎn)相鄰的其他超級(jí)節(jié)點(diǎn)。
發(fā)明內(nèi)容本發(fā)明的目的是通過提出一種分布式迭代的計(jì)算對(duì)等網(wǎng)絡(luò)中節(jié)點(diǎn)重要性的方法來改善對(duì)等網(wǎng)絡(luò)中的資源搜索性能。本發(fā)明的目的通過以下技術(shù)方案實(shí)現(xiàn)-一種引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,它包括以下步驟1)計(jì)算網(wǎng)絡(luò)中各節(jié)點(diǎn)的重要性;2)根據(jù)重要性確定超級(jí)節(jié)點(diǎn);3)進(jìn)行資源搜索過程。所述步驟l)進(jìn)一步包括以下子步驟1.l)將對(duì)等網(wǎng)絡(luò)中的節(jié)點(diǎn)抽象為圖中的節(jié)點(diǎn),在可直接通信的節(jié)點(diǎn)之間建立邊;1.2)計(jì)算每條邊的權(quán)重和每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù);1.3)采用分布式迭代的算法計(jì)算各節(jié)點(diǎn)的重要性值。所述步驟2)進(jìn)一步包括以下子步驟2.l)給定網(wǎng)絡(luò)中超級(jí)節(jié)點(diǎn)數(shù)量的期望值和選取超級(jí)節(jié)點(diǎn)的閾值,將節(jié)點(diǎn)重要性大于閾值的節(jié)點(diǎn)選為超級(jí)節(jié)點(diǎn);2.2)若所得的超級(jí)節(jié)點(diǎn)的數(shù)量與期望值有偏差,則調(diào)整閾值后重新選取超級(jí)節(jié)點(diǎn)。所述步驟3)進(jìn)一步包括以下子步驟3.l)構(gòu)造簇,即確定每個(gè)超級(jí)節(jié)點(diǎn)所管轄的葉節(jié)點(diǎn)范圍;3.2)構(gòu)建超級(jí)節(jié)點(diǎn)之間拓?fù)潢P(guān)系。本發(fā)明的特點(diǎn)是通過確定網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)重要性,來指導(dǎo)超級(jí)節(jié)點(diǎn)的選擇,優(yōu)化資源搜索過程;闡述了根據(jù)節(jié)點(diǎn)負(fù)載因子作為節(jié)點(diǎn)重要性評(píng)估的方法進(jìn)而可以作為選取網(wǎng)絡(luò)中超級(jí)節(jié)點(diǎn)的標(biāo)準(zhǔn),并且此算法是動(dòng)態(tài)的,超級(jí)節(jié)點(diǎn)會(huì)隨著網(wǎng)絡(luò)拓?fù)涫莿?dòng)態(tài)變化發(fā)生變化;提出了根據(jù)節(jié)點(diǎn)負(fù)載因子在超級(jí)節(jié)點(diǎn)附近選擇其他鄰居節(jié)點(diǎn)進(jìn)行通信來緩解超級(jí)節(jié)點(diǎn)的負(fù)載壓力,使網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)更加穩(wěn)定。本發(fā)明的有益效果是首先引入節(jié)點(diǎn)重要性,替代現(xiàn)有的節(jié)點(diǎn)鄰居數(shù)作為選擇標(biāo)準(zhǔn),提出分布式迭代的重要性計(jì)算方法,根據(jù)節(jié)點(diǎn)重要性選擇超級(jí)節(jié)點(diǎn),保證了網(wǎng)絡(luò)的查全率(系統(tǒng)在一個(gè)預(yù)定的時(shí)間內(nèi),檢索到合格答案的數(shù)量占系統(tǒng)當(dāng)時(shí)所有在線結(jié)點(diǎn)維護(hù)合格答案總數(shù)的比率)。此外,因采用了更合理的評(píng)估網(wǎng)絡(luò)節(jié)點(diǎn)重要性的方法,故利用本發(fā)明檢索文件所產(chǎn)生的消息量要小于Gnutella產(chǎn)生的消息量。另外,由于本發(fā)明可動(dòng)態(tài)調(diào)整超級(jí)節(jié)點(diǎn),因而可提高網(wǎng)絡(luò)的穩(wěn)定性,使得在超級(jí)節(jié)點(diǎn)崩潰后,出現(xiàn)分片或者死區(qū)的概率降低。本發(fā)明利用網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)信息,更合理地計(jì)算網(wǎng)絡(luò)中節(jié)點(diǎn)的重要性,在此基礎(chǔ)上選擇超級(jí)節(jié)點(diǎn)并進(jìn)行資源搜索。相對(duì)于目前僅僅利用節(jié)點(diǎn)度的做法,本發(fā)明更好地反映了節(jié)點(diǎn)在網(wǎng)絡(luò)中的價(jià)值。相應(yīng)的超級(jí)節(jié)點(diǎn)選擇、資源搜索算法也更有效率。本方法根據(jù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),釆用分布式迭代的方法計(jì)算出節(jié)點(diǎn)的重要性值,靈活高效,不存在單點(diǎn)故障問題,能夠在網(wǎng)絡(luò)結(jié)構(gòu)動(dòng)態(tài)變化的P2P網(wǎng)絡(luò)環(huán)境中快速計(jì)算節(jié)點(diǎn)在P2P網(wǎng)絡(luò)中重要性。圖l是計(jì)算重要性算法實(shí)例;圖2是負(fù)載因子偏差示意圖;圖3是調(diào)整網(wǎng)絡(luò)提高網(wǎng)絡(luò)穩(wěn)定性示意圖;圖4是增加鏈路報(bào)文的格式。具體實(shí)施方式本發(fā)明所涉及的引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,可以劃分為三個(gè)步驟1)計(jì)算節(jié)點(diǎn)重要性,2)根據(jù)重要性確定超級(jí)節(jié)點(diǎn),3)資源搜索過程。以下分別對(duì)這三方面內(nèi)容進(jìn)行說明。1、計(jì)算節(jié)點(diǎn)重要性1.1節(jié)點(diǎn)重要性的計(jì)算方法節(jié)點(diǎn)重要性是對(duì)其能給網(wǎng)絡(luò)提供的服務(wù)的度量,與節(jié)點(diǎn)的鄰居數(shù)目、拓?fù)潢P(guān)系都有關(guān)系。最直接的測(cè)量節(jié)點(diǎn)重要程度的方法是統(tǒng)計(jì)最近一段時(shí)間每個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)的報(bào)文數(shù)目。統(tǒng)計(jì)的時(shí)間段過短,突發(fā)的流量會(huì)影響估計(jì)的結(jié)果;而當(dāng)統(tǒng)計(jì)的時(shí)間段過長,又不能及時(shí)反映出目前網(wǎng)絡(luò)中網(wǎng)絡(luò)流量的變化情況。因此,需要尋找一種通過網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)對(duì)節(jié)點(diǎn)的影響因子進(jìn)行估計(jì)的方法,利用局部信息實(shí)現(xiàn)對(duì)節(jié)點(diǎn)影響因子做出準(zhǔn)確估計(jì),以便應(yīng)用到規(guī)模較大的網(wǎng)絡(luò)中。假設(shè)對(duì)等網(wǎng)絡(luò)中節(jié)點(diǎn)之間的通信具有隨機(jī)性,節(jié)點(diǎn)的鄰居數(shù)目越多,其對(duì)網(wǎng)絡(luò)的知識(shí)也就越多,能夠?yàn)閷?duì)等網(wǎng)絡(luò)提供高質(zhì)量的服務(wù)?;蛘哂兄匾墓?jié)點(diǎn)和該節(jié)點(diǎn)相連時(shí),該節(jié)點(diǎn)的重要性也較高。這種特性在對(duì)等網(wǎng)絡(luò)中非常普遍,當(dāng)一個(gè)節(jié)點(diǎn)是大量節(jié)點(diǎn)的邏輯鄰居或者是某一(幾)個(gè)關(guān)鍵節(jié)點(diǎn)的邏輯鄰居時(shí),其本身也就重要,將要承擔(dān)的網(wǎng)絡(luò)通信量也更大。由于對(duì)等網(wǎng)絡(luò)中,節(jié)點(diǎn)可以分為普通節(jié)點(diǎn)、超級(jí)節(jié)點(diǎn)兩類,使得不同的邊可能具有不同的權(quán)重,若直接采用上述方法則無法體現(xiàn)出該特點(diǎn)。在具體的計(jì)算過程中,通過區(qū)分超級(jí)節(jié)點(diǎn)之間、超級(jí)節(jié)點(diǎn)與普通節(jié)點(diǎn)、普通節(jié)點(diǎn)之間的鏈路,賦予不同的權(quán)重,實(shí)現(xiàn)了更合理的重要性評(píng)估??紤]到網(wǎng)絡(luò)中存在這樣的情況,節(jié)點(diǎn)的鏈路是不對(duì)稱的,有時(shí)普通節(jié)點(diǎn)A的鄰居列表中存在超級(jí)節(jié)點(diǎn)B,但是超級(jí)節(jié)點(diǎn)B的鄰居列表中并沒有普通節(jié)點(diǎn)A。所以P2P網(wǎng)絡(luò)是非對(duì)稱的通信網(wǎng)絡(luò)。設(shè)節(jié)點(diǎn)u重要性為重要性函數(shù)(IF,ImportantFunction),可以表示為IF(u)。節(jié)點(diǎn)u到節(jié)點(diǎn)v之間鏈路的權(quán)重表示為W(u,v),若u、v均為普通節(jié)點(diǎn)則權(quán)重為1,若u、v分別為超級(jí)節(jié)點(diǎn)和普通節(jié)點(diǎn)或者均為超級(jí)節(jié)點(diǎn),則它們之間鏈路的權(quán)重W(n,v)表示為2。Tl,T2,...,Tn為將A視為鄰居的所有節(jié)點(diǎn),則節(jié)點(diǎn)A重要性滿足以下關(guān)系IFn(A)=(l-d)+d.(tlFnl(Ti)--,,乃)-)(1)其中,d為阻尼因子,取0.S5,控制著影響因子計(jì)算過程的收斂速度,d越大收斂越快。Degree(Ti)是節(jié)點(diǎn)Ti的鄰居的數(shù)目,SuperDegree(Ti)是Ti的鄰居中超級(jí)節(jié)點(diǎn)的數(shù)目。例如圖1所示,當(dāng)A、B、C都是普通節(jié)點(diǎn)時(shí),3個(gè)節(jié)點(diǎn)的重要性需要滿足IF(A)=0.15+0.85*IF(C)*1/1(注節(jié)點(diǎn)C的鄰居數(shù)為1,超級(jí)節(jié)點(diǎn)數(shù)全部為0)IF(B)=0.15+0.85*IF(A)*1/2(注:節(jié)點(diǎn)A的鄰居數(shù)為2)IF(C)=0.15+0.85*(IF(A)傘l/2(注:節(jié)點(diǎn)A的鄰居數(shù)為2)+IF(B)*1/1)(注:節(jié)點(diǎn)B的鄰居數(shù)為1)圖中IF(A卜0.4,IF(B)=0.2,IF(C)=0.4是一組滿足該條件的解,由于重要性值具有相對(duì)性,及同時(shí)乘以一個(gè)常數(shù)后仍能使上述等式成立。公式(1)所定義的節(jié)點(diǎn)重要性,是由視該節(jié)點(diǎn)為鄰居的節(jié)點(diǎn)數(shù)目及各自的重要性決定的。對(duì)于節(jié)點(diǎn)重要性的計(jì)算,可采用與公式(1)形式相似的迭代公式(2)完成,如下IF0(A)=1(2)<formula>formulaseeoriginaldocumentpage7</formula>公式中IFq(A)=1在迭代開始前所有節(jié)點(diǎn)重要性全部設(shè)置為相同,將IF"(A)表示第n-l輪迭代的結(jié)果,IF"A)表示第n輪計(jì)算的結(jié)果,通過該公式即可最終求得所有節(jié)點(diǎn)的重要性值。仍以圖l為例子,為簡(jiǎn)化計(jì)算過程,這里取了(1=1,則經(jīng)過30輪迭代后重要性收斂,其中開始與結(jié)束的幾輪迭代的結(jié)果如表1所示-<table>tableseeoriginaldocumentpage7</column></row><table>表1總的來說,網(wǎng)絡(luò)中所有節(jié)點(diǎn)的IF(u)滿足的約束是一個(gè)n元一次方程組,利用迭代求出數(shù)值解,其實(shí)質(zhì)就是首先設(shè)置每個(gè)節(jié)點(diǎn)的重要性值為1,不斷根據(jù)上述公式使用其鄰居節(jié)點(diǎn)的重要性值重新計(jì)算自身重要性。其具體流程如下1.l)將對(duì)等網(wǎng)絡(luò)中的節(jié)點(diǎn)抽象為圖中的節(jié)點(diǎn),在可直接通信的節(jié)點(diǎn)之間建立邊;1.2)計(jì)算每條邊的權(quán)重;計(jì)算每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù);1.3)采用分布式迭代的算法計(jì)算各節(jié)點(diǎn)的重要性值。其分布式體現(xiàn)在節(jié)點(diǎn)在計(jì)算節(jié)點(diǎn)重要性值時(shí)無需整個(gè)網(wǎng)絡(luò)的信息,僅根據(jù)節(jié)點(diǎn)收集的自己的鄰居信息來完成本節(jié)點(diǎn)重要性值的計(jì)算過程,具體計(jì)算過程如下;1.3.1)為每個(gè)節(jié)點(diǎn)設(shè)置初始重要性值1;1.3.2)采用迭代公式(2)開始迭代,節(jié)點(diǎn)根據(jù)各自鄰居的重要性重新計(jì)算各自重要性值;1.3.3)對(duì)網(wǎng)絡(luò)拓?fù)涑掷m(xù)變化的網(wǎng)絡(luò),返回上一步驟繼續(xù)迭代;1.3.4)對(duì)于靜態(tài)網(wǎng)絡(luò),根據(jù)重要性值是否趨于穩(wěn)定判斷是否終止計(jì)算;而對(duì)于動(dòng)態(tài)網(wǎng)絡(luò),可以設(shè)定一個(gè)時(shí)間周期,在一個(gè)周期內(nèi)根據(jù)重要性值是否趨于穩(wěn)定判斷是否終止本周期的計(jì)算,直到進(jìn)入下一個(gè)時(shí)間周期繼續(xù)做迭代運(yùn)算,并且節(jié)點(diǎn)設(shè)置的初始重要性值為本周期的計(jì)算結(jié)果。趨于穩(wěn)定的標(biāo)志是兩次迭代的結(jié)果之間相差比較小的值,也即llFn(")-HV|〈=e,其中e為一個(gè)比較小的值。IFn(")為第n輪計(jì)算得到的節(jié)點(diǎn)u的重要性值。本方法根據(jù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),采用分布式迭代的方法計(jì)算出節(jié)點(diǎn)的重要性值,靈活高效,不存在單點(diǎn)故障問題,能夠在網(wǎng)絡(luò)結(jié)構(gòu)動(dòng)態(tài)變化的無線自組織網(wǎng)絡(luò)環(huán)境中快速計(jì)算節(jié)點(diǎn)在自組織網(wǎng)絡(luò)中重要性。1.2通告報(bào)文設(shè)計(jì)節(jié)點(diǎn)周期性計(jì)算出重要性值之后向節(jié)點(diǎn)物理鄰居通告節(jié)點(diǎn)的重要性值信息,如圖2所示其中,字段的解釋如下PacketLength:整個(gè)數(shù)據(jù)包的長度;PacketSequenceNumber:數(shù)據(jù)包的序號(hào);SourceNodeID:源節(jié)點(diǎn)的節(jié)點(diǎn)ID;ValidateTime:從此報(bào)文中得到的信息有效時(shí)間,超過時(shí)限沒有更新的話應(yīng)被刪除;MessageType:標(biāo)識(shí)消息類型,根據(jù)不同類型的消息有不同的取值,分別表示不同的通告報(bào)文;MessageSize:報(bào)文中所包含信息單元的個(gè)數(shù),不同消息有不同含義;NodeImpactFactor:節(jié)點(diǎn)的重要性估計(jì)值;SumofWeight:節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn)的鏈路權(quán)重之和;AcktoNeighbours:對(duì)之前收到的鄰居的重要性值通告報(bào)文進(jìn)行確認(rèn)。1.3存儲(chǔ)表設(shè)計(jì)具體計(jì)算中,每個(gè)節(jié)點(diǎn)需要維護(hù)l)邏輯鄰居表、2)重要性信息表,這兩張表的定義如下邏輯鄰居表(logical—neighbour—table),增加對(duì)鏈路建立原因的歷史記錄,便于追蹤為維持網(wǎng)絡(luò)穩(wěn)定性而建立的鏈路。每條表項(xiàng)可表示為一個(gè)三元組<neighbour,build—reason,lifetime>。其中,neighbour是鄰居節(jié)點(diǎn)的ID;build—reason是對(duì)于建立原因的說明;lifetime表示鄰居信息有效時(shí)間;重要性信息表(IF一info—table)記錄節(jié)點(diǎn)兩跳鄰居范圍內(nèi)的所有節(jié)點(diǎn)的IF信息,每條表項(xiàng)表示為一個(gè)四元組<neighbour,hop,IF,lifetime>。其中neighbour是鄰居節(jié)點(diǎn)的ID;h叩是該鄰居離節(jié)點(diǎn)本身的跳數(shù),可以取l或者2;IF是該鄰居目前的IF值;lifetime表示鄰居信息有效時(shí)間。節(jié)點(diǎn)與鄰居定期交換所擁有的信息并完成重要性的計(jì)算。節(jié)點(diǎn)重要性值的計(jì)算要求按輪進(jìn)行迭代,但P2P網(wǎng)絡(luò)規(guī)模較大實(shí)現(xiàn)同步比較困難,為降低對(duì)同步的需求,協(xié)議實(shí)現(xiàn)中只假設(shè)節(jié)點(diǎn)的時(shí)鐘推進(jìn)速度一致,節(jié)點(diǎn)只保證按照相同的時(shí)間間隔通告、調(diào)整節(jié)點(diǎn)重要性值。重要性值反映該節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)的影響力,可用于選擇超級(jí)節(jié)點(diǎn),指導(dǎo)資源搜索過程,以下將進(jìn)一步描述。2、根據(jù)重要性確定超級(jí)節(jié)點(diǎn)在本發(fā)明所設(shè)計(jì)的方法中,節(jié)點(diǎn)分為兩種類型葉子節(jié)點(diǎn)和超級(jí)節(jié)點(diǎn)。為此給節(jié)點(diǎn)添加類型屬性。對(duì)于一個(gè)節(jié)點(diǎn)來說,它不僅擁有物理鄰居,還有邏輯鄰居,所以需要給節(jié)點(diǎn)添加一個(gè)邏輯鄰居表,為了方便管理超級(jí)節(jié)點(diǎn),每個(gè)超級(jí)節(jié)點(diǎn)還需要維護(hù)超級(jí)節(jié)點(diǎn)之間的鄰居表,這個(gè)鄰居表只有超級(jí)節(jié)點(diǎn)才有。此外還需增加一些相應(yīng)的獲得這些屬性的操作,如獲得邏輯鄰居表的操作、獲得節(jié)點(diǎn)類型的操作等。根據(jù)重要性取出一定數(shù)目超級(jí)節(jié)點(diǎn),在此僅根據(jù)每個(gè)節(jié)點(diǎn)的重要性來進(jìn)行超級(jí)節(jié)點(diǎn)的選取,實(shí)際系統(tǒng)中還考慮節(jié)點(diǎn)在網(wǎng)絡(luò)中持續(xù)時(shí)間等因素。假定以STANDER一IMPACT為選取超級(jí)節(jié)點(diǎn)的閾值,節(jié)點(diǎn)重要性大于閾值的節(jié)點(diǎn)則被選為超級(jí)節(jié)點(diǎn)。閾值的選定會(huì)影響到產(chǎn)生出的超級(jí)節(jié)點(diǎn)數(shù)目。若所得到的超級(jí)節(jié)點(diǎn)數(shù)與期望值有一定偏差,則可以調(diào)整閾值繼續(xù)計(jì)算。若得到的值小于期望值,則可以適當(dāng)減小閾值,反之則對(duì)STADNER一IMPACT不斷增大,直到所得的超級(jí)節(jié)點(diǎn)小于或者等于期望值。最終選取合適的STANDER一IMPACT值作為選取超級(jí)節(jié)點(diǎn)的標(biāo)準(zhǔn)。由于節(jié)點(diǎn)負(fù)載能力有限且系統(tǒng)負(fù)載動(dòng)態(tài)變化,所以節(jié)點(diǎn)容易超載,造成網(wǎng)絡(luò)割裂,資源利用率降低。為了緩解超級(jí)節(jié)點(diǎn)的負(fù)載情況,本發(fā)明增添少量鄰接關(guān)系,在系統(tǒng)總開銷變化較小的前提下,減少負(fù)載變化對(duì)超級(jí)節(jié)點(diǎn)的壓力。應(yīng)用節(jié)點(diǎn)對(duì)于自身影響因子的估計(jì)值,實(shí)現(xiàn)維持網(wǎng)絡(luò)穩(wěn)定的調(diào)整的局部化算法是完全可行的,調(diào)整的目標(biāo)是盡可能減小鄰居節(jié)點(diǎn)之間影響因子的差值。假設(shè)待調(diào)整網(wǎng)絡(luò)的局部拓?fù)淙鐖D3所示圖中,節(jié)點(diǎn)u為超級(jí)節(jié)點(diǎn),節(jié)點(diǎn)v、w為u的邏輯鄰居節(jié)點(diǎn),考慮在v、w之間建立鏈路時(shí),IF(u),IF(v),IF(w)的l次迭代時(shí)的變化情況,當(dāng)節(jié)點(diǎn)v、w之間建立鏈路后,v、w的鏈路總權(quán)值上升,相應(yīng)的鏈路uw、uv在節(jié)點(diǎn)v、w的所有鏈路中所占的比值下降,因此IF(u)值降低,而IF(v)與IF(w)的和沒有變化,由于W(v,w)=W(w,v),在u、w各自的鏈路總權(quán)值相等的情況下,IF值較大的節(jié)點(diǎn)的IF值會(huì)稍微降低,而IF較小的則會(huì)有所增加,但總的說來,其值將升高??梢?,通過增加節(jié)點(diǎn)v、w之間的鏈路,所涉及的3個(gè)節(jié)點(diǎn)的IF值趨于平均,網(wǎng)絡(luò)整體將趨于穩(wěn)定。增加鏈路報(bào)文格式如圖4所示其中,字段的解釋如下-PacketLength:整個(gè)數(shù)據(jù)包的長度;PacketSequenceNumber:數(shù)據(jù)包的序號(hào);SourceNodeID:源節(jié)點(diǎn)的節(jié)點(diǎn)ID;ValidateTime:從此報(bào)文中得到的信息有效時(shí)間,超過時(shí)限沒有更新的話應(yīng)被刪除;MessageType:標(biāo)識(shí)消息類型,根據(jù)不同類型的消息有不同的取值,分別表示不同的通告報(bào)文;MessageSize:報(bào)文中所包含信息單元的個(gè)數(shù),不同消息有不同含義;Linkenda:表示增加鏈路的一端節(jié)點(diǎn)v;Linkendb:表示增加鏈路的一端節(jié)點(diǎn)w。節(jié)點(diǎn)接收到此報(bào)文后,在自己的邏輯鄰居列表中增添相應(yīng)的鄰居節(jié)點(diǎn)信息。3、資源搜索過程超級(jí)節(jié)點(diǎn)選取出來后,還要構(gòu)造簇,即確定每個(gè)超級(jí)節(jié)點(diǎn)所管轄的葉節(jié)點(diǎn)范圍。關(guān)于如何確定超級(jí)節(jié)點(diǎn)所管轄的葉節(jié)點(diǎn)可以有不同方法,在此僅為每個(gè)超級(jí)節(jié)點(diǎn)隨機(jī)地指派平均數(shù)目的葉節(jié)點(diǎn)。構(gòu)建了簇之后還要構(gòu)建超級(jí)節(jié)點(diǎn)之間的拓?fù)潢P(guān)系。這些產(chǎn)生拓?fù)鋱D的方法都是對(duì)網(wǎng)絡(luò)的節(jié)點(diǎn)的鄰居表項(xiàng)中增添鄰居節(jié)點(diǎn)的相關(guān)信息得到。網(wǎng)絡(luò)構(gòu)建好之后,還要對(duì)消息的傳播處理方式做相應(yīng)改動(dòng)。不再采用Gnutella中消息在所有的節(jié)點(diǎn)之間進(jìn)行泛洪的方式,本發(fā)明采用的方法是消息僅在超級(jí)節(jié)點(diǎn)之間進(jìn)行泛洪,以簇為單位進(jìn)行消息的査找處理。而本發(fā)明不將消息傳給所有和它相鄰的節(jié)點(diǎn),而是首先要在消息的發(fā)起節(jié)點(diǎn)所在的簇進(jìn)行本地查找,若消息的發(fā)起節(jié)點(diǎn)是葉節(jié)點(diǎn),那還需要找到管理該葉節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn),然后再由管理該簇的超級(jí)節(jié)點(diǎn)將消息發(fā)送給所有和該超級(jí)節(jié)點(diǎn)相鄰的其他超級(jí)節(jié)點(diǎn)??梢愿鶕?jù)本節(jié)點(diǎn)所保存的超級(jí)節(jié)點(diǎn)的重要性值劃分為不同的超級(jí)節(jié)點(diǎn)等級(jí),如向大于一定值VAL_1的超級(jí)節(jié)點(diǎn)轉(zhuǎn)發(fā)TTL值為ri査詢報(bào)文的査詢報(bào)文,而向重要性值介于VAL—1和VAL_2之間的超級(jí)節(jié)點(diǎn)轉(zhuǎn)發(fā)查詢報(bào)文TTL值為n-1的查詢報(bào)文。VAL_1、VAL—2等值可以根據(jù)資源的查詢效率來自動(dòng)調(diào)整?;诋?dāng)前Gnutella網(wǎng)絡(luò)統(tǒng)計(jì)特性的分析,重點(diǎn)分析了影響搜索性能的因素超級(jí)結(jié)點(diǎn)。分析結(jié)果表明上述指標(biāo)對(duì)于設(shè)計(jì)一個(gè)新的搜索策略非常重要,它們構(gòu)成了判斷節(jié)點(diǎn)是否轉(zhuǎn)發(fā)搜索請(qǐng)求的重要指標(biāo)。在據(jù)此判斷指標(biāo)所提出的新型搜索機(jī)制中,每個(gè)節(jié)點(diǎn)就可以在選擇鄰居轉(zhuǎn)發(fā)搜索請(qǐng)求時(shí)更加有目的性,搜索成功率會(huì)更高。與基于洪泛策略和基于隨機(jī)行走策略的傳統(tǒng)搜索機(jī)制相比較,此搜索策略在保持高搜索成功率的前提下能夠大大減少消息通信量,從而減少系統(tǒng)開銷,提高系統(tǒng)效率。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。權(quán)利要求1.一種引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,其特征在于包括以下步驟1)計(jì)算網(wǎng)絡(luò)中各節(jié)點(diǎn)的重要性;2)根據(jù)重要性確定超級(jí)節(jié)點(diǎn);3)進(jìn)行資源搜索過程。2.如權(quán)利要求1所述的引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,其特征在于-所述步驟l)進(jìn)一步包括以下子步驟-1.l)將對(duì)等網(wǎng)絡(luò)中的節(jié)點(diǎn)抽象為圖中的節(jié)點(diǎn),在可直接通信的節(jié)點(diǎn)之間建立邊;1.2)計(jì)算每條邊的權(quán)重和每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù);1.3)采用分布式迭代的算法計(jì)算各節(jié)點(diǎn)的重要性值。3.如權(quán)利要求2所述的引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,其特征在于-在步驟1.2)中按如下規(guī)定計(jì)算每條邊的權(quán)重兩個(gè)普通節(jié)點(diǎn)之間的邊的權(quán)重為1,超級(jí)節(jié)點(diǎn)與普通節(jié)點(diǎn)或超級(jí)節(jié)點(diǎn)之間的邊的權(quán)重為2。4.如權(quán)利要求3所述的引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,其特征在于-所述步驟1.3)進(jìn)一步包括以下子步驟1.3.1)為每個(gè)節(jié)點(diǎn)A設(shè)置初始重要性值1;1.3.2)采用以下迭代公式開始迭代,節(jié)點(diǎn)根據(jù)各自鄰居的重要性重新計(jì)算自己的重要性值:IFn(A)=(1-d)+d(td(Ti)--')-)其中,W(A,Ti)為節(jié)點(diǎn)A到節(jié)點(diǎn)Ti的權(quán)重,Tl,T2,...,Tn為將A視為鄰居的所有節(jié)點(diǎn),d為阻尼因子,Degree(Ti)是節(jié)點(diǎn)Ti的鄰居節(jié)點(diǎn)的數(shù)目,SuperDegree(Ti)是節(jié)點(diǎn)Ti的鄰居節(jié)點(diǎn)中超級(jí)節(jié)點(diǎn)的數(shù)目;1.3.3)對(duì)網(wǎng)絡(luò)拓?fù)涑掷m(xù)變化的網(wǎng)絡(luò),返回上一步驟繼續(xù)迭代;1.3.4)對(duì)于靜態(tài)網(wǎng)絡(luò),根據(jù)重要性值是否趨于穩(wěn)定判斷是否終止計(jì)算,而對(duì)于動(dòng)態(tài)網(wǎng)絡(luò),可以設(shè)定一個(gè)時(shí)間周期,在一個(gè)周期內(nèi)重要性值是否趨于穩(wěn)定判斷是否終止本周期的計(jì)算,直到進(jìn)入下一個(gè)時(shí)間周期再基于本次的值繼續(xù)做迭代運(yùn)算。5.如權(quán)利要求4所述的引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,其特征在于在所述步驟1.3.4)中,當(dāng)兩次迭代的結(jié)果之差比較小時(shí),則認(rèn)為網(wǎng)絡(luò)已趨于穩(wěn)定。6.如權(quán)利要求1所述的引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,其特征在于所述步驟2)進(jìn)一步包括以下子步驟2.l)給定網(wǎng)絡(luò)中超級(jí)節(jié)點(diǎn)數(shù)量的期望值和選取超級(jí)節(jié)點(diǎn)的閾值,將節(jié)點(diǎn)重要性大于閾值的節(jié)點(diǎn)選為超級(jí)節(jié)點(diǎn);2.2)若所得的超級(jí)節(jié)點(diǎn)的數(shù)量與期望值有偏差,則調(diào)整閾值后重新選取超級(jí)節(jié)點(diǎn)。7.如權(quán)利要求1所述的引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,其特征在于-所述步驟3)進(jìn)一步包括以下子步驟3.1)構(gòu)造簇,即確定每個(gè)超級(jí)節(jié)點(diǎn)所管轄的葉節(jié)點(diǎn)范圍;3.2)構(gòu)建超級(jí)節(jié)點(diǎn)之間拓?fù)潢P(guān)系。8.如權(quán)利要求1或7所述的引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,其特征在于-在所述步驟3)中,査詢消息僅在超級(jí)節(jié)點(diǎn)之間進(jìn)行泛洪,即,不將消息傳給所有和它相鄰的節(jié)點(diǎn),而是首先要在消息的發(fā)起節(jié)點(diǎn)所在的簇進(jìn)行本地核査,若消息的發(fā)起節(jié)點(diǎn)是葉節(jié)點(diǎn),則還需要找到管理該葉節(jié)點(diǎn)的超級(jí)節(jié)點(diǎn),然后再由管理該簇的超級(jí)節(jié)點(diǎn)將消息發(fā)送給所有和該超級(jí)節(jié)點(diǎn)相鄰的其他超級(jí)節(jié)點(diǎn)。9.如權(quán)利要求8所述的引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,其特征在于-將超級(jí)節(jié)點(diǎn)依據(jù)其重要性值劃分為不同的等級(jí),且根據(jù)超級(jí)節(jié)點(diǎn)不同的重要性值賦予不同級(jí)別的TTL值。全文摘要本發(fā)明涉及引入節(jié)點(diǎn)重要性的對(duì)等網(wǎng)絡(luò)中超級(jí)節(jié)點(diǎn)選擇和資源搜索方法,屬于對(duì)等網(wǎng)絡(luò)
技術(shù)領(lǐng)域:
。它通過計(jì)算節(jié)點(diǎn)重要性來識(shí)別維持通信、保證服務(wù)性能的高效節(jié)點(diǎn)。其步驟如下1)計(jì)算網(wǎng)絡(luò)中各節(jié)點(diǎn)的重要性;2)根據(jù)重要性確定超級(jí)節(jié)點(diǎn);3)進(jìn)行資源搜索過程。本發(fā)明所采用的分布式迭代的節(jié)點(diǎn)重要性計(jì)算方法是局部化的算法,具有靈活高效、不存在單點(diǎn)故障問題、能夠快速適應(yīng)對(duì)等網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)渥兓奶攸c(diǎn),其效果明顯優(yōu)于傳統(tǒng)的根據(jù)節(jié)點(diǎn)鄰居數(shù)選擇網(wǎng)絡(luò)超級(jí)節(jié)點(diǎn)的方法。文檔編號(hào)H04L12/24GK101145976SQ200710176639公開日2008年3月19日申請(qǐng)日期2007年10月31日優(yōu)先權(quán)日2007年10月31日發(fā)明者威吳,忠周,剛羅,蔡軍霞,趙沁平申請(qǐng)人:北京航空航天大學(xué)