專利名稱:自組織網(wǎng)絡的實現(xiàn)方法
技術領域:
本發(fā)明涉及互聯(lián)網(wǎng)技術領域,尤指一種應用于互聯(lián)網(wǎng)中的自組織網(wǎng)絡的實現(xiàn)方法。
背景技術:
Internet是一個計算機交互網(wǎng)絡,又稱網(wǎng)間網(wǎng)。它是一個全球性的巨大的計算機網(wǎng)絡體系,把全球數(shù)萬個計算機網(wǎng)絡,數(shù)千萬臺主機連接起來,包含了難以計數(shù)的信息資源,向全世界提供信息服務。自組織網(wǎng)絡技術則是NGN(下一代網(wǎng)絡)技術研究領域的一項熱點技術。在自組織網(wǎng)絡中,每個節(jié)點的活動無需人工干預,它們可以快速自動組網(wǎng),在網(wǎng)絡拓撲發(fā)生改變時能夠快速恢復和重建網(wǎng)絡,圖1是網(wǎng)絡自組織過程的時間軸示意圖,網(wǎng)絡自組織過程分為網(wǎng)絡初始化狀態(tài)、穩(wěn)定狀態(tài)以及網(wǎng)絡動態(tài)變化狀態(tài),其中網(wǎng)絡初始化狀態(tài)為網(wǎng)絡構(gòu)建和學習階段進行網(wǎng)絡初始化時的狀態(tài),穩(wěn)定狀態(tài)則為網(wǎng)絡完成初始自組織階段的狀態(tài),網(wǎng)絡動態(tài)變化狀態(tài)則為由于節(jié)點移動、節(jié)點或鏈路故障時網(wǎng)絡重組織的狀態(tài)?,F(xiàn)有自組織網(wǎng)絡一般基于無線移動網(wǎng)絡,例如MANET(Mobile Ad hoc Network,無線自組織網(wǎng)絡),由于自組織網(wǎng)絡中不具備類似于Internet的基礎設施,因此現(xiàn)有自組織網(wǎng)絡的網(wǎng)絡構(gòu)建并沒有考慮網(wǎng)絡底層結(jié)構(gòu),僅當網(wǎng)絡拓撲發(fā)生變化時啟動網(wǎng)絡重組織機制,目前尚沒有在互聯(lián)網(wǎng)中應用的成熟的自組織網(wǎng)絡技術方案。
另一方面,計算機對等互聯(lián)網(wǎng)技術也是目前國際計算機網(wǎng)絡技術領域的一個研究熱點。P2P(對等網(wǎng)絡系統(tǒng))系統(tǒng)飛速發(fā)展成為Internet中最重要的應用系統(tǒng)之一,當前P2P系統(tǒng)產(chǎn)生的網(wǎng)絡流量已經(jīng)超過HTTP訪問產(chǎn)生的網(wǎng)絡流量,成為占據(jù)Internet帶寬的首要應用。
目前應用的P2P網(wǎng)絡架構(gòu)有兩種典型的代表,基于集中式目錄結(jié)構(gòu)和基于分布式定位方法的對等網(wǎng)絡模型,它們分別以Napster和Gnutella為代表,在Napster模型中,一群高性能的中央服務器保存著網(wǎng)絡中所有活動對等機的地址信息及其共享資源的目錄信息。當需要查詢某個文件時,對等機會向一臺中央服務器發(fā)出文件查詢請求,中央服務器進行相應的檢索和查詢后,會返回符合查詢要求的對等機地址信息列表。該種模型因為依賴中央服務器而存在很多問題,其缺點主要表現(xiàn)如下中央服務器的癱瘓容易導致整個網(wǎng)絡的崩潰,可靠性和安全性較低。而且隨著網(wǎng)絡規(guī)模的擴大,對中央目錄服務器進行維護和更新的費用將急劇增加,所需成本過高。
另一種是以Gnutella模型為代表的基于分布式的對等網(wǎng)絡模型,克服了上述集中目錄結(jié)構(gòu)的對等網(wǎng)絡模型的缺點,在Gnutella模型中并沒有中央服務器,該模型中定位目標對等機或查詢共享信息,源對等機等通過與相鄰對等機之間的連接遍歷整個網(wǎng)絡體系。在搜尋數(shù)據(jù)時以擴散的方式將消息散布在網(wǎng)絡上,這會造成消息的泛濫,也使得系統(tǒng)的可擴展性無法提升。
為此,結(jié)構(gòu)化覆蓋網(wǎng)(Structured Overlay Network,SON)路由協(xié)議如CAN、Chord、Pastry和Tapestry所提出的P2P算法則為改善P2P網(wǎng)絡的可擴展性而被提出。其改進主要在于利用雜湊(Hashing)的方式,將網(wǎng)絡中的數(shù)據(jù)和節(jié)點運算成一個鍵值(Key),并按照網(wǎng)絡鍵值存放規(guī)則存放數(shù)據(jù),也即將每個數(shù)據(jù)鍵值存放于哈西命名空間(Hash環(huán))上沿順時針方向第一個節(jié)點鍵值大于該數(shù)據(jù)鍵值的節(jié)點上,通過維護這種鍵值與節(jié)點的關系就可以有效完成數(shù)據(jù)的查找和維護,并通過將查詢消息路由到目標數(shù)據(jù)鍵值存放的節(jié)點來完成對網(wǎng)絡中數(shù)據(jù)資源的查找和定位。但由于這些P2P計算模式并沒有考慮互聯(lián)網(wǎng)網(wǎng)絡的實際拓撲結(jié)構(gòu),因而即使是實際拓撲結(jié)構(gòu)中鄰近的兩個節(jié)點卻有可能因為雜湊的結(jié)果,必須經(jīng)過很長的搜尋路徑才能取得數(shù)據(jù),以Chord為例,網(wǎng)絡統(tǒng)計調(diào)查結(jié)果表明,該系統(tǒng)通過Hash算法進行節(jié)點IP地址到節(jié)點Id號(Identifier)的映射,導致了在Hash環(huán)中非常鄰近的兩個節(jié)點卻有可能在實際網(wǎng)絡拓撲中相距很遠;而在實際網(wǎng)絡中相距很遠的節(jié)點經(jīng)過Hash算法映射卻可能成為Hash環(huán)中非常鄰近的兩點。上述問題大大降低了P2P計算模式在實際網(wǎng)絡應用中的查詢效率和性能,例如導致物理距離非常鄰近的兩點,可能需要在Internet中繞一大圈才能夠彼此到達對方。
發(fā)明內(nèi)容
本發(fā)明解決的技術問題是提供一種路由性能好、數(shù)據(jù)查詢效率高的自組織網(wǎng)絡的實現(xiàn)方法,以進一步改進現(xiàn)有自組織網(wǎng)絡的性能。
為解決上述問題,本發(fā)明的自組織網(wǎng)絡的實現(xiàn)方法,主要包括如下步驟a、根據(jù)網(wǎng)絡物理拓撲結(jié)構(gòu)將網(wǎng)絡劃分成不同層次的自組織網(wǎng)絡組群;b、確定對應所述不同層次自組織網(wǎng)絡組群的相應聚集級數(shù)的聚集體,其中每一個聚集體對應一個邏輯命名空間的哈西環(huán)路;c、當網(wǎng)絡節(jié)點動態(tài)加入或退出自組織網(wǎng)絡時動態(tài)調(diào)整相應的哈西環(huán)路結(jié)構(gòu)以實現(xiàn)網(wǎng)絡重組織。
其中,步驟a具體包括根據(jù)網(wǎng)絡實際規(guī)模大小和物理拓撲結(jié)構(gòu)確定自組織網(wǎng)絡組群層數(shù);將物理距離較近的網(wǎng)絡節(jié)點劃分為同一個自組織網(wǎng)絡組群,并根據(jù)該網(wǎng)絡節(jié)點加入自組織網(wǎng)絡的先后順序以及物理位置確定該自組織網(wǎng)絡組群的分級代理;將相同層次的分級代理及其組群成員劃分為上一層組群的成員節(jié)點并確定相應層次的分級代理,若劃分到自組織網(wǎng)絡頂層組群并確定了相應頂層組群的分級代理則劃分結(jié)束,否則繼續(xù)劃分。
其中,步驟b具體包括b1、將每個分級代理及其組群成員確定為一個聚集體;b2、生成對應各聚集體的邏輯命名空間的哈西環(huán)路。
其中,步驟b2具體包括采用哈西算法將自組織網(wǎng)絡中各個網(wǎng)絡節(jié)點的標志映射成一個長度為M位的二進制序列NID,并將其唯一分配給該網(wǎng)絡節(jié)點,同樣對自組織網(wǎng)絡中需要存儲數(shù)據(jù)的標識進行哈西運算,將其映射成一個長度為M位的二進制序列KID;按照各個聚集體組成的網(wǎng)絡節(jié)點的NID生成相應的哈西環(huán)路。
其中,步驟c具體包括
c1、將對應各個聚集體的哈西環(huán)路設置為相應的全環(huán)域;c2、將所述全環(huán)域劃分為對應聚集體中各個網(wǎng)絡節(jié)點的私有環(huán)域;c3、根據(jù)聚集體的聚集級數(shù)以及各網(wǎng)絡節(jié)點的私有環(huán)域設置對應各個網(wǎng)絡節(jié)點的分級路由表;c4、當有網(wǎng)絡節(jié)點加入或退出自組織網(wǎng)絡時動態(tài)調(diào)整相應節(jié)點的私有環(huán)域以及分級路由表,并實現(xiàn)路由更新。
其中,步驟c4網(wǎng)絡節(jié)點加入自組織網(wǎng)絡具體包括系統(tǒng)隨機為新加入網(wǎng)絡節(jié)點M分配一個節(jié)點NID;新加入網(wǎng)絡節(jié)點M選擇歸屬分級代理HA作為其引導節(jié)點,并加入該分級代理HA的哈西環(huán)路;分級代理HA查找網(wǎng)絡節(jié)點M在哈西環(huán)路上的后繼節(jié)點S;該后繼節(jié)點S根據(jù)網(wǎng)絡節(jié)點M的節(jié)點NID大小將本節(jié)點的私有環(huán)域劃分為兩個部分,保留網(wǎng)絡節(jié)點M到后續(xù)節(jié)點S之間的環(huán)域空間作為后續(xù)節(jié)點S的私有環(huán)域,并將后繼節(jié)點S的前繼節(jié)點P到網(wǎng)絡節(jié)點M之間的環(huán)域空間作為新加入網(wǎng)絡節(jié)點M的私有環(huán)域;網(wǎng)絡節(jié)點M通過其后繼節(jié)點S獲得其前繼節(jié)點P的信息,然后網(wǎng)絡節(jié)點M分別向P和S分別發(fā)送一個加入請求消息,S和P接收到消息后,將分別更新自己的前繼和后繼節(jié)點,其中,S將自己的前繼更新為M,而P則把自己的后繼更新為M;M通過其后繼節(jié)點S依次在哈西環(huán)路中查找自己的每個分級路由表表項對應的下一跳節(jié)點,實現(xiàn)對分級路由表的初始化;M的后繼節(jié)點S將根據(jù)重新劃分的私有環(huán)域?qū)儆谛鹿?jié)點的數(shù)據(jù)鍵值轉(zhuǎn)移到新節(jié)點M;啟動路由更新過程,更新系統(tǒng)中所有其它節(jié)點的分級路由表。
其中,步驟c4網(wǎng)絡節(jié)點退出自組織網(wǎng)絡具體包括退出節(jié)點Q首先向其后繼節(jié)點S和前繼節(jié)點P發(fā)送一個離開請求消息,S和P接收到消息后,分別更新自己的前繼和后繼節(jié)點,其中,S將自己的前繼更新為Q的前繼節(jié)點P,而P則把自己的后繼更新為Q的后繼節(jié)點S;
節(jié)點S將更新自己的私有環(huán)域,將網(wǎng)絡節(jié)點Q的私有環(huán)域合并入本節(jié)點S的私有環(huán)域;節(jié)點S將根據(jù)重新劃分的私有環(huán)域?qū)儆诠?jié)點Q的數(shù)據(jù)鍵值全部轉(zhuǎn)移到S;啟動路由更新過程,更新系統(tǒng)中所有其它節(jié)點的分級路由表。
其中,采用事件觸發(fā)式路由更新機制實現(xiàn)路由更新,由觸發(fā)源觸發(fā)網(wǎng)絡自動啟動路由維護和更新過程,節(jié)點加入和節(jié)點正常退出系統(tǒng)時,通過應用層程序向網(wǎng)絡中發(fā)送退出消息,該退出消息作為觸發(fā)源;當節(jié)點異常退出時,通過“發(fā)現(xiàn)-廣播”機制告知其它結(jié)點,并由該廣播消息充當觸發(fā)源。
另外,還包括在底層聚集體內(nèi)進行數(shù)據(jù)項備份,按照重復率大小,有選擇備份一部分跨越底層聚集的路由過程返回的數(shù)據(jù)項值,并按照網(wǎng)絡數(shù)據(jù)鍵值存放規(guī)則將其存放在底層聚集體內(nèi)相應的歸屬節(jié)點上,在下一次查找相同數(shù)據(jù)鍵值時,在該歸屬節(jié)點所在的底層聚集體內(nèi)路由查詢。
另外,還包括增加前繼和后繼節(jié)點備份表,將哈西環(huán)路上最鄰近的R項節(jié)點NID大于本節(jié)點的節(jié)點作為后繼節(jié)點備份,而R項NID小于本節(jié)點的節(jié)點作為前繼節(jié)點備份,當本節(jié)點的后繼節(jié)點崩潰時,則使用后繼節(jié)點備份表中保存的第二后繼作為自己臨時的后繼節(jié)點以保持哈西環(huán)路的完整;同樣,當本節(jié)點前繼節(jié)點突然崩潰時,則使用鄰接表中保存的第二前繼作為自己臨時的前繼節(jié)點以保持哈西環(huán)路的完整。
與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點1、本發(fā)明根據(jù)網(wǎng)絡物理拓撲結(jié)構(gòu)將網(wǎng)絡劃分成不同層次的自組織網(wǎng)絡組群,然后確定對應所述不同層次自組織網(wǎng)絡組群的邏輯命名空間的哈西環(huán)路,進而通過動態(tài)調(diào)整所述哈西環(huán)路結(jié)構(gòu)實現(xiàn)網(wǎng)絡節(jié)點動態(tài)加入或退出自組織網(wǎng)絡,從而實現(xiàn)自組織網(wǎng)絡的動態(tài)網(wǎng)絡自組織過程,由于基于互聯(lián)網(wǎng)底層物理拓撲結(jié)構(gòu)建立并實現(xiàn)了用于數(shù)據(jù)保存和路由查詢的哈西環(huán)路,可充分利用節(jié)點的網(wǎng)絡鄰近性和網(wǎng)絡局域性特性,使網(wǎng)絡的路由性能更好,數(shù)據(jù)查詢效率更高;2、進一步,本發(fā)明通過使用基于分級路由表的雜湊式路由算法,繼承了結(jié)構(gòu)化P2P算法網(wǎng)絡路由協(xié)議的所有優(yōu)點,解決了目前主流P2P系統(tǒng)(如Napster、Gnutella)可擴展性低的問題,并創(chuàng)造性地將P2P網(wǎng)絡技術應用于自組織網(wǎng)絡構(gòu)建和路由技術領域,從而保證了自組織網(wǎng)絡的可擴展性。
圖1是現(xiàn)有技術網(wǎng)絡自組織過程的時間軸示意圖;圖2是本發(fā)明自組織網(wǎng)絡的實現(xiàn)方法采用的網(wǎng)絡拓撲層樹型體系結(jié)構(gòu)示意圖;圖3是本發(fā)明自組織網(wǎng)絡的實現(xiàn)方法采用的DHT網(wǎng)絡查詢層體系結(jié)構(gòu)示意圖;圖4是本發(fā)明自組織網(wǎng)絡的實現(xiàn)方法采用的網(wǎng)絡拓撲層組群劃分過程示意圖;圖5是本發(fā)明自組織網(wǎng)絡的實現(xiàn)方法采用的分級路由表結(jié)構(gòu)示意圖;圖6是本發(fā)明自組織網(wǎng)絡的實現(xiàn)方法中只有一層聚集的具體實施例示意圖。
具體實施例方式
本發(fā)明實現(xiàn)的自組織網(wǎng)絡是一個基于兩級不同架構(gòu)覆蓋層(Overlay)的統(tǒng)一實體。本發(fā)明中分別定義這兩級覆蓋層分別為網(wǎng)絡拓撲層(NetworkTopology Layer,NTL)和網(wǎng)絡查詢層(Network Discovery Layer,NDL)。其中,網(wǎng)絡拓撲層(NTL)主要實現(xiàn)基于網(wǎng)絡物理拓撲的聚集群體(Cluster)劃分和樹型體系結(jié)構(gòu)構(gòu)建功能;網(wǎng)絡查詢層(NDL)主要實現(xiàn)基于DHT(分級路由表)算法的對等點路由和定位功能,下面分別進行說明。
(1).網(wǎng)絡拓撲層(NTL)本發(fā)明中網(wǎng)絡拓撲層主要包括兩個基本組件全局注冊服務器和分級代理。
全局注冊服務器(Global Register Server,GRS)GRS的功能類似DNS(Domain Name System,域名系統(tǒng))根服務器,是一個全局數(shù)據(jù)庫,主要負責存儲和維護不同等級HA的IP地址;分級代理(Hierarchical Agent,HA)HA充當每一個聚集群體(Cluster)的核心,本發(fā)明采用的是完全分布式和自組織結(jié)構(gòu),HA主要功能在于為新加入節(jié)點初始化路由表提供導向作用。
本發(fā)明實現(xiàn)的自組織網(wǎng)絡可根據(jù)網(wǎng)絡實際規(guī)模大小和物理拓撲結(jié)構(gòu)劃分為不同等級的自組織網(wǎng)絡組群,在自組織網(wǎng)絡的每一級中都有大量HA,每個HA本身也是網(wǎng)絡中的一個普通對等點(或稱為節(jié)點),它們可能位于世界的不同位置,在本發(fā)明提出的網(wǎng)絡模型中,物理距離較近的對等點將被歸并成組(即一個自組織網(wǎng)絡組群)并連接至第一級的分級代理(HA Level1,簡稱HA1),由其統(tǒng)一管理,其中所述分級代理可由普通節(jié)點基于其加入網(wǎng)絡的先后順序及其物理位置進而決定是否升級成為一個分級代理;相同的原理,物理距離較近的HA1將被歸并成組并連接至第二級的分級代理(HA Level2,簡稱HA2),由其統(tǒng)一管理,分級代理的確定與上述相同,依此類推,直到頂級分級代理及其管理的組群劃分完畢。
參考圖2,圖2示意了一種三個等級的NTL樹型體系結(jié)構(gòu),第一級的HA1下聚集有多個對等機,在第二層的HA2下分別聚集有多個HA1及其聚集的對等機,同樣,在第三層的HA3下聚集有三個HA2及其聚集的對等機。
下面舉例說明NTL層組群劃分過程,參見圖4本發(fā)明組群劃分過程的示意圖,主要包括如下步驟A1、網(wǎng)絡中所有的HA向GRS發(fā)送注冊消息(Register Message),進行身份注冊;B1、當一個新節(jié)點希望加入網(wǎng)絡時,首先要與網(wǎng)絡中的一個已知成員節(jié)點聯(lián)系,并獲取該節(jié)點地址信息,該節(jié)點將充當新加入節(jié)點的引導節(jié)點(Bootstrap Node);C1、新節(jié)點計算到Bootstrap節(jié)點的物理網(wǎng)絡距離,最簡單的方法可以使用Ping消息。如果計算的物理距離小于系統(tǒng)設定的門限值(Threshold),則新節(jié)點將通過向Bootstrap節(jié)點的歸屬HA發(fā)送消息加入到Bootstrap節(jié)點所處的聚集群體中,組群劃分過程結(jié)束;否則,進入D1;D1、新節(jié)點將從全局服務器GRS中獲取所有第一級分級代理HAi(i=1)的地址信息,并分別計算到每個HAi的物理網(wǎng)絡距離。如果計算的物理網(wǎng)絡距離小于系統(tǒng)設定的門限值T(T是系統(tǒng)參數(shù),根據(jù)具體網(wǎng)絡大小設置),則新節(jié)點將加入到該HAi下屬的聚集群體中,組群劃分過程結(jié)束;否則,進入E1;E1、新節(jié)點將從全局服務器GRS中獲取當前測量HAi的上一級分級代理HA(i+1)的地址信息,并分別計算到每個HA(i+1)的物理網(wǎng)絡距離。如果計算的物理網(wǎng)絡距離小于系統(tǒng)設定的門限值T,則新節(jié)點將加入到該HA(i+1)下屬的聚集群體中,并自動成為其下一級分級代理HAi,并在GRS中進行注冊,組群劃分過程結(jié)束;否則,重復E過程,直到加入某一級HA或者到達頂級HA為止(即i=H-1,H為NTL樹型結(jié)構(gòu)的高度)。
(2).網(wǎng)絡查詢層(NDL)本發(fā)明中網(wǎng)絡查詢層主要建立在網(wǎng)絡拓撲層(NTL)基礎上,系統(tǒng)將通過建立網(wǎng)絡查詢層(NDL)來實現(xiàn)對消息的路由,在NDL中定義了聚集級別(Cluster Level),NTL層的每個HA及其下屬對等點將被劃分為NDL層的一個聚集,該聚集的層次對應于該HA的級別,例如,某個HA1及其所有子節(jié)點將構(gòu)成一個CL_0級聚集(Cluster Level0),而某個HA2及其所有子節(jié)點將構(gòu)成一個CL_1級聚集(Cluster Level1),依此類推。聚集級別的具體定義如下第n級聚集(Cluster Levelk,簡稱CLk)對應自組織網(wǎng)絡中的不同等級聚集群體。其中,每個HA1下的子對等機將組成一個第零級聚集群體(ClusterLevel0,CL0);所有的HA1將組成一個第一級聚集群體(Cluster Level1,CL1),依此類推。
全聚集(Full Cluster,簡稱FC)對應自組織網(wǎng)絡中的所有節(jié)點。
對應上述的聚集體,本發(fā)明按照分布式哈西算法生成對應各聚集體的邏輯命名空間的哈西環(huán)路,這樣根據(jù)前面所述的自組織網(wǎng)絡分級的方法,假設當前NTL樹型結(jié)構(gòu)高度為H,則可采用下述流程在NDL中進行查詢A2、對于CLi中的一個節(jié)點,它發(fā)起的查詢將首先在CLi內(nèi)的Hash環(huán)中進行,如果找到目的節(jié)點和相應的數(shù)據(jù)鍵值Key,則返回響應消息給源節(jié)點,查詢過程結(jié)束,否則進入B2。
B2、該節(jié)點將把查詢擴展到其歸屬HAi所屬的第(i+1)級聚集CL(i+1)內(nèi)進行,如果找到目的節(jié)點和相應的數(shù)據(jù)鍵值Key,則返回響應消息給源節(jié)點,查詢過程結(jié)束,否則進入C2。
C2、如果尚未到達全聚集FC(即i<(H-1)),則將i加1后返回B,查詢過程結(jié)束,否則返回查詢失敗。
下面以具體實施例說明如何建立NDL網(wǎng)絡查詢層。
本實施例采用基于Consistent Hashing的分布式哈西算法將網(wǎng)絡中每個節(jié)點的標志(如IP地址、域名等)映射成一個長度為M位(bit)的二進制序列NID,并將其唯一分配給該節(jié)點;對系統(tǒng)中需要存儲數(shù)據(jù)的標識(文件名、ObjectId等)進行哈西運算,將其映射成一個長度為M位(bit)的二進制序列KID(Key Id),其中M值大小需要滿足N≤2M(假設網(wǎng)絡節(jié)點總數(shù)為N)。這樣節(jié)點的NID將用來指定該節(jié)點在Hash環(huán)中的位置。當節(jié)點第一次加入自組織網(wǎng)絡時,系統(tǒng)將隨機地為其分配一個NID,NID取值范圍為0~2M-1。每個NID對應一個用0、1字符串來表示的二進制序列,各個節(jié)點的NID所對應的數(shù)值是互不相同的,對于一個總長度為M的NID,它所對應的數(shù)值為valueof(NID)=ΣΓ=1MNIDi×2Γ---(1)]]>這樣,對于上述劃分的聚集體,將按照各個聚集體組成的網(wǎng)絡節(jié)點的NID生成相應的哈西環(huán)路。
在本路由算法中還引入了全環(huán)域(Global Ring Zone,GRZ)和私有環(huán)域(Individual Ring Zone,IRZ)的概念。全環(huán)域(GRZ)是
.start)第K個路由表項所覆蓋環(huán)域空間起始位置,其中HRTEntry[K].start=(n+2k-1)mod2M1≤K≤M(3)環(huán)域空間范圍(Next Hop Ring Interval,NRI)路由表項K所覆蓋的環(huán)域空間范圍大小,其中NRI[k]=[HRTEntry[K].start,HRTEntry[K+1].start)1≤K≤M(4)下一跳節(jié)點私有環(huán)域空間(Next Hop IRZ,NIRZ)在環(huán)域空間范圍NRI內(nèi)沿順時針方向第一個活動節(jié)點G的私有環(huán)域空間,即G滿足HRTEntry[K].start∈IRZ(G)1≤K≤M (5)分級路由表(HRT)的基本內(nèi)容有當前拓撲層聚集級數(shù)(CCL),第K項路由環(huán)域起點(HRTEntry[K].start)、下一跳節(jié)點私有環(huán)域空間(NIRZ),其中,K為路由表序號,分級路由表的結(jié)構(gòu)參見圖5所示。
上述在自組織網(wǎng)絡中引入私有環(huán)域的目的是,采取大小可以動態(tài)變化的路由表與采取固定大小的路由表相比更加靈活一些,當節(jié)點加入時所采用的隨機函數(shù)所產(chǎn)生的隨機數(shù)分布足夠均勻時,節(jié)點可以根據(jù)它的IRZ大小來估計系統(tǒng)中節(jié)點的總數(shù)目,理論上其IRZ大小與系統(tǒng)中總的節(jié)點數(shù)目成線性反比關系,即當網(wǎng)絡中節(jié)點IRZ分配足夠均勻時,系統(tǒng)節(jié)點總數(shù)N=O(GRZ/IRZ)。另外,在查詢目標節(jié)點時,查詢過程直接通過比較KID值和目標節(jié)點IRZ的范圍就可以有效地判斷目標節(jié)點是否到達,從而簡化了查詢過程,下面以具體實施例進行說明。
參考圖6,圖6是一個只有一級聚集的自組織網(wǎng)絡,該自組織網(wǎng)絡中構(gòu)成NDL層的Hash環(huán)路包括4個節(jié)點A、B、C以及D,其中節(jié)點B在第一級聚集下的路由表如表一所示表一
節(jié)點D在第一級聚集下的路由表如表二所示表二
如果節(jié)點B發(fā)起對KID=001的數(shù)據(jù)鍵值查詢,因為001∈[HRTEntry[3].start,HRTEntry[1].start],即[111,100](注該區(qū)域是循環(huán)的),所以直接定位到節(jié)點D,由于IRZ(D)=(100,000),B可以判斷該數(shù)據(jù)鍵值并不在節(jié)點D上,因此需要繼續(xù)查詢D的分級路由表;根據(jù)D的分級路由表,因為001∈[HRTEntry[1].start,HRTEntry[2].start],即
,查詢過程將繼續(xù)定位到節(jié)點A,由于節(jié)點A的IRZ=(000,001),則B通過比較KID和IRZ可以發(fā)現(xiàn)KID∈IRZ(D),因此可以直接判斷節(jié)點A即為目標節(jié)點,而無需將消息繼續(xù)轉(zhuǎn)發(fā)。
當網(wǎng)絡規(guī)模擴大時,由于節(jié)點個數(shù)增加,分級路由表的一跳可能跨越最多達2M/2個節(jié)點,因而通過比較IRZ和KID關系可以直接判斷當前節(jié)點是否目標節(jié)點以及是否需要將查詢消息繼續(xù)轉(zhuǎn)發(fā),從而極大提高查詢效率。
對于一個具有N個節(jié)點的系統(tǒng),其各個節(jié)點的IRZ之間滿足下面的關系IRZ1∪IRZ2∪IRZ3...∪IRZN=GRZIRZi|IRZj=φi≠j,1≤i,j≤N (2)網(wǎng)絡中所有節(jié)點通過其私有環(huán)域空間IRZ的連接構(gòu)成全環(huán)域GRZ。采用這種簡單的節(jié)點鄰接關系,每個節(jié)點僅需保存其后繼節(jié)點信息,節(jié)點之間的通信可以通過向后繼節(jié)點進行消息前遞的方式實現(xiàn)。這種消息前遞方法雖然簡單,但效率卻非常低,因為網(wǎng)絡中的兩個節(jié)點為了找到對方需要經(jīng)過O(N)跳(N為網(wǎng)絡中節(jié)點個數(shù)),最壞情況下源節(jié)點可能需要將消息繞環(huán)傳遞一圈才能到達目的節(jié)點。正是基于這個原因,為了加速查詢過程和提高查詢效率,本發(fā)明為每個節(jié)點引入了分級路由表HRT,下面將本發(fā)明采用的路由發(fā)現(xiàn)過程描述如下A3、當某節(jié)點M需要發(fā)起一次路由查詢(或接收到經(jīng)轉(zhuǎn)發(fā)的路由消息)時,它將首先檢查(或提取消息中的)查詢數(shù)據(jù)鍵值D,并將數(shù)據(jù)鍵值D與本節(jié)點的私有環(huán)域空間(IRZ)相比較,如果D∈IRZ,則路由發(fā)現(xiàn)過程終止,M構(gòu)造并返回應答消息;如果 ,則進入B3;B3、節(jié)點M將按照分級路由表(HRT)聚集級數(shù)大小,逐級查詢數(shù)據(jù)鍵值D,在每一級HRT中,M將查詢數(shù)據(jù)鍵值D依次與分級路由表項進行比較,尋找下一跳節(jié)點私有環(huán)域空間(NIRZ)包含數(shù)據(jù)鍵值D的路由表項并將分組轉(zhuǎn)發(fā)至相應下一跳節(jié)點,消息的每次傳遞都將在路由表項中選擇NIRZ與數(shù)據(jù)鍵值D最接近的路由表項所對應的下一跳節(jié)點,并將消息發(fā)送給該節(jié)點,該節(jié)點接收到消息后同樣根據(jù)上述規(guī)則繼續(xù)進行前遞;如果在當前級別HRT的路由查詢失敗,則進入高一級的HRT,依此類推。
C3、如果路由發(fā)現(xiàn)過程已到達最高級HRT(即CCL=H-1),并且仍然未查詢到包含查詢數(shù)據(jù)鍵值D的目標節(jié)點,則路由發(fā)現(xiàn)過程結(jié)束,并返回查詢失敗消息。
下面對節(jié)點的動態(tài)加入和退出自組織網(wǎng)絡的過程進行描述。
為了支持自組織網(wǎng)絡特性,本發(fā)明實現(xiàn)的自組織網(wǎng)絡還必須能夠支持節(jié)點隨時動態(tài)進入和退出系統(tǒng)。由于采用雜湊算法為自組織網(wǎng)絡中每個節(jié)點分配一個唯一標識NID,并劃分其私有環(huán)域空間(IRZ)。當一個新節(jié)點要加入系統(tǒng)時,系統(tǒng)將通過分割Hash環(huán)域上某個成員節(jié)點的IRZ來為該節(jié)點分配一個新的IRZ當一個節(jié)點要退出系統(tǒng)時,系統(tǒng)將把該節(jié)點的IRZ與系統(tǒng)某個成員節(jié)點合并以回收該環(huán)域空間。
下面先介紹實現(xiàn)節(jié)點動態(tài)加入自組織網(wǎng)絡的過程,流程如下
A4、新節(jié)點M首先按照上述組群劃分選擇其歸屬HA;B4、M選擇系統(tǒng)中的一個成員節(jié)點H作為其引導節(jié)點(Bootstrap Node),在本系統(tǒng)中,默認情況下M將選取其歸屬HA作為引導節(jié)點。由于本發(fā)明中Hash環(huán)采用的是順時針方向查詢機制,因此節(jié)點M將通過引導節(jié)點H查找到其在Hash環(huán)上的后繼節(jié)點S(S=Successor(M)),該后繼節(jié)點S則根據(jù)M的NID大小將自己的IRZ((NID(S.Predecessor),NID(S)))劃分為兩個部分,保留(NID(M),NID(S))所在的那一部分環(huán)域作為本節(jié)點的私有環(huán)域,然后將另一部分(NID(S.Predecessor),NID(M))環(huán)域作為新加入節(jié)點M的IRZ。
C4、M通過其后繼節(jié)點S獲得其前繼節(jié)點P(P=Predecessor(S))的信息。然后M分別向P和S發(fā)送一個加入請求消息,S和P接收到消息后,將分別更新自己的前繼和后繼節(jié)點,其中,S將自己的前繼更新為M,而P則把自己的后繼更新為M,這樣,Hash環(huán)的完整性得到了保證。
D4、M通過其后繼節(jié)點S依次在Hash環(huán)中查找自己的每個分級路由表表項(HRTEntry)對應得下一跳節(jié)點,實現(xiàn)對分級路由表(HRT)的初始化。
E4、M的后繼節(jié)點S將根據(jù)重新劃分的IRZ將應屬于新節(jié)點的數(shù)據(jù)鍵值Key轉(zhuǎn)移到新節(jié)點M。
F4、系統(tǒng)啟動路由更新(Route Update)過程(后文將詳細描述),更新系統(tǒng)中所有其它節(jié)點的路由表(HRT),使其能適應網(wǎng)絡結(jié)構(gòu)的變化,并使整個網(wǎng)絡重新收斂。
另外,針對自組織網(wǎng)絡的高度動態(tài)特性,本發(fā)明的自組織網(wǎng)絡還必須支持節(jié)點的動態(tài)離開。一個節(jié)點正常退出自組織網(wǎng)絡的具體過程描述如下A5、節(jié)點Q首先向其后繼節(jié)點S和前繼節(jié)點P發(fā)送一個離開請求消息,S和P接收到消息后,將分別更新自己的前繼和后繼節(jié)點,其中,S將自己的前繼更新為Q的前繼(節(jié)點P),而P則把自己的后繼更新為Q的后繼(節(jié)點S)。至此,Hash環(huán)的完整性得到了保證。
B5、節(jié)點S將更新自己的IRZ,即對節(jié)點Q的IRZ進行合并,合并前Q的IRZ為(NID(P),NID(Q)),S的IRZ為(NID(Q),NID(S)),合并完畢后,S的IRZ將變?yōu)?NID(P),NID(S))。
C5、節(jié)點S將根據(jù)重新劃分的IRZ將屬于節(jié)點Q的數(shù)據(jù)鍵值Key全部轉(zhuǎn)移到S。
D5、系統(tǒng)啟動路由更新過程,更新系統(tǒng)中所有其它節(jié)點的分級路由表(HRT),使其能適應網(wǎng)絡結(jié)構(gòu)的變化,并使整個網(wǎng)絡重新收斂。
下面說明如何實現(xiàn)路由更新。
對于自組織網(wǎng)絡而言,路由更新機制是路由算法啟動的一種自動恢復機制,其主要功能是在網(wǎng)絡中由于某些節(jié)點加入或退出等原因?qū)е戮W(wǎng)絡拓撲發(fā)生變化時,更新系統(tǒng)中所有關聯(lián)節(jié)點的分級路由表(HRT),使其能適應網(wǎng)絡結(jié)構(gòu)的變化,并使整個網(wǎng)絡迅速重新收斂。目前常用的路由更新機制通常采用的是事件觸發(fā)式、周期式以及兩者相結(jié)合的路由更新方式。對于大規(guī)模網(wǎng)絡而言,周期性路由更新機制需要花費較高代價(如帶寬、電源、CPU處理能力等)以使得路由表能跟得上當前網(wǎng)絡拓撲結(jié)構(gòu)的變化,但動態(tài)變化的拓撲結(jié)構(gòu)又可能使高代價獲得的路由表內(nèi)容變成無效信息,尤其是在網(wǎng)絡拓撲高速變化時,整個系統(tǒng)將始終處于不收斂狀態(tài)。雖然這種方式直接保證了維護開銷正比于路由表大小,但是只有在路由表不大時才可行,一旦路由表達到一定規(guī)模,其開銷將無法承受。(例如,對于含10,000個表項的路由表,若每50秒探測一次,則每秒需發(fā)送200個消息)。因此,考慮到自組織網(wǎng)絡的高度動態(tài)特性,本發(fā)明采用事件觸發(fā)式路由更新機制。就路由更新觸發(fā)源而言,節(jié)點加入和節(jié)點正常退出系統(tǒng)(如用戶正常關閉P2P程序)時,該節(jié)點會通過應用層程序向網(wǎng)絡中相關節(jié)點發(fā)送退出消息,該退出消息就是觸發(fā)源;而當節(jié)點在沒有任何先兆情況下異常退出(如節(jié)點掉線或死機等)時,系統(tǒng)一般通過“發(fā)現(xiàn)-廣播”機制告知其它結(jié)點,這時該廣播消息就充當觸發(fā)源。針對節(jié)點無先兆的異常退出,網(wǎng)絡中的每個節(jié)點必須定期向其前繼節(jié)點發(fā)送KeepAlive消息以探測該節(jié)點是否存活,一旦發(fā)現(xiàn)前繼節(jié)點異常退出,則由該異常退出節(jié)點的后繼節(jié)點啟動路由更新過程。
下面以新節(jié)點加入系統(tǒng)的路由更新過程進行說明A6、路由更新過程由事件觸發(fā),由新加入節(jié)點M發(fā)起,更新過程將采取回溯(retrieval)的方式,即從當前觸發(fā)節(jié)點M出發(fā),沿Hash環(huán)逆時針方向進行逐次更新,并按照分級路由表表項(HRTEntry)的次序i依次發(fā)現(xiàn)和更新關聯(lián)節(jié)點,每次回溯的間隔為2i-1,i=1,2..M。
B6、對于新節(jié)點加入觸發(fā)的路由更新過程,回溯到第i個節(jié)點時,將查找該節(jié)點的第i個路由表項對應的下一跳節(jié)點NID值,如果當前NID值大于新加入節(jié)點的NID,則用NID(M)替換當前表項值,進入C,否則繼續(xù)回溯第i+1跳節(jié)點。
C6、回溯當前更新節(jié)點的前繼節(jié)點,并查找該節(jié)點的第i個表項對應的下一跳節(jié)點NID值,如果當前NID值大于新加入節(jié)點的NID,則用NID(M)替換當前表項值,繼續(xù)回溯上一個前繼節(jié)點,否則回溯第i+1跳節(jié)點直到當i=M時,路由更新過程結(jié)束。
另外節(jié)點退出系統(tǒng)的路由更新過程和節(jié)點加入系統(tǒng)的路由更新過程基本相似,不同有兩點(1)節(jié)點退出系統(tǒng)的路由更新過程是由退出節(jié)點Q或退出節(jié)點的后繼節(jié)點S(S=Successor(Q))發(fā)起;(2)節(jié)點退出觸發(fā)的路由更新過程也采用回溯的方法更新其他節(jié)點的路由表,但回溯過程中,僅查找回溯節(jié)點路由表項對應的下一跳NID值是否為退出節(jié)點的NID,即NID(Q),若是,則用退出節(jié)點的后繼替換當前表項值。
為使本發(fā)明的自組織網(wǎng)絡更路由更快捷,還采取進一步的路由優(yōu)化措施,具體描述如下A.數(shù)據(jù)項備份機制(Data Item Replication)本發(fā)明提出組群劃分和層次化結(jié)構(gòu)的目的是為了充分考慮節(jié)點網(wǎng)絡鄰近性特征(Network Proximity Character),希望通過組群劃分的方法將物理距離較近的節(jié)點歸為一組,以確保網(wǎng)絡中鄰近節(jié)點間的路由過程都在組群內(nèi)部完成,從而避免了Chord等路由協(xié)議存在的繞路(Detouring)問題,降低了系統(tǒng)路由時間開銷并減少了發(fā)送消息數(shù)量。
但在實際網(wǎng)絡中,仍然有很多跨越組群的路由事件發(fā)生。假設存在一個3級分級網(wǎng)絡W,CL1是某大學校園局域網(wǎng)網(wǎng)(LAN),CL2是該大學所處城域網(wǎng)(MAN),CL3是城市所處更高級廣域網(wǎng)絡(WAN),雖然在CL1級校園網(wǎng)內(nèi)部發(fā)生消息通信的比例非常大,但仍然有相當比例的消息路由必須通過CL2級網(wǎng)絡甚至CL3級網(wǎng)絡。統(tǒng)計數(shù)據(jù)表明,特定子網(wǎng)下數(shù)據(jù)查詢過程的重復率非常高,這是因為網(wǎng)絡中存在一些訪問率高的熱門節(jié)點和熱點信息。就本發(fā)明采用的路由模型本身而言,如果CL1級聚集下節(jié)點每次查詢同一個鍵值都需要進入到CL2級甚至CL3級Hash環(huán)域,則必將造成較大的路由時間開銷。
針對這個問題,為降低節(jié)點重復跨級路由過程造成的時間開銷,可在底層聚集(即CL1級環(huán)域)內(nèi)進行數(shù)據(jù)項備份的機制,其基本技術措施就是按照重復率大小,有選擇備份一部分跨越CL1級路由過程返回的數(shù)據(jù)項值(DataItem),并按照系統(tǒng)定義的數(shù)據(jù)鍵值存放規(guī)則將其存放在CL1聚集下相應的歸屬節(jié)點上。這樣,在下一次查找相同的數(shù)據(jù)鍵值時,路由過程就可以在CL1級聚集內(nèi)完成,而不需要進入到更高一級的網(wǎng)絡查詢層,從而大大提高了路由效率。需要說明的是,雖然通過數(shù)據(jù)項備份機制來提高路由效率是建立在增加節(jié)點存儲開銷基礎上,但事實上系統(tǒng)在CL1集節(jié)點上備份的數(shù)據(jù)項并不是實際數(shù)據(jù)對象,而僅僅是對應某數(shù)據(jù)對象存儲地址的一個數(shù)據(jù)項值(DataItem),即查詢的數(shù)據(jù)鍵值以及目標節(jié)點的IP地址,因此不會對節(jié)點增加過多的存儲開銷。
B.環(huán)路保持機制(Hash Ring Preserving)對于基于DHT的分布式路由協(xié)議,如何在網(wǎng)絡拓撲結(jié)構(gòu)發(fā)生變化時保持Hash環(huán)路完整性是一個很關鍵的問題。Hash環(huán)路完整性是確保整個網(wǎng)絡路由發(fā)現(xiàn)和路由維護過程正常進行的必要條件,環(huán)路的不完整將會導致網(wǎng)絡處于不收斂狀態(tài)。雖然本系統(tǒng)提供了針對網(wǎng)絡拓撲變化的路由更新機制,但在動態(tài)自組織網(wǎng)絡中,節(jié)點的頻繁加入或退出仍有可能導致在系統(tǒng)路由更新尚未完成就發(fā)生了數(shù)據(jù)鍵值查詢操作,而Hash環(huán)路的不完整將造成查詢中斷或失敗。
針對這個問題,本發(fā)明引入了環(huán)路保持機制,采取的技術措施主要是增加前繼和后繼節(jié)點備份表,將Hash環(huán)上最鄰近的R項NID大于本節(jié)點的節(jié)點作為后繼節(jié)點備份,而R項NID小于本節(jié)點的節(jié)點作為前繼節(jié)點備份,并設定R=O(logN)。一旦本節(jié)點的后繼節(jié)點崩潰,就立即使用后繼節(jié)點備份表中保存的第二后繼(第二個NID大于本節(jié)點的節(jié)點)作為自己臨時的后繼節(jié)點,以保持Hash環(huán)路的完整;同樣,當本節(jié)點前繼節(jié)點突然崩潰,則使用鄰接表中保存的第二前繼(第二個NID小于本節(jié)點的節(jié)點)作為自己臨時的前繼節(jié)點,以保持Hash環(huán)路的完整。因此在本系統(tǒng)中,僅當節(jié)點備份表中對應的R項備份前繼和后繼節(jié)點同時崩潰時,Hash環(huán)路才可能出現(xiàn)中斷的情況,而這種幾率是非常小的,假設每個備份節(jié)點崩潰的概率為1/2,則P(R個備份節(jié)點同時崩潰)=O(1/N)。
綜上,本發(fā)明主要特點在于結(jié)合自組織網(wǎng)絡技術和P2P技術。在自組織網(wǎng)絡中的每個用戶節(jié)點都兼?zhèn)洫毩⒙酚珊椭鳈C功能,不存在一個網(wǎng)絡中心控制點,用戶節(jié)點之間的地位是平等的,因此自組織網(wǎng)絡本身就具有對等架構(gòu)特性,另一方面,自組織網(wǎng)絡的網(wǎng)絡路由協(xié)議通常采用分布式控制方式,具有很強的魯棒性和抗毀性。因此,通過使用P2P計算模式在Internet物理拓撲基礎上建立一個稱為P2P覆蓋層網(wǎng)絡的虛擬拓撲結(jié)構(gòu),可以有效地建立起一個基于Internet的自組織網(wǎng)絡,并具有以下優(yōu)點保證網(wǎng)絡中數(shù)據(jù)資源的可獲取性,即只要數(shù)據(jù)資源存在于網(wǎng)絡中,就一定可以被找到;將網(wǎng)絡資源查詢復雜度控制為O(logN);有效實現(xiàn)網(wǎng)絡負載均衡,即網(wǎng)絡中的數(shù)據(jù)鍵值以接近平均的方式被分配到網(wǎng)絡節(jié)點上,從而使得各個節(jié)點均衡分擔網(wǎng)絡通信和存儲負擔;有效支持自組織網(wǎng)絡特性,即支持節(jié)點動態(tài)加入和退出網(wǎng)絡;當節(jié)點故障或掉線時,P2P覆蓋層網(wǎng)絡將啟動自動恢復機制,使網(wǎng)絡重新收斂。
以上所述僅為本發(fā)明的優(yōu)選實施方式,并不構(gòu)成對本發(fā)明保護范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的權利要求保護范圍之內(nèi)。
權利要求
1.一種自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,包括如下步驟a、根據(jù)網(wǎng)絡物理拓撲結(jié)構(gòu)將網(wǎng)絡劃分成不同層次的自組織網(wǎng)絡組群;b、確定對應所述不同層次自組織網(wǎng)絡組群的相應聚集級數(shù)的聚集體,其中每一個聚集體對應一個邏輯命名空間的哈西環(huán)路;c、當網(wǎng)絡節(jié)點動態(tài)加入或退出自組織網(wǎng)絡時動態(tài)調(diào)整相應的哈西環(huán)路結(jié)構(gòu)以實現(xiàn)網(wǎng)絡重組織。
2.根據(jù)權利要求1所述的自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,步驟a具體包括根據(jù)網(wǎng)絡實際規(guī)模大小和物理拓撲結(jié)構(gòu)確定自組織網(wǎng)絡組群層數(shù);將物理距離較近的網(wǎng)絡節(jié)點劃分為同一個自組織網(wǎng)絡組群,并根據(jù)網(wǎng)絡節(jié)點加入自組織網(wǎng)絡的先后順序以及物理位置確定該自組織網(wǎng)絡組群的分級代理;將相同層次的分級代理及其組群成員劃分為上一層組群的成員節(jié)點并確定相應層次的分級代理,若劃分到自組織網(wǎng)絡頂層組群并確定了相應頂層組群的分級代理則劃分結(jié)束,否則繼續(xù)劃分。
3.根據(jù)權利要求2所述的自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,步驟b具體包括b1、將每個分級代理及其組群成員確定為一個聚集體;b2、生成對應各聚集體的邏輯命名空間的哈西環(huán)路。
4.根據(jù)權利要求3所述的自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,步驟b2具體包括采用哈西算法將自組織網(wǎng)絡中各個網(wǎng)絡節(jié)點的標志映射成一個長度為M位的二進制序列NID,并將其唯一分配給該網(wǎng)絡節(jié)點,同樣對自組織網(wǎng)絡中需要存儲數(shù)據(jù)的標識進行哈西運算,將其映射成一個長度為M位的二進制序列KID;按照各個聚集體組成的網(wǎng)絡節(jié)點的NID生成相應的哈西環(huán)路。
5.根據(jù)權利要求1所述的自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,步驟c具體包括c1、將對應各個聚集體的哈西環(huán)路設置為相應的全環(huán)域;c2、將所述全環(huán)域劃分為對應聚集體中各個網(wǎng)絡節(jié)點的私有環(huán)域;c3、根據(jù)聚集體的聚集級數(shù)以及各網(wǎng)絡節(jié)點的私有環(huán)域設置對應各個網(wǎng)絡節(jié)點的分級路由表;c4、當有網(wǎng)絡節(jié)點加入或退出自組織網(wǎng)絡時動態(tài)調(diào)整相應節(jié)點的私有環(huán)域以及分級路由表,并實現(xiàn)路由更新。
6.根據(jù)權利要求5所述的自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,步驟c4網(wǎng)絡節(jié)點加入自組織網(wǎng)絡具體包括系統(tǒng)隨機為新加入網(wǎng)絡節(jié)點M分配一個節(jié)點NID;新加入網(wǎng)絡節(jié)點M選擇歸屬分級代理HA作為其引導節(jié)點,并加入該分級代理HA的哈西環(huán)路;分級代理HA查找網(wǎng)絡節(jié)點M在哈西環(huán)路上的后繼節(jié)點S;該后繼節(jié)點S根據(jù)網(wǎng)絡節(jié)點M的節(jié)點NID大小將本節(jié)點的私有環(huán)域劃分為兩個部分,保留網(wǎng)絡節(jié)點M到后續(xù)節(jié)點S之間的環(huán)域空間作為后續(xù)節(jié)點S的私有環(huán)域,并將后繼節(jié)點S的前繼節(jié)點P到網(wǎng)絡節(jié)點M之間的環(huán)域空間作為新加入網(wǎng)絡節(jié)點M的私有環(huán)域;網(wǎng)絡節(jié)點M通過其后繼節(jié)點S獲得其前繼節(jié)點P的信息,然后網(wǎng)絡節(jié)點M分別向P和S分別發(fā)送一個加入請求消息,S和P接收到消息后,將分別更新自己的前繼和后繼節(jié)點,其中,S將自己的前繼更新為M,而P則把自己的后繼更新為M;M通過其后繼節(jié)點S依次在哈西環(huán)路中查找自己的每個分級路由表表項對應的下一跳節(jié)點,實現(xiàn)對分級路由表的初始化;M的后繼節(jié)點S將根據(jù)重新劃分的私有環(huán)域?qū)儆谛鹿?jié)點的數(shù)據(jù)鍵值轉(zhuǎn)移到新節(jié)點M;啟動路由更新過程,更新系統(tǒng)中所有其它節(jié)點的分級路由表。
7.根據(jù)權利要求5所述的自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,步驟c4網(wǎng)絡節(jié)點退出自組織網(wǎng)絡具體包括退出節(jié)點Q首先向其后繼節(jié)點S和前繼節(jié)點P發(fā)送一個離開請求消息,S和P接收到消息后,分別更新自己的前繼和后繼節(jié)點,其中,S將自己的前繼更新為Q的前繼節(jié)點P,而P則把自己的后繼更新為Q的后繼節(jié)點S;節(jié)點S將更新自己的私有環(huán)域,將網(wǎng)絡節(jié)點Q的私有環(huán)域合并入本節(jié)點S的私有環(huán)域;節(jié)點S將根據(jù)重新劃分的私有環(huán)域?qū)儆诠?jié)點Q的數(shù)據(jù)鍵值全部轉(zhuǎn)移到S;啟動路由更新過程,更新系統(tǒng)中所有其它節(jié)點的分級路由表。
8.根據(jù)權利要求5、6或7任一項所述的自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,采用事件觸發(fā)式路由更新機制實現(xiàn)路由更新,由觸發(fā)源觸發(fā)網(wǎng)絡自動啟動路由維護和更新過程,節(jié)點加入和節(jié)點正常退出系統(tǒng)時,通過應用層程序向網(wǎng)絡中發(fā)送退出消息,該退出消息作為觸發(fā)源;當節(jié)點異常退出時,通過“發(fā)現(xiàn)-廣播”機制告知其它結(jié)點,并由該廣播消息充當觸發(fā)源。
9.根據(jù)權利要求1所述的自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,還包括在底層聚集體內(nèi)進行數(shù)據(jù)項備份,按照重復率大小,有選擇備份一部分跨越底層聚集的路由過程返回的數(shù)據(jù)項值,并按照網(wǎng)絡數(shù)據(jù)鍵值存放規(guī)則將其存放在底層聚集體內(nèi)相應的歸屬節(jié)點上,在下一次查找相同數(shù)據(jù)鍵值時,在該歸屬節(jié)點所在的底層聚集體內(nèi)路由查詢。
10.根據(jù)權利要求8所述的自組織網(wǎng)絡的實現(xiàn)方法,其特征在于,還包括增加前繼和后繼節(jié)點備份表,將哈西環(huán)路上最鄰近的R項節(jié)點NID大于本節(jié)點的節(jié)點作為后繼節(jié)點備份,而R項NID小于本節(jié)點的節(jié)點作為前繼節(jié)點備份,當本節(jié)點的后繼節(jié)點崩潰時,則使用后繼節(jié)點備份表中保存的第二后繼作為自己臨時的后繼節(jié)點以保持哈西環(huán)路的完整;同樣,當本節(jié)點前繼節(jié)點突然崩潰時,則使用鄰接表中保存的第二前繼作為自己臨時的前繼節(jié)點以保持哈西環(huán)路的完整。
全文摘要
本發(fā)明公開一種自組織網(wǎng)絡的實現(xiàn)方法,主要包括如下步驟根據(jù)網(wǎng)絡物理拓撲結(jié)構(gòu)將網(wǎng)絡劃分成不同層次的自組織網(wǎng)絡組群;確定對應所述不同層次自組織網(wǎng)絡組群的相應聚集級數(shù)的聚集體,其中每一個聚集體對應一個邏輯命名空間的哈西環(huán)路;當網(wǎng)絡節(jié)點動態(tài)加入或退出自組織網(wǎng)絡時動態(tài)調(diào)整相應的哈西環(huán)路結(jié)構(gòu)以實現(xiàn)網(wǎng)絡重組織。本發(fā)明由于基于互聯(lián)網(wǎng)底層物理拓撲結(jié)構(gòu)建立并實現(xiàn)了用于數(shù)據(jù)保存和路由查詢的哈西環(huán)路,可充分利用節(jié)點的網(wǎng)絡鄰近性和網(wǎng)絡局域性特性,使網(wǎng)絡的路由性能更好,數(shù)據(jù)查詢效率更高;通過使用基于DHT的雜湊式路由算法,繼承了結(jié)構(gòu)化P2P覆蓋層網(wǎng)絡路由協(xié)議的所有優(yōu)點,保證了網(wǎng)絡的可擴展性。
文檔編號H04L12/28GK1691619SQ20041003735
公開日2005年11月2日 申請日期2004年4月27日 優(yōu)先權日2004年4月27日
發(fā)明者黃建華, 李祖鵬, 郭云飛 申請人:國家數(shù)字交換系統(tǒng)工程技術研究中心