CN114363217A - Rfc2544吞吐性能测试方法、***、设备及介质 - Google Patents

Rfc2544吞吐性能测试方法、***、设备及介质 Download PDF

Info

Publication number
CN114363217A
CN114363217A CN202111589955.1A CN202111589955A CN114363217A CN 114363217 A CN114363217 A CN 114363217A CN 202111589955 A CN202111589955 A CN 202111589955A CN 114363217 A CN114363217 A CN 114363217A
Authority
CN
China
Prior art keywords
throughput
test
message
packet loss
iteration
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.)
Pending
Application number
CN202111589955.1A
Other languages
English (en)
Inventor
李彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing 6Cloud Technology Co Ltd
Beijing 6Cloud Information Technology Co Ltd
Original Assignee
Beijing 6Cloud Technology Co Ltd
Beijing 6Cloud Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing 6Cloud Technology Co Ltd, Beijing 6Cloud Information Technology Co Ltd filed Critical Beijing 6Cloud Technology Co Ltd
Priority to CN202111589955.1A priority Critical patent/CN114363217A/zh
Publication of CN114363217A publication Critical patent/CN114363217A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种RFC2544吞吐性能测试方法、***、设备及介质,基于DPDK pktgen测试工具实现,通过加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量,在利用DPDK pktgen报文发送框架的基础上,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量。

Description

