一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于虚拟化容器的大规模分布式虚拟化网络仿真方法

2022-07-14 01:37:01 来源:中国专利 TAG:


1.本发明属于分布式网络仿真领域,特别涉及一种模拟实物节点运行的仿真技术。


背景技术:

2.随着物联网、车联网等新兴网络的逐步发展,网络的规模在不断扩大,网络设备的功能也越来越复杂,以大规模传感器网络为例,其网络规模通常在几千至上万节点,且传感器节点功能随着硬件性能提升也变得越来越复杂,如何对传感器节点功能和复杂网络情况进行仿真并对实物节点硬件功能和性能验证,成为了现代仿真系统框架需要解决的问题。网络仿真框架需要解决如何对现代实物节点功能进行模拟、如何实现引入实物节点模拟环境后的分布式网络仿真,以及如何使用仿真系统生成的仿真结果对实物节点进行验证。
3.虚拟化技术打破了物理平台资源的屏障,不同地域、物理状态、架设方式的物理计算资源可以融合在一起,并向上以单一整体的服务形式呈现。而容器虚拟化技术又将仿真程序需要的环境和计算资源作为一个整体运行在实际物理平台上。因此基于容器虚拟化技术的仿真平台可以根据实时仿真进度,将不同的计算资源进行动态分配,对容器进行灵活调度,从而解决传统大规模网络仿真速度漫长、不够灵活的缺点。
4.传统的半实物网络仿真系统是将实物节点直接接入虚拟网络中,由于实物节点与仿真系统执行速度差异很大,仿真速度很受限制,且均是使用实物节点验证仿真系统中的网络特性,而未关注实物节点本身。


技术实现要素:

