APP下载

基于虚拟化的移动无线网络仿真与实验平台

2018-11-16瞿国庆

实验室研究与探索 2018年10期
关键词:仿真器网络设备无线网络

张 丽, 瞿国庆

(江苏商贸职业学院 电子与信息学院, 江苏 南通 226011)

0 引 言

移动无线网络是电子信息专业的重要教学内容[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主要有以下几个特点:① 动态性。网络结构为热连接模式,即一个新节点能够动态地加入或者退出目标网络。② 移动性。能够创建一个自定义的网络结构,并且网络对于移动的节点具有自动连接的能力。③ 社区性。能够连接若干个子网,模拟互联网的社区概念。

1 MWNS网络的系统结构与主要元素

MWNS是一个分布式的虚拟网络环境,用户可使用MWNS建立静态或动态的网络。MWNS建立的虚拟网络主要由虚拟节点与虚拟链接组成。图1所示是一个MWNS虚拟网络的实例。左右分别是两个虚拟主机,中间通过虚拟路由器 (Virtual Router, VROUTER)与虚拟交换机 (Virtual Switch, VSWITCH)连接,虚拟主机之间的通道为传输控制协议(Transmission Control Protocol, TCP)通道。虚拟主机与VSWITCH之间的通道为用户数据报协议 (User Data Protocol, UDP)通道,虚拟主机与VHUB之间的通道为TCP通道。

1.1 虚拟节点

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]。

1.2 虚拟链接

虚拟链接负责为网络的虚拟节点建立信道,仿真系统的虚拟链接共有3种类型:

(1) 虚拟链接 (Virtual Line, VLINE)。虚拟的点对点连接。

(2) 虚拟集线器 (Virtual Hub, VHUB)。模拟物理集线器设备。

(3) VSWITCH。模拟物理交换机设备。

1.3 虚拟网络的管理

1.3.1会话管理

MWNS的一个会话表示一个完整网络结构的配置(包含虚拟节点与虚拟链接),一个会话仅可在一个物理主机上,一个分布式虚拟网络由多个MWNS会话组成,会话之间具有独立性并且互不干扰。

1.3.2MWNS管理器

MWNS管理器通过命令行形式与用户交互,用户使用管理器控制指定的会话。MWNS管理器采用SSH连接为用户提供了远程访问功能,用户可在远程的主机上管理MWNS仿真系统。

2 虚拟化网络元素

为了模拟一个网络设备,本文设计了一个虚拟网络元素(Virtual Network Elements,VNE),VNE能够模拟各个网络元素,例如:网络链接、集线器 (hub)、交换机、网络节点。具体实现是基于面向对象的编程思想,将VNE作为一个父类,各种网络设备均为VNE的子类。本文设计的VNE与其他网络设备模拟方案相比,主要有5个特点:① VNE作为一个轻量级的进程运行,独立运行于虚拟机中,VNE与其他VNE之间互不干扰;② 支持动态地建立、断开与重建网络链接;③ 支持多种网络后端类型,可通过套接字与运行不同操作系统(Unix, Linux, Windows等)的虚拟机连接;④ 支持动态地设置网络链接的属性,例如:带宽、延迟,定时器与误码率等;⑤ 能够仿真无线接口设备与ad hoc[14](无线自组织)网络模块。

2.1 总体结构

一个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)。

2.2 VNE与网络后端的绑定方法

在虚拟化领域中,网络后端表示了仿真器的软件部分,为仿真器之间建立连接。基于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仿真系统之间的关系

2.3 VNE的性能评估

首先评估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交换机。

3 MWNS的移动网络仿真

3.1 系统设计

MWNS集成了NEMO[16]来管理网络的移动功能,MWNS是一个轻量级的C++程序,能够为移动网络生成网络连接的拓扑结构。NEMO能够动态地向MWNS发送命令,实时地改变MWNS网络的连接。NEMO程序主要包含两个部分:一部分是仿真时间调度器,另一部分是实时调度器。

3.2 NEMO程序的仿真时间调度器

