專利名稱:一種p2p節(jié)點存活性定期探測系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是網(wǎng)絡(luò)測控技術(shù)領(lǐng)域。具體地說是一種P2P(點對點網(wǎng)絡(luò))節(jié)點存 活性定期探測系統(tǒng)及方法。
背景技術(shù):
P2P網(wǎng)絡(luò)規(guī)模逐漸擴大,節(jié)點數(shù)目越來越多,而P2P網(wǎng)絡(luò)中節(jié)點的加入和退出是不 確定的。這樣一來,為了確保節(jié)點自身路由表中節(jié)點是否存活就需要對這些節(jié)點進行探測。在Pastry (微軟及RICE大學(xué)提出的一種點對點網(wǎng)絡(luò)路由算法)以及其他很多路 由算法中,采用定期探測方法來確定路由表中結(jié)點是否存活,即每個結(jié)點每過一段時間顯 式地探測一下自身路由表中的所有結(jié)點指針,看對應(yīng)結(jié)點是否還在系統(tǒng)中,根據(jù)應(yīng)答的結(jié) 果確定結(jié)點是否存活。這也是目前最常用的定期探測方式。另外一種方式采用廣播機制,即結(jié)點本身不進行探測,維護路由表完全依靠其他 結(jié)點廣播自己的狀態(tài)。這種方式中結(jié)點自身只需要接受其他結(jié)點發(fā)來的消息即可,但廣播 的方式浪費了太多的帶寬,尤其是在眾多結(jié)點加入或退出時發(fā)出的廣播可能會造成廣播風(fēng)
恭o傳統(tǒng)方法的特征是方法簡單,易于實現(xiàn)。但缺點也很明顯,這種類似于組播的方 式浪費帶寬的情況比較明顯,特別是節(jié)點路由表表項數(shù)目較大時,需要探測的節(jié)點數(shù)很多。 此外這種方法未考慮到剛通信的節(jié)點依然存活的特點,經(jīng)常對剛剛通信過的節(jié)點發(fā)出探測 請求。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種能夠減少探測次數(shù),節(jié)省網(wǎng)絡(luò)帶寬的P2P節(jié)點存活性 定期探測系統(tǒng)。本發(fā)明的目的還在于提供一種P2P節(jié)點存活性定期探測方法。本發(fā)明的目的是這樣實現(xiàn)的本發(fā)明的P2P節(jié)點存活性定期探測系統(tǒng)包括信息收集模塊、信息處理模塊、探測 模塊和回應(yīng)模塊;信息收集模塊,收集最近一個探測周期內(nèi)節(jié)點連接信息,并初始化路由表 節(jié)點狀態(tài)屬性;信息處理模塊根據(jù)路由表節(jié)點狀態(tài)屬性確定在下一個探測周期內(nèi)哪些節(jié)點 應(yīng)該被探測,哪些該延遲探測;探測模塊,當下一探測周期到來,向已確定需要探測的節(jié)點 發(fā)出探測,并更改所有連接表內(nèi)所有節(jié)點的標志位,繼續(xù)收集返回的連接信息,更新路由表 節(jié)點狀態(tài)屬性;回應(yīng)模塊,節(jié)點在收到探測信息后相應(yīng)的進行回應(yīng),以便其他節(jié)點進行更 新。本發(fā)明的P2P節(jié)點存活性定期探測方法為(1)信息收集模塊,收集最近一個探測周期內(nèi)節(jié)點連接信息,并初始化路由表節(jié)點 狀態(tài)屬性;具體方法為路由表表項包含節(jié)點ID、節(jié)點IP和節(jié)點狀態(tài)屬性三項,P2P網(wǎng)絡(luò)中 每個節(jié)點記錄在一個探測周期內(nèi)收到的連接信息,并根據(jù)這些信息更新路由表中節(jié)點狀態(tài) 屬性一項,此項取值范圍0和1,如果在此周期內(nèi)沒有連接信息,相應(yīng)的節(jié)點表項置為0,如果在此周期內(nèi)有連接信息,相應(yīng)的節(jié)點表項置為1 ;(2)信息處理模塊,根據(jù)路由表節(jié)點狀態(tài)屬性確定在下一個探測周期內(nèi)哪些節(jié)點 應(yīng)該被探測,哪些該延遲探測,具體方法為根據(jù)路由表中節(jié)點狀態(tài)屬性的值進行探測,0 表示需要被探測,1表示不需要被探測,在其他探測完成后將1置為0 ;(3)探測模塊,當下一探測周期到來,向已確定需要探測的節(jié)點發(fā)出探測,并更改 所有連接表內(nèi)所有節(jié)點的標志位,繼續(xù)收集返回的連接信息,更新路由表節(jié)點狀態(tài)屬性,具 體方法為向表中節(jié)點狀態(tài)屬性的值為0的節(jié)點發(fā)出探測請求,并將節(jié)點狀態(tài)屬性的值為1 的項改為0 ;(4)回應(yīng)模塊,節(jié)點在收到探測信息后相應(yīng)的進行回應(yīng),以便其他節(jié)點進行更新, 具體方法為節(jié)點在收到探測信息后,根據(jù)路由信息中上一跳的地址進行回應(yīng),表明本節(jié)點 存活。本發(fā)明具有以下優(yōu)點充分考慮了 P2P網(wǎng)絡(luò)上節(jié)點之間通信的聯(lián)系,對最近一段時間內(nèi)的連接信息進行 統(tǒng)計并決定是否進行探測。減少了探測次數(shù),節(jié)省了網(wǎng)絡(luò)帶寬,并降低了其他節(jié)點的響應(yīng)探 測的負擔(dān)。
圖1本系統(tǒng)路由表表項結(jié)構(gòu);圖2探測過程中路由表的變化;圖3模擬實驗的對比數(shù)據(jù);圖4系統(tǒng)結(jié)構(gòu)圖;圖5探測方法流程圖。
具體實施例方式下面結(jié)合附圖舉例對本發(fā)明做更詳細地描述本系統(tǒng)包含四個模塊,模塊間的關(guān)系參見圖4,每個模塊的功能如下(1)信息收集模塊系統(tǒng)收集最近一個探測周期內(nèi)節(jié)點連接信息,并初始化路由 表節(jié)點狀態(tài)屬性。具體工作過程為本系統(tǒng)中的路由表表項包含節(jié)點ID、節(jié)點IP和節(jié)點狀態(tài)屬性三 項。P2P網(wǎng)絡(luò)中每個節(jié)點記錄在一個探測周期內(nèi)收到的連接信息,并根據(jù)這些信息更新路由 表中節(jié)點狀態(tài)屬性一項,此項取值范圍0和1。如果在此周期內(nèi)沒有連接信息,相應(yīng)的節(jié)點 表項置為0 ;如果在此周期內(nèi)有連接信息,相應(yīng)的節(jié)點表項置為1。(2)信息處理模塊根據(jù)路由表節(jié)點狀態(tài)屬性確定在下一個探測周期內(nèi)哪些節(jié)點 應(yīng)該被探測,哪些該延遲探測。具體工作過程為根據(jù)路由表中節(jié)點狀態(tài)屬性的值進行探測,0表示需要被探測, 1表示不需要被探測,在其他探測完成后要將1置為0。(3)探測模塊當下一探測周期到來,向已確定需要探測的節(jié)點發(fā)出探測,并更改 所有連接表內(nèi)所有節(jié)點的標志位,繼續(xù)收集返回的連接信息,更新路由表節(jié)點狀態(tài)屬性。具體工作過程為向表中節(jié)點狀態(tài)屬性的值為0的節(jié)點發(fā)出探測請求,并將節(jié)點狀態(tài)屬性的值為1的項改為0。(4)回應(yīng)模塊節(jié)點在收到探測信息后也要相應(yīng)的進行回應(yīng),表明自身的存活狀 態(tài),以便其他節(jié)點進行更新。具體工作過程為節(jié)點在收到探測信息后,根據(jù)路由信息中上一跳的地址進行回 應(yīng),表明本節(jié)點存活。圖1是該系統(tǒng)中路由表項的結(jié)構(gòu)在DHT(分布式哈希表)網(wǎng)絡(luò)中,其中節(jié)點ID和節(jié)點IP為必有項,節(jié)點狀態(tài)屬性 為本系統(tǒng)所特有,用以標識節(jié)點在下一探測周期是否需要探測,取值范圍是0和1。其中0 代表在下一探測周期到來時需要被探測,它包含上一周期內(nèi)沒有通信過的節(jié)點。1代表在下一探測周期到來時不需要被探測,他包含上一周期內(nèi)與本節(jié)點通信過 的節(jié)點圖2是按照本發(fā)明模擬的一個探測場景。(1)結(jié)點A在查詢過程中對路由表中的某個結(jié)點B發(fā)出了查詢,但是需要通過結(jié)點 C來搜索B;(2)結(jié)點B收到C發(fā)來的信息后向A發(fā)送應(yīng)答信息。C將B的結(jié)點狀態(tài)由0改為 1,表明B最近在線;(3)當結(jié)點C到下一次定期探測的時間時,結(jié)點C就對其自身路由表中結(jié)點狀態(tài)屬 性為0結(jié)點進行探測,如圖中的D和E結(jié)點,而不對B進行探測;(4)結(jié)點C的定期探測結(jié)束后,將路由表中結(jié)點B狀態(tài)屬性改為0,表示下次需要 探測此結(jié)點。為了驗證本發(fā)明在減少連接方面的有效性,我們構(gòu)造了 一個實驗網(wǎng)絡(luò)環(huán)境。實驗 環(huán)境為模擬的DHT網(wǎng)絡(luò),為了確定發(fā)明的有效性,做了 4組對比實驗。每次實驗的節(jié)點數(shù)在 3000到15000不等。每個節(jié)點都分別用傳統(tǒng)定期探測與該系統(tǒng)定期探測進行實驗各一次。 對相同節(jié)點數(shù)目的情況下,分別探測總數(shù)。根據(jù)實驗結(jié)果,可以看出該系統(tǒng)的節(jié)點定期探測方法比傳統(tǒng)的方法減小了探測的 總數(shù),節(jié)省了網(wǎng)絡(luò)帶寬,具體實驗結(jié)果參見圖3。
權(quán)利要求
一種P2P節(jié)點存活性定期探測系統(tǒng),包括信息收集模塊、信息處理模塊、探測模塊和回應(yīng)模塊;其特征是信息收集模塊,收集最近一個探測周期內(nèi)節(jié)點連接信息,并初始化路由表節(jié)點狀態(tài)屬性;信息處理模塊根據(jù)路由表節(jié)點狀態(tài)屬性確定在下一個探測周期內(nèi)哪些節(jié)點應(yīng)該被探測,哪些該延遲探測;探測模塊,當下一探測周期到來,向已確定需要探測的節(jié)點發(fā)出探測,并更改所有連接表內(nèi)所有節(jié)點的標志位,繼續(xù)收集返回的連接信息,更新路由表節(jié)點狀態(tài)屬性;回應(yīng)模塊,節(jié)點在收到探測信息后相應(yīng)的進行回應(yīng),以便其他節(jié)點進行更新。
2.—種P2P節(jié)點存活性定期探測方法,其特征是(1)信息收集模塊,收集最近一個探測周期內(nèi)節(jié)點連接信息,并初始化路由表節(jié)點狀態(tài) 屬性;具體方法為路由表表項包含節(jié)點ID、節(jié)點IP和節(jié)點狀態(tài)屬性三項,P2P網(wǎng)絡(luò)中每個 節(jié)點記錄在一個探測周期內(nèi)收到的連接信息,并根據(jù)這些信息更新路由表中節(jié)點狀態(tài)屬性 一項,此項取值范圍0和1,如果在此周期內(nèi)沒有連接信息,相應(yīng)的節(jié)點表項置為0,如果在 此周期內(nèi)有連接信息,相應(yīng)的節(jié)點表項置為1 ;(2)信息處理模塊,根據(jù)路由表節(jié)點狀態(tài)屬性確定在下一個探測周期內(nèi)哪些節(jié)點應(yīng)該 被探測,哪些該延遲探測,具體方法為根據(jù)路由表中節(jié)點狀態(tài)屬性的值進行探測,0表示 需要被探測,1表示不需要被探測,在其他探測完成后將1置為0 ;(3)探測模塊,當下一探測周期到來,向已確定需要探測的節(jié)點發(fā)出探測,并更改所有 連接表內(nèi)所有節(jié)點的標志位,繼續(xù)收集返回的連接信息,更新路由表節(jié)點狀態(tài)屬性,具體方 法為向表中節(jié)點狀態(tài)屬性的值為0的節(jié)點發(fā)出探測請求,并將節(jié)點狀態(tài)屬性的值為1的項 改為0 ;(4)回應(yīng)模塊,節(jié)點在收到探測信息后相應(yīng)的進行回應(yīng),以便其他節(jié)點進行更新,具體 方法為節(jié)點在收到探測信息后,根據(jù)路由信息中上一跳的地址進行回應(yīng),表明本節(jié)點存 活。
全文摘要
本發(fā)明提供的是一種P2P節(jié)點存活性定期探測系統(tǒng)及方法。信息收集模塊,收集最近一個探測周期內(nèi)節(jié)點連接信息,并初始化路由表節(jié)點狀態(tài)屬性;信息處理模塊根據(jù)路由表節(jié)點狀態(tài)屬性確定在下一個探測周期內(nèi)哪些節(jié)點應(yīng)該被探測,哪些該延遲探測;探測模塊,當下一探測周期到來,向已確定需要探測的節(jié)點發(fā)出探測,并更改所有連接表內(nèi)所有節(jié)點的標志位,繼續(xù)收集返回的連接信息,更新路由表節(jié)點狀態(tài)屬性;回應(yīng)模塊,節(jié)點在收到探測信息后相應(yīng)的進行回應(yīng),以便其他節(jié)點進行更新。本發(fā)明充分考慮了網(wǎng)絡(luò)上節(jié)點之間通信的聯(lián)系,對過去的連接信息進行統(tǒng)計并決定是否進行探測。減少了探測次數(shù),節(jié)省了網(wǎng)絡(luò)帶寬。
文檔編號H04L12/26GK101860529SQ20101015348
公開日2010年10月13日 申請日期2010年4月23日 優(yōu)先權(quán)日2010年4月23日
發(fā)明者楊武, 林濤, 玄世昌, 王巍, 苘大鵬 申請人:哈爾濱工程大學(xué)