一种基于虚拟化技术的分布式实时网络仿真系统的制作方法

文档序号:14722326发布日期:2018-06-17 20:47阅读:210来源:国知局
本发明涉及计算机网络
技术领域
:。更具体地,涉及一种基于虚拟化技术的分布式实时网络仿真系统。
背景技术
::随着计算机硬件及计算虚拟化与网络虚拟化的发展,特别是Docker容器虚拟技术及软件定义网络SDN的出现,构建大规模实时网络仿真(Emulation)平台已不再像以前那样困难,构建Emulation平台将会像构建软件网络仿真(Simulation)系统一样简单,同时能弥补软件仿真的不足,网络研究者使用Emulation平台验证网络协议将成为未来网络协议研究的一种趋势。软件网络仿真是利用数学建模和统计分析方法模拟网络行为,很难(甚至无法)实现实际的物理接口与全栈网络协议,因此仿真结果与实际情况存在一定的差距。在网络协议的研究中,网络研究者一直致力于构建基于硬件的实时网络仿真平台对实验网络协议进行验证:Hibler设计开发的Emulab系统是一个以大规模与容器虚拟化技术闻名的实时网络仿真平台,虽然对于现在来说其使用的技术过于陈旧,但其设计思想与设计原则对后来研究者帮助很大。Lantz设计开发的Mininet也是一个基于容器技术的较大规模实时仿真系统,但其主要支持的是SDN协议的开发验证,并且只能运行在单一物理主机上,不支持分布式仿真。随着虚拟化及云计算技术的发展,涌现出诸多优先开源架构,如OpenStack,一个开源的云计算管理平台项目,这使得自助按需部署网络节点与网络拓扑变得更加容易。因此,需要利用现有的虚拟化、云计算技术,构建一种分布式实时网络仿真系统,实现对网络协议的大规模实时仿真,并且其仿真拓扑与链路特性可按照真实移动模型动态变化。技术实现要素:本发明的目的在于提供一种基于虚拟化技术的分布式实时网络仿真系统,实现对网络协议的大规模实时仿真,并且其仿真拓扑与链路特性可按照真实移动模型动态变化。为达到上述目的,本发明采用下述方案:一种基于虚拟化技术的分布式实施网络仿真系统,包括:网络模拟器和多个物理仿真节点,其中:所述网络模拟器用于向物理仿真节点发送初始化指令、生成并储存仿真数据、向物理仿真节点派送所述仿真数据和发送仿真开始命令、监测仿真过程以及接收仿真结果;所述多个物理仿真节点用于根据所述初始化指令创建虚拟仿真节点与虚拟仿真网络,动态控制仿真链路、仿真拓扑和试验网络协议程序的操作,监测仿真过程,收集并向所述网络模拟器上传仿真结果,其上运行有仿真代理;所述虚拟仿真节点用于在所述仿真代理的控制下运行实验网络协议程序并将所述程序运行结果传送给所述网络模拟器。优选的,所述系统进一步包括第一物理交换机,所述第一物理交换机将多个物理仿真节点相连,并连接到所述网络模拟器,构成管理网络,用于传输控制信息和存储的仿真数据,并且用户通过所述物理交换机对所述系统进行远程访问;优选的,所述网络模拟器和所述多个物理仿真节点中的每一个均通过至少一个仿真接口相连,构成仿真网络,用于传输仿真数据。优选的,所述系统还包括第二物理交换机,所述第二物理交换机将多个物理仿真节点相连并连接到所述网络模拟器,构成仿真网络,用于传输仿真数据。优选的,所述虚拟仿真节点被配置为将所述的程序运行结果直接传送给所述网络模拟器;或者所述虚拟仿真节点被配置为将所述的程序运行结果通过所述仿真代理传送给所述网络模拟器。优选的,所述网络模拟器包括至少一台多网卡嵌入式设备。优选的,所述物理仿真节点为物理主机。本发明的有益效果如下:本发明旨在构建一种基于虚拟化技术的实时网络仿真系统,通过轻量级容器虚拟技术实现大规模(如100倍物理仿真节点规模)的实时全栈网络仿真,并借助网络虚拟技术实现灵活的仿真拓扑控制,同时通过分布式同步控制机制,将大规模仿真网络拓扑及其链路特性的更新速度达到毫秒级。附图说明下面结合附图对本发明的具体实施方式作进一步详细的说明。图1示出本发明所述仿真系统基本结构图。图2示出本发明所述仿真系统硬件部署结构图。图3示出本发明所述仿真系统软件部署示例。图4示出本发明所述仿真系统工作流示意图。图5示出本发明所述仿真系统拓扑与链路特性动态控制示意图。图6示出本发明所述仿真系统简单网络拓扑及其连接矩阵。图7示出容迟容断网络中一种社交移动模型示意图。具体实施方式为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。为了使具体实施方式更加清楚,下面对涉及的相关术语做出进一步解释:OpenStack--一种云计算平台;ControllerNode--云计算平台OpenStack中的控制节点;NetworkNode--云计算平台OpenStack中的网络节点;ComputeNode--云计算平台OpenStack中的计算节点;Puppetclient--集中配置管理系统Puppet的客户端程序;Protocolsoftware--协议软件;NTP--网络时间同步协议软件;Heat--云计算平台OpenStack中的编排器;Nova--云计算平台OpenStack中用于虚拟化与管理计算资源的模块;Glance--云计算平台OpenStack中负责管理虚拟镜像的模块;Keystone--云计算平台OpenStack中负责管理身份验证、服务规则和服务令牌功能的模块;Horizon--云计算平台OpenStack中负责提供网页控制面板的模块;Ceilometer--云计算平台OpenStack中负责监测与收集资源使用情况的模块;Neutron--云计算平台OpenStack中负责虚拟化与管理网络资源的模块;CorePlugin(InitialTopology,QOSbyOpenvSwitch)--Neutron的核心插件,负责初始化虚拟网络拓扑,及提供限速等服务质量服务;NeutronNetemService(DynamicTopology,LinkCharacteristics)--Neutron中的服务插件,负责生成动态拓扑、链路特性、实现协议程序操作等仿真数据;OpenvSwitch-Agent--OpenvSwitch--交换机代理程序,负责配置虚拟交换机的流表信息;NovaCompute--云计算平台OpenStack中用于虚拟化与管理计算资源的模块;TelemetryAgent--云计算平台OpenStack中负责监测与收集资源使用情况的模块的代理部分;NeutronNetem-Agent--Neutron中的服务插件中的代理部分,负责根据仿真数据控制仿真过程中网络拓扑、链路特性的变化及实验程序的操作;Docker--容器虚拟技术;VEN--虚拟仿真节点;OVSforEmulation--负责控制仿真链路的虚拟交换机;OVSforControl--负责控制管理链路的虚拟交换机;GUI/CLI--图形化接口或命令行接口;NEUTRON--云计算平台OpenStack中负责虚拟化与管理网络资源的模块;Storage--存储器;ML2-OVSPlugin--Neutron二层交换机插件;NeutronService--Neutron的服务端程序;L2-OVSAgent--Neutron二层虚拟交换机代理;L2-OVSDriver--Neutron二层虚拟交换机代理驱动;Neutron-NetemDriver--Neutron的仿真代理驱动;<-RESTEUFLAPI->--一种符合一组设计原则和约束条件的应用程序编程接口;<-MESSAGERPC->--远程过程调用协议;NEUTRONAPI--Neutron提供的应用程序编程接口;Modularlayer2--Neutron中的二层模块;Neutron-NetemService--Neutron中仿真模块的服务端;Storage--存储器;Eth0--网络端口0;Eth1--网络端口1;Tap--Linux操作系统中的一种网络设备;Filter--过滤器;TC--Linux操作系统中流量控制工具;HTB--分层令牌桶;Netem--TC中负责控制网络时延、丢包率等特性的工具;SSHServer--远程登录服务;PuppetClient--集中配置管理系统Puppet的客户端程序;PuppetServer--集中配置管理系统Puppet的服务端程序;Neutron-OpenvSwitchAgent--Neutron虚拟交换机代理;Iptables--Linux操作系统中的防火墙;TrafficControl(TC)--Linux操作系统中流量控制工具;QDiscs--网络接口的队列规则;TAP--Linux操作系统中的一种网络设备;UDP--用户数据报协议;IBRDTN--容迟容断网络软件。在传统的网络实验平台中,一个物理主机对应一个实验节点,很大程度上浪费了硬件资源、限制了网络实验的规模,并且其网络实验平台拓扑固定,当对同一网络协议进行不同网络拓扑实验验证时,需要重新布局布线,操作繁琐、实验难度大。基于虚拟化及云计算技术,本发明首先将所有计算、存储与网络资源池化,仿真用户可根据仿真需求动态分配硬件资源:使用计算虚拟化技术(如KVM,XEN,Docker)虚拟仿真节点,增加实验规模;使用网络虚拟化技术(如OpenvSwitch,隧道,VLAN,SDN)虚拟仿真网络,提高仿真网络配置的方便性与灵活性。同时,本发明采用分布式控制机制(根据仿真移动模型)动态控制仿真拓扑与仿真链路特性,与集中化控制机制相比,拓扑与链路特性的最小更新周期更短,仿真控制精度更高。如图1所示,一种基于虚拟化技术的分布式实时网络仿真系统,包括网络模拟器和多个物理仿真节点。其中,网络模拟器与各物理仿真节点具有多个网络接口,所述网络模拟器与各物理仿真节点的一个网络接口通过第一物理交换机相连,构成管理网络;所述网络模拟器与各物理仿真节点通过至少一个网络接口相连,构成仿真网络;所述网络模拟器与各物理仿真节点的其他网络接口相连,其可选用于构成存储网络,用于仿真过程中存储数据的传输等。所述管理网络用于网络模拟器与各物理仿真节点之间的控制信息的传输、存储的仿真数据的传输以及用户远程访问等;所述仿真网络用于物理仿真节点之间仿真数据的传输。网络模拟器由一个或以上普通计算机(或嵌入式设备)组成,其上运行有计算、存储与网络虚拟化控制单元,负责初始化仿真拓扑,编排仿真节点以及生成与分发仿真控制数据,同时也负责监测仿真过程中仿真节点的计算、网络、存储资源,采集仿真数据。用户通过编写网络模拟器插件来扩展仿真移动模型,仿真移动模型负责生成仿真拓扑以及仿真链路特性等仿真数据,网络模拟器将这些数据分配给运行在物理节点上的仿真代理,仿真代理通过这些信息同步地控制仿真拓扑与链路特性的动态变化以及实验网络协议程序的操作。其中,链路特性包括链路时延、抖动、误码率、丢包率、数据重排等。每个物理仿真节点是一台独立物理主机,其接受并完成网络模拟器派送的网络仿真任务。每个物理仿真节点运行有仿真代理,仿真代理根据网络模拟器派送的移动模型数据,同步控制网络拓扑与链路特性的动态变化以及实验网络协议程序的操作;物理仿真节点在网络模拟器的控制下通过计算虚拟化与网络虚拟化技术虚拟出适当的虚拟仿真节点,以及相应初始虚拟仿真网络。虚拟仿真节点是物理仿真节点上的虚拟机,通过事先制作的仿真镜像统一创建。根据具体实验需求,仿真镜像需安装相关实验网络协议程序、远程服务、远程管理与数据采集程序等。每个虚拟仿真节点具有两个或以上网络端口,其可充当相应的实验网络设备,如客户端、路由单元。本发明基于计算虚拟化及网络虚拟化技术,构建了一个分布式实时网络仿真系统,在此系统中,用户可自助、按需、灵活地配置仿真节点与拓扑链路,进行大规模的、拓扑与链路特性可动态变化的实时网络仿真。网络模拟器主要负责的工作如下:1)初始化仿真节点与仿真网络:用户配置虚拟仿真节点与拓扑信息,网络模拟器根据用户配置信息将各虚拟仿真节点孵化到相应物理仿真节点(即编排虚拟仿真节点),同时初始化虚拟仿真网络。网络模拟器编排各虚拟仿真节点时,需要考虑仿真实验需求,如硬件资源占用、拓扑与链路更新周期需求,以确保仿真实验的保真性。2)生成、储存并派送仿真数据:本发明中,仿真实验的拓扑与各链路特性随时间变化的信息通过仿真移动模型生成,网络模拟器根据用户配置信息选择移动模型生成移动模型数据,并将其存储到永久性存储单元。同时根据每个物理节点上仿真代理控制的虚拟仿真节点情况,将相应的移动模型数据、实验网络协议程序的配置信息派送到各仿真代理。3)发送仿真开始命令,监测仿真过程,接收仿真结果:网络模拟器向每个仿真代理发送仿真开始命令,仿真开始命令中带有一个绝对时间戳,用于各仿真代理同步开始仿真。在仿真过程中,网络模拟器收集各仿真节点的资源使用状况,确保仿真的保真性。当仿真结果后,收集仿真结果供用户进行实验分析。物理仿真节点主要负责的工作如下:1)创建虚拟仿真节点与虚拟仿真网络:网络模拟器根据仿真需求及各物理仿真节点资源使用情况,进行虚拟仿真节点编排,并向物理仿真节点发送创建虚拟仿真节点指令。物理仿真节点根据网络模拟器的编排,创建虚拟仿真节点与虚拟仿真网络。2)动态控制仿真拓扑、仿真链路及试验网络协议程序的操作:在仿真真正运行以前,每个物理仿真节点上的仿真代理接收网络模拟器派送的仿真数据(如仿真移动模型数据),并将其存储在本地。所有仿真代理向网络模拟器进行时间同步然后等待仿真开始。当仿真开始时,仿真代理根据本地存储的仿真数据,同步地控制仿真拓扑与链路特性的动态变化,以及各实验网络协议程序的操作。3)监测仿真过程和收集本机仿真结果:物理仿真节点上运行相应代理,监测运行在其上的虚拟仿真节点的资源使用情况,收集这些虚拟仿真节点的仿真数据并传送给网络模拟器。虚拟仿真节点主要负责的工作如下:1)在仿真代理的控制下运行实验网络协议程序。2)在仿真代理的控制下运行实验结果采集程序,采集程序通过管理网络将采集的实验结果传送给仿真代理或直接传送给网络模拟器。OpenStack是一个开源的云计算管理平台项目,使得自助按需部署网络节点与网络拓扑变得更加容易,其由几个主要的组件组合起来完成具体工作,并且几乎支持所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。在一个实施例中,基于上述OpenStack,具体实施方式将根据以下所述步骤详细展开说明:首先描述硬件部署及主要软件部署情况,其次通过详细介绍仿真系统网络工作流,阐述仿真系统的总体工作流程,然后着重介绍精确控制拓扑与链路特性方法,最后通过一个具体仿真实施例进一步说明本发明基于OpenStack的实施方式。如图2所示,分布式实时网络仿真系统硬件部署包括:网络模拟器、物理交换机以及网络物理仿真节点。具体的,由于所述仿真系统基于OpenStack架构,网络模拟器集成了OpenStack中控制节点(ControllerNode)与网络节点(NetworkNode)功能,物理仿真节点相当于OpenStack中计算节点(ComputeNode)。如图2所示,网络模拟器与物理仿真节点同属于两个物理网络:管理网络与仿真网络。管理网络通过物理交换机将网络模拟器和物理仿真节点相连,用于管理信息的传输以及用户远程访问。仿真网络通过网络模拟器将各物理仿真节点相连,用于仿真数据的传输。同时,网络模拟器中各仿真网络接口被绑定在一个虚拟交换机(或Linux网桥)上,所述的虚拟交换机控制口IP被配置为仿真网络IP,从而使仿真网络能够成为图2所示的星型结构,所述星型结构保证每个物理仿真节点与网络模拟器单独相连,从而克服仿真网络数据传输瓶颈。在大规模的部署环境中,也可以通过部署网络模拟器集群的方式克服网络模拟器的计算、存储、网络瓶颈,同时仿真网络也可通过物理交换机将各物理仿真节点相连。图3描述了网络模拟器、物理仿真节点与虚拟仿真节点的主要软件部署情况。作为本发明的系统核心,网络模拟器承载诸多开源服务及定制服务扩展,其主要的任务是编排、初始化虚拟仿真节点与网络,生成仿真拓扑与链路动态变化的模型数据及其他实验参数。除此之外,其还负责新建、重建、删除虚拟仿真节点与网络,收集与检测仿真数据等。具体的,在基于OpenStack部署示例中,网络模拟器使用OpenStack中Nova与Neutron服务完成初始化虚拟仿真节点与网络等任务;使用OpenStack中Ceilometer服务检测与记录系统资源状态;使用OpenStack中Keystone、Horizon、Glance、Heat服务提供用户认证、Web接口、镜像管理以及服务编排等功能;系统开发Neutron扩展,即Neutron-NetemService,用于生成、存储、传送仿真拓扑与链路特性动态变化等仿真数据,Neutron-NetemService提供插件机制方便用户编写移动模型插件。如图3所示,物理仿真节点运行OpenStack中Nova-Compute及OpenvSwitchAgent服务,用于接收与执行网络模拟器发送的初始化虚拟仿真节点与网络的命令,同时运行OpenStack中TelemetryAgent服务,用于完成Ceilometer派送的监测与收集任务。物理仿真节点中关键的服务是仿真代理Neutron-NetemAgent,其接收与存储Neutron-NetemService派送的移动模型及其他实验协议相关数据,并且接收仿真开始命令,即根据Neutron-NetemService传送的绝对时间戳同步进行仿真实验。除此之外,在仿真开始过程中,仿真代理Neutron-NetemAgent根据存储的仿真数据,同步地控制仿真拓扑与链路特性的动态变化。如图3所示,虚拟仿真节点主要运行实验协议程序,同时可运行PuppetClient服务,用于接收实验网络协议配置文件与命令。可选运行SSHServer远程登录服务、实验采集脚本等。需要解释说明的是,在网络协议实验中,时间同步非常重要,例如在容迟容断网络中,包裹协议通过绝对时间判断接收的数据是否过期。另外,为保证本发明中各物理仿真节点中仿真代理(Neutron-NetemAgent)能够同步地按次序地执行仿真命令(包括执行拓扑、链路特性更新及实验网络协议程序相关操作命令),物理仿真节点之间也必须时间同步。本软件部署示例中,采用网络时间同步协议(NTP)服务进行各节点的时间同步,所有物理仿真节点以网络模拟器为时间同步服务单元。在仿真系统的局域网环境中,NTP同步精度可达微秒级,这个精度能够满足大多数实时仿真实验的需求。在仿真实验开始前,仿真用户需要制作虚拟机镜像、虚拟机镜像预装实验网络协议程序、可选安装PuppetClient、SSHServer(远程登录服务)、以及实验记录与采集程序等。基于虚拟机镜像,仿真用户可通过图形界面、命令行或者编排单元创建适宜数量的虚拟仿真节点,初始化仿真网络。每个虚拟仿真节点属于两个或以上类型的网络,一个管理网络,一个或以上虚拟仿真网络。虚拟仿真节点的管理网络可属于OpenStack中Neutron的扁平(Flat)网络类型,其与物理管理网络属于同一个子网;虚拟仿真网络为OpenStack中的私有网络。图4为仿真系统网络工作流示意图,如图4所示,在获得创建虚拟仿真网络成功应答后,编排单元请求Neutron-NetemService创建仿真数据,Neutron-NetemService调用相应移动模型生成仿真数据后,将其存储于永久性存储单元中待仿真实验使用;同时,Neutron-NetemService派送属于各仿真代理的仿真数据,各仿真代理接收各自的仿真数据后将其存储于本地,并将相应的实验协议配置文件传送到对应虚拟仿真节点中(可通过调用PuppetServer接口传输实验配置文件到虚拟节点);最后,如果创建仿真数据应答返回真,编排单元开始发送仿真开始请求,Neutron-NetemService接收到请求后传递一个绝对时间戳给所有仿真代理,仿真代理根据此时间戳同步开始仿真。仿真代理进入仿真控制循环,根据仿真移动模型数据周期性地控制实验网络协议程序的操作及仿真拓扑及链路特性的更新。图5为仿真系统拓扑与链路特性动态控制示例,其描述了拓扑与链路特性动态控制的具体方案。如图5所示,各物理仿真节点上仿真代理事先接收并存储来自网络模拟器的仿真数据,当仿真开始时,仿真代理根据这些仿真数据同步地控制仿真网络拓扑与链路特性的动态变化。需要进一步解释说明的是,在本发明实施方案中,某一时刻的仿真网络拓扑图通过拓扑连接矩阵描述。在计算机网络中,任何网络拓扑,无论多复杂,都可以用节点之间两两连接关系表示,例如,如图6所示,可以将左侧所示N1、N2和N3三节点简单拓扑描述为图6所示连接矩阵,其中“1”代表连通,“0”代表不连通。拓扑连接矩阵序列由网络模拟器中移动模型生成,根据连接矩阵序列,仿真代理周期性地调用控制驱动,动态改变仿真网络拓扑。其中,网络拓扑控制驱动有两种实现方式:1)基于OpenvSwitch,仿真代理通过配置图5所示中的“OVSforemulation”虚拟交换机流表,进而改变仿真网络拓扑。这种实现方式类似于OpenStack中的Neutron-OpenvSwitchAgent服务,不同之处是本发明中仿真代理Neutron-NetemAgent使用本地化的数据而不是通过远程过程调用(RPC)服务获取数据,使拓扑控制更加高效、快速;同时,因为没有获取数据的通信时延,同步拓扑控制更加精确。2)基于Iptables防火墙,这种方式需要在仿真网络初始化时事先配置所有仿真网络接口与网络,在仿真开始时,仿真代理Neutron-NetemAgent根据连接矩阵序列配置命名空间中相关网络接口的防火墙规则来控制网络拓扑变化,每个命名空间与虚拟仿真节点相关联,如图5所示。仿真网络链路控制驱动通过TrafficControl(TC)实现。仿真网络链路特性包括时延、抖动、链路速率、丢包率、数据包乱序、重排等。在Linux操作系统中,系统提供丰富的流量控制工具,其中TC是其非常著名的流量控制工具之一,其擅长整形网络接口的出口流量,并且允许用户配置命名空间中网络接口的队列规则(QDiscs)。在TC中,有两种类型的QDiscs:一种是分类的Qdiscs,其可拥有多个子类或子队列,每个子类可以绑定过滤单元指定相应流量经过相应队列规则处理;一种是无分类QDiscs,其可以单独作为主队列规则,或者作为分类队列规则的子队列。如图5所示,其中分层令牌桶(HTB)属于分类队列规则,Netem属于无分类的队列规则。具体的,仿真代理Neutron-NetemAgent使用HTB对虚拟仿真链路进行限速,使用Netem对仿真链路配置时延、抖动、丢包率等特性。在通信领域,所述链路是一个节点到相邻节点的一段物理线路,且中间没有其他的交换节点,媒体访问控制(MAC)地址是表示一个节点(网络接口)的唯一标识。在本发明中,使用源目的MAC地址对配置HTB过滤单元,区分不同的虚拟链路。在诸多通信场景中,如容迟容断网络,通信链路严重不对称,因此采用源目的MAC地址有序对区分上下行链路。由于TC队列规则只能对网络接口的出口流量进行很好地控制,因此网络接口的下行流量需要精心设计控制。例如,假设节点A和B通过一条通信链路相连,对于节点A来说,上行链路在A节点网口接口的出口使用TC控制,其下行链路则在B节点网络接口的出口使用TC控制,进而实现网络接口上下行流量的控制。另外,通过在每个物理仿真节点创建一个或多个中间虚拟仿真节点的方式也可实现下行链路特性的控制。如图5所示位置1和位置2分别代表两种不同的网络接口。位置1代表虚拟仿真节点内部网络接口,位置2代表虚拟仿真节点内部网络接口的对等接口(peer),是一个TAP设备,并且被绑定在“OVSforemulation”虚拟交换机上。两处网络接口都可以配置规则限制链路速率,但两者之间有显著区别,例如,假设进行仿真实验的网络协议没有拥塞控制,如UDP,那么在位置2处进行的任何限速都将导致大量数据包丢失,而在位置1处则不会。仿真代理Neutron-NetemAgent中链路控制驱动实现了这两种链路限速控制,满足不同仿真实验场景的需求。容迟容断网络(DTN)具有高延时、间歇性中断的特点,因此现有传统网络路由协议不再适应DTN网络。近几年来,研究者设计出许多优先的DTN网络路由协议,如传染病路由(Epidemic)、概率路由(Prophet)。在一个具体仿真实施例中,设计实验比较Epidemic与Prophet路由协议在DTN社交移动模型下性能表现,进而进一步说明本发明实施方式。图7所示为DTN网络中一种社交移动模型,由Lindgren在论文“Probabilisticroutinginintermittentlyconnectednetworks”中提出。此模型模拟的移动场景由一个长3000米,宽2000米的区域组成,包含56个节点;所述区域被分割为12个小区域,其中,包括11个社区(C1-C11),1个采集中心(G);每个社区包含5个节点,其中4个为移动节点,1个为固定节点(可作为社区网关),所述5个节点视此社区为其家乡社区。所述移动节点可以随机选择一个目的地,以及随机选择10m/s-30m/s的速度向目的地进行移动,当到达目的地后停留一段时间,然后继续选择一个新的目的地与新的速度进行移动。移动节点选择目的地的概率根据其位置而定,在整个过程中,移动模型每隔一段时间随机选择两个源目的节点进行文件传输。在此实验场景中,有500秒的预热时间,以便让路由协议参数初始化完成,接着3000秒用于发送与传递文件,最后再运行8000秒,以便让足够多的文件投递完成。在上述移动模型下使用本发明系统进行实时仿真,比较Epidemic路由协议与Prophet路由协议的性能,步骤如下:1)制作仿真镜像,用于生成虚拟仿真节点。仿真镜像需要安装实验网络协议程序,在本仿真实施例中安装IBRDTN软件,其含有Epidemic、Prophet路由协议及DTN收发文件程序。2)编写虚拟仿真节点出口流量监测与实验结果分析脚本并安装于仿真镜像中,用于记录与上报实验数据。3)安装PuppetClient,用于接收仿真代理发送的IBRDTN软件配置文件。可选安装SSHServer,方便仿真用户远程访问虚拟仿真节点。4)编写DTN社交移动模型:编写上述DTN社交移动模型,其用于产生拓扑与链路特性控制信息,同时产生IBRDTN收发程序的控制信息。5)开始仿真,仿真代理进入控制循环:用户编写编排单元脚本让网络模拟器初始化虚拟仿真节点与虚拟仿真网络,生成与下发仿真数据,开始仿真。各物理仿真节点中仿真代理进入控制循环,同步精确地控制仿真过程。6)仿真结束,分析实验数据。显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1