專利名稱:一種關于移動Ad-Hoc網(wǎng)絡路徑發(fā)現(xiàn)和選擇的方法
技術領域:
本發(fā)明涉及一種關于移動Ad-Hoc網(wǎng)絡路徑發(fā)現(xiàn)和選擇的方法,屬于網(wǎng)絡通信技術領域
背景技術:
Ad-Hoc網(wǎng)絡自產(chǎn)生以來,路由協(xié)議便成了該領域的研究熱點。到目前為止,研究人員相繼提出了很多種移動Ad-Hoc網(wǎng)絡路由協(xié)議,根據(jù)協(xié)議的觸發(fā)原理,這些協(xié)議可劃分為三類,即先驗式路由協(xié)議、反應式路由協(xié)議和混合式路由協(xié)議。當前對Ad-Hoc網(wǎng)絡路由協(xié)議的研究以理論研究和實驗仿真相結(jié)合為主要研究方式,能實際應用的Ad-Hoc網(wǎng)絡路由協(xié)議還不算多,雖然有些協(xié)議已經(jīng)在實際網(wǎng)絡中應用,諸如AODV、DSDV和DSR等典型協(xié)議,但協(xié)議的性能還不能滿足應用需求,在傳輸時延和協(xié)議開銷等方面還需進一步提高。AD-Hoc網(wǎng)絡主要應用于臨時通信網(wǎng)絡,臨時通信網(wǎng)絡一般具有網(wǎng)絡規(guī)模較小、路由跳數(shù)少和對時延要求要小等特點。然而,大多數(shù)的Ad-Hoc網(wǎng)絡協(xié)議研究人員都專注于完備復雜的路徑發(fā)現(xiàn)和選路算法方面的研究,忽略了小規(guī)模臨時通信網(wǎng)絡的路由跳數(shù)較少(一般情況兩跳即可滿足通信需求)等特點,將這些路由協(xié)議應用于臨時移動通信網(wǎng)絡必然能達到期望的效果,復雜的路由算法定會帶來較高的協(xié)議開銷,影響傳輸時延。
發(fā)明內(nèi)容
為了克服現(xiàn)有Ad-Hoc網(wǎng)絡路由協(xié)議在小規(guī)模臨時移動通信網(wǎng)絡中協(xié)議開銷較大傳輸時延較高的不足,本發(fā)明提出一種關于移動Ad-Hoc網(wǎng)絡路徑發(fā)現(xiàn)和選擇的方法,動態(tài)感知網(wǎng)絡拓撲變化,基于拓撲更新式的路徑發(fā)現(xiàn)算法能迅速準確發(fā)現(xiàn)路徑,提出最小負載路徑優(yōu)先(SLF, Smallest Load First)選路算法作為最佳路徑選擇判據(jù),降低算法復雜度,進而降低協(xié)議開銷較小,屬先驗式路由協(xié)議范疇,尤其適用于小規(guī)模臨時移動通信網(wǎng)絡。本發(fā)明采用的技術方案是協(xié)議在設計實施上采用事件驅(qū)動機制,處理完相應的事件,若無其它事件到來,則協(xié)議返回空閑等待狀態(tài),引發(fā)協(xié)議狀態(tài)轉(zhuǎn)換的事件共有以下8種,即協(xié)議啟動、協(xié)議退出、收到hello報文、收到response報文、收到update報文、收到delete報文、更新定時器到期和刪除定時器到期,具體實施可以按照以下步驟進行
第一步、節(jié)點1開機后,網(wǎng)絡路由協(xié)議首先進入初始化階段,將網(wǎng)絡拓撲表和路由表都
設置為空;
第二步、初始化完成后,節(jié)點1以洪泛方式發(fā)送兩個hello報文以向四周宣告自己的存在,協(xié)議進入空閑等待狀態(tài);
第三步、當節(jié)點1收到hello報文后,會首先根據(jù)報文內(nèi)容構(gòu)造一個節(jié)點new,構(gòu)造節(jié)點
new完成后,節(jié)點1將按照節(jié)點new的IP地址和節(jié)點new的父節(jié)點IP為索引檢索本地網(wǎng)絡拓撲,此時存在兩種可能;
(一)、若節(jié)點new不在節(jié)點1的本地網(wǎng)絡拓撲中,則節(jié)點1向其直接鄰居節(jié)點(不包括
收到節(jié)點new)發(fā)送update報文,向其直接鄰居報告發(fā)現(xiàn)了新路由,然后,節(jié)點1構(gòu)造ー個
response報文,response報文構(gòu)造完成后,本節(jié)點將該response報文發(fā)送給節(jié)點new,最后,本節(jié)點將節(jié)點new添加到本地網(wǎng)絡拓撲中,至此,通過hello報文發(fā)現(xiàn)新路徑完畢;
(1)、在網(wǎng)絡拓撲結(jié)構(gòu)中,節(jié)點I將收到節(jié)點11、111發(fā)來的hello報文,根據(jù)對hello報
文的處理規(guī)則,節(jié)點1發(fā)現(xiàn)ニ個鄰居節(jié)點,發(fā)現(xiàn)1 -11和1 -111 ニ條路徑、鏈路狀況為單向鏈路;
節(jié)點1收到response報文后,首先根據(jù)response報文的首部構(gòu)造節(jié)點pnode,節(jié)點信
息構(gòu)造完成后,節(jié)點1首先查詢pnode節(jié)點是否出現(xiàn)在本地網(wǎng)絡拓撲中,若存在,將原拓撲
信息中對應節(jié)點的TTL、load和link_state字段的值更新為pnode對應字段的值,若不存在,則將pnode節(jié)點加入到本地網(wǎng)絡拓撲中。然后,依次查詢節(jié)點nodel至noden是否出現(xiàn)在本地網(wǎng)絡拓撲中,若節(jié)點存在,將原拓撲信息中對應節(jié)點的TTL、load和link_state字段更新為node對應字段的值,若節(jié)點不存在,則將節(jié)點添加至本地網(wǎng)絡拓撲中,至此,通過response報文發(fā)現(xiàn)新路徑完畢;
(2)、根據(jù)協(xié)議對response報文的處理,節(jié)點1收到節(jié)點11、節(jié)點111的response報文
后,將把直接路徑1 -11和1 -111之間的鏈路標記為雙向鏈路,同時會發(fā)現(xiàn)三條新的路徑,即1-11 _III、I -II -IV和I —III -II。(ニ)、若該節(jié)點已經(jīng)在網(wǎng)絡拓撲中存在,將網(wǎng)絡拓撲中對應節(jié)點的TTL值為0,load的值更新為new節(jié)點中l(wèi)oad字段的值。然后,節(jié)點1向其直接鄰居節(jié)點(不包括收到節(jié)點new)發(fā)送ー個update報文;
(1)、假設某ー時刻,有ー節(jié)點V開機運行,假設節(jié)點V的發(fā)射功率較小,僅節(jié)點111能
收到其信號,當節(jié)點111收到節(jié)點V的hello報文后,節(jié)點111將會向其直接鄰居節(jié)點發(fā)送update 報又;
(2)、當節(jié)點1收到update報文后,執(zhí)行的操作與收到response報文類似,只不過update報文中僅包含一個路由條目,因此節(jié)點1收到節(jié)點111發(fā)來的update報文后將會在本地網(wǎng)絡拓撲路徑中添加至節(jié)點v的路徑,即發(fā)現(xiàn)新路徑1 -ΠΙ -ν ;
第四步、在已知網(wǎng)絡拓撲結(jié)構(gòu)后,節(jié)點間的通信,采用最小負載路徑優(yōu)先路由算法Smallest Load First ;
(一)、該選路算法的核心是,若到達目的節(jié)點有多條路徑,當有直達路徑是選擇直達路徑,當沒有直達路徑時,則計算每條路徑上節(jié)點的網(wǎng)絡負載之和,選取負載最小的路徑作為最優(yōu)路徑,其他路徑作為備選路徑。設節(jié)點S到達目的節(jié)點D有為…尾η條路徑,每條路徑上的節(jié)點個數(shù)為AU ,因此每條鏈路的負載為
權(quán)利要求
1.一種關于移動Ad-Hoc網(wǎng)絡路徑發(fā)現(xiàn)和選擇的方法,其特征在于所述的移動Ad-Hoc網(wǎng)絡路由發(fā)現(xiàn)和選擇的方法,按照以下步驟進行; 第一步、進入節(jié)點的網(wǎng)絡路由協(xié)議初始化階段,將網(wǎng)絡拓撲表和路由表都設置為空; 第二步、初始化完成后,節(jié)點以洪泛方式發(fā)送兩個hello報文以向四周宣告自己的存在,協(xié)議進入空閑等待狀態(tài); 第三步、節(jié)點收到hello報文后,首先根據(jù)報文內(nèi)容構(gòu)造一個節(jié)點new,構(gòu)造節(jié)點new 完成后,節(jié)點按照節(jié)點new的IP地址和節(jié)點new的父節(jié)點IP為索引檢索本地網(wǎng)絡拓撲,此時存在兩種情況; (一)若節(jié)點new不在節(jié)點的本地網(wǎng)絡拓撲中,貝U節(jié)點向其直接鄰居節(jié)點發(fā)送update報文,向其直接鄰居報告發(fā)現(xiàn)了新路由,然后,節(jié)點構(gòu)造一個response報文,response報文構(gòu)造完成后,本節(jié)點將該response報文發(fā)送給節(jié)點new,最后,本節(jié)點將節(jié)點new添加到本地網(wǎng)絡拓撲中,至此,通過helIo報文發(fā)現(xiàn)新路徑完畢; (1)在網(wǎng)絡拓撲結(jié)構(gòu)中,節(jié)點收到節(jié)點11、⑴發(fā)來的hello報文后,根據(jù)對hello報文的處理規(guī)則,節(jié)點發(fā)現(xiàn)二個鄰居節(jié)點,發(fā)現(xiàn)-i^p -nt二條路徑、鏈路狀況為單向鏈路; 節(jié)點收到response報文后,首先根據(jù)response報文的首部構(gòu)造節(jié)點pnode,節(jié)點信息構(gòu)造完成后,節(jié)點首先查詢pnode節(jié)點是否出現(xiàn)在本地網(wǎng)絡拓撲中,若存在,將原拓撲信息中對應節(jié)點的TTUload和link_state字段的值更新為pnode對應字段的值,若不存在,則將pnode節(jié)點加入到本地網(wǎng)絡拓撲中;然后,依次查詢節(jié)點nodel至noden是否出現(xiàn)在本地網(wǎng)絡拓撲中,若節(jié)點存在,將原拓撲信息中對應節(jié)點的TTL、load和link_state字段更新為node對應字段的值,若節(jié)點不存在,則將節(jié)點添加至本地網(wǎng)絡拓撲中,至此,通過response報文發(fā)現(xiàn)新路徑完畢; (2)根據(jù)協(xié)議對response報文的處理,節(jié)點收到節(jié)點"、節(jié)點⑴的response報文后,將把直接路徑-i^p -111之間的鏈路標記為雙向鏈路,同時會發(fā)現(xiàn)三條新的路徑,即-11、-II-IV和-"I-II; (二)若該節(jié)點已經(jīng)在網(wǎng)絡拓撲中存在,將網(wǎng)絡拓撲中對應節(jié)點的TTL值為0,load的值更新為new節(jié)點中l(wèi)oad字段的值;然后,節(jié)點向其直接鄰居節(jié)點發(fā)送一個update報文;(1)假設某一時刻,有一節(jié)點v開機運行,假設節(jié)點v的發(fā)射功率較小,僅節(jié)點111能收到其信號,當節(jié)點ΙΗ收到節(jié)點¥的hello報文后,節(jié)點111將會向其直接鄰居節(jié)點發(fā)送update報文;(2)當節(jié)點收到update報文后,執(zhí)行的操作與收到response報文類似,只不過update報文中僅包含一個路由條目,因此節(jié)點收到節(jié)點111發(fā)來的update報文后將會在本地網(wǎng)絡拓撲路徑中添加至節(jié)Av的路徑,即發(fā)現(xiàn)新路徑-111 -v ; 第四步、在已知網(wǎng)絡拓撲結(jié)構(gòu)后,節(jié)點間的通信,采用最小負載路徑優(yōu)先路由算法Smallest Load First ; (一)該選路算法的核心是,若到達目的節(jié)點有多條路徑,當有直達路徑是選擇直達路徑,當沒有直達路徑時,則計算每條路徑上節(jié)點的網(wǎng)絡負載之和,選取負載最小的路徑作為最優(yōu)路徑,其他路徑作為備選路徑; 設節(jié)點S到達目的節(jié)點D有乓為…R11 η條路徑,每條路徑上的節(jié)點個數(shù)為》P 2,因此每條鏈路的負載為 =Σ 冬,.-I j-ι I = 令£ = [Ll7Li…4},則節(jié)點S到達節(jié)點D的最優(yōu)路徑為 Rf。
2.根據(jù)權(quán)利要求I所述的關于移動Ad-Hoc網(wǎng)絡路由發(fā)現(xiàn)和選擇的方法,其特征在于所述的網(wǎng)絡路由包括用于維護節(jié)點定期發(fā)送hello報文的一個定時刷新定時器;基本定時時間間隔到了以后,節(jié)點以MAC地址廣播的方式發(fā)送hello報文,同時,節(jié)點會將本地所有路徑的已經(jīng)存活時間THL增加一定時間間隔;同時由節(jié)點計算定時間隔時間內(nèi)節(jié)點網(wǎng)絡負載的平局值,對節(jié)點的網(wǎng)絡負載進行更新,根據(jù)節(jié)點對hello報文的處理規(guī)則,節(jié)點收到鄰居節(jié)點的hello報文后,將對應節(jié)點的已經(jīng)存活時間THL置為O。
3.根據(jù)權(quán)利要求2所述的關于移動Ad-Hoc網(wǎng)絡路由發(fā)現(xiàn)和選擇的方法,其特征在于本路由協(xié)議的定時刷新定時器基本定時時間間隔設定為5s。
4.根據(jù)權(quán)利要求2所述的關于移動Ad-Hoc網(wǎng)絡路由發(fā)現(xiàn)和選擇的方法,其特征在于所述的網(wǎng)絡路由包括一個定期刪除定時器,刪除定時器用于節(jié)點刪除過期路由,刪除定時器的定時間隔設置為某一特定值,定時間隔到,節(jié)點就會遍歷所有路徑,查看節(jié)點的已經(jīng)存活時間THL是否大于定時間隔,如果節(jié)點THL大于定時間隔,節(jié)點就會將該路徑刪除,同時,節(jié)點會向其直接鄰居節(jié)點通告刪除的路徑信息,即發(fā)送delete報文,delete報文中標識了本節(jié)點拓撲路徑信息中過期的路由條目。
5.根據(jù)權(quán)利要求4所述的關于移動Ad-Hoc網(wǎng)絡路由發(fā)現(xiàn)和選擇的方法,其特征在于本路由協(xié)議的刪除定時器的定時間隔設置為60s。
6.根據(jù)權(quán)利要求I所述的關于移動Ad-Hoc網(wǎng)絡路由發(fā)現(xiàn)和選擇的方法,其特征在于當節(jié)點V關機時,節(jié)點111在每個刷新定時間隔將111至路徑的已經(jīng)存活時間TTL值加基本定時間隔,達到路徑刪除時間后,路徑刪除定時器到期,節(jié)點111便將路徑111 _V刪除,同時,節(jié)點111向其直接鄰居發(fā)送delete報文,宣告刪除了路徑;當節(jié)點收到delete報文后,首先根據(jù)delete報文的首部構(gòu)造節(jié)點pnode,然后根據(jù)delete報文中的刪除路由條目構(gòu)造節(jié)點nodel"noden,節(jié)點信息構(gòu)造完成后,節(jié)點首先查詢pnode節(jié)點是否出現(xiàn)在本地網(wǎng)絡拓撲中,若存在,將原拓撲信息中對應節(jié)點的TTL、load和link_state字段的值更新為pnode對應字段的值;然后,節(jié)點依次在本地網(wǎng)絡拓撲信息中檢索節(jié)點nodel"noden,若節(jié)點存在,則將對應節(jié)點刪除;若不存在不做處理。
7.根據(jù)權(quán)利要求I所述的關于移動Ad-Hoc網(wǎng)絡路由發(fā)現(xiàn)和選擇的方法,其特征在于所述的協(xié)議中,最大支持兩跳。
8.根據(jù)權(quán)利要求6所述的關于移動Ad-Hoc網(wǎng)絡路由發(fā)現(xiàn)和選擇的方法,其特征在于根據(jù)本路由協(xié)議的軟件層次模型,在協(xié)議軟件的實現(xiàn)上,采用四個線程加兩個定時器的構(gòu)架方式,四個線程分別是路由協(xié)議主線程、原始數(shù)據(jù)包捕獲線程、數(shù)據(jù)包解析線程和協(xié)議報文處理線程,其中路由協(xié)議主線程在協(xié)議啟動時完成協(xié)議的初始化,之后便進入休眠狀態(tài),當協(xié)議退出時,完成協(xié)議資源的回收;原始數(shù)據(jù)包捕獲線程和數(shù)據(jù)包解析線程完成原始數(shù)據(jù)包捕獲和解析模塊對應的功能;兩個定時器即為更新定時器和刪除定時器,分別完成對應的功能。
全文摘要
本發(fā)明涉及一種關于移動Ad-Hoc網(wǎng)絡路徑發(fā)現(xiàn)和選擇的方法,屬于網(wǎng)絡通信技術領域;本發(fā)明提出一種關于移動Ad-Hoc網(wǎng)絡路徑發(fā)現(xiàn)和選擇的方法,最大支持兩跳,能動態(tài)感知網(wǎng)絡拓撲變化,基于拓撲更新式的路徑發(fā)現(xiàn)算法能迅速準確發(fā)現(xiàn)路徑,提出最小負載路徑優(yōu)先(SLF,SmallestLoadFirst)選路算法作為最佳路徑選擇判據(jù),降低算法復雜度,進而降低協(xié)議開銷較小,屬先驗式路由協(xié)議范疇,傳輸時延較低,特別適用于小規(guī)模臨時移動通信網(wǎng)絡。
文檔編號H04W40/24GK102625402SQ20121005144
公開日2012年8月1日 申請日期2012年3月1日 優(yōu)先權(quán)日2012年3月1日
發(fā)明者董會升, 許伶俐, 邵玉斌, 龍華 申請人:昆明理工大學