專利名稱:一種基于maodv協(xié)議的多路徑擴展方法
技術領域:
本發(fā)明涉及移動通信網(wǎng)絡技術,尤其是涉及移動自組織網(wǎng)絡技術。
技術背景移動自組織網(wǎng)組播路由技術作為一種點到多點、多點到多點的數(shù)據(jù)傳輸 技術,不但可以提高網(wǎng)絡的可擴展性,更能使網(wǎng)絡資源得到高效的利用。組 播路由技術一般應用于視頻會議、文件分發(fā)、資源共享等團隊密切合作的業(yè) 務。但是,目前絕大多數(shù)對移動自組織網(wǎng)組播路由協(xié)議的性能研究都是在低 發(fā)送速率下進行的,組播路由協(xié)議和算法在高數(shù)據(jù)發(fā)送速率的環(huán)境下運行性 能變差,網(wǎng)絡負載不均,容錯能力差,無法實用于諸如視頻會議這種要求較 高速率的應用。與本發(fā)明最接近的現(xiàn)有算法和協(xié)議有AOMDV(A. Nasipuri and S.R. Das. On-Demand Multipath Routing for Mobile Ad Hoc Networks. Proceedings of the 8th Int. Conf. On Computer Communications and Networks (IC3N) , Boston, October 1999)禾口 MA0DV (Royer E M, Perkins C E. "Multicast Ad hoc On-Demand Distance Vector(MAODV) Routing" ,IETF, Internet Draft :draft-ietf-manet-maodv-00. txt. 2000) 。 A0MDV是在移動自 組織網(wǎng)絡按需距離矢量路由協(xié)議基礎之上擴展而成的多路徑路由算法。它通 過在一次路由尋找中使用泛洪來計算出多條鏈路不相交路徑,并且通過在路 由表中增加一個廣告跳數(shù)字段來維護多條開環(huán)路徑。當發(fā)生路由中斷的時候, 使用備用路由繼續(xù)發(fā)送數(shù)據(jù)。A0MDV可以顯著改善端到端延時,減少路由開銷。 但是,AOMDV是單播路由協(xié)議的多路徑擴展,不能提供組播服務。MAODV協(xié)議 是支持組播功能的按需距離矢量路由協(xié)議的擴展,它采用雙向共享樹組播分 發(fā)機制,按需創(chuàng)建組播樹。MAODV協(xié)議同時支持單播和組播,通過單播控制消 息,可以減少控制開銷。然而,AOMDV和MAODV在源節(jié)點向目的節(jié)點發(fā)送數(shù)據(jù) 時,都是向一條路由路徑傳輸數(shù)據(jù),當數(shù)據(jù)發(fā)送速率增加時,容易出現(xiàn)負載 不均,造成網(wǎng)絡擁塞。發(fā)明內(nèi)容本發(fā)明所要解決的技術問題是設計一種基于MAODV協(xié)議的多路徑擴展方 法。該方法在MAODV協(xié)議的基礎上提供更好的負載均衡和容錯能力、提高網(wǎng)絡 吞吐量,從而改善在較高數(shù)據(jù)發(fā)送速率下,傳統(tǒng)MAODV協(xié)議出現(xiàn)的網(wǎng)絡負載不 均、路徑擁塞、可擴展性不好等問題。本發(fā)明解決上述技術問題的技術方案是,對傳統(tǒng)的MA0DV協(xié)議進行多路 徑擴展。該方法主要包括以下步驟多路徑選擇與建立、多路徑路由維護、 和負載分配。多路徑選擇與建立負責多路徑路由的尋找、選擇和建立。源節(jié)點根據(jù) 收到的網(wǎng)絡上其他節(jié)點發(fā)回的路由回復消息RREP以及多路徑選擇消息MACT-S 的路由回復消息RREP-S的信息,選擇一條時延最短路徑和與該時延最短路徑 節(jié)點不相交且序列號最大跳數(shù)最少的路徑,進行數(shù)據(jù)分組的分流發(fā)送。多路徑路由維護當有路徑出現(xiàn)斷鏈的時候,斷鏈的上游節(jié)點將單播路 由錯誤消息RERR發(fā)送給源節(jié)點,判斷路由是否失效,如果只有一條路由失效, 則源節(jié)點繼續(xù)使用另一條路徑發(fā)送數(shù)據(jù),當兩條路徑都斷開后,源節(jié)點重新 觸發(fā)多路徑尋找進程,選擇、尋找新的路徑。負載分配組播路由建立完成以后,實施數(shù)據(jù)在多路徑上的傳輸分配。 源節(jié)點找到并激活第一條路徑以后,立即將所有數(shù)據(jù)分組發(fā)送到該條路徑上 進行數(shù)據(jù)傳輸,直到源節(jié)點找到并激活第二條路徑以后,就分流向兩條路徑 發(fā)送數(shù)據(jù)分組。在路由激活消息MACT消息的R字段后面添加一個S字段,在RREP消息 的A字段后面添加一個S字段,源節(jié)點對接收到的RREP和RREP-S的信息進 行判斷,當S字段為1時,查詢緩存器判斷到達源節(jié)點的RREP消息是否是第 一條,如是,則該路徑為第一條路徑。源節(jié)點若在規(guī)定時間內(nèi)沒有收到RREP 消息,則重新廣播一條RREQ消息,并將RREQ消息的廣播跳數(shù)字段加1,若源 節(jié)點在廣播RREQ重復次數(shù)次的RREQ消息后,依然沒有接收到RREP消息,則 該源節(jié)點成為組播組的組長節(jié)點。將未激活路徑的路由激活消息轉發(fā)給下一 跳節(jié)點,直到該消息轉發(fā)到組播組節(jié)點,該組播組節(jié)點向該條路由單播一條RREP-S消息,收到RREP-S消息的中間節(jié)點激活其備用路由表中的相關路由項 后繼續(xù)將RREP-S消息轉發(fā)給源節(jié)點,如在規(guī)定時間內(nèi)收到多條RREP-S消息, 則選擇序列號最大,跳數(shù)最小的路由作為第二條路徑。采用本發(fā)明的MA0DV協(xié)議的多路徑擴展方法,可以有效平衡網(wǎng)絡負載, 減輕網(wǎng)絡擁塞,提高MA0DV協(xié)議的容錯能力和可擴展性。中間節(jié)點通過對 MACT-S消息判斷自己是否已經(jīng)成為第一條路徑上的節(jié)點來選擇兩條節(jié)點不相 交路徑,方法簡單,不會造成過多的路由計算開銷。由于只有當兩條路徑都 中斷的情況下,源節(jié)點才會廣播路由請求消息來重新尋找路由,可以減少路 由恢復頻率,達到降低路由開銷的目的。 說明書附1基于MA0DV協(xié)議的多路徑擴展方法體系結構圖 圖2多路徑擴展方法中源節(jié)點處理控制消息流程圖 圖3帶S字段的MACT消息 圖4帶S字段的RREP消息具體實施方式
如
圖1所示為基于MA0DV協(xié)議的多路徑擴展方法體系結構圖。該方法包 括如下3個步驟① 多路徑選擇與建立階段源節(jié)點多路徑尋找進程觸發(fā),負責多路徑路 由的尋找、選擇和建立。源節(jié)點選擇最短時延路由作為第一條路徑,選擇與 第一條路徑節(jié)點不相交且序列號最大跳數(shù)最少的路徑作為第二條路徑。源節(jié) 點根據(jù)收到的網(wǎng)絡上其他節(jié)點發(fā)回的路由回復消息RREP以及路由激活消息的 路由回復消息RREP-S的信息,選擇一條時延最短路徑和與該時延最短路徑節(jié) 點不相交且序列號最大跳數(shù)最少的路徑,進行數(shù)據(jù)分組的分流發(fā)送。只建立 兩條節(jié)點不相交路徑既可以平衡網(wǎng)絡負載提高協(xié)議容錯能力,又不會因為路 徑過多引起的路由計算開銷。② 多路徑路由維護階段源節(jié)點與目標節(jié)點進行數(shù)據(jù)傳輸,當有多路徑 出現(xiàn)斷鏈的時候,斷鏈的上游節(jié)點需要發(fā)送單播路由錯誤消息RERR給源節(jié)點, 如果只有一條路由失效,則源節(jié)點繼續(xù)使用另一條路徑發(fā)送數(shù)據(jù)分組,刪除無效路由信息。當兩條路徑都斷開,源節(jié)點重新進行多路徑尋找,這樣可以 減少因為頻繁觸發(fā)路由尋找進程帶來的開銷。③負載分配階段負載組播路由建立完成以后,數(shù)據(jù)在多路徑上的傳輸 分配。該部分源節(jié)點找到并激活第一條路徑以后,立即將所有數(shù)據(jù)分組發(fā)送 到該條路徑上進行數(shù)據(jù)傳輸,直到源節(jié)點找到并激活第二條路徑以后,就將 每個數(shù)據(jù)分組輪流發(fā)送在兩條路徑上,以實現(xiàn)數(shù)據(jù)分組的分流發(fā)送。源節(jié)點根據(jù)廣播路由請求消息RREQ尋找路由路徑后,需要等待一段時間 來接收其他節(jié)點發(fā)回的路由回復消息RREP。在這段等待時間內(nèi),源節(jié)點可能 收到多條RREP消息,多路徑建立部分會根據(jù)這些路由回復消息,選擇第一條 到達的RREP消息所建立的路由即最短時延路由作為第一條路徑,激活該路徑 并立即發(fā)送數(shù)據(jù)分組,同時單播路由激活消息MACT-S消息來回復收到的其他 RREP消息發(fā)送節(jié)點。收到MACT-S的中間節(jié)點通過査詢該路徑的單播路由表項 來判斷該路徑是否已經(jīng)激活,如果已經(jīng)激活,則丟棄收到的MACT-S消息,如 果沒有激活就繼續(xù)轉發(fā)該MACT-S消息,從而選擇一條與第一條路徑節(jié)點不相 交的路徑作為第二條路徑。當有節(jié)點發(fā)現(xiàn)鏈路中斷時,中斷處的節(jié)點會向路 由上行節(jié)點發(fā)送一條RERR消息,接收到RERR消息的中間節(jié)點刪除其備用路 由表中的相關路由項,繼續(xù)向上游節(jié)點轉發(fā)該RERR消息,收到RERR的源節(jié) 點首先判斷是否兩條路徑都已經(jīng)失效,如果只有一條路徑失效,則繼續(xù)使用 另一條路徑發(fā)送數(shù)據(jù),如果兩條路徑都已經(jīng)失效,則源節(jié)點重新發(fā)送路由請 求消息觸發(fā)路由尋找進程,重新尋找新的路徑。如圖2所示為多路徑擴展方法中源節(jié)點處理控制消息流程圖。設置RREP-S消息等待時間,如本實例設置RREP-S消息等待時間(RREP-S WAIT TIME)為RREP消息等待時間(RREP WAIT TIME)的0. 5倍。建立一個備 用路由表來存儲和標識建立的第二條路徑。當一個源節(jié)點需要發(fā)送組播數(shù)據(jù)給目前還沒有路由到達的組播組的時 候,廣播一條路由請求消息RREQ來尋找路由。收到RREQ消息的任何中間節(jié) 點只要有足夠新的路由到達組播組,則單播一條RREP消息給源節(jié)點以響應路 由請求消息。如果一個接收到RREQ消息的中間節(jié)點不是組播組的成員節(jié)點,也沒有到達組播組的路由,則這個中間節(jié)點繼續(xù)廣播該RREQ消息。源節(jié)點若 在1. 5x(RREP WAIT TIME )時間內(nèi)沒有收到RREP消息,則重新廣播一條RREQ 消息,并將RREQ消息的廣播跳數(shù)字段(Broadcastj:D)加1,若源節(jié)點在這段 時間結束前仍然沒有接收到RREP消息,則繼續(xù)重新廣播RREQ消息,每次廣 播前將RREQ消息的Broadcast—ID字段加1,最多廣播RREQ重復次數(shù) (RREQ—RETRIES, —般設置為2)次RREQ消息。若源節(jié)點在廣播RREQ_RETRIES 次RREQ消息后,依然沒有接收到RREP消息,則該源節(jié)點自己成為組播組的 組長節(jié)點,并初始化組播組序列號。若源節(jié)點在1. 5x(RREP WAIT TIME )時間內(nèi)收到一條或多條RREP消息, 先通過査詢緩存判斷到達的RREP消息是否是第一條RREP消息。若是第一條 到達的RREP消息,該路由為第一條路徑,則緩存該RREP消息并單播一條路 由激活消息(MACT)來激活該條路由,然后向這條已經(jīng)建立的路徑發(fā)送數(shù)據(jù)分 組,這樣可以盡量減少路由尋找?guī)淼臅r延。收到MACT消息的中間節(jié)點緩存 該消息并激活單播路由表中相關條目,然后繼續(xù)發(fā)送MACT消息給下一跳節(jié)點, 直到組播組成員節(jié)點收到MACT消息才停止發(fā)送。如果源節(jié)點收到的不是第一條RREP消息,先在MACT消息的R字段后面 添加一個S字段,并設置該S字段為1,表示該MACT消息為MACT-S消息,帶 S字段的MACT消息如圖3所示,該消息格式中,類型字段取值為4, J字段設 置為1時用于激活組播樹,P字段設置為1時用于修剪組播樹,G字段設置為 1時表示需要進行組長節(jié)點選舉,U字段設置為1時表示路由修復后需要進行 更新,R字段設置為1時表示節(jié)點需要重新啟動。再回復MACT-S消息給下一 跳節(jié)點,收到MACT-S消息的中間節(jié)點通過該路徑的單播路由表項來判斷該路 徑是否己經(jīng)激活,如果已經(jīng)激活,則丟棄該MACT-S消息;如果沒有,則將該 路由添加到備用路由表中,并標記該路由為未激活,然后將該未激活路徑的 MACT-S消息轉發(fā)給下一跳節(jié)點,直到該MACT-S消息轉發(fā)到組播組成員節(jié)點為 止。這樣選出的第二條路徑與第一條時延最短路徑節(jié)點不相交。收到該MACT-S 的組播組節(jié)點先在RREP消息的A字段后面添加一個S字段,并設置該S字段 為1,表示該RREP消息為RREP-S消息,帶S字段的RREP消息如圖4所示,該消息格式中,類型字段取值為2, R字段設置為1時用于應答組播樹修復請 求,A字段表示要求應答。然后組播組節(jié)點向該條路由單播一條RREP-S消息, 收到RREP-S消息的中間節(jié)點激活其備用路由表中的相關路由項然后繼續(xù)轉發(fā) 給源節(jié)點。源節(jié)點先將該RREP-S消息緩存,如果在1.5x(RREP WAIT T頂E ) 時間內(nèi)收到多條RREP-S消息,則選擇序列號最大,跳數(shù)最小的RREP-S消息 而忽略其他消息,將相關路由項添加到備用路由表并且激活該路由項。當兩條路徑都選擇完畢后,源節(jié)點將每個數(shù)據(jù)分組輪流發(fā)送在兩條路徑 上,即在第一條路徑上發(fā)送一個數(shù)據(jù)分組,再在第二條路徑上發(fā)送下一個數(shù) 據(jù)分組,如此循環(huán)來實現(xiàn)向目的節(jié)點分流發(fā)送數(shù)據(jù)。多路徑路由維護部分負責多路徑發(fā)生斷鏈后的操作。由于節(jié)點的移動性、 網(wǎng)絡拓撲變化等原因,鏈路容易發(fā)生斷裂。節(jié)點在一段時間內(nèi)沒有收到相鄰 節(jié)點發(fā)送的任何消息或者不能將數(shù)據(jù)分組發(fā)送給路由上的下一跳節(jié)點,則判 斷其鏈路中斷。當有節(jié)點發(fā)現(xiàn)鏈路中斷時,中斷處的上游節(jié)點向源節(jié)點單播 一條路由錯誤消息(RERR),以通知源節(jié)點該條路徑已經(jīng)中斷。該路由上的中 間節(jié)點收到RERR消息以后,刪除其備用路由表中的相關路由項,然后繼續(xù)轉 發(fā)該RERR消息,直到源節(jié)點收到該RERR消息。收到RERR的源節(jié)點刪除其備 用路由表中的相關路由項,然后通過査詢路由表相關項來判斷到達該目的節(jié) 點的兩條路徑是否都已經(jīng)失效,如果只有一條路由失效,則繼續(xù)使用另一條 路徑發(fā)送數(shù)據(jù),并將所有數(shù)據(jù)分組都發(fā)送到正常的那條路徑上。如果兩條路 徑都已經(jīng)中斷,源節(jié)點才廣播RREQ消息來進行路由尋找。本發(fā)明的基于MA0DV協(xié)議的多路徑擴展方法,與MA0DV原協(xié)議以及其他 一些自組織網(wǎng)絡多路徑算法比較,具有以下優(yōu)點 支持多路徑路由的組播協(xié)議,有效平衡網(wǎng)絡負載,減輕網(wǎng)絡擁塞,提高 MAODV協(xié)議的容錯能力; 支持多路徑的節(jié)點不相交; 采用MA0DV原有的MACT消息來選擇兩條節(jié)點不相交路徑,方法簡單, 不會造成過多的路由計算開銷; 考慮到選擇兩條以上的備用路由并不能提升很多路由性能,所以只選擇了兩條路徑,可以減少資源消耗,提高計算效率; 最短時延路由建立完畢,就開始發(fā)送數(shù)據(jù)分組,當?shù)诙l節(jié)點不相交路 徑建立以后,再向兩條路徑分流發(fā)送數(shù)據(jù)分組,這樣可以保證時延最小,又 能平衡網(wǎng)絡負載; 只有當兩條路徑都中斷,源節(jié)點才重新進行路由尋找,減少了路由尋找 次數(shù),從而控制路由開銷。本發(fā)明可用于移動自組織網(wǎng)絡相關應用領域。
權利要求
1、一種基于MAODV協(xié)議的多路徑擴展方法,其特征在于,包括如下步驟,源節(jié)點根據(jù)收到的路由回復消息RREP以及路由激活消息的路由回復消息RREP-S的信息,選擇一條時延最短路徑作為第一條路徑,選擇與第一條路徑節(jié)點不相交且序列號最大跳數(shù)最少的路徑作為第二路徑;源節(jié)點找到并激活第一條路徑后,將所有數(shù)據(jù)分組發(fā)送到該條路徑上,當源節(jié)點找到并激活第二條路徑以后,向兩條路徑發(fā)送數(shù)據(jù)分組以平衡網(wǎng)絡負載;當路徑出現(xiàn)斷鏈的時候,斷鏈的上游節(jié)點將單播路由錯誤消息發(fā)送給源節(jié)點,判斷路由是否失效。
2、 根據(jù)權利要求1所述的方法,其特征在于,選擇第一條路徑的步驟具體包 括,在路由激活消息MACT的R字段后面添加一個S字段,在RREP消息的A 字段后面添加一個S字段,源節(jié)點對接收到的RREP和RREP-S的信息進行判 斷,當S字段為1時,查詢緩存器判斷到達源節(jié)點的RREP消息是否是第一條, 如是,則該路徑為第一條路徑。
3、 根據(jù)權利要求1所述的方法,其特征在于,所述選擇第二條路徑的步驟包 括,將未激活路徑的路由激活消息轉發(fā)給下一跳節(jié)點,直到該消息轉發(fā)到組 播組節(jié)點,該組播組節(jié)點向該條路由單播一條RREP-S消息,收到RREP-S消 息的中間節(jié)點激活其備用路由表中的相關路由項后繼續(xù)將RREP-S消息轉發(fā)給 源節(jié)點,如在規(guī)定時間內(nèi)收到多條RREP-S消息,則選擇序列號最大,跳數(shù)最 小的路由作為第二條路徑。
4、 根據(jù)權利要求2所述的方法,其特征在于,源節(jié)點若在規(guī)定時間內(nèi)沒有收 到RREP消息,則重新廣播一條路由請求消息RREQ,并將RREQ消息的廣播跳 數(shù)字段加l,若源節(jié)點在廣播RREQ重復次數(shù)次的RREQ消息后,依然沒有接收 到RREP消息,則該源節(jié)點成為組播組的組長節(jié)點。
全文摘要
本發(fā)明請求保護一種基于MAODV協(xié)議的多路徑擴展方法,涉及移動通信網(wǎng)絡技術。本發(fā)明所采用的技術方案是,源節(jié)點根據(jù)收到的網(wǎng)絡上其他節(jié)點發(fā)回的路由回復消息RREP以及路由激活消息的路由回復消息RREP-S的信息,選擇一條時延最短路徑作為第一條路徑,選擇與第一條路徑節(jié)點不相交且序列號最大跳數(shù)最少的路徑作為第二路徑,按照負載分配的原則將數(shù)據(jù)分組分別發(fā)送到兩條路徑上,以平衡網(wǎng)絡負載,減輕網(wǎng)絡擁塞,提高MAODV協(xié)議的容錯能力。本發(fā)明可用于移動自組織網(wǎng)絡相關應用領域。
文檔編號H04L29/08GK101232458SQ200810069338
公開日2008年7月30日 申請日期2008年1月31日 優(yōu)先權日2008年1月31日
發(fā)明者劉宴兵, 紅 唐, 飛 薛 申請人:重慶郵電大學