專利名稱:一種移動Ad Hoc網(wǎng)絡多播路由方法
技術領域:
本發(fā)明涉及一種移動Ad Hoc網(wǎng)絡多播路由方法(MAODV-MM路由方法), 屬于無線通信領域。
背景技術:
MAODV-醒路由方法的主要目的是為實現(xiàn)移動Ad Hoc網(wǎng)絡產品提供一個
易于實現(xiàn)的多播路由算法方案,因此路由算法的改進是在基于已有的物理層 和MAC層基本架構的基礎上提出的,與現(xiàn)有的一些通過更改物理層和MAC層
具體參數(shù)來實現(xiàn)的高性能路由算法設計思路有所不同,它需要更多地考慮路 由算法的復雜度,優(yōu)化網(wǎng)絡層的分組投遞率和網(wǎng)絡能耗等性能。
基于網(wǎng)的多播路由協(xié)議通過一個共享網(wǎng)絡傳輸數(shù)據(jù)包,共享網(wǎng)絡上包含 多播內從發(fā)送節(jié)點到接收節(jié)點的所有路徑。由于網(wǎng)格多播路由協(xié)議每個發(fā)送 節(jié)點到每個多播接收節(jié)點有多條路徑,因此某條傳輸路徑的斷開對多播傳輸 產生的影響不大。但是為了維護共享網(wǎng)格,網(wǎng)格多播路由協(xié)議需要發(fā)送大量 的冗余信息來維護網(wǎng)絡的穩(wěn)定性。因此,當多播節(jié)點數(shù)目過多,傳輸負載很 大時,大量的冗余信息和數(shù)據(jù)包副本會造成網(wǎng)絡資源消耗過大。此外,無線 自組網(wǎng)采用ALOHA信道,當自組網(wǎng)內分組數(shù)據(jù)包過多時,容易使一些需要發(fā) 送的分組包丟失,大大降低了網(wǎng)絡的分組投遞率。
MAODV多播協(xié)議是一種按需的多播樹路由協(xié)議,傳輸路徑比較短,存儲 的路由參數(shù)較少,并且以單播AODV協(xié)議為基礎,易于在原有的單播路由基 礎上進行改進。綜合考慮現(xiàn)有硬件的一些性能,為更好地實現(xiàn)路由方案,選 用了以MAODV協(xié)議為基礎進行多播路由協(xié)議的改進。
MAODV通過鏈路層通告機制和節(jié)點向鄰居節(jié)點周期性地廣播HELLO消息 這兩種機制來檢測鏈路的有效性。節(jié)點一旦發(fā)現(xiàn)鏈路斷開,就向信源發(fā)送RERR消息,如果網(wǎng)絡結構過大,就會造成路由的維護信息過多,導致網(wǎng)絡 擁塞。在大規(guī)模動態(tài)變化的網(wǎng)絡中,這種機制會極大地損害網(wǎng)絡的性能。在
MA0DV多播路由協(xié)議建立多播樹時,如果網(wǎng)絡中一個節(jié)點想要加入多播組, 就要洪泛地隨機發(fā)送JOIN RREQ加入消息,請求加入該多播組;在網(wǎng)絡內, 如果同時申請加入多播組的節(jié)點過多時,請求加入信息就會瞬間增多,而無 線自組網(wǎng)是一個信道受限系統(tǒng),過多的路由控制信息會造成網(wǎng)絡的阻塞,大 大降低網(wǎng)絡的信道利用率。因此,在基于樹的多播路由協(xié)議中,研究如何減 小因修復鏈路給網(wǎng)絡帶來的沖擊對網(wǎng)絡性能的提高有很重要的意義。
發(fā)明內容
本發(fā)明的目的在于針對上述現(xiàn)有技術中的不足之處而提供一種移動Ad Hoc網(wǎng)絡多播路由方法(MAODV-MM)。
本發(fā)明的目的可以通過以下措施來達到
一種移動Ad Hoc網(wǎng)絡多播路由方法,包括多播路由的消息廣播、多播 路由的建立、多播路由的應用、多播路由的修復、多播路由的合并與銷毀; 所述的多播路由消息廣播步驟為
(1) .多播樹通過多播組長發(fā)送Group Hello消息維護多播樹結構;
(2) .中間節(jié)點接收到Group Hello消息后,通過Group Hello消息的 消息ID號來判斷是否接收過該消息;
(3) .如果是第一次收到,則根據(jù)消息的序列號大小,更新節(jié)點多播路 由表信息和多播組長的單播路由表信息,并將轉發(fā)數(shù)據(jù)包中到多播組長的跳 數(shù)加l,然后繼續(xù)轉發(fā)該Group Hello消息,以及
如果已接收過該消息,則將其丟棄; 所述的多播路由的建立步驟為
(1) .接收節(jié)點向上游節(jié)點發(fā)送Group Hello消息;
(2) .上游的中間節(jié)點收到該消息之后,首先判斷該節(jié)點是否已經是多 播樹上的成員節(jié)點,如果不是成員節(jié)點,則首先把該節(jié)點的多播標識改成多播樹上的成員節(jié)點;如果己經是,則不做處理;
(3) .上游節(jié)點處理完多播樹標識之后,在多播路由表中添加或更新到 上游節(jié)點的正向鏈路及到下游節(jié)點的反向鏈路;
(4) .上游節(jié)點繼續(xù)選擇通往多播組長的最優(yōu)路徑,并繼續(xù)向它的上游 節(jié)點發(fā)送Group J。in消息;
所述的多播路由的應用步驟為
(1) .通過多播組長定時地發(fā)送Group Hello消息,發(fā)送節(jié)點不斷更新到
多播組長的單播路由信息和多播路由信息;
(2) .發(fā)送節(jié)點發(fā)送分組數(shù)據(jù)包之后,如果在一定時間內,沒有收到多 播組長路徑的上游節(jié)點發(fā)回來的數(shù)據(jù)反饋消息,則認為該條傳輸鏈路不能發(fā) 送數(shù)據(jù),并在多播組長的連接實體中刪除該路徑,繼續(xù)選擇次優(yōu)路徑發(fā)送分 組數(shù)據(jù)包;
所述的多播路由的修復步驟為
當發(fā)送節(jié)點到多播組長的最優(yōu)路徑斷開時,改進的路由協(xié)議將會在到多 播組長的多播連接實體中選擇次優(yōu)的路徑,作為繼續(xù)傳輸?shù)淖顑?yōu)路徑; 所述的多播樹的合并與銷毀步驟為
當一個中間節(jié)點接收到兩個多播組長的廣播消息之后,如果發(fā)現(xiàn)兩個多 播組長發(fā)送的廣播消息中攜帶的多播組長地址相同,則中間節(jié)點判斷多播組 長的IP地址大小;
如果接收的多播組長IP地址小于上次收到的廣播消息中多播組長的IP 地址,自動丟棄該信息,否則更新多播路由信息,把多播組長設定成該值;
如果一個多播組的組長收到另外一個多播組長發(fā)來的具有相同多播地 址的廣播消息,則判斷該廣播消息的組長IP地址的大??;
如果接收的廣播IP地址大于本組的IP地址,則把本節(jié)點身份從多播組 長變成普通節(jié)點,且中間節(jié)點和原多播組長根據(jù)新多播組長的廣播消息,分 別更新多播路由和到多播組長的反向路由。否則丟棄該多播消息;當多播樹銷毀時,多播樹的組長就會發(fā)送Group Destroy消息,其他節(jié) 點收到該消息后,自動刪除與該多播組相關的一切消息。
Group Hello消息包括消息ID號,多播組的IP地址,組長的IP地 址,到多播組長的跳數(shù),多播組的序列號。
所述的更新節(jié)點多播路由表的步驟為
中間節(jié)點轉發(fā)該Group Hello消息之前,首先判斷該廣播消息中多播組 的序列號,如果小于當前存儲的該多播組的序列號,則不進行處理;如果大 于存儲的多播組序列號,則更新中間節(jié)點的該多播路由表信息,刪除舊的該 多播路由信息;同時,更新到多播組長的單播路由信息,刪除原信息;如果 消息序列號等于多播組的序列號,則在到多播組長的單播路由上添加新的連 接實體;連接實體的主要功能是讓多播組內的接收節(jié)點可以有多條路徑到達 多播組長,并接收多播消息,增強多播路由的健壯性。
所述的連接實體包括多播組的序列號,下一跳地址,到多播組長的跳 數(shù);這些實體按照節(jié)點到組長的跳數(shù)進行排序,最優(yōu)的路徑放在實體鏈表的 前面;當中間節(jié)點定時接收到組長發(fā)送的Group Hello消息之后,都會更新
節(jié)點的連接實體。
所述的最優(yōu)路徑選擇指首先選擇多播序列號較大的,然后選擇到多播組 長中轉跳數(shù)較少的,選定完最優(yōu)路徑之后,在該路徑上發(fā)送數(shù)據(jù)包。 本發(fā)明與現(xiàn)有技術相比具有如下優(yōu)點
(1) 易于實現(xiàn)
MAODV多播路由方法是基于單播的AODV路由協(xié)議進行改進的,結構清晰 簡單,易于實現(xiàn),易于改進。MAODV-MM路由方法是以MAODV為基礎,減少 了一些模擬流程的開發(fā),提高了多播路由協(xié)議的性能。
(2) 減少多播建立時的消息發(fā)送
MAODV-MM多播路由方法通過定時地發(fā)送廣播消息來更新節(jié)點的多播路 由信息,節(jié)點可以按需加入多播組中,發(fā)送節(jié)點不需要發(fā)送加入請求,減少了加入控制包的洪泛發(fā)送。
(3)減少了多播路徑維護的消息
MAODV-MM多播路由方法充分利用了多播路由冗余的廣播消息,多播節(jié)點 只需從樹的分支上發(fā)送維護信息,減少了原有的大量維護消息,也減小了網(wǎng) 絡沖突,大大增強了整個網(wǎng)絡的健壯性。 (4)增加了數(shù)據(jù)包發(fā)送的準確性
MA0DV-MM多播路由方法采用反饋確認的方式發(fā)送消息,大大提高了多 播路由數(shù)據(jù)分組發(fā)送的可靠性。
圖1多播路由消息廣播;
圖2多播樹形成圖
圖3路由協(xié)議應用圖4是本發(fā)明的程序步驟框圖5是本發(fā)明Group Hdlo消息廣播的流程圖6是本發(fā)明更新多播路由表及到多播組長的單播路由表的流程圖7是本發(fā)明節(jié)點發(fā)送多播數(shù)據(jù)的流程圖; 圖8是本發(fā)明多播路由建立的流程圖; 圖9本發(fā)明多播樹的合并與銷毀的流程圖; 圖IO本發(fā)明多播樹的合并與銷毀的流程圖; 圖11本發(fā)明的分組投遞率數(shù)據(jù)變化比較圖; 圖12本發(fā)明多播路由協(xié)議中控制分組的個數(shù)變化比較圖; 圖13本發(fā)明MA0DV-MM與MA0DV協(xié)議中分組端到端平均延時變化比較圖; 圖14本發(fā)明數(shù)據(jù)的分組投遞率變化比較圖; 圖15本發(fā)明多播路由協(xié)議控制分組的個數(shù)變化比較圖; 圖16本發(fā)明MA0DV-MM與MA0DV協(xié)議分組端到端平均延時變化比較圖; 圖17本發(fā)明數(shù)據(jù)的分組投遞率變化比較圖;圖18本發(fā)明多播路由協(xié)議控制分組的個數(shù)變化比較圖19本發(fā)明MAODV-匪與MAODV協(xié)議分組端到端平均延時變化比較圖。
具體實施例方式
本發(fā)明結合無線移動自組網(wǎng)的具體特征設計了一種改進的多播路由算 法MAODV-MM。 MAODV-MM路由算法以MAODV路由協(xié)議為基礎,應用了一些網(wǎng) 格多播路由的思想,例如OMDRP, CAMP等多播路由協(xié)議,從而減小了MAODV 協(xié)議的鏈路修復帶來的影響。同時將原有的MAODV多播路由協(xié)議忽略的一些 廣播冗余信息利用起來,減少了鏈路修復消息的發(fā)送,增強了網(wǎng)絡的性能。
MAODV-MM的思想是在多播組內,通過多播組長實時維護多播共享樹, 場景內節(jié)點通過Group Hello消息定期更新路由表。 一個節(jié)點想要加入多播 組,則在廣播消息中選擇到多播組長的最短路徑發(fā)送加入請求;節(jié)點加入多 播組之后,在多播組內最短路徑上發(fā)送、轉發(fā)和接收消息。該路由算法又結 合了網(wǎng)格多播路由協(xié)議的思想,把原有的多播樹路由協(xié)議的一些廣播冗余信 息利用起來,在多播組內,每個發(fā)送或接收節(jié)點都會建立多條到多播組長的 可用路徑。這樣就減少了傳輸鏈路斷開對多播樹路由產生的影響;而當傳輸 路徑斷開時,該新型協(xié)議減少了修復斷開路徑的消息,相應地減少了網(wǎng)絡阻 塞。其包括多播路由的消息廣播、多播路由的建立、多播路由的應用、多播 路由的修復、多播樹的合并與銷毀。
所述的多播路由的消息廣播具體內容包括多播樹通過多播組長發(fā)送 Group Hello消息定期維護樹結構。Group Hello消息包括:消息ID號、多 播組的IP地址、組長的IP地址、到多播組長的跳數(shù)、多播組的序列號等。 中間節(jié)點接收到Group Hello消息后,通過Group Hello消息的消息ID號 來判斷是否接收過該消息,如果是第一次收到,則根據(jù)消息的序列號大小, 更新節(jié)點多播路由表信息和多播組長的單播路由表信息,并將轉發(fā)數(shù)據(jù)包中 到多播組長的跳數(shù)加l,然后繼續(xù)轉發(fā)該Group Hello消息。
更新路由表的具體過程是中間節(jié)點轉發(fā)該Group Hello消息之前,首先判斷該廣播消息中多播組的序列號,如果小于當前存儲的該多播組的序列 號,則不進行處理;如果大于存儲的多播組序列號,則更新中間節(jié)點的該多 播路由表信息,刪除舊的該多播路由信息;同時,更新到多播組長的單播路
由信息,刪除原信息。如果消息序列號等于多播組的序列號,則在到多播組 長的單播路由上添加新的連接實體。連接實體的主要功能是讓多播組內的接 收節(jié)點可以有多條路徑到達多播組長,并接收多播消息,增強多播路由的健 壯性。
連接實體的具體內容包括多播組的序列號,下一跳地址,到組長的跳 數(shù)。這些實體按照節(jié)點到組長的跳數(shù)進行排序,最優(yōu)的路徑放在實體鏈表的 前面。因此,多播組的每個節(jié)點都有一條相對最優(yōu)的到達多播組長的路徑。
當中間節(jié)點定時接收到組長發(fā)送的Gixmp Hello消息之后,都會更新節(jié)點的 連接實體。
如圖1所示,多播組長定時發(fā)送Group Hello消息,每個節(jié)點收到該消 息之后,更新自己到多播組長的單播路由表信息,并添加到組長的連接實體。 因此每個節(jié)點可以擁有多條路徑連接到多播組長。從節(jié)點7的拓撲結構上 看,節(jié)點7有如表1所示的連接實體列表。
從表1可以看出,節(jié)點7可以選擇最優(yōu)的路徑向多播組長發(fā)送或者接收 數(shù)據(jù)分組。算法實現(xiàn)時,還可以根據(jù)需要設定每個節(jié)點到每個多播組長的連 接實體長度,以優(yōu)化節(jié)點的存儲量。
表1組長連接實體表 Table 1 The Connect List of The Group Leader
多播組的序列號到多播組長的跳數(shù)下一跳的節(jié)點號
2025
2036
2036
當發(fā)送節(jié)點要發(fā)送多播數(shù)據(jù)時,首先會査看多播路由的連接實體,查找
11是否有該多播組的具體信息。如果有則在該多播路由上發(fā)送數(shù)據(jù)。如果沒有
具體信息,該節(jié)點將會發(fā)送JOINRREQ信息,希望加入該多播組,如果在一
段時間內沒有收到確認消息,則該發(fā)送節(jié)點認為自己是該多播組的組長,接
下來在自組網(wǎng)內定時發(fā)送Group Hello消息,建立多播樹。
所述的多播路由的建立具體內容包括MA0DV-MM路由協(xié)議是一種按需 的多播路由協(xié)議,接收節(jié)點如果想要成為多播組成員,需要定時向能到達多 播組長的上游節(jié)點發(fā)送Group Join消息;發(fā)送該條消息之前,節(jié)點首先在 該節(jié)點到多播組長的連結實體鏈表中,根據(jù)多播序列號和到組長的跳數(shù),選 擇一條到組長的最優(yōu)路徑;在最優(yōu)路徑上,向上游節(jié)點發(fā)送Group Join消 息,該消息包括接收節(jié)點的IP地址和到多播組長的最優(yōu)路徑的下一跳地址。
上游的中間節(jié)點收到該消息之后,首先判斷該節(jié)點是否已經是多播樹上 的成員節(jié)點,如果不是成員節(jié)點,則首先把該節(jié)點的多播標識改成多播樹上 的成員節(jié)點。上游節(jié)點處理完多播樹標識之后,在多播路由表中添加或更新 到上游節(jié)點的正向鏈路及到下游節(jié)點的反向鏈路。上游節(jié)點繼續(xù)選擇通往多 播組長的最優(yōu)路徑,并繼續(xù)向它的上游節(jié)點發(fā)送Group Join消息。如果上 游節(jié)點在一段時間內沒有收到從下游節(jié)點發(fā)來的Group Join消息,就認為 下游節(jié)點不再需要該鏈路轉發(fā)分組數(shù)據(jù)包,在多播路由表中,刪除到該節(jié)點 的鏈路。而當有多播樹的數(shù)據(jù)包轉發(fā)時,上游節(jié)點就不再向該節(jié)點發(fā)送數(shù)據(jù)。
如果中間節(jié)點在定時器超時之前沒有收到到多播組長的最優(yōu)路徑的下 一跳節(jié)點發(fā)送的Group Hello消息,則節(jié)點認為該上游節(jié)點已經不在該節(jié)點 的傳輸范圍之內,所以在多播組長的連接實體中刪除該條鏈接。同時,節(jié)點 繼續(xù)選出最優(yōu)路徑,發(fā)送Group Join消息。
如圖2所示,接收節(jié)點R7, R8, R9, R10定時向上游發(fā)送消息,分別通 過節(jié)點l, 2, 3, 4連接到多播組長,通過共享多播樹發(fā)送和接收數(shù)據(jù)。
所述的多播路由的應用具體內容包括通過多播組長定時地發(fā)送Gimip Hello消息,發(fā)送節(jié)點不斷更新到多播組長的單播路由信息和多播路由信息當節(jié)點想要發(fā)送數(shù)據(jù)時,如果已經通過Group Hello消息在多播組長的連接 實體上建立了最優(yōu)路徑,則可以通過該路徑發(fā)送分組數(shù)據(jù)包。
發(fā)送節(jié)點發(fā)送分組數(shù)據(jù)包之后,如果在一定時間內,沒有收到多播組長 路徑的上游節(jié)點發(fā)回來的數(shù)據(jù)反饋消息,則認為該條傳輸鏈路不能發(fā)送數(shù) 據(jù),并在多播組長的連接實體中刪除該路徑,繼續(xù)選擇次優(yōu)路徑發(fā)送分組數(shù) 據(jù)包。
如圖3所示,節(jié)點A首先通過節(jié)點B發(fā)送數(shù)據(jù),在一段時間內沒有節(jié)點 B的確認消息,則從節(jié)點C向多播組長發(fā)送分組數(shù)據(jù)包
所述的多播路由的修復具體內容包括當發(fā)送節(jié)點到組長的最優(yōu)路徑斷 開時,改進的路由協(xié)議將會在到組長的多播連接實體中選擇次優(yōu)的路徑,作 為繼續(xù)傳輸?shù)淖顑?yōu)路徑。選擇路徑的標準是,首先選擇多播序列號較大的, 然后選擇到組長的中轉跳數(shù)較少的,選定完最優(yōu)路徑之后,在該路徑上發(fā)送 數(shù)據(jù)包。
因為移動Ad Hoc網(wǎng)絡拓撲的特殊性,在多播路由中,如果發(fā)送節(jié)點査 找不到多播路由,則緩存需要發(fā)送的數(shù)據(jù),并發(fā)送RREQ消息。當收到RREP 回復消息之后,節(jié)點回復MACT等消息去修復發(fā)送節(jié)點到多播組的路由。如 果在一段時間內收不到回復消息,則該發(fā)送節(jié)點以自己為多播組長繼續(xù)建立 多播樹,在多播樹上發(fā)送廣播消息,維護多播路由,繼續(xù)傳送多播數(shù)據(jù)。
所述的多播樹的合并與銷毀具體內容包括當一個中間節(jié)點接收到兩個 多播組長的廣播消息之后,如果發(fā)現(xiàn)兩個組長發(fā)送的廣播消息中攜帶的多播 組地址相同,則中間節(jié)點判斷組長的IP地址大小,如果接收的組長IP地址 小于上次收到的廣播消息中組長的IP地址,自動丟棄該信息,否則更新多 播路由信息,把多播組長設定成該值。如果一個多播組的組長收到另外一個 組長發(fā)來的具有相同多播地址的廣播消息,則判斷該廣播消息的組長IP地 址的大小,如果接收的廣播IP地址大于本組的IP地址,則把本節(jié)點身份從 組長變成普通節(jié)點。中間節(jié)點和原組長根據(jù)新組長的廣播消息,更新多播路由和到多播組長的反向路由。
當多播樹銷毀時,多播樹的組長就會發(fā)送Group Destroy消息,其他節(jié) 點收到該消息后,自動刪除與該多播組相關的一切消息。 下面結合附圖和實施例對本發(fā)明做進一步的說明。
如圖4所示,本路由方法由多播路由的消息廣播、多播路由的建立、多 播路由的應用、多播路由的修復、多播樹的合并與銷毀五個方面組成。
1、 多播路由的消息廣播步驟
多播樹通過多播組長發(fā)送Group Hello消息定期維護樹結構。如圖5所 示,中間節(jié)點接收到Group Hello消息后,通過Group Hello消息的消息 ID號來判斷是否接收過該消息,如果是第一次收到,則根據(jù)消息的序列號 大小,更新節(jié)點多播路由表信息和多播組長的單播路由表信息,并將轉發(fā)數(shù) 據(jù)包中到多播組長的跳數(shù)加1,然后繼續(xù)轉發(fā)該Group Hello消息。如果已 接收過該消息,則將其丟棄。
如圖6所示,更新路由表的具體過程是中間節(jié)點轉發(fā)該Group Hello
消息之前,首先判斷該廣播消息中多播組的序列號,如果小于當前存儲的該 多播組的序列號,則不進行處理;如果大于存儲的多播組序列號,則更新中 間節(jié)點的該多播路由表信息,刪除舊的該多播路由信息;同時,更新到多播 組長的單播路由信息,刪除原信息。如果消息序列號等于多播組的序列號, 則在到多播組長的單播路由上添加新的連接實體。連接實體的主要功能是讓 多播組內的接收節(jié)點可以有多條路徑到達多播組長,并接收多播消息,增強 多播路由的健壯性。
連接實體的具體內容包括多播組的序列號,下一跳地址,到組長的跳 數(shù)。這些實體按照節(jié)點到組長的跳數(shù)大小進行排序,最優(yōu)的路徑放在實體鏈 表的前面。因此,多播組的每個節(jié)點都有一條相對最優(yōu)的到達多播組長的路 徑。當中間節(jié)點定時接收到組長發(fā)送的Group Hello消息之后,都會更新節(jié)
點的連接實體。如圖7所示,當發(fā)送節(jié)點要發(fā)送多播數(shù)據(jù)時,首先會查看多播路由的連 接實體,查找是否有該多播組的具體信息。如果有則在該多播路由上發(fā)送數(shù)
據(jù)。如果沒有具體信息,該節(jié)點將會發(fā)送JOIN RREQ信息,希望加入該多 播組,如果在一段時間內沒有收到確認消息,則該發(fā)送節(jié)點認為自己是該多 播組的組長,接下來在自組網(wǎng)內定時發(fā)送Group Hello消息,建立多播樹。 若收到確認,則加入該多播組。 2、多播路由的建立
MAODV-MM路由協(xié)議是一種按需的多播路由協(xié)議,接收節(jié)點如果想要成 為多播組成員,需要定時向能到達多播組長的上游節(jié)點發(fā)送Group Join消 息;發(fā)送該條消息之前,節(jié)點首先在該節(jié)點到多播組長的連結實體鏈表中, 根據(jù)多播序列號和到組長的跳數(shù),選擇一條到組長的最優(yōu)路徑;在最優(yōu)路徑 上,向上游節(jié)點發(fā)送Group Join消息,該消息包括接收節(jié)點的IP地址和到 多播組長的最優(yōu)路徑的下一跳地址。
如圖8所示,上游的中間節(jié)點收到該消息之后,首先判斷該節(jié)點是否已 經是多播樹上的成員節(jié)點,如果不是成員節(jié)點,則首先把該節(jié)點的多播標識 改成多播樹上的成員節(jié)點。如果已經是,則不做處理。上游節(jié)點處理完多播 樹標識之后,在多播路由表中添加或更新到上游節(jié)點的正向鏈路及到下游節(jié) 點的反向鏈路。上游節(jié)點繼續(xù)選擇通往多播組長的最優(yōu)路徑,并繼續(xù)向它的 上游節(jié)點發(fā)送Group Join消息。如果上游節(jié)點在一段時間內沒有收到從下 游節(jié)點發(fā)來的Group Join消息,就認為下游節(jié)點不再需要該鏈路轉發(fā)分組 數(shù)據(jù)包,在多播路由表中,刪除到該節(jié)點的鏈路。而當有多播樹的數(shù)據(jù)包轉 發(fā)時,上游節(jié)點就不再向該節(jié)點發(fā)送數(shù)據(jù)。
如果中間節(jié)點在定時器超時之前沒有收到到多播組長的最優(yōu)路徑的下 一跳節(jié)點發(fā)送的Group Hello消息,則節(jié)點認為該上游節(jié)點已經不在該節(jié)點 的傳輸范圍之內,所以在多播組長的連接實體中刪除該條鏈接。同時,節(jié)點 繼續(xù)選出最優(yōu)路徑,發(fā)送Group Join消息。3、 多播路由的應用
通過多播組長定時地發(fā)送Group Hello消息,發(fā)送節(jié)點不斷更新到多播 組長的單播路由信息和多播路由信息。當節(jié)點想要發(fā)送數(shù)據(jù)時,如果已經通 過Group Hello消息在多播組長的連接實體上建立了最優(yōu)路徑,則可以通過 該路徑發(fā)送分組數(shù)據(jù)包。
發(fā)送節(jié)點發(fā)送分組數(shù)據(jù)包之后,如果在一定時間內,沒有收到多播組長 路徑的上游節(jié)點發(fā)回來的數(shù)據(jù)反饋消息,則認為該條傳輸鏈路不能發(fā)送數(shù) 據(jù),并在多播組長的連接實體中刪除該路徑,繼續(xù)選擇次優(yōu)路徑發(fā)送分組數(shù) 據(jù)包。
4、 多播路由的修復
當發(fā)送節(jié)點到組長的最優(yōu)路徑斷開時,改進的路由協(xié)議將會在到組長的 多播連接實體中選擇次優(yōu)的路徑,作為繼續(xù)傳輸?shù)淖顑?yōu)路徑。選擇路徑的標 準是,首先選擇多播序列號較大的,然后選擇到組長的中轉跳數(shù)較少的,選 定完最優(yōu)路徑之后,在該路徑上發(fā)送數(shù)據(jù)包。
因為移動Ad Hoc網(wǎng)絡拓撲的特殊性,在多播路由中,如果發(fā)送節(jié)點查 找不到多播路由,則緩存需要發(fā)送的數(shù)據(jù),并發(fā)送RREQ消息。當收到RREP 回復消息之后,節(jié)點回復MACT等消息去修復發(fā)送節(jié)點到多播組的路由。如 果在一段時間內收不到回復消息,則該發(fā)送節(jié)點以自己為多播組長繼續(xù)建立 多播樹,在多播樹上發(fā)送廣播消息,維護多播路由,繼續(xù)傳送多播數(shù)據(jù)。
5、 多播樹的合并與銷毀
如圖9所示,當一個中間節(jié)點接收到兩個多播組長的廣播消息之后,如 果發(fā)現(xiàn)兩個組長發(fā)送的廣播消息中攜帶的多播組地址相同,則中間節(jié)點判斷 組長的IP地址大小,如果接收的組長IP地址小于上次收到的廣播消息中組 長的IP地址,自動丟棄該信息,否則更新多播路由信息,把多播組長設定 成該值。如圖10所示,如果一個多播組的組長收到另外一個組長發(fā)來的具 有相同多播地址的廣播消息,則判斷該廣播消息的組長IP地址的大小,如果接收的廣播IP地址大于本組的IP地址,則把本節(jié)點身份從組長變成普通 節(jié)點,且中間節(jié)點和原組長根據(jù)新組長的廣播消息,分別更新多播路由和到 多播組長的反向路由。否則丟棄該多播消息。
當多播樹銷毀時,多播樹的組長就會發(fā)送Group Destroy消息,其他節(jié) 點收到該消息后,自動刪除與該多播組相關的一切消息。
以下是仿真場景及仿真結果分析
仿真場景內節(jié)點移動速度對路由算法性能的影響的主要目的在網(wǎng)絡拓 撲不斷變化情況下,驗證新的路由算法適應拓撲變化的性能,通過改變仿真 場景中節(jié)點移動的隨機速度構造不同的仿真環(huán)境。
(1)仿真條件
表2仿真實例參數(shù)設置
參數(shù)取值范圍
仿真場景(m*m)1000*1000
組成員節(jié)點數(shù)(個)20
節(jié)點移動的平均速度(m/s)2, 5, 10, 15, 20
數(shù)據(jù)源節(jié)點數(shù)(個)5
數(shù)據(jù)源類型CBR (512byte, 2分組/秒)
(2)結果分析
從圖ll可以看出,隨著節(jié)點的速度變大,協(xié)議的分組投遞率逐漸降低, 改進的路由協(xié)議的分組投遞率一直高于MA0DV。當節(jié)點的速度高于15時, MAODV的分組投遞率下降很快,但是改進的路由協(xié)議的分組投遞率卻很平穩(wěn)。 分析原因為,當節(jié)點的速度不斷增大時,網(wǎng)絡拓撲的變化加快。為了修復斷 開的鏈路,MAODV需要不斷發(fā)送消息去修復鏈路,緩存的數(shù)據(jù)容易丟失,大 大降低了分組投遞率。但是新的路由協(xié)議因為路徑修復時間較短,緩存的數(shù) 據(jù)丟失不多,對分組投遞率影響不大。
從圖12中可以看出隨著速度的增長, 一個接收數(shù)據(jù)包對應發(fā)送的控制包數(shù)量逐漸變大,當節(jié)點的速度大于io時,兩條曲線開始平滑。新路由協(xié) 議的控制包數(shù)量始終小于MAODV的控制包數(shù)量。因為MAODV協(xié)議為了修復路 由和維護控制包,始終要發(fā)送修復和維護消息。當拓撲變化較快時,控制消 息數(shù)量也隨之逐漸變多。MAODV-畫因為在組長鏈路上有多條路徑,減小了 控制包的發(fā)送數(shù)量。
從圖13可以看出,隨著節(jié)點移動速度變快,端到端的平均延時變大。因 為隨著拓撲的不斷變化,需要不斷維護鏈路,使得節(jié)點的端到端延時也逐漸 增加。MAODV-MM協(xié)議的平均延時始終大于MAODV協(xié)議的平均延時,因為 MAODV-醒協(xié)議要在多跳路徑上選擇一條最優(yōu)的路徑發(fā)送數(shù)據(jù),增加了節(jié)點 計算的時間復雜度和空間復雜度,并且需要發(fā)送數(shù)據(jù)接收確認包,產生了一 定的延時。
仿真多播節(jié)點個數(shù)對路由算法性能的影響的主要目的在多播節(jié)點數(shù)目 不斷增加的情況下,驗證新的路由算法適應網(wǎng)絡規(guī)模變化的性能,通過改變 仿真場景中多播組成員節(jié)點個數(shù)構造不同的仿真環(huán)境。 (1)仿真條件
表3仿真實例參數(shù)設置
參數(shù)取值范圍
仿真場景(m*m)1000*1000
組成員節(jié)點數(shù)(個)5, 10, 15, 20, 25
節(jié)點移動的平均速度(m/s)1
數(shù)據(jù)源節(jié)點數(shù)(個)5
數(shù)據(jù)源類型CBR (512byte, 2分組/秒)
(2)結果分析
從圖14可以看出隨著多播節(jié)點數(shù)量的增大,分組投遞率逐漸降低。當 多播節(jié)點的個數(shù)大于15時分組投遞率下降很快。改進的多播路由協(xié)議的分 組投遞率一直高于MAODV。因為隨著節(jié)點數(shù)目的增多,當節(jié)點想要加入多播組,MA0DV的節(jié)點就要發(fā)送大量的加入信息,網(wǎng)絡中的流量會增大,降低了
分組投遞率。MA0DV-MM協(xié)議節(jié)點加入多播組時,因為利用了系統(tǒng)的廣播信 息,節(jié)點可以直接加入該多播組,減少了網(wǎng)絡阻塞,提高了網(wǎng)絡的性能。
從圖15可以看出隨著多播節(jié)點數(shù)量的增大,數(shù)據(jù)包對應的控制包數(shù)量 開始增加。多播節(jié)點的控制包的數(shù)量是平滑增長的。因為隨著節(jié)點數(shù)目的增 多,當節(jié)點想要加入多播組,MA0DV的節(jié)點就要發(fā)送大量的加入信息,網(wǎng)絡 中的控制包流量會增大。改進的路由協(xié)議節(jié)點加入多播組時,因為利用了系 統(tǒng)的廣播信息,節(jié)點可以直接加入該多播組,減少了控制包的數(shù)量。
從圖16可以看出,隨著組內節(jié)點的成員變多,端到端的平均延時變大。 隨著組內節(jié)點增加,需要轉發(fā)的數(shù)據(jù)增多,拓撲結構也很復雜,節(jié)點的端到 端延時也逐漸增加。MAODV-MM協(xié)議的平均延時始終大于MAODV協(xié)議 的平均延時,MAODV-MM協(xié)議要在多跳路徑上選擇一條最優(yōu)的路徑發(fā)送數(shù) 據(jù),增加了節(jié)點計算的時間復雜度和空間復雜度,并且需要發(fā)送數(shù)據(jù)接收確 認包。因此,隨著轉發(fā)包數(shù)量的增加,延時在多播節(jié)點數(shù)大于20時急劇增 加。
仿真場景內網(wǎng)絡負載對路由算法性能的影響的主要目的在網(wǎng)絡負載不 斷變化情況下,驗證新的路由算法適應負載變化的性能,通過改變仿真場景 中節(jié)點數(shù)據(jù)包的發(fā)送率構造不同的仿真環(huán)境。 (1)仿真條件
表4仿真實例參數(shù)設置
參數(shù)取值范圍
仿真場景(m*m)1000*1000
組成員節(jié)點數(shù)(個)20
節(jié)點移動的平均速度(m/s)1
數(shù)據(jù)源節(jié)點數(shù)(個)5
數(shù)據(jù)源發(fā)送率CBR (分組/秒)2, 4, 8, 12
19(2)結果分析
從圖17可以看出隨著節(jié)點單位時間數(shù)據(jù)包的發(fā)送量的增加,網(wǎng)絡負載 變大,網(wǎng)絡性能受到很大影響,分組投遞率隨著負載變大嚴重降低。當發(fā)送 數(shù)據(jù)包數(shù)量變大時,需要不斷維護鏈路,保證節(jié)點間能夠很好的收發(fā)數(shù)據(jù)。
MAODV如果鏈路斷開,則節(jié)點需要重新修復鏈路,需要很長時間,但是改進
的路由協(xié)議可以利用多余的連接鏈路發(fā)送數(shù)據(jù),可以減小新的鏈路發(fā)現(xiàn)時 間,從而提高了網(wǎng)絡性能。
從圖18可以看出隨著節(jié)點單位時間數(shù)據(jù)包的發(fā)送量增加,網(wǎng)絡負載變
大,控制包發(fā)送數(shù)量卻降低,因為隨著數(shù)據(jù)包的發(fā)送量變大,在一條鏈路發(fā) 送的數(shù)據(jù)量就會增大,建鏈路的需求也隨之減小,控制包的數(shù)量相對數(shù)據(jù)包 的數(shù)量就會變小。
從圖19可以看出,隨著單位時間發(fā)送數(shù)據(jù)包的增加,端到端的平均延 時變大。隨著數(shù)據(jù)包發(fā)送的增加,需要等待的中轉時間增多,節(jié)點的端到端 延時也逐漸增加。MAODV-MM協(xié)議的平均延時始終大于MA0DV協(xié)議的平均延 時,MAODV-醒協(xié)議要在多跳路徑上選擇一條最優(yōu)的路徑發(fā)送數(shù)據(jù),增加了 節(jié)點計算的時間復雜度和空間復雜度,并且需要發(fā)送數(shù)據(jù)接收確認包。因此, MA0DV-麗的延時要比MAODV協(xié)議性能差。
權利要求
1、一種移動Ad Hoc網(wǎng)絡多播路由方法,其特征在于,包括多播路由的消息廣播、多播路由的建立、多播路由的應用、多播路由的修復、多播路由的合并與銷毀;所述的多播路由消息廣播步驟為(1). 多播樹通過多播組長發(fā)送Group Hello消息維護多播樹結構;(2). 中間節(jié)點接收到Group Hello消息后,通過Group Hello消息的消息ID號來判斷是否接收過該消息;(3). 如果是第一次收到,則根據(jù)消息的序列號大小,更新節(jié)點多播路由表信息和多播組長的單播路由表信息,并將轉發(fā)數(shù)據(jù)包中到多播組長的跳數(shù)加1,然后繼續(xù)轉發(fā)該Group Hello消息,以及如果已接收過該消息,則將其丟棄;所述的多播路由的建立步驟為(1). 接收節(jié)點向上游節(jié)點發(fā)送Group Hello消息;(2). 上游的中間節(jié)點收到該消息之后,首先判斷該節(jié)點是否已經是多播樹上的成員節(jié)點,如果不是成員節(jié)點,則首先把該節(jié)點的多播標識改成多播樹上的成員節(jié)點;如果已經是,則不做處理;(3). 上游節(jié)點處理完多播樹標識之后,在多播路由表中添加或更新到上游節(jié)點的正向鏈路及到下游節(jié)點的反向鏈路;(4). 上游節(jié)點繼續(xù)選擇通往多播組長的最優(yōu)路徑,并繼續(xù)向它的上游節(jié)點發(fā)送Group Join消息;所述的多播路由的應用步驟為
2、 根據(jù)權利要求1所述的一種移動AdHoc網(wǎng)絡多播路由方法,其特征 在于,Group Hello消息包括消息ID號,多播組的IP地址,組長的IP 地址,到多播組長的跳數(shù),多播組的序列號。
3、 根據(jù)權利要求l所述的一種移動AdHoc網(wǎng)絡多播路由方法,其特征在于,所述的更新節(jié)點多播路由表的步驟為中間節(jié)點轉發(fā)該Group Hello消息之前,首先判斷該廣播消息中多播組 的序列號,如果小于當前存儲的該多播組的序列號,則不進行處理;如果大 于存儲的多播組序列號,則更新中間節(jié)點的該多播路由表信息,刪除舊的該多播路由信息;同時,更新到多播組長的單播路由信息,刪除原信息;如果消息序列號等于多播組的序列號,則在到多播組長的單播路由上添加新的連接實體;連接實體的主要功能是讓多播組內的接收節(jié)點可以有多條路徑到達 多播組長,并接收多播消息,增強多播路由的健壯性。
4、 根據(jù)權利要求1所述的一種移動AdHoc網(wǎng)絡多播路由方法,其特征在于,所述的連接實體包括多播組的序列號,下一跳地址,到多播組長的 跳數(shù);這些實體按照節(jié)點到組長的跳數(shù)進行排序,最優(yōu)的路徑放在實體鏈表 的前面;當中間節(jié)點定時接收到組長發(fā)送的Group Hello消息之后,都會更新節(jié)點的連接實體。
5、 根據(jù)權利要求l所述的一種移動AdHoc網(wǎng)絡多播路由方法,其特征在于,所述的最優(yōu)路徑選擇指首先選擇多播序列號較大的,然后選擇到多播 組長中轉跳數(shù)較少的,選定完最優(yōu)路徑之后,在該路徑上發(fā)送數(shù)據(jù)包。
全文摘要
本發(fā)明涉及一種移動Ad Hoc網(wǎng)絡多播路由方法,包括多播路由的消息廣播、多播路由的建立、多播路由的應用、多播路由的修復、多播路由的合并與銷毀。在多播組內,通過多播組長實時維護多播共享樹,場景內節(jié)點通過Group Hello消息定期更新路由表。一個節(jié)點想要加入多播組,則在廣播消息中選擇到多播組長的最短路徑發(fā)送加入請求;節(jié)點加入多播組之后,在多播組內最短路徑上發(fā)送、轉發(fā)和接收消息。本發(fā)明新型的移動Ad Hoc網(wǎng)絡多播路由方法易于實現(xiàn),能減少多播建立時的消息發(fā)送,減少了多播路徑維護的消息,同時增加了數(shù)據(jù)包發(fā)送的準確性。
文檔編號H04W40/02GK101489276SQ20091007653
公開日2009年7月22日 申請日期2009年1月6日 優(yōu)先權日2009年1月6日
發(fā)明者博 惠, 旭 李, 凱 袁 申請人:北京交通大學