仿真时间调度器是NEMO仿真部分的核心,它为实时调度器生成连接的场景,实时调度器生成连接场景的过程共有3个步骤:生成一个映射;在该映射中生成一个移动场景;根据该移动场景生成一个连接场景。

仿真时间调度器每隔一段时间(用户设置)管理一次移动场景,并且计算每对移动节点之间的距离与无线连接。NEMO能够生成矩形映射与完全随机的移动场景,有助于无线移动网络的仿真与实验。NEMO仿真时间调度器的主要不足之处为:计算复杂度较高,复杂度为O(n2lb2n)。关于NEMO详细介绍可参考文献[16]。

3.3 实时调度器

实时调度器在网络连接发生变化时管理各个连接(建立连接、断开连接、重建连接),实时调度器与MWNS的交互过程如图8所示。在虚拟移动网络中,VNE用于仿真无线网络接口卡(WIC),因此每个虚拟移动网络均有一个VNE与一个网络后端连接(TCP或者UDP连接),MWNS负责将用户的命令发送至NEMO。运行实时调度器之后,MWNS还原NEMO生成的连接事件,将连接事件发送至不同的VNE,建立网络。

图8 实时调度器与MWNS的交互过程示意图

4 仿真实验与分析

为了验证MWNS对移动网络与静态网络的仿真性能,分别进行了两组实验。

4.1 MOSH实验

为了验证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可在多个物理主机中建立分布式虚拟网络,每个主机的子网可作为网络社区进行实验研究。

4.2 AMIRALE实验

为了评估MWNS仿真器对于移动设备的仿真准确率,采用AMIRALE系统[19]进行了仿真实验,并且使用JBOTSIM[20]进行模拟实验,将AMIRALE、本系统与JBOTSIM三者进行比较,评估本系统的仿真准确性。

图9 MOSH、SSH的实验结果与仿真结果

AMIRALE是一个分布式系统,该系统设置几个自动化车辆协同地执行一个任务。实验场景设为一组扫地机器人收集公园中给定数量的垃圾,指定每个机器人收集一种类型的垃圾,如果一个机器人发现一个不属于它的垃圾,那么该机器人向负责该垃圾的机器人发送一个命令消息,具体实验方式可参考文献[19]。

本文统计了数据发送速率与移动目标数量的关系,结果如图10所示。因为所有机器人广播的命令消息没有数量的限制,所以将单个命令消息的字节数与网络中命令消息的数量相乘,即可计算出网络的理论数据速率。图10中仿真曲线为MWNS的实验结果,模拟曲线为JBOTSIM模拟器的实验结果。图中显示了理论曲线、模拟曲线与仿真曲线结果较为接近,表明MWNS对移动网络的场景具有较好的仿真性能,仿真的准确性较高。

图10 网络数据发送速率与移动目标数量的关系

5 结 语

本文设计的MWNS仿真平台主要包含了VNE虚拟网络设备模块与基于NEMO的移动网络管理模块,对仿真平台的易用性、经济成本与仿真性能之间取得了较好的平衡。在实验部分将MWNS系统与MININET进行了比较,两者的仿真性能极为接近,但MININET仅能在同一个物理主机中建立仿真,而MWNS可在多个物理主机中建立分布式虚拟网络,每个主机的子网可作为网络社区进行实验研究。WMNS与JBOTSIM的对比实验结果显示,WMNS能够准确地仿真移动自组织网络,并且能够降低测试床物理设备的成本。

猜你喜欢

仿真器网络设备无线网络
网络设备的安装与调试课程思政整体设计
一种基于C# 的网络设备自动化登录工具的研制
滤波器对无线网络中干扰问题的作用探讨
AI仿真器将大大提高科学领域的仿真模拟速度
基于多用户无线仿真器系统的研究
无线网络的中间人攻击研究
分析利用仿真器(RTDS)测试小电流接地选线装置的可行性
TD-LTE无线网络高层建筑覆盖技术研究与应用
基于列车监测网络设备的射频功放模块设计
基于三层交换技术架构数字化校园网络设备的配置与管理