專利名稱::一種p2p系統(tǒng)中的合作節(jié)點(diǎn)選擇方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,更具體地,本發(fā)明涉及一種P2P系統(tǒng)中的合作節(jié)點(diǎn)選擇方法。
背景技術(shù):
:近年來,隨著互聯(lián)網(wǎng)的迅猛發(fā)展和普及,對等網(wǎng)絡(luò)(Peer-to-Peer,簡稱P2P)技術(shù)迅速成為計(jì)算機(jī)界關(guān)注的熱門話題,財(cái)富雜志更將P2P列為影響Internet未來的四項(xiàng)科技之一。與傳統(tǒng)的分布式系統(tǒng)相比,P2P技術(shù)具有無可比擬的優(yōu)勢。在P2P系統(tǒng)中,每個(gè)節(jié)點(diǎn)的地位都是對等的,既是資源獲取者,也是資源提供者。通過充分利用用戶節(jié)點(diǎn)提供的資源,P2P技術(shù)在可擴(kuò)展性、容錯(cuò)性、資源利用率等方面都具有巨大的優(yōu)勢。同時(shí),P2P技術(shù)也具有廣闊的應(yīng)用前景,資源共享、分布式計(jì)算、協(xié)同工作、即時(shí)通信等多個(gè)領(lǐng)域的P2P應(yīng)用層出不窮。在P2P系統(tǒng)中,所有節(jié)點(diǎn)以某種方法組織起來,共同構(gòu)建了基于應(yīng)用層的覆蓋網(wǎng)。在應(yīng)用層覆蓋網(wǎng)中,每個(gè)節(jié)點(diǎn)都擁有眾多的鄰居節(jié)點(diǎn),節(jié)點(diǎn)按照某種方法從中選擇合作節(jié)點(diǎn),并向這些節(jié)點(diǎn)請求所需要的數(shù)據(jù)?,F(xiàn)有技術(shù)中一種常見的方法是隨機(jī)選取,但是,在P2P系統(tǒng)中,節(jié)點(diǎn)間存在高度異構(gòu)性,在存儲能力、計(jì)算能力和服務(wù)能力等方面都存在很大的差異。而合作節(jié)點(diǎn)的隨機(jī)選取方法幾乎不考慮節(jié)點(diǎn)的異構(gòu)性,因此無法到達(dá)較好的性能。
發(fā)明內(nèi)容為克服現(xiàn)有P2P系統(tǒng)中合作節(jié)點(diǎn)選取方法的種種缺陷,本發(fā)明提供一種基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法。在該方法中,節(jié)點(diǎn)將根據(jù)自身的服務(wù)能力選擇合作節(jié)點(diǎn),從而對自身在系統(tǒng)中的位置進(jìn)行自適應(yīng)調(diào)整,并最終形成層狀分發(fā)結(jié)構(gòu)節(jié)點(diǎn)按照服務(wù)能力分屬于不同的層次,且服務(wù)能力越高,離數(shù)據(jù)服務(wù)器就越近。數(shù)據(jù)沿著層狀結(jié)構(gòu),從數(shù)據(jù)服務(wù)器逐級傳送至系統(tǒng)中的各個(gè)節(jié)點(diǎn)。該方法能夠?qū)?shù)據(jù)盡快地分發(fā)到系統(tǒng)中的所有節(jié)點(diǎn),從而降低系統(tǒng)傳輸延遲,并加強(qiáng)節(jié)點(diǎn)的協(xié)作性。為實(shí)現(xiàn)上述目的,本發(fā)明提出的p2p系統(tǒng)中的合作節(jié)點(diǎn)選擇方法包括以下步驟:1)服務(wù)能力分級將節(jié)點(diǎn)的服務(wù)能力按照一定的度量參數(shù)分成多個(gè)級別,級別越高則服務(wù)能力越強(qiáng),并指定數(shù)據(jù)服務(wù)器具有最高級別的服務(wù)能力。2)當(dāng)節(jié)點(diǎn)a加入系統(tǒng)后,周期性地監(jiān)測自身的服務(wù)能力,并評估服務(wù)能力的級別,假設(shè)自身的服務(wù)能力為;3)當(dāng)節(jié)點(diǎn)a的緩沖區(qū)填充度超過預(yù)先設(shè)定的閾值(例如,50%90%范圍內(nèi)的任意值。)后,周期性地檢查是否存在服務(wù)能力低于的合作節(jié)點(diǎn),如果存在,則將其設(shè)為節(jié)點(diǎn)a,然后繼續(xù)執(zhí)行步驟4);否則,方法結(jié)束;4)節(jié)點(diǎn)a査看鄰居節(jié)點(diǎn)中是否存在服務(wù)能力為&或高于的節(jié)點(diǎn),如果存在,則將其設(shè)為節(jié)點(diǎn);v并詢問其當(dāng)前富余的服務(wù)能力,然后繼續(xù)執(zhí)行步驟5);否則,方法結(jié)束;5)如果節(jié)點(diǎn)a擁有足夠的富余服務(wù)能力,轉(zhuǎn)而執(zhí)行步驟7);否則,繼續(xù)執(zhí)行步驟6);6)節(jié)點(diǎn)a查看請求節(jié)點(diǎn)中是否存在服務(wù)能力低于的節(jié)點(diǎn),如果存在,設(shè)其為/,向其發(fā)送"重定向"命令,將其請求重定向至節(jié)點(diǎn)a,即節(jié)點(diǎn)^替代了節(jié)點(diǎn)a為節(jié)點(diǎn)p提供服務(wù),并繼續(xù)執(zhí)行步驟7);否則,方法結(jié)束;7)節(jié)點(diǎn)^將a替代a成為合作節(jié)點(diǎn);8)依次重復(fù)步驟3)步驟7),直至節(jié)點(diǎn)a的合作節(jié)點(diǎn)的服務(wù)能力均不低于^。本發(fā)明的p2p系統(tǒng)中基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法的優(yōu)點(diǎn)在于通過本發(fā)明的應(yīng)用,能夠按照節(jié)點(diǎn)的服務(wù)能力對其在系統(tǒng)中的位置進(jìn)行自適應(yīng)調(diào)整,并最終形成層狀分發(fā)結(jié)構(gòu)。在該結(jié)構(gòu)中,節(jié)點(diǎn)按照服務(wù)能力分屬于不同的層次,且服務(wù)能力越高,離數(shù)據(jù)服務(wù)器就越近。數(shù)據(jù)沿著層狀結(jié)構(gòu),從數(shù)據(jù)服務(wù)器逐級傳送,使得數(shù)據(jù)能夠盡快分發(fā)到系統(tǒng)中的所有節(jié)點(diǎn),從而降低系統(tǒng)傳輸延遲,并加強(qiáng)節(jié)點(diǎn)的協(xié)作性。圖1為本發(fā)明的采用基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法的p2p系統(tǒng)的架構(gòu)示意圖。圖2是本發(fā)明的p2p系統(tǒng)中基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法的流程圖。圖3為本發(fā)明的采用基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法的p2p系統(tǒng)的一具體應(yīng)用場景示意圖。具體實(shí)施例方式下面,參照附圖對本發(fā)明提出的P2P系統(tǒng)中基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法進(jìn)行詳細(xì)說明。圖1為采用基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法的P2P系統(tǒng)的架構(gòu)。如圖1所示,在系統(tǒng)中,部署一數(shù)據(jù)服務(wù)器,所有節(jié)點(diǎn)則形成層狀結(jié)構(gòu)。數(shù)據(jù)沿著層狀結(jié)構(gòu),從數(shù)據(jù)服務(wù)器逐級傳送至系統(tǒng)中的各個(gè)節(jié)點(diǎn)。圖中實(shí)線箭頭表示系統(tǒng)中的數(shù)據(jù)流。圖2是本發(fā)明的P2P系統(tǒng)中基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法的流程圖。如圖2所示,本發(fā)明的P2P系統(tǒng)中基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法,包括如下步驟1)服務(wù)能力分級將節(jié)點(diǎn)的服務(wù)能力按照一定的度量參數(shù)分成多個(gè)級別,級別越高則服務(wù)能力越強(qiáng),并指定數(shù)據(jù)服務(wù)器具有最高級別的服務(wù)能力。在該系統(tǒng)中,可以以上行帶寬或傳輸延遲以及丟包率等作為服務(wù)能力的度量參數(shù)。例如,以上行帶寬作為服務(wù)能力的度量參數(shù),將節(jié)點(diǎn)的服務(wù)能力分成13個(gè)級別,其對應(yīng)關(guān)系如下表所示上行帶寬w服務(wù)能力級別125to/w<mS50鄉(xiāng)s250to/w<"75鄉(xiāng)s375鄉(xiāng)j<"100%w4100%w<"125%w67<table>tableseeoriginaldocumentpage6</column></row><table>并且,指定數(shù)據(jù)服務(wù)器的服務(wù)能力為13級。2)當(dāng)節(jié)點(diǎn)A加入系統(tǒng)后,周期性地監(jiān)測自身的服務(wù)能力,并評估服務(wù)能力的級別,假設(shè)自身的服務(wù)能力為。3)當(dāng)節(jié)點(diǎn)A的緩沖區(qū)填充度超過預(yù)先設(shè)定的閾值(例如取50%90%間的任意值)后,周期性地檢査是否存在服務(wù)能力低于、的合作節(jié)點(diǎn),如果存在,則將其設(shè)為節(jié)點(diǎn)A,然后繼續(xù)執(zhí)行步驟4);否則,方法結(jié)束。4)節(jié)點(diǎn)A査看鄰居節(jié)點(diǎn)中是否存在服務(wù)能力為、或高于的節(jié)點(diǎn),如果存在,則將其設(shè)為節(jié)點(diǎn)/V并詢問其當(dāng)前富余的服務(wù)能力,然后繼續(xù)執(zhí)行步驟5);否則,方法結(jié)束。5)如果節(jié)點(diǎn)A擁有足夠的富余服務(wù)能力,轉(zhuǎn)而執(zhí)行步驟7);否則,繼續(xù)執(zhí)行步驟6)。6)節(jié)點(diǎn)凡查看請求節(jié)點(diǎn)中是否存在服務(wù)能力低于&的節(jié)點(diǎn),如果存在,設(shè)其為p,向其發(fā)送"重定向"命令,將其請求重定向至節(jié)點(diǎn)/7,,即節(jié)點(diǎn)A替代了節(jié)點(diǎn)凡為節(jié)點(diǎn)p提供服務(wù),并執(zhí)行步驟7);否則,方法結(jié)束。7)節(jié)點(diǎn)A將凡替代A成為合作節(jié)點(diǎn)。8)依次重復(fù)上述步驟3)步驟7),直至節(jié)點(diǎn)A的合作節(jié)點(diǎn)的服務(wù)能力均不低實(shí)施例下面通過一個(gè)具體例子,對本發(fā)明提供的P2P系統(tǒng)中基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法的步驟流程作進(jìn)一步闡述。圖3是本發(fā)明的采用基于服務(wù)能力的合作節(jié)點(diǎn)選擇方法的P2P系統(tǒng)的一具體應(yīng)用場景示意圖。如圖3所示,例如,本發(fā)明提供的方法的一個(gè)具體應(yīng)用場景如下在本場景中具有下列設(shè)備數(shù)據(jù)服務(wù)器以及節(jié)點(diǎn)18。其中,節(jié)點(diǎn)18的服務(wù)能力級別分別為12,12,11,11,11,10,10,10。假設(shè)此時(shí)節(jié)點(diǎn)9剛加入系統(tǒng),下面描述節(jié)點(diǎn)9基于服務(wù)能力選擇合作節(jié)點(diǎn)的過程步驟-(1)節(jié)點(diǎn)9剛加入系統(tǒng),隨機(jī)選擇了節(jié)點(diǎn)2、5、7、8作為自身鄰居節(jié)點(diǎn),并從中選擇節(jié)點(diǎn)5與節(jié)點(diǎn)8作為合作節(jié)點(diǎn),以請求所需要的數(shù)據(jù);(2)節(jié)點(diǎn)9周期性地監(jiān)測自身的服務(wù)能力,發(fā)現(xiàn)上行帶寬為800kbps,因此評估自身的服務(wù)能力級別為ll級;(3)當(dāng)節(jié)點(diǎn)9的緩沖區(qū)填充度達(dá)到90%后,則查看自己的合作節(jié)點(diǎn)中是否存在服務(wù)能力低于U級的節(jié)點(diǎn),因此找到節(jié)點(diǎn)8;(4)節(jié)點(diǎn)9查看鄰居節(jié)點(diǎn)中是否存在服務(wù)能力為11級高于11級的節(jié)點(diǎn),結(jié)果發(fā)現(xiàn)節(jié)點(diǎn)2與節(jié)點(diǎn)5滿足需求,從中選取節(jié)點(diǎn)2,并詢問節(jié)點(diǎn)2的富余服務(wù)能力;(5)節(jié)點(diǎn)2具有足夠的富余服務(wù)能力,故節(jié)點(diǎn)9直接將節(jié)點(diǎn)2替代節(jié)點(diǎn)8成為合作節(jié)點(diǎn)。綜上所述,在P2P系統(tǒng)中基于服務(wù)能力選擇合作節(jié)點(diǎn),能夠根據(jù)節(jié)點(diǎn)的服務(wù)能力對其在系統(tǒng)中的位置進(jìn)行自適應(yīng)調(diào)整,使得數(shù)據(jù)能夠盡快分發(fā)到系統(tǒng)中的所有節(jié)點(diǎn),從而降低系統(tǒng)傳輸延遲,并加強(qiáng)節(jié)點(diǎn)的協(xié)作性。最后應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,并且在應(yīng)用上可以延伸到其他的修改、變化、應(yīng)用和實(shí)施例,同時(shí)認(rèn)為所有這樣的修改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精祌和范圍內(nèi)。權(quán)利要求1、一種P2P系統(tǒng)中的合作節(jié)點(diǎn)選擇方法,其特征在于,基于服務(wù)能力選擇合作節(jié)點(diǎn),從而對自身在系統(tǒng)中的位置進(jìn)行自適應(yīng)調(diào)整,具體包括以下步驟1)服務(wù)能力分級將節(jié)點(diǎn)的服務(wù)能力按照一定的度量參數(shù)分成多個(gè)級別,級別越高則服務(wù)能力越強(qiáng),并指定數(shù)據(jù)服務(wù)器具有最高級別的服務(wù)能力;2)當(dāng)節(jié)點(diǎn)pr加入系統(tǒng)后,周期性地監(jiān)測自身的服務(wù)能力,并評估服務(wù)能力的級別,假設(shè)自身的服務(wù)能力為sr;3)當(dāng)節(jié)點(diǎn)pr的緩沖區(qū)填充度超過預(yù)先設(shè)定的閾值后,周期性地檢查是否存在服務(wù)能力低于sr的合作節(jié)點(diǎn),如果存在,則將其設(shè)為節(jié)點(diǎn)pl,然后繼續(xù)執(zhí)行步驟4),否則,方法結(jié)束;4)節(jié)點(diǎn)pr查看鄰居節(jié)點(diǎn)中是否存在服務(wù)能力為sr或高于sr的節(jié)點(diǎn),如果存在,則將其設(shè)為節(jié)點(diǎn)ps,并詢問其當(dāng)前富余的服務(wù)能力,然后繼續(xù)執(zhí)行步驟5),否則,方法結(jié)束;5)如果節(jié)點(diǎn)ps擁有足夠的富余服務(wù)能力,轉(zhuǎn)而執(zhí)行步驟7),否則,繼續(xù)執(zhí)行步驟6);6)節(jié)點(diǎn)ps查看請求節(jié)點(diǎn)中是否存在服務(wù)能力低于sr的節(jié)點(diǎn),如果存在,設(shè)其為p,向其發(fā)送重定向命令,將其請求重定向至節(jié)點(diǎn)pr,節(jié)點(diǎn)pr替代節(jié)點(diǎn)ps為節(jié)點(diǎn)p提供服務(wù),并繼續(xù)執(zhí)行步驟7),否則,方法結(jié)束;7)節(jié)點(diǎn)pr將ps替代pl成為合作節(jié)點(diǎn);8)依次重復(fù)步驟3)~步驟7),直至節(jié)點(diǎn)pr的合作節(jié)點(diǎn)的服務(wù)能力均不低于sr。2、如權(quán)利要求1所述的P2P系統(tǒng)中的合作節(jié)點(diǎn)選擇方法,其特征在于,所述步驟l)中,服務(wù)能力的度量參數(shù)選取上行帶寬、傳輸延遲或者丟包率。3、如權(quán)利要求1所述的P2P系統(tǒng)中的合作節(jié)點(diǎn)選擇方法,其特征在于,所述步驟3)中,節(jié)點(diǎn)A的緩沖區(qū)填充度的閾值根據(jù)系統(tǒng)要求確定,為50%90%范圍內(nèi)的任意值。全文摘要本發(fā)明提供一種P2P系統(tǒng)中的合作節(jié)點(diǎn)選擇方法。在該方法中,節(jié)點(diǎn)將根據(jù)自身的服務(wù)能力選擇合作節(jié)點(diǎn),從而對自身在系統(tǒng)中的位置進(jìn)行自適應(yīng)調(diào)整,并最終形成層狀分發(fā)結(jié)構(gòu)首先,節(jié)點(diǎn)周期性地監(jiān)測自身的服務(wù)能力,并評估服務(wù)能力的級別;接著節(jié)點(diǎn)根據(jù)自身的服務(wù)能力選擇合作節(jié)點(diǎn),從而對自身在系統(tǒng)中的位置進(jìn)行自適應(yīng)調(diào)整,數(shù)據(jù)沿著層狀結(jié)構(gòu),從數(shù)據(jù)服務(wù)器逐級傳送至系統(tǒng)中的各個(gè)節(jié)點(diǎn)。該方法能夠?qū)?shù)據(jù)盡快地分發(fā)到系統(tǒng)中的所有節(jié)點(diǎn),從而降低系統(tǒng)傳輸延遲,并加強(qiáng)節(jié)點(diǎn)的協(xié)作性。文檔編號H04L29/08GK101645924SQ200910083558公開日2010年2月10日申請日期2009年5月8日優(yōu)先權(quán)日2009年5月8日發(fā)明者浩任,馮偵探,李曉林,王勁林,杭蘇,蘇少煒,趙永勝,魯逸峰申請人:中國科學(xué)院聲學(xué)研究所