技術領域:
本發明涉及一種車輛自組織網絡混合型路由搜索算法(或可稱為路由算法、路由協議或路由方法),根據車輛所在的不同路況動態地調整路由策略,最大程度的增強路由效率。
背景技術:
:
普適性問題:理論上,一般vanet的應用場景可分為市區vanet和高速公路vanet,絕大部分現有路由算法只針對其中一種網絡環境的vanet實施單一搜索策略。這樣的做法很難兼容于動態變化的vanet。即便使用多種路由算法相互切換,現有技術也無法通過準確地感知網絡環境來確定切換時機。
現有路由算法普遍默認,在固定區域內網絡環境是相對穩定的。其中,市區vanet中,節點相對密集,受限于交通法規、擁堵、交通燈及城區街道等外部條件,節點移動速度較慢,移動方向選擇多,外部環境較為復雜、市區內建筑物較多;高速公路vanet中,遮擋少,節點較為分散且沿高速隔離帶的雙方向快速移動。
但是,在實際應用中,市區vanet中車輛節點在高峰時段移動慢,在錯峰時段節點移動速度卻可以很快(如凌晨),但在某些天氣(如雨雪)或特殊路段(如在維修的路段)等情況下,即使在凌晨時段移動速度也會很慢;高速vanet中,雖然在暢通情況下,節點移動快,但在高峰時段(節假日等)出現車輛節點多,甚至擁堵密集的情況,當然這種情況也可能發生在交通事故等情況出現時。另外,隨著一臺車輛的行駛,途徑的vanet的網絡拓撲和物理環境變化速度快且復雜,如車輛從北京北三環公路科學院行駛到北苑會途徑市區高速及郊區等多種區域。
另外,公知技術cn104135436a中,提出了一種車輛自組織網絡路由選擇方法,其特征在于:若源車輛需轉發數據包至目的車輛,則源車輛發送路由請求消息至路由管理中心,路由管理中心根據車輛及網絡狀態信息為源車輛確定候選路由集合,并計算各候選路由的數據傳輸時間,進而選擇總傳輸時延最短路徑作為目標路由;其中,源車輛發送的路由請求消息包括源車輛及目的車輛的車輛標識、源車輛的位置及移動方向、源車輛擬傳輸數據包的長度信息等。其缺點在于需要向管理中心發送消息,浪費傳輸時間,此外,沒有針對不同的vant環境切換路由算法,缺少適應性。
技術實現要素:
為了克服現有技術上的缺陷,本發明提供一種針對不同路況實時調整搜索策略的混合型車輛自組織網絡路由搜索算法。
確立搜索策略切換時機,絕大多數路由算法使用單一的搜索策略,為特定的地理區域所服務,例如市區或高速公路。但是,實際情況中,地理位置僅是網絡環境動態變化的影響要素之一。因此,改進的路由算法中,各搜索策略不應局限僅為莫中特定的地理區域而服務,而需要根據節點密度、節點移動速度(或可視為節點間的連結性)等因素來搜索策略。這樣就需要對策略的切換時間進行研究,在搜索策略實施過程中對節點網絡環境進行實時評估,以便動態調整路由搜索策略。
為了實現上述目的,提出了一種針對不同路況實時調整搜索策略的混合型車輛自組織網絡路由搜索算法,主要分為兩個步驟:1、探索期貪婪轉發策略2、穩定期局部快傳和記憶轉發策略;節點之間進行消息轉發時首先會進入探索期進行貪婪轉發;利用特殊的貪婪度量進行貪婪轉發。源節點需要向目的節點轉發數據包時,當前節點(從源節點開始)在選取下一跳的過程中需要利用貪婪轉發找到自己的下一跳。其中特殊的貪婪度量利用車輛的行駛速度v、當前加速度a、車輛行駛方向d1d2(當前節點和可能作為下一跳的節點的行駛方向)、兩車之間的行駛距離d、輛車的相對速度v等進行擬合。等到公式k=vadvd1d2(僅為示例)滿足公式k的節點可以作為下一跳,如果滿足公式的節點過多則選取最優解作為下一跳。然后此下一跳節點作為新節點用公式k進行貪婪轉發,直到數據包能夠從源節點轉發到目的節點。每個節點再選取下一跳完成后記錄自己的下一跳節點用作記憶轉發使用。
當進行貪婪轉發的過程中,同時源節點s使用泛洪rreq的方式對穩定路由端進行搜索,用于查找包含一致向d行駛的車輛節點的路由段(以下簡成為局部穩定路由段)。穩定路由段包含3個或3個幾點且能節點間鏈路可維持一段時間。在目的節點d處對所有路由段進行打分。如公式(1)所示,tdrtotal表示一路由段的總質量,tdri表示路由中相鄰兩點間鏈路的路由度量值,t表示鏈路的可維持時間。假設車輛節點上有可用的導航儀和導航信息,通過對比未來形勢路線的相似性,來預估鏈路可維持的時間t。
由于使用rrep回傳的方法無法適應動態變化的vanet,我們將最終的穩定路由段通過lsp(locationserviceprovider)回傳到數據包到s。此處公式(2)用于衡量公式(1)中所使用的傳輸代價p,p表示著潛在的路由中每條鏈路的時間維持tn是否滿足使用需求,也就是說當一個路由段的某條鏈路的維持時間大于我們預設的路由段期望維持時間時,此路由段將被視為不可用。tlsp表示通過lsp傳回s所需的時間,w是表示局部快傳中傳輸最短時長的可調參數,也就是局部快傳策略維持的時間。這里我們通過導航儀獲取車輛行駛路徑,得到每一對相鄰車輛節點間鏈路可維持的時間tn。最后,以tdr為代價,使用dijkstra算法計算,找到穩定路由段。在穩定路由段存在時間段內進行局部快傳轉發。
當使用局部快傳策略無法找到包括大于等于三個節點的穩定路由段時,本路由算法將自動轉為使用記憶轉發策略。這個策略的使用需要局部快傳或普通轉發策略的配合,在執行局部快傳或普通轉發策略的過程中,每一個節點c轉發時,該節點需記錄其下一跳節點m及路由度量值val。數據每到達一個節點,首先,判斷c是否曾作為中間節點m為源節點s和目的節點d進行過數據包的轉發。如存在此種(c,m,s,d)關系,則通過計算m相應的路由度量值val’。當val’≦val時,則繼續選取m作為下一跳節點,否則執行貪婪轉發。此種做法的一個好處是省去了貪婪轉發過程中,與所有鄰居節點間交換路由信息的時間,降低延遲。
本發明的有益效果為:
作為多學科交叉的研究,采用機器學習算法對路由算法進行優化是一個新興的研究方向。目前,國內外針對此方面的研究還處于起步階段。本專利重點公開了具有普適性的混合型路由算法,其創新之處是:現有路由算法僅適用于特殊的網絡環境,實施某種固定的搜索策略,無法高效地適應動態變化的vanet。相比之下,本專利提出一種混合式路由算法,設計三種適用于不同網絡環境的路由搜索策略,以實際應用角度出發,實現通過評估網絡環境來動態調整搜索策略,在提高算法普適性的基礎上,滿足vanet在真實應用中的可靠傳輸需求。
一種車輛自組織網絡混合型路由生成算法,使得各搜索策略不局限僅為莫中特定的地理區域而服務,而是根據節點密度、節點移動速度(或可視為節點間的連結性)等因素來搜索策略。
能夠根據車輛所在的不同路況(節點密度高、節點移動快的vanet,例如城區交通路況;節點密度低、節點移動快的vanet,例如高速公路交通路況;節點密度低、節點移動慢的vanet,例如市區交通路況)使用不同的路由搜索策略(包括普通轉發、局部快傳、記憶轉發)動態地調整路由策略,最大程度的增強路由效率。
附圖說明
圖1是本發明的整體流程圖;
圖2是實施例2中所述節點通過貪婪協議尋找最優下一跳的實例示意圖;
圖3是實施例3中探索初期實例示意圖;
首先貪婪轉發進行數據包的轉發,與此同時通過發送rreq包進行探索獲得穩定路由段。
圖4是實施例4中局部快傳實例示意圖;
節點s利用穩定路由段node_1->node_6->node_7->node_8進行轉發過程。從穩定路由段轉發結束后進行貪婪轉發或記憶轉發(此處圖中只出示了貪婪轉發);
圖5是路由維護實例,當穩定路由段某個節點失效之后直接進行貪婪轉發或記憶轉發(此處圖中只出示了貪婪轉發),節點s利用穩定路由node_1->node_6->node_7進行轉發過程,節點node_8失效通過貪婪轉發或記憶轉發(此處圖中只出示了貪婪轉發)尋找到node_12繼續進行轉發;
圖6是記憶轉發實例,通過上次貪婪轉發的記錄,節點記錄了自己的下一跳節點,并且本次轉發時,上一次的下一跳節點存在且滿足繼續成為下一跳的條件,部分節點進行記憶轉發,node_s->node_1、node_3->node_4進行記憶轉發。
具體實施方式
下面將參考附圖來描述本發明的優選實施例
實施例1
如圖1所示為本發明示例性實施方案的系統流程圖;本路由協議開始使用時,首先進入100階段,判斷本次數據包是否轉發完成,如果本次轉發完成則進入170階段,判斷所有數據包是否轉發完成,如果全部完成,通信完成,協議使用結束,如果在100階段本次數據包未轉發完成,則進入110階段。
在110階段進行判定,是否存在穩定路由段,如果存在穩定路由段,則進入120階段,執行局部快傳進行數據包的轉發。待局部快傳階段完成則回到100階段,繼續判斷本次數據包是否完成,如果本次數據包轉發完成,則進行下一次的數據包轉發。如果本次數據包尚未轉發完成,則從100階段進入110階段,判定是否存在穩定路由段,如果存在則重復以上動作,如果不存在則進入130階段。同時,進入160階段,通過泛洪rreq得到穩定路由段,待此動作完成后回到100階段,根據100階段的指示,完成之后所有動作。
在130階段進行判定,是否存有介意轉發節點,如果存有記憶轉發節點則進入140階段,進行記憶轉發。待記憶轉發階段完成后,進入110階段,通過110階段進行判定,根據結果執行110階段需要完成的動作。如果不存在記憶轉發節點,則進入150階段,進行貪婪轉發并記錄下一跳節點(用于下次記憶轉發使用),完成動作后回到110階段,通過110階段的指示,完成之后進行的所有動作。
實施例2
如圖2所示是節點通過貪婪轉發尋找最優的下一跳的實例。當源節點s需要使用貪婪轉發方式向d發送數據包時,由于s到d的距離大于s傳輸距離所以只能從s的傳輸范圍內選取一個節點當做下一跳,假設范圍內只有三個節點(a、b、c且節點上方的方向為當前節點的運動方向),每個節點擁有速度、方向、與上一節點的距離等特征,通過對各種特征綜合整理評估。從圖2中明顯的可以看出a節點最適合作為本次貪婪轉發的下一跳節點。
實施例3
首先直接執行普通轉發策略進行數據傳輸,并在貪婪轉發的每一次轉發過程中都需要記錄自己的下一跳節點,用作記憶轉發使用。與此同時,源節點s使用洪泛rreq的方式對穩定路由段進行搜索。如圖3所示,s首先使用貪婪轉發方式(僅在沒有合適鄰居節點時執行存儲轉發)向d發送數據包,并記錄沿途的下一跳轉發節點數據;同時,s發出洪泛rreq請求,用于查找包含一致向d行駛的車輛節點的路由段(穩定路由段)。
實施例4
圖4是局部快傳實例實例示意圖。當合適的穩定路由段回傳到s后,s將以路由段的進入點node_6為目的節點執行貪婪轉發(或記憶轉發),當數據進入node_1時,將使用穩定路由段node_1->node_6->node_7->node_8進行轉發;當數據到達穩定路由段出口node_8時,再將數據以貪婪轉發(或記憶轉發圖中僅示例貪婪轉發)找到貪婪路徑node_8->node_4->node_d,最終將數據包轉發至目的節點d。
實施例5
圖5是穩定路由段維護實例示意圖;在穩定路由段node_1->node_6->node_7->node_8進行轉發的過程中,當node_7->node_8斷開時,node_1->node_6->node_7部分仍執行局部快傳,而node_7出口處直接執行貪婪轉發,找到最優下一跳node_12,執行node_7->node_12,同理node_12通過貪婪轉發依次尋找找到貪婪路徑node_12->node_4->node_d,最終將數據包轉發至目的節點d。
實施例6
圖6是記憶轉發實例示意圖;通過實施例3貪婪轉發的記錄,節點記錄了自己的下一跳節點,并且本次轉發時,上一次的下一跳節點存在且滿足繼續成為下一跳的條件,部分節點進行記憶轉發,node_s->node_1進行記憶轉發,node_1不存在記憶轉發節點,執行貪婪轉發找到最優下一跳node_6,執行node_1->node_6,node_6不存在記憶轉發節點,執行貪婪轉發找到最優下一跳node_3,執行node_7->node_3,node_3存在記憶轉發,執行node_3->node_4,node_4不存在記憶轉發節點,執行貪婪轉發找到最優下一跳node_9,執行node_4->node_9,最終node_9通過貪婪轉發尋找到目的節點直接將數據包轉發至目的節點d,node_9->node_d。