趙大偉
(南京熊貓通信科技有限公司,南京 210008)
無線Mesh 網(wǎng)絡(luò)中,每個節(jié)點都具備發(fā)送和接收功能,其中路由的拓撲結(jié)構(gòu)是與節(jié)點間的相對位置有關(guān)的,如設(shè)備靠近時會建立無線鏈路,設(shè)備遠離則拆除之,因此網(wǎng)絡(luò)中的路由拓撲結(jié)構(gòu)是隨著節(jié)點之間的相對位置的改變而變化的。無線Mesh 網(wǎng)絡(luò)支持多跳通信,不相鄰的節(jié)點可以通過中間節(jié)點以多跳方式進行通信。這些通信行為,都需要路由功能的支持。
初期階段對無線Mesh 路由功能進行測試時,不宜在實際物理環(huán)境中進行,因為那時路由功能可能存在某些缺陷,如形成過程緩慢、不收斂、數(shù)據(jù)異常等;因此,為了先期驗證所實現(xiàn)的無線Mesh 路由協(xié)議的可用性,我們提出來一種針對無線Mesh 路由的軟件測試技術(shù)。它包括兩部分軟件,其一是軟件實現(xiàn)的物理空間模擬工具,稱為Space;其二是模擬無線Mesh 節(jié)點設(shè)備的路由進程,它上面運行路由軟件模塊。每個節(jié)點設(shè)備都有一個路由進程。測試機制是通過Space 和路由進程兩者的交互來完成的。
Space 在架構(gòu)設(shè)計獨立于Mesh 路由協(xié)議,并能夠與每個路由進程進行通信,實時獲得無線Mesh 網(wǎng)絡(luò)內(nèi)全部節(jié)點的路由信息。它支持數(shù)據(jù)配置,可以設(shè)置每個節(jié)點設(shè)備的無線參數(shù)集,內(nèi)容是{發(fā)射天線功率,發(fā)射天線增益,接收天線功率和接收天線增益,接收閾值}。
Space 的界面中用實心圓來表示一個無線Mesh 設(shè)備,簡稱為節(jié)點。界面中顯示節(jié)點的位置,并用連線來表示節(jié)點間的路由連接關(guān)系和層次關(guān)系。
節(jié)點是可以自由移動的,用戶可以鼠標拖動節(jié)點位置,也可以執(zhí)行腳本讓多個節(jié)點運動。當該運動導致路由改變后,界面中的路由圖形也會顯示最新路由中節(jié)點的連接和層次關(guān)系。
無線Mesh 設(shè)備接收到報文時會獲得接收功率,供路由生成使用。Space 使用Friis 公式計算報文接收方的接收功率。下面介紹Friis 公式。假設(shè)發(fā)送節(jié)點的發(fā)射天線功率為Pt;發(fā)射天線增益為Gt;接收節(jié)點的接收天線增益為Gr 工作波長為常數(shù)λ;天線之間的距離為R;則目標節(jié)點的接收功率Pr=Pt Gt Gr λ2/(4πR)2。
Space 的核心功能是:①節(jié)點空間位置模擬功能,可以進行節(jié)點間的距離的計算,節(jié)點可以運動;②物理空間內(nèi)無線報文收發(fā)的模擬功能,Space 接收節(jié)點發(fā)送過來的報文,并轉(zhuǎn)發(fā)給具備接收能力的節(jié)點;③圖形化顯示路由協(xié)議,讀取節(jié)點的發(fā)送報文中所包含的的路由信息,并以圖形方式顯示該路由的拓撲結(jié)構(gòu);④路由故障判斷功能,能夠收集所有節(jié)點的路由信息,判斷路由是否一致或者收斂,如果發(fā)現(xiàn)異常則提供線索。
Space 支持正常模式和回放模式。正常模式下,它自動將時間信息和該時間點上的節(jié)點的位置信息等保存到場景文件中?;胤拍J较?,讀取以前的場景文件,按照時間流精確回放時間點上的節(jié)點的位置,并與節(jié)點的路由進程協(xié)同實現(xiàn)回放測試。
需要配置的參數(shù)為:①UDP 端口;②節(jié)點的ID 和它的路由進程的UDP;③節(jié)點的起始位置和無線參數(shù)集。
路由進程對應無線Mesh 網(wǎng)絡(luò)中的一個設(shè)備,它能夠向Space 接收或者發(fā)送報文,所需要配置數(shù)據(jù)為:①節(jié)點ID;②無線參數(shù)集;③自己與Space 的UDP 端口;④初始位置。
為了便于描述,假設(shè)無線Mesh 網(wǎng)絡(luò)中有四個節(jié)點A,B,C,D,其中,A 與B,B 與C,以及C 與D 之間都可以相互無線通信。圖1描述了Space 是如何模擬無線信號在物理空間中的廣播,以及如何與節(jié)點的路由進程協(xié)同,實現(xiàn)路由測試功能的。
圖1 實現(xiàn)路由測試功能
(1)當節(jié)點A 的路由進程啟動后,根據(jù)路由協(xié)議生成路由數(shù)據(jù),以UDP 報文發(fā)送到Space。
(2)Space 接收后首先從報文中讀取路由信息并顯示;使用Friis 公式判斷出只有B 節(jié)點具備接收能力,因此將節(jié)點A 的原始報文與B 的P_r 組裝為UDP 發(fā)送到節(jié)點B。
(3)節(jié)點B 收到后,運行路由協(xié)議生成路由,再發(fā)送含路由的廣播報文到Space。
(4)Space 收到后,讀取路由信息在界面上圖形化顯示;使用Friis 公式計算出A 和C 都具備接收能力,因此將報文和A 的P_r 發(fā)送到節(jié)點A,同時將報文和C 的P_r 發(fā)送到節(jié)點C。
后面步驟(5)、(6),以及步驟(7)、(8)的描述與步驟(3)、(4)的描述相類似。
由此可以看出,Space 模擬了無線報文在物理空間中的廣播和接收功能,實現(xiàn)了節(jié)點間的報文收發(fā),以及A →B →C →D的多跳數(shù)據(jù)傳輸流程。Space 接收節(jié)點發(fā)送的報文,提取路由并圖形化顯示,演示了網(wǎng)絡(luò)中的路由的生成過程和動態(tài)演進過程。
本文提出了無線Mesh 網(wǎng)絡(luò)的路由測試方案,Space 可以通過模擬物理空間,實現(xiàn)節(jié)點之間的通信。Space 可以獲得無線Mesh 網(wǎng)絡(luò)內(nèi)所有節(jié)點的路由信息,能夠判斷無線Mesh 的網(wǎng)絡(luò)路由的有效性和一致性,可以實時檢測異常。同時,Space 通過回放支持自動化測試,有著較高的應用價值。