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