RFC2544吞吐性能测试方法、***、设备及介质
技术领域
本发明涉及网络设备测试技术领域,尤其涉及一种RFC2544吞吐性能测试方法、***、设备及介质。
背景技术
Web RFC2544协议是RFC组织提出的用于评测网络互联设备的国际标准。RFC2544中规定了许多测试不同网络设备的参数,主要有吞吐量、丢包率、时延、背靠背等。作为网关安全互通设备(如防火墙等),吞吐量是一个很重要的性能指标。为了满足吞吐量的要求,需要做很多的吞吐量优化工作。所以,也就需要比较可靠的流量发送工具,可以发送指定五元组、并发连接数目、吞吐量的网络报文。
目前,常用的网络测试工具有TestCenter、Ixia等,可以用于测试RFC2544吞吐量。由于这些设备比较昂贵,因此这类资源的使用比较紧张。另外一些常见的包回放软件,只能回放已经抓取的.pcap文件,不能自定义报文,报文发送性能也严重不足。
Pktgen(Packet Generator)是一个基于DPDK的软件框架,发包速率可达线速,可以提供运行时管理,端口实时测量,可以配置报文的五元组等。在一定程序上可以满足RFC2544吞吐量的要求,但没法像TestCenter自动多次迭代测试出网络设备的真实吞吐量。
发明内容
本发明的主要目的在于提供一种RFC2544吞吐性能测试方法、***、设备及介质,旨在利用DPDK pktgen报文发送框架的基础上,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量,提高测试准确性。
为实现上述目的,本发明提供一种RFC2544吞吐性能测试方法,所述方法包括以下步骤:
加载预先配置的配置文件;
解析所述配置文件,得到配置参数;
根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;
基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量。
可选地,所述基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量的步骤包括:
S1,启动本次迭代测试,在测试过程中,进行所述网络报文的发送与接收,统计发送报文数目、接收报文数目,计算丢包率、平均吞吐量,并在交互界面显示;
S2,待本次迭代测试的截止时间到达后,结束报文收发操作,计算本次迭代测试的丢包率、平均吞吐量,并在交互界面显示;
S3,在本次迭代测试结束时,根据测试得到的丢包率与所述配置参数允许的丢包率计算下一次迭代测试的吞吐量,返回执行步骤S1,依次循环,直到达到配置的迭代次数上限。
可选地,所述RFC2544吞吐性能测试方法基于DPDK pktgen测试工具实现,所述加载预先配置的配置文件的步骤之后还包括:
对所述DPDK pktgen测试工具进行初始化,其中,初始阶段确定的吞吐量上限bpsHigh=1,吞吐量下限bpsLow=0;
对报文发送线程、报文接收线程进行初始化;
所述启动本次迭代测试,在测试过程中,进行所述网络报文的发送与接收,统计发送报文数目、接收报文数目,计算丢包率、平均吞吐量,并在交互界面显示的步骤包括:
启动本次迭代测试,在测试过程中,记录每个报文发送线程已经发送的报文数目,记录每个报文接收线程已经接收到的报文数目,周期性计算丢包数目,在所述交互界面显示报文发送总数、报文接收总数、丢包总数,直到本次迭代测试的运行时间结束为止;
其中,根据所述报文发送总数、报文接收总数,计算丢包数目、丢包率、平均吞吐量。
可选地,所述S3,在本次迭代测试结束时,根据测试得到的丢包率与所述配置参数允许的丢包率计算下一次迭代测试的吞吐量,返回执行步骤S1,依次循环,直到达到配置的迭代次数上限的步骤包括:
在本次迭代测试结束时,根据本次迭代测试的丢包率、所述配置参数允许的丢包率,更新吞吐量上限bpsHigh与吞吐量下限bpsLow,其中:
如果本次迭代测试的丢包率小于允许的丢包率,则本次测试通过,吞吐量上限bpsHigh保持不变,吞吐量下限bpsLow更新为本次迭代测试的吞吐量bpsCur;
如果本次迭代测试的丢包率大于或等于允许的丢包率,则本次测试失败,吞吐量下限bpsLow保持不变,吞吐量上限bpsHigh更新为本次测试的吞吐量bpsCur,继续执行下一次迭代测试,直到达到配置参数迭代次数的限制;
其中,本次迭代测试的吞吐量bpsCur=(bpsHigh+bpsLow)/2。实际吞吐量为bpsCur*2*网卡线速(如万兆网卡的最大吞吐量为20Gbps)。
可选地,所述方法还包括:
对测试得到的所述被测设备的RFC2544吞吐量进行分析并在交互界面显示。
可选地,所述加载预先配置的配置文件的步骤之前还包括:
配置所述配置文件,所述配置文件涉及的配置参数至少包括:允许的丢包率、并发连接数、报文长度、报文五元组、每次迭代测试的持续时间。
可选地,所述根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数的步骤包括:
根据所述配置参数中的并发连接数、报文五元组、报文长度,生成所需要的UDP报文;
根据报文连接数目Ncon、报文五元组的变化范围,选取Ncon个源IP地址、源端口、目的IP地址、目的地端口信息对;
确定Ncon条会话的五元组后,产生正向报文与反向报文;
确定本次迭代测试相关的运行参数,所述运行参数包括吞吐量。
此外,本发明实施例还提出一种网络设备吞吐性能测试***,所述网络设备吞吐性能测试***包括:业务模块,以及与所述业务模块交互的控制模块;
所述业务模块,用于接收或发送网卡的报文,管理报文发送线程、报文接收线程以及进行数据统计分析;
所述控制模块,用于加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量。
此外,本发明实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网络设备吞吐性能测试程序,所述网络设备吞吐性能测试程序被所述处理器执行时实现如上所述的RFC2544吞吐性能测试方法的步骤。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有网络设备吞吐性能测试程序,所述网络设备吞吐性能测试程序被处理器执行时实现如上所述的RFC2544吞吐性能测试方法的步骤。
本发明实施例提出的一种RFC2544吞吐性能测试方法、***、设备及介质,基于DPDK pktgen测试工具实现,通过加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量,在利用DPDK pktgen报文发送框架的基础上,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量,提高测试准确性。
附图说明
图1为本发明网络设备吞吐性能测试***所属终端设备的功能模块示意图;
图2为本发明网络设备吞吐性能测试***的架构示意图;
图3为本发明RFC2544吞吐性能测试方法一示例性实施例的流程示意图;
图4为本发明基于DPDK pktgen的测试工具的处理流程示意图;
图5为本发明实施例中计算下一次迭代的吞吐量的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:基于DPDK pktgen测试工具实现,通过加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量,在利用DPDKpktgen报文发送框架的基础上,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量,提高测试准确性。
本发明实施例涉及的技术术语:
RFC 2544协议:RFC的全称是Request for comment,请求注解。是一系列收录了互联网国际标准的文件。RFC 2544是用于测试和测量网络设备的性能的标准,该标准在1999年被规定。RFC 2544规定了在测试过程中测试人员需要用到的测试语言和测试步骤。测试人员必须严格按照RFC 2544中规定的步骤进行测试。RFC 2544还提供了标准的性能结果。通过对比设备的性能参数与RFC标准,用户能够轻松地比较不同厂商设备的优劣。
RFC 2544包括6个关于网络设备参数的测试,通过这些测试,可以评估网络设备在现实世界的表现情况。这些测试也被称作停止服务,在测试过程中不使用真实的业务流量,而是使用测试人员生成的具有特定特征的流量。
实现这一系列测试的理想设备是带有发送端口和接收端口的测试设备。流量从发包器发送到DUT,然后从DUT返回发包器。通过检查测试设备发送的帧序列号,测试人员可以判断是否所有的数据包都成功地发送了,所有正确的数据包也成功的返回测试设备。
DPDK(Data Plane Development Kit,数据平面开发套件)是由6WIND、Intel等多家公司开发,主要基于Linux***运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。
Pktgen,packet generator的简写,即报文发送器,是一个基于DPDK的软件框架,发包速率可达线速。提供运行时管理,端口实时测量。可以控制UDP,TCP,ARP,ICMP,GRE,MPLS and Queue-in-Queue等包,可以通过TCP进行远程控制。
TestCenter,是一款功能强大的测试管理工具,实现测试用例的过程管理。
现有技术中常用的网络测试工具有TestCenter、Ixia等,可以用于测试RFC2544吞吐量。但是这些设备比较昂贵,这类资源的使用比较紧张。另外一些常见的包回放软件,只能回放已经抓取的.pcap文件,不能自定义报文,报文发送性能也严重不足。而Pktgen虽然发包速率可达线速,提供运行时管理,端口实时测量,可以配置报文的五元组等,在一定程序上可以满足RFC2544吞吐量的要求,但没法像TestCenter自动多次迭代测试出网络设备的真实吞吐量。
本发明实施例提供一种解决方案,在利用DPDK pktgen报文发送框架的基础上,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量,提高测试准确性。
具体地,参照图1,图1为本发明网络设备吞吐性能测试***所属终端设备的功能模块示意图。该网络设备吞吐性能测试***可以为独立于终端设备的、能够进行网络设备测试的装置,比如一种基于DPDK pktgen的测试工具,其也可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为具有数据处理功能的PC等固定终端设备或服务器等。
在本实施例中,该网络设备吞吐性能测试***所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
存储器130中存储有操作***以及网络设备吞吐性能测试程序;输出模块110可为显示屏等。通信模块140可以包括千兆网卡、万兆网卡等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的网络设备吞吐性能测试程序被处理器执行时实现以下步骤:
加载预先配置的配置文件;
解析所述配置文件,得到配置参数;
根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;
基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量。
进一步地,存储器130中的网络设备吞吐性能测试程序被处理器执行时还实现以下步骤:
S1,启动本次迭代测试,在测试过程中,进行所述网络报文的发送与接收,统计发送报文数目、接收报文数目,计算丢包率、平均吞吐量,并在交互界面显示;
S2,待本次迭代测试的截止时间到达后,结束报文收发操作,计算本次迭代测试的丢包率、平均吞吐量,并在交互界面显示;
S3,在本次迭代测试结束时,根据测试得到的丢包率与所述配置参数允许的丢包率计算下一次迭代测试的吞吐量,返回执行步骤S1,依次循环,直到达到配置的迭代次数上限。
进一步地,存储器130中的网络设备吞吐性能测试程序被处理器执行时还实现以下步骤:
在加载预先配置的配置文件的步骤之后还包括:
对所述DPDK pktgen测试工具进行初始化,其中,初始阶段确定的吞吐量上限bpsHigh=1,吞吐量下限bpsLow=0;
对报文发送线程、报文接收线程进行初始化;
所述启动本次迭代测试,在测试过程中,进行所述网络报文的发送与接收,统计发送报文数目、接收报文数目,计算丢包率、平均吞吐量,并在交互界面显示的步骤包括:
启动本次迭代测试,在测试过程中,记录每个报文发送线程已经发送的报文数目,记录每个报文接收线程已经接收到的报文数目,周期性计算丢包数目,在所述交互界面显示报文发送总数、报文接收总数、丢包总数,直到本次迭代测试的运行时间结束为止;
其中,根据所述报文发送总数、报文接收总数,计算丢包数目、丢包率、平均吞吐量。
进一步地,存储器130中的网络设备吞吐性能测试程序被处理器执行时还实现以下步骤:
在本次迭代测试结束时,根据本次迭代测试的丢包率、所述配置参数允许的丢包率,更新吞吐量上限bpsHigh与吞吐量下限bpsLow,其中:
如果本次迭代测试的丢包率小于允许的丢包率,则本次测试通过,吞吐量上限bpsHigh保持不变,吞吐量下限bpsLow更新为本次迭代测试的吞吐量bpsCur;
如果本次迭代测试的丢包率大于或等于允许的丢包率,则本次测试失败,吞吐量下限bpsLow保持不变,吞吐量上限bpsHigh更新为本次测试的吞吐量bpsCur,继续执行下一次迭代测试,直到达到配置参数迭代次数的限制;
其中,本次迭代测试的吞吐量bpsCur=(bpsHigh+bpsLow)/2。实际吞吐量为bpsCur*2*网卡线速(如万兆网卡的最大吞吐量为20Gbps)。
进一步地,存储器130中的网络设备吞吐性能测试程序被处理器执行时还实现以下步骤:
对测试得到的所述被测设备的RFC2544吞吐量进行分析并在交互界面显示。
进一步地,存储器130中的网络设备吞吐性能测试程序被处理器执行时还实现以下步骤:
配置所述配置文件,所述配置文件涉及的配置参数至少包括:允许的丢包率、并发连接数、报文长度、报文五元组、每次迭代测试的持续时间。
进一步地,存储器130中的网络设备吞吐性能测试程序被处理器执行时还实现以下步骤:
根据所述配置参数中的并发连接数、报文五元组、报文长度,生成所需要的UDP报文;
根据报文连接数目Ncon、报文五元组的变化范围,选取Ncon个源IP地址、源端口、目的IP地址、目的地端口信息对;
确定Ncon条会话的五元组后,产生正向报文与反向报文;
确定本次迭代测试相关的运行参数,所述运行参数包括吞吐量。
本实施例通过上述方案,基于DPDK pktgen测试工具实现,通过加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量,在利用DPDK pktgen报文发送框架的基础上,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量,提高测试准确性。
参照图2,图2为本发明RFC2544吞吐性能测试方法实施例涉及的***架构示意图。
如图2所示,本发明实施例提出一种网络设备吞吐性能测试***,所述网络设备吞吐性能测试***包括:业务模块,以及与所述业务模块交互的控制模块;
所述业务模块,用于接收/发送网卡的报文,管理报文发送线程、报文接收线程以及进行数据统计分析,业务模块中可以包括统计分析模块;
所述控制模块,用于加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量。
具体地,结合图2所示,本发明***实现一种基于DPDK pktgen的RFC2544吞吐量测试工具,该***基于DPDK开发套件,在原有Pktgen基础上,增加了配置文件、控制模块,丰富了统计分析模块。其中:
所述配置文件,可以配置允许的丢包率、并发连接数、报文长度、报文五元组等。
所述控制模块可以根据配置参数与统计分析模块提供的数据等进行多次迭代测试并测试得到较为准确的RC2544吞吐量,主要是可以智能确定下一次迭代测试的吞吐量等运行参数。
所述业务模块主要包括报文发送线程、报文接收线程、统计分析模块等。所述统计分析模块主要是统计每次迭代测试的发送报文总数、接收报文总数、丢包总数、丢包率等。
***还配置有交互界面,所述交互界面采用Pktgen原有界面,增加显示实时的丢包率、吞吐量、每次迭代的统计信息,这些统计信息包括实际吞吐量、丢包数目、丢包率等。本发明实施例在利用DPDK pktgen报文发送框架的DPDK高性能、报文构造、报文收发、交互界面等基础上,添加了控制模块,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量。只需要一台普通PC、万兆网卡,就可以发出指定并发数、五元组、吞吐量的流量。
基于上述终端设备架构及***架构但不限于上述架构,提出本发明方法实施例。
本实施例方法的执行主体可以为一种网络设备吞吐性能测试***或终端设备,或者一种基于DPDK pktgen的测试工具等,本实施例以基于DPDKpktgen的测试工具进行举例。
参照图3,图3为本发明RFC2544吞吐性能测试方法一示例性实施例的流程示意图。所述RFC2544吞吐性能测试方法包括以下步骤:
步骤S101,加载预先配置的配置文件;
具体地,作为一种实施方式,所述RFC2544吞吐性能测试方法可以基于DPDKpktgen测试工具实现,该测试工具的***架构可以参照图2所示。
本实施例预先配置有配置文件,设置本次迭代测试的基本参数,所述配置文件涉及的配置参数至少包括:允许的丢包率、并发连接数、报文长度、报文五元组、每次迭代测试的持续时间等,具体而言,配置文件涉及的配置参数可以如下:
concurrence=128#并发连接数目;
packet_size=512#报文长度;
duration=30#每次迭代测试的持续时间,单位为秒;
drop_rate=0.01%#允许的丢包率;
src_mac_client=10:7b:44:7c:ed:e9#网卡1发出报文的源MAC地址;
dst_mac_client=20:7b:44:7c:ed:e9#网卡1发出报文的目的MAC地址;
src_mac_server=F0:FF:ba:6a:fd:3d#网卡2发出报文的源MAC地址;
dst_mac_server=F0:FE:ba:6a:fd:3d#网卡2发出报文的目的MAC地址;
src_ip=10.0.0.1:100.255.255.254#每条会话的源IP地址的变化范围;
src_port=10000:30000#每条会话的源端口的变化范围;
dst_ip=110.0.0.1:200.255.255.254#每条会话的目的IP地址的变化范围;
dst_port=40000:60000#每条会话的目的端口的变化范围:
在进行本次迭代测试之前,需要先加载配置的配置文件,以便解析所述配置文件,得到配置参数。
进一步地,在加载预先配置的配置文件的步骤之后还可以包括以下方案:
对所述DPDK pktgen测试工具进行初始化,其中,初始阶段确定的吞吐量上限bpsHigh=1,吞吐量下限bpsLow=0;
对报文发送线程、报文接收线程进行初始化。
步骤S102,解析所述配置文件,得到配置参数;
解析所述配置文件,得到允许的丢包率、并发连接数、报文长度、报文五元组等配置参数。
步骤S103,根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;
根据所述配置参数,生成对应的网络报文,具体包括:
根据配置参数中的并发连接数、报文五元组、报文长度等,产生所需要的UDP报文。根据报文连接数目Ncon、报文五元组的变化范围,选取Ncon个源IP地址、源端口、目的IP地址、目的地端口信息对,这些信息对保证不重复即可,一般选用的IP地址、端口都是不同的。确定Ncon条会话的五元组后,产生正向报文与反向报文。
根据所述配置参数计算得到测试用运行参数,具体包括:
根据所述配置参数确定本次迭代测试相关的运行参数,主要是吞吐量。其他参数(如允许的丢包率、运行时间)都是在配置文件中确定的。计算方式如下:
本次迭代测试的吞吐量bpsCur=(bpsHigh+bpsLow)/2;
实际吞吐量为bpsCur*2*网卡线速;
物理报文长度=报文长度+帧校验序列长度+前导码长度;
每秒发送报文数目=本次迭代测试的吞吐量bpsCur*2*网卡线速/物理报文长度。
步骤S104,基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量。
具体地,所述基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量的步骤可以包括:
S1,启动本次迭代测试,在测试过程中,进行所述网络报文的发送与接收,统计发送报文数目、接收报文数目,计算丢包率、平均吞吐量,并在交互界面显示;
作为一种实施方式,启动本次迭代测试,在测试过程中,记录每个报文发送线程已经发送的报文数目,记录每个报文接收线程已经接收到的报文数目,周期性计算丢包数目,在所述交互界面显示报文发送总数、报文接收总数、丢包总数,直到本次迭代测试的运行时间结束为止;
其中,根据所述报文发送总数、报文接收总数,计算丢包数目、丢包率、平均吞吐量。
更为具体地,启动本次迭代测试,在测试过程中,进行网络报文的发送与接收,本实施例采用了pktgen现有的报文收发线程,每次发送的报文都是上述流程中已经构造好的报文。此外,本实施例方案新增了全局变量,记录每个报文发送线程已经发送的报文数目,记录每个报文接收线程已经接收到的报文数目,周期性计算丢包数目,在交互界面显示报文发送总数、报文接收总数、丢包总数,直到本次迭代测试的运行时间结束为止。
在本次迭代运行结束后,可以延时1秒(考虑到有些报文可能已经发送出去了,但还没有到达接收网卡,因此设置一个延时。延时时间可以设定)。根据报文发送总数、报文接收总数,计算丢包数目、丢包率、平均吞吐量。另外,增加了特有的启动命令。
其中,启动命令,在原有命令的末尾添加了auto字段,用以区分Pktgen原有命令。
其中,丢包数=报文发送总数-报文接收总数;
丢包率=100*(报文发送总数-报文接收总数)/报文发送总数;
平均吞吐量=报文接收总数*物理报文长度/运行时间;
测试启动命令:start 0,1auto。
S2,待本次迭代测试的截止时间到达后,结束报文收发操作,计算本次迭代测试的丢包率、平均吞吐量,并在交互界面显示;
待本次迭代测试的截止时间到达后,结束报文收发操作,在交互界面显示本次迭代的统计数据,包括报文发送总数、报文接收总数,计算丢包数目、丢包率、平均吞吐量。
S3,在本次迭代测试结束时,根据测试得到的丢包率与所述配置参数允许的丢包率计算下一次迭代测试的吞吐量,返回执行步骤S1,依次循环,直到达到配置的迭代次数上限。
在本次迭代测试结束时,根据测试得到的丢包率与所述配置参数允许的丢包率计算下一次迭代测试的吞吐量。
具体地,作为一种实施方式,在本次迭代测试结束时,根据本次迭代测试的丢包率、配置允许的丢包率,更新吞吐量上限bpsHigh与吞吐量下限bpsLow。
其中:如果本次迭代测试的丢包率小于允许的丢包率,本次测试通过,吞吐量上限bpsHigh保持不变,吞吐量下限bpsLow更新为本次测试的吞吐量bpsCur;如果本次迭代测试的丢包率大于或等于允许的丢包率,本次测试失败,吞吐量下限bpsLow保持不变,吞吐量上限bpsHigh更新为本次测试的吞吐量bpsCur。继续执行下一次迭代测试,直到达到配置参数迭代次数的限制,具体处理流程可以参照图5所示。
其中,本次迭代测试的吞吐量bpsCur=(bpsHigh+bpsLow)/2,实际吞吐量为bpsCur*2*网卡线速(如万兆网卡的最大吞吐量为20Gbps)。
多次迭代测试全部结束后,显示本次测试的最终结果,即该被测设备的RFC2544吞吐量,实际吞吐量为bpsCur*2*网卡线速(如万兆网卡的最大吞吐量为20Gbps)。
本实施例通过上述方案,基于DPDK pktgen的测试工具实现,通过加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量,在利用DPDK pktgen报文发送框架的基础上,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量,提高测试准确性。
进一步地,所述方法还包括:
对测试得到的所述被测设备的RFC2544吞吐量进行分析并在交互界面显示。具体处理流程可以参照图4所示。
以下结合图4和图5,对本发明实施例基于DPDK pktgen的测试工具的处理流程进行详细阐述:
如图4和图5所示,一种基于DPDK Pktgen的RFC2544吞吐量测试方法,该方法主要的处理步骤包括:
步骤1:修改配置文件,设置本次测试的基本参数;
步骤2:设置pktgen命令行参数,启动运行。加载配置文件,解析配置参数;初始阶段确定的吞吐量上限bpsHigh=1,吞吐量下限bpsLow=0。
步骤3:根据配置参数中的并发连接数、报文五元组产生所需要的报文;
根据配置参数并发连接数、报文五元组、报文长度等,产生所需要的UDP报文。根据报文连接数目Ncon、报文五元组的变化范围,选取Ncon个源IP地址、源端口、目的IP地址、目的地端口信息对,这些信息对保证不重复即可,一般选用的IP地址、端口都是不同的。确定Ncon条会话的五元组后,产生正向报文与反向报文。
步骤4:根据配置文件计算本次迭代测试的运行参数(主要是吞吐量),开始测试;
确定本次迭代测试相关的参数,主要是吞吐量。其他参数(允许的丢包率、运行时间)都是在配置文件确定的。计算方式如下:
本次迭代测试的吞吐量bpsCur=(bpsHigh+bpsLow)/2;实际吞吐量为bpsCur*2*网卡线速;
物理报文长度=报文长度+帧校验序列长度+前导码长度;
每秒发送报文数目=本次吞吐量bpsCur*网卡线速/物理报文长度。
步骤5:本次迭代测试阶段,启动测试,发送与接收报文,统计发送报文数目、接收报文数目等,计算丢包率、平均吞吐量等,且在交互界面显示;
步骤6:待本次迭代测试的截止时间到达之后,报文收发已经结束,计算本次迭代测试的丢包率、平均吞吐等,并在交互界面显示;
在交互界面显示本次迭代的统计数据,包括报文发送总数、报文接收总数,计算丢包数目、丢包率、平均吞吐量。
步骤7:本次迭代测试结束,根据测试得到的丢包率与配置文件中的丢包率等信息计算下一次迭代的吞吐量,再次执行步骤4,依次循环,直到达到配置的迭代次数上限。若达到配置的迭代次数上限,则执行步骤8;
其中,计算下一次迭代的吞吐量的流程可以参照图5所示。
根据本次迭代测试的丢包率、配置允许的丢包率,更新吞吐量上限bpsHigh与吞吐量下限bpsLow。如果本次迭代测试的丢包率小于允许的丢包率,则本次测试通过,吞吐量上限bpsHigh保持不变,吞吐量下限bpsLow更新为本次测试的吞吐量bpsCur。如果本次迭代测试的丢包率大于或等于允许的丢包率,则本次测试失败,吞吐量下限bpsLow保持不变,吞吐量上限bpsHigh更新为本次测试的吞吐量bpsCur。继续执行下一次迭代测试,直到达到配置参数迭代次数的限制。
步骤8:显示本次测试的最终测试结果吞吐量。
在多次迭代测试全部结束后,显示本次测试的最终结果,即该被测设备的RFC2544吞吐量。实际吞吐量为bpsCur*2*网卡线速(如万兆网卡的最大吞吐量为20Gbps)。
其中,在步骤1中,配置文件涉及的配置参数如下:
concurrence=128#并发连接数目;
packet_size=512#报文长度;
duration=30#每次迭代测试的持续时间,单位为秒;
drop_rate=0.01%#允许的丢包率;
src_mac_client=10:7b:44:7c:ed:e9#网卡1发出报文的源MAC地址;
dst_mac_client=20:7b:44:7c:ed:e9#网卡1发出报文的目的MAC地址;
src_mac_server=F0:FF:ba:6a:fd:3d#网卡2发出报文的源MAC地址;
dst_mac_server=F0:FE:ba:6a:fd:3d#网卡2发出报文的目的MAC地址;
src_ip=10.0.0.1:100.255.255.254#每条会话的源IP地址的变化范围;
src_port=10000:30000#每条会话的源端口的变化范围;
dst_ip=110.0.0.1:200.255.255.254#每条会话的目的IP地址的变化范围;
dst_port=40000:60000#每条会话的目的端口的变化范围。
上述步骤5中,采用了pktgen现有的报文收发线程。每次发送的报文都是步骤3已经构造好的报文。新增了全局变量,记录每个报文发送线程已经发送的报文数目,记录每个报文接收线程已经接收到的报文数目,周期性计算丢包数目,在交互界面显示报文发送总数、报文接收总数、丢包总数,直到本次迭代测试的运行时间结束为止。本次迭代运行结束后,延时1秒(有些报文可能已经发送出去了,但还没有到达接收网卡)。根据报文发送总数、报文接收总数,计算丢包数目、丢包率、平均吞吐量。另外,增加了特有的启动命令。启动命令,在原有命令的末尾添加了auto字段,用以区分Pktgen原有命令。
其中,丢包数=报文发送总数-报文接收总数;
丢包率=100*(报文发送总数-报文接收总数)/报文发送总数;
平均吞吐量=报文接收总数*物理报文长度/运行时间;
测试启动命令:start 0,1auto。
本实施例通过上述方案,基于DPDK pktgen测试工具实现,通过加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量,在利用DPDK pktgen报文发送框架的基础上,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量,提高测试准确性。
此外,本发明实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网络设备吞吐性能测试程序,所述网络设备吞吐性能测试程序被所述处理器执行时实现如上述实施例所述的RFC2544吞吐性能测试方法的步骤。
由于本网络设备吞吐性能测试程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有网络设备吞吐性能测试程序,所述网络设备吞吐性能测试程序被处理器执行时实现如上述实施例所述的RFC2544吞吐性能测试方法的步骤。
由于本网络设备吞吐性能测试程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比现有技术,本发明实施例提出的一种RFC2544吞吐性能测试方法、***、终端设备及存储介质,基于DPDK pktgen测试工具实现,通过加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量,在利用DPDK pktgen报文发送框架的基础上,可以自动多次迭代测试,测试得到被测设备较为准确的RFC2544吞吐量,提高测试准确性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种RFC2544吞吐性能测试方法,其特征在于,所述方法包括以下步骤:
加载预先配置的配置文件;
解析所述配置文件,得到配置参数;
根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;
基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量。
2.根据权利要求1所述的方法,其特征在于,所述基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量的步骤包括:
S1,启动本次迭代测试,在测试过程中,进行所述网络报文的发送与接收,统计发送报文数目、接收报文数目,计算丢包率、平均吞吐量,并在交互界面显示;
S2,待本次迭代测试的截止时间到达后,结束报文收发操作,计算本次迭代测试的丢包率、平均吞吐量,并在交互界面显示;
S3,在本次迭代测试结束时,根据测试得到的丢包率与所述配置参数允许的丢包率计算下一次迭代测试的吞吐量,返回执行步骤S1,依次循环,直到达到配置的迭代次数上限。
3.根据权利要求2所述的方法,其特征在于,所述RFC2544吞吐性能测试方法基于DPDKpktgen测试工具实现,所述加载预先配置的配置文件的步骤之后还包括:
对所述DPDK pktgen测试工具进行初始化,其中,初始阶段确定的吞吐量上限bpsHigh=1,吞吐量下限bpsLow=0;
对报文发送线程、报文接收线程进行初始化;
所述启动本次迭代测试,在测试过程中,进行所述网络报文的发送与接收,统计发送报文数目、接收报文数目,计算丢包率、平均吞吐量,并在交互界面显示的步骤包括:
启动本次迭代测试,在测试过程中,记录每个报文发送线程已经发送的报文数目,记录每个报文接收线程已经接收到的报文数目,周期性计算丢包数目,在所述交互界面显示报文发送总数、报文接收总数、丢包总数,直到本次迭代测试的运行时间结束为止;
其中,根据所述报文发送总数、报文接收总数,计算丢包数目、丢包率、平均吞吐量。
4.根据权利要求3所述的方法,其特征在于,所述S3,在本次迭代测试结束时,根据测试得到的丢包率与所述配置参数允许的丢包率计算下一次迭代测试的吞吐量,返回执行步骤S1,依次循环,直到达到配置的迭代次数上限的步骤包括:
在本次迭代测试结束时,根据本次迭代测试的丢包率、所述配置参数允许的丢包率,更新吞吐量上限bpsHigh与吞吐量下限bpsLow,其中:
如果本次迭代测试的丢包率小于允许的丢包率,则本次测试通过,吞吐量上限bpsHigh保持不变,吞吐量下限bpsLow更新为本次迭代测试的吞吐量bpsCur;
如果本次迭代测试的丢包率大于或等于允许的丢包率,则本次测试失败,吞吐量下限bpsLow保持不变,吞吐量上限bpsHigh更新为本次测试的吞吐量bpsCur,继续执行下一次迭代测试,直到达到配置参数迭代次数的限制;
其中,本次迭代测试的吞吐量bpsCur=(bpsHigh+bpsLow)/2,实际吞吐量为bpsCur*2*网卡线速。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对测试得到的所述被测设备的RFC2544吞吐量进行分析并在交互界面显示。
6.根据权利要求1所述的方法,其特征在于,所述加载预先配置的配置文件的步骤之前还包括:
配置所述配置文件,所述配置文件涉及的配置参数至少包括:允许的丢包率、并发连接数、报文长度、报文五元组、每次迭代测试的持续时间。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数的步骤包括:
根据所述配置参数中的并发连接数、报文五元组、报文长度,生成所需要的UDP报文;
根据报文连接数目Ncon、报文五元组的变化范围,选取Ncon个源IP地址、源端口、目的IP地址、目的地端口信息对;
确定Ncon条会话的五元组后,产生正向报文与反向报文;
确定本次迭代测试相关的运行参数,所述运行参数包括吞吐量。
8.一种网络设备吞吐性能测试***,其特征在于,所述网络设备吞吐性能测试***包括:业务模块,以及与所述业务模块交互的控制模块;
所述业务模块,用于接收或发送网卡的报文,管理报文发送线程、报文接收线程以及进行数据统计分析;
所述控制模块,用于加载预先配置的配置文件;解析所述配置文件,得到配置参数;根据所述配置参数,生成对应的网络报文,以及根据所述配置参数计算得到测试用运行参数;基于所述网络报文及测试用运行参数,对被测设备进行多次迭代测试,得到所述被测设备的RFC2544吞吐量。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网络设备吞吐性能测试程序,所述网络设备吞吐性能测试程序被所述处理器执行时实现如权利要求1-7中任一项所述的RFC2544吞吐性能测试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有网络设备吞吐性能测试程序,所述网络设备吞吐性能测试程序被处理器执行时实现如权利要求1-7中任一项所述的RFC2544吞吐性能测试方法的步骤。
CN202111589955.1A 2021-12-23 2021-12-23 Rfc2544吞吐性能测试方法、***、设备及介质 Pending CN114363217A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111589955.1A CN114363217A (zh) 2021-12-23 2021-12-23 Rfc2544吞吐性能测试方法、***、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111589955.1A CN114363217A (zh) 2021-12-23 2021-12-23 Rfc2544吞吐性能测试方法、***、设备及介质

