專利名稱:基于直接/間接矩陣的無線自組織網絡保護路由生成算法的制作方法
技術領域:
本發明涉及無線網絡技術領域,適用于無線自組織網絡應用環境下的路由生成及保護,具體涉及一種基于直接/間接矩陣的無線自組織網絡保護路由生成算法。
背景技術:
2010年論文《On the Feasibility and Efficacy of Protection Routing in IP Networks》首次提出了路由保護(protection routing)的概念,在IP網絡單點失效時確保整個路由轉發還能保持正常,但其提出的路由保護算法無法應用于無線網絡環境,因此路由保護功能無法應用于無線網絡環境。本發明針對無線網絡的特點,在基于傳統的AODV路由協議的基礎上,構建了適用于無線環境的保護路由協議,在獲取路由路徑基礎上生成直接/間接連接矩陣,并基于直接/間接連接矩陣創新性的提出了無線保護路由算法設計,有效保證了保護路由在無線網絡中的廣泛應用。無線自組網按需平面距離矢量路由協議(Ad hoc On-Demand Distance Vector Routing,A0DV)是應用于無線Ad hoc網絡中進行路由選擇的路由協議。具體來說,其是一種反應式路由協議,需要向目標節點發送數據時,源節點才在網絡中發起路由查找過程,找到相應的路由。而很多其它路由協議都是先驗式的,也就是說它們查找路由是不依賴于路徑上的節點是否要發包,而是每個節點維護一張包含到達其它節點的路由信息的路由表, 節點間通過周期性的交換路由信息來不斷更新自身的路由表,以便能夠及時的反映網絡拓撲結構和變化,以維護一致的、及時的、準確的路由信息。不同于先驗式的路由協議,AODV路由協議是一種平面距離矢量路由協議。在AODV中,一個網絡節點需要建立連接時才廣播一個連接建立的請求,其他的 AODV節點轉發這個請求消息,并記錄源節點和回到源節點的臨時路由。當接收連接請求的節點知道到達目標節點的路由時,就把這個路由信息按照先前記錄的回到源節點的臨時路由發回源節點。源節點就開始使用這個經由其他節點并且有最短跳數的路由。當鏈路出現節點故障時,路由錯誤就被回送給源節點,于是源節點就重新發起路由查找的過程。在發生單個節點失效后,會由源節點重新發起路由請求,重新找尋一條新的路由路徑。由于AODV路由協議在單個路由節點的失效時無法再保持正常通信,因此為了有效保障在單個節點失效時無線自組織網絡還能正常通信,我們引入了保護路由功能。首先給出相關概念,節點被保護的定義節點s在目標節點為節點d的路徑中,如果節點s的下一節點出現故障,這時還可以找到第二下一跳節點k (secondary next-hop,簡稱SNH)到達目標節點d,那么稱該節點s對于節點d是被保護的。從被保護節點概述得到保護路由的定義 一條路由的所有節點都是被保護的,那么這條路由就是保護路由。路由保護原始應用場景為具有中心節點的IP網絡,即網絡中有一個中心節點能獲取整個網絡的拓撲情況,從而進行相關路由計算,而無線網絡中不存在中心節點感知全局拓樸,故無法應用其算法進行保護路由的生成;同時原算法還存在算法效率問題,基于目前的算法生成針對全網的保護路由,算法開銷太大,也不適合無線環境。
發明內容
為了克服上述現有技術的不足,本發明的目的在于提供了一種基于直接/間接矩陣的無線自組織網絡保護路由生成算法,將保護路由功能應用到無線自組織網絡應用環境,從而有效提高了無線路由傳輸的可靠性,使得采用該算法的無線自組織網絡具有在單個節點失效情況下保持正常數據傳輸的能力,極大提高了無線自組織網絡的傳輸可靠性, 并且算法易于實現、算法復雜度低。為了實現上述目的,本發明采用的技術方案是于直接/間接矩陣的無線自組織網絡保護路由生成算法,包括以下步驟步驟1,基于AODV擴展的路由協議獲取路由路徑R :在原始的AODV中加入定義為路由請求分組所經過節點的序列表的字段,如果路由請求經過節點B轉發時,節點B就將自己的IP地址寫入該序列表,在路由請求開始發送時默認經過節點的序列表為空,當跳計數加一時同時將轉發節點B加入序列中;任一中間節點對其接收到的每個路由請求分組,首先檢查自己是否在所述序列表中,如果已經存在, 則將該路由請求分組丟棄,如果不存在,則轉發該路由請求分組;目標節點收到從源節點發出的大量路由請求分組,每個路由請求分組中都包含了其經過的節點記錄,形成了相應的路由路徑R,目標節點將所有的路由路徑R保存起來,就形成了路由路徑集S ;步驟2,目標節點生成直接/間接鄰接矩陣A[i,j]遍歷路由路徑集S中所有的路徑,對每條路由路徑R,都進行如下步驟對于路由路徑R,從其相應的序列表中,依次取出節點nodey[ nodeηο Β^_λ,ηο βηο ^ 2..node,].如果當前的A[n0dey,n0dey+1]的記錄表明節點nodey與節點node^沒有直接連接, 說明連接 <nodey,nodey+1> 是一條新路徑,更新 A[nodey,nodey+1]的值,A[nodey,nodey+1]的值表示節點nodey與節點n0dey+1之間的直接連接與間接連接情況,按照定義要求對其值進行更新,并設置更新標志;否則該路徑已經進行了記錄,不需要進行更新;路由路徑中nodez e Lnode1, nodey_J,節點nodez到節點nodey+1不是直接,但存在著間接連接,即節點nodez到Iiodep1可以通過其它節點到達,則對于的所有間接連接 <n0dez,n0dey+1>,首先判定A[n0dez,n0dez+1]是否有直接連接,如果沒有,說明節點nodez到節點n0dey+1的間接連接為新的連接,保持更新標志為真,否則更新標志為否;如果更新標志為否,就不對以后的間接連接A[n0dez,nodey+1]進行更新,遍歷生成所有以節點n0dey+1 為終點的間接連接后,對路由路徑R的處理結束;反復進行對路由路徑集S循環操作,直到循環結束,就生成了直接/間接鄰接矩陣 A[i,j];步驟3,基于鄰接矩陣A[i,j],計算目標節點的保護路由對于一條給定的路由路徑R,在判定其是否受保護時,首先構造節點集
S' = ^odel,node2,......node———》;從節點集 S‘中依次取出節點HOdenodenumb^l,nodenodenumber_2..node,].
如果i S,,則節點nodey受保護,否則判斷節點nodey到節點nodey+i是否受保護如果A[n0dey,nodey+1] < 2,則節點Iiodey到節點n0dey+1原來沒有任何一條間接邊,節點IiodeyF受到保護,則該路由路徑不是保護路由;當Iiodey被保護時,將其從節點集S'中去除,同時去除節點集S'中具有到n0dey+1有兩條間接連接路由的節點Iiodez,如果節點集 S'為空,則路由路徑R為保護路由;反復進行循環操作,直到循環結束;如果節點集S'中所有節點都滿足到其后的一個節點具有一條以上的連接,則說明所有節點都是受到保護的,根據此算法找到的路由即為保護路由。所述步驟1中,目標節點收到的路由分組是以跳數多少為先后順序到達的,跳數越少,則越先到達,并且每個路由分組中都包含了其經過的節點記錄,對其進行數據抽象, 收到的路由路徑表定義為e 1. . roUte。_t],其中Rk是有以下定義的數據結構
R ={ nodenumber表示該條路由路徑中的結點數,并徹^max
k ~ [node,,node2...nodenodenumber個從源結點到目標結點的結點標識集合由函數|Rk| = n0denmibCT得到該條路由路徑中節點數;由函數= SRi = Inodel^node2 + + + + +到該條路由路徑的所有節點集。所述直接/間接鄰接矩陣A[i,j]是具有如下性質的η階方陣當從i到j沒有任何連接,則A[i,j] = O ;當從i到j有一條或一條以上的直接連接,且沒有任何間接連接,則A[i,j] = 1 ;當從i到j有且僅有一條間接連接,并且沒有任何直接連接,則A[i,j] = 2 ;當從i到j有一條或一條以上的直接連接,并且有且僅有一條間接連接,則A[i, j] = 3 ;當從i到j有一條以上的間接連接,則A[i,j] = 4 ;當從i到j有一條或一條以上的直接連接,且有一條以上的間接連接,則A[i,j] =5 ;其中,i和j分別表示路由路徑中的節點。與現有的路由算法相比,本發明所述的技術方法(參見圖1),首先能夠通過對 AODV協議的擴展,實現對源節點與目標節點之間的拓樸感知,盡可能獲取其間存在路由路徑;其次通過基于路由路徑構建直接/間接鄰接矩陣,直接/間接鄰接矩陣是整個算法實施的底層平臺,其反映的節點之間的直接/間接連接情況,為保護路由的生成提供了有力的支撐;最后通過貪心查找的方法,依次從路由路徑庫中取出最短的路由路徑,依據直接/間接鄰接矩陣倒序判定是否其路徑上每個節點是否為被保護節點,從而判明該路由路徑是否為保護路由。采用本算法不僅可以查找出最短的保護路由,同時還可以查找出所有的保護路由。
圖1為根據本發明無線網絡環境下的保護路由生成的基本流程圖。圖2為本發明中擴展AODV的工作流程圖。圖3為本發明基于路徑的直接/間接連接矩陣生成流程圖。圖4為本發明基于直接/間接連接矩陣保護路由計算算法。
具體實施例方式下面結合附圖和實施例對本發明做進一步詳細說明。如圖1所示,本發明為一種基于直接/間接矩陣的無線自組織網絡保護路由生成算法,包括以下步驟1.基于AODV進行擴展,基于AODV擴展的路由協議獲取路由路徑R和路由路徑集 S。在原始的AODV中,當源節點需要發送數據而又沒有到目標節點的有效路由時,就會啟動一個路由發現過程廣播一個路由請求分組(RREQ);中間節點轉發這個請求消息, 并記錄源節點和回到源節點的臨時路由;當收到請求的中間節點或目標節點有一條足夠新的路由到達目標節點時,中間節點或者目標節點以單播的方式向源節點返回一個路由應答分組(RREP),源節點收到該路由應答分組(RREP)后則開始向對應目標節點發送數據。路由請求分組字段如下表所示
權利要求
1.基于直接/間接矩陣的無線自組織網絡保護路由生成算法,其特征在于包括以下步驟步驟1,基于AODV擴展的路由協議獲取路由路徑R :在原始的AODV中加入定義為路由請求分組所經過節點的序列表的字段,如果路由請求經過節點B轉發時,節點B就將自己的IP地址寫入該序列表,在路由請求開始發送時默認經過節點的序列表為空,當跳計數加一時同時將轉發節點B加入序列中;任一中間節點對其接收到的每個路由請求分組,首先檢查自己是否在所述序列表中,如果已經存在,則將該路由請求分組丟棄,如果不存在,則轉發該路由請求分組;目標節點收到從源節點發出的大量路由請求分組,每個路由請求分組中都包含了其經過的節點記錄,形成了相應的路由路徑R,目標節點將所有的路由路徑R保存起來,就形成了路由路徑集S ;步驟2,目標節點生成直接/間接鄰接矩陣A[i,j]遍歷路由路徑集S中所有的路徑,對每條路由路徑R,都進行如下步驟對于路由路徑R,從其相應的序列表中,依次取出節點 nodeA nodeU0denumkr-I,^odenodenumbtr 2..node,].如果當前的A[n0dey,nodey+1]的記錄表明節點Iiodey與節點n0dey+1沒有直接連接,說明連接 <nodey,nodey+1> 是一條新路徑,更新 A[nodey,nodey+1]的值,A[nodey,nodey+1]的值表示節點Iiodey與節點n0dey+1之間的直接連接與間接連接情況,按照定義要求對其值進行更新,并設置更新標志;否則該路徑已經進行了記錄,不需要進行更新;路由路徑中nodez e Lnode1, nodey_J,節點nodez到節點nodey+1不是直接,但存在著間接連接,即節點node,到n0dey+1可以通過其它節點到達,則對于的所有間接連接〈node,, nodey+1>,首先判定A[n0dez,nodez+1]是否有直接連接,如果沒有,說明節點nodez到節點 nodey+1的間接連接為新的連接,保持更新標志為真,否則更新標志為否;如果更新標志為否,就不對以后的間接連接A[n0dez,nodey+1]進行更新,遍歷生成所有以節點n0dey+1為終點的間接連接后,對路由路徑R的處理結束;反復進行對路由路徑集S循環操作,直到循環結束,就生成了直接/間接鄰接矩陣A[i,j];步驟3,基于鄰接矩陣A [i,j],計算目標節點的保護路由對于一條給定的路由路徑R,在判定其是否受保護時,首先構造節點集-S" = {node^node2,......node———》;從節點集 S'中依次取出節點nodenodenumber_A,nodenodenumber_2..node,].如果i ^,則節點Iiodey受保護,否則判斷節點Iiodey到節點n0dey+1是否受保護如果A[n0dey,nodey+1] < 2,則節點Iiodey到節點n0dey+1原來沒有任何一條間接邊,節點nodey 不受到保護,則該路由路徑不是保護路由;當Hodey被保護時,將其從節點集S'中去除,同時去除節點集S'中具有到node”有兩條間接連接路由的節點Iiodez,如果節點集S'為空,則路由路徑R為保護路由;反復進行循環操作,直到循環結束;如果節點集S'中所有節點都滿足到其后的一個節點具有一條以上的連接,則說明所有節點都是受到保護的,根據此算法找到的路由即為保護路由。
2.根據權利要求1所述的基于直接/間接矩陣的無線自組織網絡保護路由生成算法, 其特征在于所述步驟1中,目標節點收到的路由分組是以跳數多少為先后順序到達的, 跳數越少,則越先到達,并且每個路由分組中都包含了其經過的節點記錄,對其進行數據抽象,收到的路由路徑表定義為e 1. . roUte。_t],其中&是有以下定義的數據結構R ={ nodenumber表示該條路由路徑中的結點數,并徹^maxk ~ [node,,node2...nodenodenumber個從源結點到目標結點的結點標識集合由函數|Rk| =n0denumbed#到該條路由路徑中節點數;由函數= SRt = {node^node, + + + + +得到該條路由路徑的所有節點集。
3.根據權利要求1所述的基于直接/間接矩陣的無線自組織網絡保護路由生成算法, 其特征在于所述直接/間接鄰接矩陣A[i,j]是具有如下性質的η階方陣當從i到j沒有任何連接,則A[i,j] = 0 ;當從i到j有一條或一條以上的直接連接,且沒有任何間接連接,則A[i,j] = 1 ; 當從i到j有且僅有一條間接連接,并且沒有任何直接連接,則A[i,j] = 2 ; 當從i到j有一條或一條以上的直接連接,并且有且僅有一條間接連接,則A[i,j]=3 ;當從i到j有一條以上的間接連接,則A[i,j] = 4 ;當從i到j有一條或一條以上的直接連接,且有一條以上的間接連接,則A[i,j] = 5 ; 其中,i和j分別表示路由路徑中的節點。
全文摘要
本發明涉及無線網絡技術領域,為一種基于直接/間接矩陣的無線自組織網絡保護路由生成算法,首先基于AODV協議進行擴展,獲取路由路徑集;然后基于路由路徑集,生成直接/間接鄰接矩陣;最后進行保護路由判斷并輸出最終結果;采用本發明的算法不僅可以查找出最短的保護路由,同時還可以查找出所有的保護路由,因此本發明可有效提高無線路由傳輸的可靠性,使得采用該算法的無線自組織網絡具有在單個節點失效后情況下保持正常路由傳輸的能力,極大提高了無線自組織網絡的傳輸可靠性,并且算法易于實現、算法復雜度低。
文檔編號H04W84/18GK102573000SQ20121000244
公開日2012年7月11日 申請日期2012年1月6日 優先權日2012年1月6日
發明者孟坤, 林闖, 祝林 申請人:清華大學