基于Mesh的CS_AODV路由協(xié)議的設(shè)計(jì)與仿真
0 引言
無線Mesh 網(wǎng)絡(luò)是一種多跳、自組織和自愈性的分布式寬帶無線網(wǎng)絡(luò),由于部署簡(jiǎn)單、使用方便而被廣泛應(yīng)用。但由于無線鏈路的不穩(wěn)定性以及帶寬資源的有限性,其網(wǎng)絡(luò)性能無法滿足用戶對(duì)帶寬、時(shí)延、路由穩(wěn)定性以及丟包率的需求,這需要提供一定的QoS 保證,而QoS 路由是實(shí)現(xiàn)QoS 保證的一個(gè)關(guān)鍵因素。目前國內(nèi)外文獻(xiàn)中已經(jīng)提出很多基于無線Mesh網(wǎng)絡(luò)的QoS 路由協(xié)議。文獻(xiàn)[2] 中提出一種基于帶寬的QoS路由協(xié)議-QRBC,協(xié)議應(yīng)用于實(shí)時(shí)數(shù)據(jù)服務(wù)環(huán)境,為實(shí)時(shí)數(shù)據(jù)流選擇一條干擾小,保證帶寬的穩(wěn)定路由;文獻(xiàn)[3],應(yīng)用數(shù)據(jù)傳輸失敗概率去估算路由的有效帶寬,這種估算方法主要用于接入控制算法和QoS 路由協(xié)議;文獻(xiàn)[4] 提出一種多徑QoS 路由協(xié)議AODV_MQ,采用同時(shí)多徑機(jī)制并以時(shí)延為QoS 參數(shù);艦船編隊(duì)無線移動(dòng)網(wǎng)絡(luò)是一種專用網(wǎng)絡(luò),應(yīng)用環(huán)境以及傳輸數(shù)據(jù)類型都有其特殊性,本文針對(duì)艦船編隊(duì)間的無線移動(dòng)網(wǎng)絡(luò)對(duì)路由穩(wěn)定性以及不同數(shù)據(jù)類型進(jìn)行分級(jí)的QoS 保證要求,通過對(duì)現(xiàn)有移動(dòng)自組網(wǎng)路由協(xié)議-AODV 進(jìn)行改進(jìn),提出一種基于AODV 的QoS 機(jī)制改進(jìn)路由協(xié)議-CS_AODV( ClassificaTIonand Path Stability Routin gProtocol based on AODV)。
1 AODV 協(xié)議
AODV是一種源路由按需路由協(xié)議,實(shí)質(zhì)是DSDV與DSR結(jié)合,已被IETF MANET工作組于2003年7月正式公布為自組網(wǎng)路由協(xié)議的RFc標(biāo)準(zhǔn)。只要兩個(gè)節(jié)點(diǎn)都都有通向?qū)Ψ降恼_路由,AODV是不工作的。當(dāng)某節(jié)點(diǎn)需要同某個(gè)目的節(jié)點(diǎn)通信而本身沒有到該目的節(jié)點(diǎn)的路由時(shí),它將廣播一個(gè)RREQ(路由請(qǐng)求消息)來嘗試找到一條到目的節(jié)點(diǎn)的路由,所有接到請(qǐng)求的節(jié)點(diǎn)都會(huì)緩存一條回到發(fā)起節(jié)點(diǎn)的路由,通過比較分組中的序列號(hào)丟棄重復(fù)收到的RREQ.如果RREQ消息到達(dá)目的節(jié)點(diǎn),這條路由將被找到,目的節(jié)點(diǎn)朝源節(jié)點(diǎn)單播一個(gè)RREP后,這條路由就建立了。中間節(jié)點(diǎn)收到RREP 后會(huì)建立一條到源節(jié)點(diǎn)的前向路由。如果收到RREQ的中間節(jié)點(diǎn)擁有到目的節(jié)點(diǎn)的路由,且該路由的序列號(hào)足夠大,則該路由也就被找到,同樣返回RREP.如果該路徑上某個(gè)節(jié)點(diǎn)下一跳變得不可達(dá),它就向上游節(jié)點(diǎn)發(fā)送RERR 分組,通知源節(jié)點(diǎn)鏈路斷裂,源節(jié)點(diǎn)重新開始路由發(fā)現(xiàn)。
2 CS_AODV 協(xié)議設(shè)計(jì)
2.1 優(yōu)先級(jí)設(shè)置
艦船編隊(duì)無線Mesh 組網(wǎng)主要是實(shí)現(xiàn)艦船編隊(duì)統(tǒng)一高效的指揮控制,傳輸信息主要是指控指令以及各種傳感器信息,多媒體業(yè)務(wù)較少,但對(duì)實(shí)時(shí)性要求很高。網(wǎng)絡(luò)中不同的節(jié)點(diǎn)具有不同的業(yè)務(wù)優(yōu)先級(jí)別,同一節(jié)點(diǎn)的不同數(shù)據(jù)類型也有不同的級(jí)別。而且由于無線移動(dòng)網(wǎng)絡(luò)的帶寬資源相對(duì)有限,信道間控制指令所消耗的帶寬必須控制在一定范圍內(nèi),數(shù)據(jù)業(yè)務(wù)等級(jí)劃分不能太過復(fù)雜。CS_AODV 將節(jié)點(diǎn)劃分為2 個(gè)等級(jí)(如旗艦和非旗艦),節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)業(yè)務(wù)流也劃分為4 個(gè)等級(jí)(如指控、探測(cè)、圖像及一般業(yè)務(wù)等),共有8 個(gè)等級(jí);等級(jí)高的業(yè)務(wù)先發(fā)送,業(yè)務(wù)等級(jí)相同則節(jié)點(diǎn)級(jí)別高的先發(fā)送。協(xié)議將AODV 的RREQ 分組中3 個(gè)保留位定義為優(yōu)先級(jí)區(qū),如表1,其中3~4 位設(shè)為業(yè)務(wù)等級(jí),級(jí)別由高到低依次設(shè)為00、01、10、11 ;第5 位設(shè)為節(jié)點(diǎn)級(jí)別,優(yōu)先級(jí)高的節(jié)點(diǎn)設(shè)為0 ;通過比較優(yōu)先級(jí)區(qū)的值來區(qū)分不同節(jié)點(diǎn)和業(yè)務(wù)的級(jí)別,分組級(jí)別越低,其值越大。AODV 的路由表中有到目的節(jié)點(diǎn)的路由,也需要對(duì)Data 分組增加類似的優(yōu)先級(jí)設(shè)置。
艦船編隊(duì)網(wǎng)絡(luò)的數(shù)據(jù)類型以指控和探測(cè)消息等為主,以單個(gè)分組形式在網(wǎng)絡(luò)中傳送。分組發(fā)送過程占用整條路徑,在發(fā)送分組競(jìng)爭(zhēng)信道時(shí)進(jìn)行優(yōu)先級(jí)區(qū)分。源節(jié)點(diǎn)發(fā)送分組,先判斷網(wǎng)絡(luò)中是否存在其他高級(jí)別分組,若有,在等待NET_TRYTIME = 基本等待時(shí)間+ random(class,class+1)(優(yōu)先級(jí)別加上隨機(jī)退避時(shí)間)時(shí)間后再次探測(cè),若無,則開始發(fā)送分組;否則要繼續(xù)等待NET_TRYTIME 時(shí)間,直到?jīng)]有更高級(jí)別分組發(fā)送為止。參數(shù)class 表示服務(wù)級(jí)別,范圍:0~7,級(jí)別越高,class 值就越小,保證級(jí)別高的數(shù)據(jù)業(yè)務(wù)優(yōu)先建立路由。
2.2 引入多點(diǎn)中繼
AODV 協(xié)議的路由發(fā)現(xiàn)以洪泛方式進(jìn)行,沒有給QoS 路由提供引導(dǎo)作用,占用大量網(wǎng)絡(luò)資源,容易造成網(wǎng)絡(luò)風(fēng)暴。為此,本文引入多點(diǎn)中繼(Multi-Point Relaying,MPR)[6-7],網(wǎng)絡(luò)節(jié)點(diǎn)在自己的一跳鄰節(jié)點(diǎn)中選擇一部分節(jié)點(diǎn)作為自己的MPR,由MPR 轉(zhuǎn)發(fā)鏈路狀態(tài)消息,實(shí)現(xiàn)路由控制消息的選擇性洪泛;通過對(duì)HELLO 消息進(jìn)行改進(jìn),只傳遞MPR 選擇節(jié)點(diǎn)與MPR 之間的鏈路信息,實(shí)現(xiàn)鏈路狀態(tài)信息的壓縮。
引入MPR 需要對(duì)HELLO 消息進(jìn)行改進(jìn)。AODV 協(xié)議中HELLO 分組只包含了本節(jié)點(diǎn)IP 地址、本節(jié)點(diǎn)序列號(hào)、跳數(shù)、發(fā)送周期、TTL 以及保留位等信息,鄰居節(jié)點(diǎn)只能夠檢測(cè)跟本節(jié)點(diǎn)的鏈路信息,因此需要對(duì)HELLO 消息進(jìn)行擴(kuò)充,添加鄰節(jié)點(diǎn)地址以及轉(zhuǎn)發(fā)分組意愿、鏈路代碼、鏈路信息大小等狀態(tài)信息。
定義N1(a) 和N2(a) 為節(jié)點(diǎn)a 的一跳和二跳鄰居節(jié)點(diǎn)表,D(b) 為a 的一跳鄰居的出度,MPR(a) 為a 的多點(diǎn)中繼站的集合,定義Stab(a)是為了得到節(jié)點(diǎn)的相對(duì)穩(wěn)定度。MPR 選擇實(shí)現(xiàn)算法如下:
1)MPR(a) 初始化為空。
2)計(jì)算N1(a) 中每個(gè)節(jié)點(diǎn)的出度D(b)(以及Stab(a))。
3)能提供唯一可達(dá)性到N2(a) 中某些N1(a) 節(jié)點(diǎn)的節(jié)點(diǎn)添加到MPR(a) ;并將已經(jīng)添加到MPR(a) 的N2(a) 節(jié)點(diǎn)刪除。
4)當(dāng)N2(a) 中仍剩有節(jié)點(diǎn),則計(jì)算N1(a) 中未選為MPR的節(jié)點(diǎn)的所屬N2(a) 節(jié)點(diǎn)中仍未覆蓋的節(jié)點(diǎn)數(shù)目,將覆蓋最多剩余兩跳節(jié)點(diǎn)的鄰節(jié)點(diǎn)加到MPR(a),若出現(xiàn)相同情況,選擇出度較大鄰節(jié)點(diǎn)的作為MPR,并刪除相應(yīng)的N2(a) 節(jié)點(diǎn)。
5)比較MPR(a) 所覆蓋的N2(a) 節(jié)點(diǎn)。若MPR(a) 中某節(jié)點(diǎn)的兩跳鄰居節(jié)點(diǎn)是其他MPR(a) 節(jié)點(diǎn)的兩跳鄰節(jié)點(diǎn),則將此節(jié)點(diǎn)刪除。
2.3 路徑穩(wěn)定性度量
艦船編隊(duì)組成網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)通常處于移動(dòng)狀態(tài),以某個(gè)節(jié)點(diǎn)的移動(dòng)速度來衡量此節(jié)點(diǎn)的穩(wěn)定性并不可靠,但要計(jì)算整個(gè)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的相對(duì)移動(dòng)速度又比較困難,實(shí)現(xiàn)難度大,而且同網(wǎng)絡(luò)性能提升相比,所增加的網(wǎng)絡(luò)負(fù)荷可能更大。[!--empirenews.page--]
對(duì)于(絕大多數(shù))節(jié)點(diǎn)具有相似運(yùn)動(dòng)模型的移動(dòng)網(wǎng)絡(luò)來說,每個(gè)節(jié)點(diǎn)都處于運(yùn)動(dòng)狀態(tài),但對(duì)整個(gè)網(wǎng)絡(luò)來說,其拓?fù)浣Y(jié)構(gòu)是相對(duì)穩(wěn)定,因此可以利用節(jié)點(diǎn)相對(duì)穩(wěn)定度事先路由穩(wěn)定性的QoS保證。CS_AODV 協(xié)議引入了MPR 節(jié)點(diǎn),該協(xié)議依靠選出的MPR轉(zhuǎn)發(fā)RREQ.但由于MPR 的選擇不僅與該節(jié)點(diǎn)的鄰節(jié)點(diǎn)相關(guān),而且也與兩跳鄰節(jié)點(diǎn)相關(guān),節(jié)點(diǎn)a 的相對(duì)穩(wěn)定性應(yīng)以該節(jié)點(diǎn)兩跳范圍內(nèi)所有節(jié)點(diǎn)(包括一跳鄰節(jié)點(diǎn))的變化情況為依據(jù)。
和為節(jié)點(diǎn)a 的兩跳范圍內(nèi)的鄰節(jié)點(diǎn)數(shù)量,其相對(duì)穩(wěn)定性公式變?yōu)椋?/p>
其中∩和∪分別表示為交集和并集。從上式可以看出:鄰節(jié)點(diǎn)數(shù)量變化越小,Stab 值越大,節(jié)點(diǎn)a 的相對(duì)穩(wěn)定性也越高。
實(shí)現(xiàn)節(jié)點(diǎn)穩(wěn)定性判定需要對(duì)AODV 的跳數(shù)判據(jù)進(jìn)行改進(jìn),加入相對(duì)穩(wěn)定性度量值,其聯(lián)合判據(jù)函數(shù)表示為:
其中:β 為懲罰因子;數(shù)值1 表示為一跳,即通過本節(jié)點(diǎn)一次,跳數(shù)加1.可以看出:Stab 值越大,Metric 值越小。
其路徑總度量值為:
根據(jù)上式對(duì)RREQ 消息格式進(jìn)行擴(kuò)充,在類型、標(biāo)志位、跳數(shù)、RREQID、目的節(jié)點(diǎn)地址、目的節(jié)點(diǎn)序列號(hào)、源節(jié)點(diǎn)地址以及源節(jié)點(diǎn)序列號(hào)等內(nèi)容的基礎(chǔ)上,將跳數(shù)變?yōu)镸etric(path)。
3 仿真分析
本文采用NS2 仿真軟件進(jìn)行仿真,設(shè)置場(chǎng)景如下:空間為500m*500m,節(jié)點(diǎn)隨機(jī)分布;節(jié)點(diǎn)最大移動(dòng)速度為20m/s ;CBR 數(shù)據(jù)流,發(fā)包率50.0,包大小512byts ;采用802.11 MAC協(xié)議、OminiAntenna 天線,Two-Ray Ground ReflectionModel 無線傳播模型,仿真時(shí)間80s.分別設(shè)置10、20、30、40、50、60、80、100 個(gè)節(jié)點(diǎn)對(duì)CS_AODV 和AODV 協(xié)議進(jìn)行仿真,利用MATLAB 進(jìn)行計(jì)算分析。
圖1 表示為分組接收率,節(jié)點(diǎn)個(gè)數(shù)小于20 個(gè)時(shí),兩種協(xié)議的分組接收率差別在5% 以內(nèi);隨著節(jié)點(diǎn)個(gè)數(shù)增加, AODV的分組接收率急遽降低,而CS_AODV 下降比較平緩,這是因?yàn)镃S_AODV 選擇路徑時(shí)剔除了那些移動(dòng)速度快的節(jié)點(diǎn),選擇的路徑相對(duì)比較穩(wěn)定。圖2 為端到端延時(shí),如果節(jié)點(diǎn)個(gè)數(shù)比較少,CS_AODV 的延時(shí)要高于AODV,隨著節(jié)點(diǎn)個(gè)數(shù)的增加,AODV 的時(shí)延的增長(zhǎng)要比CS_AODV 快得多,節(jié)點(diǎn)數(shù)增至100 時(shí),AODV 的延時(shí)比CS_AODV 高出40ms,主要是由于AODV 的路徑相對(duì)不穩(wěn)定,分組重發(fā)率高導(dǎo)致延時(shí)快速增加。分析圖3 看出,在節(jié)點(diǎn)數(shù)很少的情況下,CS_AODV 的指令開銷要比AODV大得多,這是由于選擇MPR 節(jié)點(diǎn)導(dǎo)致控制開銷大量增加;但隨著節(jié)點(diǎn)數(shù)的增加,CS_AODV 協(xié)議的指令開銷比例慢慢減小,而AODV 的開銷在增加,其原因是由于CS_AODV 選擇的路徑相對(duì)穩(wěn)定,路由發(fā)現(xiàn)和重傳的指令相對(duì)減少。從以上分析來看,CS_AODV 適合于網(wǎng)絡(luò)規(guī)模比較大,拓?fù)浣Y(jié)構(gòu)動(dòng)態(tài)變化的網(wǎng)絡(luò)環(huán)境中。
4 總結(jié)
本文針對(duì)艦船編隊(duì)海上無線組網(wǎng)的實(shí)際需求,提出一種QoS機(jī)制路由協(xié)議-CS_AODV.仿真表明, CS_AODV協(xié)議付出一定開銷后能大幅提高分組接收率,縮短了端到端延時(shí),并一定程度上提高了路由對(duì)動(dòng)態(tài)環(huán)境適應(yīng)性。