張 麗, 瞿國慶
(江蘇商貿職業學院 電子與信息學院, 江蘇 南通 226011)
移動無線網絡是電子信息專業的重要教學內容[1],無線網絡設備的類型繁雜且功能豐富,理論知識學習難以全面地理解無線網絡的運行原理,因此,該課程的實驗室建設是高等院校電子信息專業的重要需求[2]。無線移動網絡設備包括無線通信基礎設施、無線自組網 (Ad hoc)移動設備、交換機、集線器、無線信道與無線終端等設備[3],這為實驗室建設帶來了較大的經濟負擔。通過虛擬化技術模擬網絡結構是當前的一個可靠方案,目前已有一些基于虛擬化技術的計算機網絡仿真器,例如:優化網絡工程工具(Optimized Network Engineering Tool, Opnet)[4]、品質網絡工程工具(Quality Network Engineering Tool, QualNet)[5]、網絡仿真器 (Network Simulator, NS-2)[6]、快速仿真器(Quick Emulator, QEMU)[7]等,但此類網絡仿真器僅支持靜態與固定的網絡場景,無法用于動態移動網絡的仿真與實驗。
隨著移動互聯網、物聯網的飛速發展,無線網絡的移動性與動態性是當前無線網絡的主要特點,而opnet、QualNet、NS-2等網絡仿真平臺均需要預定靜態并且固定的網絡結構,不支持對移動網絡的仿真。本文采用虛擬化技術[8],采用系統的進程仿真網絡設備,每個虛擬機可支持若干個進程,從而一臺物理主機可仿真大量的網絡設備。用戶可控制網絡的結構與網絡連接的參數,這為實驗室的課程提供了豐富的選擇。此外,虛擬網絡設備具有動態地接入、退出網絡的功能,由此實現了移動無線網絡的仿真要求。
本文設計的移動無線網絡仿真平臺(Mobile Wireless Network Simulation,MWNS),與其他的網絡仿真器(例如:NS-2, Opnet等)相比,MWNS主要有以下幾個特點:① 動態性。網絡結構為熱連接模式,即一個新節點能夠動態地加入或者退出目標網絡。② 移動性。能夠創建一個自定義的網絡結構,并且網絡對于移動的節點具有自動連接的能力。③ 社區性。能夠連接若干個子網,模擬互聯網的社區概念。
MWNS是一個分布式的虛擬網絡環境,用戶可使用MWNS建立靜態或動態的網絡。MWNS建立的虛擬網絡主要由虛擬節點與虛擬鏈接組成。圖1所示是一個MWNS虛擬網絡的實例。左右分別是兩個虛擬主機,中間通過虛擬路由器 (Virtual Router, VROUTER)與虛擬交換機 (Virtual Switch, VSWITCH)連接,虛擬主機之間的通道為傳輸控制協議(Transmission Control Protocol, TCP)通道。虛擬主機與VSWITCH之間的通道為用戶數據報協議 (User Data Protocol, UDP)通道,虛擬主機與VHUB之間的通道為TCP通道。
MWNS的虛擬節點是一個仿真器,虛擬節點共有兩種類型:
(1) 虛擬主機 (Virtual Host, VHOST)。用戶

