CN112714047A - 基于工控协议流量的测试方法、装置、设备及存储介质 - Google Patents
基于工控协议流量的测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112714047A CN112714047A CN202110329891.5A CN202110329891A CN112714047A CN 112714047 A CN112714047 A CN 112714047A CN 202110329891 A CN202110329891 A CN 202110329891A CN 112714047 A CN112714047 A CN 112714047A
- Authority
- CN
- China
- Prior art keywords
- industrial control
- control protocol
- tested
- packet
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本申请提供一种基于工控协议流量的测试方法、装置、设备及存储介质,加载有数据平面开发套件DPDK程序的测试设备获取目标工控协议对应的源工控协议流量包,对源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,然后将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收待测工控网络设备返回的至少一个反馈数据包,最后根据至少一个测试数据包的发送信息和至少一个反馈数据包的接收信息,确定待测工控网络设备的测试结果。该技术方案中,无需调用Linux内核进行网络数据处理,提高了数据处理效率,扩展了工控协议流量的种类,解决了测试对象单一性的问题。
Description
技术领域
本申请涉及测试技术领域,尤其涉及一种基于工控协议流量的测试方法、装置、设备及存储介质。
背景技术
工业控制系统的现场网络与控制网络之间的通信、现场网络各工控设备之间的通信、控制网络各组件的通信往往采用工业控制系统特有的通信协议,这些通讯协议统称为工控协议。为保障工业控制系统的安全稳定运行,国内各个网络设备厂商基于工控协议推出一系列相关工控网络设备,如工控防火墙、入侵防护系统等产品,为了保证工控网络设备的性能,在使用推广使用之前,通常需要对工控网络设备的性能进行测试。
相关技术中,通常使用流量重放工具对工控网络设备进行测试。具体的,流量重放工具大多基于Linux内核进行网络数据处理,也即,用户态应用程序想要获取系统资源要获取系统资源或传输网络信息,需要首先调用Linux系统调用进入内核态,在内核态访问待测试的工控网络设备,再把处理结果拷贝给用户态应用程序,进而由用户态应用程序根据处理结果确定工控网络设备的性能。
然而,上述技术方案中,由于Linux内核的协议栈在处理网络数据时可能发生频繁的中断处理、内存拷贝等操作,导致数据处理效率低,而且,现有方案仅能利用已有工控协议对工控网络设备进行测试,无法满足工控网络设备多样化的测试需求。即现有方案存在数据处理低、测试对象单一的问题。
发明内容
本申请提供一种基于工控协议流量的测试方法、装置、设备及存储介质,用以解决现有工控网络设备的测试过程中存在的数据处理效率低、测试对象单一的问题。
根据本申请的第一方面,本申请提供一种基于工控协议流量的测试方法,应用于加载有数据平面开发套件DPDK程序的测试设备,所述方法包括:
获取目标工控协议对应的源工控协议流量包;
对所述源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,所述目标报文字段包括如下至少一种:工控协议指令字段、功能码字段;
将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收所述待测工控网络设备返回的至少一个反馈数据包,每个反馈数据包是经过所述待测工控网络设备转发或处理的测试数据包;
根据所述至少一个测试数据包的发送信息和所述至少一个反馈数据包的接收信息,确定所述待测工控网络设备的测试结果。
在第一方面的一种可能设计中,所述对所述源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,包括:
对所述源工控协议流量包进行解析,确定所述源工控协议流量包的多个报文字段;
根据所述工控网络设备的类型和测试目的,对所述多个报文字段中的目标报文字段进行修改,得到至少一种待测工控协议流量包。
在第一方面的另一种可能设计中,在所述将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备之前,所述方法还包括:
按照所述源工控协议流量包中报文传输方向,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
可选的,所述按照所述源工控协议流量包中报文传输方向,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包,包括:
根据所述源工控协议流量包中报文传输方向,确定流量方向识别方式,所述流量方向识别方式为如下方式中的任意一种:自动识别方式、基于源网际互连协议IP地址的识别方式、基于源媒体接入控制MAC地址的识别方式;
基于所述流量方向识别方式,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
可选的,所述基于所述流量方向识别方式,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包,包括:
在所述流量方向识别方式为自动识别方式时,根据每种待测工控协议流量包中的数据包是否满足预设目标行为,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包;
在所述流量方向识别方式为基于源IP地址的识别方式时,根据每种待测工控协议流量包中数据包的源IP地址是否位于预设源IP地址范围内,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包;
在所述流量方向识别方式为基于源MAC地址的识别方式时,根据每种待测工控协议流量包中数据包的源MAC地址位于预设源MAC地址范围内,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包。
在第一方面的再一种可能设计中,在所述将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备之前,所述方法还包括:
根据所述待测工控网络设备的被测指标信息,对所述至少一种待测工控协议流量包进行预处理,所述预处理包括如下操作中的任意一种:查询、删除、禁用。
在第一方面的又一种可能设计中,所述将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,包括:
根据每种待测工控协议流量包的存储位置,依次将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备。
根据本申请的第二方面,本申请提供一种基于工控协议流量的测试装置,应用于加载有数据平面开发套件DPDK程序的测试设备,所述装置包括:
获取模块,用于获取目标工控协议对应的源工控协议流量包;
处理模块,用于对所述源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,所述目标报文字段包括如下至少一种:工控协议指令字段、功能码字段;
收发模块,用于将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收所述待测工控网络设备返回的至少一个反馈数据包,每个反馈数据包是经过所述待测工控网络设备转发或处理的测试数据包;
所述处理模块,还用于根据所述至少一个测试数据包的发送信息和所述至少一个反馈数据包的接收信息,确定所述待测工控网络设备的测试结果。
在第二方面的一种可能设计中,所述处理模块,具体用于:
对所述源工控协议流量包进行解析,确定所述源工控协议流量包的多个报文字段;
根据所述工控网络设备的类型和测试目的,对所述多个报文字段中的目标报文字段进行修改,得到至少一种待测工控协议流量包。
在第二方面的另一种可能设计中,所述处理模块,还用于按照所述源工控协议流量包中报文传输方向,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
可选的,所述处理模块,具体用于:
根据所述源工控协议流量包中报文传输方向,确定流量方向识别方式,所述流量方向识别方式为如下方式中的任意一种:自动识别方式、基于源网际互连协议IP地址的识别方式、基于源媒体接入控制MAC地址的识别方式;
基于所述流量方向识别方式,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
可选的,所述处理模块,具体用于:
在所述流量方向识别方式为自动识别方式时,根据每种待测工控协议流量包中的数据包是否满足预设目标行为,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包;
在所述流量方向识别方式为基于源IP地址的识别方式时,根据每种待测工控协议流量包中数据包的源IP地址是否位于预设源IP地址范围内,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包;
在所述流量方向识别方式为基于源MAC地址的识别方式时,根据每种待测工控协议流量包中数据包的源MAC地址位于预设源MAC地址范围内,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包。
在第二方面的再一种可能设计中,所述处理模块,还用于根据所述待测工控网络设备的被测指标信息,对所述至少一种待测工控协议流量包进行预处理,所述预处理包括如下操作中的任意一种:查询、删除、禁用。
在第二方面的又一种可能设计中,所述收发模块,具体用于根据每种待测工控协议流量包的存储位置,依次将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备。
根据本申请的第三方面,本申请提供一种基于工控协议流量的测试设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述第一方面各种可能设计所述的基于工控协议流量的测试方法。
根据本申请的第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述第一方面各种可能设计所述的基于工控协议流量的测试方法。
根据本申请的第五方面,本申请提供一种计算机程序产品,包括:计算机程序,所述计算机程序产品存储在可读存储介质中,测试设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得测试设备执行第一方面各种可能设计所述的方法。
本申请提供的基于工控协议流量的测试方法、装置、设备及存储介质,加载有DPDK程序的测试设备获取目标工控协议对应的源工控协议流量包,对源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,然后将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收所述待测工控网络设备返回的至少一个反馈数据包,最后根据至少一个测试数据包的发送信息和至少一个反馈数据包的接收信息,确定待测工控网络设备的测试结果。该技术方案中,无需调用Linux内核进行网络数据处理,避免了数据处理过程中的中断、内存拷贝等操作,提高了数据处理效率,而且,扩展了工控协议流量的种类,从而能够满足工控网络设备多样性的需求,解决了测试对象单一性的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的基于工控协议流量的测试系统的一种架构示意图;
图2为本申请实施例提供的基于工控协议流量的测试系统的另一种架构示意图;
图3为本申请实施例提供的基于工控协议流量的测试系统的再一种架构示意图;
图4为本申请实施例提供的基于工控协议流量的测试方法实施例一的流程示意图;
图5为本申请实施例提供的基于工控协议流量的测试方法实施例二的流程示意图;
图6为本申请实施例提供的基于工控协议流量的测试装置的一种实施例的结构示意图;
图7为本申请实施例提供的基于工控协议流量的测试装置的另一种实施例的结构示意图;
图8为本申请实施例提供的基于工控协议流量的测试设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
工业控制系统(industrial control systems,ICS),简称工控系统,是由各种自动化控制组件以及对实时数据进行采集、监测的过程控制组件共同构成的、确保工业基础设施自动化运行、过程控制与监控的业务流程管控系统。工业控制系统的现场网络与控制网络之间的通信、现场网络各工控设备之间的通信、控制网络各组件的通信往往采用工业控制系统特有的通信协议,这些通讯协议统称为工控协议。
工控协议除了包括标准协议(国际标准或公认的标准协议,例如,Modbus、DNP3),还包括大多数的私有协议,例如,私有公开协议(只有厂商自己设备支持并提供官方协议文档)和私有不公开协议(只有厂商自己设备支持且官方不提供协议文档)。由于私有协议的协议格式并未公开,因而,不论是私有公开协议还是私有不公开协议都具有一定的未知性。
近年来,随着对工业互联网创新发展的高度重视,大力推进5G网络、工业互联网等新型基础设施建设进度,作为新型基础设施的重要组成部分,工业互联网将会进一步加速发展。随着工业互联网的建设进度不断加快,保障工业控制系统的安全稳定运行是发展的重要前提。为保障工业控制系统的安全稳定运行,国内各个网络设备厂商推出一系列相关工控网络设备,如工控防火墙、入侵防护系统等产品,然而对工控通讯协议模拟及相关工控网络设备的测试方面还比较薄弱。
根据背景技术中介绍的内容可知,现有技术中通常使用流量重放工具对工控网络设备进行测试,而流量重放工具大多基于Linux内核进行网络数据处理,Linux内核的协议栈在网络包处理时可能发生频繁的中断处理、内存拷贝等操作,其会严重影响网络包的收发性能,导致其发包速率无法满足当前高速网络,而且,用户态应用程序发送一段网络信息,要进行一次用户态和内核态的状态切换,经历两次内存拷贝,跨过文件系统、路由、访问策略等几次系统锁,才能从网卡上发出,导致报文处理效率低。
此外,在实际应用中工控设备之间的通讯都是有状态的交互过程,也即,工控网络设备之间的通信是有顺序的,但是现有技术中流量重放仅是流量的简单重发,没有先后顺序,无法确定重放的流量对应的工控协议和协议栈,从而无法理解协议栈和工控协议交互状,从而无法对协议进行深度解析以及扩展定制,进而无法满足对相关工控网络设备多样化测试需求。
针对上述技术问题,本申请技术方案的构思过程如下:一方面,由于传统的应用程序都运行在用户态空间,如果本方案的工控协议流量重放也在用户态进行从而绕过Linux内核态协议栈,这样测试设备在接收和发送网络数据时,无CPU中断,无内存拷贝的过程,从而可以大大提升报文处理效率。另一方面,如果可以对现有工控协议流量进行修改产生不同功能的工控协议流量,这样可以满足待测工控网络设备多样性的测试需求,能够解决测试对象单一的问题。
基于上述技术构思,本申请提供了一种基于工控协议流量的测试方法,应用于加载有数据平面开发套件(data plane development kit,DPDK)程序的测试设备,该测试设备可以获取目标工控协议对应的源工控协议流量包,对源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,且,该目标报文字段包括如下至少一种:工控协议指令字段、功能码字段,随后可以将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收所述待测工控网络设备返回的至少一个反馈数据包,每个反馈数据包是经过所述待测工控网络设备转发或处理的测试数据包,最后根据至少一个测试数据包的发送信息和至少一个反馈数据包的接收信息,确定待测工控网络设备的测试结果。该技术方案中,基于加载有DPDK程序的测试设备进行处理,无需调用Linux内核进行网络数据处理,避免了数据处理过程中的中断、内存拷贝等操作,提高了数据处理效率,而且,该方案中可以通过对目标报文字段进行修改能够生成待测工控协议流量包,扩展了工控协议流量的种类,从而能够满足工控网络设备多样性的需求,解决了测试对象单一性的问题。
下面在介绍本申请的技术方案之前,首先对本申请具体的应用场景进行解释介绍。
图1为本申请实施例提供的基于工控协议流量的测试系统的一种架构示意图。如图1所示,该测试系统可以包括:测试设备11和待测工控网络设备12。
在本申请的实施例中,测试设备11可以通过不同的方式获取到源工控协议流量包,因而,在有工控网络设备的测试需求时,测试设备11可以对源工控协议流量包的工控协议指令字段、功能码字段等目标报文字段进行有针对性的修改,生成至少一种待测工控协议流量包。
可选的,测试设备11是加载有DPDK程序的设备,其可以通过DPDK程序实现对待测工控协议流量的收发。具体的,测试设备11可以根据测试需求将至少一种待测工控协议流量包中某些待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备12,该待测工控网络设备12接收到至少一个测试数据包后,可以对其处理后发送或者直接转发给该测试设备11,或者,待测工控网络设备12也可以对接收到的至少一个测试数据包处理后直接丢弃等,本申请实施例并不限定待测工控网络设备12的具体处理方案,其可以根据实际场景确定,此处不作赘述。
可选的,测试设备11可以统计发出出去的至少一个测试数据包的发送信息和从待测工控网络设备接收到的至少一个反馈数据包的接收信息,进而根据至少一个测试数据包的发送信息和至少一个反馈数据包的接收信息,确定待测工控网络设备的测试结果。
可选的,图2为本申请实施例提供的基于工控协议流量的测试系统的另一种架构示意图。图2所示的测试系统与图1所示的测试系统相比,如图2所示,该测试系统除了包括测试设备11和待测工控网络设备12之外,还可以包括:服务器13和终端设备14。该服务器13和终端设备14是产生源工控协议流量包的端设备。
在本实施例中,该测试设备11上安装有数据采集软件,通过将该测试设备11接入到服务器13和终端设备14之间的通信链路上,该测试设备11便可以在服务器13和终端设备14通信时,采集源工控协议流量包。
可选的,图3为本申请实施例提供的基于工控协议流量的测试系统的再一种架构示意图。图3所示的测试系统与图2所示的测试系统相比,如图3所示,该测试系统除了包括测试设备11、待测工控网络设备12、服务器13和终端设备14之外,该测试系统还可以包括数据采集设备15。该数据采集设备15上安装有数据采集软件,并接入在服务器13和终端设备14之间的通信链路上,因而,该数据采集设备15可以在服务器13和终端设备14通信时,采集源工控协议流量包。
可以理解的是,在上述图1至图3所示的架构还可以包括其他设备,例如,显示设备,该显示设备可以与测试设备11连接,在显示设备接收到该测试设备11发送的待测工控网络设备12的测试结果时,对该测试结果进行展示。
需要说明的是,图1至图3仅是本申请实施例提供的几种架构示意图,本申请实施例不对图1至图3中包括的设备进行限定,也不对图1至图3中设备之间的位置关系进行限定,显示设备的显示功能可以集成在测试设备11上,即测试设备11在得到测试结果后,便可以直接对其进行展示,此处不作赘述。
在实际应用中,由于终端设备和服务器均可以是加载有DPDK程序且具有测试功能的处理设备,因而,上述图1至图3所示测试系统中的测试设备既可以通过终端设备实现,也可以通过服务器实现,本申请实施例以基于工控协议流量的测试方法的执行主体为加载有DPDK程序的测试设备进行解释说明。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图4为本申请实施例提供的基于工控协议流量的测试方法实施例一的流程示意图。该方法应用于加载有数据平面开发套件DPDK程序的测试设备。如图4所示,该基于工控协议流量的测试方法可以包括如下步骤:
S401、获取目标工控协议对应的源工控协议流量包。
在本申请的实施例中,测试设备可以获取原始工控协议流量,该原始工控协议流量可能是基于多种工控协议产生的流量,通过对原始工控协议流量进行筛选,得到目标工控协议对应的源工控协议流量包,从而将无关的流量过滤掉。
在一种可能的设计中,测试设备上安装有网络数据采集软件,这时,测试设备便可以采集原始工控协议流量。在另一种可能的设计中,测试设备能够与安装有网络数据采集软件的数据采集设备进行通信,在该数据采集设备采集原始工控协议流量后,该测试设备可以从该数据采集设备获取原始工控协议流量。
在本申请的实施例中,源工控协议流量包以pcap文件格式保存。该pcap文件格式是常用的数据包存储格式,主流的网络数据采集软件(即抓包软件,例如,wireshark)都可以生成pcap文件格式的数据包。
具体的,pcap文件有固定的基本格式:pcap文件头-数据包头1-数据包1-数据包头2-数据包2等形式。其中,每个pcap文件具有一个pcap文件头,总共占24字节;每个pcap文件可以具有多个数据包头,每个数据包头后面都跟着真正的数据包,通常数据包头为16字节。
可以理解的是,在源工控协议流量包的数量为多个时,源工控协议流量包还可以以文件压缩格式,例如,zip文件类型存储,每个zip文件类型中的压缩内容为一个或多个pcap文件。本申请实施例并不对源工控协议流量包的具体存储格式进行限定,其可以根据源工控协议流量包的数量确定,此处不作赘述。
S402、对源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包。
其中,该目标报文字段包括如下至少一种:工控协议指令字段、功能码字段。
可选的,测试设备在获取到目标工控协议对应的源工控协议流量包后,便可以基于源工控协议流量包的文件类型对源工控协议流量包进行解析,得到源工控协议流量包的内容信息,并存入至数据库,以便后续根据实际需要对源工控协议流量包的目标报文字段进行修改,以生成至少一种待测工控协议流量包。
示例性的,在本申请的实施例中,该S402可以通过步骤实现:
A1、对源工控协议流量包进行解析,确定源工控协议流量包的多个报文字段。
A2、根据工控网络设备的类型和测试目的,对多个报文字段中的目标报文字段进行修改,得到至少一种待测工控协议流量包。
示例性的,对于pcap文件格式的源工控协议流量包,测试设备可以使用计算机编程语言python程序对源工控协议流量包进行解析,获取源工控协议流量包的内容信息,确定源工控协议流量包的多个报文字段。
可选的,对源工控协议流量包进行解析可以得到多个报文字段,进而得到用于测试目的的多个数据包,多个数据包作为待测工控协议流量包可以被存储于数据库的重放报文文件路径,以便测试设备后续可以基于数据包在数据库中的存储路径执行数据包的发送。
在其中一个实施例中,测试设备可以对源工控协议流量包的指定报文字段进行修改生成待测工控协议流量包。
示例性的,测试设备还可以基于测试需求、工控网络设备的类型和测试目的等,对源工控协议流量包中的目标报文字段进行修改,从而扩展定制一些待测工控协议流量包。可选的,该目标报文字段可以包括但不限于工控协议指令、功能码、报文长度等字段,其可以根据实际需求确定。在本实施例中,利用产生的待测工控协议流量包对待测工控网络设备进行重放测试时,可以检测待测工控网络设备的处理情况。
进一步的,在本申请的实施例中,测试设备还可以对生成的待测工控协议流量包进行管理、组合,以得到重放PCAP对象。该重放PCAP对象可以包括多个待测工控协议流量包,其能够在基于DPDK工控协议重放测试用例生成的操作中使用。
S403、将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收待测工控网络设备返回的至少一个反馈数据包。
其中,每个反馈数据包是经过待测工控网络设备转发或处理的测试数据包。
在本申请的实施例中,测试设备基于DPDK程序实现测试数据包的发送和反馈数据包的接收。
可选的,在本实施例中,测试设备进行工控协议流量重放的过程中,在使用DPDK程序对待测工控协议流量包报文进行解析、划分等操作生成至少一个测试数据包后,便可以触发DPDK程序执行测试数据包的发送过程。
具体的,测试设备首先利用DPDK程序将每种待测工控协议流量包对应的至少一个测试数据包以队列的形式存放到内存的缓存发送空间中,同时,将缓存发送空间的地址写入到内存的硬件发送空间(即,描述符发送空间),这样测试设备的直接存储器存取(directmemory access,DMA)控制器便可以通过读取硬件发送空间,从描述符指向的位置获取待发送的至少一个测试数据包,然后通过网卡发送出去。
可选的,测试设备可以按照待测工控协议流量包中的时间戳确定每个待测工控协议流量包对应的每个测试数据包发出的顺序。
同理,测试设备还可以基于DPDK程序从网卡接收待测工控网络设备返回的反馈数据包。具体的,测试设备的网卡接收到反馈数据包时,可以通过DMA控制器会从网卡的接收队列中将每个反馈数据包拷贝到硬件接收空间(即,描述符接收空间)指向的地址位置,最后DPDK程序轮询从内存的硬件接收空间获取至少一个反馈数据包。
S404、根据上述至少一个测试数据包的发送信息和至少一个反馈数据包的接收信息,确定待测工控网络设备的测试结果。
在本申请的实施例中,测试设备从待测工控网络设备接收到至少一个反馈数据包后,可以对每个反馈数据包进行解析,确定出每个反馈数据包的接收信息,将其与上述至少一个测试数据包的发送信息进行对比,根据数据包的内容信息判断每个数据包是否接收完成,记录接收日志后,执行下一次的测试数据包发送过程。
可选的,至少一个测试数据包的发送信息可以包括:发送的报文数量、发送速率、测试数据包的循环重放次数、发送的待测工控协议流量包的数量等;相应的,至少一个反馈数据包的接收信息可以包括:接收到的报文数量、接收速率等。本申请实施例并不对测试数据包的发送信息和反馈数据包的接收信息进行限定,其可以根据实际场景确定,此处不作赘述。
示例性的,测试设备除了可以将测试数据包的发送信息与反馈数据包的接收信息进行对比外,还可以将测试数据包的发送信息与反馈数据包的接收信息存储在数据库中,并能够在测试结果中查看。
在本申请的一个实施例中,测试设备在根据测试数据包的发送信息与反馈数据包的接收信息确定数据包存在丢失情况时,还可以生成丢包日志。该丢包日志是否生成取决于测试设备的重放测试参数中是否配置有记录丢包日志这个功能,若重放测试参数中配置了记录丢包日志,测试设备在确定某个报文丢失或超时的时候,会记录下对应待测工控协议流量包的重放信息。
本申请实施例提供的基于工控协议流量的测试方法,应用于加载有DPDK程序的测试设备,通过获取目标工控协议对应的源工控协议流量包,对源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收所述待测工控网络设备返回的至少一个反馈数据包,最后根据至少一个测试数据包的发送信息和至少一个反馈数据包的接收信息,确定待测工控网络设备的测试结果。该技术方案中,基于加载有DPDK程序的测试设备进行处理,无需调用Linux内核进行网络数据处理,提高了数据处理效率,而且,能够识别测试数据包的发送顺序,实现了对工控协议的准确控制,能够定制待测工控协议流量包,扩展了工控协议流量的种类,从而能够满足工控网络设备多样性的需求,解决了测试对象单一性的问题。
示例性的,在上述实施例的基础上,图5为本申请实施例提供的基于工控协议流量的测试方法实施例二的流程示意图。如图5所示,在本实施例中,在上述S403之前,该基于工控协议流量的测试方法还可以包括如下步骤:
S501、按照源工控协议流量包中报文传输方向,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
可选的,在本实施例中,测试设备进行工控协议流量重放时,可以使用DPDK程序对每种待测工控协议流量包的报文进行解析、划分,得到每种待测工控协议流量包对应的至少一个测试数据包,从而可以触发DPDK程序执行测试数据包的发送流程。
在本申请的一个实施例中,测试设备利用DPDK程序对源工控协议流量包进行拆分生成待测工控协议流量包时,会识别出源工控协议流量包中的报文传输方向,然后按照源工控协议流量包的报文传输方向对每种待测工控协议流量包进行拆分生成每种待测工控协议流量包对应的至少一个测试数据包。
示例性的,在本申请的实施例中,该S501可以通过如下步骤实现:
B1、根据源工控协议流量包中报文传输方向,确定流量方向识别方式。
其中,该流量方向识别方式为如下方式中的任意一种:自动识别方式、基于源网际互连协议(internet protocol,IP)地址的识别方式、基于源媒体接入控制(media accesscontrol address,MAC)地址的识别方式。
可选的,测试设备可以从数据库的重放报文文件路径中读取pcap文件格式的源工控协议流量包,从而可以通过DPDK程序对pcap文件格式的源工控协议流量包进行处理,得到源工控协议流量包中每一个报文的数据包头和数据包信息,从而可以确定出源工控协议流量包中报文传输方向,进一步确定流量方向识别方式。
示例性的,测试设备的DPDK程序可以按照传输控制协议/网际协议(transmissioncontrol protocol/internet protocol,TCP/IP)模型中的链路层、网络层、运输层、应用层等结构,识别已解析的待测工控协议流量包的内容,呈现出待测工控协议流量包在不同层的具体内容,从而可以避免流量内容的跳变,使得用户能够看到详细的内容,准确定位出跳变的内容,进而能够准确确定出待测工控协议流量包中每个数据包的流量方向。
B2、基于该流量方向识别方式,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
示例性的,在本申请的实施例中,使用DPDK程序对待测工控协议流量包报文进行解析、划分等操作生成测试数据包时,需划分待测工控协议流量包中哪些数据包的源端是客户端,哪些数据包的源端是服务端,进而在后续执行测试数据包的发送时,能够选择正确的网卡发出测试数据包。
可选的,根据确定的流量方向识别方式可以对每种待测工控协议流量包进行拆分,从而得到每种待测工控协议流量包对应的至少一个测试数据包。
作为一种示例,在流量方向识别方式为自动识别方式时,根据每种待测工控协议流量包中的数据包是否满足预设目标行为,对待测工控协议流量包进行拆分,得到待测工控协议流量包对应的至少一个测试数据包。
可选的,在该示例中,在测试设备确定流量方向识别方式为自动识别方式时,测试设备的DPDK程序解析时会识别每个数据包的IP是否为终端设备的客户端。示例性的,该目标预设行为可以包括但不限于以下行为:发送TCP的同步序列编号(synchronize sequencenumbers,SYN)报文。也即,测试设备可以将发送TCP SYN报文的数据包的源端确定为终端设备的客户端,从而可以根据待测工控协议流量包中的其他数据包的报文传输方向是否与该数据包的报文传输方向一致,将待测工控协议流量包拆分为至少一个测试数据包。
作为另一种示例,在流量方向识别方式为基于源IP地址的识别方式时,根据每种待测工控协议流量包中数据包的源IP地址是否位于预设源IP地址范围内,对待测工控协议流量包进行拆分,得到待测工控协议流量包对应的至少一个测试数据包。
示例性的,当测试设备确定流量方向识别方式为基于源IP地址的识别方式时,这时可以根据预先配置的预设源IP地址范围,对待测工控协议流量包进行拆分,DPDK程序解析时会将预设源IP地址范围内的数据包的源端确定为客户端,而将其他的数据包的源端确定为服务端。
作为再一种示例,在流量方向识别方式为基于源MAC地址的识别方式时,根据每种待测工控协议流量包中数据包的源MAC地址位于预设源MAC地址范围内,对待测工控协议流量包进行拆分,得到待测工控协议流量包对应的至少一个测试数据包。
示例性的,当测试设备确定流量方向识别方式为基于源MAC地址的识别方式时,这时可以根据预先配置的预设源MAC地址范围,对待测工控协议流量包进行拆分,DPDK程序解析时会将预设源MAC地址范围内的数据包的源端确定为客户端,而将其他的数据包的源端确定为服务端。
示例性的,如图5所示,在本申请实施例中,在上述S501或者S403之前,该方法还可以包括如下步骤:
S500、根据待测工控网络设备的被测指标信息,对至少一种待测工控协议流量包进行预处理。
其中,该预处理包括如下操作中的任意一种:查询、删除、禁用。
可选的,在待测工控协议流量包为多个时,测试设备可以根据实际需求对待测工控协议流量包进行查询、删除操作,也可以禁用某一个甚至多种待测工控协议流量包,从而在执行重放测试时跳过禁用的待测工控协议流量包。
示例性的,待测工控协议流量包可以支持pcap文件名按名称查询,也可以支持启用或禁用重放某种待测工控协议流量包,还可以支持增加或删除某种待测工控协议流量包。测试设备可以根据实际场景需求选择预处理的操作,此处不作说明。
进一步的,在本申请的实施例中,上述S403中的将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备具体可以替换为:
根据每种待测工控协议流量包的存储位置,依次将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备。
在本实施例中,在待测工控协议流量包为多种时,测试设备在利用多种待测工控协议流量包进行重放时,可以基于待测工控协议流量存储至数据库时的存储位置,依次将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备。
本申请实施例提供的基于工控协议流量的测试方法,通过按照源工控协议流量包中报文传输方向,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包,还可以根据待测工控网络设备的被测指标信息,对至少一种待测工控协议流量包进行预处理,该预处理包括如下操作中的任意一种:查询、删除、禁用,进而能够根据每种待测工控协议流量包的存储位置,依次将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备。该技术方案中,测试设备可以根据实际测试需求对每种待测工控协议流量包以及确定每个数据包的发送顺序,提高了数据处理效率。
上述介绍了本申请提供的基于工控协议流量的测试方法的具体实现过程,下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图6为本申请实施例提供的基于工控协议流量的测试装置的一种实施例的结构示意图。该测试装置集成在加载有DPDK程序的测试设备中或者通过加载有DPDK程序的测试设备实现。参照图6所示,该基于工控协议流量的测试装置可以包括:
获取模块601,用于获取目标工控协议对应的源工控协议流量包;
处理模块602,用于对所述源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,所述目标报文字段包括如下至少一种:工控协议指令字段、功能码字段;
收发模块603,用于将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收所述待测工控网络设备返回的至少一个反馈数据包,每个反馈数据包是经过所述待测工控网络设备转发或处理的测试数据包;
所述处理模块602,还用于根据所述至少一个测试数据包的发送信息和所述至少一个反馈数据包的接收信息,确定所述待测工控网络设备的测试结果。
在本申请实施例的一种可能设计中,所述处理模块602,具体用于:
对所述源工控协议流量包进行解析,确定所述源工控协议流量包的多个报文字段;
根据所述工控网络设备的类型和测试目的,对所述多个报文字段中的目标报文字段进行修改,得到至少一种待测工控协议流量包。
在本申请实施例的另一种可能设计中,所述处理模块602,还用于按照所述源工控协议流量包中报文传输方向,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
可选的,所述处理模块602,具体用于:
根据所述源工控协议流量包中报文传输方向,确定流量方向识别方式,所述流量方向识别方式为如下方式中的任意一种:自动识别方式、基于源网际互连协议IP地址的识别方式、基于源媒体接入控制MAC地址的识别方式;
基于所述流量方向识别方式,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
可选的,所述处理模块602,具体用于:
在所述流量方向识别方式为自动识别方式时,根据每种待测工控协议流量包中的数据包是否满足预设目标行为,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包;
在所述流量方向识别方式为基于源IP地址的识别方式时,根据每种待测工控协议流量包中数据包的源IP地址是否位于预设源IP地址范围内,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包;
在所述流量方向识别方式为基于源MAC地址的识别方式时,根据每种待测工控协议流量包中数据包的源MAC地址位于预设源MAC地址范围内,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包。
在本申请实施例的再一种可能设计中,所述处理模块602,还用于根据所述待测工控网络设备的被测指标信息,对所述至少一种待测工控协议流量包进行预处理,所述预处理包括如下操作中的任意一种:查询、删除、禁用。
在本申请实施例的又一种可能设计中,所述收发模块603,具体用于根据每种待测工控协议流量包的存储位置,依次将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备。
本申请实施例提供的装置,可用于执行方法实施例所述的技术方案,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
示例性的,在实际应用中,图7为本申请实施例提供的基于工控协议流量的测试装置的另一种实施例的结构示意图。如图7所示,若将基于工控协议流量的测试装置划分为工控协议流量模板管理单元701、基于DPDK的工控协议重放测试用例生成单元702、基于DPDK的数据收发单元703和数据统计单元704。其中,该工控协议流量模板管理单元701可以包括:源流量包导入解析子单元7011和待测工控协议流量包管理子单元7012。
可以理解的是,在本申请的实施例中,源流量包导入解析子单元7011相当于上述图6所述装置实施例中的获取模块601,待测工控协议流量包管理子单元7012、基于DPDK的工控协议重放测试用例生成单元702和数据统计单元704相当于上述图6所述装置实施例中的处理模块602,基于DPDK的数据收发单元703相当于上述图6所述装置实施例中的收发模块603。
在本申请的实施例中,工控协议流量模板管理单元701的源流量包导入解析子单元7011用于获取源工控协议流量包,待测工控协议流量包管理子单元7012用于对该源工控协议流量包进行解析,生成待测工控协议流量包,进而可以对生成的待测工控协议流量包进行管理、组合,以得到重放PCAP对象。其中,该重放PCAP对象可以包括多个待测工控协议流量包。该重放PCAP对象在基于DPDK的工控协议重放测试用例生成单元702的操作中使用。
具体的,源流量包导入解析子单元7011,用于获取导入的源工控协议流量包,并对其进行解析,获取源工控协议流量包的基本信息。源工控协议流量包被解析后,得到的是用于测试目的的数据包,即待测工控协议流量包。
可选的,源工控协议流量包为上述方法实施例中所述的pcap文件格式的源工控协议流量包。
在一个实施例中,该源流量包导入解析子单元7011的导入功能支持导入pcap文件类型和zip文件类型。该zip文件类型中的压缩内容为一个或多个pcap文件组成。也即,源流量包导入解析子单元7011不仅支持单文件的导入,也支持多文件的导入,从而在pcap文件和/或zip文件导入成功后,根据pcap文件头的信息获取文件名,进而将源工控协议流量包按照pacp文件格式存放于数据库的重放文件路径。
具体的,源流量包导入解析子单元7011拥有如下特征:
a)支持直接以pcap文件类型导入单个源工控协议流量包;
b)支持以zip文件类型导入源工控协议流量包;
c)支持一次导入多个pcap文件类型的源工控协议流量包;
d)流量方向识别方式支持自动识别、按源IP地址、按源MAC地址。
在一个实施例中,源流量包导入解析子单元7011用于通过python程序调用pcap文件解析程序,并依据pcap文件的格式解析获取源流量包内容,并存放于数据库,以便在后续展示在测试设备的页面上。该源流量包内容可以包括时间戳、协议类型、报文长度、报文摘要等信息。而且,源工控协议流量包被导入解析后得到用于测试目的的pcap文件,其可以作为待测工控协议流量包储存于重放文件路径。
在一个实施例中,待测工控协议流量包报文中任何字段支持进行修改,包括但不限于对工控协议指令、功能码等信息修改,从而扩展定制一些待测工控协议流量包,进行重放测试时,用于检测待测工控网络设备的处理情况。
可选的,待测工控协议流量包管理子单元7012用于管理待测工控协议流量包,可组合多种待测工控协议流量包构成重放PCAP对象,也可以对待测工控协议流量包进行查询、删除操作,还可以禁用某一个甚至多个待测工控协议流量包,并在执行重放测试时跳过禁用的待测工控协议流量包。
具体的,待测工控协议流量包管理子单元7012拥有如下特征:
a)支持pcap文件名按名称查询;
b)支持启用或禁用重放待测工控协议流量包;
c)支持增加或删除待测工控协议流量包。
在一个实施例中,工控协议流量模板管理单元701内置提供百余种工控协议流量模板,包括ECHONET_Lite,FF_HSE,MQTT,BACnet,Omron,OPC_UA,Profinet,Siemens S7,ModbusTCP,Melsec,IEC61850_MMS,IEC61850_GOOSE,IEC60870-5-104,CIP,DNP3,C37.118,Beckoff,EIP,HART-IP,Ethersbus,Ethersio,Gryphon,Lontalk,CoAP,openSAFETY,KNXnet/IP等工控协议类型,本申请的实施例中,通过对内置的工控协议流量模板进行任意组合选择,构成新的重放PCAP对象。
可选的,在本申请的实施例中,基于DPDK的工控协议重放测试用例生成单元702用于构建工控协议重放测试程序,根据测试方案配置网测试网络,并指定重放测试参数,以及基于DPDK程序生成测试配置,将测试配置保存为可执行的json文件,从而用于后续工控协议重放测试的执行。其中,重放测试参数可以包括是否修改待测工控协议流量包报文中的IP地址及MAC地址以及流量重放次数等信息。
在实际应用中,基于DPDK的工控协议重放测试用例生成单元702生成工控协议测试用例的操作流程包括以下步骤:
步骤a,新建重放测试用例,配置重放测试网络。
测试人员可以根据测试场景设计测试网络,新建一个重放测试用例,并对测试网络进行配置。可选的,对测试网络进行配置可以包括配置待测工控网络设备工作模式、客户端/服务端子网等信息。通过对测试网络进行配置,可以保证待测工控协议流量包中的每个测试数据包能够到达待测工控网络设备或能经过待测工控网络设备转发。
步骤b,配置重放测试参数,选择重放PCAP对象。
其中,重放测试参数可以包括是否重写报文MAC地址、是否重写报文IP地址、是否记录丢包日志、流量重放次数等。需要理解的是,是否重写报文MAC地址的作用为在执行工控协议流量重放时是否根据测试设备网口的实际MAC地址修改待测工控协议流量包报文中的MAC地址;是否重写报文IP地址作用为在执行工控协议流量重放时是否根据重放测试用例配置中的网络参数修改待测工控协议流量包报文中的IP地址;流量重放次数能够支持指定重放PCAP对象中的每个待测工控协议流量包循环重放的次数。
可选的,选择重放PCAP对象目的为工控协议流量模板管理单元701中构成的重放PCAP对象,其构成可以是单一待测工控协议流量包,也可以是组合的多种待测工控协议流量包。当PCAP对象为组合的多种待测工控协议流量包时,测试设备在执行重放测试时会根据重放PCAP对象中的待测工控协议流量包在数据库中的位置,依次对其进行重放。
步骤c,保存启动测试,生成可执行json文件。
执行完步骤a和步骤b后,便可以保存生成的重放测试用例,保存后可在此基础上执行修改操作。执行启动操作后,重放测试用例可以基于DPDK程序进行初始化,根据步骤a和步骤b的配置生成可执行的json文件,构建工控协议重放测试程序就绪。
在一个实施例中,基于DPDK的工控协议重放测试用例生成单元702支持设置限速,在进行重放测试时可以根据指定的速率进行发包。限速支持链路层带宽限速和网络层层报文限速。其中,链路层带宽限速限制的为发送流量的吞吐率;网络层报文限速限制的为每秒发送报文的个数。
基于DPDK的数据收发单元703通过DPDK程序,可以将每个待测工控协议流量包中的测试数据包发送至待测网络设备,并接收该待测网络设备转发或反馈的数据包。其中,基于DPDK的数据收发单元703需要根据基于DPDK的工控协议重放测试用例生成单元702构建的工控协议重放测试程序执行。
在一个实施例中,基于DPDK的数据收发单元703,可以基于DPDK的工控协议重放测试用例生成单元702构建的工控协议重放测试程序对应的json文件中的网络配置及参数,确定是否修改待测工控协议流量包中各报文的源、目的IP地址及MAC信息及选择的重放PCAP对象,从而更新待测工控协议流量包。
进一步地,基于DPDK的数据收发单元703在执行发包之前,首先需要使用DPDK报文解析程序对待测工控协议流量包报文进行解析、划分等操作生成测试数据包。
在一个实施例中,基于DPDK的数据收发单元703还可根据基于DPDK的工控协议重放测试用例生成单元702配置的速率发包。在基于DPDK的工控协议重放测试用例生成单元702进行网络配置时,支持将CPU核与测试端口进行绑定,例如,可以控制CPU单核处理一个网卡测试端口,也可以控制CPU多核处理一个网卡测试端口,这样可以发挥网卡极致性能。
在本申请的实施例中,基于DPDK的数据收发单元703执行的报文收发都在用户态,避免了中断操作,最大发包速率能够达到网卡的线速发送。
可选的,数据统计单元704可以在流量重放测试执行过程中,基于测试端口对发送和接收的报文进行统计。可选的,统计信息包括:发送报文的数量和接收报文的数量、发送速率和接收速率以及循环重放次数、重放pcap文件的数量等。可选的,这些统计信息存储在数据库中并能在数据库中查看。
在一个实施例中,数据统计单元704中的统计信息还可以包括丢包日志。统计信息中是否包括丢包日志取决于基于DPDK的工控协议重放测试用例生成单元702配置的重放测试参数中是否有记录丢包日志这个选项,若是,则某个报文若在工控协议重放过程中丢失或超时,则记录重放的详细内容。
本申请实施例的技术方案,将DPDK程序和重放测试原理结合,基于真实工控协议通信流量,对工控协议原始流量进行收集筛选后,解析源工控协议流量包生成待测工控协议流量包,在进行工控协议重放测试时根据待测工控协议流量包的内容,DPDK程序对待测工控协议流量包报文进行解析、划分生成测试数据包,将测试数据包发送到发包队列,并通过从网卡的测试端口发送给待测工控网络设备;网卡从待测工控网络设备接收到反馈数据包后,DPDK程序可以通过DMA从网卡获取该反馈数据包,对反馈数据包和测试数据包进行对比,根据测试数据包的发送信息和反馈数据包的接收信息,确定待测工控网络设备的性能。该技术方案通过各单元之间的协作,完成对实现工控协议仿真,通过对报文深度解析与修改实现对待测工控网络设备进行多样化定制测试需求,其能够快速适用更多的工控协议,支持多类型工控通讯流量,在执行工控协议重放测试时能满足高性能要求。
示例性的,图8为本申请实施例提供的基于工控协议流量的测试设备的结构示意图。如图8所示,该基于工控协议流量的测试设备可以包括处理器801、存储器802、通信接口803和系统总线804,存储器802和通信接口803通过系统总线804与处理器801连接并完成相互间的通信,存储器802用于存储可在处理器801上运行的计算机程序,通信接口803用于和其他设备进行通信,处理器801执行计算机程序时实现如上述方法实施例所述的技术方案。
可选的,在实际应用中,该通信接口803可以理解为设备的网络接口,当测试设备执行重放测试时,DPDK程序通过网卡的网络接口将至少一个测试数据包发送到待测工控网络设备,待测工控网络设备可以是工控网络中的防火墙、路由器等设备,待测工控网络设备经过对每个测试数据包进行识别解析后进行转发或反馈数据包。
DPDK程序还可以通过DMA直接从网卡读取接收到转发或反馈的数据包,进而实现根据测试设备的发包信息和接收信息判断待测工控网络设备对重放报文的处理情况,从而确定待测工控网络设备的性能。
进一步的,在本申请的实施例中,该基于工控协议流量的测试设备还可以包括:操作系统、数据库、DPDK和计算机程序,该计算机程序包括但不限于DPDK程序,DPDK程序基于操作系统运行,处理器是信息处理、程序运行的最终单元。
可以理解的是,图8所示的基于工控协议流量的测试设备仅是本申请技术方案的一种结构示意图,具体的组成部分可以包括比图中所示更多或更少的部件,或者组合某些部件,此处不作说明。
可选的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当该计算机执行指令在计算机上运行时,使得计算机执行如上述方法实施例所述的技术方案。
可选的,本申请实施例还提供一种运行指令的芯片,所述芯片用于执行上述方法实施例所述的技术方案。
可选的,本申请的实施例还提供了一种计算机程序产品,包括:计算机程序,计算机程序存储在可读存储介质中,测试设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得测试设备执行上述任一实施例提供的方案。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种基于工控协议流量的测试方法,其特征在于,应用于加载有数据平面开发套件DPDK程序的测试设备,所述方法包括:
获取目标工控协议对应的源工控协议流量包;
对所述源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,所述目标报文字段包括如下至少一种:工控协议指令字段、功能码字段;
将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收所述待测工控网络设备返回的至少一个反馈数据包,每个反馈数据包是经过所述待测工控网络设备转发或处理的测试数据包;
根据所述至少一个测试数据包的发送信息和所述至少一个反馈数据包的接收信息,确定所述待测工控网络设备的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,包括:
对所述源工控协议流量包进行解析,确定所述源工控协议流量包的多个报文字段;
根据所述工控网络设备的类型和测试目的,对所述多个报文字段中的目标报文字段进行修改,得到至少一种待测工控协议流量包。
3.根据权利要求1所述的方法,其特征在于,在所述将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备之前,所述方法还包括:
按照所述源工控协议流量包中报文传输方向,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
4.根据权利要求3所述的方法,其特征在于,所述按照所述源工控协议流量包中报文传输方向,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包,包括:
根据所述源工控协议流量包中报文传输方向,确定流量方向识别方式,所述流量方向识别方式为如下方式中的任意一种:自动识别方式、基于源网际互连协议IP地址的识别方式、基于源媒体接入控制MAC地址的识别方式;
基于所述流量方向识别方式,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包。
5.根据权利要求4所述的方法,其特征在于,所述基于所述流量方向识别方式,对每种待测工控协议流量包进行拆分,得到每种待测工控协议流量包对应的至少一个测试数据包,包括:
在所述流量方向识别方式为自动识别方式时,根据每种待测工控协议流量包中的数据包是否满足预设目标行为,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包;
在所述流量方向识别方式为基于源IP地址的识别方式时,根据每种待测工控协议流量包中数据包的源IP地址是否位于预设源IP地址范围内,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包;
在所述流量方向识别方式为基于源MAC地址的识别方式时,根据每种待测工控协议流量包中数据包的源MAC地址位于预设源MAC地址范围内,对所述待测工控协议流量包进行拆分,得到所述待测工控协议流量包对应的至少一个测试数据包。
6.根据权利要求1-5任一项所述的方法,其特征在于,在所述将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备之前,所述方法还包括:
根据所述待测工控网络设备的被测指标信息,对所述至少一种待测工控协议流量包进行预处理,所述预处理包括如下操作中的任意一种:查询、删除、禁用。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,包括:
根据每种待测工控协议流量包的存储位置,依次将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备。
8.一种基于工控协议流量的测试装置,其特征在于,应用于加载数据平面开发套件DPDK程序的测试设备,所述装置包括:
获取模块,用于获取目标工控协议对应的源工控协议流量包;
处理模块,用于对所述源工控协议流量包中的目标报文字段进行修改,生成至少一种待测工控协议流量包,所述目标报文字段包括如下至少一种:工控协议指令字段、功能码字段;
收发模块,用于将每种待测工控协议流量包对应的至少一个测试数据包发送给待测工控网络设备,并接收所述待测工控网络设备返回的至少一个反馈数据包,每个反馈数据包是经过所述待测工控网络设备转发或处理的测试数据包;
所述处理模块,还用于根据所述至少一个测试数据包的发送信息和所述至少一个反馈数据包的接收信息,确定所述待测工控网络设备的测试结果。
9.一种基于工控协议流量的测试设备,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-7任一项所述的基于工控协议流量的测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现权利要求1-7任一项所述的基于工控协议流量的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110329891.5A CN112714047B (zh) | 2021-03-29 | 2021-03-29 | 基于工控协议流量的测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110329891.5A CN112714047B (zh) | 2021-03-29 | 2021-03-29 | 基于工控协议流量的测试方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112714047A true CN112714047A (zh) | 2021-04-27 |
CN112714047B CN112714047B (zh) | 2021-06-29 |
Family
ID=75550386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110329891.5A Active CN112714047B (zh) | 2021-03-29 | 2021-03-29 | 基于工控协议流量的测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112714047B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113364808A (zh) * | 2021-06-30 | 2021-09-07 | 北京天融信网络安全技术有限公司 | 工控防火墙测试方法、装置、设备及存储介质 |
CN113645653A (zh) * | 2021-08-06 | 2021-11-12 | 腾讯数码(深圳)有限公司 | 网络仿真测试方法、装置、电子设备及存储介质 |
CN114095411A (zh) * | 2021-11-18 | 2022-02-25 | 北京金山云网络技术有限公司 | 测试方法、系统、电子设备及存储介质 |
CN114157461A (zh) * | 2021-11-22 | 2022-03-08 | 绿盟科技集团股份有限公司 | 工控协议数据流处理方法、装置、设备及存储介质 |
CN114553757A (zh) * | 2022-01-29 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 基于可编程交换机的协议报文处理方法、装置和设备 |
CN115174245A (zh) * | 2022-07-15 | 2022-10-11 | 湖北天融信网络安全技术有限公司 | 一种基于DoIP协议检测的测试方法及系统 |
CN115334012A (zh) * | 2022-08-09 | 2022-11-11 | 杭州安恒信息技术股份有限公司 | 一种网络流量注入方法、装置、设备、存储介质 |
CN116527303A (zh) * | 2023-02-28 | 2023-08-01 | 浙江大学 | 基于标记流量对比的工控设备信息提取方法及装置 |
CN114584527B (zh) * | 2022-03-16 | 2024-04-09 | 杭州和利时自动化有限公司 | 一种hart通信方法、装置、设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102788956A (zh) * | 2012-08-21 | 2012-11-21 | 中国航天科技集团公司烽火机械厂 | 一种电动舵机测试装置及方法 |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
CN108490893A (zh) * | 2018-02-13 | 2018-09-04 | 烽台科技(北京)有限公司 | 一种工业控制方法、装置及设备 |
WO2020180572A1 (en) * | 2019-03-01 | 2020-09-10 | Cisco Technology, Inc. | Adaptive address translation caches |
CN111756714A (zh) * | 2020-06-15 | 2020-10-09 | 国家计算机网络与信息安全管理中心 | 一种用于工控协议的流量重放式测试方法及测试引擎 |
CN112181856A (zh) * | 2020-11-02 | 2021-01-05 | 浙江中控技术股份有限公司 | 一种加密工控协议测试方法及装置 |
-
2021
- 2021-03-29 CN CN202110329891.5A patent/CN112714047B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102788956A (zh) * | 2012-08-21 | 2012-11-21 | 中国航天科技集团公司烽火机械厂 | 一种电动舵机测试装置及方法 |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
CN108490893A (zh) * | 2018-02-13 | 2018-09-04 | 烽台科技(北京)有限公司 | 一种工业控制方法、装置及设备 |
WO2020180572A1 (en) * | 2019-03-01 | 2020-09-10 | Cisco Technology, Inc. | Adaptive address translation caches |
CN111756714A (zh) * | 2020-06-15 | 2020-10-09 | 国家计算机网络与信息安全管理中心 | 一种用于工控协议的流量重放式测试方法及测试引擎 |
CN112181856A (zh) * | 2020-11-02 | 2021-01-05 | 浙江中控技术股份有限公司 | 一种加密工控协议测试方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113364808A (zh) * | 2021-06-30 | 2021-09-07 | 北京天融信网络安全技术有限公司 | 工控防火墙测试方法、装置、设备及存储介质 |
CN113364808B (zh) * | 2021-06-30 | 2022-09-16 | 北京天融信网络安全技术有限公司 | 工控防火墙测试方法、装置、设备及存储介质 |
CN113645653A (zh) * | 2021-08-06 | 2021-11-12 | 腾讯数码(深圳)有限公司 | 网络仿真测试方法、装置、电子设备及存储介质 |
CN114095411A (zh) * | 2021-11-18 | 2022-02-25 | 北京金山云网络技术有限公司 | 测试方法、系统、电子设备及存储介质 |
CN114157461A (zh) * | 2021-11-22 | 2022-03-08 | 绿盟科技集团股份有限公司 | 工控协议数据流处理方法、装置、设备及存储介质 |
CN114157461B (zh) * | 2021-11-22 | 2023-08-01 | 绿盟科技集团股份有限公司 | 工控协议数据流处理方法、装置、设备及存储介质 |
CN114553757A (zh) * | 2022-01-29 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 基于可编程交换机的协议报文处理方法、装置和设备 |
CN114584527B (zh) * | 2022-03-16 | 2024-04-09 | 杭州和利时自动化有限公司 | 一种hart通信方法、装置、设备及可读存储介质 |
CN115174245A (zh) * | 2022-07-15 | 2022-10-11 | 湖北天融信网络安全技术有限公司 | 一种基于DoIP协议检测的测试方法及系统 |
CN115334012A (zh) * | 2022-08-09 | 2022-11-11 | 杭州安恒信息技术股份有限公司 | 一种网络流量注入方法、装置、设备、存储介质 |
CN116527303A (zh) * | 2023-02-28 | 2023-08-01 | 浙江大学 | 基于标记流量对比的工控设备信息提取方法及装置 |
CN116527303B (zh) * | 2023-02-28 | 2023-12-12 | 浙江大学 | 基于标记流量对比的工控设备信息提取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112714047B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112714047B (zh) | 基于工控协议流量的测试方法、装置、设备及存储介质 | |
CN112714138B (zh) | 基于攻击流量的测试方法、装置、设备及存储介质 | |
US7523198B2 (en) | Integrated testing approach for publish/subscribe network systems | |
CN107181738B (zh) | 一种软件化入侵检测系统及方法 | |
US10740027B2 (en) | High speed logging system | |
CN112256542B (zh) | 基于eBPF的微服务系统性能检测方法、装置和系统 | |
CN113794605A (zh) | 一种基于eBPF的内核丢包检测方法、系统和装置 | |
CN111400127B (zh) | 业务日志的监控方法及装置、存储介质、计算机设备 | |
CN108462598A (zh) | 一种日志生成方法、日志分析方法及装置 | |
CN109547288B (zh) | 一种协议无关转发网络可编程流测量方法 | |
CN106776346B (zh) | Ccmts设备的测试方法和装置 | |
US20030036896A1 (en) | Apparatus for simulating communications equipment | |
US6697751B2 (en) | Apparatus for assessing communication equipment | |
CN117176802B (zh) | 一种业务请求的全链路监控方法、装置、电子设备及介质 | |
WO2023155699A1 (zh) | 空口协议安全漏洞的挖掘方法、装置、移动终端 | |
CN117155832A (zh) | 用于udp传输协议的多端无侵入录制回放测试方法及系统 | |
Dai et al. | Detecting network topology and packet trajectory with SDN-enabled FPGA Platform | |
CN112422349B (zh) | 面向nfv的网管系统、方法、设备及介质 | |
CN113032255B (zh) | 响应噪音的识别方法、模型、电子设备及计算机存储介质 | |
CN114338347A (zh) | 基于Ampere平台的故障信息带外获取方法及装置 | |
CN112181670B (zh) | 进程间通讯方法及装置和Linux设备 | |
CN112199229A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN112165446A (zh) | 一种VxWorks系统网络侦听方法 | |
Toll et al. | IoTreeplay: Synchronous Distributed Traffic Replay in IoT Environments | |
US20230125017A1 (en) | Network telemetry based on application-level information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |