掌桥专利:专业的专利平台
掌桥专利
首页

流量仿真测试方法、仿真网络系统、电子设备及存储介质

文献发布时间:2024-04-18 19:59:31


流量仿真测试方法、仿真网络系统、电子设备及存储介质

技术领域

本发明涉及网络通信技术领域,具体而言,涉及一种流量仿真测试方法、仿真网络系统、电子设备及存储介质。

背景技术

TSN(Time Sensitive Network,时间敏感网络)技术是针对以太网所面临的实时性和可靠性问题所提出的一套可提供确定性服务的协议族,目前被广泛认为是未来工业网络的核心技术之一。TSN作为IEEE 802.1标准的一部分,它从时间同步、低时延保证、可靠性、资源管理四个方面,保证各种应用共享的桥接以太网上的时间关键和任务关键的应用数据流的服务质量要求。ATS(Asynchronous Traffic Shaping,异步流量整形)来源于IEEE802.1Qcr标准,它独立于时间同步机制,依靠每个节点的本地时钟和相关算法完成流的调度,为时间敏感流提供有界的低延迟,是TSN协议发展的一个重要方向。

目前TSN的整形机制大多基于时间同步机制实现,高度依赖网络时间同步,例如802.1Qbv提出的TAS(Time Aware Shaper,时间感知整形)机制,通过全局同步时间完成流的调度,增强了数据帧传输过程的可预测性。在TSN网络设计中,往往优先考虑802.1Qbv提出的TAS机制来保证时间敏感流的可靠性传输。主要考虑了两点因素,其一是该种整形机制比较成熟,市面上存在可实现TAS的设备;其二是目前市面上存在对TAS机制的仿真分析,可对基于时间同步的调度算法进行性能评估。

当前的仿真手段和工具,关注的是基于时间同步调度算法的仿真和性能评估,对于ATS调度机制缺少完整仿真与测试方法,也就无法对应用ATS调度的网络进行性能评估。

发明内容

有鉴于此,本申请实施例的目的在于提供一种流量仿真测试方法、仿真网络系统、电子设备及存储介质,能够改善TSN网络仿真测试覆盖度不足的问题。

为实现上述技术目的,本申请采用的技术方案如下:

第一方面,本申请实施例提供了一种流量仿真测试方法,应用于基于时间敏感网络TSN的仿真网络系统,所述仿真网络系统包括流量发生器模块、整形模块及流量接收模块,所述方法包括:

所述流量发生器模块基于历史流量数据,生成混合流量数据;

当所述流量发生器模块接收到预设的帧指令时,所述流量发生器模块将所述混合流量数据输入至所述整形模块;

所述整形模块基于预设的ATS算法,将所述混合流量数据中允许发送的数据帧发送至所述流量接收模块;

所述流量接收模块基于所接收的所述数据帧,得到测试结果,所述测试结果包括所述数据帧的延迟信息。

结合第一方面,在一些可选的实施方式中,所述整形模块基于预设的ATS算法,将所述混合流量数据中允许发送的数据帧发送至所述流量接收模块,包括:

初始化T

当所述混合流量数据中的数据帧到达预先创建的整形队列时,记录当前时间为数据帧的到达时刻T

当T

当T

结合第一方面,在一些可选的实施方式中,更新参数T

若T

若T

结合第一方面,在一些可选的实施方式中,在所述流量发生器模块根据历史流量数据,生成混合流量数据之前,所述方法还包括:

通过仿真工具创建所述流量发生器模块、所述整形模块及所述流量接收模块。

结合第一方面,在一些可选的实施方式中,所述流量发生器模块包括流量源模块,所述流量源模块用于在初始化后,生成表征帧起始的第一定时消息和表征帧终止的第二定时消息,所述第一定时消息携带有表示数据帧的开始发送时间,所述第二定时消息携带有表示数据帧的终止发送时间。

结合第一方面,在一些可选的实施方式中,所述整形模块包括调度器模块,所述调度器模块用于在初始化后,且在接收到所述预设的帧指令时,基于所述ATS算法确定允许发送时刻、驻留时间及允许发送的数据帧。

结合第一方面,在一些可选的实施方式中,所述流量发生器模块、所述整形模块及所述流量接收模块均包括函数initialize(),所述函数initialize()用于模块初始化;