圖1 MWNS虛擬網絡的實例
可配置VHOST的操作系統與硬件屬性,仿真系統為每個虛擬節點分配一個虛擬存儲空間(本系統采用物理主機的一個文件夾)。
(2) VROUTER。由MWNS直接配置,為網絡提供合適的路由協議,MWNS提供的路由協議包括:動態主機配置協議(Dynamic Host Configuration Protocol, DHCP)[9]、域名系統 (Domain Name System, DNS)[10]、網絡文件系統 (Network File System, NFS)[11]、超文本傳輸協議 (HyperText Transfer Protocol, HTTP)、安全終端訪問 (Secure Shell,SSH)、 網絡時間協議(Network Time Protocol, NTP)[12]、路由信息協議 (routing information protocol,RIP)[13]。
虛擬鏈接負責為網絡的虛擬節點建立信道,仿真系統的虛擬鏈接共有3種類型:
(1) 虛擬鏈接 (Virtual Line, VLINE)。虛擬的點對點連接。
(2) 虛擬集線器 (Virtual Hub, VHUB)。模擬物理集線器設備。
(3) VSWITCH。模擬物理交換機設備。
1.3.1會話管理
MWNS的一個會話表示一個完整網絡結構的配置(包含虛擬節點與虛擬鏈接),一個會話僅可在一個物理主機上,一個分布式虛擬網絡由多個MWNS會話組成,會話之間具有獨立性并且互不干擾。
1.3.2MWNS管理器
MWNS管理器通過命令行形式與用戶交互,用戶使用管理器控制指定的會話。MWNS管理器采用SSH連接為用戶提供了遠程訪問功能,用戶可在遠程的主機上管理MWNS仿真系統。
為了模擬一個網絡設備,本文設計了一個虛擬網絡元素(Virtual Network Elements,VNE),VNE能夠模擬各個網絡元素,例如:網絡鏈接、集線器 (hub)、交換機、網絡節點。具體實現是基于面向對象的編程思想,將VNE作為一個父類,各種網絡設備均為VNE的子類。本文設計的VNE與其他網絡設備模擬方案相比,主要有5個特點:① VNE作為一個輕量級的進程運行,獨立運行于虛擬機中,VNE與其他VNE之間互不干擾;② 支持動態地建立、斷開與重建網絡鏈接;③ 支持多種網絡后端類型,可通過套接字與運行不同操作系統(Unix, Linux, Windows等)的虛擬機連接;④ 支持動態地設置網絡鏈接的屬性,例如:帶寬、延遲,定時器與誤碼率等;⑤ 能夠仿真無線接口設備與ad hoc[14](無線自組織)網絡模塊。
一個VNE包含一個轉發引擎與若干個接口,只要系統的內存足夠,接口數量則可為任意值。接口可在系統運行期間動態地創建,每個接口擁有一個輸入隊列與一個輸出隊列,每個隊列有一定大小的緩存區。接口內部通過一個轉發引擎相互連接,圖2所示是一個包含兩個接口的VNE。輸入、輸出VNE的數據可以分為兩種格式: ① 字節流數據(Byte Stream,BS)格式:此類數據作為一個無解釋的字節數據流,每個緩存區能夠容納滿足預設容量的BS數據。② 以太網幀數據(Ethernet Frame,EF)格式:此類數據為Ethernet幀結構,每個緩存區僅能容納一個Ethernet幀,并且該幀必須小于緩存區容量。

圖2 包含兩個接口的VNE
仿真系統可將VNE設為6種工作模式,前4種模式仿真了網絡設備,這4種模式與虛擬機獨立不相關,后2種模式仿真了無線接口網卡,無線接口網卡有兩種模式:基礎設施模式與ad hoc(無線自組織)模式,在無線接口網卡模式下,VNE通過指定接口“直接接口”與虛擬移動節點連接; 如果移動節點是基礎設施模式,那么VNE通過另一個接口“訪問接口”與虛擬移動節點的訪問點連接。VNE的6種模式分別如下所示:
(1) 網絡鏈接模式(VLINE)。兩個接口之間直接相連,每個數據輸入前一個接口,從后一個接口輸出,如圖3所示。
(2) hub模式(VHUB)。每個接口與另一個接口相連,每個數據輸入一個接口,然后從該接口以外的一個接口輸出,如圖4所示。
(3) 交換機模式(VSWITCH)。EF數據幀輸入一個接口,轉發引擎根據路由表決定將該數據轉發至指定(EF幀的目標地址)的輸出接口,如圖5所示。

圖3 VNE網絡鏈接模式示意圖

圖4 VNE hub模式示意圖

