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

圖1 實現路由測試功能
(1)當節點A 的路由進程啟動后,根據路由協議生成路由數據,以UDP 報文發送到Space。
(2)Space 接收后首先從報文中讀取路由信息并顯示;使用Friis 公式判斷出只有B 節點具備接收能力,因此將節點A 的原始報文與B 的P_r 組裝為UDP 發送到節點B。
(3)節點B 收到后,運行路由協議生成路由,再發送含路由的廣播報文到Space。
(4)Space 收到后,讀取路由信息在界面上圖形化顯示;使用Friis 公式計算出A 和C 都具備接收能力,因此將報文和A 的P_r 發送到節點A,同時將報文和C 的P_r 發送到節點C。
后面步驟(5)、(6),以及步驟(7)、(8)的描述與步驟(3)、(4)的描述相類似。
由此可以看出,Space 模擬了無線報文在物理空間中的廣播和接收功能,實現了節點間的報文收發,以及A →B →C →D的多跳數據傳輸流程。Space 接收節點發送的報文,提取路由并圖形化顯示,演示了網絡中的路由的生成過程和動態演進過程。
本文提出了無線Mesh 網絡的路由測試方案,Space 可以通過模擬物理空間,實現節點之間的通信。Space 可以獲得無線Mesh 網絡內所有節點的路由信息,能夠判斷無線Mesh 的網絡路由的有效性和一致性,可以實時檢測異常。同時,Space 通過回放支持自動化測試,有著較高的應用價值。