所述整形模块包括函数handleMessage(),所述函数handleMessage()用于对数据帧解析、转发及基于所述ATS算法确定数据帧的允许发送时刻及驻留时间;

所述流量接收模块包括函数finish(),所述函数finish()用于记录在接收数据帧的过程中收集的统计信息。

结合第一方面,在一些可选的实施方式中,所述流量发生器模块基于历史流量数据,生成混合流量数据,包括:

所述流量发生器模块模拟生成包含与所述历史流量数据中的所有数据类型相同的流量数据,以作为所述混合流量数据。

第二方面,本申请实施例还提供一种仿真网络系统,所述系统包括流量发生器模块、整形模块及流量接收模块;

所述流量发生器模块用于基于历史流量数据,生成混合流量数据;

当所述流量发生器模块接收到预设的帧指令时,所述流量发生器模块还用于将所述混合流量数据输入至所述整形模块;

所述整形模块用于基于预设的ATS算法,将所述混合流量数据中允许发送的数据帧发送至所述流量接收模块;

所述流量接收模块用于基于所接收的数据帧,得到测试结果,所述测试结果包括数据帧的延迟信息。

结合第二方面,在一些可选的实施方式中,所述整形模块还用于:

初始化T

当所述混合流量数据中的数据帧到达预先创建的整形队列时,记录当前时间为数据帧的到达时刻T

当T

当T

结合第二方面,在一些可选的实施方式中,所述整形模块包括调度器模块,所述调度器模块用于在初始化后,且在接收到所述预设的帧指令时,基于所述ATS算法确定允许发送时刻、驻留时间及允许发送的数据帧。

结合第二方面,在一些可选的实施方式中,所述流量发生器模块、所述整形模块及所述流量接收模块均包括函数initialize(),所述函数initialize()用于模块初始化;

所述整形模块包括函数handleMessage(),所述函数handleMessage()用于对数据帧解析、转发及基于所述ATS算法确定数据帧的允许发送时刻及驻留时间;

所述流量接收模块包括函数finish(),所述函数finish()用于记录在接收数据帧的过程中收集的统计信息。

第三方面,本申请实施例还提供一种电子设备,所述电子设备包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行上述的方法。

第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的方法。

采用上述技术方案的发明,具有如下优点:

在本申请提供的技术方案中,在基于TSN的仿真网络系统中,流量发生器模块基于历史流量数据,模拟生成混合流量数据;整形模块基于预设的ATS算法,将混合流量数据中允许发送的数据帧发送至流量接收模块;流量接收模块基于所接收的数据帧,得到测试结果,测试结果包括数据帧的延迟信息。如此,在基于TSN的仿真网络系统中,根据历史数据产生的混合流量数据,能针对不同的应用场景对ATS的参数进行配置及仿真,以此来进行网络性能评估,从而能覆盖TSN流量仿真测试场景,进而能改善目前TSN仿真测试覆盖度不足的问题。

附图说明

本申请可以通过附图给出的非限定性实施例进一步说明。应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的流量仿真测试方法的流程示意图。

图2为本申请实施例提供的仿真网络系统的框图。

图3为本申请实施例提供的仿真模块的结构示意图。

图4为本申请实施例提供的仿真模块构建的流程示意图。

图5为本申请实施例提供的流量发生器模块的工作流程示意图。

图6为本申请实施例提供的整形模块的工作流程示意图。

图7为本申请实施例提供的流量接收模块的工作流程示意图。

具体实施方式

以下将结合附图和具体实施例对本申请进行详细说明,需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

第一实施例

本申请实施例提供一种电子设备,电子设备可以包括处理模块及存储模块。存储模块内存储计算机程序,当计算机程序被所述处理模块执行时,使得电子设备能够执行下述流量仿真测试方法中的相应步骤。其中,电子设备搭建有基于TSN(Time SensitiveNetwork,时间敏感网络)的仿真网络系统,电子设备可以是但不限于个人电脑、服务器等设备。

请参照图1,目前已经有的TSN协议软件仿真工具还没有对ATS(AsynchronousTraffic Shaping,异步流量整形)算法进行仿真的功能,本申请实施例还提供一种流量仿真测试方法,可以应用于基于TSN的仿真网络系统,可以在TSN仿真网络系统对ATS算法的效果进行仿真测试。仿真网络系统需模拟数据流从产生到到达目标节点的过程,包括流量发生器模块(指模拟的源节点)、整形模块(指模拟的中间节点)、流量接收模块(指模拟的目标节点)。源节点产生流量数据,目标节点接收流量数据。中间节点可被看作二层网桥设备,对出口流量做整形处理,实现数据流的分类、过滤、整形、排队等功能。本方法可以适用于一般类型流量的仿真,对数据流没有特殊要求,对希望评估ATS算法实施效果的数据流均可进行评估。

