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