文獻標識碼: 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]。
當前無線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幀的周期性廣播來達到降低路由開銷的目的。但上述兩種方法都需要獲取地理位置信息;文獻[5]中利用分級地址結(jié)構(gòu),設(shè)計了一種不需要地理位置信息的定向廣播尋路方法,但該方法過度依賴于Root節(jié)點建立的樹狀路由,魯棒性較差。在保證路由可靠性方面,多路徑路由是一種行之有效的方法[6-9],并且,節(jié)點不相交多路徑相比于鏈路不相交多路徑在負載均衡及路由可靠性方面更有優(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é)點的負擔,其性能并不理想。本文引入集中式路由的思想,設(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é)點有惟一的標識。(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ò)負荷較重的場景下,進一步加重了網(wǎng)絡(luò)的負擔,嚴重影響網(wǎng)絡(luò)的性能。
集中式路由是一種由路由控制平臺統(tǒng)一計算路由信息的路由方法,各節(jié)點負責收集拓撲信息并且向路由控制平臺通告,路由控制平臺根據(jù)當前網(wǎng)絡(luò)拓撲使用Dijkstra算法為節(jié)點間計算路由,節(jié)點根據(jù)計算的路由消息轉(zhuǎn)發(fā)報文。在集中式路由方法中各節(jié)點不再具備尋路能力,因此需要預(yù)先構(gòu)建一種具備保護功能的路由機制,使得節(jié)點的路徑失效后都有立即可用的備份路徑。
多路徑路由通過路徑信息的冗余性來保證主路由失效后分組傳輸?shù)挠行?。多路徑通常分為?jié)點不相交多路徑和鏈路不相交多路徑,如圖1所示,但節(jié)點不相交多路徑策略能夠保證備份路由和主路由具有最大不相關(guān)性,更能保證路由的可靠性。
因此,在CSRP路由算法中由Root節(jié)點(路由控制平臺)匯聚全網(wǎng)拓撲,為源目節(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)拓撲信息。
另外,各節(jié)點每隔QueryInterval查詢一次鄰接鏈路的鏈路狀態(tài),在式(1)和式(2)兩個條件任意一個滿足時向Root節(jié)點上傳鏈路狀態(tài)信息。
NeighborListnow?鄞=NeighborListlast(1)
即節(jié)點的鄰居節(jié)點發(fā)生變化。例如,有新的節(jié)點與當前節(jié)點建立鄰居關(guān)系或者某個鄰居節(jié)點拆除了與當前節(jié)點的鄰居關(guān)系。
Dmetric1>MetricThreshold(2)
即節(jié)點與某個鄰居節(jié)點I間的鏈路累計變化值大于閾值。
另外,各節(jié)點如果連續(xù)次查詢鏈路狀態(tài)未滿足式(1)和式(2)上傳條件,仍上傳鏈路狀態(tài)消息以探測根路由的有效性。
Root節(jié)點收到鏈路狀態(tài)信息后,會更新全網(wǎng)拓撲信息。另外,各節(jié)點上傳的鏈路狀態(tài)信息通過ACK確認機制來確保上傳成功,如果一次傳輸未成功,則在QueryInterval時間后再次上傳。
2.2 路徑選擇及分組轉(zhuǎn)發(fā)流程
當要發(fā)送分組時,節(jié)點首先查詢路由表項中是否有到達目的節(jié)點的路由信息。如果有,按照當前路由信息直接發(fā)送至目的節(jié)點;如果沒有,查詢是否有到達Root節(jié)點的路由信息。
如果不存在到Root節(jié)點的路由,則需要首先請求到Root節(jié)點的路由,在此過程中使用序列號機制保證任何時候節(jié)點間都無環(huán)路。每個節(jié)點都保持著自己的一個序列號,這個序列號通過PREQ被發(fā)送到其他節(jié)點,其他節(jié)點只處理序列號更大的PREQ。請求到Root節(jié)點路由的具體步驟如下:
步驟(1):向所有鄰居節(jié)點發(fā)送路由查詢幀。
步驟(2):鄰居節(jié)點收到路由查詢幀后查看自身根路由是否有效,如果有效,回復(fù)有效確認幀,否則回復(fù)無效確認幀。
步驟(3):如果節(jié)點接收到有效確認幀,則從回復(fù)有效確認幀的鄰居節(jié)點中隨機選取一個節(jié)點向其發(fā)送路由請求幀PREQ。
步驟(4):如果沒有收到有效確認幀,向其所有鄰居節(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標記;
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標記;
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é)點的路由采用根路由進行備份。下面以圖例的方式詳細說明利用備份鏈路進行自愈的流程。
根路由失效后的自愈過程如圖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將緩存在本地的分組通過F-G-B-R發(fā)送至R,I在收到PERR錯誤報文后,會刪除本地路由表中的最優(yōu)路由,將需要發(fā)送的分組切換至備份路I-G-B-R繼續(xù)傳輸,并在Mesh幀頭中標記為使用備份路發(fā)送。當分組到達Root節(jié)點時,Root節(jié)點查詢到數(shù)據(jù)是由備份路由傳輸?shù)竭_,會計算Root節(jié)點R到I的當前全局最優(yōu)路由和備份路由,并將計算結(jié)果通過PNTF報文發(fā)送到I,I在收到PNTF報文后,會更新本地的最優(yōu)路由和備份路由,后續(xù)分組通過當前的最優(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)拓撲中刪除失效鏈路,并將接收到數(shù)據(jù)幀后轉(zhuǎn)發(fā)到目的節(jié)點H。源節(jié)點收到PERR錯誤報文后,刪除失效路由表項,將后續(xù)數(shù)據(jù)利用根路由(主路由或備份路由)發(fā)送,并在Mesh幀頭中設(shè)置路由請求標記,Root節(jié)點接收到數(shù)據(jù)幀后重新計算F和H間的當前最優(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é)總和的比例)作為評價指標,對不同網(wǎng)絡(luò)負荷、鏈路失效場景下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ò)負荷下的性能仿真
圖4為不同負荷場景下CSRP與HWMP[14]、RDR[11]的性能仿真。
3.2 自愈性能仿真
在本小節(jié)對比了路由失效場景下CSRP與HWMP、RDR的性能。通信連接數(shù)為20,節(jié)點移動速率為0~5 m/s之間的隨機值,通過設(shè)置不同的PauseTime值來模擬網(wǎng)絡(luò)拓撲變化的劇烈程度。圖5中的仿真結(jié)果表明:在時延和包遞交率方面,節(jié)點的移動性越強(PauseTime越小),CSRP算法相比HWMP、RDR性能提升越明顯。這是因為CSRP采用多路徑備份策略,當路由失效后可以切換到備用路由進行分組傳輸,確保時效路由的快速恢復(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] 譚晶,羅軍舟,李偉.一種適合低連接度拓撲的集中式保護路由機制[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.