圖5 VNE交換機模式示意圖
(4) 訪問點模式(訪問點(access point, AP))。模擬無線網絡的AP功能,負責將有線網絡信號轉化為無線網絡信號。
(5) 無線基礎設施模式。將訪問接口的輸入EF幀轉發到直接接口的輸出。
(6) ad hoc接口模式。將非直接接口的輸入EF幀轉發到直接接口的輸出。
后4種模式需要數據格式為EF幀格式(具有介質訪問層(Medium Access Control, MAC)地址),為了仿真IEEE 802.11協議,為接入點發出的每個EF幀增加一個偽報文頭。
為虛擬交換機的路由表設計了自學習的能力,具體的自學習方法為:當接口收到一個EF幀,VNE檢查該幀的源MAC地址是否與該接口相同,如果相同,則不作處理;如果不同,VNE將該地址信息保存于VNE的路由表中。當一個數據幀輸入VNE之后,轉發引擎在路由表中搜索該幀的目標地址,將該幀轉發至該目標地址關聯的接口。VNE的hub模式與交換機模式支持基于端口的虛擬局域網 (Virtual local area network, VLAN)。
在虛擬化領域中,網絡后端表示了仿真器的軟件部分,為仿真器之間建立連接。基于LINUX操作系統的網絡后端一般都實現了虛擬網卡驅動 (TAP)接口、虛擬設備元素(Virtual device element, VDE)接口、套接字等。
VNE目前提供了UNIX本地套接字后端、TAP后端以及VDE后端,將這些后端都抽象為一個類,稱為“struct endpoint”。網絡后端必須與一個VNE虛擬網絡接口綁定,為了實現仿真器的動態特性,VNE綁定(bind)操作將VNE接口與網絡后端端點分離,該綁定操作可通過LINUX操作系統的“bind”命令動態地創建或者結束,如圖6所示。因此網絡后端的連接失敗對VNE沒有影響,如果節點的移動導致了網絡連接失敗,則需重新建立網絡后端的連接。

圖6 通過“bind”命令建立網絡端點與VNE接口之間的綁定
MWNS的系統仿真功能利用了QEMU仿真系統[7],MWNS與QEMU仿真系統之間的關系,如圖7所示,圖中QEMU虛擬機的網絡后端與VNE之間建立一個TCP連接。QEMU的虛擬網絡設備與網絡后端連接的實現方式是:定義一個本地VLAN目標,該目標直接將虛擬eth0接口與套接字后端(socket.0.)連接。VNE的“bind”操作與QEMU的VLAN操作之間的差異為:接口與網絡后端之間的綁定是建立一個雙向連接,而VLAN將多個網絡后端單向地連接至同一個接口。VNE的雙向連接為移動網絡的動態性提供了支持,而VLAN的多對一的連接方式只能支持靜態網絡。

圖7 MWNS系統與QEMU仿真系統之間的關系
首先評估VNE模型的性能,證明VNE模型的有效性。將VNE與QEMU、Dynamips[15]兩個基于套接字網絡后端的網絡仿真器進行比較。實驗場景為:分別使用QEMU、Dynamips與VNE 3個虛擬設備連接兩個QUMU虛擬機,所有的網絡后端連接均為TCP連接,物理機器為Intel PC機,兩個QEMU虛擬機之間建立一個FTP會話,通過FTP傳輸一個1GB的文件,統計傳輸時間來計算傳輸的吞吐量。QEMU與本仿真器的虛擬網絡設備吞吐量如表1所示。由表中可看出VNE仿真器所仿真的VLINE與VHUB均優于QUMU設備,而VNE仿真的VSWITCH優于Dynamips交換機。
MWNS集成了NEMO[16]來管理網絡的移動功能,MWNS是一個輕量級的C++程序,能夠為移動網絡生成網絡連接的拓撲結構。NEMO能夠動態地向MWNS發送命令,實時地改變MWNS網絡的連接。NEMO程序主要包含兩個部分:一部分是仿真時間調度器,另一部分是實時調度器。
仿真時間調度器是NEMO仿真部分的核心,它為實時調度器生成連接的場景,實時調度器生成連接場景的過程共有3個步驟:生成一個映射;在該映射中生成一個移動場景;根據該移動場景生成一個連接場景。
仿真時間調度器每隔一段時間(用戶設置)管理一次移動場景,并且計算每對移動節點之間的距離與無線連接。NEMO能夠生成矩形映射與完全隨機的移動場景,有助于無線移動網絡的仿真與實驗。NEMO仿真時間調度器的主要不足之處為:計算復雜度較高,復雜度為O(n2lb2n)。關于NEMO詳細介紹可參考文獻[16]。
實時調度器在網絡連接發生變化時管理各個連接(建立連接、斷開連接、重建連接),實時調度器與MWNS的交互過程如圖8所示。在虛擬移動網絡中,VNE用于仿真無線網絡接口卡(WIC),因此每個虛擬移動網絡均有一個VNE與一個網絡后端連接(TCP或者UDP連接),MWNS負責將用戶的命令發送至NEMO。運行實時調度器之后,MWNS還原NEMO生成的連接事件,將連接事件發送至不同的VNE,建立網絡。

