專利名稱:一種基于鏈路擁塞度的動態(tài)多徑olsr路由方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種移動Ad Hoc網(wǎng)絡(luò)的路由方法,特別是涉及一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法。
背景技術(shù):
移動Ad Hoc網(wǎng)絡(luò)(移動自組織網(wǎng)絡(luò)),又稱MANET (Mobile Ad Hoc Networks),是由多個帶有無線收發(fā)信裝置的移動節(jié)點組成的一個無線移動通信網(wǎng)絡(luò),它本身是臨時組建的,不依賴于任何固定的基礎(chǔ)設(shè)施。網(wǎng)絡(luò)中的各節(jié)點之間地位平等,都參與路由發(fā)現(xiàn)與路由維護。移動Ad Hoc網(wǎng)絡(luò)比有中心的無線網(wǎng)絡(luò)更堅固耐用、具有更高的抗毀性,比較適用于會議、戰(zhàn)場、搶險、救援、探險、危險環(huán)境中的目標監(jiān)控等臨時場合的通信。因此,對移動Ad Hoc網(wǎng)絡(luò)進行研究具有重要的意義。最優(yōu)鏈路狀態(tài)路由協(xié)議(OptimizedLink State Routing Protocol, 0LSR)是由因特網(wǎng)工程任務(wù)組(Internet Engineering Task Force, IETF)MANET工作組為無線移動 Ad Hoc網(wǎng)絡(luò)提出的一種標準化的表驅(qū)動式優(yōu)化鏈路狀態(tài)路由協(xié)議,它是為了適應(yīng)無線移動自組織網(wǎng)的需求,對純鏈路狀態(tài)路由算法進行優(yōu)化而形成的。OLSR實質(zhì)上是先應(yīng)式路由,網(wǎng)絡(luò)中每個節(jié)點實時維護到其他節(jié)點的路由,所以在數(shù)據(jù)轉(zhuǎn)發(fā)之前節(jié)點的路由表中就已經(jīng)存在到目的節(jié)點的路由,這使得OLSR路由協(xié)議具有尋路時延小的優(yōu)點。OLSR路由表中存儲的是單徑路由信息,然而單徑路由很容易造成一條路徑的過度使用,這不但會導致?lián)砣漠a(chǎn)生,還會導致該路徑上的節(jié)點由于能量的過度消耗而失效,發(fā)生鏈路中斷,導致拓撲結(jié)構(gòu)變化;而多徑路由采用多條路徑進行數(shù)據(jù)量分流,將原本集中在一條路徑上的負載分配到多條路徑上,這樣不僅可以緩解擁塞,平衡網(wǎng)絡(luò)負載,而且還能降低由于能量消耗殆盡導致的網(wǎng)絡(luò)分割或拓撲變化發(fā)生的概率。因此,研究OLSR多徑路由協(xié)議具有重要意義。但是,多徑機制下要提高網(wǎng)絡(luò)性能必然增加節(jié)點開銷,表驅(qū)動路由協(xié)議若為每個節(jié)點計算并保存到達所有其他節(jié)點的多條路徑,則隨著節(jié)點數(shù)目的增長,僅僅一次路由更新的開銷都將是巨大的,因此,本專利的重點主要集中在保持OLSR路由協(xié)議中多徑路由機制優(yōu)點的基礎(chǔ)上降低多徑機制在表驅(qū)動路由協(xié)議中的開銷上。
發(fā)明內(nèi)容
本發(fā)明提出基于鏈路擁塞度的動態(tài)多徑OLSR路由方法(Link Congestion Degree based Dynamic Multipath 0LSR, LCDDM-OLSR),目的是在傳統(tǒng) OLSR 路由協(xié)議的基礎(chǔ)上, 通過融合鏈路擁塞度信息和多徑機制,減少網(wǎng)絡(luò)中擁塞的發(fā)生。本發(fā)明首先引入鏈路擁塞度信息來反映節(jié)點的負載狀況,在節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)前參考下一跳節(jié)點的負載狀況,使得 LCDDM-0LSR路由方法具有負載自適應(yīng)性;其次,引入多徑機制,并將其與鏈路擁塞度信息相融合,提出基于鏈路擁塞度的動態(tài)多徑機制,該機制結(jié)合了按需路由的思想,在鏈路擁塞度信息、源節(jié)點到目的節(jié)點的數(shù)據(jù)傳輸量大小以及源節(jié)點一跳范圍內(nèi)的局部區(qū)域負載滿足一定條件時動態(tài)啟用多徑機制按需地進行路由發(fā)現(xiàn),路由發(fā)現(xiàn)過程可自動避開負載過重節(jié)點。在規(guī)模較大的網(wǎng)絡(luò)環(huán)境中,動態(tài)多徑機制能夠明顯減少傳統(tǒng)多徑機制在表驅(qū)動路由協(xié)議中的路由更新與維護開銷。在多徑機制啟用之前,節(jié)點仍然采用單徑機制進行數(shù)據(jù)轉(zhuǎn)發(fā)。實現(xiàn)本發(fā)明目的的技術(shù)解決方案為(I)引入鏈路擁塞度信息LCD (Link Congestion Degree)來反映節(jié)點的負載狀況。 鏈路擁塞度指的是節(jié)點MAC層接口緩存隊列中已被占用空間與總空間的比值,即是所有未處理消息的總字節(jié)數(shù)與緩存隊列容量字節(jié)數(shù)的比值,通過MAC層為網(wǎng)絡(luò)層提供的服務(wù)接口可以獲得MAC層緩存隊列中已被占用空間大小以及隊列總空間大小,繼而計算出LCD值。為IXD設(shè)定一個閾值Ta,Ta G (0,I)。若IXD G (0,Tj,則稱該節(jié)點為負載正常節(jié)點;g!XD G (Ta,I),則稱該節(jié)點為即將擁塞節(jié)點,如果節(jié)點繼續(xù)接收數(shù)據(jù),那么緩沖區(qū)就會被占滿,之后到來的數(shù)據(jù)包就會被丟棄;若LCD = I,則該節(jié)點為擁塞節(jié)點。(2)對于要傳輸?shù)臄?shù)據(jù)而言,節(jié)點分為源節(jié)點、中間節(jié)點與目的節(jié)點。源節(jié)點是產(chǎn)生數(shù)據(jù)的節(jié)點,中間節(jié)點是轉(zhuǎn)發(fā)數(shù)據(jù)的節(jié)點,目的節(jié)點是最終接收數(shù)據(jù)的節(jié)點。傳輸數(shù)據(jù)時源節(jié)點執(zhí)行的是源節(jié)點路由算法,中間節(jié)點執(zhí)行的是中間節(jié)點路由算法,目的節(jié)點收到數(shù)據(jù)后交付應(yīng)用層進行處理。當源節(jié)點滿足多徑機制的啟用條件時動態(tài)啟用多徑機制,而中間節(jié)點采用的永遠是單徑機制。其中,多徑機制的啟用條件包括原路由下一跳節(jié)點LCDS (Ta,l]、源節(jié)點到目的節(jié)點的同批數(shù)據(jù)量大小超過下一跳節(jié)點緩存隊列總空間大小以及源節(jié)點所在的一跳范圍的局部區(qū)域負載正常。對于源節(jié)點所在的一跳范圍的局部區(qū)域負載情況,引入平均鏈路擁塞度@來反映,@是節(jié)點自身的擁塞度及其所有鄰居節(jié)點擁塞度的平均值,其計算方法如公式(I) 所示。LCD = ~~(LCD(node) +X LCD(Iieighbour1))(I)
m + 1tt其中m為節(jié)點node的鄰居節(jié)點數(shù)目,IXD (node)為節(jié)點node的擁塞度, LCD(Iieighbouri)為節(jié)點node的第i個鄰居節(jié)點Iieighbouri的擁塞度。為@設(shè)定一個閾值Tb,TbG (0,I)。若@ >Tb,則認為節(jié)點一跳范圍內(nèi)的局部區(qū)域負載過重,發(fā)生擁塞的可能性較高,因此不適合采用新的路由發(fā)現(xiàn)機制以免進一步加重網(wǎng)路負載,導致?lián)砣?;否則,認為一跳范圍內(nèi)的局部區(qū)域負載正常,存在某一個或某幾個鄰居節(jié)點其負載較輕,可以通過它們尋找新的無擁塞路徑以平衡網(wǎng)絡(luò)負載,緩解擁塞狀況。(3)當源節(jié)點原路由下一跳節(jié)點負載過重而又達不到多徑機制的啟用條件時,啟用旁路路由機制尋找可以避開下一跳即將擁塞節(jié)點的無擁塞旁路來代替原路由進行數(shù)據(jù)轉(zhuǎn)發(fā)。中間節(jié)點的下一跳節(jié)點負載過重時,也采用旁路路由機制。這里的節(jié)點負載過重指的是IXD值大于Ta。本發(fā)明所涉及的數(shù)據(jù)結(jié)構(gòu)介紹如下。節(jié)點在原有OLSR協(xié)議的基礎(chǔ)上,需要附加存儲的表結(jié)構(gòu)如下。I)局部擁塞度表,格式為〈節(jié)點地址,節(jié)點鏈路擁塞度IXD〉。該表格中第一項用于記錄節(jié)點自身的擁塞度信息,會定時計算更新,后面各項用于記錄鄰居節(jié)點的擁塞度信息, 會根據(jù)來自鄰居節(jié)點的Hello消息所攜帶的LCD值更新。2)路由請求表,格式為〈源節(jié)點地址,路由請求序列號,標志 >。該表格用于保存最近收到的路由請求分組信息。3)路由應(yīng)答表,格式為〈目的節(jié)點地址,路由請求序列號,標志 >。該表格用于保存最近收到的路由應(yīng)答分組信息。其中路由請求序列號為與該路由應(yīng)答分組相對應(yīng)的路由請求分組攜帶的路由請求序列號。4)源路由緩存表,格式為〈目的節(jié)點地址,到目的節(jié)點的完整節(jié)點地址序列,路徑條目生存周期 >。該表格用于保存旁路路由機制和多徑路由機制尋找到的可達目的節(jié)點的無擁塞路徑。每個路由條目都設(shè)有生存時間,定時刪除,以保證所存路徑的無擁塞性。在原有OLSR協(xié)議的基礎(chǔ)上,需要修改的消息格式如下。I)將原有OLSR協(xié)議Hello消息8比特的保留字段更改為IXD字段,用于攜帶鏈路擁塞度信息,其它字段與原有OLSR協(xié)議相同。2)路由請求分組和應(yīng)答分組是在原有DSR協(xié)議的基礎(chǔ)上,添加了一個標志Flag, 用于標識產(chǎn)生路由請求分組的節(jié)點進行的路由發(fā)現(xiàn)是多徑路由發(fā)現(xiàn)還是旁路路由發(fā)現(xiàn)。 Flag = O為旁路路由發(fā)現(xiàn),F(xiàn)lag = I為多徑路由發(fā)現(xiàn)。本發(fā)明路由方法的總體流程如下。I)源節(jié)點要發(fā)送數(shù)據(jù)時,先查看本地OLSR路由表中是否已經(jīng)存在到達目的節(jié)點的路徑,若不存在則表示目的節(jié)點不可達,不進行數(shù)據(jù)發(fā)送,結(jié)束;若存在路徑,查看本地維護的局部擁塞度表中路徑的下一跳節(jié)點的鏈路擁塞度IXD,若IXD ( Ta,Ta是IXD的閾值且 Ta e (0,I),則按照查找到的路徑轉(zhuǎn)發(fā)數(shù)據(jù);否則轉(zhuǎn)到(2);2)若源節(jié)點到目的節(jié)點的數(shù)據(jù)量大小超過下一跳節(jié)點緩存隊列總空間大小,則轉(zhuǎn)到(3),否則轉(zhuǎn)到(5);3)查找本地源路由緩存表,若有到目的節(jié)點的多條路由記錄,則使用這些記錄中的前N條路由進行并行數(shù)據(jù)轉(zhuǎn)發(fā),N是預先設(shè)定的路徑條數(shù);否則轉(zhuǎn)到(4);4)計算源節(jié)點所在的一跳范圍的平均鏈路擁塞度而^LCD £(0,況,1;是1^ 的閾值且Tb e (O, I),則啟用多徑路由機制尋找多條無擁塞不相交多徑,并使用多條路徑進行并行數(shù)據(jù)轉(zhuǎn)發(fā);否則,降低發(fā)送速率;5)查找本地源路由緩存表,若有到目的節(jié)點的路由記錄,則使用表中第一條記錄中的路由進行數(shù)據(jù)轉(zhuǎn)發(fā);否則,啟用旁路路由機制尋找到目的節(jié)點的一條旁路進行數(shù)據(jù)轉(zhuǎn)發(fā);6)中間節(jié)點收到數(shù)據(jù)分組時,先查看本地OLSR路由表中是否已經(jīng)存在到達目的節(jié)點的路徑,若不存在,丟棄數(shù)據(jù)分組,結(jié)束;若存在路徑,查看本地維護的下一跳節(jié)點的鏈路擁塞度IXD,若IXD ( Ta,則按照查找到的路徑轉(zhuǎn)發(fā)數(shù)據(jù);若IXD > Ta,查找本地源路由緩存表,若有到目的節(jié)點的路由記錄,則使用表中第一條記錄中的路由進行數(shù)據(jù)發(fā)送;否則, 啟用旁路路由機制尋找到目的節(jié)點的一條旁路進行數(shù)據(jù)轉(zhuǎn)發(fā);7)后續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)的中間節(jié)點按照步驟(3)繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù),直至數(shù)據(jù)包到達目的節(jié)點。本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點本發(fā)明在保留多徑機制本身的平衡網(wǎng)絡(luò)負載、避免或緩解擁塞、增大網(wǎng)絡(luò)吞吐量、減少端到端延時等優(yōu)點的基礎(chǔ)上,采用動態(tài)多徑機制,只在滿足啟用條件時按需地進行多徑路由發(fā)現(xiàn)與路由維護,大大降低多徑機制在表驅(qū)動路由協(xié)議中路由更新與維護開銷。同時,采用鏈路擁塞度信息、源節(jié)點到目的節(jié)點的數(shù)據(jù)傳輸量大小以及源節(jié)點一跳范圍內(nèi)的局部區(qū)域負載作為多徑機制的啟用條件,使得動態(tài)多徑機制更加高效。另外,按需路由發(fā)現(xiàn)過程自動避開負載過重節(jié)點,使其不參與之后的數(shù)據(jù)轉(zhuǎn)發(fā),可以進一步平衡網(wǎng)絡(luò)負載,避免或緩解擁塞。
圖
圖
圖
圖
圖
圖
圖
圖
圖
具體實施例方式本發(fā)明一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,(I)源節(jié)點要發(fā)送數(shù)據(jù)時,先查看本地OLSR路由表中是否已經(jīng)存在到達目的節(jié)點的路徑,若不存在則表示目的節(jié)點不可達,不進行數(shù)據(jù)發(fā)送,結(jié)束;若存在路徑,查看本地維護的局部擁塞度表中路徑的下一跳節(jié)點的鏈路擁塞度IXD,若IXD ( Ta,Ta是IXD的閾值且 Ta G (0,I),則按照查找到的路徑轉(zhuǎn)發(fā)數(shù)據(jù);否則轉(zhuǎn)到步驟(2);(2)若源節(jié)點到目的節(jié)點的數(shù)據(jù)量大小超過下一跳節(jié)點緩存隊列總空間大小,則轉(zhuǎn)到步驟(3),否則轉(zhuǎn)到步驟(5);(3)查找本地源路由緩存表,若有到目的節(jié)點的多條路由記錄,則使用這些記錄中的前N條路由進行并行數(shù)據(jù)轉(zhuǎn)發(fā),N是預先設(shè)定的路徑條數(shù);否則轉(zhuǎn)到步驟(4);(4)計算源節(jié)點所在的一跳范圍的平均鏈路擁塞度若G(0,Tb], Tb是 @的閾值且TbE (0,I),則啟用多徑路由機制尋找多條無擁塞不相交多徑,并使用多條路徑進行并行數(shù)據(jù)轉(zhuǎn)發(fā);否則,降低發(fā)送速率;(5)查找本地源路由緩存表,若有到目的節(jié)點的路由記錄,則使用表中第一條記錄中的路由進行數(shù)據(jù)轉(zhuǎn)發(fā);否則,啟用旁路路由機制尋找到目的節(jié)點的一條旁路進行數(shù)據(jù)轉(zhuǎn)發(fā);(6)中間節(jié)點收到數(shù)據(jù)分組時,先查看本地OLSR路由表中是否已經(jīng)存在到達目的節(jié)點的路徑,若不存在,丟棄數(shù)據(jù)分組,結(jié)束;若存在路徑,查看本地維護的下一跳節(jié)點的鏈路擁塞度IXD,若IXD ( Ta,則按照查找到的路徑轉(zhuǎn)發(fā)數(shù)據(jù);若IXD > Ta,查找本地源路由緩存表,若有到目的節(jié)點的路由記錄,則使用表中第一條記錄中的路由進行數(shù)據(jù)發(fā)送;否則, 啟用旁路路由機制尋找到目的節(jié)點的一條旁路進行數(shù)據(jù)轉(zhuǎn)發(fā);(7)后續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)的中間節(jié)點按照步驟(3)繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù),直至數(shù)據(jù)包到達目的節(jié)點。本發(fā)明一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,所述鏈路擁塞度LCD是節(jié)點MAC層接口緩存隊列中已被占用空間與總空間的比值,即是所有未處理消息的總字節(jié)數(shù)與緩存隊列容量字節(jié)數(shù)的比值;平均鏈路擁塞度@反映節(jié)點所在的一跳范圍的局部區(qū)域負載情況,是節(jié)點自身的擁塞度及其所有鄰居節(jié)點擁塞度的平均值,其計算方法如公式(I) 所示LCD = ~~(LCD(node) +X LCD(Iieighbour1))(2)
m + 1tt其中m為節(jié)點node的鄰居節(jié)點數(shù)目,IXD (node)為節(jié)點node的擁塞度, LCD(Iieighbouri)為節(jié)點node的第i個鄰居節(jié)點Iieighbouri的擁塞度。本發(fā)明一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,節(jié)點在原有OLSR協(xié)議的基礎(chǔ)上,需要附加存儲的表結(jié)構(gòu)如下I)局部擁塞度表,格式為〈節(jié)點地址,節(jié)點鏈路擁塞度IXD> ;該表格中第一項用于記錄節(jié)點自身的擁塞度信息,會定時計算更新,后面各項用于記錄鄰居節(jié)點的擁塞度信息, 會根據(jù)來自鄰居節(jié)點的Hello消息所攜帶的LCD值更新;2)路由請求表,格式為〈源節(jié)點地址,路由請求序列號,標志〉;該表格用于保存最近收到的路由請求分組信息;3)路由應(yīng)答表,格式為〈目的節(jié)點地址,路由請求序列號,標志 > ;該表格用于保存最近收到的路由應(yīng)答分組信息;其中路由請求序列號為與該路由應(yīng)答分組相對應(yīng)的路由請求分組攜帶的路由請求序列號;4)源路由緩存表,格式為〈目的節(jié)點地址,到目的節(jié)點的完整節(jié)點地址序列,路徑條目生存周期 > ;該表格用于保存旁路路由機制和多徑路由機制尋找到的可達目的節(jié)點的無擁塞路徑;每個路由條目均設(shè)有生存時間;在原有OLSR協(xié)議的基礎(chǔ)上,需要修改的消息格式如下5)將原有OLSR協(xié)議Hello消息8比特的保留字段更改為IXD字段,用于攜帶鏈路擁塞度信息,其它字段與原有OLSR協(xié)議相同;6)路由請求分組和應(yīng)答分組是在原有DSR協(xié)議的基礎(chǔ)上,添加了一個標志Flag, 用于標識產(chǎn)生路由請求分組的節(jié)點進行的路由發(fā)現(xiàn)是多徑路由發(fā)現(xiàn)還是旁路路由發(fā)現(xiàn); Flag = O為旁路路由發(fā)現(xiàn),F(xiàn)lag = I為多徑路由發(fā)現(xiàn)。本發(fā)明基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,N表示預先設(shè)定的路徑條數(shù)且 N > 1,η表示已經(jīng)找到的路徑條數(shù)且初值為0,多徑路由機制的具體步驟如下(I)源節(jié)點啟用多徑路由發(fā)現(xiàn)過程,構(gòu)造并向周圍廣播路由請求分組RREQ,同時啟用計時器對路由發(fā)現(xiàn)過程進行計時,轉(zhuǎn)到(2);(2)判斷計時器是否計時結(jié)束,若計時結(jié)束,轉(zhuǎn)到(3),否則轉(zhuǎn)到(6);(3)查看η大小,若η = 0,則路由發(fā)現(xiàn)失敗,轉(zhuǎn)到(4),否則用η條路徑進行并行數(shù)據(jù)傳輸,結(jié)束;(4)查看OLSR路由表中原路由是否仍然存在,若存在轉(zhuǎn)到(5),否則不進行數(shù)據(jù)發(fā)送,結(jié)束;(5)查看下一跳節(jié)點的IXD,若IXDSTa,則用原路由發(fā)送數(shù)據(jù),結(jié)束;否則,降低發(fā)送速率,結(jié)束;(6)查看是否收到路由應(yīng)答分組RREP,若是,轉(zhuǎn)到(7),否則轉(zhuǎn)到⑵;
(7)將RREP中“應(yīng)答分組路由”字段攜帶的路由信息保存到源路由緩存表中,并將找到的路徑條數(shù)η加1,轉(zhuǎn)到(8);(8)若11 < N,轉(zhuǎn)到(2),否則用N條路徑進行并行數(shù)據(jù)傳輸,結(jié)束;其中,并行數(shù)據(jù)傳輸采用加權(quán)循環(huán)調(diào)度算法將數(shù)據(jù)流分配到多條不同的路徑上進行傳輸。本發(fā)明一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,所述旁路路由機制的具體步驟如下(I)啟用路由發(fā)現(xiàn)過程,向周圍廣播路由請求分組RREQ,同時啟用計時器,對路由發(fā)現(xiàn)過程進行計時,轉(zhuǎn)到(2);(2)若在計時時間內(nèi)收到路由應(yīng)答分組RREP,轉(zhuǎn)到(3),否則路由發(fā)現(xiàn)失敗,轉(zhuǎn)到 ⑷;(3)將該RREP中“應(yīng)答分組路由”字段攜帶的路由信息保存到源路由緩存表中,并采用源路由緩存表中的路由進行數(shù)據(jù)轉(zhuǎn)發(fā),結(jié)束;(4)查看OLSR路由表中原路由是否仍然存在,若存在,轉(zhuǎn)到(5),否則丟棄數(shù)據(jù)包, 結(jié)束;(5)查看原路由下一跳節(jié)點IXD,若等于1,則降低發(fā)送速率,結(jié)束;否則,按照原路由轉(zhuǎn)發(fā)數(shù)據(jù),結(jié)束。本發(fā)明一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,所述路由請求分組RREQ 的處理流程如下(I)查看本節(jié)點的鏈路擁塞度信息,若LCD ( Ta,轉(zhuǎn)到(2);否則不轉(zhuǎn)發(fā)RREQ而直接丟棄,結(jié)束;(2)查看該RREQ的Flag字段值,若為0,按照旁路路由請求分組處理算法進行處理,結(jié)束;若為1,按照多徑路由請求分組處理算法進行處理,結(jié)束。本發(fā)明基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,所述旁路路由請求分組的處理算法如下(I)檢查路由請求表中是否已經(jīng)有該RREQ分組的記錄,若有,則直接丟棄,結(jié)束; 否則轉(zhuǎn)到⑵;(2)若RREQ的目的節(jié)點為節(jié)點本身,則構(gòu)造并向源節(jié)點發(fā)送路由應(yīng)答分組RREP, 結(jié)束;否則在RREQ中加入本節(jié)點地址并繼續(xù)轉(zhuǎn)發(fā)該RREQ,結(jié)束。本發(fā)明一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,所述多徑路由請求分組處理算法如下(I)若路由請求分組的目的節(jié)點為節(jié)點本身,則構(gòu)造并發(fā)送路由應(yīng)答分組RREP, 結(jié)束;否則轉(zhuǎn)到⑵;(2)檢查路由請求表中是否已經(jīng)有該RREQ分組的記錄,若有,則直接丟棄,結(jié)束; 否則在RREQ中加入該節(jié)點地址并繼續(xù)轉(zhuǎn)發(fā)該RREQ,結(jié)束。本發(fā)明一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,所述路由應(yīng)答分組RREP 的處理流程如下(I)查看該節(jié)點是否為路由應(yīng)答分組RREP的目的節(jié)點,若是,則保存RREP中攜帶的路由信息,結(jié)束;否則轉(zhuǎn)到⑵;
(2)查看RREP的Flag字段,若Flag = 0,轉(zhuǎn)發(fā)該RREP,結(jié)束;否則,轉(zhuǎn)到(3);(3)查看路由應(yīng)答表,若路由應(yīng)答表中已經(jīng)記錄有該RREP,丟棄該RREP,結(jié)束;否則,轉(zhuǎn)發(fā)RREP,結(jié)束。下面結(jié)合附圖進一步詳細說明本發(fā)明。圖I是Hello消息格式示意圖。本發(fā)明在原有OLSR協(xié)議Hello消息格式的基礎(chǔ)上,將原來的8比特的保留字段更改為LCD字段,用于攜帶鏈路擁塞度信息,其它字段與原有OLSR協(xié)議一樣。節(jié)點在計算出自己的LCD值后只取小數(shù)點后兩位再乘以100放到Hello 消息中。這樣,Hello消息中IXD字段的取值為0 100,節(jié)點收到Hello消息后取出IXD 字段的值除以100寫入局部擁塞度表中。本發(fā)明只對Hello消息一個字段內(nèi)容作了修改, 在沒有增加任何額外控制開銷的基礎(chǔ)上,將本節(jié)點的鏈路擁塞度擴散出去。圖2和圖3分別是本發(fā)明的路由請求分組和應(yīng)答分組的格式示意圖。本發(fā)明在原有DSR協(xié)議的路由請求和應(yīng)答分組基礎(chǔ)上,添加了一個標志Flag,用于標識產(chǎn)生路由請求分組的節(jié)點進行的路由發(fā)現(xiàn)是多徑路由發(fā)現(xiàn)還是旁路路由發(fā)現(xiàn),F(xiàn)lag = 0為旁路路由發(fā)現(xiàn),F(xiàn)lag = I為多徑路由發(fā)現(xiàn)。另外,由于收到路由請求分組RREQ的中間節(jié)點不構(gòu)造路由應(yīng)答分組RREP,而只由目的節(jié)點構(gòu)造RREP,那么RREP返回到RREQ源節(jié)點需要經(jīng)過的節(jié)點序列將恰好是RREP源路由記錄中從源節(jié)點到目的節(jié)點的完整節(jié)點序列的反序。圖4是源節(jié)點路由算法流程圖。產(chǎn)生數(shù)據(jù)的節(jié)點執(zhí)行源節(jié)點路由算法,其具體步驟如下。(I)查看本地OLSR路由表中是否已經(jīng)存在到達目的節(jié)點的路徑,若不存在則表示目的節(jié)點不可達,不進行數(shù)據(jù)發(fā)送,結(jié)束;若存在路徑,則轉(zhuǎn)到(2);(2)查看本地維護的局部擁塞度表中路徑的下一跳節(jié)點的擁塞度LCD,若 LCD ( Ta,則按照原路徑轉(zhuǎn)發(fā)數(shù)據(jù),結(jié)束;否則轉(zhuǎn)到(3);(3)若源節(jié)點到目的節(jié)點的數(shù)據(jù)量大小超過下一跳節(jié)點緩存隊列總空間大小(同構(gòu)網(wǎng)絡(luò)中所有節(jié)點緩存隊列容量相等,則下一跳節(jié)點緩存隊列容量等于本節(jié)點緩存隊列容量,本節(jié)點通過MAC層為網(wǎng)絡(luò)層提供的服務(wù)接口就可以獲得其緩存隊列容量),則轉(zhuǎn)到(4), 否則,轉(zhuǎn)到(6);(4)查找本地源路由緩存表,若有到目的節(jié)點的多條路由記錄,則使用這些記錄中的前n條(n ( N)路由進行并行數(shù)據(jù)傳輸,結(jié)束;否則轉(zhuǎn)到(5);(5)計算源節(jié)點一跳范圍內(nèi)的局部區(qū)域的平均鏈路擁塞度@。若@ > Tb,降低源節(jié)點發(fā)送速率,結(jié)束;否則,啟用多徑路由機制進行路徑發(fā)現(xiàn)與數(shù)據(jù)發(fā)送,結(jié)束;(6)查找本地源路由緩存表,若有到目的節(jié)點的路由記錄,則使用表中第一條記錄中的路由進行數(shù)據(jù)發(fā)送,結(jié)束;否則,啟用旁路路由機制,尋找到目的節(jié)點的一條旁路進行數(shù)據(jù)發(fā)送,結(jié)束。圖5是中間節(jié)點路由算法流程圖。數(shù)據(jù)傳輸過程中進行數(shù)據(jù)轉(zhuǎn)發(fā)的中間節(jié)點執(zhí)行中間節(jié)點路由算法,其具體步驟如下。(I)提取數(shù)據(jù)分組中的目的節(jié)點地址,查找本地OLSR路由表中是否已經(jīng)存在到達目的節(jié)點的路由,若沒有表示路由已經(jīng)失效,鏈路發(fā)生中斷,丟棄數(shù)據(jù)分組,結(jié)束;若有路徑,則轉(zhuǎn)到⑵;(2)查看本地維護的下一跳節(jié)點的鏈路擁塞度IXD,若IXD ( Ta,則按照查找到的路徑轉(zhuǎn)發(fā)數(shù)據(jù),結(jié)束;否則轉(zhuǎn)到(3);(3)查找本地源路由緩存表,若有到目的節(jié)點的路由記錄,則使用表中第一條記錄中的路由進行數(shù)據(jù)發(fā)送,結(jié)束;否則,啟用旁路路由機制,尋找到目的節(jié)點的一條旁路進行數(shù)據(jù)發(fā)送,結(jié)束。圖6是旁路路由機制算法流程圖。旁路路由機制的目的是尋找一條可以避開下一跳負載過重節(jié)點的到目的節(jié)點的無擁塞旁路代替原路由進行數(shù)據(jù)轉(zhuǎn)發(fā),其具體步驟如下。(6)啟用路由發(fā)現(xiàn)過程,向周圍廣播路由請求分組RREQ,同時啟用計時器,對路由發(fā)現(xiàn)過程進行計時,轉(zhuǎn)到(2);(7)若在計時時間內(nèi)收到路由應(yīng)答分組RREP,轉(zhuǎn)到(3),否則路由發(fā)現(xiàn)失敗,轉(zhuǎn)到 ⑷;(8)將該RREP中“應(yīng)答分組路由”字段攜帶的路由信息保存到源路由緩存表中,并采用源路由緩存表中的路由進行數(shù)據(jù)轉(zhuǎn)發(fā),結(jié)束;(9)查看OLSR路由表中原路由是否仍然存在,若存在,轉(zhuǎn)到(5),否則丟棄數(shù)據(jù)包, 結(jié)束;(10)查看原路由下一跳節(jié)點IXD,若等于1,則降低發(fā)送速率,結(jié)束;否則,按照原路由轉(zhuǎn)發(fā)數(shù)據(jù),結(jié)束。圖7是多徑路由機制算法流程圖。多徑路由機制的目的是尋找可以避開下一跳即將擁塞節(jié)點到達目的節(jié)點的多條無擁塞路徑(路徑條數(shù)為N,N> I)進行數(shù)據(jù)發(fā)送,用η表示已經(jīng)找到的路徑數(shù),其初值為O。多徑路由機制的具體步驟如下。(9)源節(jié)點啟用多徑路由發(fā)現(xiàn)過程,構(gòu)造并向周圍廣播路由請求分組RREQ,同時啟用計時器對路由發(fā)現(xiàn)過程進行計時,轉(zhuǎn)到(2);(10)判斷計時器是否計時結(jié)束,若計時結(jié)束,轉(zhuǎn)到(3),否則轉(zhuǎn)到(6);(11)查看η大小,若η = 0,則路由發(fā)現(xiàn)失敗,轉(zhuǎn)到(4),否則用η條路徑進行并行數(shù)據(jù)傳輸,結(jié)束;(12)查看OLSR路由表中原路由是否仍然存在,若存在轉(zhuǎn)到(5),否則不進行數(shù)據(jù)發(fā)送,結(jié)束;(13)查看下一跳節(jié)點的IXD,若IXD ( Ta,則用原路由發(fā)送數(shù)據(jù),結(jié)束;否則,降低發(fā)送速率,結(jié)束;(14)查看是否收到路由應(yīng)答分組RREP,若是,轉(zhuǎn)到(7),否則轉(zhuǎn)到⑵;(15)將RREP中“應(yīng)答分組路由”字段攜帶的路由信息保存到源路由緩存表中,并將找到的路徑條數(shù)η加1,轉(zhuǎn)到(8);(16)若11 < N,轉(zhuǎn)到(2),否則用N條路徑進行并行的數(shù)據(jù)傳輸,結(jié)束。其中,并行數(shù)據(jù)傳輸采用加權(quán)循環(huán)調(diào)度算法將數(shù)據(jù)流分配到多條不同的路徑上進行傳輸。圖8是路由請求分組RREQ的處理流程圖。在源路由發(fā)現(xiàn)的過程中,中間節(jié)點可能會重復收到同一個RREQ,為了對此進行檢測以免重復處理RREQ,每個節(jié)點需要維護路由請求表,用于保存最近收到的路由請求分組的〈源節(jié)點地址,路由請求序列號,標志 >,節(jié)點在收到RREQ后要先檢查路由請求表中是否有對應(yīng)的記錄,若有,說明已經(jīng)接收并處理過該 RREQ,直接丟棄即可;若沒有,則將該RREQ分組記錄到路由請求表中,并采用如下的算法進行處理。(3)查看本節(jié)點的鏈路擁塞度信息,若LCD STa,轉(zhuǎn)到⑵;否則該節(jié)點為即將擁塞節(jié)點或者擁塞節(jié)點,不轉(zhuǎn)發(fā)RREQ而直接丟棄,結(jié)束;(4)查看該RREQ的Flag字段值,若為0,說明該RREQ為旁路路由請求分組,按照旁路路由請求分組處理算法進行處理,結(jié)束;若為1,說明該RREQ為多徑路由請求分組,按照多徑路由請求分組處理算法進行處理,結(jié)束。其中旁路路由請求分組的處理算法如下。(3)檢查路由請求表中是否已經(jīng)有該RREQ分組的記錄,若有,說明已經(jīng)接收并處理過該路由請求分組,直接丟棄,結(jié)束;否則轉(zhuǎn)到(2);(4)若RREQ的目的節(jié)點為節(jié)點本身,則構(gòu)造并向源節(jié)點發(fā)送路由應(yīng)答分組RREP, 結(jié)束;否則在RREQ中加入本節(jié)點地址并繼續(xù)轉(zhuǎn)發(fā)該RREQ,結(jié)束。多徑路由請求分組處理算法如下。(3)若路由請求分組的目的節(jié)點為節(jié)點本身,則構(gòu)造并發(fā)送路由應(yīng)答分組RREP, 結(jié)束;否則轉(zhuǎn)到⑵;(4)檢查路由請求表中是否已經(jīng)有該RREQ分組的記錄,若有,說明已經(jīng)接收并處理過該路由請求分組,直接丟棄,結(jié)束;否則在RREQ中加入該節(jié)點地址并繼續(xù)轉(zhuǎn)發(fā)該RREQ,結(jié)束。圖9是路由應(yīng)答分組的處理流程圖。節(jié)點收到路由應(yīng)答分組RREP后,需要根據(jù) Flag的不同取值進行不同的處理。為了保證多徑路由發(fā)現(xiàn)的多條路徑節(jié)點不相交,每個節(jié)點需要維護一張路由應(yīng)答表,用于保存最近收到的RREP的〈目的節(jié)點地址,路由請求序列號,標志〉,其中路由請求序列號為與該路由應(yīng)答分組相對應(yīng)的路由請求分組攜帶的路由請求序列號。節(jié)點在收到RREP后采用如下的算法進行處理。(4)查看該節(jié)點是否為路由應(yīng)答分組RREP的目的節(jié)點,若是,則保存RREP中攜帶的路由信息,結(jié)束;否則轉(zhuǎn)到⑵;(5)查看RREP的Flag字段,若Flag = 0,表示該RREP為旁路路由應(yīng)答分組,轉(zhuǎn)發(fā)該RREP,結(jié)束;否則,轉(zhuǎn)到(3);(6)查看路由應(yīng)答表,若路由應(yīng)答表中已經(jīng)記錄有該RREP,說明在多條路徑中出現(xiàn)了相交節(jié)點,本發(fā)明考慮使用節(jié)點不相交多徑,故丟棄該RREP,結(jié)束;否則,轉(zhuǎn)發(fā)RREP,結(jié)束。
權(quán)利要求
1.一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,其特征在于1)源節(jié)點要發(fā)送數(shù)據(jù)時,先查看本地OLSR路由表中是否已經(jīng)存在到達目的節(jié)點的路徑,若不存在則表示目的節(jié)點不可達,不進行數(shù)據(jù)發(fā)送,結(jié)束;若存在路徑,查看本地維護的局部擁塞度表中路徑的下一跳節(jié)點的鏈路擁塞度IXD,若IXD ( Ta,Ta是IXD的閾值且 Ta e (0,I),則按照查找到的路徑轉(zhuǎn)發(fā)數(shù)據(jù);否則轉(zhuǎn)到步驟(2);2)若源節(jié)點到目的節(jié)點的數(shù)據(jù)量大小超過下一跳節(jié)點緩存隊列總空間大小,則轉(zhuǎn)到步驟(3),否則轉(zhuǎn)到步驟(5);3)查找本地源路由緩存表,若有到目的節(jié)點的多條路由記錄,則使用這些記錄中的前 N條路由進行并行數(shù)據(jù)轉(zhuǎn)發(fā),N是預先設(shè)定的路徑條數(shù);否則轉(zhuǎn)到步驟(4);4)計算源節(jié)點所在的一跳范圍的平均鏈路擁塞度Εδ ;若@ e (O,Tb],Tb是@的閾值且Tb e (O, I),則啟用多徑路由機制尋找多條無擁塞不相交多徑,并使用多條路徑進行并行數(shù)據(jù)轉(zhuǎn)發(fā);否則,降低發(fā)送速率;5)查找本地源路由緩存表,若有到目的節(jié)點的路由記錄,則使用表中第一條記錄中的路由進行數(shù)據(jù)轉(zhuǎn)發(fā);否則,啟用旁路路由機制尋找到目的節(jié)點的一條旁路進行數(shù)據(jù)轉(zhuǎn)發(fā);6)中間節(jié)點收到數(shù)據(jù)分組時,先查看本地OLSR路由表中是否已經(jīng)存在到達目的節(jié)點的路徑,若不存在,丟棄數(shù)據(jù)分組,結(jié)束;若存在路徑,查看本地維護的下一跳節(jié)點的鏈路擁塞度IXD,若IXD ( Ta,則按照查找到的路徑轉(zhuǎn)發(fā)數(shù)據(jù);若IXD > Ta,查找本地源路由緩存表, 若有到目的節(jié)點的路由記錄,則使用表中第一條記錄中的路由進行數(shù)據(jù)發(fā)送;否則,啟用旁路路由機制尋找到目的節(jié)點的一條旁路進行數(shù)據(jù)轉(zhuǎn)發(fā);7)后續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)的中間節(jié)點按照步驟(3)繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù),直至數(shù)據(jù)包到達目的節(jié)點。
2.根據(jù)權(quán)利要求I所述的一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,其特征在于所述鏈路擁塞度LCD是節(jié)點MAC層接口緩存隊列中已被占用空間與總空間的比值,即是所有未處理消息的總字節(jié)數(shù)與緩存隊列容量字節(jié)數(shù)的比值;平均鏈路擁塞度@反映節(jié)點所在的一跳范圍的局部區(qū)域負載情況,是節(jié)點自身的擁塞度及其所有鄰居節(jié)點擁塞度的平均值,其計算方法如公式(I)所示LCD = ~~(LCD(node) + [ LCD(Iieighbour1))(I)m + 1tt其中m為節(jié)點node的鄰居節(jié)點數(shù)目,IXD (node)為節(jié)點node的擁塞度, LCD(Iieighbouri)為節(jié)點node的第i個鄰居節(jié)點Iieighbouri的擁塞度。
3.根據(jù)權(quán)利要求I所述的一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,其特征在于節(jié)點在原有OLSR協(xié)議的基礎(chǔ)上,需要附加存儲的表結(jié)構(gòu)如下1)局部擁塞度表,格式為〈節(jié)點地址,節(jié)點鏈路擁塞度LCD〉;該表格中第一項用于記錄節(jié)點自身的擁塞度信息,會定時計算更新,后面各項用于記錄鄰居節(jié)點的擁塞度信息,會根據(jù)來自鄰居節(jié)點的Hello消息所攜帶的LCD值更新;2)路由請求表,格式為〈源節(jié)點地址,路由請求序列號,標志〉;該表格用于保存最近收到的路由請求分組信息;3)路由應(yīng)答表,格式為〈目的節(jié)點地址,路由請求序列號,標志〉;該表格用于保存最近收到的路由應(yīng)答分組信息;其中路由請求序列號為與該路由應(yīng)答分組相對應(yīng)的路由請求分組攜帶的路由請求序列號;4)源路由緩存表,格式為〈目的節(jié)點地址,到目的節(jié)點的完整節(jié)點地址序列,路徑條目生存周期 > ;該表格用于保存旁路路由機制和多徑路由機制尋找到的可達目的節(jié)點的無擁塞路徑;每個路由條目均設(shè)有生存時間;在原有OLSR協(xié)議的基礎(chǔ)上,需要修改的消息格式如下1)將原有OLSR協(xié)議Hello消息8比特的保留字段更改為LCD字段,用于攜帶鏈路擁塞度信息,其它字段與原有OLSR協(xié)議相同;2)路由請求分組和應(yīng)答分組是在原有DSR協(xié)議的基礎(chǔ)上,添加了一個標志Flag,用于標識產(chǎn)生路由請求分組的節(jié)點進行的路由發(fā)現(xiàn)是多徑路由發(fā)現(xiàn)還是旁路路由發(fā)現(xiàn);Flag =O為旁路路由發(fā)現(xiàn),F(xiàn)lag = I為多徑路由發(fā)現(xiàn)。
4.根據(jù)權(quán)利要求I所述的一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,其特征在于N表示預先設(shè)定的路徑條數(shù)且N > 1,η表示已經(jīng)找到的路徑條數(shù)且初值為0,多徑路由機制的具體步驟如下1)源節(jié)點啟用多徑路由發(fā)現(xiàn)過程,構(gòu)造并向周圍廣播路由請求分組RREQ,同時啟用計時器對路由發(fā)現(xiàn)過程進行計時,轉(zhuǎn)到(2);2)判斷計時器是否計時結(jié)束,若計時結(jié)束,轉(zhuǎn)到(3),否則轉(zhuǎn)到(6);3)查看η大小,若η= 0,則路由發(fā)現(xiàn)失敗,轉(zhuǎn)到(4),否則用η條路徑進行并行數(shù)據(jù)傳輸,結(jié)束;4)查看OLSR路由表中原路由是否仍然存在,若存在轉(zhuǎn)到(5),否則不進行數(shù)據(jù)發(fā)送,結(jié)束;5)查看下一跳節(jié)點的LCD,若LCD( Ta,則用原路由發(fā)送數(shù)據(jù),結(jié)束;否則,降低發(fā)送速率,結(jié)束;6)查看是否收到路由應(yīng)答分組RREP,若是,轉(zhuǎn)到(7),否則轉(zhuǎn)到⑵;7)將RREP中“應(yīng)答分組路由”字段攜帶的路由信息保存到源路由緩存表中,并將找到的路徑條數(shù)η加1,轉(zhuǎn)到⑶;8)若η< N,轉(zhuǎn)到⑵,否則用N條路徑進行并行數(shù)據(jù)傳輸,結(jié)束;其中,并行數(shù)據(jù)傳輸采用加權(quán)循環(huán)調(diào)度算法將數(shù)據(jù)流分配到多條不同的路徑上進行傳輸。
5.根據(jù)權(quán)利要求I所述的一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,其特征在于所述旁路路由機制的具體步驟如下1)啟用路由發(fā)現(xiàn)過程,向周圍廣播路由請求分組RREQ,同時啟用計時器,對路由發(fā)現(xiàn)過程進行計時,轉(zhuǎn)到(2);2)若在計時時間內(nèi)收到路由應(yīng)答分組RREP,轉(zhuǎn)到(3),否則路由發(fā)現(xiàn)失敗,轉(zhuǎn)到(4);3)將該RREP中“應(yīng)答分組路由”字段攜帶的路由信息保存到源路由緩存表中,并采用源路由緩存表中的路由進行數(shù)據(jù)轉(zhuǎn)發(fā),結(jié)束;4)查看OLSR路由表中原路由是否仍然存在,若存在,轉(zhuǎn)到(5),否則丟棄數(shù)據(jù)包,結(jié)束;5)查看原路由下一跳節(jié)點IXD,若等于1,則降低發(fā)送速率,結(jié)束;否則,按照原路由轉(zhuǎn)發(fā)數(shù)據(jù),結(jié)束。
6.根據(jù)權(quán)利要求I所述的一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,其特征在于所述路由請求分組RREQ的處理流程如下1)查看本節(jié)點的鏈路擁塞度信息,若LCD( Ta,轉(zhuǎn)到(2);否則不轉(zhuǎn)發(fā)RREQ而直接丟棄,結(jié)束;2)查看該RREQ的Flag字段值,若為0,按照旁路路由請求分組處理算法進行處理,結(jié)束;若為1,按照多徑路由請求分組處理算法進行處理,結(jié)束。
7.根據(jù)權(quán)利要求I或6所述的一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,其特征在于所述旁路路由請求分組的處理算法如下1)檢查路由請求表中是否已經(jīng)有該RREQ分組的記錄,若有,則直接丟棄,結(jié)束;否則轉(zhuǎn)到⑵;2)若RREQ的目的節(jié)點為節(jié)點本身,則構(gòu)造并向源節(jié)點發(fā)送路由應(yīng)答分組RREP,結(jié)束; 否則在RREQ中加入本節(jié)點地址并繼續(xù)轉(zhuǎn)發(fā)該RREQ,結(jié)束。
8.根據(jù)權(quán)利要求I或6所述的一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,其特征在于所述多徑路由請求分組處理算法如下1)若路由請求分組的目的節(jié)點為節(jié)點本身,則構(gòu)造并發(fā)送路由應(yīng)答分組RREP,結(jié)束; 否則轉(zhuǎn)到⑵;2)檢查路由請求表中是否已經(jīng)有該RREQ分組的記錄,若有,則直接丟棄,結(jié)束;否則在 RREQ中加入該節(jié)點地址并繼續(xù)轉(zhuǎn)發(fā)該RREQ,結(jié)束。
9.根據(jù)權(quán)利要求I所述的一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,其特征在于所述路由應(yīng)答分組RREP的處理流程如下1)查看該節(jié)點是否為路由應(yīng)答分組RREP的目的節(jié)點,若是,則保存RREP中攜帶的路由信息,結(jié)束;否則轉(zhuǎn)到⑵;2)查看RREP的Flag字段,若Flag= 0,轉(zhuǎn)發(fā)該RREP,結(jié)束;否則,轉(zhuǎn)至IJ (3);3)查看路由應(yīng)答表,若路由應(yīng)答表中已經(jīng)記錄有該RREP,丟棄該RREP,結(jié)束;否則,轉(zhuǎn)發(fā)RREP,結(jié)束。
全文摘要
本發(fā)明公開了一種基于鏈路擁塞度的動態(tài)多徑OLSR路由方法,在原有OLSR路由算法的基礎(chǔ)上,首先引入鏈路擁塞度信息來反映節(jié)點的負載狀況,節(jié)點在轉(zhuǎn)發(fā)數(shù)據(jù)前需參考下一跳節(jié)點的負載狀況,使得該方法具有負載自適應(yīng)性;其次,引入多徑機制,并將其與鏈路擁塞度信息相融合,提出基于鏈路擁塞度的動態(tài)多徑機制,該機制結(jié)合了按需路由的思想,在鏈路擁塞度信息、源節(jié)點到目的節(jié)點的數(shù)據(jù)傳輸量大小以及源節(jié)點一跳范圍內(nèi)的局部區(qū)域負載滿足一定條件時動態(tài)啟用多徑機制按需地進行路由發(fā)現(xiàn),路由發(fā)現(xiàn)過程可自動避開負載過重節(jié)點。采用此方法可以平衡網(wǎng)絡(luò)負載、避免或緩解鏈路擁塞、增大網(wǎng)絡(luò)吞吐量、減少端到端延時、延長網(wǎng)絡(luò)生存時間。
文檔編號H04W40/04GK102595504SQ20121004456
公開日2012年7月18日 申請日期2012年2月24日 優(yōu)先權(quán)日2012年2月24日
發(fā)明者蘭少華, 呂建勇, 吳歉歉, 楊余旺, 董萍, 魏曉飛 申請人:南京理工大學