孫懷東,孫宇梁
(1.三明學院 機電工程學院,福建 三明 365004;2.湖州師范學院 理學院,浙江 湖州 313000)
無線Mesh網(wǎng)絡是一種新型的無線網(wǎng)絡結構,它因組網(wǎng)靈活、支持范圍大和移動性強等特點,使其在城市軌道交通中具有很好的應用前景[1]。若將傳統(tǒng)的AODV協(xié)議[2]應用于軌道交通環(huán)境下的無線Mesh網(wǎng)絡中,它將采取一種類似于被動網(wǎng)關發(fā)現(xiàn)的方式來發(fā)現(xiàn)通往網(wǎng)關的路由。當終端有信息要發(fā)送到Internet中,卻沒有通向Mesh Gateway的路由時,將廣播帶有源節(jié)點IP地址和目的網(wǎng)關IP地址等信息的Route Request報文,當具有通往目的節(jié)點的路由的中介節(jié)點或者目的節(jié)點收到Route Request后,此節(jié)點向源節(jié)點發(fā)送Route Reply報文。該報文到達源節(jié)點后,源節(jié)點通往目的網(wǎng)關的路由正式建立。
如圖1所示,軌道交通無線Mesh網(wǎng)絡[3]采用的網(wǎng)絡結構是一種帶狀結構,包含交換控制中心(SCC),Mesh 網(wǎng)關(MPP),Mesh 路由器(MAP),Mesh 客戶終端(MC)4 種網(wǎng)絡實體。 交換控制中心是軌道交通WMN的核心,他一方面接入Internet,另一方面以有線的形式與MPP相連;MAP是部署在軌道交通沿線上的Mesh路由器,它們一方面接受客戶終端的接入,另一方面可以對分組進行路由轉(zhuǎn)發(fā);MPP是骨干鏈路通往有線網(wǎng)絡的出口,多個MPP使骨干鏈路構成了一個“多出口總線式”網(wǎng)絡結構[4];MC是部署在交通工具(如:列車、地鐵)上的Mesh終端,要求支持快速AP切換,保證從一個MR切換到下一個MR保持連接不間斷。
圖1 軌道交通WMN結構
由于軌道交通環(huán)境下的無線Mesh網(wǎng)絡的數(shù)據(jù)大多是由MC發(fā)出,流經(jīng)MAP最終通過MPP到達SCC,數(shù)據(jù)流向的方向性非常明顯。此外,這種網(wǎng)絡結構中MAP及MPP的移動性較小并不需要頻繁更新路由表內(nèi)容。在傳統(tǒng)的AODV協(xié)議中,由于Route Request廣播報文并無方向性,所以若網(wǎng)絡中有多個MC同時發(fā)起路由建立請求,將會導致網(wǎng)絡中充滿大量的廣播請求幀,嚴重影響了網(wǎng)絡吞吐量,占用了寶貴的帶寬資源[5]。因此可以根據(jù)軌道交通WMN網(wǎng)絡結構相對固定且數(shù)據(jù)流向的方向性顯著的特點結合主動的網(wǎng)關路由發(fā)現(xiàn)算法對傳統(tǒng)的AODV協(xié)議進行改進。
軌道交通WMN的數(shù)據(jù)大多流向MPP,但是由于Route Request廣播報文沒有方向性,所以其可能在向離MPP靠近的方向轉(zhuǎn)發(fā)的同時也向相反的反向轉(zhuǎn)發(fā),而后者對于路由建立沒有幫助并且占用了帶寬資源,降低了網(wǎng)絡通信吞吐量。
如圖1所示,虛線箭頭代表傳統(tǒng)AODV協(xié)議中Route Request報文的傳播方向。當MC1節(jié)點需要建立通往交換控制中心的路由時,廣播無方向的Route Request報文,由圖1我們可以看出以目前MC1所處位置,通向MPP1的跳數(shù)要小于通向MPP2的跳數(shù),所以此時不可能通過MAP2及MAP3建立路由,但是由于傳統(tǒng)AODV協(xié)議中廣播報文的無方向性,所以MAP2、MAP3不會對收到的Route Request報文進行判斷看是否有廣播的必要,所以Route Request報文仍會向該方向轉(zhuǎn)發(fā),即使在MC1已經(jīng)成功建立了該路由的情況下,Route Request報文仍在該方向上進行廣播,造成了大量不必要的開銷。因此,如果能不可能建立最佳路由的路徑上的節(jié)點對Route Request報文不進行轉(zhuǎn)發(fā)的話,就可以減小對帶寬資源的占用,提高網(wǎng)絡通信吞吐量。
由1.1所闡述的改進思想可以看出,如果能夠使不可能建立最佳路由的路徑上的節(jié)點不轉(zhuǎn)發(fā)Route Request報文,則能夠使Route Request報文盡量向靠近目前最優(yōu)MPP節(jié)點的方向傳播。本章提出的PGD_AODV協(xié)議建立了一種主動網(wǎng)關發(fā)現(xiàn)機制,以便每個MAP節(jié)點或者MC節(jié)點可以學習自己到各個MPP的距離。為支持這種機制,在傳統(tǒng)AODV協(xié)議現(xiàn)有報文的基礎上增加了MPP Hello Message報文,用于MPP節(jié)點廣播自身信息;同時增加了MPP-距離表結構,每個MAP節(jié)點維護一張MPP-距離表,用于保存目前自身到各個MPP節(jié)點的最短距離等信息;最后還對AODV協(xié)議中的Route Request報文結構進行了修改,以支持主動網(wǎng)關發(fā)現(xiàn)機制。
1.2.1 PGD_AODV的Route Request報文結構
PGD_AODV的Route Request報文結構如圖2。
圖2 PGD_AODV的Route Request報文結構
PGD_AODV的Route Request報文結構與傳統(tǒng)AODV協(xié)議的Route Request報文相比,增加了Handled 標 志 位 (H)、ToOutsideNet標志位 (T)、 距離 MPP跳數(shù)字段(Hop Num)、目標 MPP IP地址字段(Destination MPP Address), 各 個 新增字段的含義如下:
① Handled標志位:表示本Route Request報文是否已經(jīng)在之前經(jīng)過的節(jié)點中確定了要通往的MPP節(jié)點,若已經(jīng)確定,則本標志位標記為True,否則本標志位標記為False。
②ToOutsideNet標志位:表示本Route Request報文的目的節(jié)點是否是外網(wǎng)節(jié)點。若本Route Request報文的目的節(jié)點的IP地址與源節(jié)點的IP地址不在一個網(wǎng)段(須流向MPP節(jié)點),則本標志位標記為True,否則本標志位標記為False。
③目標MPP IP地址字段:表示目前本Route Request報文經(jīng)歷最少跳數(shù)能到達的MPP節(jié)點的IP地址。
④距離MPP跳數(shù)字段:到達目標MPP節(jié)點所需要的跳數(shù)。
1.2.2 MPP Hello Message報文結構
MPP Hello Message報文結構如圖3。
圖3 MPP Hello Message報文結構
新增的MPP Hello Message報文結構的字段主要有Type(類型)、MPP IP Address(發(fā)送本報文的MPP節(jié)點的IP地 址 )、MPP Hello Message ID (報 文ID)、Hop Count(跳數(shù)計數(shù)),各個字段的含義如下:
① Type:標識本報文類型為MPP Hello Message報文。
② MPP Hello Message ID:報文 ID,每個MPP Hello Message報文有且只有一個ID,用于唯一標識每個報文,識別重復報文。
③MPP IP Address:發(fā)送本報文的MPP節(jié)點的IP地址,供各個MAP節(jié)點學習。
④ Hop Count:本報文經(jīng)歷的跳數(shù)。
MPP-Distance表表項結構如圖4所示。
新增的Node-Distance Entry(節(jié)點-距離表表項)結構的字段主要有MPP IP Address(MPP節(jié)點的 IP 地址)、MPP Sequence Number(MPP 序號)、Distance(距離),各個字段的含義如下:
① MPP IP Address:MPP節(jié)點IP地址。
圖4 MPP-Distance表表項結構
② MPP Sequence Number:MPP節(jié)點序號,用于識別舊的Hello Message報文。
③ Distance:本節(jié)點距離MPP IP Address字段對應的MPP節(jié)點的最少跳數(shù)。
如果能夠使不可能建立最佳路由的路徑上的節(jié)點能夠不轉(zhuǎn)發(fā)Route Request報文,則能夠使Route Request報文向盡量向靠近目前最優(yōu)MPP節(jié)點的方向傳播。因此需要每個MAP節(jié)點或者MC節(jié)點可以學習自己到各個MPP的距離。這通過MPP節(jié)點周期性廣播MPP Hello Message報文(參考1.2.2)實現(xiàn)。
1.4.1 MAP及MC節(jié)點學習階段描述
MPP節(jié)點廣播MPP Hello Message報文;
MAP節(jié)點或者MC節(jié)點接收到MPP Hello Message報文:
1.4.2 發(fā)起路由更新(建立)階段描述
1.4.3 節(jié)點收到路由請求處理階段描述
1.4.4 協(xié)議整體過程描述
PGD_AODV協(xié)議在處理路由發(fā)起時的效果如圖5所示,其中MAP節(jié)點旁的文字表示該MAP節(jié)點與離它最盡的MPP節(jié)點的距離。
圖5 PGD_AODV協(xié)議執(zhí)行過程圖
當MC1想要建立去往交換控制中心的路由時,先廣播RREQ其中HOP_NUM字段為 2(跳),到達第一個MAP節(jié)點后,其通往目的MPP需要1跳,符合條件,設置HOP NUM為1(跳)后繼續(xù)廣播,分別送往MPP和第二個MAP節(jié)點。當?shù)诙€MAP節(jié)點收到RREQ報文后,發(fā)現(xiàn)通往目的MPP需要2跳而HOP NUM為1(跳),故丟棄該RREQ包不予轉(zhuǎn)發(fā)。實現(xiàn)了RREQ包廣播的方向性。
若按照傳統(tǒng)AODV協(xié)議的方式,向右傳播的RREQ報文不會被丟棄,而會被繼續(xù)傳播至目的節(jié)點,但是返回的RREP報文因為跳數(shù)過大,而導致該路徑不會被采用,所以產(chǎn)生了很多不必要的網(wǎng)絡資源消耗。
顯而易見,PGD_AODV協(xié)議不僅加快了路由建立的時間,同時減少了網(wǎng)絡中的廣播信息,緩解了網(wǎng)絡對帶寬資源的壓力。
采用NS-3網(wǎng)絡模擬器對傳統(tǒng)AODV協(xié)議和PGD_AODV協(xié)議進行仿真對比,將對網(wǎng)絡吞吐量、平均端到端時延、丟包率進行評估。
20個MAP節(jié)點以及3個MPP節(jié)點呈帶狀分布,每隔5個MAP節(jié)點部署一個MPP節(jié)點,MPP節(jié)點通以有線方式接入交換控制中心。MC節(jié)點沿著帶狀鏈路以54 km/h的速度移動。拓撲圖如表1所示。在MC節(jié)點上安裝On-Off Application以54 Mbps的速率向交換控制中心發(fā)送TCP報文,MAC層協(xié)議采用IEEE802.11 g。仿真模擬時間為147.0 s,MC節(jié)點從0.1 s開始發(fā)送數(shù)據(jù),147.0 s停止發(fā)送數(shù)據(jù)。分別以Seed值為1~10進行了10次試驗。
表1 仿真參數(shù)表
2.2.1 網(wǎng)絡吞吐量
網(wǎng)絡吞吐量(Throughput)THO表示在單位時間內(nèi)通過某個網(wǎng)絡(或信道、接口)的數(shù)據(jù)量,在分析Pcap文件時,可以用公式(1)計算平均吞吐量:
公式中,TotalDataReceived是指目的節(jié)點接收到源節(jié)點發(fā)送報文的總字節(jié)數(shù);SimulationTime指的是從發(fā)送第一個包開始到發(fā)送最后一個包結束之間持續(xù)的時間。仿真結果如圖6所示。
圖6 網(wǎng)絡吞吐量
從圖6可以看出,在10次實驗中使用改進PGD_AODV協(xié)議的網(wǎng)絡的吞吐量性能明顯優(yōu)于使用傳統(tǒng)AODV協(xié)議的網(wǎng)絡。經(jīng)過統(tǒng)計,在這10次試驗中使用PGD_AODV協(xié)議的網(wǎng)絡的平均吞吐量約為10.2 Mb/s而使用傳統(tǒng)AODV協(xié)議的網(wǎng)絡平局吞吐量約為3.2 Mb/s,可見使用改進后的AODV協(xié)議的網(wǎng)絡的吞吐量大約是使用傳統(tǒng)AODV協(xié)議的網(wǎng)絡的3倍左右。這是由于改進后的AODV協(xié)議很好的限制了網(wǎng)絡中無用的廣播報文的傳播。
2.2.2 丟包率
丟包率(Packet Loss)是指測試中所丟失數(shù)據(jù)包數(shù)量占所發(fā)送數(shù)據(jù)包的比率,通常在吞吐量范圍內(nèi)測試。在分析NS-3日志文件時,以公式(2)來計算丟包率:
公式中TPN表示源節(jié)點發(fā)送的分組總數(shù),RPN表示目的節(jié)點接收到的分組總數(shù)仿真結果如圖7所示。
從圖7可以看出,在10次實驗中使用改進后的AODV協(xié)議的網(wǎng)絡的丟包率基本上略低于使用傳統(tǒng)AODV協(xié)議的網(wǎng)絡。
2.2.3 平均端到端時延
時延(Time-Delay)是指一個報文或分組從一個網(wǎng)絡的一端傳送到另一個端所需要的時間。在分析NS-3日志文件時,使用公式(3)來計某一分組的時延,使用公式4來計算網(wǎng)絡平均端到端時延:
公式3中,RT(i)表示目的節(jié)點接受到分組i的時間,ST(i)表示源節(jié)點發(fā)送分組i的時間。公式4表示對N個分組的時延值求平均值。
仿真結果如圖8所示。
圖8 時延
可見看出使用PGD_AODV協(xié)議的網(wǎng)絡與使用傳統(tǒng)AODV協(xié)議的網(wǎng)絡平均端到端時延相當,但是經(jīng)統(tǒng)計使用PGD_AODV協(xié)議的網(wǎng)絡的端到端實驗數(shù)據(jù)方差小,說明時延抖動均勻,優(yōu)于使用傳統(tǒng)AODV協(xié)議的網(wǎng)絡。
2.2.4 PGD_AODV協(xié)議與傳統(tǒng)AODV協(xié)議在路由修復方面的性能仿真
在傳統(tǒng)AODV協(xié)議中,若某個節(jié)點出現(xiàn)故障,則路徑中有該節(jié)點,且在該節(jié)點之前的各個節(jié)點因收到錯誤報文而移除有關該路徑的路由。再由各個需要通信的源節(jié)點重新發(fā)起路由建立過程。前文已經(jīng)提及,傳統(tǒng)AODV協(xié)議的路由建立發(fā)起過程,勢必造成許多沒有意義的廣播在網(wǎng)絡中傳播,對網(wǎng)絡性能造成不良影響。同時,在PDG_AODV協(xié)議中,由于各個MAP節(jié)點已經(jīng)學習到自己到距離自己最近的MPP節(jié)點的距離,因此,若某條通往MPP的路徑斷裂,則可以更快的完成路由重新建立的過程。本文針對MC節(jié)點周圍的MAP節(jié)點突然不能正常工作的情形,分別應用AODV協(xié)議以及PGD_AODV協(xié)議進行了仿真實驗。仿真環(huán)境及參數(shù)與2.1小節(jié)中介紹的相同。
圖9 AODV協(xié)議在正常情況以及出現(xiàn)節(jié)點損壞情況下的吞吐量對比圖
圖10 PGD_AODV協(xié)議在正常情況以及出現(xiàn)節(jié)點損壞情況下的吞吐量對比圖
本實驗通過在指定時間將節(jié)點移動至無窮遠處來模擬網(wǎng)絡設備的損壞,多次檢測了分別使用AODV協(xié)議和PGD_AODV協(xié)議的網(wǎng)絡,分別在節(jié)點均正常的情況下以及出現(xiàn)MC節(jié)點周圍的MAP節(jié)點無法正常工作的情形下的網(wǎng)絡吞吐量性能。仿真結果如圖9~10所示。當網(wǎng)絡中出現(xiàn)MC節(jié)點周圍的MAP節(jié)點損壞,相較正常情況網(wǎng)絡平均吞吐量下降明顯。而當網(wǎng)絡使用PGD_AODV協(xié)議時,網(wǎng)絡平均吞吐量在兩種情況下的表現(xiàn)基本相當,這是由于PGD_AODV協(xié)議能夠快速準確地完成路由重新建立的緣故。由本組實驗還可以看出使用PGD_AODV協(xié)議的網(wǎng)絡的吞吐量性能遠遠優(yōu)于使用傳統(tǒng)AODV協(xié)議的網(wǎng)絡,這也印證了2.2.1小節(jié)中的結論。
針對傳統(tǒng)AODV協(xié)議的路由建立機制會導致網(wǎng)絡中充滿大量無實際意義的Route Request廣播報文,占用大量帶寬資源,嚴重影響網(wǎng)絡吞吐量的現(xiàn)象進行了改進。提出了基于主動網(wǎng)關發(fā)現(xiàn)算法的AODV協(xié)議(PGD_AODV),通過限制無實際意義的Route Request報文的廣播,來緩解網(wǎng)絡壓力,提高網(wǎng)絡吞吐量。仿真結果表明PGD_AODV協(xié)議相較傳統(tǒng)AODV協(xié)議在同樣的端到端時延水平下,提高了網(wǎng)絡吞吐量,降低了丟包率,緩解了時延抖動。最后,本文在正常情況下與網(wǎng)絡中出現(xiàn)MC節(jié)點周圍的MAP節(jié)點損壞的情況下,分別對應用AODV協(xié)議以及PGD_AODV協(xié)議的網(wǎng)絡進行了多次實驗,并對得到的網(wǎng)絡平均吞吐量數(shù)據(jù)進行了分析。結果表明,應用PGD_AODV協(xié)議的網(wǎng)絡對于節(jié)點故障的情況并不敏感,網(wǎng)絡吞吐量性能相較正常情況下降不明顯。而應用傳統(tǒng)AODV協(xié)議的網(wǎng)絡出現(xiàn)節(jié)點故障時,網(wǎng)絡吞吐量下降明顯。因此PGD_AODV協(xié)議在路由修復方面的表現(xiàn)要優(yōu)于傳統(tǒng)AODV協(xié)議。