Publications (1)

Publication Number Publication Date
CN114363217A true CN114363217A (zh) 2022-04-15

Family

ID=81101918

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111589955.1A Pending CN114363217A (zh) 2021-12-23 2021-12-23 Rfc2544吞吐性能测试方法、***、设备及介质

Country Status (1)

Country Link
CN (1) CN114363217A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361320A (zh) * 2022-08-15 2022-11-18 武汉思普崚技术有限公司 一种自动化测试旁路设备吞吐性能的测试方法及测试***
CN117082556A (zh) * 2023-08-22 2023-11-17 深圳市中承科技有限公司 一种无线通信设备的吞吐量测试方法、检测设备、***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130136030A1 (en) * 2010-03-24 2013-05-30 Zte Corporation Method for Measuring Throughput and Maintenance End Point
CN106230654A (zh) * 2016-07-22 2016-12-14 安徽皖通邮电股份有限公司 一种快速实现rfc2544带背景流下最大吞吐率的方法
CN110213135A (zh) * 2019-06-12 2019-09-06 武汉通威电子有限公司 一种防火墙性能测试方法及装置
CN111162963A (zh) * 2019-12-11 2020-05-15 中国电力科学研究院有限公司 一种基于二分迭代法测试网络通信设备性能的方法及***
CN112019407A (zh) * 2020-11-02 2020-12-01 杭州木链物联网科技有限公司 转发设备数据测试方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130136030A1 (en) * 2010-03-24 2013-05-30 Zte Corporation Method for Measuring Throughput and Maintenance End Point
CN106230654A (zh) * 2016-07-22 2016-12-14 安徽皖通邮电股份有限公司 一种快速实现rfc2544带背景流下最大吞吐率的方法
CN110213135A (zh) * 2019-06-12 2019-09-06 武汉通威电子有限公司 一种防火墙性能测试方法及装置
CN111162963A (zh) * 2019-12-11 2020-05-15 中国电力科学研究院有限公司 一种基于二分迭代法测试网络通信设备性能的方法及***
CN112019407A (zh) * 2020-11-02 2020-12-01 杭州木链物联网科技有限公司 转发设备数据测试方法、装置、计算机设备和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361320A (zh) * 2022-08-15 2022-11-18 武汉思普崚技术有限公司 一种自动化测试旁路设备吞吐性能的测试方法及测试***
CN115361320B (zh) * 2022-08-15 2023-11-17 武汉思普崚技术有限公司 一种自动化测试旁路设备吞吐性能的测试方法及测试***
CN117082556A (zh) * 2023-08-22 2023-11-17 深圳市中承科技有限公司 一种无线通信设备的吞吐量测试方法、检测设备、***
CN117082556B (zh) * 2023-08-22 2024-05-03 深圳市中承科技有限公司 一种无线通信设备的吞吐量测试方法、检测设备、***