在本实施例中,流量仿真测试方法可以包括如下步骤:

步骤110,流量发生器模块基于历史流量数据,生成混合流量数据;

步骤120,当所述流量发生器模块接收到预设的帧指令时,所述流量发生器模块将所述混合流量数据输入至整形模块;

步骤130,所述整形模块基于预设的ATS算法,将所述混合流量数据中允许发送的数据帧发送至流量接收模块;

步骤140,所述流量接收模块基于所接收的所述数据帧,得到测试结果,所述测试结果包括所述数据帧的延迟信息。

下面将对流量仿真测试方法的各步骤进行详细阐述,如下:

在步骤110之前,方法还可以包括:

通过仿真工具创建所述流量发生器模块、所述整形模块及所述流量接收模块。

在本实施例中,仿真工具可以为基于Eclipse平台的OMNeT++工具,OMNeT++工具作为面向对象的模块化离散事件仿真工具,它本身并不是任何具体的实物,OMNeT++工具主要用于提供基础的仿真类库。OMNeT++工具可以将仿真任务分解为单独的离散事件,再将离散事件对应的简单模块组合起来,形成一个具有实际意义的仿真模块(如流量发生器模块、整形模块及流量接收模块)。其中,OMNeT++模型由分层嵌套模块组成。

作为一种示例,仿真模块的结构可以如图3所示。仿真模块可以包括复合模块及简单模块,仿真模块之间连接构成网络拓扑关系。其中,复合模块中包括多个子模块,复合模块中的子模块中包含Gate,作为通信的接口。Gate之间通过Channel连接,模块通信的载体是Message和Signal,Message通过Channel传输。Signal类似于“无线信号”,可以直接发送到另一个订阅了Signal的仿真模块。其中,每个复合模块是一个独立的子系统。

在本实施例中,流量发生器模块和整形模块均为复合模块,流量接收模块为简单模块。比如,流量发生器模块中包括用于模拟生成不同数据类型的流量源模块,每个流量源模块即为流量发生器模块中的一个子模块。

作为一种示例,仿真模块构建的流程如图4所示。使用NED(Network descriptionlanguage,网络描述语言)描述仿真模块的模型结构,NED允许用户声明简单模块,并将它们组合成复合模块,还可以将一些复合模块和简单模块标记为网络。简单模块中包含模块的参数、对应的数据单位、模块上的Gate数量和状态。复合模块除了简单模块包含的部分外,还需要声明子模块。网络中声明需要使用的简单和复合模块,定义Channel的速率、延迟、信道类型等参数,再将子模块或仿真模块通过Channel连接。

模块功能定义文件由C++源文件组成,定义了一个继承OMNeT++仿真类库中基本模块类,cModule与cSimpleModule的C++类。模块实现功能需要重写基本模块类中的虚函数,如下:

函数initialize():在创建子模块(或仿真模块)后被调用,用于初始化子模块(或仿真模块)的参数;

函数handleMessage():包含子模块(或仿真模块)的内部逻辑,当子模块(或仿真模块)接收到消息时,仿真工具中的模拟内核调用handleMessage(),其中,对数据帧进行解析(如MAC地址、VLAN等信息)、转发、ATS算法实现都在该函数handleMessage()内执行;

函数finish():当仿真网络的模拟测试成功终止时,将调用函数finish(),函数finish()用于记录在模拟过程中收集的统计信息。

在本实施例中,所述流量发生器模块、所述整形模块及所述流量接收模块均包括函数initialize(),所述函数initialize()用于模块初始化。所述整形模块包括函数handleMessage(),所述函数handleMessage()用于对数据帧解析、转发及基于所述ATS算法确定数据帧的允许发送时刻及驻留时间。所述流量接收模块包括函数finish(),所述函数finish()用于记录在接收数据帧的过程中收集的统计信息。

