CN110380927A - 一种报文延迟测试方法、设备及存储设备、程序产品 - Google Patents
一种报文延迟测试方法、设备及存储设备、程序产品 Download PDFInfo
- Publication number
- CN110380927A CN110380927A CN201910610712.8A CN201910610712A CN110380927A CN 110380927 A CN110380927 A CN 110380927A CN 201910610712 A CN201910610712 A CN 201910610712A CN 110380927 A CN110380927 A CN 110380927A
- Authority
- CN
- China
- Prior art keywords
- message
- processor
- test
- test packet
- 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
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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种报文延迟测试方法及设备,本申请实施例在需要对待测网络设备进行测试时,报文延迟测试设备中的报文发送处理器获取构建的测试报文,并将添加了发送时间的测试报文发送给待测网络设备。待测网络设备在接收到测试报文后,可以根据测试报文中的五元组信息确定与报文发送处理器对应的报文接收处理器,以便将该测试报文转发给报文接收处理器。报文接收处理器接收到待测网络设备转发的测试报文后,在测试报文添加接收时间后挂入预先建立的链表中。报文发送处理器从对应的报文接收处理器的链表中读取测试报文的接收时间,并根据测试报文的发送时间和接收时间计算测试报文的延迟时间。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种报文延迟测试方法、设备及存储设备、程序产品。
背景技术
防火墙等网络设备的转发系统高性能和低转发延迟是每个厂商关注的重点,为了保证网络设备出厂时性能测试通过,需要测试仪模拟网络设备两端的通信终端,向网络设备发送报文,以测试网络设备转发性能以及延迟性能。在现有技术中,高性能的测试仪基本都由硬件实现,但是硬件测试仪成本过于昂贵,一般厂商无法负担硬件测试仪的成本。
发明内容
有鉴于此,本申请实施例提供一种报文延迟测试方法、设备及存储设备、程序产品,以解决现有技术中对网络设备报文延迟进行测试的测试仪成本过高的技术问题。
为解决上述问题,本申请实施例提供的技术方案如下:
一种报文延迟测试方法,所述方法应用于报文延迟测试设备,所述报文延迟测试设备包括至少一个报文发送处理器以及至少一个报文接收处理器,所述报文发送处理器与所述报文接收处理器具有一一对应关系,所述方法包括:
所述报文发送处理器获取构建的测试报文,将所述测试报文添加发送时间后发送给待测网络设备;每个所述报文发送处理器构建的测试报文的五元组信息相同,不同的所述报文发送处理器构建的测试报文的五元组信息不同;
所述报文接收处理器接收所述待测网络设备转发的所述测试报文,将所述测试报文添加接收时间后,挂入预先建立的链表中;每一所述报文接收处理器接收的测试报文属于对应的报文发送处理器构建的测试报文;所述链表为每核资源;
所述报文发送处理器从对应的报文接收处理器的链表中读取所述测试报文的接收时间,根据所述测试报文的发送时间以及接收时间计算所述测试报文的延迟时间。
在一种可能的实现方式中,在所述报文发送处理器获取构建的测试报文,将所述测试报文添加发送时间后发送给待测网络设备之前,所述方法还包括:
所述报文发送处理器利用配置的源地址和目的地址、选取的源端口和目的端口计算哈希值,并将所述哈希值对N取模得到分组序号,如果得到的分组序号与当前报文发送处理器的序号相同,则将所述配置的源地址和目的地址、当前选取的源端口和目的端口组成目标五元组信息;N为所述报文发送处理器的数量;
所述报文发送处理器根据所述目标五元组信息构建会话表;
所述报文发送处理器根据所述会话表构建测试报文,所述测试报文具有所述目标五元组信息。
在一种可能的实现方式中,所述报文发送处理器根据所述会话表构建测试报文,包括:
所述报文发送处理器申请报文发送内存池,所述报文发送内存池包括多个报文存储结构体;
在各个所述报文存储结构体中填充具有所述目标五元组信息的报文内容以构建相同的测试报文。
在一种可能的实现方式中,在所述报文发送处理器从对应的报文接收处理器的链表中读取所述测试报文的接收时间之前,所述方法还包括:
所述报文发送处理器根据所述会话表判断所述测试报文是否合法;
如果是,执行从对应的报文接收处理器的链表中读取所述测试报文的接收时间以及后续步骤;
如果否,将所述测试报文进行释放。
在一种可能的实现方式中,所述方法还包括:
所述报文接收处理器申请报文接收内存池,所述报文接收内存池包括多个报文存储结构体;所述报文接收内存池为每核资源;所述报文接收内存池的报文存储结构体数量多于报文发送内存池的报文存储结构体数量;
所述报文接收处理器接收所述待测网络设备转发的所述测试报文,将所述测试报文添加接收时间后,挂入预先建立的链表中,包括:
所述报文接收处理器接收所述待测网络设备转发的所述测试报文,从所述报文接收内存池申请报文存储结构体,将所述测试报文添加接收时间后放入申请的报文存储结构体,将所述申请的报文存储结构体挂入预先建立的链表中。
在一种可能的实现方式中,所述方法还包括:
所述报文发送处理器将计算延迟时间后的测试报文对应的报文存储结构体释放到所述报文接收内存池中。
在一种可能的实现方式中,所述方法还包括:
所述报文发送处理器根据各个测试报文的延迟时间,计算预设时间段内的最小延迟、最大延迟以及平均延迟中的一项或多项。
一种报文延迟测试设备,所述报文延迟测试设备包括:至少一个报文发送处理器以及至少一个报文接收处理器,所述报文发送处理器与所述报文接收处理器具有一一对应关系;
所述报文发送处理器,用于获取构建的测试报文,将所述测试报文添加发送时间后发送给待测网络设备;每个所述报文发送处理器构建的测试报文的五元组信息相同,不同的所述报文发送处理器构建的测试报文的五元组信息不同;
所述报文接收处理器,用于接收所述待测网络设备转发的所述测试报文,将所述测试报文添加接收时间后,挂入预先建立的链表中;每一所述报文接收处理器接收的测试报文属于对应的报文发送处理器构建的测试报文;所述链表为每核资源;
所述报文发送处理器,还用于从对应的报文接收处理器的链表中读取所述测试报文的接收时间,根据所述测试报文的发送时间以及接收时间计算所述测试报文的延迟时间。
一种计算机可读存储介质,所述机算机可读存储介质中存储有指令,当所述指令在报文转发测试设备上运行时,使得所述报文转发测试设备执行上述的报文延迟测试方法。
一种计算机程序产品,其特征在于,所述计算机程序产品在报文转发测试设备上运行时,使得所述报文转发测试设备执行上述的报文延迟测试方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例在需要对待测网络设备进行测试时,报文延迟测试设备中的报文发送处理器获取构建的测试报文,并将添加了发送时间的测试报文发送给待测网络设备。待测网络设备在接收到测试报文后,可以根据测试报文中的五元组信息确定与报文发送处理器对应的报文接收处理器,以便将该测试报文转发给报文接收处理器。报文接收处理器接收到待测网络设备转发的测试报文后,在测试报文添加接收时间后挂入预先建立的链表中。报文发送处理器从对应的报文接收处理器的链表中读取测试报文的接收时间,并根据测试报文的发送时间和接收时间计算测试报文的延迟时间。
即本申请实施例报文延迟测试设备通过软件方式实现报文延迟测试。而且,对于任意一对报文发送处理器和报文接收处理器,可以持续处理五元组信息相同的测试报文。同时,报文接收处理器仅处理报文接收,以及将测试报文添加接收时间后挂入链表的操作,从而报文接收处理器在接收报文的过程中不处理其他流程使得报文接收时间准确,保证了报文接收处理器本身低延迟、保证了延迟测试的准确性;由报文发送处理器在发包间隙进行报文延迟的计算操作以及测试报文释放操作,不影响发包性能,保证了报文发送的高吞吐。此外,本申请中链表为每核资源,多个报文发送处理器之间可以并发计算测试报文的延迟时间,无需加锁,保证并发高性能。
附图说明
图1为本申请实施例提供的一种报文延迟测试场景示例图;
图2为本申请实施例提供的一种报文延迟测试设备结构图;
图3为本申请实施例提供的一种报文延迟测试方法的流程图;
图4为本申请实施例提供的一种构建测试报文方法的流程图;
图5为本申请实施例提供的一种报文延迟测试设备结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
发明人在对传统的报文延迟测试方法研究中发现,为了实现延迟测试,需要保证测试设备本身接收报文低延迟,以及保证测试过程的高吞吐,而基于此特点,对网络设备的延迟测试使用软件平台实现是很困难的。因此,传统延迟测试实现主要利用硬件实现,导致测试成本极高。
基于此,本申请实施例提供了一种报文延迟测试方法,该测试方法应用于报文延迟测试设备中,该报文延迟测试设备中的报文发送处理器获取构建侧测试报文,并在测试报文中添加发送时间,再将该测试报文发送给待测网络设备。待测网络设备根据测试报文中的五元组信息确定报文发送处理器对应的报文接收处理器,以便将测试报文发送给对应的报文接收处理器。该报文接收处理器在接收到待测网络设备转发的测试报文后,在测试报文中添加接收时间后挂入预先建立的链表中。报文发送处理器从链表中读取测试报文的接收时间,并根据测试报文的接收时间和发送时间计算该测试报文的延迟时间。即,本申请实施例通过软件方式即可实现报文延迟测试,降低开发成本。
为便于理解本申请提供的技术方案,参见图1,该图为本申请实施例提供的一种报文延迟测试场景示例图。本申请实施例的方法应用于报文延迟测试设备10中,该报文延迟测试设备10可以模拟客户端以及服务端,向待测网络设备发送测试报文以及接收待测网络设备20转发的测试报文。在实际应用时,报文延迟测试设备10可以模拟客户端向待测网络设备20发送测试报文1,再模拟服务端接收待测网络设备20转发的测试报文1,或者,报文延迟测试设备10可以模拟服务端向待测网络设备20发送测试报文1,再模拟客户端接收待测网络设备20转发的测试报文1。其中,报文延迟测试设备10在向待测网络设备20发送测试报文时,可以在测试报文中添加发送时间;报文延迟测试设备10在接收待测网络设备转发的测试报文时,可以在测试报文中添加接收时间。报文延迟测试设备10根据测试报文的发送时间以及接收时间确定测试报文的延迟。其中,待测网络设备10可以是网卡或者防火墙,本实施例在此不做限定。
为更清楚的理解报文延迟测试设备10的工作原理,参见图2,该图为本申请实施例提供的报文延迟测试设备结构图,该报文延迟测试设备10可以包括多个报文发送处理器201和多个报文接收处理器202,报文发送处理器和报文接收处理器二者一一对应,即报文发送处理器和报文接收处理器数量相同。为便于理解,下面将以一对报文发送处理器和报文接收处理器为例进行说明。
报文发送处理器201获取构建的测试报文1,并在测试报文1中添加发送时间后发送给待测网络设备。待测网络设备在接收到测试报文时,根据测试报文中的五元组信息确定报文发送处理器201对应的报文接收处理器202,以便将测试报文转发给报文接收处理器202。报文接收处理器202在接收到测试报文1时,在测试报文中添加接收时间后将该测试报文1挂入自身所对应的链表1中。报文发送处理器201从链表1中读取测试报文1的接收时间,并根据发送时间以及接收时间计算测试报文的延迟时间。其中,每个报文接收处理器与报文发送处理器均对应一个链表,从而保证报文发送处理器可以从对应的报文接收处理器的链表中读取接收时间,避免多核资源竞争,提高并发处理性能。
需要说明的是,当报文延迟测试设备包括多对报文发送处理器和报文接收处理器时,每对报文发送处理器和报文接收处理器处理其对应的测试报文,即,每对报文发送处理器和报文接收处理器所处理的测试报文中的五元组信息相同。
为便于理解本申请具体的实现过程,下面将结合附图对该报文延迟测试方法进行说明。
参见图3,该图为本申请实施例提供的一种报文延迟测试方法,该方法应用于报文延迟测试设备,该报文延迟测试设备包括至少一个报文发送处理器以及至少一个报文接收处理器,报文发送处理器与报文接收处理器具有一一对应关系,如图3所示,该方法可以包括:
S301:报文发送处理器获取构建的测试报文,将测试报文添加发送时间后发送给待测网络设备。
本实施例中,报文发送处理器获取待发送的测试报文,并在该测试报文中添加发送时间,再将已添加了发送时间的测试报文发送给待测网络设备。其中,同一个报文发送处理器所构建的测试报文的五元组信息相同,不同的报文发送处理器构建的测试报文的五元组信息不同。其中,测试报文的五元组信息可以包括源IP地址、源端口、目的IP地址,目的端口,通信协议。也就是,每个报文发送处理器所构建的测试报文中的五元组信息与其它报文发送处理器所构建的测试报文中的五元组信息不同。即,每个报文发送处理器处理一种测试报文。
可以理解的是,报文发送处理器在向待测网络设备发送测试报文之前,可以根据五元组信息构建测试报文,以保证每一报文接收处理器接收的测试报文属于对应的报文发送处理器构建的测试报文,其中,关于测试报文的构建将在后续实施例进行说明。
S302:报文接收处理器接收待测网络设备转发的测试报文,将测试报文添加接收时间后,挂入预先建立的链表中。
本实施例中,报文接收处理器可以接收待测网络设备转发的测试报文,并在测试报文中添加接收时间,再将该测试报文挂入预先建立的链表中。其中,报文接收处理器所接收的测试报文属于对应的报文发送处理器构建的测试报文,及报文接收处理器所接收的测试报文为其对应的报文发送处理器所发送的测试报文。其中,链表为每核资源,也就是,不同的报文接收处理器均存在各自对应的链表,每个报文接收处理器在向链表中挂载测试报文时,向其对应的链表中进行挂载,避免出现资源竞争。
S303:报文发送处理器从对应的报文接收处理器的链表中读取测试报文的接收时间,根据测试报文的发送时间以及接收时间计算测试报文的延迟时间。
本实施例中,当报文接收处理器将添加了接收时间的测试报文挂入链表后,报文发送处理器从对应的报文接收处理器的链表中读取测试报文的接收时间,进而根据测试报文的发送时间以及接收时间计算测试报文的延迟时间。
可以理解的是,由于报文发送处理器与报文接收处理器具有一一对应关系,而且报文发送处理器所发送的测试报文可以被对应的报文接收处理器所接收并挂入链表中,因此,报文发送处理器可以从其对应的报文接收处理器的链表中读取测试报文的接收时间,并根据测试报文的发送时间以及接收时间确定该测试报文的延迟时间。
另外,本实施例中,当报文发送处理器计算完成测试报文的延迟时间后,还可以将链表中计算延迟时间后的测试报文进行释放,以保证链表中存在充足的存储资源,进而可以挂载其它的测试报文,节省链表资源开销。
可以理解的是,在进行延迟测试时,对于收包性能具有较高的要求,因此,本实施例中报文接收处理器仅做收包处理,无需进行测试报文的延迟计算以及测试报文的释放,保证更精准的延迟测试。
通过上述描述可知,即本申请实施例报文延迟测试设备通过软件方式实现报文延迟测试。而且,对于任意一对报文发送处理器和报文接收处理器,可以持续处理五元组信息相同的测试报文。同时,报文接收处理器仅处理报文接收,以及将测试报文添加接收时间后挂入链表的操作,从而报文接收处理器在接收报文的过程中不处理其他流程使得报文接收时间准确,保证了报文接收处理器本身低延迟、保证了延迟测试的准确性;由报文发送处理器在发包间隙进行报文延迟的计算操作以及测试报文释放操作,不影响发包性能,保证了报文发送的高吞吐。此外,本申请中链表为每核资源,多个报文发送处理器之间可以并发计算测试报文的延迟时间,无需加锁,保证并发高性能。
在本申请实施例一种可能的实现方式中,提供了一种报文发送处理器构建测试报文的具体实现,当报文发送处理器构建完测试报文后,获取该测试报文,在该测试报文中添加发送时间后发送给待测网络设备。下面将结合附图对该构建方法进行说明。
参见图4,该图为本申请实施例提供的一种构建测试报文方法的流程图,如图4所示,该方法可以包括:
S401:报文发送处理器确定目标五元组信息。确定目标五元组信息的具体实现包括利用配置的源地址和目的地址、选取的源端口和目的端口计算哈希值,并将所述哈希值对N取模得到分组序号,如果得到的分组序号与当前报文发送处理器的序号相同,则将所述配置的源地址和目的地址、当前选取的源端口和目的端口组成目标五元组信息;N为所述报文发送处理器的数量。
本实施例中,报文发送处理器可以确定与该报文发送处理器对应的目标五元组信息。其中,目标五元组信息满足根据目标五元组信息计算的分组序号与当前报文发送处理器的序号相同,分组序号是根据五元组信息中的源地址、目的地址、源端口、目的端口计算哈希值后,将哈希值对N取模后得到的,N为报文发送处理器的数量。
则确定目标五元组信息的具体实现可以包括:首先获取配置的源地址和目的地址,然后,然后对源端口和目的端口进行遍历,选择一组源端口和目的端口,利用配置的源地址和目的地址、所选择的源端口和目的端口计算哈希值并对N取模后得到分组序号。如果得到的分组序号与当前报文发送处理器的序号相同,则将所述配置的源地址和目的地址、当前选取的源端口和目的端口组成目标五元组信息,如果得到的分组序号与当前报文发送处理器的序号不相同,则重新选择一组源端口和目的端口计算分组序号,直到得到的分组序号与当前报文发送处理器的序号相同,确定出当前报文发送处理器对应的目标五元组信息。
例如,当前报文发送处理器的序号为2,根据配置的源地址和目的地址、选取的源端口1和目的端口1计算出分组序号为1,则重新选取源端口和目的端口;根据配置的源地址和目的地址、选取的源端口2和目的端口2计算出分组序号为2,则将配置的源地址和目的地址、选取的源端口2和目的端口2组成当前报文发送处理器对应的目标五元组信息。
其中,分组序号是根据源地址、目的地址、源端口、目的端口计算哈希值后,将哈希值对N取模后得到的。
另外,当存在N个报文发送处理器时,也可以预先确定出每个报文发送处理器对应的目标五元组信息,即确定出N个目标五元组信息。当前报文发送处理器获取一个与该报文发送处理器对应的目标五元组信息即可。N个目标五元组信息所计算出的分组序号分别为1至N的每个整数。例如,报文发送处理器1对应目标五元组信息1,根据目标五元组信息1计算的分组序号为1,以此类推。
针对N个报文发送处理器分别确定对应的目标五元组信息,可以保证每个报文发送处理器、每个报文接收处理器的负载均衡,保证了最大的并发性。
S402:报文发送处理器根据目标五元组信息构建会话表。
根据目标五元组信息构建会话表。也就是,每个报文发送处理器处理一个特定五元组信息对应的会话。
可以理解的是,本实施中当待测网络设备在接收到测试报文后,待测网络设备可以根据测试报文中的五元组信息计算分组序号,并根据分组序号确定报文接收处理器,以便将测试报文转发给具有该分组序号的报文接收处理器。其中,根据五元组信息确定的分组序号与报文发送处理器的序号相同,因此,可以保证待测网络设备在转发测试报文时,可以将测试报文转发给报文发送处理器对应的报文接收处理器,以使对应的一组报文发送处理器和报文接收处理器处理同一种测试报文。
S403:报文发送处理器根据会话表构建测试报文,测试报文具有目标五元组信息。
本实施例中,当报文发送处理器完成会话表建立后,可以根据会话表建立测试报文,以构建该会话表对应的测试报文。
在具体实现时,本实施例提供了一种构建测试报文的具体实现方式,具体可以为:
1)报文发送处理器申请报文发送内存池,报文发送内存池包括多个报文存储结构体,该报文发送内存池为每核资源。
2)在各个报文存储结构体中填充具有目标五元组信息的报文内容以构建相同的测试报文。
本实施例中,报文发送处理器在建立会话表后,可以申请报文发送内存池,然后在申请报文发送内存池的各个报文存储结构体中填充具有目标五元组信息的报文内容以构建相同的测试报文。在具体实现时,可以构建仅包括五元组信息的测试报文,即,在所申请的报文发送内存池的各个报文存储结构体中填充五元组信息,从而构建测试报文。
在具体实现时,每个报文发送处理器均申请各自的报文发送内存池,然后再根据其对应的会话表填充报文发送内存池的各个报文存储结构体,以构建各自对应的测试报文。
则报文发送处理器在发送报文场景中,无需再构造测速报文,仅添加发送时间即可,发送报文的过程可以理解为循环利用每核的报文发送内存池的过程,减少写操作造成的内存开销,大幅提高性能。
在本申请实施例一种可能的实现方式中,报文发送处理器在计算测试报文的延迟时间之前,还可以对测试报文的合法性进行判断,根据合法的测试报文的发送时间和接收时间确定测试报文的延迟时间。具体为,报文发送处理器根据会话表判断测试报文是否合法;如果是,从对应的报文接收处理器的链表中读取测试报文的接收时间,以根据测试报文的发送时间以及接收时间计算测试报文的延迟时间。
在具体实现时,报文发送处理器从链表中提取测试报文,通过查询会话表判断测试报文中的五元组信息是否与会话表中的五元组信息相同,如果相同,则表明该测试报文合法,进而可以读取测试报文的接收时间进行测试报文的延时时间的计算,以避免待测网络设备错误地发送噪声报文,造成延迟测试不准确。
在本申请实施例一种可能的实现方式中,报文接收处理器在接收待测网络设备转发的测试报文时,还可以申请报文接收内存池,以便将测试报文放取报文接收内存池。具体可以为:
1)报文接收处理器申请报文接收内存池,报文接收内存池包括多个报文存储结构体,报文接收内存池为每核资源。
2)报文接收处理器接收待测网络设备转发的测试报文,从报文内存池申请报文存储结构体,将测试报文添加接收时间后放入申请的报文存储结构体,将申请的报文存储结构体挂入预先建立的链表中。
本实施例中,每个报文接收处理器均可以预先申请报文接收内存池,以获得各自对应的报文接收内存池。当接收到待测网络设备转发的测试报文后,可以从报文接收内存池申请报文存储结构体,以将添加了接收时间的测试报文放入报文存储结构体中。其中,申请的报文存储结构体挂入预先建立的链表中,从而便于报文发送处理器可以从链表中读取测试报文的接收时间。
可以理解的是,当报文接收处理器将接收的测试报文放入申请的报文存储结构体时,报文发送处理器在对计算延迟时间后的测试报文进行释放时,可以直接将报文存储结构释放。具体为,报文发送处理器将计算延迟时间后的测试报文对应的报文存储结构体释放到报文接收内存池中,从而保证报文接收内存池中的报文存储结构体资源充足,以便接收其他测试报文。
另外,报文接收内存池中的报文存储结构体数量可以大于报文发送内存池中的报文存储结构体数量,以保证报文接收内存池的资源充足。
在本申请实施例一种可能的实现方式中,报文发送处理器不仅可以计算每个测试报文的延迟时间,还可以根据各个测试报文的延迟时间,计算预设时间段内的最小延迟、最大延迟以及平均延迟等其中的一项或多项,从而可以充分获取待测网络设备的延迟性能。
通过上述可知,本申请实施例中报文接收处理器在整个测试过程中仅进行收包操作,完全没有任何加锁处理过程。而且,也无需进行会话新建、计算延迟、测试报文释放等操作,保证报文的收包性能,进而为准确测试报文延迟提供可靠数据。此外,本申请实施例不仅可以做到精准的延迟计算,整体处理性能还可以随着报文发送处理器个数的增加整体测试性能成倍增长,相对于硬件测试的复杂性,本申请实现的软件测试性价比较高。
基于上述方法实施例,本申请实施例还提供了一种报文延迟测试设备,下面将结合附图对该设备进行说明。
参见图5,该图为本申请实施例提供的一种报文延迟测试设备结构图,如图5所示,该设备500可以包括:至少一个报文发送处理器501以及至少一个报文接收处理器502,所述报文发送处理器501与所述报文接收处理器502具有一一对应关系;
所述报文发送处理器501,用于获取构建的测试报文,将所述测试报文添加发送时间后发送给待测网络设备;每个所述报文发送处理器构建的测试报文的五元组信息相同,不同的所述报文发送处理器构建的测试报文的五元组信息不同;
所述报文接收处理器502,用于接收所述待测网络设备转发的所述测试报文,将所述测试报文添加接收时间后,挂入预先建立的链表中;每一所述报文接收处理器接收的测试报文属于对应的报文发送处理器构建的测试报文;所述链表为每核资源;
所述报文发送处理器501,还用于从对应的报文接收处理器的链表中读取所述测试报文的接收时间,根据所述测试报文的发送时间以及接收时间计算所述测试报文的延迟时间。
在一种可能的实现方式中,所述报文发送处理器还用于:
利用配置的源地址和目的地址、选取的源端口和目的端口计算哈希值,并将所述哈希值对N取模得到分组序号,如果得到的分组序号与当前报文发送处理器的序号相同,则将所述配置的源地址和目的地址、当前选取的源端口和目的端口组成目标五元组信息;N为所述报文发送处理器的数量;
根据所述目标五元组信息构建会话表;
根据所述会话表构建测试报文,所述测试报文具有所述目标五元组信息。
在一种可能的实现方式中,所述报文发送处理器还用于:
申请报文发送内存池,所述报文发送内存池包括多个报文存储结构体;
在各个所述报文存储结构体中填充具有所述目标五元组信息的报文内容以构建相同的测试报文。
在一种可能的实现方式中,所述报文发送处理器还用于:
从对应的报文接收处理器的链表中读取所述测试报文的接收时间之前,根据所述会话表判断所述测试报文是否合法;
当所述测试报文合法时,从对应的报文接收处理器的链表中读取所述测试报文的接收时间;
当所述测试报文不合法时,将所述测试报文进行释放。
在一种可能的实现方式中,所述报文接收处理器,还用于申请报文接收内存池,所述报文接收内存池包括多个报文存储结构体;所述报文接收内存池为每核资源;所述报文接收内存池的报文存储结构体数量多于报文发送内存池的报文存储结构体数量;
所述报文接收处理器,具体用于接收所述待测网络设备转发的所述测试报文,从所述报文接收内存池申请报文存储结构体,将所述测试报文添加接收时间后放入申请的报文存储结构体,将所述申请的报文存储结构体挂入预先建立的链表中。
在一种可能的实现方式中,所述报文发送处理器,还用于将计算延迟时间后的测试报文对应的报文存储结构体释放到所述报文接收内存池中。
在一种可能的实现方式中,所述报文发送处理器,还用于根据各个测试报文的延迟时间,计算预设时间段内的最小延迟、最大延迟以及平均延迟中的一项或多项。
需要说明的是,本实施例中各个单元的实现可以参见上述方法实施例,本实施例在此不再赘述。
本申请实施例在需要对待测网络设备进行测试时,报文延迟测试设备中的报文发送处理器获取构建的测试报文,并将添加了发送时间的测试报文发送给待测网络设备。待测网络设备在接收到测试报文后,可以根据测试报文中的五元组信息确定与报文发送处理器对应的报文接收处理器,以便将该测试报文转发给报文接收处理器。报文接收处理器接收到待测网络设备转发的测试报文后,在测试报文添加接收时间后挂入预先建立的链表中。报文发送处理器从对应的报文接收处理器的链表中读取测试报文的接收时间,并根据测试报文的发送时间和接收时间计算测试报文的延迟时间。
即本申请实施例报文延迟测试设备通过软件方式实现报文延迟测试。而且,对于任意一对报文发送处理器和报文接收处理器,可以持续处理五元组信息相同的测试报文。同时,报文接收处理器仅处理报文接收,以及将测试报文添加接收时间后挂入链表的操作,从而报文接收处理器在接收报文的过程中不处理其他流程使得报文接收时间准确,保证了报文接收处理器本身低延迟、保证了延迟测试的准确性;由报文发送处理器在发包间隙进行报文延迟的计算操作以及测试报文释放操作,不影响发包性能,保证了报文发送的高吞吐。此外,本申请中链表为每核资源,多个报文发送处理器之间可以并发计算测试报文的延迟时间,无需加锁,保证并发高性能。
另外,本申请实施例还提供了一种计算机可读存储介质,所述机算机可读存储介质中存储有指令,当所述指令在报文转发测试设备上运行时,使得所述报文转发测试设备执行所述的报文延迟测试方法。
本申请实施例提供了一种计算机程序产品,所述计算机程序产品在报文转发测试设备上运行时,使得所述报文转发测试设备执行所述的报文延迟测试方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种报文延迟测试方法,其特征在于,所述方法应用于报文延迟测试设备,所述报文延迟测试设备包括至少一个报文发送处理器以及至少一个报文接收处理器,所述报文发送处理器与所述报文接收处理器具有一一对应关系,所述方法包括:
所述报文发送处理器获取构建的测试报文,将所述测试报文添加发送时间后发送给待测网络设备;每个所述报文发送处理器构建的测试报文的五元组信息相同,不同的所述报文发送处理器构建的测试报文的五元组信息不同;
所述报文接收处理器接收所述待测网络设备转发的所述测试报文,将所述测试报文添加接收时间后,挂入预先建立的链表中;每一所述报文接收处理器接收的测试报文属于对应的报文发送处理器构建的测试报文;所述链表为每核资源;
所述报文发送处理器从对应的报文接收处理器的链表中读取所述测试报文的接收时间,根据所述测试报文的发送时间以及接收时间计算所述测试报文的延迟时间。
2.根据权利要求1所述的方法,其特征在于,在所述报文发送处理器获取构建的测试报文,将所述测试报文添加发送时间后发送给待测网络设备之前,所述方法还包括:
所述报文发送处理器利用配置的源地址和目的地址、选取的源端口和目的端口计算哈希值,并将所述哈希值对N取模得到分组序号,如果得到的分组序号与当前报文发送处理器的序号相同,则将所述配置的源地址和目的地址、当前选取的源端口和目的端口组成目标五元组信息;N为所述报文发送处理器的数量;
所述报文发送处理器根据所述目标五元组信息构建会话表;
所述报文发送处理器根据所述会话表构建测试报文,所述测试报文具有所述目标五元组信息。
3.根据权利要求2所述的方法,其特征在于,所述报文发送处理器根据所述会话表构建测试报文,包括:
所述报文发送处理器申请报文发送内存池,所述报文发送内存池包括多个报文存储结构体;
在各个所述报文存储结构体中填充具有所述目标五元组信息的报文内容以构建相同的测试报文。
4.根据权利要求2所述的方法,其特征在于,在所述报文发送处理器从对应的报文接收处理器的链表中读取所述测试报文的接收时间之前,所述方法还包括:
所述报文发送处理器根据所述会话表判断所述测试报文是否合法;
如果是,执行从对应的报文接收处理器的链表中读取所述测试报文的接收时间以及后续步骤;
如果否,将所述测试报文进行释放。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述报文接收处理器申请报文接收内存池,所述报文接收内存池包括多个报文存储结构体;所述报文接收内存池为每核资源;所述报文接收内存池的报文存储结构体数量多于报文发送内存池的报文存储结构体数量;
所述报文接收处理器接收所述待测网络设备转发的所述测试报文,将所述测试报文添加接收时间后,挂入预先建立的链表中,包括:
所述报文接收处理器接收所述待测网络设备转发的所述测试报文,从所述报文接收内存池申请报文存储结构体,将所述测试报文添加接收时间后放入申请的报文存储结构体,将所述申请的报文存储结构体挂入预先建立的链表中。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述报文发送处理器将计算延迟时间后的测试报文对应的报文存储结构体释放到所述报文接收内存池中。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述报文发送处理器根据各个测试报文的延迟时间,计算预设时间段内的最小延迟、最大延迟以及平均延迟中的一项或多项。
8.一种报文延迟测试设备,其特征在于,所述报文延迟测试设备包括:至少一个报文发送处理器以及至少一个报文接收处理器,所述报文发送处理器与所述报文接收处理器具有一一对应关系;
所述报文发送处理器,用于获取构建的测试报文,将所述测试报文添加发送时间后发送给待测网络设备;每个所述报文发送处理器构建的测试报文的五元组信息相同,不同的所述报文发送处理器构建的测试报文的五元组信息不同;
所述报文接收处理器,用于接收所述待测网络设备转发的所述测试报文,将所述测试报文添加接收时间后,挂入预先建立的链表中;每一所述报文接收处理器接收的测试报文属于对应的报文发送处理器构建的测试报文;所述链表为每核资源;
所述报文发送处理器,还用于从对应的报文接收处理器的链表中读取所述测试报文的接收时间,根据所述测试报文的发送时间以及接收时间计算所述测试报文的延迟时间。
9.一种计算机可读存储介质,其特征在于,所述机算机可读存储介质中存储有指令,当所述指令在报文转发测试设备上运行时,使得所述报文转发测试设备执行权利要求1-7任一项所述的报文延迟测试方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品在报文转发测试设备上运行时,使得所述报文转发测试设备执行权利要求1-7任一项所述的报文延迟测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910610712.8A CN110380927B (zh) | 2019-07-08 | 2019-07-08 | 一种报文延迟测试方法、设备及存储设备、程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910610712.8A CN110380927B (zh) | 2019-07-08 | 2019-07-08 | 一种报文延迟测试方法、设备及存储设备、程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110380927A true CN110380927A (zh) | 2019-10-25 |
CN110380927B CN110380927B (zh) | 2021-09-14 |
Family
ID=68252424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910610712.8A Active CN110380927B (zh) | 2019-07-08 | 2019-07-08 | 一种报文延迟测试方法、设备及存储设备、程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110380927B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541583A (zh) * | 2020-04-20 | 2020-08-14 | 杭州迪普信息技术有限公司 | 一种分片报文缓存测试系统、方法及装置 |
CN112202637A (zh) * | 2020-09-30 | 2021-01-08 | 西安热工研究院有限公司 | 一种profibus-pa总线网段设备数量的计算方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128690A1 (en) * | 2002-12-31 | 2004-07-01 | Yosef Zohar Ariely | Apparatus, method and a computer readable medium for providing interactive services |
US20080089290A1 (en) * | 2006-10-16 | 2008-04-17 | Motorola, Inc. | Method and apparatus for management of inactive connections for service continuity in an agnostic access Internet protocol multimedia communication |
CN101272290A (zh) * | 2008-05-12 | 2008-09-24 | 中国电信股份有限公司 | Ip网络中路径拥塞状态的测量方法、测量装置和转发装置 |
US20090225669A1 (en) * | 2008-03-07 | 2009-09-10 | Samsung Electronics Co., Ltd. | System and method for wireless communication network having round trip time test |
CN101740138A (zh) * | 2009-12-02 | 2010-06-16 | 中兴通讯股份有限公司 | 一种测试存储器访问时延的方法及系统 |
CN105162655A (zh) * | 2015-08-26 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种网络吞吐量自动化测试方法及系统 |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
CN108366001A (zh) * | 2018-03-05 | 2018-08-03 | 东软集团股份有限公司 | 一种转发测试方法及装置 |
CN108833281A (zh) * | 2018-06-01 | 2018-11-16 | 新华三信息安全技术有限公司 | 一种报文转发方法及网络设备 |
CN109511207A (zh) * | 2019-01-09 | 2019-03-22 | 苏州蓝石新动力有限公司 | 一种灯光同步方法与系统 |
CN109818824A (zh) * | 2018-12-29 | 2019-05-28 | 东软集团股份有限公司 | 一种报文转发测试方法、设备及存储设备、程序产品 |
-
2019
- 2019-07-08 CN CN201910610712.8A patent/CN110380927B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128690A1 (en) * | 2002-12-31 | 2004-07-01 | Yosef Zohar Ariely | Apparatus, method and a computer readable medium for providing interactive services |
US20080089290A1 (en) * | 2006-10-16 | 2008-04-17 | Motorola, Inc. | Method and apparatus for management of inactive connections for service continuity in an agnostic access Internet protocol multimedia communication |
US20090225669A1 (en) * | 2008-03-07 | 2009-09-10 | Samsung Electronics Co., Ltd. | System and method for wireless communication network having round trip time test |
CN101272290A (zh) * | 2008-05-12 | 2008-09-24 | 中国电信股份有限公司 | Ip网络中路径拥塞状态的测量方法、测量装置和转发装置 |
CN101740138A (zh) * | 2009-12-02 | 2010-06-16 | 中兴通讯股份有限公司 | 一种测试存储器访问时延的方法及系统 |
CN105162655A (zh) * | 2015-08-26 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种网络吞吐量自动化测试方法及系统 |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
CN108366001A (zh) * | 2018-03-05 | 2018-08-03 | 东软集团股份有限公司 | 一种转发测试方法及装置 |
CN108833281A (zh) * | 2018-06-01 | 2018-11-16 | 新华三信息安全技术有限公司 | 一种报文转发方法及网络设备 |
CN109818824A (zh) * | 2018-12-29 | 2019-05-28 | 东软集团股份有限公司 | 一种报文转发测试方法、设备及存储设备、程序产品 |
CN109511207A (zh) * | 2019-01-09 | 2019-03-22 | 苏州蓝石新动力有限公司 | 一种灯光同步方法与系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541583A (zh) * | 2020-04-20 | 2020-08-14 | 杭州迪普信息技术有限公司 | 一种分片报文缓存测试系统、方法及装置 |
CN111541583B (zh) * | 2020-04-20 | 2022-01-04 | 杭州迪普信息技术有限公司 | 一种分片报文缓存测试系统、方法及装置 |
CN112202637A (zh) * | 2020-09-30 | 2021-01-08 | 西安热工研究院有限公司 | 一种profibus-pa总线网段设备数量的计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110380927B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Estimating the performance of hypothetical cloud service deployments: A measurement-based approach | |
CN107342913B (zh) | 一种cdn节点的探测方法和装置 | |
CN106470133A (zh) | 系统压力测试方法及装置 | |
CN107404481B (zh) | 用户信息识别方法及装置 | |
CN110034972B (zh) | 服务器压力测试方法和装置 | |
CN109117275A (zh) | 基于数据分片的对账方法、装置、计算机设备及存储介质 | |
CN110380927A (zh) | 一种报文延迟测试方法、设备及存储设备、程序产品 | |
CN108494623A (zh) | 一种网络转发设备的性能测试方法及设备 | |
CN108684042A (zh) | 检测中间人攻击的方法与装置 | |
CN110311988A (zh) | 后端服务器的健康检查方法、负载均衡方法及装置 | |
CN109005208B (zh) | 用于推送信息的方法和装置 | |
CN108667692A (zh) | 一种分布式缓存设备负载均衡的性能测试方法及系统 | |
CN109818824A (zh) | 一种报文转发测试方法、设备及存储设备、程序产品 | |
CN105988922A (zh) | 应用程序的测试方法、装置及服务器 | |
CN105471674B (zh) | 测试服务器性能的方法及系统 | |
CN110248379A (zh) | 无线局域网中基站的性能测试方法及装置 | |
Zaitsev | An evaluation of network response time using a coloured petri net model of switched lan | |
CN112084102A (zh) | 接口压力测试的方法和装置 | |
CN109428733A (zh) | 一种定向流量计费的方法及装置 | |
CN110932879B (zh) | 网络性能测试方法、数据处理设备和存储介质 | |
CN108574610B (zh) | 一种压力测试方法、装置、电子设备及介质 | |
CN109951253A (zh) | 一种数据报文首部校验和生成方法及装置 | |
CN110460486A (zh) | 服务节点的监控方法及系统 | |
WO1999063439A1 (en) | Apparatus and method for testing network applications | |
CN105978807A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |