发明内容
本发明的主要目的是从卫星星座仿真架构和网络仿真系统的改进以克服现有卫星系统仿真存在部分不足。
为实现上述目的,本发明提出一种基于容器云的卫星星座仿真架构,其特征在于,自底向上包括:
物理层,所述物理层包括若干物理机服务器和交换机,所述物理机服务器通过所述交换机相互连通;
基础服务层,所述基础服务层包括网络服务、调度服务、日志服务、监控服务、同步服务和存储服务,所述基础服务层用于用于提供容器管理和物理资源分配;
平台层,所述平台层由若干运行于所述物理机服务器的容器组成,所述平台层用于卫星星座仿真。
作为优选,所述平台层包括轨道计算容器和节点仿真容器,其中所述轨道计算容器用于分别执行至少一个卫星轨道计算子任务以得到当前子任务的卫星网络数据;所述节点仿真容器用于生成的或接收到的用户流量进行处理及发送至卫星网络,并对往返的用户流量或网络流量进行监控并计算对应的统计数据指标,进而实现对卫星网络拓扑的各节点的模拟。
进一步,所述平台层还包括:
配置管理服务容器,用于业务模型场景配置的管理
仿真控制服务容器,用于仿真实验的启停、根据星座轨道数据调整链路参数;
仿真监控服务容器,用于实时监控各仿真节点的状态,并将轨道计算结果及时汇报给仿真控制服务容器。
进一步,所述节点仿真容器运行着卫星路由算法协议栈、应用层服务和用户QoS测试器。
这样,基于容器云的卫星星座仿真架构的应用,相对于传统的基于主机的仿真系统产品,基于容器云构建的仿真系统在传统的以数学模型进行节点仿真的基础上,可以对节点进行实例化,更接近于真实运行的节点系统。同时采用容器技术也可以在保证最小资源占用的前提下提供一个轻量级的可扩展的系统仿真平台,提高了大规模卫星星座系统的仿真效率和仿真结果的可靠性。
本发明还提出一种基于容器云的卫星星座网络仿真系统,为基于上述基于容器云的卫星星座仿真架构进行卫星星座网络仿真,其特征在于,所述节点仿真容器包括用户终端节点仿真容器、卫星节点仿真容器和信关站节点仿真容器。
进一步,所述卫星节点仿真容器包括卫星协议栈、仿真控制工具、QoS统计工具,所述卫星协议栈对接收到的用户流量做优先级分组、路由转发;仿真控制工具将容器内部组件的初始化、配置调整;QoS统计工具对网络流量进行监控,计算卫星负载。
更进一步,所述信关站节点仿真容器包括流量处理服务、信关站协议栈、仿真控制工具和QoS统计工具,用户流量经过卫星网络传输,通过信关站协议栈解析后,交由流量处理服务处理;仿真控制工具将容器内部组件的初始化、配置调整;QoS统计工具在信关站侧对流量进行监控并计算QoS数据指标。
进一步,所述用户终端节点仿真容器包括仿真流量源、用户终端协议栈、仿真控制工具和QoS统计工具,所述仿真流量源生成的用户流量,经用户终端协议栈,发送至卫星网络;用户终端协议栈对用户流量进行处理、收发;仿真控制工具将容器内部组件的初始化、配置调整;QoS统计工具对往返的用户流量进行监控,计算QoS数据指标。
进一步,还包括将卫星星座网络仿真的仿真结果加载对应的2D/3D模型并渲染以在对应的二维地图或者三维空间模型展示的模块。
这样,基于容器云的卫星星座网络仿真系统可对卫星星座网络体系结构各层进行仿真,并利用容器化的构建,面对大规模仿真需求时,在不牺牲仿真结果真实性的前提下,利用硬件横向扩容的方式提升网络仿真规模,同时保证仿真执行效率,给系统带来了很高的可扩展性;可以根据需要非常简单地对各种网络模型进行自定义配置;同时由于各容器启动停止代价极低,使系统支持敏捷地实验各种复杂网络拓扑,给系统带来了极大的灵活性。另外,由于保留了原有的Linux网络栈,可以直接运行现有网络应用程序,对真实的用户流量进行仿真。轻量级的虚拟化占用硬件资源少,节约成本。可以直接使用现有的网络路由软件套件,方便测试不同的路由协议。对于链路特性的仿真,系统可使用OpenVSwitch来构建二层网络,利用Linux系统中的的tc和netem工具来模拟网络延迟、丢包、重复、扰动、包损坏、包乱序等链路特性。为了实现更真实的链路层和网络层的模拟,还可以使用无线网络仿真工具如EMANE和OpenSAND来实现对卫星网络无线通信模块的仿真。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1,基于容器云的卫星星座仿真架构示意图。某优选实施例中,基于容器云的卫星星座设计与仿真系统自底向上分为物理层、基础服务层、平台层。
物理层由多台物理机服务器、交换机等网络设备组成;物理机服务器通过交换机实现相互连通。
基础服务层由网络服务、调度服务、日志服务、监控服务、同步服务、存储服务组成,用于提供容器管理、物理资源分配等平台基础功能。
平台层由多个Docker运行时组成。根据功能,可将这些容器划分为两个平面,控制平面和数据平面。每台物理机服务器上运行着一个Docker。运行时,其中运行着若干Docker容器,提供仿真系统功能。
控制平面中的Docker容器提供仿真支撑服务,包括配置管理服务容器、仿真控制服务容器、仿真监控服务容器、数据采集服务容器、数据展示/用户交互服务容器
配置管理服务容器负责业务模型场景配置的管理。
仿真控制服务容器负责仿真实验的启停、根据星座轨道数据调整链路参数等工作。
仿真监控服务容器负责实时监控各仿真节点的状态,并将轨道计算结果及时汇报给仿真控制服务容器。
数据采集服务容器负责收集汇总各仿真节点获得的仿真结果,并将结果提供给数据展示/用户交互服务容器。
数据展示/用户交互服务容器负责提供2D、3D展示及仿真配置调整、仿真实验控制等交互功能。
数据平面中的Docker容器包括所述轨道计算子系统的轨道计算容器以及所述星座仿真子系统的节点仿真容器,它们负责进行实际仿真。
轨道计算容器负责计算仿真实验星座中各实体(卫星、信关站、用户终端)的位置,以供仿真之需。
节点仿真容器是抽象的仿真实体(卫星、信关站、用户终端),根据职能不同运行着卫星路由算法协议栈、应用层服务、用户QoS测试器等软件。
参考图3,为基于容器云的卫星星座网络仿真系统的方案示意图。参考图3,基于容器云的卫星星座网络仿真系统中仿真节点是运行着仿真模型的Docker容器,分为三种类型,用户终端节点仿真容器、卫星节点仿真容器和信关站节点仿真容器。
用户终端节点仿真容器由仿真流量源、用户终端协议栈、仿真控制工具、QoS统计工具组成。仿真流量源生成的用户流量,经用户终端协议栈,发送至卫星网络;用户终端协议栈对用户流量进行处理、收发;仿真控制工具负责容器内部组件的初始化、配置调整等功能;QoS统计工具对往返的用户流量进行监控,计算QoS数据指标。
卫星节点仿真容器由卫星协议栈、仿真控制工具、QoS统计工具组成。卫星协议栈负责对接收到的用户流量做优先级分组、路由转发,必要情况下还可进行进一步处理;仿真控制工具负责容器内部组件的初始化、配置调整等功能;QoS统计工具对网络流量进行监控,计算卫星负载等统计指标。
信关站节点仿真容器由流量处理服务、信关站协议栈、仿真控制工具、QoS统计工具组成。用户流量经过卫星网络传输,通过信关站协议栈解析后,交由流量处理服务处理;仿真控制工具负责容器内部组件的初始化、配置调整等功能;QoS统计工具负责在信关站侧对流量进行监控,计算QoS数据指标。
由于仿真节点中采用协议栈进行网络通信仿真,因而支持基于真实流量的网络模拟,即在用户终端侧和信关站侧可使用真实业务应用客户端/服务端作为真实流量源替代仿真流量源。用户终端的真实流量经过卫星终端协议栈处理转发至卫星仿真节点,再经由卫星协议栈进行星座内数据路由转发,最终到达信关站仿真节点上的真实业务服务程序进行处理。信关站仿真节点运行的真实业务应用服务产生的反馈数据,也可经由上述流程的反向过程抵达用户终端,满足双向通信需求。与此同时,利用系统中各仿真节点运行的QoS统计工具,可实时获得真实业务流量情况下各种数据指标。
另外,参考图1至4,本发明还涉及一种基于容器云的卫星星座设计与仿真方法以及一种基于容器云的卫星星座设计与仿真系统。并且为了便于区分,下面将基于容器云的卫星星座网络仿真系统简称为星座仿真子系统,则:
基于容器云的卫星星座设计与仿真方法包括以下步骤:
轨道计算步骤,将整个卫星轨道计算任务拆分成若干子任务,创建相同数量的轨道计算容器,所述的轨道计算容器执行一个或以上的卫星轨道计算子任务以得到当前子任务的卫星网络数据,将所述轨道计算容器得到的卫星网络数据整合以形成各个时刻完整的卫星网络拓扑;
星座仿真步骤,仿真流量源生成的用户流量,经用户终端协议栈处理并发送至卫星网络;卫星节点仿真容器的卫星协议栈对接收到的用户流量做优先级分组和路由转发;信关站节点仿真容器将经过所述卫星网络传输的用户流量用信关站协议栈解析后,交由流量处理服务处理,统计工具对往返的用户流量或网络流量进行监控并计算对应的统计数据指标,进而实现对所述卫星网络拓扑的各节点的模拟;
可视化展示步骤,对星座仿真步骤的仿真结果加载对应的2D/3D模型并渲染以在对应的二维地图或者三维空间模型展示出卫星星座的运动模式。
基于容器云的卫星星座设计与仿真系统,包括:
轨道计算子系统,所述轨道计算子系统包括若干轨道计算容器,所述轨道计算子系统将整个卫星轨道计算任务拆分成若干子任务,所述的轨道计算容器执行一个或以上的卫星轨道计算子任务以得到当前子任务的卫星网络数据,所述轨道计算子系统将所述轨道计算容器得到的卫星网络数据整合以形成各个时刻完整的卫星网络拓扑;
星座仿真子系统,所述星座仿真子系统包括若干节点仿真容器,所述节点仿真容器包括协议栈、仿真控制工具和统计工具,所述仿真控制工具对所述节点仿真容器内部组件的初始化及配置调整,所述协议栈将所述节点仿真容器生成的或接收到的用户流量进行处理及发送至卫星网络,所述统计工具对往返的用户流量或网络流量进行监控并计算对应的统计数据指标,进而实现对所述卫星网络拓扑的各节点的模拟;
可视化展示及控制子系统,所述可视化展示及控制子系统用于对显示所述星座仿真子系统的仿真结果,与/或控制仿真结果的播放模式。
参考图2所示星轨道计算子系统使用基于Java语言编写的底层航天动力学库Orekit来根据卫星轨道计算卫星的位置和与系统中其他节点的连接。Orekit包含了基本的元素(轨道、日期、姿态及框架等)和多样的算法来处理这些元素(坐标转换、轨道预报及定位等)。同时,会将卫星轨道计算算法以微服务的形式运行在Docker容器中,满足大批量的卫星轨道计算,和高时间精度的仿真。
具体来说:首先,轨道计算系统从控制平面获取卫星网络参数,根据其中地面站和用户终端经纬度可以直接计算出其在地球坐标系上的位置。任务拆分模块可以将卫星拆分为n组,还可以将仿真时间切割成m段,最终将整个卫星轨道计算任务拆分成m*n个子任务。
接着,创建相同数量的轨道计算容器,在每个容器中输入子任务参数,由Orekit提供的Propagator(轨道预报器)模块对卫星轨道进行预报,StepHandler(即第一监听模块)和AccessHandler(即第二监听模块)监听Propagator产生的事件,StepHandler记录每个时刻卫星的状态,AccessHandler记录卫星与地面物体可见性切换的时刻,待Propagator计算完成,便可得到当前子任务的卫星网络数据。
最后,经过数据汇总,整合各子任务的计算结果,即可得到各个时刻完整的卫星网络拓扑。
参考图4,可视化展示及控制子系统具有基于Web的控制台,不仅提供了通过命令行的方式对仿真模拟进行控制与交互的功能。还可以进一步,通过仿真控制服务模块,经由仿真调度通过底层对对应api,进而直接访问代表对应卫星的docker节点,进行时延测试,通讯测试,以及进一步进行承载真实业务流量的网络仿真。
在利用ping进行时延测试时,从web仿真控制台开始发出指令,经由api调用,通过仿真控制服务按照当前卫星网络拓扑结构以及星座连通矩阵的数据,判断对应指令要求的卫星是否连通。在卫星间链路可见的情况下,进一步通过shh登录,进入代表对应编号卫星的docker容器中,调用网络协议栈,发送ping指令,并最终将所得RTT数值通过回调逐级返回。
在进行实时通讯测试时,依旧从web仿真控制台指令开始,通过仿真控制服务,在卫星间链路可见的情况下,允许用户通过ssh登录进入代表对应卫星的多个docker容器中。在容器中调用网络协议工具Netcat,在两个或多个容器之间建立实时消息链接,进行实时消息发送,并反馈信息收发效果。另外,卫星星座网络仿真结果将经由仿真系统中的星座可视化模块展现,同时用户可通过卫星星座网络仿真控制模块来控制仿真结果的播放模式并进行互动操作。该模块基于OpenGL/WebGL技术来提供2D/3D模式的展示效果,按照卫星星座仿真系统计算所得的轨道参数等坐标,将对应的2D/3D模型加载并渲染在对应的二维地图或者三维空间模型中,直观的展示出卫星星座的运动模式。
这样,将容器技术和卫星星座设计与仿真结合,通过高性能的分布式轨道计算,更接近真实节点的容器化构建,以及更接近真实节点的容器化构建,面对大规模仿真需求时,在不牺牲仿真结果真实性的前提下,利用硬件横向扩容的方式提升网络仿真规模,同时保证仿真执行效率,使系统支持敏捷地实验各种复杂网络拓扑,便于对星座网络进行协议设计、网络性能分析、网络安全验证、网络行为预测、网络规划建设。传统网络仿真无法加载真实的网络流量,因而不得不对这些场景因素进行一系列建模假设,虽然传统网络仿真以统计方式提供了一些基于分布或变化规则的网络流量模型,但是往往与实际流量的行为相去甚远,难以反映网络流量行为的真实情况。而能否产生与真实网络的流量行为接近的流量是决定网络仿真结果是否满足可靠性和正确性要求的基础,因而,通过高性能的分布式轨道计算,更接近真实节点的容器化构建,以及更接近真实节点的容器化构建既提高了仿真的效率,同时也提高了仿真结果的可靠性。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。