在本实施例中,仿真模块的通信载体是Messsage。即,若要实现数据帧的功能,则需要为Message添加附加信息,这部分可以在消息定义中实现。附加信息主要是帧的结构,如帧的MAC地址、VLAN等信息。消息定义的文件保存后,自动经过opp_msgc(消息编译器)生成C++类,可在模块功能定义文件中调用。仿真配置是一个ASCII文本文件,通过ASCII文本文件可以对每个模块分配初始值(该初始值可以根据实际情况灵活确定),并针对整个仿真网络进行仿真时间、仿真参数记录、并行仿真等配置。

所述流量发生器模块包括流量源模块,所述流量源模块用于在初始化后,生成表征帧起始的第一定时消息和表征帧终止的第二定时消息,所述第一定时消息携带有表示数据帧的开始发送时间,所述第二定时消息携带有表示数据帧的终止发送时间。其中,开始发送时间与终止发送时间可以根据实际情况灵活设置。

在步骤110中,基于历史流量数据,生成混合流量数据,包括:

所述流量发生器模块模拟生成包含与所述历史流量数据中的所有数据类型相同的流量数据,以作为所述混合流量数据。

可理解地,流量发生器模块可以基于包含有不同数据类型的历史流量数据,通过不同的流量源模块,生成相应数据类型的新的流量数据,以作为混合流量数据。即,在混合流量数据中,包含有与历史流量数据的所有数据类型相同的流量数据,如此,使得模拟生成的流量数据与实际流量数据相接近,进而使得仿真的网络场景更为贴合实际网络场景。

作为一种示例,流量发生器模块的工作流程可以参见图5,仿真开始时,仿真工具的仿真内核根据配置参数自动生成相应数量和类型的流量源模块,以形成流量发生器模块。不同类型的流量源模块可以用于模拟生成不同数据类型的流量数据。

流量发生器模块初始化后,进入等待状态,收到帧指令后,从输出端口发送至整形模块,再返回等待状态。

流量源模块创建后,自动初始化参数,向模块自身发送两条定时消息——帧起始和帧终止消息。设当前时间t

在步骤120中,预设的帧指令可以根据实际情况灵活设置,用于触发流量发生器模块将流量数据发送至整形模块。

整形模块包括调度器模块,所述调度器模块用于在初始化后,且在接收到所述预设的帧指令时,基于所述ATS算法确定允许发送时刻、驻留时间及允许发送的数据帧。

可理解地,整形模块可以模拟ATS算法的工作机制,用于计算数据帧的允许发送时刻和驻留时间,以及判断数据帧是否允许传输。ATS算法的工作机制保留原始的令牌桶概念,在判断发送条件时,不是以令牌数量为标准,而是以计算帧的允许发送时刻T

在本实施例中,步骤130可以包括:

步骤131,初始化T

步骤132,当所述混合流量数据中的数据帧到达预先创建的整形队列时,记录当前时间为数据帧的到达时刻T

步骤133,当T

步骤134,当T

在步骤134中,更新参数T

若T

若T

在本实施例中,整形模块可以记录或计算得到数据帧的到达时刻T

作为一种示例,整形模块的工作流程可以如图6所示。首先,仿真开始时,仿真工具的仿真内核根据配置参数自动生成相应数量的调度器模块,以形成整形模块。整形模块中的各模块初始化后,进入等待状态,等待上游节点(流量发生器模块)发送的(数据)帧到达。当调度器模块收到帧格式的消息时,记录当前时间为帧的到达时刻T

若允许发送时刻T

在本实施例中,ATS算法的工作流程如下表1。可理解地,表1所示的ATS算法的逻辑如下:

首先初始化T

接着,进行帧的处理和整形。帧到达整形队列时,计算令牌桶的充满时刻T

判断T

若T

若T

表1:

在步骤140中,流量接收模块的工作流程可以如图7所示。首先,在仿真开始时,仿真内核根据配置参数自动生成流量接收模块;然后,在模块初始化后,进入等待状态,等待上游节点发送的帧到达。当流量接收模块收到帧格式的消息时,记录当前时间为帧的arrival time(即为T

基于上述设计,方法可以适用于车载以太网和工业互联网中的TSN,具体地,可以适用于包含异步流量的混合组网场景,能够基于数据链路层数据,根据历史流量数据产生ATS流量(混合流量数据),针对不同的应用场景对ATS参数进行配置及仿真,以此来进行网络性能评估,能够改善TSN仿真覆盖度不足的问题,使得ATS算法能在TSN网络中发挥作用,以通过ATS算法提高数据传输效率。另外,通过仿真测试,无需搭建基于TSN的实体网络系统来进行测试,有利于降低测试成本,提高测试效率。

第二实施例

请参照图2,本申请实施例还提供一种仿真网络系统,可以用于执行或实现上述的流量仿真测试方法。仿真网络系统包括至少一个可以软件或固件(Firmware)的形式存储于存储模块中或固化在电子设备操作系统(Operating System,OS)中的软件功能模块。电子设备中的处理模块用于执行存储模块中存储的可执行模块,例如仿真网络系统所包括的软件功能模块及计算机程序等。

在本实施例中,仿真网络系统可以包括流量发生器模块、整形模块及流量接收模块。

所述流量发生器模块用于基于历史流量数据,生成混合流量数据;

当所述流量发生器模块接收到预设的帧指令时,所述流量发生器模块还用于将所述混合流量数据输入至所述整形模块;

所述整形模块用于基于预设的ATS算法,将所述混合流量数据中允许发送的数据帧发送至所述流量接收模块;

所述流量接收模块用于基于所接收的数据帧,得到测试结果,所述测试结果包括数据帧的延迟信息。

可选地,整形模块还可以用于:

初始化T

当所述混合流量数据中的数据帧到达预先创建的整形队列时,记录当前时间为数据帧的到达时刻T

当T

当T

可选地,整形模块更新参数T

若T

若T

可选地,所述流量发生器模块可以包括流量源模块,所述流量源模块用于在初始化后,生成表征帧起始的第一定时消息和表征帧终止的第二定时消息,所述第一定时消息携带有表示数据帧的开始发送时间,所述第二定时消息携带有表示数据帧的终止发送时间。

可选地,整形模块可以包括调度器模块,所述调度器模块用于在初始化后,且在接收到所述预设的帧指令时,基于所述ATS算法确定允许发送时刻、驻留时间及允许发送的数据帧。

可选地,流量发生器模块、所述整形模块及所述流量接收模块均包括函数initialize(),所述函数initialize()用于模块初始化;

所述整形模块包括函数handleMessage(),所述函数handleMessage()用于对数据帧解析、转发及基于所述ATS算法确定数据帧的允许发送时刻及驻留时间;

所述流量接收模块包括函数finish(),所述函数finish()用于记录在接收数据帧的过程中收集的统计信息。

可选地,所述流量发生器模块用于模拟生成包含与所述历史流量数据中的所有数据类型相同的流量数据,以作为所述混合流量数据。

在本实施例中,处理模块可以是一种集成电路芯片,具有信号的处理能力。上述处理模块可以是通用处理器。例如,该处理器可以是中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processing,DSP)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。

存储模块可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,存储模块可以用于存储历史流量数据、ATS算法、测试结果等。当然,存储模块还可以用于存储程序,处理模块在接收到执行指令后,执行该程序。

需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的仿真网络系统及电子设备的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。

本申请实施例还提供一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的流量仿真测试方法。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本申请各个实施场景所述的方法。

综上所述,本申请实施例提供一种流量仿真测试方法、仿真网络系统、电子设备及存储介质。在本方案中,流量发生器模块基于历史流量数据,生成混合流量数据;当流量发生器模块接收到预设的帧指令时,流量发生器模块将混合流量数据输入至整形模块;整形模块基于预设的ATS算法,将混合流量数据中允许发送的数据帧发送至流量接收模块;流量接收模块基于所接收的数据帧,得到测试结果,测试结果包括数据帧的延迟信息。如此,根据历史数据产生的混合流量数据,能针对不同的应用场景对ATS的参数进行配置及仿真,以此来进行网络性能评估,从而能改善TSN仿真测试覆盖度不足的问题。

在本申请所提供的实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种干粉吸入器的流速侦测装置
  • 一种用于制造干粉灭火器喷管的复合材料及用其制造喷管的方法
  • 一种热交换器及其制造方法和热交换模块及其制造方法
  • 一种应用于连铸结晶器的增材制造结构及增材制造方法和装置
  • 一种气雾剂吸入驱动器的喷孔光学批量检测设备及方法
  • 干粉吸入器、相关泡状体装置以及分配干粉物质和制造泡状体包装的相关方法
  • 一种可检测吸药流速的干粉吸入器外壳及干粉吸入器
技术分类

06120116519049