亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于雙向路由重建的adhoc的網(wǎng)絡(luò)多徑路由方法

文檔序號:7695673閱讀:88來源:國知局
專利名稱:一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種在移動ad hoc網(wǎng)絡(luò)中用來降低路由發(fā)現(xiàn)頻率和提高方法性能的方法,具體為一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法。

背景技術(shù)
移動ad hoc網(wǎng)絡(luò)(MANET)具有無中心、自組織、自修復的特點,在軍事及民用方面有著廣泛的應(yīng)用需求。移動ad hoc網(wǎng)絡(luò)要求路由方法在動態(tài)網(wǎng)絡(luò)環(huán)境下通過結(jié)點多跳中繼提供可靠的數(shù)據(jù)通信能力,因此受到廣泛的關(guān)注與研究。目前移動ad hoc網(wǎng)絡(luò)路由方法主要分為兩類先應(yīng)式表驅(qū)動路由方法,如DSDV、WRP、FSR等;反應(yīng)式按需路由方法,如AODV、DSR、TORA等。一些研究表明,按需路由方法在網(wǎng)絡(luò)路由開銷、報文發(fā)送成功率等方面均優(yōu)于表驅(qū)動路由方法,同時在具有較高移動性的網(wǎng)絡(luò)中,按需路由方法表現(xiàn)出更優(yōu)的性能。對于按需路由方法來說,如何有效控制路由發(fā)現(xiàn)的頻率和范圍是提升方法性能的關(guān)鍵。目前大多數(shù)按需路由方法均采用單徑路由方式,方法在一次路由發(fā)現(xiàn)過程中僅建立一條當前最優(yōu)路徑并一直使用到路徑中斷,這類方法雖然維護簡單,但頻繁的路由發(fā)現(xiàn)給網(wǎng)絡(luò)帶來過多的路由開銷,同時路由重建造成數(shù)據(jù)報文的丟失及發(fā)送延遲都會給網(wǎng)絡(luò)性能帶來影響。多徑路由是為了降低路由方法的路由發(fā)現(xiàn)頻率而提出的一類方法。在一次路由發(fā)現(xiàn)過程中,源結(jié)點及路徑上的中間結(jié)點將建立多條到目的結(jié)點的路由路徑,數(shù)據(jù)報文可以在其中一條路徑上發(fā)送,也可以分配到幾條路徑上同時發(fā)送,當一條路徑失敗時,結(jié)點可以使用其它備用路徑發(fā)送數(shù)據(jù)報文而無需進行新的路由發(fā)現(xiàn),只有當所有路徑均失效或者路徑質(zhì)量下降需要發(fā)現(xiàn)新路徑時才進行路由重建。多徑路由方法可以提高數(shù)據(jù)報文發(fā)送的可靠性、平衡網(wǎng)絡(luò)負載、降低路由發(fā)現(xiàn)頻率和網(wǎng)絡(luò)路由開銷。
現(xiàn)有的按需多徑路由方法普遍采用源結(jié)點廣播發(fā)送RREQ報文查詢路徑,目的結(jié)點收到RREQ報文回復RREP報文確認路徑,只有RREP報文到達源結(jié)點后,源結(jié)點才建立了到目的結(jié)點的路由路徑,這導致路由發(fā)現(xiàn)延遲較大;對RREQ報文的轉(zhuǎn)發(fā)策略通常采用丟棄重復報文的方法,這會減少目的結(jié)點收到RREQ報文的數(shù)量,從而導致結(jié)點建立的到目的結(jié)點的路徑數(shù)量較少;而多條路徑的建立通常需要目的結(jié)點發(fā)送多條RREP報文進行確認,這導致每次路由發(fā)現(xiàn)產(chǎn)生大量路由控制報文。


