專利名稱:一種基于MAC層標簽循環(huán)移位的ad hoc網(wǎng)絡(luò)路由方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線網(wǎng)絡(luò)中的路由技術(shù),特別是一種在MAC層實現(xiàn)數(shù)據(jù) 包路由的adhoc網(wǎng)絡(luò)路由方法。
背景技術(shù):
Ad hoc網(wǎng)絡(luò)是由一組帶有無線收發(fā)裝置的移動終端組成的多跳臨時 性網(wǎng)絡(luò),每個移動終端同時具有主機和路由器的功能。Ad hoc網(wǎng)絡(luò)具有無 中心控制節(jié)點、無組織性、網(wǎng)絡(luò)拓撲動態(tài)變化等特性。由于Adhoc網(wǎng)絡(luò) 中所有節(jié)點都具有移動性,并且可以動態(tài)地保持與其他節(jié)點的聯(lián)系,具有 能夠臨時組網(wǎng)的優(yōu)點。因此,ad hoc網(wǎng)絡(luò)經(jīng)常應(yīng)用于軍事領(lǐng)域、防震救災(zāi)、 應(yīng)急通信等領(lǐng)域。
Ad Hoc按需距離矢量路由協(xié)議(Ad-Hoc On Demand Distance Vector Routing, AODV)和動態(tài)源路由協(xié)議(Dynamic Source Routing, DSR)是應(yīng)
用于Ad hoc網(wǎng)絡(luò)中的兩種按需路由協(xié)議。這兩個協(xié)議都是在網(wǎng)絡(luò)層完成 路由和分組轉(zhuǎn)發(fā)工作。在adhoc網(wǎng)絡(luò)中,當一個無線網(wǎng)卡(NIC: network interface card)收到一個數(shù)據(jù)幀時,首先分析目的地址,若NIC是該幀的 接收者,則取出幀頭,把分組交給網(wǎng)絡(luò)層。把數(shù)據(jù)包從NIC交給網(wǎng)絡(luò)層的 過程實際上需要把數(shù)據(jù)從NIC的存儲器轉(zhuǎn)移到主機的存儲器。然后網(wǎng)絡(luò)層 尋找它的路由表,找出該分組的下一跳IP地址,并把下一跳IP地址通過 ARP協(xié)議或?qū)ふ腋咚倬彺娴玫組AC地址,接著把分組交給MAC層用下 一跳的MAC地址封裝。以上過程可以看出網(wǎng)絡(luò)層的主要功能就是決定下 一跳的IP/MAC地址。其中涉及到了許多步驟,包括將數(shù)據(jù)從網(wǎng)絡(luò)接口移 到主機,再從主機移到網(wǎng)絡(luò)接口,搜索路由表,封裝和解封裝等。這些操 作消耗了大量的時間、能源和存儲器資源,而這些對于自組織網(wǎng)絡(luò)節(jié)點來 說都是非常寶貴的資源。
發(fā)明內(nèi)容
本發(fā)明的目的是在ad hoc網(wǎng)絡(luò)中實現(xiàn)基于MAC層的路由協(xié)議,以提 高ad hoc網(wǎng)絡(luò)中傳輸速率和服務(wù)質(zhì)量。在MAC層實現(xiàn)數(shù)據(jù)包的分組轉(zhuǎn)發(fā)。 一種基于MAC層標簽循環(huán)移位的ad hoc網(wǎng)絡(luò)路由方法,包括
a) 源節(jié)點發(fā)送數(shù)據(jù)包時,將由標簽組成的路由信息放在MAC幀的地 址域中,將數(shù)據(jù)包放在MAC幀的body域,然后將MAC幀發(fā)送出去;
b) 中間節(jié)點收到地址域中的首個標簽是自身標簽數(shù)據(jù)包時,判斷地址 域中標簽的個數(shù);如果地址域僅包含一個標簽,則取出MAC幀body域內(nèi)的 數(shù)據(jù)包,并上傳給IP層,完成數(shù)據(jù)包的傳輸;如果地址域包含的標簽多于 一個,則將地址域中所有標簽循環(huán)移位,再將該MAC幀發(fā)送至循環(huán)移位后 地址域中首個標簽對應(yīng)的節(jié)點;
c) 循環(huán)操作步驟b),直至完成數(shù)據(jù)包的傳輸。
MAC層地址域的大小是固定的,且大小比較小,僅僅能容納2-6個 IP地址或MAC地址。因此本發(fā)明用較短的標簽來代替IP地址和MAC地 址,這樣MAC層地址域就可以容納較多的標簽。每個節(jié)點的標簽是唯一 的,與節(jié)點的IP地址一一對應(yīng)。
源節(jié)點發(fā)送數(shù)據(jù)包時,將由標簽組成的路由信息放在MAC幀的地址 域中,將數(shù)據(jù)包放在MAC幀的body域,然后將MAC幀發(fā)送出去。中間 節(jié)點收到數(shù)據(jù)包時,首先查看地址域中的首個標簽是不是自身標簽,如果 不是則丟棄該MAC幀。如果首個標簽是自己的標簽,說明該節(jié)點是數(shù)據(jù) 包轉(zhuǎn)發(fā)過程中的中間節(jié)點或目的節(jié)點。然后該節(jié)點査看地址域是否僅僅包 含一個標簽。如果僅包含一個標簽,那么說明該節(jié)點是目的節(jié)點,MAC 取出MAC幀body域內(nèi)的數(shù)據(jù)包,并上傳給IP層,該數(shù)據(jù)包傳輸成功。 如果地址域包含的標簽多于一個,那么說明該節(jié)點是中間轉(zhuǎn)發(fā)節(jié)點,該節(jié) 點將地址域中所有標簽循環(huán)移位。循環(huán)移位相當于把地址域中首個標簽后 面的所有標簽向前移動一個標簽的長度,再將原來的首個標簽放在地址域 尾部。然后,中間節(jié)點將該MAC幀發(fā)送至循環(huán)移位后地址域中首個標簽 對應(yīng)的節(jié)點。
當中間節(jié)點在MAC層轉(zhuǎn)發(fā)單播數(shù)據(jù)包時,如果達到一定的重發(fā)次數(shù),那么說明鏈路中斷,這時需要向源節(jié)點報告路由中斷。數(shù)據(jù)包在MAC層轉(zhuǎn) 發(fā)時,地址域的標簽采用的是循環(huán)移位的方式處理的,而且地址域攜帶了 源節(jié)點至目的節(jié)點的完整路由,所以可以用地址域尾部的標簽做為路由信 息向源節(jié)點發(fā)送路由中斷消息。
本發(fā)明的adhoc網(wǎng)絡(luò)路由方法,用8bits的標簽來標識節(jié)點,通過MAC 幀的地址域來攜帶標簽路由,從而讓數(shù)據(jù)包的傳輸過程僅通過的中間節(jié)點 的MAC層,而不用通過IP層。理論分析和仿真結(jié)果表明,相對于經(jīng)典的按 需路由協(xié)議AODV和DSR,本發(fā)明方法大大提升了網(wǎng)絡(luò)各方面的性能。
圖1為本發(fā)明方法中路由請求消息RREQ和路由回復(fù)消息RREP的封 裝格式示意圖2為本發(fā)明方法中MAC層幀處理流程圖; 圖3為本發(fā)明方法中IP層包處理流程圖。
具體實施例方式
網(wǎng)絡(luò)中的每個節(jié)點維護兩張表,IP-標簽-路由指針映射表和標簽路由 表。IP-標簽-路由指針映射表提供IP地址、標簽、路由指針三者之間的映 射,節(jié)點根據(jù)IP地址可以得到對應(yīng)的標簽和路由指針。路由指針指向標 簽路由表中的表項,其中存放的是到相應(yīng)IP地址的表簽路由。
本發(fā)明方法實施過程如下 標簽路由的建立
第一步路由請求
當源節(jié)點需要發(fā)送數(shù)據(jù)時,首先檢査IP-標簽-路由指針映射表是否包 含到目的節(jié)點的路由指針,如果沒有相應(yīng)的路由指針,說明沒有到目的節(jié)
點的路由,那么發(fā)起路由請求。設(shè)置并廣播路由請求消息RREQ,同時設(shè) 置RREQ定時器。RREQ包含源節(jié)點地址、目的節(jié)點地址、廣播ID和路 由域(參見圖1)。其中廣播ID是唯一的且遞增,路由域用于存放中間 經(jīng)過節(jié)點的IP地址和標簽。RREQ消息記錄中間節(jié)點的IP地址和標簽。
5當一個中間節(jié)點接收到一個RREQ消息時,它首先查看該RREQ是否 頭次收到。若是頭次收到,則將其記錄在RREQ表中。若不是頭次收到, 則丟棄。RREQ表記錄收到的RREQ,并保持一段時間,基本上用于査看 是否重復(fù)收到已記錄的RREQ。對于首次收到的RREQ,中間節(jié)點將自身 的IP地址和標簽添加到RREQ消息路由域中,同時將RREQ消息中已記錄的 路由信息添加到自身路由表中,然后向它的鄰居節(jié)點廣播修改后的RREQ。
當RREQ消息到達目的節(jié)點時,它首先査看該RREQ是否頭次收到。 若是頭次收到,則將其記錄在RREQ表中,并將回復(fù)RREQ。若不是頭次 收到,則丟棄。
第二步路由回復(fù)
目的節(jié)點首先將RREQ消息中已記錄的路由信息添加到自身路由表 中,該路由信息可以用于目的節(jié)點至源節(jié)點的數(shù)據(jù)包傳輸。目的節(jié)點通過 改變RREQ消息中的類型域,將其類型修改成RREP,來生成路由回復(fù)消息 RREP,然后利用從RREQ中提取的路由信息將RREP單播至源節(jié)點。中間 節(jié)點在MAC層轉(zhuǎn)發(fā)RREP,轉(zhuǎn)發(fā)方式和數(shù)據(jù)包的轉(zhuǎn)發(fā)方式相同。
當源節(jié)點成功收到RREP,它提取記錄在RREP中所有的IP地址和標 簽,然后添加到路由表中。當源節(jié)點的定時器過期卻沒有收到相應(yīng)的 RREP,如果此時還沒達到最大RREQ重發(fā)次數(shù),那么源節(jié)點重新發(fā)起路由 請求過程。如果達到最大RREQ重發(fā)次數(shù),那么源節(jié)點報告上層目的節(jié)點 不可達。
數(shù)據(jù)包的發(fā)送過程
源節(jié)點發(fā)送數(shù)據(jù)包時,將由標簽組成的路由信息放在DATA類型MAC 幀的地址域中,將數(shù)據(jù)包放在DATA類型MAC幀的body域,然后將DATA 類型MAC幀以單播方式發(fā)送出去。中間節(jié)點MAC層收到DATA類型MAC 幀時,首先査看地址域中的首個標簽是不是自身標簽,如果不是則丟棄該 DATA類型MAC幀。如果首個標簽是自己的標簽,說明該節(jié)點是數(shù)據(jù)包轉(zhuǎn) 發(fā)過程中的中間節(jié)點或目的節(jié)點。然后該節(jié)點査看地址域是否僅僅包含一 個標簽。如果僅包含一個標簽,那么說明該節(jié)點是目的節(jié)點,MAC取出 DATA類型MAC幀body域內(nèi)的數(shù)據(jù)包,并上傳給IP層,該數(shù)據(jù)包傳輸成功。如果地址域包含的標簽多于一個,那么說明該節(jié)點是中間轉(zhuǎn)發(fā)節(jié)點,該節(jié)
點將地址域中所有標簽循環(huán)移位,然后將該修改后的DATA類型MAC幀以 單播方式發(fā)送至現(xiàn)在地址域中首個標簽對應(yīng)的節(jié)點。
MAC層收到廣播DATA類型MAC幀時,簡單的取出body域中的數(shù)據(jù) 包,然后上傳給IP層。對于廣播DATA類型MAC幀,其地址域不含有標簽, 僅含有不屬于標簽的標志。
標簽路由的維護。
1. IP-標簽-路由指針映射表和標簽路由表中的表項,當有數(shù)據(jù)發(fā)送或 到達時,相對應(yīng)的條目的生存時間會更新。而沒有得到更新的條目,生存 時間到后會自動刪除。
2. 當兩節(jié)點間的鏈路斷開或某中間節(jié)點失效時,斷開鏈路的上游節(jié)點 需要向源節(jié)點發(fā)送路由中斷消息RERR,以報告鏈路中斷。
在本發(fā)明中,數(shù)據(jù)包的轉(zhuǎn)發(fā)操作發(fā)生在中間節(jié)點的MAC層。由于轉(zhuǎn)發(fā) 的數(shù)據(jù)包不經(jīng)過中間節(jié)點的IP層,所以僅可以用鏈路層確認機制來確認數(shù) 據(jù)包的正確接收。鏈路層確認機制即是MAC層中的ACK確認,當下一跳 節(jié)點正確收到DATA幀后會回復(fù)ACK幀。如果中間轉(zhuǎn)發(fā)節(jié)點沒有收到相應(yīng) 的ACK幀,則說明該節(jié)點至下一跳節(jié)點間的鏈路中斷,該節(jié)點需要產(chǎn)生 RERR消息,并單播至源節(jié)點報告路由中斷。
3. 源節(jié)點收到RERR后,刪除路由表中相應(yīng)的路由。如果源節(jié)點還有 數(shù)據(jù)包要發(fā)送,則重新發(fā)起路由請求,以建立新的路由。
權(quán)利要求
1、一種基于MAC層標簽循環(huán)移位的ad hoc網(wǎng)絡(luò)路由方法,其特征在于a)源節(jié)點發(fā)送數(shù)據(jù)包時,將由標簽組成的路由信息放在MAC幀的地址域中,將數(shù)據(jù)包放在MAC幀的body域,然后將MAC幀發(fā)送出去;b)中間節(jié)點收到地址域中的首個標簽是自身標簽數(shù)據(jù)包時,判斷地址域中標簽的個數(shù);如果地址域僅包含一個標簽,則取出MAC幀body域內(nèi)的數(shù)據(jù)包,并上傳給IP層,完成數(shù)據(jù)包的傳輸;如果地址域包含的標簽多于一個,則將地址域中所有標簽循環(huán)移位,再將該MAC幀發(fā)送至循環(huán)移位后地址域中首個標簽對應(yīng)的節(jié)點;c)循環(huán)操作步驟b),直至完成數(shù)據(jù)包的傳輸。
2、 根據(jù)權(quán)利要求l所述的adhoc網(wǎng)絡(luò)路由方法,其特征在于當中間 節(jié)點在MAC層轉(zhuǎn)發(fā)單播數(shù)據(jù)包時如果發(fā)現(xiàn)鏈路中斷,中間節(jié)點根據(jù)地址域 中攜帶的路由向源節(jié)點發(fā)送路由中斷消息。
全文摘要
本發(fā)明公開了一種基于MAC層標簽循環(huán)移位的ad hoc網(wǎng)絡(luò)路由方法,包括a)源節(jié)點發(fā)送數(shù)據(jù)包時,將由標簽組成的路由信息放在MAC幀的地址域中,將數(shù)據(jù)包放在MAC幀的body域,然后將MAC幀發(fā)送出去;b)中間節(jié)點收到數(shù)據(jù)包中如果地址域僅包含一個標簽,則取出MAC幀body域內(nèi)的數(shù)據(jù)包,并上傳給IP層,完成數(shù)據(jù)包的傳輸;如果地址域包含的標簽多于一個,則將地址域中所有標簽循環(huán)移位,再將該MAC幀發(fā)送至循環(huán)移位后地址域中首個標簽對應(yīng)的節(jié)點;c)循環(huán)操作步驟b),直至完成數(shù)據(jù)包的傳輸。本發(fā)明的ad hoc網(wǎng)絡(luò)路由方法通過MAC幀的地址域來攜帶標簽路由,從而讓數(shù)據(jù)包的傳輸過程僅通過的中間節(jié)點的MAC,而不用通過IP層,可大大提升網(wǎng)絡(luò)性能。
文檔編號H04L12/56GK101651619SQ20091010239
公開日2010年2月17日 申請日期2009年9月7日 優(yōu)先權(quán)日2009年9月7日
發(fā)明者強 于, 余燕平, 刁世斌, 劉云峰, 徐元欣, 梁書成, 洋 王, 王傳剛, 章翠枝, 陳淑敏, 麻敏覺 申請人:浙江大學(xué)