圖8 實時調度器與MWNS的交互過程示意圖
為了驗證MWNS對移動網絡與靜態網絡的仿真性能,分別進行了兩組實驗。
為了驗證MWNS仿真器對于靜態網絡的仿真準確性,基于MOSH benchmark[17]與SSH評估仿真器的性能。MOSH與SSH均為遠程終端應用,MOSH采用了SSP協議與故障預測算法,因此MOSH對網絡連接的容錯能力優于SSH。
實驗中客戶端通過一個仿真3G網絡與一個交換機連接,通過一個仿真WiFi網絡與服務器連接,仿真實驗的參數如表2所示。實驗中統計了MOSH與SSH兩個網絡服務的平均響應時間。MININET[18]也完成了該實驗,因此將本系統仿真的結果與MININET[18]的實驗結果比較,評估MWNS仿真的準確性。

表2 仿真實驗的參數
實驗結果如圖9所示,圖中可看出,MWNS仿真的結果與原實驗結果極為接近,說明MWNS仿真的準確率較高。MININET僅能在同一個物理主機中建立仿真,而MWNS可在多個物理主機中建立分布式虛擬網絡,每個主機的子網可作為網絡社區進行實驗研究。
為了評估MWNS仿真器對于移動設備的仿真準確率,采用AMIRALE系統[19]進行了仿真實驗,并且使用JBOTSIM[20]進行模擬實驗,將AMIRALE、本系統與JBOTSIM三者進行比較,評估本系統的仿真準確性。

圖9 MOSH、SSH的實驗結果與仿真結果
AMIRALE是一個分布式系統,該系統設置幾個自動化車輛協同地執行一個任務。實驗場景設為一組掃地機器人收集公園中給定數量的垃圾,指定每個機器人收集一種類型的垃圾,如果一個機器人發現一個不屬于它的垃圾,那么該機器人向負責該垃圾的機器人發送一個命令消息,具體實驗方式可參考文獻[19]。
本文統計了數據發送速率與移動目標數量的關系,結果如圖10所示。因為所有機器人廣播的命令消息沒有數量的限制,所以將單個命令消息的字節數與網絡中命令消息的數量相乘,即可計算出網絡的理論數據速率。圖10中仿真曲線為MWNS的實驗結果,模擬曲線為JBOTSIM模擬器的實驗結果。圖中顯示了理論曲線、模擬曲線與仿真曲線結果較為接近,表明MWNS對移動網絡的場景具有較好的仿真性能,仿真的準確性較高。

圖10 網絡數據發送速率與移動目標數量的關系
本文設計的MWNS仿真平臺主要包含了VNE虛擬網絡設備模塊與基于NEMO的移動網絡管理模塊,對仿真平臺的易用性、經濟成本與仿真性能之間取得了較好的平衡。在實驗部分將MWNS系統與MININET進行了比較,兩者的仿真性能極為接近,但MININET僅能在同一個物理主機中建立仿真,而MWNS可在多個物理主機中建立分布式虛擬網絡,每個主機的子網可作為網絡社區進行實驗研究。WMNS與JBOTSIM的對比實驗結果顯示,WMNS能夠準確地仿真移動自組織網絡,并且能夠降低測試床物理設備的成本。