發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題針對現(xiàn)有的反應(yīng)式按需路由方法和單徑按需路由方法存在的缺點,提出一種新的基于雙向路由重建的ad hoc網(wǎng)絡(luò)多徑路由方法,減少由于路由頻繁中斷而帶來的報文丟失,改善路由發(fā)現(xiàn)頻率、路由開銷及平均網(wǎng)絡(luò)延遲方面的性能。
本發(fā)明的技術(shù)解決方案一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其步驟如下 (1)網(wǎng)絡(luò)中每個結(jié)點需要建立兩個數(shù)據(jù)結(jié)構(gòu)路由緩存列表RouteCache_list(用來緩存路由,保存到其他結(jié)點的路由路徑)和序列號緩存列表SNCache_list(用來緩存目的結(jié)點的序列號,序列號是一個單調(diào)增大的整數(shù),由目的結(jié)點在發(fā)送RREP時生成,用于確認RREP報文的最新性),而每個路由緩存列表項中至少包含一個路徑列表Path_list,同時每個結(jié)點還需要維護一個數(shù)據(jù)報文發(fā)送隊列,用于保存待發(fā)送數(shù)據(jù)報文; (2)當源結(jié)點有數(shù)據(jù)報文需要發(fā)送時,會先查本地的路由緩存列表,查找到目的結(jié)點的路由路徑,若沒有查到,則進入步驟(3)的路由發(fā)現(xiàn)過程;若查到路由路徑,則進入步驟(4)的路由維護過程; (3)在路由發(fā)現(xiàn)過程中,源結(jié)點發(fā)送路由發(fā)現(xiàn)報文RREQ,目的結(jié)點收到RREQ則發(fā)送路由應(yīng)答報文RREP; (4)在路由維護過程中,源結(jié)點檢查所使用的路徑是否為最短路由路徑,若是,則置數(shù)據(jù)報文的標志位flag=min_hc_path(當前最短路徑可用),然后發(fā)送數(shù)據(jù)報文,否則置數(shù)據(jù)報文的標志位flag=no_min_hc_path(最短路徑已失效),發(fā)送數(shù)據(jù)報文;若目的結(jié)點收到flag=no_min_hc_path的數(shù)據(jù)報文,則發(fā)送RREP報文;當目的結(jié)點發(fā)送的RREP報文達到源結(jié)點時,源結(jié)點建立或更新到目的結(jié)點的路由路徑;源結(jié)點和中間結(jié)點都使用最短路徑發(fā)送數(shù)據(jù)報文,若發(fā)送報文失敗,結(jié)點會使用剩余路徑中的最短路徑發(fā)送數(shù)據(jù)報文,同時更新路由表,即將失效的路徑刪除;當中間結(jié)點到目的結(jié)點的當前最短路徑的跳數(shù)變大時,中間結(jié)點將發(fā)送路由錯誤通知報文RERR進行路由更新。
本發(fā)明和現(xiàn)有技術(shù)相比優(yōu)點在于 (1)本發(fā)明能夠減少報文的丟失,并顯著提高協(xié)議在路由發(fā)現(xiàn)頻率、網(wǎng)絡(luò)路由開銷及平均網(wǎng)絡(luò)延遲方面的性能。由于源結(jié)點可進行路由發(fā)現(xiàn),并在發(fā)送數(shù)據(jù)報文的同時,通過將報文中的flag標志位置為不同的值的方法通知目的結(jié)點進行路由重建,源結(jié)點可以獲得不間斷的路由服務(wù),避免了源結(jié)點在發(fā)現(xiàn)路由路徑已失效時再進行路由發(fā)現(xiàn)的情況,提高了路由發(fā)現(xiàn)的頻率;由于無需使用特定的報文通知目的結(jié)點進行路由重建,因此可以節(jié)省網(wǎng)絡(luò)的路由開銷以及降低平均的網(wǎng)絡(luò)延遲。
(2)此外,本發(fā)明的目的結(jié)點采用廣播方式發(fā)起路由重建,無需路徑確認過程便可使源結(jié)點和中間結(jié)點快速建立到目的結(jié)點的多條可用路徑,并獲得更多最短路徑和備用路徑,這可以減少路由中斷次數(shù),進一步降低路由發(fā)現(xiàn)頻率和延遲,提高數(shù)據(jù)報文發(fā)送成功率。
(3)此外,本發(fā)明對RREQ、RREP、RERR三種路由控制報文采用不同的轉(zhuǎn)發(fā)策略,可以極大的減少路由代價,減少網(wǎng)絡(luò)路由開銷。



圖1為本發(fā)明的流程圖; 圖2為本發(fā)明的源結(jié)點操作示意圖; 圖3為本發(fā)明的中間結(jié)點操作示意圖; 圖4為本發(fā)明的目的結(jié)點操作示意圖; 圖5為本發(fā)明的路由更新算法示意圖; 圖6a、圖6b、圖6c、圖6d為本發(fā)明的路由發(fā)現(xiàn)和路由維護過程樣例示意圖。

