趙 寧,倪 明,米志超
(1.中國電子科技集團公司第二十八研究所,江蘇南京 210007;2.陸軍工程大學,江蘇南京 210007)
Ad Hoc移動網(wǎng)絡不需要架設固定中心的基站等設備,節(jié)點間通過交互信息,相互合作而形成多跳的移動通信網(wǎng)絡,其結構形式更加靈活,有著廣泛的應用前景。如何評估多跳無線網(wǎng)絡組網(wǎng)性能指標是當前Ad Hoc網(wǎng)絡研究的一個重要內容[1]。針對不同拓撲環(huán)境的網(wǎng)絡協(xié)議仿真,對無線網(wǎng)絡的協(xié)議具有極大的意義。
計算機仿真和建立實驗床是目前研究Ad Hoc網(wǎng)絡常見的方法[2]。但純軟件仿真需要將測試實物上的軟件重新在仿真平臺上實現(xiàn),增加了工作量。而實驗床仿真測試一般規(guī)模較小,很難在有限空間內仿真出各種拓撲結構。
本文設計并實現(xiàn)了一種支持多跳無線網(wǎng)絡拓撲模擬器系統(tǒng),該系統(tǒng)能夠支持帶有無線信道的設備進行網(wǎng)絡性能仿真,支持多跳無線環(huán)境的模擬,使得對Ad Hoc網(wǎng)絡的研究更方便和全面。
iptables[3]是Linux平臺下的數(shù)據(jù)包過濾防火墻工具。數(shù)據(jù)包過濾是iptables功能的核心,它能夠通過向列表中插入或刪除相應的規(guī)則參數(shù)來禁止一個節(jié)點的數(shù)據(jù)包進入本節(jié)點,也可以禁止本節(jié)點的數(shù)據(jù)包發(fā)送到另外一個節(jié)點,以此來實現(xiàn)過濾特定數(shù)據(jù)包的功能。當數(shù)據(jù)包被發(fā)送到防火墻后,防火墻首先將數(shù)據(jù)包轉發(fā)給檢查模塊進行處理。檢查模塊則通過過濾規(guī)則的對比,來決定轉發(fā)或丟棄該數(shù)據(jù)包。本文借助iptables模擬網(wǎng)絡節(jié)點間鏈路的建立或斷開,在有限的實驗環(huán)境中實現(xiàn)網(wǎng)絡的拓撲模擬控制。下面本文分別從系統(tǒng)結構設計和實驗測試等方面進行描述。
拓撲模擬器系統(tǒng)模型如圖1所示。其中,圖1(b)描述了網(wǎng)絡拓撲模擬控制系統(tǒng)的組成,它主要由一臺具備無線通信功能的計算機以及若干個無線終端設備構成。其中計算機是整個系統(tǒng)的拓撲模擬控制中心,它通過一系列的控制消息來控制無線終端設備自動實現(xiàn)網(wǎng)絡拓撲構建和更新。無線終端設備既是控制中心的受控節(jié)點,同時也是網(wǎng)絡節(jié)點,網(wǎng)絡拓撲的構建和更新工作由所有無線終端設備共同實現(xiàn)。
拓撲模擬控制中心通過UDP協(xié)議與每個無線終端設備進行通信并以此來檢測無線終端信息。整體設計思想如下:首先,如圖1(a)中所示的原始的拓撲中,由于所有的無線終端均處于彼此一跳的通信范圍內,因此所有無線終端都可以直接進行通信。當希望構建一個預期的網(wǎng)絡拓撲(如圖1(c)所示)時,則在拓撲模擬控制中心的應用界面中對預期的網(wǎng)絡拓撲進行描述,然后控制中心的生成算法為每個無線終端設備生成對應的MAC地址屏蔽消息。接著該地址屏蔽消息將被發(fā)送給對應的無線終端設備,而每個無線終端設備在接收到各自的地址屏蔽消息后,自動調用其iptables工具并執(zhí)行相應參數(shù)規(guī)則來過濾特定的MAC地址無線終端發(fā)來的數(shù)據(jù)包,構造如圖1(c)所示的預期網(wǎng)絡拓撲。
圖1 系統(tǒng)模型
這樣通過無線終端MAC地址屏蔽關系的自動生成、iptables參數(shù)規(guī)則的自動設置以及拓撲恢復及再構建,拓撲模擬控制系統(tǒng)就可以實現(xiàn)預期網(wǎng)絡拓撲的構建和更新。
拓撲模擬控制中心和無線終端間的通信是整個拓撲模擬控制系統(tǒng)的基礎。首先,網(wǎng)絡內的設備具有不同的身份,設備間需要識別網(wǎng)絡中其他設備的身份,而控制中心和無線終端也需要獲取彼此的相關信息。此外,當進行拓撲構建時,控制中心需要將MAC地址屏蔽消息發(fā)送給每個無線終端,當網(wǎng)絡拓撲需要更新時,控制中心也需要通知所有無線終端。
本文設計了一個拓撲模擬控制中心和無線終端間的通信協(xié)議,以解決兩者間的通信和控制需求。通信協(xié)議建立在UDPSOCKET基礎上,在通信協(xié)議中每個消息的傳輸方向、消息內容和傳輸類型描述如下。
(1)地址請求(ARS)消息。在網(wǎng)絡的最初始狀態(tài),拓撲模擬控制中心就是通過向系統(tǒng)內的無線終端設備廣播地址請求消息來通告其身份,并同時請求所有的無線終端回饋它們的IP和MAC地址。
(2)準備就緒(RA)消息。系統(tǒng)內的無線終端通過開機后即廣播準備就緒消息向網(wǎng)絡內的其他設備通告其身份。
(3)拓撲更新(TU)消息。拓撲模擬控制中心將廣播拓撲更新消息向系統(tǒng)內的無線終端通告系統(tǒng)準備更新網(wǎng)絡拓撲。
(4)IP地址通告(IA)消息??刂浦行耐ㄟ^廣播IP地址通告消息來讓系統(tǒng)內的無線終端獲取其IP地址。
(5)地址響應(ARP)消息。無線終端通過向拓撲模擬控制中心單播地址響應消息來回饋其IP和MAC地址。
(6)MAC地址屏蔽(MAF)消息。MAC地址屏蔽消息由拓撲模擬控制中心送給每個無線終端。無線終端在收到MAC地址屏蔽消息后會自動觸發(fā)內置的iptables工具并根據(jù)MAC地址屏蔽消息設置相應的iptables參數(shù)規(guī)則。
拓撲模擬控制中心首先廣播地址請求消息來通告身份并請求所有的無線終端回饋IP和MAC地址。無線終端啟動程序后則開始廣播準備就緒消息來表明身份。這樣系統(tǒng)內所有的設備均可獲知其他設備的身份。
拓撲模擬控制中心發(fā)送IP地址,無線終端設備一旦收到地址請求消息則響應它們的IP和MAC地址。在拓撲模擬控制中心成功獲取所有終端的信息后,需要在拓撲模擬控制中心上完成網(wǎng)絡拓撲描述以提供所有終端間的連接關系。拓撲模擬控制中心根據(jù)拓撲描述為每個終端生產(chǎn)MAC地址屏蔽消息。然后拓撲模擬控制中心開啟定時器并將MAC地址屏蔽消息分別發(fā)送給每個無線終端。所有終端在收到MAC地址屏蔽消息后都需要向拓撲模擬控制中心發(fā)送確認并自動配置iptables過濾規(guī)則。如果拓撲模擬控制中心在計時器的有效周期內未收到確認,則重復MAC地址屏蔽消息發(fā)送過程。當所有終端都設置相應的參數(shù)規(guī)則后,數(shù)據(jù)包將按照預期的路徑進行收發(fā)。
如果期望更新網(wǎng)絡拓撲,則拓撲模擬控制中心重新廣播新的拓撲更新消息來通知所有的無線終端系統(tǒng)準備更新網(wǎng)絡拓撲。
拓撲模擬控制器實驗系統(tǒng)主要由1臺筆記本電腦(完成拓撲模擬控制中心)和5臺無線樹莓派設備組成。研究人員將所有的樹莓派設備按照1至5依次編號。
網(wǎng)絡的原始拓撲與圖1(a)相同。實驗中,研究人員希望構建如圖1(c)所示的網(wǎng)絡拓撲。拓撲構建實現(xiàn)過程操作如下:首先,讓所有無線終端與拓撲模擬控制中心建立連接。然后拓撲模擬控制中心獲取IP和MAC地址,描述網(wǎng)絡拓撲。接著拓撲模擬控制中心將產(chǎn)生并發(fā)送MAC地址屏蔽消息。最后,無線終端調用并設置iptables規(guī)則,構建網(wǎng)絡拓撲。
實驗采用ping的方法來檢驗拓撲構建實驗的有效性[4]。讓節(jié)點1來ping節(jié)點2,在初始的網(wǎng)絡拓撲中,節(jié)點1和節(jié)點2彼此具備連接關系,因此從節(jié)點1發(fā)出的數(shù)據(jù)包可以直接到達節(jié)點2而無須其他節(jié)點進行轉發(fā)。但是當拓撲構建過程完成后,節(jié)點1和節(jié)點2在邏輯上彼此不再具備直接的連接關系,因此從節(jié)點1發(fā)出的數(shù)據(jù)包需要經(jīng)過其他節(jié)點的轉發(fā)才能到達節(jié)點2。
實驗結果表明節(jié)點1發(fā)出的ICMP數(shù)據(jù)包是經(jīng)過節(jié)點4轉發(fā)后到達節(jié)點2,網(wǎng)絡拓撲發(fā)生變化,符合預期的網(wǎng)絡拓撲變化,因此網(wǎng)絡拓撲構建成功。
本文為了降低多跳無線通信網(wǎng)絡拓撲模擬控制實現(xiàn)的復雜度、提高可靠性、解決傳統(tǒng)方法中無法實現(xiàn)動態(tài)拓撲的缺陷,設計并實現(xiàn)了一種多跳無線網(wǎng)絡拓撲模擬器。該模擬器的拓撲模擬控制中心根據(jù)用戶描述的網(wǎng)絡拓撲生成MAC地址屏蔽消息,而無線終端則根據(jù)控制消息自動設置iptables規(guī)則來過濾指定的數(shù)據(jù)包,實現(xiàn)網(wǎng)絡拓撲構建,并能夠根據(jù)具體要求實現(xiàn)拓撲更新。