国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      分布式哈希表路由表更新方法及節(jié)點(diǎn)的制作方法

      文檔序號(hào):7989980閱讀:357來源:國(guó)知局
      專利名稱:分布式哈希表路由表更新方法及節(jié)點(diǎn)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及分布式哈希表(DHT,Distributed Hash Table)技術(shù),尤其涉及一種基于DHT技術(shù)的分布式哈希表路由表更新方法及節(jié)點(diǎn)。
      背景技術(shù)
      分布式哈希表(DHT,Distributed Hash Table)技術(shù)是一種廣泛應(yīng)用于對(duì)等(P2P,Peer to Peer)網(wǎng)絡(luò)中的分布式資源查找技術(shù)。DHT疊加網(wǎng)是各節(jié)點(diǎn)按照一定的拓?fù)浣Y(jié)構(gòu)組成的位于IP網(wǎng)絡(luò)之上的疊加網(wǎng),其負(fù)責(zé)一部分資源的存儲(chǔ)和消息的路由等。DHT在文件交換、分布式計(jì)算、服務(wù)共享等方面已經(jīng)充分顯示出了其強(qiáng)大的技術(shù)優(yōu)勢(shì)。在DHT疊加網(wǎng)中,各節(jié)點(diǎn)以及資源的關(guān)鍵字均具有唯一的標(biāo)識(shí),其中節(jié)點(diǎn)標(biāo)識(shí)是對(duì)節(jié)點(diǎn)地址的映射,資源關(guān)鍵字標(biāo)識(shí)是對(duì)該資源關(guān)鍵字的映射。當(dāng)標(biāo)識(shí)長(zhǎng)度為m比特時(shí),標(biāo)識(shí)的取值范圍為
      。由這些標(biāo)識(shí)組成的空間可視為一個(gè)首尾相連的DHT環(huán)。常見的DHT算法有Chord、Pastry、Kademlia等,這些算法規(guī)定了 DHT環(huán)中各節(jié)點(diǎn)負(fù)責(zé)區(qū)間的劃分方法,以及P2P消息的路由方法等。以Chord算法為例,各疊加網(wǎng)節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)關(guān)鍵字標(biāo)識(shí)位于本節(jié)點(diǎn)標(biāo)識(shí)與前趨節(jié)點(diǎn)標(biāo)識(shí)之間的資源,發(fā)送P2P消息的路由跳數(shù)一般為0(logN),其中N為疊加網(wǎng)中節(jié)點(diǎn)的數(shù)目。隨著P2P技術(shù)的示范效應(yīng),DHT技術(shù)也被引入到其它技術(shù)體制中,以用于構(gòu)建高性能、可擴(kuò)展的分布式數(shù)據(jù)庫(kù)系統(tǒng)等,如亞馬遜的Dynamo系統(tǒng)等。在這些分布式數(shù)據(jù)庫(kù)系統(tǒng)中,節(jié)點(diǎn)(對(duì)等體)在計(jì)算、存儲(chǔ)等方面的性能均較好,且各節(jié)點(diǎn)的加入和退出嚴(yán)格受控,疊加網(wǎng)調(diào)整不頻繁。但這些系統(tǒng)對(duì)發(fā)送P2P消息的路由效率要求較高,要求P2P消息在固定的跳數(shù)到達(dá)目的節(jié)點(diǎn)。故該類系統(tǒng)適宜采用單跳DHT算法,即各節(jié)點(diǎn)均保存完整路由表,掌握疊加網(wǎng)所有節(jié)點(diǎn)負(fù)責(zé)區(qū)間的情況,發(fā)送的P2P消息只需一跳即可到達(dá)目的節(jié)點(diǎn)。然而,若采用單跳DHT,在疊加網(wǎng)節(jié)點(diǎn)多時(shí),則路由表較大。在異構(gòu)網(wǎng)絡(luò)環(huán)境下,單跳DHT還可以進(jìn)一步結(jié)合分割標(biāo)識(shí)、虛擬節(jié)點(diǎn)等負(fù)載均衡方法,即各節(jié)點(diǎn)負(fù)責(zé)與自身能力相符的分割或虛擬節(jié)點(diǎn)數(shù)目,以承擔(dān)合適的負(fù)載。這樣,各節(jié)點(diǎn)路由表中除存儲(chǔ)物理節(jié)點(diǎn)信息外,還需存儲(chǔ)分割標(biāo)識(shí)或虛擬節(jié)點(diǎn)與物理節(jié)點(diǎn)間的映射關(guān)系,路由表更為龐大。采用單跳DHT,要求疊加網(wǎng)中各節(jié)點(diǎn)存儲(chǔ)的路由表與疊加網(wǎng)實(shí)際情況保持同步或基本同步。圖1為DHT環(huán)的示意圖,如圖1所示,疊加網(wǎng)101是由各類擔(dān)負(fù)不同角色的對(duì)等體(也稱為疊加網(wǎng)節(jié)點(diǎn))組成的一張邏輯網(wǎng)絡(luò);疊加網(wǎng)中的對(duì)等疊加網(wǎng)節(jié)點(diǎn)102為疊加網(wǎng)中的基本組成部分,是能夠?yàn)橥化B加網(wǎng)中其它疊加網(wǎng)節(jié)點(diǎn)提供存儲(chǔ)和傳送服務(wù)的疊加網(wǎng)節(jié)點(diǎn)。對(duì)DHT環(huán)中的任一疊加網(wǎng)節(jié)點(diǎn),均存在一個(gè)前趨節(jié)點(diǎn)和一個(gè)后繼節(jié)點(diǎn)。圖2為節(jié)點(diǎn)加入疊加網(wǎng)的流程圖,如圖2所示,節(jié)點(diǎn)加入疊加網(wǎng)具體包括如下步驟:步驟201,加入節(jié)點(diǎn)獲取得到自身節(jié)點(diǎn)標(biāo)識(shí);加入節(jié)點(diǎn)可以通過查找自身配置信息的方式或向服務(wù)器請(qǐng)求等方式獲取自身節(jié)點(diǎn)標(biāo)識(shí);步驟202,加入節(jié)點(diǎn)向其已知的疊加網(wǎng)任一節(jié)點(diǎn)發(fā)送附著請(qǐng)求消息;步驟203,接收到附著請(qǐng)求消息的節(jié)點(diǎn)將消息轉(zhuǎn)發(fā)給加入節(jié)點(diǎn)的負(fù)責(zé)節(jié)點(diǎn);步驟204至步驟205,負(fù)責(zé)節(jié)點(diǎn)發(fā)送附著響應(yīng)消息,該附著響應(yīng)消息被轉(zhuǎn)發(fā)給加入節(jié)點(diǎn);步驟206,負(fù)責(zé)節(jié)點(diǎn)向加入節(jié)點(diǎn)發(fā)送路由更新請(qǐng)求消息,該路由更新請(qǐng)求消息中含有自身存儲(chǔ)的當(dāng)前疊加網(wǎng)完整路由表;步驟207,加入節(jié)點(diǎn)按路由更新請(qǐng)求消息初始化自身路由表,并向負(fù)責(zé)節(jié)點(diǎn)回復(fù)路由更新響應(yīng);步驟208,加入節(jié)點(diǎn)向負(fù)責(zé)節(jié)點(diǎn)發(fā)送加入疊加網(wǎng)請(qǐng)求消息;步驟209,負(fù)責(zé)節(jié)點(diǎn)向加入節(jié)點(diǎn)回復(fù)加入疊加網(wǎng)響應(yīng)消息,至此,加入節(jié)點(diǎn)和負(fù)責(zé)節(jié)點(diǎn)完成協(xié)商,確定負(fù)責(zé)節(jié)點(diǎn)向加入節(jié)點(diǎn)遷移數(shù)據(jù)的區(qū)間;步驟210,負(fù)責(zé)節(jié)點(diǎn)不斷向加入節(jié)點(diǎn)發(fā)送存儲(chǔ)數(shù)據(jù)請(qǐng)求消息,加入節(jié)點(diǎn)在完成數(shù)據(jù)存儲(chǔ)后回復(fù)響應(yīng)消息;該過程持續(xù)到數(shù)據(jù)遷移過程完成;步驟211,此時(shí)加入節(jié)點(diǎn)已完成接管遷移區(qū)間部分?jǐn)?shù)據(jù)的準(zhǔn)備,其負(fù)責(zé)節(jié)點(diǎn)向疊加網(wǎng)所有其它節(jié)點(diǎn)發(fā)送路由更新請(qǐng)求消息;該路由更新請(qǐng)求消息可采用廣播或分級(jí)廣播等形式發(fā)送;步驟212,疊加網(wǎng)各節(jié)點(diǎn)按路由更新請(qǐng)求消息更新本地存儲(chǔ)的路由表,并向負(fù)責(zé)節(jié)點(diǎn)回復(fù)路由更新響應(yīng)消息。若采用分割標(biāo)識(shí)或虛擬節(jié)點(diǎn)等負(fù)載均衡算法,新加入節(jié)點(diǎn)可能需要從多個(gè)在網(wǎng)節(jié)點(diǎn)接管負(fù)責(zé)DHT區(qū)間,故加入節(jié)點(diǎn)需與多個(gè)在網(wǎng)節(jié)點(diǎn)交互,分別執(zhí)行上述步驟208至步驟212。若兩個(gè)或多個(gè)節(jié)點(diǎn)在相近的時(shí)刻請(qǐng)求加入疊加網(wǎng),由于數(shù)據(jù)遷移時(shí)間較長(zhǎng),加入過程可存在重疊。圖3為兩個(gè)節(jié)點(diǎn)在相近時(shí)間加入疊加網(wǎng)的流程圖,如圖3所示,本示例假設(shè)疊加網(wǎng)在網(wǎng)已有節(jié)點(diǎn)僅包括節(jié)點(diǎn)A和節(jié)點(diǎn)B,且分別為新加入節(jié)點(diǎn)C和節(jié)點(diǎn)D為負(fù)責(zé)節(jié)點(diǎn)。圖3所示流程具體包括以下步驟:步驟301,加入節(jié)點(diǎn)C已完成向負(fù)責(zé)節(jié)點(diǎn)A的附著過程;步驟302,負(fù)責(zé)節(jié)點(diǎn)A向節(jié)點(diǎn)C發(fā)送路由更新請(qǐng)求消息,該路由更新請(qǐng)求消息內(nèi)包含完整路由表,路由表中包括節(jié)點(diǎn)A、B的相關(guān)信息;步驟303,節(jié)點(diǎn)C根據(jù)請(qǐng)求初始化本地路由表,并向節(jié)點(diǎn)A發(fā)送路由更新響應(yīng)消息;步驟304,節(jié)點(diǎn)C向節(jié)點(diǎn)A發(fā)送加入疊加網(wǎng)請(qǐng)求消息;步驟305,節(jié)點(diǎn)A向節(jié)點(diǎn)C發(fā)送加入疊加網(wǎng)響應(yīng)消息,至此,加入節(jié)點(diǎn)和負(fù)責(zé)節(jié)點(diǎn)完成協(xié)商,確定負(fù)責(zé)節(jié)點(diǎn)向加入節(jié)點(diǎn)遷移的數(shù)據(jù)區(qū)間;步驟306,節(jié)點(diǎn)A向節(jié)點(diǎn)C發(fā)送數(shù)據(jù),進(jìn)行數(shù)據(jù)遷移;步驟307,此時(shí)加入節(jié)點(diǎn)C已完成成為疊加網(wǎng)成員的準(zhǔn)備,負(fù)責(zé)節(jié)點(diǎn)A向疊加網(wǎng)其它所有節(jié)點(diǎn)(目前僅有節(jié)點(diǎn)B)發(fā)送路由更新請(qǐng)求消息,以通知節(jié)點(diǎn)C已加入疊加網(wǎng);步驟308,節(jié)點(diǎn)B更新本地路由表,并向節(jié)點(diǎn)A發(fā)送路由更新響應(yīng)消息;步驟309,稍晚于節(jié)點(diǎn)C,在相近的時(shí)刻,加入節(jié)點(diǎn)D已完成向負(fù)責(zé)節(jié)點(diǎn)B的附著過程;步驟310,負(fù)責(zé)節(jié)點(diǎn)B向節(jié)點(diǎn)D發(fā)送路由更新請(qǐng)求消息,該路由更新請(qǐng)求消息內(nèi)包含完整路由表,路由表中包括節(jié)點(diǎn)A、B的相關(guān)信息;步驟311,節(jié)點(diǎn)D根據(jù)路由更新請(qǐng)求消息初始化本地路由表,并向節(jié)點(diǎn)B發(fā)送路由更新響應(yīng)消息;步驟312,節(jié)點(diǎn)D向節(jié)點(diǎn)B發(fā)送加入疊加網(wǎng)請(qǐng)求消息;步驟313,節(jié)點(diǎn)B向節(jié)點(diǎn)D發(fā)送加入疊加網(wǎng)響應(yīng)消息,至此,加入節(jié)點(diǎn)和負(fù)責(zé)節(jié)點(diǎn)完成協(xié)商,確定負(fù)責(zé)節(jié)點(diǎn)向加入節(jié)點(diǎn)遷移的數(shù)據(jù)區(qū)間;步驟314,節(jié)點(diǎn)B向節(jié)點(diǎn)D發(fā)送數(shù)據(jù),進(jìn)行數(shù)據(jù)遷移;步驟315,此時(shí)加入節(jié)點(diǎn)D已完成成為疊加網(wǎng)成員的準(zhǔn)備,負(fù)責(zé)節(jié)點(diǎn)B向節(jié)點(diǎn)A發(fā)送路由更新請(qǐng)求消息,通知節(jié)點(diǎn)D已加入疊加網(wǎng);步驟316,節(jié)點(diǎn)A更新本地路由表,并向節(jié)點(diǎn)B發(fā)送路由更新響應(yīng)消息;步驟317,此前節(jié)點(diǎn)B已獲知節(jié)點(diǎn)C加入疊加網(wǎng)的信息,故負(fù)責(zé)節(jié)點(diǎn)B向節(jié)點(diǎn)C發(fā)送路由更新請(qǐng)求消息,通知節(jié)點(diǎn)D已加入疊加網(wǎng);步驟318,節(jié)點(diǎn)C更新本地路由表,并向節(jié)點(diǎn)B發(fā)送路由更新響應(yīng)消息。以上步驟完成后,新加入節(jié)點(diǎn)D因?yàn)樵谄湮闯蔀榀B加網(wǎng)成員時(shí)不會(huì)收到關(guān)于加入節(jié)點(diǎn)C的路由更新請(qǐng)求消息,其路由表與疊加網(wǎng)實(shí)際情況不同步。路由表不同步的節(jié)點(diǎn)會(huì)將P2P消息發(fā)往錯(cuò)誤的目的節(jié)點(diǎn),接收到P2P消息的節(jié)點(diǎn)查詢本地存儲(chǔ)的路由表獲取該目的地址的下一跳,并對(duì)該P(yáng)2P消息進(jìn)行轉(zhuǎn)發(fā)。這樣,P2P消息最終仍可到達(dá)正確的目的節(jié)點(diǎn),但增加了路由跳數(shù)。后續(xù),若路由表不同步的節(jié)點(diǎn)負(fù)責(zé)新節(jié)點(diǎn)的加入,其保存的路由表會(huì)被傳遞給新加入節(jié)點(diǎn)。不正確路由表會(huì)因此擴(kuò)散,導(dǎo)致疊加網(wǎng)性能不斷下降。

      發(fā)明內(nèi)容
      有鑒于此,本發(fā)明的主要目的在于提供一種分布式哈希表路由表更新方法及節(jié)點(diǎn),能消除節(jié)點(diǎn)間路由表不同步的現(xiàn)象,從而避免錯(cuò)誤的路由表擴(kuò)散,避免疊加網(wǎng)路由性能下降。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:一種分布式哈希表路由表更新方法,包括:疊加網(wǎng)中節(jié)點(diǎn)檢測(cè)到所述疊加網(wǎng)發(fā)生調(diào)整時(shí),進(jìn)行路由表更新,并將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知所述疊加網(wǎng)的其他節(jié)點(diǎn)。優(yōu)選地,將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知所述疊加網(wǎng)的其他節(jié)點(diǎn)之后,所述方法還包括:所述其他節(jié)點(diǎn)根據(jù)所述觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新,并計(jì)算本地更新后路由表的哈希值,確定所計(jì)算哈希值與所接收到的路由表哈希值不一致時(shí),與發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)之間進(jìn)行路由表交換;所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)根據(jù)所交換的路由表確定是否需要修正本地路由表,需要時(shí)進(jìn)行路由表修正。優(yōu)選地,所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)根據(jù)所交換的路由表確定是否需要修正本地路由表,需要時(shí)進(jìn)行路由表修正,為:所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)分別根據(jù)從對(duì)方獲取的路由表對(duì)比出與自身路由表之間的差異,對(duì)導(dǎo)致路由表差異的節(jié)點(diǎn)進(jìn)行探測(cè),根據(jù)探測(cè)結(jié)果在確定需要自身修正路由表時(shí),進(jìn)行本地路由表修正。優(yōu)選地,所述疊加網(wǎng)發(fā)生調(diào)整,為:新節(jié)點(diǎn)加入所述疊加網(wǎng)和/或有節(jié)點(diǎn)退出所述疊加網(wǎng)。優(yōu)選地,所述觸發(fā)路由表更新原因信息包括以下信息的至少一種:新節(jié)點(diǎn)加入所述疊加網(wǎng)、節(jié)點(diǎn)退出所述疊加網(wǎng)、節(jié)點(diǎn)負(fù)責(zé)區(qū)間變化;所述路由表哈希值為節(jié)點(diǎn)中完整的路由表哈希值或節(jié)點(diǎn)中各路由表分段的哈希值。優(yōu)選地,所述方法還包括:為路由表或路由表分段設(shè)置計(jì)數(shù)器;所述其他節(jié)點(diǎn)確定所計(jì)算哈希值與所接收到的路由表或路由表分段哈希值不一致時(shí),將所述計(jì)數(shù)器加一;確定所述計(jì)數(shù)器的計(jì)數(shù)值達(dá)到設(shè)定閾值時(shí),與所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)之間進(jìn)行路由表交換。優(yōu)選地,所述路由表哈希值為節(jié)點(diǎn)中各路由表分段的哈希值時(shí),所述方法還包括:所述其他節(jié)點(diǎn)根據(jù)所述觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新,確定更新后某路由表分段的哈希值與所接收的某路由表分段的哈希值不一致時(shí),與所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)之間僅進(jìn)行不一致的路由表分段交換。一種疊加網(wǎng)節(jié)點(diǎn),包括檢測(cè)單元、更新單元和通知單元;其中:檢測(cè)單元,用于檢測(cè)所述疊加網(wǎng)是否發(fā)生調(diào)整,發(fā)生時(shí)觸發(fā)更新單元;更新單元,用于進(jìn)行路由表更新;通知單元,用于將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知所述疊加網(wǎng)的其他節(jié)點(diǎn)。上述節(jié)點(diǎn)還包括交換單元和修正單元,其中:交換單元,用于與所述其他節(jié)點(diǎn)進(jìn)行路由表交換;修正單元,用于根據(jù)從所述其他節(jié)點(diǎn)獲取的路由表對(duì)比出與所述節(jié)點(diǎn)自身路由表之間的差異,對(duì)導(dǎo)致路由表差異的節(jié)點(diǎn)進(jìn)行探測(cè),在確定需要所述節(jié)點(diǎn)自身修正路由表時(shí),進(jìn)行本地路由表修正。其中,所述疊加網(wǎng)發(fā)生調(diào)整,為:新節(jié)點(diǎn)加入所述疊加網(wǎng)和/或有節(jié)點(diǎn)退出所述疊加網(wǎng);所述觸發(fā)路由表更新原因信息包括以下信息的至少一種:新節(jié)點(diǎn)加入所述疊加網(wǎng)、節(jié)點(diǎn)退出所述疊加網(wǎng)、節(jié)點(diǎn)負(fù)責(zé)區(qū)間變化;所述路由表哈希值為節(jié)點(diǎn)中完整的路由表哈希值或節(jié)點(diǎn)中各路由表分段的哈希值。—種疊加網(wǎng)節(jié)點(diǎn),包括接收單元、更新單元、計(jì)算單元和確定單元;其中:接收單元,用于接收其他節(jié)點(diǎn)發(fā)送的觸發(fā)路由表更新原因信息及更新后路由表哈希值;
      更新單元,用于根據(jù)所述觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新;計(jì)算單元,用于計(jì)算所述節(jié)點(diǎn)本地更新后路由表的哈希值;確定單元,用于確定所計(jì)算哈希值是否與所接收到的路由表哈希值一致。上述節(jié)點(diǎn)還包括交換單元和修正單元,其中:所述確定單元確定所計(jì)算哈希值與所接收到的路由表哈希值不一致時(shí),觸發(fā)交換單元;交換單元,用于與所述其他節(jié)點(diǎn)進(jìn)行路由表交換;修正單元,用于根據(jù)從所述其他節(jié)點(diǎn)獲取的路由表對(duì)比出與所述節(jié)點(diǎn)自身路由表之間的差異,對(duì)導(dǎo)致路由表差異的節(jié)點(diǎn)進(jìn)行探測(cè),在確定需要所述節(jié)點(diǎn)自身修正路由表時(shí),進(jìn)行本地路由表修正。其中,所述觸發(fā)路由表更新原因信息包括以下信息的至少一種:新節(jié)點(diǎn)加入所述疊加網(wǎng)、節(jié)點(diǎn)退出所述疊加網(wǎng)、節(jié)點(diǎn)負(fù)責(zé)區(qū)間變化;所述路由表哈希值為節(jié)點(diǎn)中完整的路由表哈希值或節(jié)點(diǎn)中各路由表分段的哈希值。本發(fā)明中,當(dāng)節(jié)點(diǎn)確定有新節(jié)點(diǎn)加入或有節(jié)點(diǎn)退出疊加網(wǎng)時(shí),所述節(jié)點(diǎn)進(jìn)行本地路由更新后,會(huì)將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知所述疊加網(wǎng)的其他節(jié)點(diǎn);所述其他節(jié)點(diǎn)根據(jù)所述觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新,并計(jì)算本地更新后路由表的哈希值,確定與自身所接收到的路由表哈希值不一致時(shí),所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)之間進(jìn)行路由表交換;所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)分別根據(jù)所獲取的路由表信息與本地存儲(chǔ)路由表間的差異對(duì)疊加網(wǎng)進(jìn)行探測(cè),確定需要自身修正路由表時(shí),進(jìn)行本地路由表修正。這樣,本發(fā)明的技術(shù)方案可以在有節(jié)點(diǎn)進(jìn)行路由表更新時(shí)自動(dòng)消除節(jié)點(diǎn)間路由表不同步的現(xiàn)象,從而避免了錯(cuò)誤的路由表擴(kuò)散,不會(huì)導(dǎo)致疊加網(wǎng)路由性能下降;本發(fā)明中僅采用哈希值進(jìn)行路由表的校驗(yàn),當(dāng)發(fā)現(xiàn)校驗(yàn)值不一致時(shí)節(jié)點(diǎn)之間才進(jìn)行路由表交換,消除路由表不同步現(xiàn)象的開銷較小。


      圖1為DHT環(huán)的示意圖;圖2為節(jié)點(diǎn)加入疊加網(wǎng)的流程圖;圖3為兩個(gè)節(jié)點(diǎn)在相近時(shí)間加入疊加網(wǎng)的流程圖;圖4為本發(fā)明實(shí)施例中節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的第一流程圖;圖5為本發(fā)明實(shí)施例中節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的第二流程圖;圖6為本發(fā)明實(shí)施例中節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的第三流程圖;圖7為本發(fā)明實(shí)施例中節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的第四流程圖;圖8為本發(fā)明實(shí)施例疊加網(wǎng)節(jié)點(diǎn)的一種組成結(jié)構(gòu)示意圖9為本發(fā)明實(shí)施例疊加網(wǎng)節(jié)點(diǎn)的另一種組成結(jié)構(gòu)示意圖。
      具體實(shí)施例方式本發(fā)明的基本思想為:當(dāng)節(jié)點(diǎn)確定有新節(jié)點(diǎn)加入或有節(jié)點(diǎn)退出疊加網(wǎng)時(shí),所述節(jié)點(diǎn)進(jìn)行本地路由更新后,會(huì)將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知所述疊加網(wǎng)的其他節(jié)點(diǎn);所述其他節(jié)點(diǎn)根據(jù)所述觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新,并計(jì)算本地更新后路由表的哈希值,確定與自身所接收到的路由表哈希值不一致時(shí),所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)之間進(jìn)行路由表交換;所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)分別根據(jù)所獲取的路由表信息與本地存儲(chǔ)路由表間的差異對(duì)疊加網(wǎng)進(jìn)行探測(cè),確定需要自身修正路由表時(shí),進(jìn)行本地路由表修正。為使本發(fā)明的目的,技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下舉實(shí)施例并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。圖4為本發(fā)明實(shí)施例中節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的第一流程圖。疊加網(wǎng)采用類似Chord算法的資源負(fù)責(zé)分布形式,即各節(jié)點(diǎn)負(fù)責(zé)本節(jié)點(diǎn)標(biāo)識(shí)與前趨節(jié)點(diǎn)標(biāo)識(shí)之間的哈希空間。本示例中,假設(shè)節(jié)點(diǎn)D保存的路由表信息不完整,其不知曉節(jié)點(diǎn)C的存在;節(jié)點(diǎn)D的負(fù)責(zé)節(jié)點(diǎn)為節(jié)點(diǎn)B。如圖4所示,本示例的節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的流程具體包括以下步驟:步驟401,節(jié)點(diǎn)B收到節(jié)點(diǎn)X退出疊加網(wǎng)請(qǐng)求消息,或通過連通性檢測(cè)發(fā)現(xiàn)節(jié)點(diǎn)X已失效,其需要將節(jié)點(diǎn)X已失效的信息廣播到整個(gè)疊加網(wǎng);步驟402,節(jié)點(diǎn)B向節(jié)點(diǎn)D發(fā)送路由更新請(qǐng)求消息,其中含有節(jié)點(diǎn)X離開的信息及更新后完整路由表的哈希值;步驟403,節(jié)點(diǎn)D根據(jù)請(qǐng)求更新路由表,計(jì)算更新后完整路由表的哈希值,向節(jié)點(diǎn)B發(fā)送路由表更新響應(yīng)消息,并包含上述計(jì)算所得哈希值;步驟404,節(jié)點(diǎn)B比較接收到的響應(yīng)消息中的哈希值與本地存儲(chǔ)計(jì)算值,發(fā)現(xiàn)二者不符;步驟405,節(jié)點(diǎn)B向節(jié)點(diǎn)D發(fā)送完整路由表,并請(qǐng)求節(jié)點(diǎn)D返回完整路由表;步驟406,節(jié)點(diǎn)D向節(jié)點(diǎn)B發(fā)送完整路由表;步驟407,節(jié)點(diǎn)B對(duì)比接收到的和本地存儲(chǔ)的路由表,發(fā)現(xiàn)接收到的路由表中缺少節(jié)點(diǎn)C ;步驟408,節(jié)點(diǎn)B向節(jié)點(diǎn)C發(fā)送連通性探測(cè)請(qǐng)求;步驟409,節(jié)點(diǎn)C向節(jié)點(diǎn)B發(fā)送連通性探測(cè)響應(yīng)消息,節(jié)點(diǎn)B確認(rèn)節(jié)點(diǎn)C在網(wǎng),無需修正本地路由表;步驟410,節(jié)點(diǎn)D對(duì)比接收到的路由表和本地存儲(chǔ)的路由表,發(fā)現(xiàn)接收到的路由表中多出節(jié)點(diǎn)C ;步驟411,節(jié)點(diǎn)D向節(jié)點(diǎn)C發(fā)送連通性探測(cè)請(qǐng)求消息;步驟412,節(jié)點(diǎn)C向節(jié)點(diǎn)D發(fā)送連通性探測(cè)響應(yīng)消息;步驟413,節(jié)點(diǎn)D確認(rèn)節(jié)點(diǎn)C在網(wǎng),對(duì)本地路由表進(jìn)行修正。圖5為本發(fā)明實(shí)施例中節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的第二流程圖。本示例中,疊加網(wǎng)采用基于分割的負(fù)載均衡算法、哈??臻g等分為若干分割,各節(jié)點(diǎn)負(fù)責(zé)與自身能力相符的分割數(shù)目。本示例中,假設(shè)節(jié)點(diǎn)D保存關(guān)于節(jié)點(diǎn)C的負(fù)責(zé)區(qū)間情況與當(dāng)前網(wǎng)絡(luò)情況不同步。節(jié)點(diǎn)D為節(jié)點(diǎn)Y的負(fù)責(zé)節(jié)點(diǎn),疊加網(wǎng)中還包括節(jié)點(diǎn)B。如圖5所示,本示例的節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的流程具體包括以下步驟:步驟501,節(jié)點(diǎn)D為節(jié)點(diǎn)Y加入疊加網(wǎng)的負(fù)責(zé)節(jié)點(diǎn),且向節(jié)點(diǎn)Y的數(shù)據(jù)遷移過程已完成,其需要將該負(fù)責(zé)區(qū)間變化消息廣播到整個(gè)疊加網(wǎng);步驟502,節(jié)點(diǎn)D向節(jié)點(diǎn)B發(fā)送路由更新請(qǐng)求消息,該路由更新請(qǐng)求消息中包含有節(jié)點(diǎn)Y負(fù)責(zé)區(qū)間變化的信息及更新后完整路由表的哈希值;步驟503,節(jié)點(diǎn)B根據(jù)路由更新請(qǐng)求消息更新路由表,計(jì)算更新后完整路由表的哈希值,向節(jié)點(diǎn)D發(fā)送路由表更新響應(yīng)消息,并包含上述計(jì)算所得哈希值;步驟504,節(jié)點(diǎn)D比較接收到響應(yīng)中的哈希值與本地存儲(chǔ)計(jì)算值,發(fā)現(xiàn)二者不符;步驟505,節(jié)點(diǎn)D向節(jié)點(diǎn)B發(fā)送完整路由表,并請(qǐng)求節(jié)點(diǎn)B返回完整路由表;步驟506,節(jié)點(diǎn)B向節(jié)點(diǎn)D發(fā)送完整路由表;步驟507,節(jié)點(diǎn)B對(duì)比接收到的和本地存儲(chǔ)的路由表,發(fā)現(xiàn)接收到的路由表中C負(fù)責(zé)區(qū)間與本地記錄不符;步驟508,節(jié)點(diǎn)B向節(jié)點(diǎn)C發(fā)送負(fù)責(zé)區(qū)間探測(cè)請(qǐng)求消息;步驟509,節(jié)點(diǎn)C向節(jié)點(diǎn)B發(fā)送負(fù)責(zé)區(qū)間探測(cè)響應(yīng)消息,該負(fù)責(zé)區(qū)間探測(cè)響應(yīng)消息中包含本節(jié)點(diǎn)負(fù)責(zé)區(qū)間的情況,節(jié)點(diǎn)B確認(rèn)本地存儲(chǔ)路由表關(guān)于節(jié)點(diǎn)C負(fù)責(zé)區(qū)間的記錄正確,無需修正路由表;步驟510,節(jié)點(diǎn)D對(duì)比接收到的和本地存儲(chǔ)的路由表,發(fā)現(xiàn)收到的路由表中C負(fù)責(zé)區(qū)間與本地記錄不符;步驟511,節(jié)點(diǎn)D向節(jié)點(diǎn)C發(fā)送負(fù)責(zé)區(qū)間探測(cè)請(qǐng)求消息;步驟512,節(jié)點(diǎn)C向節(jié)點(diǎn)D發(fā)送負(fù)責(zé)區(qū)間探測(cè)響應(yīng)消息,該負(fù)責(zé)區(qū)間探測(cè)響應(yīng)消息中包含本節(jié)點(diǎn)負(fù)責(zé)區(qū)間情況;步驟513,節(jié)點(diǎn)D確認(rèn)本地關(guān)于節(jié)點(diǎn)C負(fù)責(zé)區(qū)間記錄有誤,對(duì)路由表進(jìn)行修正。為加快路由表差異的發(fā)現(xiàn),減小節(jié)點(diǎn)間交換路由表的開銷,可對(duì)路由表進(jìn)行分段,在路由更新請(qǐng)求及響應(yīng)消息中附帶各分段的哈希值。路由表的分段應(yīng)按約定進(jìn)行,以保證對(duì)相同的路由表計(jì)算將得到相同的分段哈希值用于校驗(yàn)。圖6為本發(fā)明實(shí)施例中節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的第三流程圖。疊加網(wǎng)采用類似Chord算法的資源負(fù)責(zé)區(qū)間分布形式,即各節(jié)點(diǎn)負(fù)責(zé)本節(jié)點(diǎn)標(biāo)識(shí)與前趨節(jié)點(diǎn)標(biāo)識(shí)之間的哈希空間。本示例中,節(jié)點(diǎn)M所保存的路由表信息不完整,其不知曉節(jié)點(diǎn)P已離開疊加網(wǎng),疊加網(wǎng)中還包括節(jié)點(diǎn)N。如圖6所示,本示例的節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的流程具體包括以下步驟:步驟601,節(jié)點(diǎn)M遇有需廣播路由表更新的情形;步驟602,節(jié)點(diǎn)M向節(jié)點(diǎn)N發(fā)送路由表更新請(qǐng)求消息,該路由表更新請(qǐng)求消息中含有關(guān)于疊加網(wǎng)調(diào)整情況的信息及各路由表分段的哈希值;步驟603,節(jié)點(diǎn)N根據(jù)以上請(qǐng)求更新路由表,并計(jì)算更新后各路由表分段的哈希值,向節(jié)點(diǎn)M發(fā)送路由表更新響應(yīng)消息,該路由表更新響應(yīng)消息中包含上述所計(jì)算的哈希值;步驟604,節(jié)點(diǎn)M比較接收到響應(yīng)消息中的哈希值與本地存儲(chǔ)計(jì)算值,發(fā)現(xiàn)某段哈希值不符;
      步驟605,節(jié)點(diǎn)M向節(jié)點(diǎn)N發(fā)送哈希值不符部分的路由表,并請(qǐng)求節(jié)點(diǎn)N返回該段路由表;步驟606,節(jié)點(diǎn)N向節(jié)點(diǎn)M發(fā)送哈希值不符部分的路由表;步驟607,節(jié)點(diǎn)N對(duì)比接收到的和本地存儲(chǔ)的路由表,發(fā)現(xiàn)接收到的路由表中缺少節(jié)點(diǎn)P ;步驟608,節(jié)點(diǎn)N向節(jié)點(diǎn)P發(fā)送連通性探測(cè)請(qǐng)求消息;步驟609,節(jié)點(diǎn)M對(duì)比接收到的路由表和本地存儲(chǔ)的路由表,發(fā)現(xiàn)接收到的路由表中多出節(jié)點(diǎn)P ;步驟610,節(jié)點(diǎn)M向節(jié)點(diǎn)P發(fā)送連通性探測(cè)請(qǐng)求消息;步驟611,節(jié)點(diǎn)N請(qǐng)求定時(shí)器到時(shí)未接收到節(jié)點(diǎn)P的探測(cè)響應(yīng)消息,探測(cè)請(qǐng)求超時(shí),確認(rèn)節(jié)點(diǎn)P已失效,無需修正路由表;步驟612,節(jié)點(diǎn)M請(qǐng)求定時(shí)器到時(shí)未接收到節(jié)點(diǎn)P的探測(cè)響應(yīng)消息,探測(cè)請(qǐng)求超時(shí),確認(rèn)節(jié)點(diǎn)P已失效,對(duì)路由表進(jìn)行修正。為避免單點(diǎn)過載等情況,節(jié)點(diǎn)發(fā)現(xiàn)路由更新請(qǐng)求及響應(yīng)消息中所含哈希值不符后,可并不立即交換路由表,而是將相應(yīng)的計(jì)數(shù)器加1,待計(jì)數(shù)器達(dá)到設(shè)定閾值后,再與其它節(jié)點(diǎn)進(jìn)行路由表交換并進(jìn)一步處理。本示例中,疊加網(wǎng)中包括節(jié)點(diǎn)Q、節(jié)點(diǎn)M和節(jié)點(diǎn)N。圖7為本發(fā)明實(shí)施例中節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的第四流程圖,如圖7所示,本示例的節(jié)點(diǎn)進(jìn)行路由更新并進(jìn)行路由表校驗(yàn)及修正的流程具體包括以下步驟:步驟701,節(jié)點(diǎn)Q遇有需更新路由表的情形;步驟702,節(jié)點(diǎn)Q向節(jié)點(diǎn)M發(fā)送路由更新請(qǐng)求消息,并附帶路由表分段哈希值;步驟703,節(jié)點(diǎn)M按路由更新請(qǐng)求消息對(duì)路由表進(jìn)行更新,計(jì)算更新后路由表的哈希值,向節(jié)點(diǎn)Q發(fā)送路由更新響應(yīng)消息,并附帶上述計(jì)算所得哈希值;步驟704,節(jié)點(diǎn)M發(fā)現(xiàn)路由表某段哈希值與本地記錄不符,將該段計(jì)數(shù)器值加1,并將計(jì)數(shù)器結(jié)果與設(shè)定閾值比較,未達(dá)到設(shè)定閾值;疊加網(wǎng)繼續(xù)運(yùn)行一段時(shí)間;步驟705,節(jié)點(diǎn)M遇有需要更新路由表的情形;步驟706,節(jié)點(diǎn)M向節(jié)點(diǎn)N發(fā)送路由更新請(qǐng)求消息,并附帶路由表分段哈希值;步驟707,節(jié)點(diǎn)N按路由更新請(qǐng)求消息對(duì)路由表進(jìn)行更新,計(jì)算更新后路由表的哈希值,向節(jié)點(diǎn)M發(fā)送路由更新響應(yīng)消息,并附帶上述哈希值;步驟708,節(jié)點(diǎn)M發(fā)現(xiàn)路由表某段哈希值與本地記錄不符,將該段計(jì)數(shù)器值加1,并將計(jì)數(shù)器結(jié)果與設(shè)定閾值比較,未達(dá)到設(shè)定閾值;步驟709,節(jié)點(diǎn)M向節(jié)點(diǎn)P發(fā)送路由更新請(qǐng)求消息,并附帶路由表分段哈希值;步驟710,節(jié)點(diǎn)P按路由更新請(qǐng)求消息對(duì)路由表進(jìn)行更新,計(jì)算更新后路由表的哈希值,向節(jié)點(diǎn)M發(fā)送路由更新響應(yīng)消息,并附帶上述哈希值;步驟711,節(jié)點(diǎn)M發(fā)現(xiàn)路由表某段哈希值與本地記錄不符,將該段計(jì)數(shù)器值加1,并將計(jì)數(shù)器結(jié)果與設(shè)定閾值比較,未達(dá)到設(shè)定閾值;疊加網(wǎng)繼續(xù)運(yùn)行一段時(shí)間;步驟712,節(jié)點(diǎn)M在與某節(jié)點(diǎn)進(jìn)行路由更新請(qǐng)求/響應(yīng)消息交互后,某段計(jì)數(shù)器值加I后達(dá)到設(shè)定閾值。節(jié)點(diǎn)M與該節(jié)點(diǎn)交換該段路由表,對(duì)差異所在進(jìn)行探測(cè),并進(jìn)行相應(yīng)處理,重置該段計(jì)數(shù)器為O。圖8為本發(fā)明實(shí)施例疊加網(wǎng)節(jié)點(diǎn)的一種組成結(jié)構(gòu)示意圖,如圖8所示,本示例的疊加網(wǎng)節(jié)點(diǎn)包括檢測(cè)單元80、更新單元81和通知單元82 ;其中:檢測(cè)單元80,用于檢測(cè)所述疊加網(wǎng)是否發(fā)生調(diào)整,發(fā)生時(shí)觸發(fā)更新單元81 ;更新單元81,用于進(jìn)行路由表更新;通知單元82,用于將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知所述疊加網(wǎng)的其他節(jié)點(diǎn)。在圖8所示疊加網(wǎng)節(jié)點(diǎn)的基礎(chǔ)上,本示例的疊加網(wǎng)節(jié)點(diǎn)還包括交換單元(圖8中未圖示)和修正單元(圖8中未圖示),其中:交換單元,用于與所述其他節(jié)點(diǎn)進(jìn)行路由表交換;修正單元,用于根據(jù)從所述其他節(jié)點(diǎn)獲取的路由表對(duì)比出與所述節(jié)點(diǎn)自身路由表之間的差異,對(duì)導(dǎo)致路由表差異的節(jié)點(diǎn)進(jìn)行探測(cè),在確定需要所述節(jié)點(diǎn)自身修正路由表時(shí),進(jìn)行本地路由表修正。所述疊加網(wǎng)發(fā)生調(diào)整,為:新節(jié)點(diǎn)加入所述疊加網(wǎng)和/或有節(jié)點(diǎn)退出所述疊加網(wǎng);上述觸發(fā)路由表更新原因信息包括以下信息的至少一種:新節(jié)點(diǎn)加入所述疊加網(wǎng)、節(jié)點(diǎn)退出所述疊加網(wǎng)、節(jié)點(diǎn)負(fù)責(zé)區(qū)間變化。上述路由表哈希值為節(jié)點(diǎn)中完整的路由表哈希值或節(jié)點(diǎn)中各路由表分段的哈希值。圖9為本發(fā)明實(shí)施例疊加網(wǎng)節(jié)點(diǎn)的另一種組成結(jié)構(gòu)示意圖,如圖9所示,本示例的疊加網(wǎng)節(jié)點(diǎn)包括接收單元90、更新單元91、計(jì)算單元92和確定單元93 ;其中:接收單元90,用于接收其他節(jié)點(diǎn)發(fā)送的觸發(fā)路由表更新原因信息及更新后路由表哈希值;更新單元91,用于根據(jù)所述觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新;計(jì)算單元92,用于計(jì)算所述節(jié)點(diǎn)本地更新后路由表的哈希值;確定單元93,用于確定所計(jì)算哈希值是否與所接收到的路由表哈希值一致。在圖9所示疊加網(wǎng)節(jié)點(diǎn)的基礎(chǔ)上,本示例的疊加網(wǎng)節(jié)點(diǎn)還包括交換單元(圖9中未圖示)和修正單元(圖9中未圖示),其中:交換單元,用于與所述其他節(jié)點(diǎn)進(jìn)行路由表交換;修正單元,用于根據(jù)從所述其他節(jié)點(diǎn)獲取的路由表對(duì)比出與所述節(jié)點(diǎn)自身路由表之間的差異,對(duì)導(dǎo)致路由表差異的節(jié)點(diǎn)進(jìn)行探測(cè),在確定需要所述節(jié)點(diǎn)自身修正路由表時(shí),進(jìn)行本地路由表修正。所述疊加網(wǎng)發(fā)生調(diào)整,為:新節(jié)點(diǎn)加入所述疊加網(wǎng)和/或有節(jié)點(diǎn)退出所述疊加網(wǎng)。上述觸發(fā)路由表更新原因信息包括以下信息的至少一種:新節(jié)點(diǎn)加入所述疊加網(wǎng)、節(jié)點(diǎn)退出所述疊加網(wǎng)、節(jié)點(diǎn)負(fù)責(zé)區(qū)間變化。上述路由表哈希值為節(jié)點(diǎn)中完整的路由表哈希值或節(jié)點(diǎn)中各路由表分段的哈希值。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖8及圖9中所示的疊加網(wǎng)節(jié)點(diǎn)中的各處理單元的實(shí)現(xiàn)功能可參照前述圖4至圖7的分布式哈希表路由表更新方法的相關(guān)描述而理解。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖8及圖9所示的疊加網(wǎng)節(jié)點(diǎn)中各處理單元的功能可通過運(yùn)行于處理器上的程序而實(shí)現(xiàn),也可通過具體的邏輯電路而實(shí)現(xiàn)。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
      權(quán)利要求
      1.一種分布式哈希表路由表更新方法,其特征在于,所述方法包括: 疊加網(wǎng)中節(jié)點(diǎn)檢測(cè)到所述疊加網(wǎng)發(fā)生調(diào)整時(shí),進(jìn)行路由表更新,并將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知所述疊加網(wǎng)的其他節(jié)點(diǎn)。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知所述疊加網(wǎng)的其他節(jié)點(diǎn)之后,所述方法還包括: 所述其他節(jié)點(diǎn)根據(jù)所述觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新,并計(jì)算本地更新后路由表的哈希值,確定所計(jì)算哈希值與所接收到的路由表哈希值不一致時(shí),與發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)之間進(jìn)行路由表交換; 所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)根據(jù)所交換的路由表確定是否需要修正本地路由表,需要時(shí)進(jìn)行路由表修正。
      3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)根據(jù)所交換的路由表確定是否需要修正本地路由表,需要時(shí)進(jìn)行路由表修正,為: 所述其他節(jié)點(diǎn)以及所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)分別根據(jù)從對(duì)方獲取的路由表對(duì)比出與自身路由表之間的差異,對(duì)導(dǎo)致路由表差異的節(jié)點(diǎn)進(jìn)行探測(cè),根據(jù)探測(cè)結(jié)果在確定需要自身修正路由表時(shí),進(jìn)行本地路由表修正。
      4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述疊加網(wǎng)發(fā)生調(diào)整,為:新節(jié)點(diǎn)加入所述疊加網(wǎng)和/或有節(jié)點(diǎn)退出所述疊加網(wǎng)。
      5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述觸發(fā)路由表更新原因信息包括以下信息的至少一種: 新節(jié)點(diǎn)加入所述疊加網(wǎng) 、節(jié)點(diǎn)退出所述疊加網(wǎng)、節(jié)點(diǎn)負(fù)責(zé)區(qū)間變化; 所述路由表哈希值為節(jié)點(diǎn)中完整的路由表哈希值或節(jié)點(diǎn)中各路由表分段的哈希值。
      6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 為路由表或路由表分段設(shè)置計(jì)數(shù)器; 所述其他節(jié)點(diǎn)確定所計(jì)算哈希值與所接收到的路由表或路由表分段哈希值不一致時(shí),將所述計(jì)數(shù)器加一;確定所述計(jì)數(shù)器的計(jì)數(shù)值達(dá)到設(shè)定閾值時(shí),與所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)之間進(jìn)行路由表交換。
      7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述路由表哈希值為節(jié)點(diǎn)中各路由表分段的哈希值時(shí),所述方法還包括: 所述其他節(jié)點(diǎn)根據(jù)所述觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新,確定更新后某路由表分段的哈希值與所接收的某路由表分段的哈希值不一致時(shí),與所述發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)之間僅進(jìn)行不一致的路由表分段交換。
      8.一種疊加網(wǎng)節(jié)點(diǎn),其特征在于,所述節(jié)點(diǎn)包括檢測(cè)單元、更新單元和通知單元;其中: 檢測(cè)單元,用于檢測(cè)所述疊加網(wǎng)是否發(fā)生調(diào)整,發(fā)生時(shí)觸發(fā)更新單元; 更新單元,用于進(jìn)行路由表更新; 通知單元,用于將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知所述疊加網(wǎng)的其他節(jié)點(diǎn)。
      9.根據(jù)權(quán)利要求8所述的節(jié)點(diǎn),其特征在于,所述節(jié)點(diǎn)還包括交換單元和修正單元,其中: 交換單元,用于與所述其他節(jié)點(diǎn)進(jìn)行路由表交換; 修正單元,用于根據(jù)從所述其他節(jié)點(diǎn)獲取的路由表對(duì)比出與所述節(jié)點(diǎn)自身路由表之間的差異,對(duì)導(dǎo)致路由表差異的節(jié)點(diǎn)進(jìn)行探測(cè),在確定需要所述節(jié)點(diǎn)自身修正路由表時(shí),進(jìn)行本地路由表修正。
      10.根據(jù)權(quán)利要求8或9所述的節(jié)點(diǎn),其特征在于,所述疊加網(wǎng)發(fā)生調(diào)整,為:新節(jié)點(diǎn)加入所述疊加網(wǎng)和/或有節(jié)點(diǎn)退出所述疊加網(wǎng); 所述觸發(fā)路由表更新原因信息包括以下信息的至少一種: 新節(jié)點(diǎn)加入所述疊加網(wǎng)、節(jié)點(diǎn)退出所述疊加網(wǎng)、節(jié)點(diǎn)負(fù)責(zé)區(qū)間變化; 所述路由表哈希值為節(jié)點(diǎn)中完整的路由表哈希值或節(jié)點(diǎn)中各路由表分段的哈希值。
      11.一種疊加網(wǎng)節(jié)點(diǎn),其特征在于,所述節(jié)點(diǎn)包括接收單元、更新單元、計(jì)算單元和確定單元;其中: 接收單元,用于接收其他節(jié)點(diǎn)發(fā)送的觸發(fā)路由表更新原因信息及更新后路由表哈希值; 更新單元,用于根據(jù)所述觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新; 計(jì)算單元,用于計(jì)算所述節(jié)點(diǎn)本地更新后路由表的哈希值; 確定單元,用于確定 所計(jì)算哈希值是否與所接收到的路由表哈希值一致。
      12.根據(jù)權(quán)利要求11所述的節(jié)點(diǎn),其特征在于,所述節(jié)點(diǎn)還包括交換單元和修正單元,其中: 所述確定單元確定所計(jì)算哈希值與所接收到的路由表哈希值不一致時(shí),觸發(fā)交換單元; 交換單元,用于與所述其他節(jié)點(diǎn)進(jìn)行路由表交換; 修正單元,用于根據(jù)從所述其他節(jié)點(diǎn)獲取的路由表對(duì)比出與所述節(jié)點(diǎn)自身路由表之間的差異,對(duì)導(dǎo)致路由表差異的節(jié)點(diǎn)進(jìn)行探測(cè),在確定需要所述節(jié)點(diǎn)自身修正路由表時(shí),進(jìn)行本地路由表修正。
      13.根據(jù)權(quán)利要求11或12所述的節(jié)點(diǎn),其特征在于,所述觸發(fā)路由表更新原因信息包括以下信息的至少一種: 新節(jié)點(diǎn)加入所述疊加網(wǎng)、節(jié)點(diǎn)退出所述疊加網(wǎng)、節(jié)點(diǎn)負(fù)責(zé)區(qū)間變化; 所述路由表哈希值為節(jié)點(diǎn)中完整的路由表哈希值或節(jié)點(diǎn)中各路由表分段的哈希值。
      全文摘要
      本發(fā)明公開了一種分布式哈希表路由表更新方法及節(jié)點(diǎn),其中,所述方法包括疊加網(wǎng)中節(jié)點(diǎn)檢測(cè)到疊加網(wǎng)發(fā)生調(diào)整時(shí),進(jìn)行路由表更新,并將觸發(fā)路由表更新原因信息及更新后路由表哈希值通知疊加網(wǎng)的其他節(jié)點(diǎn);其他節(jié)點(diǎn)根據(jù)觸發(fā)路由表更新原因信息進(jìn)行本地路由表更新,并計(jì)算本地更新后路由表的哈希值,確定所計(jì)算哈希值與所接收到的路由表哈希值不一致時(shí),與發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)之間進(jìn)行路由表交換;其他節(jié)點(diǎn)以及發(fā)送觸發(fā)路由表更新原因信息的節(jié)點(diǎn)對(duì)比所交換的路由表間的差異,對(duì)疊加網(wǎng)差異處進(jìn)行探測(cè),在確定需要修正本地路由表時(shí),進(jìn)行路由表修正。本發(fā)明能自動(dòng)消除節(jié)點(diǎn)間路由表不同步的現(xiàn)象,從而避免了錯(cuò)誤的路由表擴(kuò)散,不會(huì)導(dǎo)致疊加網(wǎng)路由性能下降。
      文檔編號(hào)H04L12/743GK103139081SQ20111038491
      公開日2013年6月5日 申請(qǐng)日期2011年11月28日 優(yōu)先權(quán)日2011年11月28日
      發(fā)明者許欣, 陳志峰, 汪軍 申請(qǐng)人:中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1