Similar Documents

Publication Publication Date Title
JP6876038B2 (ja) ケーブル試験デバイスの試験構成を管理するためのクラウドベースのシステム及び方法
CN111431758B (zh) 云网络设备的测试方法、装置、存储介质和计算机设备
CN114363217A (zh) Rfc2544吞吐性能测试方法、***、设备及介质
Vermeulen et al. Multilevel MDA-lite Paris traceroute
US20110130205A1 (en) Game grammar-based packet capture and analysis apparatus and method for conducting game test
EP3331205A1 (en) Data packet transmission method utilized in ipv6 network and device utilizing same
US10958616B2 (en) Methods, systems, and computer readable media for network test configuration using virtual local area network (VLAN) scanning
CN112367223A (zh) 一种网关控制器的以太网测试方法、装置、设备和介质
CN110971487B (zh) 网络协议识别方法及装置
CN109067938A (zh) 一种测试dns服务器的方法及装置
CN114389792B (zh) 一种web日志nat前后关联方法及***
CN113542076A (zh) 链路探测方法、装置、计算机设备和存储介质
US20050283639A1 (en) Path analysis tool and method in a data transmission network including several internet autonomous systems
US20120263058A1 (en) Testing shaped tcp traffic
WO2015001392A1 (en) Methods and systems for sending and receiving information data
Bálint et al. Test software design and implemetation for benchmarking of stateless IPv4/IPv6 translation implementations
US11729254B2 (en) Patternless prompt detection of command completion
CN115190070B (zh) 路由探测方法及装置
CN114598629B (zh) 一种终端类型识别自动化测试***及计算机设备
Costa et al. Pipo-tg: Parameterizable high-performance traffic generation
CN113032255A (zh) 响应噪音的识别方法、模型、电子设备及计算机存储介质
Mohammadpour et al. A zero-touch as-a-service active monitoring framework for virtualized network environments
Lifu et al. Technique for network performance measurement based on RFC 2544
Shi et al. Verifi: Model-driven runtime verification framework for wireless protocol implementations
CN109639528A (zh) 一种日志接收性能的测试方法及装置

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