具體實施例方式 本發(fā)明的方法屬于多徑路由方式的按需路由方法,該方法涉及源結(jié)點、中間結(jié)點和目的結(jié)點。該方法需要三種網(wǎng)絡(luò)控制報文路由發(fā)現(xiàn)報文RREQ、路由應(yīng)答報文RREP和路由錯誤通知報文RERR;還需要在網(wǎng)絡(luò)中的每個結(jié)點維護兩個數(shù)據(jù)結(jié)構(gòu)路由緩存列表RouteCache_list和序列號緩存列表SNCache_list,而每個路由緩存列表項中包含一個路徑列表Path_list,同時每個結(jié)點還需要維護一個數(shù)據(jù)報文發(fā)送隊列,用于保存待發(fā)送數(shù)據(jù)報文。
RREQ的格式為RREQ(s,d,i,snsi,min hcsi(snsi),ansi(snsi),ttl),RREP路由應(yīng)答報文的格式為RREP(s,d,i,sndi,min hcdi(sndi),andi(sndi),ttl),RERR路由錯誤通知報文的格式為RREQ(s,d,i,sndi,min hcdi(cur),ttl),其中s表示源結(jié)點,d表示目的結(jié)點,i表示當前結(jié)點,snsi表示結(jié)點i保存的源結(jié)點s的序列號,sndi表示結(jié)點i保存的目的結(jié)點d的序列號,min hcsi(snsi)表示在最新的一次路由發(fā)現(xiàn)(由snsi標識)中,結(jié)點i到源結(jié)點s的最小跳數(shù),min hcdi(sndi)表示在最新的一次路由發(fā)現(xiàn)(由sndi標識)中,結(jié)點i到目的結(jié)點d的最小跳數(shù),ansi(snsi)表示在最新的一次路由發(fā)現(xiàn)(由snsi標識)中,結(jié)點i到源結(jié)點s的路由路徑的聲明號,andi(sndi)表示在最新的一次路由發(fā)現(xiàn)(由sndi標識)中,結(jié)點i到目的結(jié)點d的路由路徑的聲明號,min hcdi(cur)表示結(jié)點i到目的結(jié)點d的當前最小跳數(shù),ttl(Time To Live)表示廣播報文的跳數(shù)限制。在路由發(fā)現(xiàn)過程中,源結(jié)點將發(fā)送RREQ路由發(fā)現(xiàn)報文來查找目的結(jié)點d,目的結(jié)點d收到RREQ報文后建立到源結(jié)點s的路由緩存,并回復RREP報文;在路由維護過程中當目的結(jié)點d收到標志位flag=no_min_hc_path的數(shù)據(jù)報文后將發(fā)送RREP報文進行路由重建。
本發(fā)明中的路由緩存列表項RouteCache_entrydi的格式為RouteCache_entrydi(d,sndi,min hcdi(sndi),andi(sndi),Path_listdi),表示結(jié)點i到結(jié)點d的路由緩存列表項;路徑列表項Path_entrydi→n的格式為Path_entrydi→n(n,min hcdi→n(cur),life_time),表示結(jié)點i通過結(jié)點n到結(jié)點d的路徑列表項(即為RouteCache_entrydi中的Path_listdi);序列號緩存列表SNCache_entrydi的格式為SNCache_entrydi(d,sndi)表示結(jié)點i保存的結(jié)點d的序列號緩存列表項。
本發(fā)明分兩個過程路由發(fā)現(xiàn)過程和路由維護過程。路由發(fā)現(xiàn)過程指源結(jié)點在失去到目的結(jié)點的所有路徑時發(fā)起路由重建的過程,路由維護過程指源結(jié)點使用到目的結(jié)點的路徑發(fā)送數(shù)據(jù)報文,并維護路由變化的過程。本發(fā)明建立多條從源結(jié)點經(jīng)中間結(jié)點到目的結(jié)點的路由路徑。源結(jié)點使用這些路由路徑中的最短路徑發(fā)送數(shù)據(jù)報文,并在最短路徑失效時,由目的結(jié)點主動進行路由更新,只有當源結(jié)點失去到目的結(jié)點的所有可用路徑時,源結(jié)點才進入路由發(fā)現(xiàn)過程,重新查找和建立路徑。
本發(fā)明要求數(shù)據(jù)報文中包含一個標志位flag,用于標識源結(jié)點是否使用最短路徑發(fā)送該數(shù)據(jù)報文。當源結(jié)點有數(shù)據(jù)報文需要發(fā)送時,會先查本地的路由緩存列表,查找到目的結(jié)點的路由路徑,若沒有查到,則進入路由發(fā)現(xiàn)過程;若查到路由路徑,則進入路由維護過程。在路由發(fā)現(xiàn)過程中,源結(jié)點發(fā)送RREQ報文,目的結(jié)點收到RREQ報文則發(fā)送RREP報文;在路由維護過程中,源結(jié)點檢查所使用的路徑是否為最短路由路徑,若是,則置數(shù)據(jù)報文的標志位flag=min_hc_path,然后發(fā)送數(shù)據(jù)報文,否則置數(shù)據(jù)報文的標志位flag=no_min_hc_path,發(fā)送數(shù)據(jù)報文,若目的結(jié)點收到flag=no_min_hc_path的數(shù)據(jù)報文,則發(fā)送RREP報文。當目的結(jié)點發(fā)送的RREP報文達到源結(jié)點時,源結(jié)點建立或更新到目的結(jié)點的路由路徑。源結(jié)點和中間結(jié)點都使用最短路徑發(fā)送數(shù)據(jù)報文,若發(fā)送報文失敗,結(jié)點會使用剩余路徑中的最短路徑發(fā)送數(shù)據(jù)報文,同時更新路由表,即將失效的路徑刪除。當中間結(jié)點到目的結(jié)點的當前最短路徑的跳數(shù)變大時,中間結(jié)點將發(fā)送RERR報文進行路由更新。
下面結(jié)合附圖對本發(fā)明進一步詳細說明。
如圖1所示,本發(fā)明中的各個結(jié)點在最開始時都會初始化自身的路由緩存表、序列緩存列表和路徑列表,即申請一塊內(nèi)存空間,并初始化各個字段(其值為空)。當源結(jié)點s有數(shù)據(jù)報文需要發(fā)送時,源結(jié)點將在自身的路由緩存列表中查詢到目的結(jié)點d的路由緩存,若存在路由緩存,則進入路由維護過程;若不存在,則進入路由發(fā)現(xiàn)過程,路由發(fā)現(xiàn)過程結(jié)束以后,進入路由維護過程。
在路由發(fā)現(xiàn)過程中,源結(jié)點s會發(fā)送RREQ報文,用來對目的結(jié)點d進行查找,建立到目的結(jié)點d的多條路由路徑;中間結(jié)點收到RREQ報文后,會更新自身的路由緩存列表,即建立到源結(jié)點s的路由緩存,并轉(zhuǎn)發(fā)RREQ報文;目的結(jié)點d收到RREQ報文后,會更新自身的路由緩存,進而建立到源結(jié)點s的路由緩存,并回復RREP報文。中間結(jié)點收到RREP報文以后,會更新自身的路由緩存,建立到目的結(jié)點的路由緩存,并轉(zhuǎn)發(fā)RREP報文;源結(jié)點s收到RREP報文以后,就建立了到目的結(jié)點d的多條路由緩存,至此路由發(fā)現(xiàn)過程結(jié)束。
在路由維護過程中,源結(jié)點s首先會查找到目的結(jié)點d的路由緩存,若當源結(jié)點s中保存的到目的結(jié)點的當前最短路徑的跳數(shù)發(fā)生了變化(即由變?yōu)?則會將數(shù)據(jù)報文中的標志位flag置為no_min_hc_path然后發(fā)送數(shù)據(jù)報文;若沒有發(fā)生變化,則置數(shù)據(jù)報文中的標志位flag為min_hc_path,并發(fā)送數(shù)據(jù)報文。中間結(jié)點在收到數(shù)據(jù)報文后,會查找到目的結(jié)點d的路由緩存,若沒有查到路由緩存,則會將數(shù)據(jù)報文丟棄,路由維護過程結(jié)束;若查到了到目的結(jié)點的路由緩存,中間結(jié)點i就會使用查到的路由路徑轉(zhuǎn)發(fā)數(shù)據(jù)報文。目的結(jié)點d在接收到數(shù)據(jù)報文后,會檢查報文中的flag標志位,若flag的值不是no_min_hc_path,路由維護過程結(jié)束;否則目的結(jié)點d將發(fā)送RREP報文,用以進行路由重建。中間結(jié)點在收到RREP報文以后,會根據(jù)報文的跳數(shù)更新到目的結(jié)點d的路由緩存,并轉(zhuǎn)發(fā)RREP報文。源結(jié)點在收到RREP報文后,會更新到目的結(jié)點的路由緩存,路由維護過程結(jié)束。
如圖2中A1所示,當源結(jié)點s需要向目的結(jié)點d發(fā)送數(shù)據(jù),在此之前并沒有建立從源結(jié)點到目的結(jié)點的路由路徑,即不存在到目的結(jié)點d的路由路徑,進入路由發(fā)現(xiàn)過程;若存在到目的結(jié)點d的路徑,并且是最近建立的最短路徑,則使用該最短路徑發(fā)送標志位falg為min_hc_path的數(shù)據(jù)報文;若存在到目的結(jié)點d的路由路徑,但該路徑不是最近建立的最短路徑,置報文的標志位falg為no_min_hc_path,并發(fā)送數(shù)據(jù)報文。
圖2中A2所示,當源結(jié)點s進入路由發(fā)現(xiàn)過程,將廣播RREQ路由發(fā)現(xiàn)報文查找目的結(jié)點d。
如圖2中A3所示,當源結(jié)點收到RREP報文后,會根據(jù)報文修改到目的結(jié)點d的路由緩存。
如圖3中B1和B2所示,中間結(jié)點i每次收到控制報文RREQ或RREP時,都要首先更新路由緩存表,然后判斷是否需要轉(zhuǎn)發(fā)該報文??刂茍笪挠尚蛄刑杝n唯一標識,結(jié)點i對收到的ttl滿足要求(ttl>0)的RREQ和RREP報文分別采用不同的轉(zhuǎn)發(fā)策略對于RREQ報文,結(jié)點僅轉(zhuǎn)發(fā)首次收到的非重復報文,重復收到的報文予以丟棄;對于RREP報文,結(jié)點除了轉(zhuǎn)發(fā)首次收到的非重復報文外,對經(jīng)過路由更新后使結(jié)點i到目的結(jié)點d的最小跳數(shù)minhcdi(sndi)變小的RREP報文進行轉(zhuǎn)發(fā),其它重復的報文予以丟棄。對兩種報文采取不同的轉(zhuǎn)發(fā)策略是因為結(jié)點i是通過RREP報文建立到目的結(jié)點d的路由路徑的(結(jié)點i通過RREQ報文建立到源結(jié)點s的路由路徑),這種策略保證了在建立到目的結(jié)點d的多條路徑的同時,合理控制RREQ報文的轉(zhuǎn)發(fā)數(shù)量。另外,源結(jié)點s和目的結(jié)點d對RREQ和RREP控制報文不進行轉(zhuǎn)發(fā)。
如圖3中B3所示,當中間結(jié)點i收到RERR報文后,會更新本地的路由緩存列表,同時判斷從本地結(jié)點到目的結(jié)點的最小跳數(shù)是否滿足如下任一條件,1)由變?yōu)?)中間結(jié)點失去了到目的結(jié)點的所有路徑,由變?yōu)槿魸M足,則廣播RERR報文;否則不廣播RERR報文。收到RERR報文的結(jié)點j根據(jù)報文內(nèi)容檢查到目的結(jié)點d的路由緩存列表項RouteCache_entrydl,若存在Path_entrydl→i則更新跳數(shù)min hcdl→i(cur)。更新后,若結(jié)點滿足上面兩種情況中的任一種時,仍需廣播ttl=1的RERR報文。源結(jié)點s收到RERR報文后只需更新路由緩存,不再廣播RERR報文。
如圖3中B4所示,當中間結(jié)點i收到數(shù)據(jù)報文時,會檢查本地的路由緩存列表中是否存在跳數(shù)最小的結(jié)點j,若不存在,則丟棄數(shù)據(jù)報文,并結(jié)束處理;若存在,則由結(jié)點j發(fā)送數(shù)據(jù)報文。若發(fā)送不成功,則會更新本地的路由緩存列表,將到結(jié)點j的緩存表項刪除,同時判斷是否需要發(fā)送RERR報文,判斷條件是當中間結(jié)點i到目的結(jié)點d的當前最短路徑的跳數(shù)發(fā)生變化,由變?yōu)榛蛑虚g結(jié)點i失去了到目的結(jié)點d的所有路徑,由變?yōu)槿粜枰獎t發(fā)送RERR報文,否則不發(fā)送,之后結(jié)點i會再次檢查本地路由緩存列表,直到確定數(shù)據(jù)報文發(fā)送成功或數(shù)據(jù)報文被丟棄。
如圖4中C1和C3所示,當目的結(jié)點首次收到RREQ報文時,將廣播發(fā)送RREP報文,而收到RREP報文和RERR報文時將不進行任何處理。
如圖4中C2所示,當目的結(jié)點收到數(shù)據(jù)報文時,會檢查報文的標志位flag,若flag為min_hc_path,則表示源結(jié)點是使用的到目的結(jié)點的最短路徑發(fā)送的數(shù)據(jù)報文,即該條最短路徑有效,因此目的結(jié)點不進行處理;若flag為no_min_hc_path,且該標識位的數(shù)據(jù)報文是第一次收到,目的結(jié)點將廣播發(fā)送RERR報文。
在本發(fā)明中,控制報文RREQ與RREP均采用廣播方式發(fā)送。網(wǎng)絡(luò)中的結(jié)點i收到控制報文后,根據(jù)報文中的跳數(shù)信息更新到源結(jié)點s(收到RREQ報文時)或目的結(jié)點d(收到RREP報文時)的路由緩存。為了保證方法的正確性,要求建立的路由路徑具有無環(huán)性。本發(fā)明使用序列號(sn)、聲明號(an)和最小跳數(shù)(min hc)保證所建路由路徑的無環(huán)性,結(jié)點可以獲得到目的結(jié)點的最小跳數(shù),同時能夠獲得更多可用路徑。
如圖5所示,假設(shè)結(jié)點i通過結(jié)點j接收到來自結(jié)點d的控制報文,若結(jié)點i保存的到目的結(jié)點d的序列號小于結(jié)點j保存的到目的結(jié)點d的序列號,結(jié)點i首先將自身的序列號號更新為結(jié)點j到目的結(jié)點d的序列號;若結(jié)點i不是目的結(jié)點,則清空路徑列表,將通過結(jié)點j到目的結(jié)點d的路徑信息加入到路徑列表,并更新最小跳數(shù),將結(jié)點i通過結(jié)點j到目的結(jié)點d的跳數(shù)更新為結(jié)點j到目的結(jié)點d的最小跳數(shù)加1,保證結(jié)點i到目的結(jié)點d的最小跳數(shù)是通過所有鄰居結(jié)點到目的結(jié)點d的跳數(shù)的最小值,計算新的聲明號,計算的公式為其中random_range的值為10,Random(random_range)表示從0到random_range中取一個隨機值;若結(jié)點i是目的結(jié)點,則將聲明號置零。若結(jié)點i保存的到目的結(jié)點d的序列號等于于結(jié)點j保存的到目的結(jié)點d的序列號,并且在最新一次路由發(fā)現(xiàn)中,結(jié)點j到目的結(jié)點d的路由路徑的聲明號要小于結(jié)點i到目的結(jié)點d的路由路徑的聲明號,則檢查結(jié)點i通過結(jié)點j可以到達目的結(jié)點d的路由信息是否已經(jīng)存在于路徑列表中,若存在則更新該路由信息中的最小跳數(shù),若不存在則將該條路由信息加入到路徑列表中;之后計算新的最小跳數(shù)。
圖6說明了本發(fā)明方法的路由發(fā)現(xiàn)和路由維護過程。圖6a中,目的結(jié)點d發(fā)送RREP報文進行路由重建,報文經(jīng)過中間結(jié)點的轉(zhuǎn)發(fā)到達源結(jié)點s,圖中箭頭表示RREP報文,箭頭旁數(shù)字表示報文的發(fā)送結(jié)點到目的結(jié)點d的最小跳數(shù)(即RREP報文中min hcdi(sndi)值)。圖6b中,源結(jié)點s建立了到目的結(jié)點d的多條可用路徑,此時源結(jié)點s處于路由維護過程中,源結(jié)點s使用最短路徑pl或p2發(fā)送數(shù)據(jù)報文,并置報文中flag標志位為min_hc_path,圖中箭頭和附近數(shù)字分別表示可用路徑及通過該路徑到目的結(jié)點d的最小跳數(shù)。圖6c中,由于鏈路中斷,源結(jié)點s無法通過最短路徑發(fā)送數(shù)據(jù)報文,此時且源結(jié)點s使用當前最短路徑p3或p4發(fā)送數(shù)據(jù)報文,并在報文中置標志位flag為no_min_hc_path,通知目的結(jié)點d進行路由重建。圖6d中,源結(jié)點s若仍有數(shù)據(jù)需要發(fā)送到目的結(jié)點d則廣播RREQ報文發(fā)起路由重建。目的結(jié)點d收到flag=no_min_hc_path的數(shù)據(jù)報文或RREQ報文則廣播RREP報文。
權(quán)利要求
1、一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其特征在于步驟如下(1)網(wǎng)絡(luò)中每個結(jié)點需要建立兩個數(shù)據(jù)結(jié)構(gòu)路由緩存列表RouteCache_list,用來緩存路由,保存到其他結(jié)點的路由路徑,及序列號緩存列表SNCache_list,用來緩存目的結(jié)點的序列號,而每個路由緩存列表項中至少包含一個路徑列表Path_list,同時每個結(jié)點還需要維護一個數(shù)據(jù)報文發(fā)送隊列,用于保存待發(fā)送數(shù)據(jù)報文;
(2)當源結(jié)點有數(shù)據(jù)報文需要發(fā)送時,會先查本地的路由緩存列表,查找到目的結(jié)點的路由路徑,若沒有查到,則進入步驟(3)的路由發(fā)現(xiàn)過程;若查到路由路徑,則進入步驟(4)的路由維護過程;
(3)在路由發(fā)現(xiàn)過程中,源結(jié)點發(fā)送路由發(fā)現(xiàn)報文RREQ,目的結(jié)點收到RREQ則發(fā)送路由應(yīng)答報文RREP;
(4)在路由維護過程中,源結(jié)點檢查所使用的路徑是否為最短路由路徑,若是,則置數(shù)據(jù)報文的標志位flag=min_hc_path,表示當前最短路徑可用,然后發(fā)送數(shù)據(jù)報文,否則置數(shù)據(jù)報文的標志位flag=no_min_hc_path,表示最短路徑已失效,發(fā)送數(shù)據(jù)報文;若目的結(jié)點收到flag=no_min_hc_path的數(shù)據(jù)報文,則發(fā)送RREP報文;當目的結(jié)點發(fā)送的RREP報文達到源結(jié)點時,源結(jié)點建立或更新到目的結(jié)點的路由路徑;源結(jié)點和中間結(jié)點都使用最短路徑發(fā)送數(shù)據(jù)報文,若發(fā)送報文失敗,結(jié)點會使用剩余路徑中的最短路徑發(fā)送數(shù)據(jù)報文,同時更新路由表,即將失效的路徑刪除;當中間結(jié)點到目的結(jié)點的當前最短路徑的跳數(shù)變大時,中間結(jié)點將發(fā)送路由錯誤通知報文RERR進行路由更新。
2、根據(jù)權(quán)利要求1所述的一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其特征在于所述的路由發(fā)現(xiàn)報文RREQ的格式為RREQ(s,d,i,snsi,min hcsi(snsi),ansi(snsi),ttl),其中s表示源結(jié)點;d表示目的結(jié)點;i表示當前結(jié)點;snsi表示結(jié)點i保存的源結(jié)點s的序列號;min hcsi(snsi)表示在由snsi標識最新的一次路由發(fā)現(xiàn)中,結(jié)點i到源結(jié)點s的最小跳數(shù);ansi(snsi)表示在由snsi標識最新的一次路由發(fā)現(xiàn)中,結(jié)點i到源結(jié)點s的路由路徑的聲明號。
3、根據(jù)權(quán)利要求1所述的一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其特征在于所述的路由應(yīng)答報文RREP的格式為RREP(s,d,i,sndi,min hcdi(sndi),andi(sndi),ttl),其中s表示源結(jié)點;d表示目的結(jié)點;i表示當前結(jié)點;sndi表示結(jié)點i保存的目的結(jié)點d的序列號;min hcdi(sndi)表示由sndi標識在最新的一次路由發(fā)現(xiàn)中,結(jié)點i到目的結(jié)點d的最小跳數(shù);min hcdi(cur)表示結(jié)點i到目的結(jié)點d的當前最小跳數(shù);andi(sndi)表示由sndi標識在最新的一次路由發(fā)現(xiàn)中,結(jié)點i到目的結(jié)點d的路由路徑的聲明號。
4、根據(jù)權(quán)利要求1所述的一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其特征在于所述的路由錯誤通知報文RERR的格式為RREQ(s,d,i,sndi,min hcdi(cur),ttl),其中s表示源結(jié)點,d表示目的結(jié)點,i表示當前結(jié)點,sndi表示結(jié)點i保存的目的結(jié)點d的序列號,min hcdi(cur)表示結(jié)點i到目的結(jié)點d的當前最小跳數(shù),ttl表示廣播報文的跳數(shù)限制。
5、根據(jù)權(quán)利要求1所述的一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其特征在于所述的路徑列表Path_list的各個表項中每條記錄分別有三個列表項結(jié)點i到結(jié)點d的路由緩存列表項RouteCache_entrydi、結(jié)點i保存的結(jié)點d的序列號緩存列表項SNCache_entrydi及結(jié)點i通過結(jié)點n到結(jié)點d的路徑列表項Path_entrydi→n,其中RouteCache_entrydi中的每條記錄的格式為RouteCache_entrydi(d,sndi,min hcdi(sndi),andi(sndi),Path_listdi),d表示目的結(jié)點,sndi表示結(jié)點i保存的目的結(jié)點d的序列號,min hcdi(sndi)表示由sndi標識在最新的一次路由發(fā)現(xiàn)中,結(jié)點i到目的結(jié)點d的最小跳數(shù),andi(sndi)表示由sndi標識在最新的一次路由發(fā)現(xiàn)中,結(jié)點i到目的結(jié)點d的路由路徑的聲明號;Path_entrydi→n中的每條記錄的格式為Path_entrydi→n(n,min hcdi→n(cur),life_time),n表示任一結(jié)點,min hcdi→n(cur)表示結(jié)點i通過結(jié)點n到達目的結(jié)點d的當前最小跳數(shù),life_time表示路由緩存路徑的生存期;SNCache_entrydi中的每條記錄的格式為SNCache_entrydi(d,sndi),d表示目的結(jié)點,sndi表示結(jié)點i保存的目的結(jié)點d的序列號。
6、根據(jù)權(quán)利要求1所述的一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其特征在于所述的三種報文RREQ、RREP和RERR采用廣播方式發(fā)送,但使用不同的轉(zhuǎn)發(fā)策略,RERR報文僅在一跳范圍內(nèi)廣播發(fā)送;RREQ報文和RREP報文則通過ttl控制廣播范圍。
7、根據(jù)權(quán)利要求1所述的一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其特征在于所述的RERR報文僅在一跳范圍內(nèi)廣播發(fā)送的方法為設(shè)置RERR報文的ttl等于1,當RERR報文從結(jié)點i發(fā)送,被結(jié)點j接受到后,RERR報文中的ttl減為0,此時結(jié)點j將不再轉(zhuǎn)發(fā)其收到的RERR報文。
8、根據(jù)權(quán)利要求1所述的一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其特征在于所述的RREQ報文和RREP報文則通過ttl控制廣播范圍的方法為網(wǎng)絡(luò)中的結(jié)點i對收到的ttl滿足ttl>0的要求,RREQ和RREP報文分別采用不同的轉(zhuǎn)發(fā)策略對于RREQ報文,結(jié)點僅轉(zhuǎn)發(fā)首次收到的非重復報文,重復收到的報文予以丟棄;對于RREP報文,結(jié)點除了轉(zhuǎn)發(fā)首次收到的非重復報文外,對經(jīng)過路由更新后使結(jié)點i到目的結(jié)點d的最小跳數(shù)minhcdi(sndi)變小的RREP報文進行轉(zhuǎn)發(fā),其它重復的報文予以丟棄;對兩種報文采取不同的轉(zhuǎn)發(fā)策略是因為結(jié)點i是通過RREP報文建立到目的結(jié)點d的路由路徑,或結(jié)點i通過RREQ報文建立到源結(jié)點s的路由路徑,這種策略保證了在建立到目的結(jié)點d的多條路徑的同時,合理控制RREQ報文的轉(zhuǎn)發(fā)數(shù)量。
9、根據(jù)權(quán)利要求1所述的一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,其特征在于所述的源結(jié)點s和目的結(jié)點d對RREQ和RREP控制報文不進行轉(zhuǎn)發(fā)。
全文摘要
一種基于雙向路由重建的ad hoc的網(wǎng)絡(luò)多徑路由方法,該方法涉及源結(jié)點、中間結(jié)點和目的結(jié)點(1)源結(jié)點進行路由發(fā)現(xiàn),建立通過中間結(jié)點(可選)到目的結(jié)點的多條路由路徑。(2)在需要時,源結(jié)點和目的結(jié)點均可以發(fā)起路由重建,建立從源結(jié)點到目的結(jié)點的多條路由路徑當從源結(jié)點到目的結(jié)點的所有最短路徑中斷時,源結(jié)點使用剩余路徑發(fā)送數(shù)據(jù)報文并通知目的結(jié)點發(fā)起路由重建;當所有可用路徑全部中斷時,源結(jié)點自身發(fā)起路由重建。本發(fā)明能夠減少由于路由頻繁中斷而帶來的報文丟失,并顯著改善路由發(fā)現(xiàn)頻率、路由開銷及平均網(wǎng)絡(luò)延遲方面的性能。
文檔編號H04L29/06GK101309217SQ200810116558
公開日2008年11月19日 申請日期2008年7月11日 優(yōu)先權(quán)日2008年7月11日
發(fā)明者陽 赫, 蒲菊華, 曾羅成, 何志堅, 璋 熊 申請人:北京航空航天大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1