專利名稱:一種p2p系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法。
背景技術(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)用層出不窮。
在各個(gè)領(lǐng)域的P2P應(yīng)用中,都存在大量的數(shù)據(jù),并且,依照測量與計(jì)算結(jié)果, 不同數(shù)據(jù)的受歡迎程度是不一樣的,而是成zipf分布。熱門的數(shù)據(jù)具有巨大的需求 量,而冷門的數(shù)據(jù)卻幾乎無人問津。但是,在P2P系統(tǒng)中,各個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)帶寬之 間存在異構(gòu)性,按照受歡迎程度例如將受歡迎程度高的數(shù)據(jù)稱為熱門數(shù)據(jù),將受歡 迎程度低的數(shù)據(jù)稱為冷門數(shù)據(jù)等。其中,熱門數(shù)據(jù)的擁有者的服務(wù)能力有限,很難 承受如此大的數(shù)據(jù)需求,這嚴(yán)重影響了系統(tǒng)的可用性,甚至可能導(dǎo)致系統(tǒng)崩潰。而 另一方面,冷門數(shù)據(jù)的擁有者具有一定的服務(wù)能力,卻幾乎得不到利用,這使得其 富余的服務(wù)能力浪費(fèi)嚴(yán)重。
發(fā)明內(nèi)容
為了解決上述現(xiàn)有P2P系統(tǒng)中由于數(shù)據(jù)的受歡迎程度不同而導(dǎo)致的服務(wù)能力不 均衡、節(jié)點(diǎn)資源浪費(fèi)嚴(yán)重的問題,本發(fā)明的目的在于提供一種P2P系統(tǒng)中的節(jié)點(diǎn)間 協(xié)作方法。將系統(tǒng)中的多個(gè)節(jié)點(diǎn)聯(lián)系在一起,充分利用節(jié)點(diǎn)富余的服務(wù)能力,以滿 足熱門數(shù)據(jù)的數(shù)據(jù)需求,從而實(shí)現(xiàn)多個(gè)節(jié)點(diǎn)的負(fù)載均衡,提高整個(gè)系統(tǒng)的可用性與 健壯性。
為了實(shí)現(xiàn)上述目的,本發(fā)明的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法,包括以下步驟-1)節(jié)點(diǎn)判斷是否需要其它節(jié)點(diǎn)的協(xié)作節(jié)點(diǎn)周期性地監(jiān)測自己所擁有數(shù)據(jù)的需求情況,以及自身的服務(wù)狀態(tài),以此來 判斷是否需要請求其它節(jié)點(diǎn)的協(xié)作;
2) 節(jié)點(diǎn)判斷是否擁有足夠的富余服務(wù)能力來幫助其它節(jié)點(diǎn)
每個(gè)節(jié)點(diǎn)保存了過去一段時(shí)間內(nèi)向其它節(jié)點(diǎn)提供服務(wù)的歷史記錄,并以此來預(yù) 測當(dāng)前的服務(wù)能力,同時(shí),節(jié)點(diǎn)周期性地監(jiān)視自身的服務(wù)狀態(tài),以確定是否具有富 余的服務(wù)能力,只有當(dāng)節(jié)點(diǎn)富余的服務(wù)能力超過預(yù)先設(shè)定的閾值,才允許其進(jìn)行節(jié) 點(diǎn)間協(xié)作;
3) 尋找能夠參與協(xié)作的節(jié)點(diǎn)
當(dāng)某個(gè)節(jié)點(diǎn)在所述步驟l)中確認(rèn)需要其它節(jié)點(diǎn)的協(xié)作后,則向系統(tǒng)中的其它節(jié) 點(diǎn)發(fā)送請求,尋找能夠參與協(xié)作的其它節(jié)點(diǎn),其它節(jié)點(diǎn)在接收到協(xié)作請求后,如果 在所述步驟2)的判定中判斷出其不具有富余的服務(wù)能力或者富余的服務(wù)能力低于預(yù) 先設(shè)定的閾值,則忽略該請求,否則,當(dāng)判斷出其富余的服務(wù)能力超過預(yù)先設(shè)定的 閾值時(shí),就會接受請求參與節(jié)點(diǎn)間協(xié)作,主動從熱門數(shù)據(jù)的擁有節(jié)點(diǎn)獲取數(shù)據(jù),并 滿足其它節(jié)點(diǎn)對熱門數(shù)據(jù)的需求。
另外,所述步驟3)中,當(dāng)所述節(jié)點(diǎn)確認(rèn)需要其它節(jié)點(diǎn)的協(xié)作后,以諸如洪泛、 隨機(jī)漫步或者流言(Gossip)等方式向系統(tǒng)中的其它節(jié)點(diǎn)發(fā)送請求,尋找能夠參與協(xié) 作的節(jié)點(diǎn)。所述各節(jié)點(diǎn)在參與節(jié)點(diǎn)間協(xié)作時(shí),按照間隔請求、隨機(jī)請求或者稀有優(yōu) 先等數(shù)據(jù)調(diào)度策略從熱門文件的擁有節(jié)點(diǎn)獲取數(shù)據(jù),并滿足其它節(jié)點(diǎn)對熱門文件的 需求。
利用本發(fā)明的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法,將系統(tǒng)中的多個(gè)節(jié)點(diǎn)聯(lián)系在一起, 充分利用節(jié)點(diǎn)富余的服務(wù)能力,來滿足熱門數(shù)據(jù)的數(shù)據(jù)需求,從而有效提高了節(jié)點(diǎn) 的帶寬利用率,加強(qiáng)了節(jié)點(diǎn)間的協(xié)作性,并實(shí)現(xiàn)多個(gè)節(jié)點(diǎn)的負(fù)載均衡,提高整個(gè)系 統(tǒng)的可用性與健壯性。
圖1是支持節(jié)點(diǎn)間協(xié)作的P2P文件共享系統(tǒng)的構(gòu)成示意圖。 圖2是本發(fā)明的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法的節(jié)點(diǎn)操作流程圖。 圖3是利用本發(fā)明的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法的P2P文件共享系統(tǒng)中進(jìn)行 節(jié)點(diǎn)間協(xié)作的一具體實(shí)施例。
具體實(shí)施例方式
下面,參照附圖并結(jié)合具體實(shí)施方式
對本發(fā)明的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法 進(jìn)行詳細(xì)說明。
圖1是支持節(jié)點(diǎn)間協(xié)作的P2P文件共享系統(tǒng)的結(jié)構(gòu)示意圖。如圖1所示,系統(tǒng) 中包含了大量的用戶節(jié)點(diǎn),每個(gè)用戶節(jié)點(diǎn)擁有一些文件,并通過運(yùn)行于終端(計(jì)算 機(jī),機(jī)頂盒,手機(jī)等)的客戶端軟件加入系統(tǒng),以共享這些文件。其中,每個(gè)文件 的受歡迎程度是不一樣的,熱門文件具有巨大的需求量,冷門文件卻幾乎無人問津。 圖中實(shí)線箭頭表示系統(tǒng)中的數(shù)據(jù)流。
圖2是本發(fā)明的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法的節(jié)點(diǎn)操作流程圖。如圖2所示, 本發(fā)明的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法,包括以下步驟
1) 節(jié)點(diǎn)判斷是否需要其它節(jié)點(diǎn)的協(xié)作
當(dāng)用戶節(jié)點(diǎn)加入系統(tǒng)后,每個(gè)節(jié)點(diǎn)保存了過去一段時(shí)間內(nèi)向其它節(jié)點(diǎn)提供服務(wù) 的歷史記錄,并以此來預(yù)測當(dāng)前的服務(wù)能力。同時(shí),節(jié)點(diǎn)周期性地監(jiān)視自身的服務(wù) 狀態(tài),以確定是否具有富余的服務(wù)能力,只有當(dāng)節(jié)點(diǎn)富余的服務(wù)能力超過預(yù)先設(shè)定 的閾值,才允許其進(jìn)行節(jié)點(diǎn)間協(xié)作。
同時(shí),節(jié)點(diǎn)周期性地監(jiān)測自己所擁有文件的需求情況,即每個(gè)文件的被請求次 數(shù)與請求量,并且査看自身的服務(wù)能力,如果服務(wù)能力無法滿足這些需求量,則判 斷得知需要請求其它節(jié)點(diǎn)的協(xié)作。
當(dāng)節(jié)點(diǎn)確認(rèn)需要其它節(jié)點(diǎn)的協(xié)作后,以諸如洪泛、隨機(jī)漫步或者流言(Gossip) 的方式向系統(tǒng)中的其它節(jié)點(diǎn)發(fā)送請求,尋找能夠參與協(xié)作的節(jié)點(diǎn)。
2) 節(jié)點(diǎn)判斷是否擁有足夠的富余服務(wù)能力來幫助其它節(jié)點(diǎn)
每個(gè)節(jié)點(diǎn)保存了過去一段時(shí)間內(nèi)向其它節(jié)點(diǎn)提供服務(wù)的歷史記錄,并以此來預(yù) 測當(dāng)前的服務(wù)能力,同時(shí),節(jié)點(diǎn)周期性地監(jiān)視自身的服務(wù)狀態(tài),以確定是否具有富 余的服務(wù)能力,只有當(dāng)節(jié)點(diǎn)富余的服務(wù)能力超過預(yù)先設(shè)定的閾值,才允許其進(jìn)行節(jié)
點(diǎn)間協(xié)作;
3) 尋找能夠參與協(xié)作的節(jié)點(diǎn)
當(dāng)某個(gè)節(jié)點(diǎn)在所述步驟l)中確認(rèn)需要其它節(jié)點(diǎn)的協(xié)作后,則向系統(tǒng)中的其它節(jié) 點(diǎn)發(fā)送請求,尋找能夠參與協(xié)作的其它節(jié)點(diǎn)。其它節(jié)點(diǎn)在接收到協(xié)作請求后,如果
在所述步驟2)的判定中判斷出其不具有富余的服務(wù)能力或者富余的服務(wù)能力低于預(yù)
先設(shè)定的閾值,則忽略該請求,否則,當(dāng)判斷出其富余的服務(wù)能力超過預(yù)先設(shè)定的 閾值時(shí),就會接受請求參與節(jié)點(diǎn)間協(xié)作,按照某種數(shù)據(jù)調(diào)度策略(例如間隔請求、隨機(jī)策略、稀有優(yōu)先策略等)主動從熱門數(shù)據(jù)的擁有節(jié)點(diǎn)獲取數(shù)據(jù),并滿足其它節(jié) 點(diǎn)對熱門數(shù)據(jù)的需求。
下面通過一個(gè)具體實(shí)施例,對本發(fā)明提供的節(jié)點(diǎn)間協(xié)作方法應(yīng)用于P2P文件共
享系統(tǒng)的步驟流程作進(jìn)一步闡述。
圖3是利用本發(fā)明的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法的P2P文件共享系統(tǒng)中進(jìn)行 節(jié)點(diǎn)間協(xié)作的一個(gè)具體實(shí)施例。如圖3所示,本發(fā)明提供的方法的一個(gè)具體應(yīng)用場 景在本場景中具有8個(gè)用戶節(jié)點(diǎn),分別為節(jié)點(diǎn)1 8。其中,節(jié)點(diǎn)1和2擁有熱門 文件f,而節(jié)點(diǎn)6、 7、 8需要文件f。此時(shí),節(jié)點(diǎn)8正從節(jié)點(diǎn)1獲取文件f的數(shù)據(jù), 節(jié)點(diǎn)7從節(jié)點(diǎn)1和2獲取文件f的數(shù)據(jù)。
假設(shè)此時(shí)用戶節(jié)點(diǎn)6啟動客戶端軟件,并且希望獲取文件f。則用戶節(jié)點(diǎn)6加入、 接收數(shù)據(jù)以及進(jìn)行節(jié)點(diǎn)間協(xié)作的過程步驟如下
(1) 用戶節(jié)點(diǎn)6加入系統(tǒng),選擇向節(jié)點(diǎn)2請求文件f;
(2) 節(jié)點(diǎn)2周期性地監(jiān)測文件f的需求情況,發(fā)現(xiàn)自身的服務(wù)能力己無法滿足 文件f的需求,于是判斷得知需要請求其它節(jié)點(diǎn)的協(xié)作;
(3) 節(jié)點(diǎn)2采用洪泛的方式向系統(tǒng)中的其它節(jié)點(diǎn)發(fā)送協(xié)作請求;
(4) 系統(tǒng)中的每個(gè)節(jié)點(diǎn)保存了向其它節(jié)點(diǎn)提供服務(wù)的歷史記錄,并以此來預(yù)測 各節(jié)點(diǎn)當(dāng)前的服務(wù)能力。同時(shí),還周期性地監(jiān)視自身的服務(wù)狀態(tài),以確定是否具有 足夠的富余的服務(wù)能力以進(jìn)行頻道間協(xié)作;
(5) 收到協(xié)作請求后,如果系統(tǒng)中沒有足夠富余服務(wù)能力的節(jié)點(diǎn),則忽略該請
求;
(6) 收到協(xié)作請求后,如果系統(tǒng)中具有足夠富余服務(wù)能力的節(jié)點(diǎn),則節(jié)點(diǎn)3、4、 5按照間隔請求的數(shù)據(jù)調(diào)度策略從節(jié)點(diǎn)2獲取文件f的內(nèi)容,并且發(fā)送給節(jié)點(diǎn)6, 7, 以滿足節(jié)點(diǎn)6、 7對文件f的需求。
綜上所述,在P2P系統(tǒng)中進(jìn)行節(jié)點(diǎn)間協(xié)作,能夠更加充分地利用用戶節(jié)點(diǎn)的資 源,實(shí)現(xiàn)多個(gè)節(jié)點(diǎn)的負(fù)載均衡,從而提高整個(gè)系統(tǒng)的可用性與健壯性。
最后應(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)間協(xié)作方法,其特征在于,包括以下步驟1)節(jié)點(diǎn)判斷是否需要其它節(jié)點(diǎn)的協(xié)作節(jié)點(diǎn)周期性地監(jiān)測自己所擁有數(shù)據(jù)的需求情況,以及自身的服務(wù)狀態(tài),以此來判斷是否需要請求其它節(jié)點(diǎn)的協(xié)作;2)節(jié)點(diǎn)判斷是否擁有足夠的富余服務(wù)能力來幫助其它節(jié)點(diǎn)每個(gè)節(jié)點(diǎn)保存了過去一段時(shí)間內(nèi)向其它節(jié)點(diǎn)提供服務(wù)的歷史記錄,并以此來預(yù)測當(dāng)前的服務(wù)能力,同時(shí),節(jié)點(diǎn)周期性地監(jiān)視自身的服務(wù)狀態(tài),以確定是否具有富余的服務(wù)能力,只有當(dāng)節(jié)點(diǎn)富余的服務(wù)能力超過預(yù)先設(shè)定的閾值,才允許其進(jìn)行節(jié)點(diǎn)間協(xié)作;3)尋找能夠參與協(xié)作的節(jié)點(diǎn)當(dāng)某個(gè)節(jié)點(diǎn)在所述步驟1)中確認(rèn)需要其它節(jié)點(diǎn)的協(xié)作后,則向系統(tǒng)中的其它節(jié)點(diǎn)發(fā)送請求,尋找能夠參與協(xié)作的其它節(jié)點(diǎn),其它節(jié)點(diǎn)在接收到協(xié)作請求后,如果在所述步驟2)的判定中判斷出其不具有富余的服務(wù)能力或者富余的服務(wù)能力低于預(yù)先設(shè)定的閾值,則忽略該請求,否則,當(dāng)判斷出其富余的服務(wù)能力超過預(yù)先設(shè)定的閾值時(shí),就會接受請求參與節(jié)點(diǎn)間協(xié)作,主動從熱門數(shù)據(jù)的擁有節(jié)點(diǎn)獲取數(shù)據(jù),并滿足其它節(jié)點(diǎn)對熱門數(shù)據(jù)的需求。
2、 如權(quán)利要求1所述的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法,其特征在于,所述步驟 3)中,當(dāng)所述節(jié)點(diǎn)確認(rèn)需要其它節(jié)點(diǎn)的協(xié)作后,以洪泛、隨機(jī)漫步或者流言的方式 向系統(tǒng)中的其它節(jié)點(diǎn)發(fā)送請求,尋找能夠參與協(xié)作的節(jié)點(diǎn)。
3、 如權(quán)利要求1或2所述的P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法,其特征在于,所述 各節(jié)點(diǎn)在參與節(jié)點(diǎn)間協(xié)作時(shí),按照間隔請求、隨機(jī)請求或者稀有優(yōu)先的數(shù)據(jù)調(diào)度策 略從熱門文件的擁有節(jié)點(diǎn)獲取數(shù)據(jù),并滿足其它節(jié)點(diǎn)對熱門文件的需求。
全文摘要
本發(fā)明提供一種P2P系統(tǒng)中的節(jié)點(diǎn)間協(xié)作方法,包括1)節(jié)點(diǎn)周期性監(jiān)測自己的數(shù)據(jù)需求情況以及服務(wù)狀態(tài),判斷是否需要請求其它節(jié)點(diǎn)的協(xié)作;2)每個(gè)節(jié)點(diǎn)根據(jù)保存的歷史記錄來預(yù)測當(dāng)前的服務(wù)能力,同時(shí)周期性監(jiān)視自身的服務(wù)狀態(tài),確定是否具有富余的服務(wù)能力;3)當(dāng)節(jié)點(diǎn)確認(rèn)需要其它節(jié)點(diǎn)的協(xié)作后,發(fā)送請求,尋找能夠參與協(xié)作的節(jié)點(diǎn),其它節(jié)點(diǎn)收到協(xié)作請求后,如果不具有富余的服務(wù)能力或者富余的服務(wù)能力低于預(yù)先設(shè)定的閾值則忽略該請求,否則參與節(jié)點(diǎn)間協(xié)作,從熱門數(shù)據(jù)的擁有節(jié)點(diǎn)獲取數(shù)據(jù),滿足其它節(jié)點(diǎn)對熱門數(shù)據(jù)的需求。該方法充分利用節(jié)點(diǎn)富余的服務(wù)能力來滿足熱門數(shù)據(jù)的數(shù)據(jù)需求,實(shí)現(xiàn)多個(gè)節(jié)點(diǎn)的負(fù)載均衡,提高整個(gè)系統(tǒng)的可用性與健壯性。
文檔編號H04L29/08GK101645918SQ200910080398
公開日2010年2月10日 申請日期2009年3月20日 優(yōu)先權(quán)日2009年3月20日
發(fā)明者浩 任, 馮偵探, 王勁林, 杭 蘇, 蘇少煒, 趙永勝, 魯逸峰 申請人:中國科學(xué)院聲學(xué)研究所