5.为解决上述技术问题,本发明提出一种基于虚拟化容器的大规模分布式虚拟化网络仿真方法,使用容器创建仿真节点模拟实物节点的实际运行环境和网络协议栈,无缝运行实际网络程序。
6.本发明采用的技术方案为:一种基于虚拟化容器的大规模分布式虚拟化网络仿真方法,包括:
7.s1、构建虚拟仿真网络,所述虚拟仿真网络包括若干容器网络,每个容器网络设置于一台物理仿真主机上,每个容器网络包括多个容器,每个容器作为虚拟仿真网络中的仿真节点;
8.s2、每台物理仿真主机连接物理网络;
9.s3、虚拟仿真网络中的部分仿真节点作为实物节点在虚拟仿真网络中的映射,记这部分仿真节点为映射节点;
10.s4、虚拟仿真网络中的所有容器发出的报文以离散事件形式递交给目的容器;
11.s5、实时采集虚拟仿真网络中其他节点向映射节点发出的报文流量和其他节点对映射节点报文的响应流量,从而生成流量日志;
12.s6、根据步骤s5的流量日志生成报文,与实物节点进行交互;
13.s7、通过对比实物节点的响应报文与步骤s5的流量日志,完成对实物节点的验证。
14.本发明的有益效果:本发明结合容器虚拟化技术,设计并实现了大规模分布式虚拟化网络仿真框架。该框架能够使用容器创建仿真节点模拟实物节点的实际运行环境和网络协议栈,无缝运行实际网络程序。框架同时将虚拟容器与物理信道模型结合,为仿真节点提供可控的物理信道,实现灵活的虚拟仿真网络拓扑控制。针对实物节点的网络协议验证问题,框架实现了一种半实物网关架构,在虚拟仿真网络中创建实物节点的映射节点,采集仿真过程中映射节点与其他仿真节点交互的仿真报文序列,在半实物仿真环境下向实物节点重放采集的报文序列,验证实物节点协议实现的一致性与实物节点性能,提高仿真结果迁移效率和对不同仿真环境的适应性。
15.本发明通过容器虚拟化机制模拟实物节点的实际运行环境和网络协议栈,无缝运行实际网络程序;此外,框架利用ns-3的物理信道模型与虚拟容器结合,为仿真节点提供可控的物理信道,实现灵活的虚拟仿真网络拓扑控制;针对实物节点的网络协议验证问题,框架实现了一种半实物网关架构,通过采集虚拟仿真网络仿真流量,将仿真流量日志应用于实物节点验证过程,提高仿真结果迁移效率和对不同仿真环境的适应性。
附图说明
16.图1为本发明实施例提供的容器虚拟化模块架构图;
17.图2为本发明实施例提供的信道仿真模块rpcdevice工作流程图;
18.图3为本发明实施例提供的守护进程模块架构图;
19.图4为本发明实施例提供的报文队列模块流程图;
20.图5为本发明实施例提供的半实物网关模块架构图;
21.图6为本发明所述的基于虚拟化容器和分布式离散仿真同步的分布式虚拟化网络仿真框架的模块图。
具体实施方式
22.为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。
23.如图6所示,本发明提供了一种基于虚拟化容器和分布式离散仿真同步的分布式虚拟化网络仿真框架,下面结合附图对本发明的各模块实现方法进行介绍。
24.1、容器虚拟化模块
25.容器虚拟化模块负责网络仿真程序容器的创建、管理、网络拓扑连接和容器生命周期控制。针对不同的网络仿真程序运行环境,容器虚拟化模块支持使用不同的容器基础镜像,并负责根据配置信息动态创建容器和建立仿真网络拓扑。模块架构如图1所示,主要包含基础镜像管理、容器和容器网络、容器配置和管理等模块。
26.本领域技术人员应知,本发明的仿真网络拓扑是根据实物节点所在的真实网络拓扑建立的;仿真网络拓扑上相邻的仿真节点会尽量布置在一台物理仿真主机上;并根据实物节点在真实网络拓扑中的位置,将仿真网络拓扑中对应位置的仿真节点作为实物节点的映射,记为映射节点。
27.基础镜像管理子模块负责管理和维护网络仿真程序执行需要的基础镜像。在图1中每个base为一个基础镜像,每个基础镜像均是由相应运行环境的文件系统压缩包解压获
得,由用户上传到容器虚拟化模块,容器配置子模块会为每个基础镜像分配唯一id,并记录基础镜像在宿主机的文件路径。基础镜像需要包含仿真程序执行需要的依赖项,虚拟化模块还会向基础镜像中注入用于捕获仿真程序报文的可执行程序lib。所有容器在创建后都会连接到宿主机上的容器网络上。
28.图1中的c1、c2、c3、c4为框架创建的容器,每个容器代表虚拟仿真网络中的一个虚拟节点,容器虚拟化模块需要捕获这些容器发送的实际报文作为仿真框架中的离散事件,在物理仿真主机之间传递。因此容器虚拟化模块内部有两层网络,一层是容器网络,用于物理仿真主机捕获报文,另一层是虚拟overlay仿真网络,存在于容器内,代表虚拟节点组成的虚拟仿真网络。
29.为了方便创建和配置容器,每个容器会对应一个配置文件,每个配置文件包含容器的基础镜像路径、接口配置等。
30.2、信道仿真模块
31.信道仿真模块负责模拟虚拟仿真网络中不同节点之间的通信状况,模拟报文在真实信道中的传播途径。由于物理信道种类繁多,且ns-3拥有很多常见的,受到大众认可的物理信道模型,信道仿真模块使用基于ns-3的物理信道模型模拟真实的报文传输信道。为了统一控制,方便对信道的管理,信道仿真模块实现继承netdevice类特性的rpcdevice对接多种不同的物理信道模型。rpcdevice执行流程如图2所示。
32.在虚拟仿真网络链路创建的时候,信道仿真模块会使用rpcdevice替代ns-3向节点安装的对应信道的netdevice,在向节点安装设备的时候,rpcdevice会作为代理,向netdevice注册混杂接收模式下的回调函数,获得原始netdevice通过信道获得的报文,并删除netdevice原本的报文处理函数,杜绝netdevice对报文再次进行处理。如果节点本身有报文发送,通过校验之后,直接调用信道的发送接口函数,将报文发送到信道。
33.3、守护进程模块
34.守护进程包含分布式进度同步模块、拓扑存储模块、报文队列模块等,并提供报文传输接口和物理节点通信接口,供容器网络和与其他物理节点通信使用。拓扑存储模块用于存储虚拟仿真网络拓扑、物理仿真主机拓扑和同步拓扑,实现虚拟仿真网络、物理仿真主机同步网络的创建和维护。各模块交互过程如图3所示。
35.分布式进度同步模块使用分布式同步算法同步当前物理仿真主机上各个容器的执行进度。
36.拓扑存储模块用于存储和维护虚拟网络拓扑、物理仿真主机拓扑和树形同步拓扑。虚拟网络拓扑用于记录网络仿真中各个虚拟节点的连接情况、物理信道类型及参数,该拓扑会被用来在信道仿真模块中根据拓扑创建不同的信道仿真模型;物理仿真主机拓扑用于记录物理仿真主机的网络地址和网络延迟信息;树形同步拓扑记录各个逻辑进程之间形成的同步树状拓扑。
37.本发明还使用分布式离散仿真同步算法将多个物理仿真主机上的所有仿真节点的所有当前执行进度汇总到一起,决策出之后允许执行的时间范围,从而保证分布式仿真中各个仿真节点上的离散事件的因果顺序,避免出现事件顺序错乱,持续执行网络仿真,保证网络仿真效果。
38.报文队列模块执行流程如图4所示,报文队列模块用于缓存在当前阶段无法发送
出去的各个容器产生的报文,以及守护进程接收到的其他物理节点上的容器发送的报文。容器产生的报文会在下一个仿真阶段通过信道仿真模块后,通过物理仿真主机通信接口发送给其他物理仿真主机,而守护进程接收到的报文会在下一个阶段通过容器网络发送给相应容器。因此报文队列内部有两种类型的队列,一种用于存储容器发送的报文,另外一种用于存储从其他节点收到的报文。为了减少内存占用,报文队列使用哈希映射算法,根据报文内部的接收物理仿真主机id,将报文映射到不同的队列中。如果是本地容器发出的报文,哈希映射算法会根据报文的接收容器对应的物理仿真主机id,在拓扑存储中找到对应的物理仿真主机id,映射到所属的报文队列中;如果是其他物理仿真主机发送的报文,根据接收节点id(即容器id)进行映射,根据队列数量,每个队列缓存一定id范围内的容器将要收到的报文。哈希映射将守护进程在一段时间内需要处理的报文集中在一起,能够提高缓存的命中率,提高报文处理速度。
39.此外,所有报文队列均使用优先队列实现,按照报文的时间戳从小到大对报文进行排序,方便对下一同步阶段范围内的报文进行处理。
40.4、半实物网关模块
41.半实物仿真网关架构如图5所示,主要分为流量采集和流量重放两部分。在流量采集开始前,虚拟仿真网络中需要指定某些仿真节点为实物节点在虚拟仿真网络中的映射。模块会实时捕获其他没有与实物节点映射的虚拟节点向映射节点发出的报文流量和对映射节点报文的响应流量,并复制一份进行处理,并经过过滤和采集插件后,生成流量日志。
42.在重放阶段,这些复制后的流量已经以仿真采集日志的形式存放在半实物网关中,半实物网关内部的对应各种物理网络类型的中间件插件,例如以太网报文中间件,lora报文中间件,会按照日志生成真实网络接口上的报文,与实物节点进行交互。实物节点的响应报文也会被半实物网关接收,并与仿真采集的流量日志进行对比,验证响应报文时间和内容,从而对实物节点功能进行验证,验证实物节点能够按照协议规定和性能要求及时、正确的产生报文和做出响应。
43.流量采集会在各个物理仿真主机上执行。各个物理仿真主机上被实物节点映射的虚拟仿真节点产生的流量会被采集并记录到本地日志文件中,由于被映射的虚拟仿真节点可能分布在多个物理仿真主机上,而最终半实物网关会作为独立的可执行程序与真实节点连接,因此这些日志还需要汇总到一台物理仿真主机上,由该物理仿真主机上的半实物网关采集端合并成最终的仿真采集日志。
44.每个物理仿真主机上都会部署半实物网关流量采集程序。仿真节点收到报文后,先行进行过滤,判断报文的发送节点或接收节点是否是被标记的仿真节点,采集被标记的仿真节点报文并生成日志信息,最后多个采集端的日志会汇集到一起生成最终的仿真日志记录。
45.合并后的日志文件按照时间顺序将各个报文排序。当启动网关后,网关就会从时钟源中获取实际的时间,根据采集日志中包含的报文时间戳在特定时间点通过插件产生报文。实物节点网络发送到半实物网关的报文经过与采集日志对比后,如果检测有差别,半实物网关就会产生警告,表明实物节点生成的报文内容不正确或者未按照协议内容和顺序产生正确的协议报文,或者性能未满足要求。从而达到验证实物节点功能正确性和性能的目的。
46.本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献