网络仿真方法、装置、终端设备以及存储介质与流程

文档序号:26841932发布日期:2021-10-08 23:09阅读:66来源:国知局
1.本发明涉及仿真
技术领域
:,特别涉及一种网络仿真方法、装置、终端设备以及计算机可读存储介质。
背景技术
::2.随着云计算中软件定义网络和网络功能虚拟化技术的飞速发展,网络仿真在复杂或大规模网络拓扑的复现中起着重要作用,网络仿真在可控性和可伸缩性方面具有优势,这为新技术和安全威胁的测试奠定了基础。3.为了满足网络仿真规模的要求,且不失逼真性,现代网络仿真平台集成了多种虚拟化技术构建目标虚拟网络,例如kvm(kernel‑basedvirtualmachine,基于内核的虚拟机)技术和docker(应用容器引擎)技术。4.另外,传统的技术手段借助于路由软件技术,提出网络仿真中虚拟路由器仿真方案,以支持各种路由协议的网络仿真。在现有的网络仿真方法中,直接利用设定的目标网络参数对目标网络拓扑结构中的虚拟链路的网络参数的设定。5.但是,采用现有的网络仿真方法,网络仿真的真实性较差。技术实现要素:6.本发明的主要目的是提供一种网络仿真方法、装置、终端设备以及计算机可读存储介质,旨在解决现有技术中采用现有的网络仿真方法,网络仿真的真实性较差的技术问题。7.为实现上述目的,本发明提出一种网络仿真方法,所述方法包括以下步骤:8.构建目标网络拓扑结构;9.获取所述目标网络拓扑结构的目标网络参数;10.基于所述目标网络参数和最佳估计网络参数,获得配置网络参数;11.利用所述配置网络参数对所述目标网络拓扑结构进行控制。12.可选的,所述构建目标网络拓扑结构的步骤之前,所述方法还包括:13.获取拓扑要求,所述拓扑要求包括虚拟节点信息和节点配置信息;14.所述构建目标网络拓扑结构的步骤,包括:15.基于所述虚拟节点信息和所述节点配置信息,构建所述目标网络拓扑结构。16.可选的,所述基于所述目标网络参数和最佳估计网络参数,获得配置网络参数的步骤,包括:17.基于所述最佳估计网络参数,获得预测网络参数;18.基于所述预测网络参数和所述目标网络参数,获得所述配置网络参数。19.可选的,所述获得所述配置网络参数的步骤之后,所述方法还包括:20.采集所述目标网络拓扑结构的测量网络参数,并获取估计协方差矩阵;21.基于所述预测网络参数和所述测量网络参数,获得测量残差;22.基于所述估计协方差矩阵,获得预测协方差矩阵;23.基于所述预测协方差矩阵,获得最佳卡尔曼增益;24.基于所述最佳卡尔曼增益和所述预测协方差矩阵,获得新的估计协方差矩阵;25.基于所述测量残差、所述预测网络参数和所述卡尔曼增益,获得新的最佳估计网络参数;26.利用所述新的估计协方差矩阵更新所述估计协方差矩阵,并利用所述新的最佳估计网络参数更新所述最佳估计网络参数。27.可选的,所述测量网络参数包括测量延迟和测量丢包率;所述采集所述目标网络拓扑结构的测量网络参数的步骤,包括:28.在所述目标网络拓扑结构中目的节点接收到接收测试数据包时,在所述接收测试数据包中提取发送时间戳,所述接收测试数据包是所述目标网络拓扑结构中的源节点发送的;29.基于所述发送时间戳和所述目的节点接收到所述接收测试数据包的接收时间,获得测量延迟;30.基于所述源节点发送的发送测试数据包的发送数量与所述目的节点接收的所述接收测试数据包的接收数量的差,获得测量丢包率。31.可选的,所述基于所述预测网络参数和所述目标网络参数,获得所述配置网络参数的步骤,包括:32.基于所述预测网络参数和所述目标网络参数,利用公式一,获得所述配置网络参数;33.所述公式一为:[0034][0035]其中,为所述配置网络参数中的配置延迟,为所述配置网络参数中的配置丢包率,为所述目标网络参数中的目标延迟,为所述目标网络参数中的目标丢包率,为所述预测网络参数中的预测延迟,为所述预测网络参数中的预测丢包率。[0036]可选的,所述基于所述预测网络参数和所述测量网络参数,获得测量残差的步骤,包括:[0037]基于所述预测网络参数和所述测量网络参数,利用公式二,获得测量残差;[0038]所述公式二为:[0039][0040]其中,y(t)为所述测量残差,为所述测量网络参数,所述测量网络参数包括测量延迟和测量丢包率,为所述预测网络参数,所述预测网络参数包括预测延迟和预测丢包率[0041]所述基于所述估计协方差矩阵,获得预测协方差矩阵的步骤,包括:[0042]基于所述估计协方差矩阵,利用公式三,获得预测协方差矩阵;[0043]所述公式三为:[0044]p(t|t‑1)=ap(t‑1|t‑1)at+q[0045]其中,p(t‑1|t‑1)为所述估计协方差矩阵,p(t|t‑1)为所述预测协方差矩阵,q=0.1e2×2,其中,e2×2为二维单位矩阵;[0046]所述基于所述预测协方差矩阵,获得最佳卡尔曼增益的步骤,包括:[0047]基于所述预测协方差矩阵,利用公式四,获得最佳卡尔曼增益;[0048]所述公式四为:[0049]kg(t)=p(t|t‑1)ht(hp(t|t‑1)ht+r)‑1[0050]其中,kg(t)为所述最佳卡尔曼增益,r=e2×2;[0051]所述基于所述最佳卡尔曼增益和所述预测协方差矩阵,获得新的估计协方差矩阵的步骤,包括:[0052]基于所述最佳卡尔曼增益和所述预测协方差矩阵,利用公式五,获得新的估计协方差矩阵;[0053]所述公式五为:[0054]p(t|t)=(1‑kg(t)h)p(t|t‑1)[0055]其中,p(t|t)为所述新的估计协方差矩阵;[0056]所述基于所述测量残差、所述预测网络参数和所述卡尔曼增益,获得新的最佳估计网络参数的步骤,包括:[0057]基于所述测量残差、所述预测网络参数和所述卡尔曼增益,利用公式六,获得新的最佳估计网络参数;[0058]所述公式六为:[0059][0060]其中,为所述新的最佳估计网络参数,新的最佳估计网络参数包括新的最佳估计延迟和新的最佳估计丢包率。[0061]此外,为实现上述目的,本发明还提出了一种网络仿真装置,所述装置包括:[0062]构建模块,用于构建目标网络拓扑结构;[0063]获取模块,用于获取所述目标网络拓扑结构的目标网络参数;[0064]获得模块,用于基于所述目标网络参数和最佳估计网络参数,获得配置网络参数;[0065]控制模块,用于利用所述配置网络参数对所述目标网络拓扑结构进行控制。[0066]此外,为实现上述目的,本发明还提出了一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行网络仿真程序,所述网络仿真程序被所述处理器执行时实现如上述任一项所述的网络仿真方法的步骤。[0067]此外,为实现上述目的,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质上存储有网络仿真程序,所述网络仿真程序被处理器执行时实现如上述任一项所述的网络仿真方法的步骤。[0068]本发明技术方案提出了一种网络仿真方法,通过构建目标网络拓扑结构;获取所述目标网络拓扑结构的目标网络参数;基于所述目标网络参数和最佳估计网络参数,获得配置网络参数;利用所述配置网络参数对所述目标网络拓扑结构进行控制。[0069]现有的网络仿真方法中,直接利用设定的目标网络参数进行目标网络拓扑结构中的虚拟链路的网络参数的设定,目标网络参数是用户直接设定的值,其误差较大,使得网络仿真的真实性差。而本技术,基于目标网络参数和最佳估计网络参数,获得配置网络参数,配置网络参数消除了大量的误差,使得配置网络参数的准确率较高,从而使得网络仿真的真实性较好。所以,利用本发明的网络仿真方法,获得的配置网络参数的准确率较高,网络仿真的真实性较好。附图说明[0070]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。[0071]图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图;[0072]图2为本发明网络仿真方法第一实施例的流程示意图;[0073]图3为本发明目标网络拓扑结构的框架图;[0074]图4为本发明虚拟链路构建示意图;[0075]图5为本发明源节点数据包延迟和丢失信息采集工作原理图;[0076]图6为本发明目的节点数据包延迟和丢失信息采集工作原理图;[0077]图7为本发明数据包管理的原理图;[0078]图8为本发明网络仿真装置第一实施例的结构框图。[0079]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式[0080]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0081]参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。[0082]通常,终端设备包括:至少一个处理器301、存储器302以及存储在所述存储器上并可在所述处理器上运行的网络仿真程序,所述网络仿真程序配置为实现如前所述的网络仿真方法的步骤。[0083]处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field‑programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。处理器301还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关网络仿真方法操作,使得网络仿真方法模型可以自主训练学习,提高效率和准确度。[0084]存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本技术中方法实施例提供的网络仿真方法。[0085]在一些实施例中,终端还可选包括有:通信接口303和至少一个外围设备。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口303相连。具体地,外围设备包括:射频电路304、显示屏305和电源306中的至少一种。[0086]通信接口303可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器301和存储器302。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。[0087]射频电路304用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路304包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路304还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本技术对此不加以限定。[0088]显示屏305用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏305是触摸显示屏时,显示屏305还具有采集在显示屏305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器301进行处理。此时,显示屏305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏305可以为一个,电子设备的前面板;在另一些实施例中,显示屏305可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏305可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏305还可以设置成非矩形的不规则图形,也即异形屏。显示屏305可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight‑emittingdiode,有机发光二极管)等材质制备。[0089]电源306用于为电子设备中的各个组件进行供电。电源306可以是交流电、直流电、一次性电池或可充电电池。当电源306包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。[0090]本领域技术人员可以理解,图1中示出的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。[0091]此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有网络仿真程序,所述网络仿真程序被处理器执行时实现如上文所述的网络仿真方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本技术方法实施例的描述。确定为示例,程序指令可被部署为在一个终端设备上执行,或者在位于一个地点的多个终端设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个终端设备备上执行。[0092]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的计算机可读存储介质可为磁碟、光盘、只读存储记忆体(read‑onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。[0093]基于上述硬件结构,提出本发明网络仿真方法的实施例。[0094]参照图2,图2为本发明网络仿真方法第一实施例的流程示意图,所述方法用于终端设备,所述方法包括以下步骤:[0095]步骤s11:构建目标网络拓扑结构。[0096]需要要说明的是,本发明的执行主体是终端设备,终端设备安装有网络仿真程序,终端设备执行网络仿真程序时,实现本发明的网络仿真方法。[0097]进一步的,步骤s11之前,所述方法还包括:获取拓扑要求,所述拓扑要求包括虚拟节点信息和节点配置信息;相应的,步骤s13包括:基于所述虚拟节点信息和所述节点配置信息,构建所述目标网络拓扑结构。[0098]需要说明的是,步骤s11是基于openstack平台实现,以实现完全虚拟化(kvm,kernel‑basedvirtualmachine,基于内核的虚拟机)和轻量级虚拟节点(docker,容器)的互连仿真。[0099]参照图3,图3为本发明目标网络拓扑结构的框架图。目标网络拓扑结构包括控制节点、虚拟计算节点(所述虚拟节点)和网络节点;部署模块首先获取拓扑要求,包括虚拟节点信息(虚拟计算节点数量)和节点配置信息(虚拟计算节点的内存和处理器等参数),此过程为图3中的过程(1)。然后,控制节点通过标准openstack应用程序编程接口启动虚拟网络拓扑,此过程为图3中的过程(2)。通过openvswich(ovs)管理虚拟机和容器的动态互连,基于ovs的技术可以构建并动态更改每个虚拟节点的网络环境。[0100]参照图4,图4为本发明虚拟链路构建示意图;通过ovs技术构建虚拟链路。通过虚拟化平面中的虚拟机进行目标网络拓扑结构的虚拟链接构建,该构建过程也适用于容器。每个虚拟机将连接到2层虚拟交换机设备qbr,通过2层虚拟交换机br‑int控制访问;对于跨主机虚拟链路,除了通过br‑int传递之外,数据包还通过br‑tun(一种根据流表转发的openflow交换机)传递,同样可通过该设备对跨主机链路进行访问控制。另外,数据包需要通过gre隧道封装并通过物理网络。[0101]步骤s12:获取所述目标网络拓扑结构的目标网络参数。[0102]需要说明的是,目标网络参数包括目标延迟和目标丢包率,用户可以基于需求和目标网络拓扑结构的具体信息,设定对应的目标网络参数。本发明对目标网络参数的具体范围不做限制。[0103]步骤s13:基于所述目标网络参数和最佳估计网络参数,获得配置网络参数。[0104]具体的,所述基于所述目标网络参数和最佳估计网络参数,获得配置网络参数的步骤,包括:基于所述最佳估计网络参数,获得预测网络参数;基于所述预测网络参数和所述目标网络参数,获得所述配置网络参数。[0105]其中,所述基于所述预测网络参数和所述目标网络参数,获得所述配置网络参数的步骤,包括:基于所述预测网络参数和所述目标网络参数,利用公式一,获得所述配置网络参数;[0106]所述公式一为:[0107][0108]其中,为所述配置网络参数中的配置延迟,为所述配置网络参数中的配置丢包率,为所述目标网络参数中的目标延迟,为所述目标网络参数中的目标丢包率,为所述预测网络参数中的预测延迟,为所述预测网络参数中的预测丢包率。[0109]需要说明的是,本发明的所述配置网络参数,均是以当前时刻对应的目标网络参数和所述最佳估计网络参数获得,当前时刻的目标网络参数时用户基于需求设定的,而当前时刻对应的最佳估计网络参数是当前时刻(t时刻)之前一个时刻(t‑1时刻)获得的最佳估计网络参数,基于该最佳估计网络参数,获得新的最佳估计网络参数(t时刻获得的)。然后,在下一个时刻(t+1时刻),则以该时刻对应的目标网络参数和t时刻对应的最佳估计网络参数,获得又一新的最佳估计网络参数,如此循环,获得不同时刻的配置网络参数。[0110]另外,延迟和丢包率是独立的特征,假设状态向量在两个连续的时隙之间没有显着变化,即,通过公式七,基于所述最佳估计网络参数,获得预测网络参数;其中,公式七为:[0111][0112]其中,为所述最佳估计网络参数(上文所述,t‑1时刻对应的最佳估计网络参数)。[0113]进一步的,所述获得所述配置网络参数的步骤之后,所述方法还包括:采集所述目标网络拓扑结构的测量网络参数,并获取估计协方差矩阵;基于所述预测网络参数和所述测量网络参数,获得测量残差;基于所述估计协方差矩阵,获得预测协方差矩阵;基于所述预测协方差矩阵,获得最佳卡尔曼增益;基于所述最佳卡尔曼增益和所述预测协方差矩阵,获得新的估计协方差矩阵;基于所述测量残差、所述预测网络参数和所述卡尔曼增益,获得新的最佳估计网络参数;利用所述新的估计协方差矩阵更新所述估计协方差矩阵,并利用所述新的最佳估计网络参数更新所述最佳估计网络参数。[0114]其中,所述测量网络参数包括测量延迟和测量丢包率;所述采集所述目标网络拓扑结构的测量网络参数的步骤,包括:在所述目标网络拓扑结构中目的节点接收到接收测试数据包时,在所述接收测试数据包中提取发送时间戳,所述接收测试数据包是所述目标网络拓扑结构中的源节点发送的;基于所述发送时间戳和所述目的节点接收到所述接收测试数据包的接收时间,获得测量延迟;基于所述源节点发送的发送测试数据包的发送数量与所述目的节点接收的所述接收测试数据包的接收数量的差,获得测量丢包率。[0115]参照图5‑6,图5为本发明源节点数据包延迟和丢失信息采集工作原理图;图6为本发明目的节点数据包延迟和丢失信息采集工作原理图,图5和图6最上面的框中的内容为iptables规则。参照图3所示的目标网络拓扑结构,链路仿真模块采集网络通信延迟和丢包率信息,为高逼真目标网路仿真算法提供数据来源。由于,许多数据包并不包含有关发送和接收时间戳的信息,因此,需要截取这些数据包,这样,我们可以观察每个数据包的发送和接收时间戳,并确定丢包数,从而基于每个数据包的延迟就是发送和接收时间戳之间的差,即可确定到单向延迟。[0116]参照图5,在源节点(发送数据包的节点)上设置postrouting规则。从源节点发送数据包(发送的数据包命名为发送数据包)时,首先将其放在队列中,然后通过netlink套接字将其从内核空间发送到用户空间中的流控制模块。采用scapy库,以将发送时间的时间戳字段添加到数据报的末尾。使用netfilterqueue中提供的get_payload()函数获取每个数据包有效负载的字符串形式,并通过scapy提供的函数ip()获得数据报内容,并将当前时间戳以字符串形式拼接到数据报中。基于scapy,修改了ip报头的参数len(ip数据包的长度)和chksum(ip报头校验和),以及由ip封装的其他协议的报头参数(根据需求确定是否需要对该项进行更改)。以icmp协议为例,还需要修改icmp标头的chksum参数。修改后,利用netfilterqueue提供的set_payload()函数将修改结果设置为数据包有效负载,以确保正确发送和接收修改后的数据包。[0117]参照图6,在目的节点(即接收数据包的虚拟节点)中设置prerouting规则。在netfilterqueue和scapy的支持下,利用在用户态数据队列中提取源节点在数据报末尾添加的发送时间戳,删除发送时间戳并修改每个层协议的标头参数(类似于源节点图5中的过程),以保持应用程序的正常工作,将目的节点队列接收到数据包时的时间戳记为接收时间。根据提取的发送和接收时间戳,计算报文的延迟,结合源节点和目的节点,可以通过数据包的收发数(即所述源节点发送的发送测试数据包的发送数量与所述目的节点接收的所述接收测试数据包的接收数量的差)之差得到丢包数,进而获得丢包率。[0118]可以理解的是,源节点发送的数据包因为丢包原因可能不会被目的节点接收到,此时,源节点发送的发送数据包不一定全部会被目的节点接收到,为了方便描述,本文中,将源节点发送的数据包命名为发送数据包,目的节点接收到的部分发送数据包即为接收数据包。[0119]另外,所述基于所述预测网络参数和所述测量网络参数,获得测量残差的步骤,包括:基于所述预测网络参数和所述测量网络参数,利用公式二,获得测量残差;[0120]所述公式二为:[0121][0122]其中,y(t)为所述测量残差,为所述测量网络参数,所述测量网络参数包括测量延迟和测量丢包率,为所述预测网络参数,所述预测网络参数包括预测延迟和预测丢包率[0123]所述基于所述估计协方差矩阵,获得预测协方差矩阵的步骤,包括:基于所述估计协方差矩阵,利用公式三,获得预测协方差矩阵;[0124]所述公式三为:[0125]p(t|t‑1)=ap(t‑1|t‑1)at+q[0126]其中,p(t‑1|t‑1)为所述估计协方差矩阵,p(t|t‑1)为所述预测协方差矩阵,q=0.1e2×2,其中,e2×2为二维单位矩阵。[0127]需要说明的是,估计协方差矩阵为当前时刻(t时刻)之前的一个时刻(t‑1时刻)对应的估计协方差矩阵,基于下文描述,每一个时刻均对应一个估计协方差矩阵,每一个时刻的估计协防差矩阵均是利用上一时刻的估计协方差矩阵求得,因此,在本发明网络仿真方法的初始进行时,需要设定最初的估计协方差矩阵,即:p(t1|t0)=10000e2×2,p(t1|t0)为最初的估计协方差矩阵;同时,该时刻的初始化延迟和丢包率也会处于初始状态,即,初的估计协方差矩阵;同时,该时刻的初始化延迟和丢包率也会处于初始状态,即,其中,为初始化网络参数,包括初始化延迟和初始化丢包率。[0128]所述基于所述预测协方差矩阵,获得最佳卡尔曼增益的步骤,包括:基于所述预测协方差矩阵,利用公式四,获得最佳卡尔曼增益;[0129]所述公式四为:[0130]kg(t)=p(t|t‑1)ht(hp(t|t‑1)ht+r)‑1[0131]其中,kg(t)为所述最佳卡尔曼增益,r=e2×2;[0132]所述基于所述最佳卡尔曼增益和所述预测协方差矩阵,获得新的估计协方差矩阵的步骤,包括:基于所述最佳卡尔曼增益和所述预测协方差矩阵,利用公式五,获得新的估计协方差矩阵;[0133]所述公式五为:[0134]p(t|t)=(1‑kg(t)h)p(t|t‑1)[0135]其中,p(t|t)为所述新的估计协方差矩阵;[0136]所述基于所述测量残差、所述预测网络参数和所述卡尔曼增益,获得新的最佳估计网络参数的步骤,包括:基于所述测量残差、所述预测网络参数和所述卡尔曼增益,利用公式六,获得新的最佳估计网络参数;[0137]所述公式六为:[0138][0139]其中,为所述新的最佳估计网络参数,新的最佳估计网络参数包括新的最佳估计延迟和新的最佳估计丢包率。[0140]基于上文描述:基于最佳估计网络参数(t‑1时刻获得的最佳估计网络参数),获得预测网络参数,并基于所述测量残差、所述预测网络参数和所述卡尔曼增益,获得新的最佳估计网络参数(t时刻获得的最佳估计网络参数);同时,基于所述估计协方差矩阵(t‑1时刻获得的估计协方差矩阵),获得预测协方差矩阵,基于所述预测协方差矩阵,获得最佳卡尔曼增益,基于所述最佳卡尔曼增益和所述预测协方差矩阵,获得新的估计协方差矩阵(t时刻获得的估计协方差矩阵)。可见,对于任意一个当前时刻,均需涉及到上一时刻的最佳估计网络参数和上一时刻的估计协方差矩阵,所以,对于每一个当前时刻,利用所述新的估计协方差矩阵更新所述估计协方差矩阵,并利用所述新的最佳估计网络参数更新所述最佳估计网络参数,以利用更新后的估计协方差矩阵和更新后的最佳估计网络参数,进行当前时刻的下一时刻(t+1时刻)的估计协方差矩阵和最佳估计网络参数的求解。[0141]另外,基于所述最佳估计网络参数,获得预测网络参数;基于所述预测网络参数和所述目标网络参数,获得所述配置网络参数,可见,每一个时刻(t时刻)获得配置网络参数均是基于上一时刻(t‑1时刻)的最佳估计网络参数获得,同时,最佳估计网络参数需要用到最佳卡尔曼增益,最佳卡尔曼增益又需要用到估计协方差矩阵(t‑1时刻获得的),所以,在获得配置网络参数之后,必须要进行利用所述新的估计协方差矩阵更新所述估计协方差矩阵,并利用所述新的最佳估计网络参数更新所述最佳估计网络参数的步骤,以便于对于下一时刻(t+1时刻)的配置网络参数的求解。[0142]步骤s14:利用所述配置网络参数对所述目标网络拓扑结构进行控制。[0143]需要说明的是,参照图3所示的目标网络拓扑结构,通过链路仿真模块对其进行链路仿真控制。[0144]具体的,链路仿真模块首先获得虚拟链路仿真需求,包括延迟(所述配置网络参数中的配置延迟)、丢包率(所述配置网络参数中的配置丢包率)和带宽,即图3中过程(3)。链路仿真模块集成了tc(linuxtrafficcontrol)工具和netfilter/iptables工具,在合并来自网络节点中dhcp服务的信息(图3中过程(4))的基础上,处理原型中每个虚拟链接的特征(图1中过程(5))。链路仿真模块使用tc工具为每个虚拟链路设置带宽和延迟。[0145]更具体地说,通过htb队列和netem,采用qdisc‑class‑filter树结构来实现对流经网卡的流量的分层控制。链路仿真模块主要作用于ovs中的veth‑pair,是一对虚拟设备接口,用来设置每个虚拟网卡的带宽。带宽属性设置分为两个部分:上行和下行带宽。基于ovs网络体系结构,从虚拟nic的上传带宽流量流向qvb设备,而从qvo设备到tap设备的下载带宽流量。因此,需要为上行(下行)带宽控制设置qvb(qvo)设备。延迟的仿真是通过直接对虚拟nic进行延迟设置来实现的。[0146]参照图7,图7为本发明数据包管理的原理图。在数据包源节点的虚拟节点(即发送数据包的虚拟节点)上添加了prerouting规则。发送数据包时,遵循预设的iptables规则,框架会尝试将符合规则的数据包放入队列中。队列要接收的数据包的大小以默认值65531为上限。当数据包数量超过上限时,将执行drop‑from‑tail机制,并自动从尾部丢弃数据包。此队列用于将数据包从内核顺序传输到用户模式。基于上文中的描述获得配置网络参数中的配置丢包率,确定是否以配置丢包率值的概率丢弃数据包。当前以用户模式运行的丢包管理模块将通过netfilterqueue库中的数据包处理函数drop()和accept()执行数据包丢弃或接收。[0147]本发明技术方案提出了一种网络仿真方法,通过构建目标网络拓扑结构;获取所述目标网络拓扑结构的目标网络参数;基于所述目标网络参数和最佳估计网络参数,获得配置网络参数;利用所述配置网络参数对所述目标网络拓扑结构进行控制。[0148]现有的网络仿真方法中,直接利用设定的目标网络参数进行目标网络拓扑结构中的虚拟链路的网络参数的设定,目标网络参数是用户直接设定的值,其误差较大,使得网络仿真的真实性差。而本技术,基于目标网络参数和最佳估计网络参数,获得配置网络参数,配置网络参数消除了大量的误差,使得配置网络参数的准确率较高,从而使得网络仿真的真实性较好。所以,利用本发明的网络仿真方法,获得的配置网络参数的准确率较高,网络仿真的真实性较好。[0149]通过整合部署模块和链路仿真模块两大核心模块,实现了基于kvm和docker虚拟化技术的网络仿真系统框架,提供了实现高逼真虚拟网络仿真的能力。[0150]同时,开发了一种源主机和目的主机相结合的数据包延迟和丢失测量方案,基于iptables的数据包监控权限,通过对数据包通信过程时间戳的拼接和提取,实现对流量中数据包单向延迟和丢包信息的获取。[0151]另外,基于数据包延迟和丢包测量方案,于卡尔曼理论提出了dpkp算法(上文所述的算法部分),该算法考虑了固有的系统环境误差,提高了虚拟链路仿真中时延和丢包的仿真精度,能够做到缓解系统环境因素所带来的仿真误差,能够实现高逼真虚拟网络通信仿真。[0152]参照图8,图8为本发明网络仿真装置第一实施例的结构框图,所述装置用于终端设备,所述装置包括:[0153]构建模块10,用于构建目标网络拓扑结构;[0154]获取模块20,用于获取所述目标网络拓扑结构的目标网络参数;[0155]获得模块30,用于基于所述目标网络参数和最佳估计网络参数,获得配置网络参数;[0156]控制模块40,用于利用所述配置网络参数对所述目标网络拓扑结构进行控制。[0157]以上所述仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的
技术领域
:均包括在本发明的专利保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1