文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.09.003
中文引用格式: 張頡,柴繼文,王海,等. 基于無線Mesh網(wǎng)絡(luò)的集中式自愈路由算法研究[J].電子技術(shù)應(yīng)用,2015,41(9):14-17,28.
英文引用格式: Zhang Jie,Chai Jiwen,Wang Hai,et al. Research on centralized self-healing routing protocol for wireless mesh networks[J].Application of Electronic Technique,2015,41(9):14-17,28.
0 引言
無線Mesh網(wǎng)絡(luò)是一種多跳、具有自組織和自愈特點的寬帶無線網(wǎng)絡(luò)結(jié)構(gòu)。與傳統(tǒng)網(wǎng)絡(luò)相比,它能夠提供更大的便利性和更強的可靠性,能夠更好地適應(yīng)不斷變化的網(wǎng)絡(luò)狀況以及提供優(yōu)化的網(wǎng)絡(luò)性能[1,2]。
當(dāng)前無線Mesh網(wǎng)絡(luò)路由算法尋路過程一般伴隨洪泛現(xiàn)象造成網(wǎng)絡(luò)性能下降。另外,由于無線鏈路的不穩(wěn)定性使得路由的可靠性得不到保障。針對上述問題,已經(jīng)有不少學(xué)者做了相關(guān)研究。文獻[3]提出一種基于最優(yōu)搜索模型限制下一跳節(jié)點搜索區(qū)域的方法,抑制了網(wǎng)絡(luò)中的洪泛現(xiàn)象;文獻[4]則通過限制Hello幀的周期性廣播來達(dá)到降低路由開銷的目的。但上述兩種方法都需要獲取地理位置信息;文獻[5]中利用分級地址結(jié)構(gòu),設(shè)計了一種不需要地理位置信息的定向廣播尋路方法,但該方法過度依賴于Root節(jié)點建立的樹狀路由,魯棒性較差。在保證路由可靠性方面,多路徑路由是一種行之有效的方法[6-9],并且,節(jié)點不相交多路徑相比于鏈路不相交多路徑在負(fù)載均衡及路由可靠性方面更有優(yōu)勢[8],但獲取節(jié)點不相交多路徑的過程通常較為復(fù)雜,并且多路徑路由的質(zhì)量得不到保障。
集中式路由[10]是人們在控制與轉(zhuǎn)發(fā)分離的基礎(chǔ)上提出的一種新的路由方法,目前的研究主要集中在IP網(wǎng)絡(luò),針對無線Mesh網(wǎng)絡(luò)的研究較少。文獻[11]中提出一種由網(wǎng)關(guān)節(jié)點為網(wǎng)內(nèi)通信連接計算最優(yōu)路的路由算法RDR(Root Driven Routing),但到網(wǎng)關(guān)節(jié)點的路由仍然采用廣播方式建立,并且由網(wǎng)關(guān)節(jié)點計算最優(yōu)路的方式進一步加重了網(wǎng)關(guān)節(jié)點的負(fù)擔(dān),其性能并不理想。本文引入集中式路由的思想,設(shè)計了一種由Root節(jié)點為任意節(jié)點對之間計算最優(yōu)路及備份路的路由算法CSRP,該算法在尋路和自愈過程不存在洪泛現(xiàn)象,另外,加入Root節(jié)點動態(tài)切換機制以提高網(wǎng)絡(luò)的穩(wěn)定性。
1 網(wǎng)絡(luò)模型及研究思路
1.1 網(wǎng)絡(luò)模型
假設(shè)網(wǎng)絡(luò)中各節(jié)點隨機分布在一個矩形區(qū)域內(nèi),并且具有如下性質(zhì):(1)網(wǎng)絡(luò)內(nèi)網(wǎng)關(guān)節(jié)點和Root節(jié)點唯一。(2)節(jié)點靜止或具有弱移動性。(3)每個節(jié)點有惟一的標(biāo)識。(4)所有節(jié)點平等,具有相同的計算、通信能力。
節(jié)點運動均遵循運動模型(Random Way Point,RWP)[12],該模型可以描述為:節(jié)點在運動空間A內(nèi)隨機選取目的點D,隨機選取v作為此次運動的速度,其速率在(vmin,vmax)范圍內(nèi)選取,勻速從起始點S沿直線運動到D,并以時間PauseTime保持靜止,這樣完成一次運動過程,如此重復(fù)。
1.2 研究思路
現(xiàn)有無線Mesh網(wǎng)絡(luò)路由算法一般采用分布式的路由方式,這種分布式的路由方式保證了網(wǎng)絡(luò)的可靠性,然而卻導(dǎo)致了尋路洪泛等問題。尤其在網(wǎng)絡(luò)負(fù)荷較重的場景下,進一步加重了網(wǎng)絡(luò)的負(fù)擔(dān),嚴(yán)重影響網(wǎng)絡(luò)的性能。
集中式路由是一種由路由控制平臺統(tǒng)一計算路由信息的路由方法,各節(jié)點負(fù)責(zé)收集拓?fù)湫畔⒉⑶蚁蚵酚煽刂破脚_通告,路由控制平臺根據(jù)當(dāng)前網(wǎng)絡(luò)拓?fù)涫褂肈ijkstra算法為節(jié)點間計算路由,節(jié)點根據(jù)計算的路由消息轉(zhuǎn)發(fā)報文。在集中式路由方法中各節(jié)點不再具備尋路能力,因此需要預(yù)先構(gòu)建一種具備保護功能的路由機制,使得節(jié)點的路徑失效后都有立即可用的備份路徑。
多路徑路由通過路徑信息的冗余性來保證主路由失效后分組傳輸?shù)挠行浴6嗦窂酵ǔ7譃楣?jié)點不相交多路徑和鏈路不相交多路徑,如圖1所示,但節(jié)點不相交多路徑策略能夠保證備份路由和主路由具有最大不相關(guān)性,更能保證路由的可靠性。
因此,在CSRP路由算法中由Root節(jié)點(路由控制平臺)匯聚全網(wǎng)拓?fù)?,為源目?jié)點間計算路由,并結(jié)合節(jié)點不相交多路徑策略提升網(wǎng)絡(luò)的性能。
2 CSRP路由算法
CSRP路由算法分為鏈路狀態(tài)信息上傳、路徑選擇及分組轉(zhuǎn)發(fā)、路由自愈3個階段,下面分別加以介紹。
2.1 鏈路狀態(tài)消息上傳
各節(jié)點在建立起到Root節(jié)點的路由后會首先將與各鄰居節(jié)點之間的鏈路狀態(tài)信息(包含鄰居地址列表及其對應(yīng)的鏈路質(zhì)量度量值)發(fā)送給Root節(jié)點,Root節(jié)點以此掌握全網(wǎng)拓?fù)湫畔ⅰ?/p>
另外,各節(jié)點每隔QueryInterval查詢一次鄰接鏈路的鏈路狀態(tài),在式(1)和式(2)兩個條件任意一個滿足時向Root節(jié)點上傳鏈路狀態(tài)信息。
NeighborListnow?鄞=NeighborListlast(1)
即節(jié)點的鄰居節(jié)點發(fā)生變化。例如,有新的節(jié)點與當(dāng)前節(jié)點建立鄰居關(guān)系或者某個鄰居節(jié)點拆除了與當(dāng)前節(jié)點的鄰居關(guān)系。
Dmetric1>MetricThreshold(2)
即節(jié)點與某個鄰居節(jié)點I間的鏈路累計變化值大于閾值。
另外,各節(jié)點如果連續(xù)次查詢鏈路狀態(tài)未滿足式(1)和式(2)上傳條件,仍上傳鏈路狀態(tài)消息以探測根路由的有效性。
Root節(jié)點收到鏈路狀態(tài)信息后,會更新全網(wǎng)拓?fù)湫畔?。另外,各?jié)點上傳的鏈路狀態(tài)信息通過ACK確認(rèn)機制來確保上傳成功,如果一次傳輸未成功,則在QueryInterval時間后再次上傳。
2.2 路徑選擇及分組轉(zhuǎn)發(fā)流程
當(dāng)要發(fā)送分組時,節(jié)點首先查詢路由表項中是否有到達(dá)目的節(jié)點的路由信息。如果有,按照當(dāng)前路由信息直接發(fā)送至目的節(jié)點;如果沒有,查詢是否有到達(dá)Root節(jié)點的路由信息。
如果不存在到Root節(jié)點的路由,則需要首先請求到Root節(jié)點的路由,在此過程中使用序列號機制保證任何時候節(jié)點間都無環(huán)路。每個節(jié)點都保持著自己的一個序列號,這個序列號通過PREQ被發(fā)送到其他節(jié)點,其他節(jié)點只處理序列號更大的PREQ。請求到Root節(jié)點路由的具體步驟如下:
步驟(1):向所有鄰居節(jié)點發(fā)送路由查詢幀。
步驟(2):鄰居節(jié)點收到路由查詢幀后查看自身根路由是否有效,如果有效,回復(fù)有效確認(rèn)幀,否則回復(fù)無效確認(rèn)幀。
步驟(3):如果節(jié)點接收到有效確認(rèn)幀,則從回復(fù)有效確認(rèn)幀的鄰居節(jié)點中隨機選取一個節(jié)點向其發(fā)送路由請求幀PREQ。
步驟(4):如果沒有收到有效確認(rèn)幀,向其所有鄰居節(jié)點發(fā)送路徑請求幀PREQ。
步驟(5):節(jié)點收到PREQ后,首先檢查PREQ是否包含了一個更大的序列號,如果不是,丟棄該幀。如果是,再檢查根路由有效,如果有效,上傳PREQ至Root節(jié)點,否則,重復(fù)步驟(1)~(4)。
步驟(6):Root節(jié)點收到PREQ。
Root節(jié)點收到序列號更大的PREQ后,計算源節(jié)點到Root節(jié)點的最優(yōu)路及節(jié)點不相交的備份路,分別將最優(yōu)路和備份路封裝成PNTF幀,并沿各自路徑發(fā)送到源節(jié)點,中間節(jié)點及源節(jié)點建立路由。
如果源節(jié)點存在根路由信息,將分組Mesh幀頭中PathReq字段置1,表示請求源節(jié)點到目的節(jié)點的路由。如果傳輸采用根路由的備份路由,需要將Mesh幀頭中IsSparePath字段也置1,表示需要重新請求源節(jié)點到Root節(jié)點的路由,然后將分組發(fā)送到Root節(jié)點。
Root節(jié)點接收到分組后的處理流程如下:
1Root節(jié)點接收到一個分組;
2if (dst_address == m_address) 處理該分組;
3else 將分組轉(zhuǎn)發(fā)到目的節(jié)點;
4查看Mesh幀頭中的路由請求PathReq標(biāo)記;
5if (PathReq==1)
{
6計算源節(jié)點到目的節(jié)點的最優(yōu)路;
7將最優(yōu)路徑封裝成路徑消息幀(Path Information
PIFM)發(fā)送到源節(jié)點;
8源節(jié)點接收到PIFM幀后解析得到最優(yōu)路徑;
9源節(jié)點將最優(yōu)路徑封裝成PNTF幀,并沿最優(yōu)路徑
發(fā)送到目的節(jié)點;
10中間節(jié)點建立到源目節(jié)點的路由;
11目的節(jié)點建立到源節(jié)點的路由;
}
12查看Mesh幀頭中的備份路徑IsSparePath標(biāo)記;
13if (IsSparePath==1)
{
14計算源節(jié)點到Root節(jié)點的最優(yōu)路及節(jié)點不相交的
備份路;
15分別將最優(yōu)路和備份路封裝成PNTF幀,并沿各自
路徑發(fā)送到源節(jié)點;
16中間節(jié)點建立到源節(jié)點及Root節(jié)點的路由;
17源節(jié)點更新到Root節(jié)點的最優(yōu)路由和備份路由;
}
2.3 路由自愈流程
在CSRP算法中,各節(jié)點到Root節(jié)點的路由采用節(jié)點不相交的備份路進行備份,而到其他節(jié)點的路由采用根路由進行備份。下面以圖例的方式詳細(xì)說明利用備份鏈路進行自愈的流程。
根路由失效后的自愈過程如圖2所示。以節(jié)點I為例,到根節(jié)點的主路由為I-F-D-A-R,備份路由為I-G-B-R。某一時刻,F(xiàn)探測到F-D鏈路發(fā)生失效后,會立刻通過自身的根路由F-G-B-R發(fā)送鏈路失效報文LinkPerr給Root節(jié)點,并向源節(jié)點I返回PERR錯誤報文,Root節(jié)點收到LinkPerr失效報文后,從全網(wǎng)拓?fù)渲袆h除失效鏈路,隨后F將緩存在本地的分組通過F-G-B-R發(fā)送至R,I在收到PERR錯誤報文后,會刪除本地路由表中的最優(yōu)路由,將需要發(fā)送的分組切換至備份路I-G-B-R繼續(xù)傳輸,并在Mesh幀頭中標(biāo)記為使用備份路發(fā)送。當(dāng)分組到達(dá)Root節(jié)點時,Root節(jié)點查詢到數(shù)據(jù)是由備份路由傳輸?shù)竭_(dá),會計算Root節(jié)點R到I的當(dāng)前全局最優(yōu)路由和備份路由,并將計算結(jié)果通過PNTF報文發(fā)送到I,I在收到PNTF報文后,會更新本地的最優(yōu)路由和備份路由,后續(xù)分組通過當(dāng)前的最優(yōu)路由I-G-B-R為傳輸。
對于到網(wǎng)內(nèi)其他節(jié)點路由的自愈流程如圖3所示,源節(jié)點為F,目的節(jié)點為H,最優(yōu)路由為F-G-H。G探測到鏈路G-H失效后,會立即返回PERR給源節(jié)點F,并利用本地的根路由(主路由或備份路由)將鏈路失效報文LinkPerr和數(shù)據(jù)幀發(fā)送至Root節(jié)點,Root節(jié)點收到LinkPerr報文后,從全網(wǎng)拓?fù)渲袆h除失效鏈路,并將接收到數(shù)據(jù)幀后轉(zhuǎn)發(fā)到目的節(jié)點H。源節(jié)點收到PERR錯誤報文后,刪除失效路由表項,將后續(xù)數(shù)據(jù)利用根路由(主路由或備份路由)發(fā)送,并在Mesh幀頭中設(shè)置路由請求標(biāo)記,Root節(jié)點接收到數(shù)據(jù)幀后重新計算F和H間的當(dāng)前最優(yōu)路由,并將其通過路徑消息報文PIFM發(fā)送至源節(jié)點F。F收到解析PIFM后得到最優(yōu)路徑,并將最優(yōu)路徑封裝成PNTF幀,向目的節(jié)點H發(fā)送PNTF路由通告消息,中間節(jié)點和目的節(jié)點建立路由,后續(xù)數(shù)據(jù)將通過新建立最優(yōu)路由傳輸。
3 仿真及結(jié)果分析
為了驗證CSRP路由算法的有效性,仿真實驗中將時延、包遞交率和路由開銷(定義路由開銷為路由協(xié)議分組字節(jié)總和占網(wǎng)絡(luò)傳輸數(shù)據(jù)字節(jié)總和的比例)作為評價指標(biāo),對不同網(wǎng)絡(luò)負(fù)荷、鏈路失效場景下CSRP、HWMP和RDR的網(wǎng)絡(luò)性能仿真結(jié)果進行比較和分析。仿真軟件為NS-3[13],仿真參數(shù)如表1所示,節(jié)點隨機均勻分布在網(wǎng)絡(luò)覆蓋范圍內(nèi),網(wǎng)關(guān)節(jié)點位于網(wǎng)絡(luò)覆蓋區(qū)域的左上角,Root節(jié)點初始時刻位于網(wǎng)絡(luò)的中心。仿真結(jié)果均為統(tǒng)計30次取平均的結(jié)果。
3.1 不同網(wǎng)絡(luò)負(fù)荷下的性能仿真
圖4為不同負(fù)荷場景下CSRP與HWMP[14]、RDR[11]的性能仿真。
3.2 自愈性能仿真
在本小節(jié)對比了路由失效場景下CSRP與HWMP、RDR的性能。通信連接數(shù)為20,節(jié)點移動速率為0~5 m/s之間的隨機值,通過設(shè)置不同的PauseTime值來模擬網(wǎng)絡(luò)拓?fù)渥兓膭×页潭取D5中的仿真結(jié)果表明:在時延和包遞交率方面,節(jié)點的移動性越強(PauseTime越小),CSRP算法相比HWMP、RDR性能提升越明顯。這是因為CSRP采用多路徑備份策略,當(dāng)路由失效后可以切換到備用路由進行分組傳輸,確保時效路由的快速恢復(fù)及分組的最小損失。在路由開銷方面,如圖5(c),對于HWMP,其路由開銷主要來源于Root節(jié)點的周期性廣播和節(jié)點的尋路廣播,鏈路越不穩(wěn)定,重新廣播尋路越頻繁,路由開銷越大。而對于RDR,隨著鏈路逐漸穩(wěn)定,鏈路狀態(tài)消息上傳越少,路由開銷越小。對于CSRP,其路由開銷主要來源于鏈路狀態(tài)消息的上傳,其路由開銷最小,比HWMP和RDR路由開銷至少降低67%。
4 結(jié)束語
該文將集中式路由方法用于無線Mesh網(wǎng)絡(luò),提出了一種集中式自愈路由算法CSRP,在該算法中各節(jié)點匯聚鏈路狀態(tài)消息至Root節(jié)點,由Root節(jié)點集中計算最佳路由。相比于傳統(tǒng)路由算法的洪泛尋路機制,該算法在很大程度上降低了路由開銷。另外,該算法采用多路徑備份策略及Root節(jié)點切換機制保證路由的可靠性。通過仿真表明,CSRP路由算法較HWMP、RDR路由算法在不同仿真場景下都有明顯改善,路由開銷至少降低67%,時延平均降低45%,包遞交率平均提升8%。在未來的工作中,考慮在網(wǎng)絡(luò)中加入多個路由控制平臺(Root節(jié)點),各路由控制平臺之間相互備份,以進一步增加網(wǎng)絡(luò)的魯棒性。
參考文獻
[1] BENYAMINA D,HAFID A,GENDREAU M.Wireless mesh networks design-A survey[J].Communications Surveys & Tutorials,2011,14(2):299-310.
[2] AKYILDIZ I,WANG X D.A survey on wireless mesh net-works[J].Communications Magazine,IEEE,2005,43(9):S23-S30.
[3] 秦丹陽,馬琳,沙學(xué)軍,等.移動Ad Hoc網(wǎng)絡(luò)中路由自愈的實現(xiàn)[J].哈爾濱工業(yè)大學(xué)學(xué)報,2010,42(1):46-50.
[4] DONG P,QIAN H Y,WEI X F,et al.Beacon-less geo-graphic multipath routing protocol for ad hoc networks[J].Mobile Networks and Applications,2013,18(4):500-512.
[5] KIM S,CHONG P,KIM D.A location-free semi-direction-al-flooding technique for on-demand routing in low-rate wireless mesh networks[J].IEEE Transactions on Parallel and Distributed Systems,2014,PP(99):1-11.
[6] TARIQUE M,TEPE K E,ADIBI S,et al.Survey of multi-path routing protocols for mobile ad hoc networks[J].Journalof Network and Computer Applications,2009,32(6):1125-1143.
[7] 郝曉辰,賈楠,劉彬.基于擁塞預(yù)知的WSN多徑尋優(yōu)路由協(xié)議[J].電子與信息學(xué)報,2011,33(5):1261-1265.
[8] LAL C,LAXMI V,GAUR M S.A node-disjoint multipath routing method based on AODV protocol for MANETs[C].26th IEEE International Conference on Advanced InformationNetworking and Applications,F(xiàn)ukuoka,2012:399-405.
[9] OBAIDAT M,ALI M,SHAHWAN I,et al.QoS-aware mul-tipath communications over MANETs[J].Journal of Networks,2013,8(1):26-36.
[10] 譚晶,羅軍舟,李偉.一種適合低連接度拓?fù)涞募惺奖Wo路由機制[J].軟件學(xué)報,2013,24(3):575-592.
[11] LIM A O,WANG X D,KADO Y,et al.A hybrid central-ized routing protocol for 802.11s WMNs[J].Mobile Net-works and Applications,2008,13(1-2):117-131.
[12] MUHAMMAD A,ROBERT S.Simulation study of common mobility models for opportunistic networks[C].Simulation Symposium,ANSS 2008,41st Annual,Ottawa,2008:43-50.
[13] IKEDA M,ODA T,KULLA E,et al.Performance evaluationof WMN considering number of connections using ns-3 simulator[C].The Third International Workshop on Methods,Analysis and Protocols for Wireless Communication,Victo-ria,2012:498-502.
[14] BARI S M S,ANWAR F,MASUD M H.Performance of hybrid wireless mesh protocol(HWMP) for IEEE 802.11s WLAN mesh networks[C].IEEE International Conference on Computer and Communication Engineering,Kuala Lumpur,2012:712-716.