CN108494623A - 一种网络转发设备的性能测试方法及设备 - Google Patents
一种网络转发设备的性能测试方法及设备 Download PDFInfo
- Publication number
- CN108494623A CN108494623A CN201810210280.7A CN201810210280A CN108494623A CN 108494623 A CN108494623 A CN 108494623A CN 201810210280 A CN201810210280 A CN 201810210280A CN 108494623 A CN108494623 A CN 108494623A
- Authority
- CN
- China
- Prior art keywords
- message
- cpu
- test
- devices
- core
- 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/50—Testing arrangements
-
- 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/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种网络转发设备的性能测试方法及设备,应用于测试设备,包括客户端和服务端,客户端由运行于第一分区的CPU实现,服务端由运行于第二分区的CPU实现,基于RSS算法并根据预先构建的第一报文的四元组信息确定第一CPU,第一CPU将第一报文发送至待测设备,由待测设备转发至第二CPU;第二CPU基于自身的每核会话表对第一报文进行处理,将预先基于第一报文构建的第二报文发送至待测设备,由待测设备转发至第一CPU;第一CPU基于自身的每核会话表对第二报文进行处理;根据第一报文和第二报文的状态确定待测设备的性能测试结果。本发明通过模拟与网络转发设备交互的两个方向的通信连接进行报文的发送、接收,最终基于软件实现网络转发设备的性能测试。
Description
技术领域
本申请涉及数据处理领域,具体涉及一种网络转发设备的性能测试方法及设备。
背景技术
对于网络转发设备的厂商而言,网络转发设备的性能象征着每个厂商的技术实力。随着技术的迅猛发展,网络转发设备的CPU运算能力等显著增强,这使得网络转发设备的转发能力等有了很大的提高。
例如作为网络转发设备的防火墙设备,目前,处于第一阶梯的防火墙设备的每秒吞吐量已经突破160G,每秒新建性能突破30万。随着防火墙设备性能的不断提高,如何测试防火墙设备的性能已然成为一个难题。
现有市场上的测试仪一般都是使用硬件实现的,故而价钱十分昂贵,基本达到上千万一台,并且仅由几家硬件厂商垄断,对于各个网络转发设备的厂商而言,实现对网络转发设备的性能测试都是一笔不小的开销。所以,如何降低网络转发设备的性能测试成本是目前亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种网络转发设备的测试方法及设备。
第一方面,本发明提供了一种网络转发设备的性能测试方法,所述方法应用于测试设备,所述测试设备包括客户端和服务端,所述客户端由运行于第一分区的CPU实现,所述服务端由运行于第二分区的CPU实现,所述方法包括:
基于RSS算法并根据预先构建的第一报文的四元组信息,确定用于发送所述第一报文的第一CPU,所述第一CPU运行于所述第一分区;
所述第一CPU将所述第一报文发送至待测设备,以便由所述待测设备将所述第一报文转发至第二CPU;其中,所述第二CPU运行于所述第二分区;
所述第二CPU基于自身的每核会话表对所述第一报文进行处理,并将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便由所述待测设备将所述第二报文转发至所述第一CPU;
所述第一CPU基于自身的每核会话表对所述第二报文进行处理;
根据所述第一报文和所述第二报文的状态,确定所述待测设备的性能测试结果。
可选的,所述第一CPU将所述第一报文发送至待测设备,以便由所述待测设备将所述第一报文转发至第二CPU,包括:
所述第一CPU将所述第一报文发送至待测设备,以便由所述待测设备对所述第一报文进行源地址转换后转发至第二CPU;所述第二CPU是根据源地址转换后的第一报文的四元组信息确定的。
可选的,所述第二CPU将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便所述待测设备将所述第二报文转发至所述第一CPU,包括:
所述第二CPU将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便所述客户端的网卡接收来自所述待测设备的所述第二报文后,基于RSS算法并根据所述第二报文的四元组信息,将所述第二报文分发至所述第一CPU。
可选的,所述第二CPU将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便所述待测设备将所述第二报文转发至所述第一CPU,包括:
所述第二CPU将预先基于所述第一报文构建的第二报文发送至所述待测设备,并由所述待测设备对所述第二报文进行源地址转换;
所述客户端的网卡接收来自所述待测设备的经过源地址转换后的第二报文后,基于RSS算法并根据所述第二报文的四元组信息,将所述第二报文分发至所述第一CPU。
可选的,所述第二CPU基于自身的每核会话表对所述第一报文进行处理,包括:
所述第二CPU在每核会话查询表中查询所述第一报文对应的每核会话表;并在查询到所述每核会话表后,基于所述每核会话表对所述第一报文进行处理。
可选的,在所述第二CPU未查询到所述每核会话表后,所述方法还包括:
判断所述第一报文是否为用于建立TCP连接的报文;
如果是,则所述第二CPU建立自身的每核会话表。
可选的,所述第一CPU将所述第一报文发送至待测设备之前,所述方法还包括:
判断所述第一报文是否为用于建立TCP连接的报文;
如果是,则所述第一CPU建立自身的每核会话表;
相应的,所述第一CPU基于自身的每核会话表对所述第二报文进行处理,包括:
所述第一CPU在每核会话查询表中查询所述第二报文对应的每核会话表,并在查询到所述每核会话表后,基于所述每核会话表对所述第二报文进行处理。
可选的,所述运行于第一分区的CPU用于处理来自所述待测设备的入口网卡的报文;所述运行于第二分区的CPU用于处理来自所述待测设备的出口网卡的报文。
第二方面,本发明还提供了一种网络转发设备的性能测试设备,包括客户端和服务端,所述客户端由运行于第一分区的CPU实现,所述服务端由运行于第二分区的CPU实现;所述客户端包括第一CPU,所述服务端包括第二CPU;
所述第一CPU,用于将第一报文发送至待测设备,以便所述待测设备对所述第一报文转发至所述第二CPU;其中,所述第二CPU运行于所述第二分区;所述第一CPU是基于RSS算法并根据预先构建的第一报文的四元组信息确定的;
所述第二CPU,用于基于自身的每核会话表对所述第一报文进行处理,并将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便由所述待测设备将所述第二报文转发至所述第一CPU;
所述第一CPU,还用于基于自身的每核会话表对所述第二报文进行处理;
其中,所述第一报文和所述第二报文的状态用于确定所述待测设备的性能测试结果。
可选的,所述第一CPU,具体用于将所述第一报文发送至待测设备,以便由所述待测设备对所述第一报文进行源地址转换后转发至第二CPU;所述第二CPU是根据源地址转换后的第一报文的四元组信息确定的。
可选的,所述第二CPU,具体用于将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便所述客户端的网卡接收来自所述待测设备的所述第二报文后,基于RSS算法并根据所述第二报文的四元组信息,将所述第二报文分发至所述第一CPU。
可选的,所述第二CPU,具体用于将预先基于所述第一报文构建的第二报文发送至所述待测设备,并由所述待测设备对所述第二报文进行源地址转换;
所述客户端的网卡,用于接收来自所述待测设备的经过源地址转换后的第二报文后,基于RSS算法并根据所述第二报文的四元组信息,将所述第二报文分发至所述第一CPU。
可选的,所述第二CPU,具体用于在每核会话查询表中查询所述第一报文对应的每核会话表;并在查询到所述每核会话表后,基于所述每核会话表对所述第一报文进行处理。
可选的,所述第二CPU,还用于在未查询到所述每核会话表后,判断所述第一报文是否为用于建立TCP连接的报文;如果是,则所述第二CPU建立自身的每核会话表。
可选的,所述第一CPU,还用于在将所述第一报文发送至待测设备之前,判断所述第一报文是否为用于建立TCP连接的报文;如果是,则所述第一CPU建立自身的每核会话表;
相应的,所述第一CPU,具体用于在每核会话查询表中查询所述第二报文对应的每核会话表,并在查询到所述每核会话表后,基于所述每核会话表对所述第二报文进行处理。
可选的,所述运行于第一分区的CPU,用于处理来自所述待测设备的入口网卡的报文;所述运行于第二分区的CPU,用于处理来自所述待测设备的出口网卡的报文。
第三方面,本发明还提供了一种计算机可读存储介质,所述机算机可读存储介质中存储有指令,当所述指令在设备上运行时,使得所述设备执行上述任一项所述的网络转发设备的性能测试方法。
第四方面,本发明还提供了一种网络转发设备的性能测试设备,所述设备包括存储器和处理器,
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于运行所述程序代码,其中,所述程序代码运行时执行上述任一项所述的网络转发设备的性能测试方法。
本发明提供的网络转发设备的性能测试方法能够基于软件实现网络转发设备的性能测试,其中,测试设备包括客户端和服务端,该客户端用于模拟在实际应用场景中与网络转发设备交互的客户端的收发包功能,该服务端用于模拟在实际应用场景中与网络转发设备交互的服务端的收发包功能,通过模拟与网络转发设备交互的两个方向的通信连接进行报文的发送、接收,最终基于软件实现网络转发设备的性能测试。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的测试设备的架构图;
图2为本发明实施例提供的一种网络转发设备的性能测试方法的流程图;
图3为本发明实施例提供的一种网络转发设备的性能测试设备的结构示意图;
图4为本发明实施例提供的另一种网络转发设备的性能测试设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着网络转发设备的CPU运算性能不断提高,对用于测试网络转发设备性能的测试装置(也称测试仪)的计算水平和处理能力等要求也越来越高。目前,通过软件的方式很难实现能够满足如此高要求的测试装置,所以,现有市场上的测试装置都是使用硬件实现的,价格较贵。
网络转发设备的测试装置需要实现对网络转发设备的各个方面的性能测试,以对网络转发设备的TCP(Transmission Control Protocol,传输控制协议)新建性能测试为例,TCP新建构造的三次握手、四次断开连接基本都是64B的小包,而CPU对小包的转发处理能力有限,且在TCP新建过程中需要维护会话表,这使得整个TCP新建过程比较复杂,维护会话表过程中对会话表的新建、拆除,多核之间的并发处理涉及加锁的资源竞争等无疑使得测试装置的整体性能很难实现软件上CPU并发性能呈线性增长。本发明基于软件实现网络转发设备的测试装置,将多核之间的并发处理涉及到的资源设计为每核独立资源,避免资源竞争,实现无锁处理,能够做到测试装置的整体性能实现软件上CPU并发性能呈线性增长。
另外,对于网络转发设备的NAT(Network Address Translation,网络地址转换)性能测试,因为客户端发送的报文到达待测设备后,待测设备会进行NAT策略的匹配,并进行源地址转换snat,即将报文的源ip地址更改为转换后trans_ip地址,再将进行snat的报文发送至服务端。也就是说,经过snat的报文的五元组信息对于测试装置是未知的,所以,nat性能测试的实现难度较大,目前并没有基于软件实现该性能测试的装置。
本发明提供的网络转发设备的性能测试方法能够基于软件实现网络转发设备的性能测试,其中,测试设备包括客户端和服务端,该客户端用于模拟在实际应用场景中与网络转发设备交互的客户端的收发包功能,该服务端用于模拟在实际应用场景中与网络转发设备交互的服务端的收发包功能,通过模拟与网络转发设备交互的两个方向的通信连接进行报文的发送、接收,最终实现网络转发设备的性能测试。
参考图1,为本发明提供的测试设备的架构图。实际应用中,本发明利用Numa(NonUniform Memory Access;非一致内存访问)架构的设备实现测试设备,其中测试设备至少包括第一分区(以下称为Numa0)和第二分区(以下称为Numa1),运行于第一分区的CPU用于实现测试设备的客户端,运行于第二分区的CPU用于实现测试设备的服务端。其中,运行于Numa0的cpu1和cpu2用于实现测试设备的客户端,运行于Numa1的cpu3和cpu4用于实现测试设备的服务端。
为了避免多核资源竞争,提高测试设备的处理能力,使得测试设备能够满足对高性能的网络转发设备的测试要求,本发明将多核之间的并发处理涉及到的资源设计为每核独立资源,包括将会话表设计为每核独立资源,每个CPU只需要无锁查询自身的会话表即可实现对报文的处理,有效避免了多核资源竞争的问题,使得测试设备的处理能力提高,能够实现对网络转发设备测试的各种场景的模拟需求。
另外,本发明的测试设备设计为,将运行于Numa0的CPU只与网络转发设备(以下也称待测设备)的入口网卡存在报文交互,将运行于Numa1的CPU只与网络转发设备的出口网卡存在报文交互,这样的设计使得各个分区的CPU只需要处理本分区的报文,不需要跨分区处理其他分区的报文,避免了跨分区导致的额外性能开销,进一步的提高了测试设备的处理能力,从而提高了整体性能。
本发明为了避免多核资源竞争,将会话表设计为每核独立资源,为了支持将会话表设计为每核独立资源的实现方式,本发明需要保证属于同一会话的报文由同一个CPU进行处理,例如,图1中与cpu1发出的报文属于同一会话的报文需要保证由cpu1接收并处理。为此,本发明的设计思路是,利用网卡硬件收包RSS算法,基于报文的四元组信息(sip,sport,dip,dport)对接收到的报文进行分发,也就是说,根据报文的四元组信息确定用于处理该报文的CPU。
一种场景下,用于实现测试设备的客户端的CPU与待测设备进行交互,由于CPU主动向待测设备发出的报文是预先构建的,如报文的五元组信息是(sip,sport,dip,dport,protocol),而待测设备针对该报文回复的报文的五元组信息应该是(dip,dport,sip,sport,protocol),可见待测设备针对该报文回复的报文的四元组信息(dip,dport,sip,sport)正好是该报文的四元组信息(sip,sport,dip,dport)的逆序,protocol字段不变。所以,依照上述规律,可以根据预先构建的报文的五元组信息预测出待测设备针对该报文回复的报文的五元组信息,由于待测设备回复的报文是基于网卡硬件收包RSS算法进行分发的,所以,可以直接预测出该回复的报文被分发到的CPU,也就是说,可以预测出用于处理该回复的报文的CPU。为了实现将属于同一会话的报文由同一个CPU进行处理,本发明将该预测到的CPU作为该预先构建的报文的发送方,这样即可实现该报文的发送方与针对该报文回复的报文的接收方为同一个CPU,保证了属于同一会话的报文由同一个CPU处理。因此,本发明可以将多核之间的并发处理涉及的资源(如会话表)设计为每核独立资源,有效避免了多核资源竞争的问题,使得测试设备的处理能力提高。
另一种场景下,用于实现测试设备的服务端的CPU与待测设备进行交互,由于在nat测试场景下待测设备将报文发送至服务端的CPU之前需要对报文进行nat,如上述来自客户端的CPU的报文的五元组信息是(sip,sport,dip,dport,protocol),待测设备对其进行nat后的报文的五元组信息是(dip,dport,trans_ip,trans_port,protocol),所以,无法预测出服务端的CPU接收到的报文的五元组信息,也就无法预测到用于处理该报文的CPU。
基于此,针对属于同一会话的报文,本发明在客户端的CPU和服务端的CPU分别构建各自的会话表,其中,客户端的CPU构建的会话表称为左半连接会话表,服务端的CPU构建的会话表称为右半连接会话表,各个会话表均属于每核独立资源。客户端的CPU基于左半连接会话表实现对报文的处理,而服务端的CPU基于右半连接会话表实现对报文的处理。
利用满足上述设计方式的测试设备,本发明实施例提供了一种网络转发设备的性能测试方法,参考图2,为本发明实施例提供的一种网络转发设备的性能测试方法的流程图。
具体的,该网络转发设备的性能测试方法应用于该测试设备,该测试设备包括客户端和服务端,客户端由运行于第一分区的CPU实现,服务端由运行于第二分区的CPU实现。具体的,该方法包括:
S201:基于RSS算法并根据预先构建的第一报文的四元组信息,确定用于发送所述第一报文的第一CPU,所述第一CPU运行于所述第一分区。
本发明实施例中,为了提高测试设备的测试性能,可以预先构建若干用于测试的报文,组成测试报文集合,以便在性能测试时能够直接从测试报文集合中获取报文进行发送即可。
对于非网络地址转换nat场景,本发明实施例可以根据预设的五元组信息的范围,确定可排列组合的多个五元组信息,然后根据确定的五元组信息确定测试报文集合。由于测试报文集合中的IP地址范围基本为连续的,所以,基于RSS算法确定的用于发送各个报文的CPU的方式,能够保证客户端的各个CPU被分配的报文发送任务是负载均衡的,即各个CPU收发包数据基本一致。
实际应用中,测试设备的网卡利用网卡硬件收包RSS算法对接收到的报文进行分发,具体的,网卡根据接收到的报文的五元组信息中的四元组信息(dip,dport,sip,sport),计算哈希结果值rss_value。假设用于实现客户端的CPU的个数为N,则rss_hash=rss_value mod N,rss_hash即可确定用于处理该报文的CPU。例如,将报文的分发结果分为N类,rss_hash为1,则将cpu1确定为用于处理该报文的CPU,rss_hash为2,则将cpu2确定为用于处理该报文的CPU,依此类推。
利用上述方式能够确定出用于处理与第一报文属于同一会话的回复报文的CPU,为了提高测试设备的测试性能,本发明将该CPU确定为用于发送第一报文的CPU,即实现第一报文的发送方和接收方为同一CPU。
S202:所述第一CPU将所述第一报文发送至待测设备,以便由所述待测设备将所述第一报文转发至第二CPU;其中,所述第二CPU运行于所述第二分区。
本发明实施例中,在确定用于发送第一报文的第一CPU后,由第一CPU将第一报文发送至待测设备,其中,待测设备为网络转发设备,如防火墙设备等,入口网卡即为待测设备与客户端的网卡连接的网卡。在nat测试场景下,待测设备在接收到第一报文后,对第一报文进行源地址转换snat,即将报文的dip,dport转换为trans_ip,trans_port,得到snat后的第一报文,并将其发送至服务端,由服务端的网卡基于RSS算法根据snat后的第一报文的四元组信息确定用于处理该报文的第二CPU。而在非nat测试场景下,待测设备在接收到第一报文后,直接将第一报文转发至服务端,并由服务端的网卡基于RSS算法根据第一报文的四元组信息确定第二CPU即可。
S203:所述第二CPU基于自身的每核会话表对所述第一报文进行处理,并将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便由所述待测设备将所述第二报文转发至所述第一CPU。
一种情况下,第二CPU接收到第一报文后,在每核会话查询表中查询第一报文对应的每核会话表,如果未查询到该第一报文对应的会话表,则判断该第一报文是否为用于建立TCP连接的报文,如SYN报文,如果是,则为该第一报文建立会话表,该会话表为每核独立资源;如果否,则向待测设备发送reset重置报文,以便要求新的测试报文的发送。
另一种情况下,第二CPU接收到第一报文后,如果查询到第一报文对应的会话表,则基于该每核会话表对第一报文进行处理,并记录处理结果,以便用于确定待测设备最终的测试结果。
另外,第二CPU预先基于第一报文构建第二报文,以使第二报文的四元组信息与第一CPU构建的第一报文的四元组信息是逆序关系,protocol字段不变,以保证发出第一报文的第一CPU能够对第二报文进行处理。
实际应用中,在第二CPU接收到第一报文后,将预先构建的第二报文返回至待测设备,并由待测设备转发至第一CPU。具体的,第二CPU在接收到第一报文之后,向待测设备的出口网卡发送基于第一报文构建的第二报文,在待测设备接收到第二报文后,将其转发至客户端的网卡,由该网卡对第二报文进行分发。由于第一报文和第二报文属于同一会话,则第一报文和第二报文的四元组信息是逆序的关系,客户端的网卡基于RSS算法能够将第二报文分发至第一CPU,使得同一会话的报文能够被客户端的同一CPU处理,从而使得用于处理接收到的报文的会话表可以设置为每核独立资源。其中,待测设备的出口网卡与服务端的网卡相连,待测设备的入口网卡与客户端的网卡相连。
在nat测试场景下,第二CPU将第二报文发送至待测设备后,待测设备会对第二报文进行源地址转化,并将经过源地址转换后的第二报文转发至客户端,当客户端的网卡接收到来自待测设备的第二报文后,基于RSS算法并根据该第二报文的四元组信息,将其分发至第一CPU,保证了同一会话的第一报文和第二报文由客户端的同一CPU处理,从而保证了用于处理报文的会话表的每核独立资源的设置,有效避免多核资源竞争。
S204:所述第一CPU基于自身的每核会话表对所述第二报文进行处理。
实际应用中,在第一CPU发送第一报文之前,首先判断第一报文是否为用于建立TCP连接的报文,如果是,则第一CPU建立自身的每核会话表。如果否,则继续完成对第一报文的发送。在第一CPU接收到针对第一报文的回复报文即第二报文时,首先在每核会话查询表中查询第二报文对应的每核会话表,并在查询到会话表后,基于该每核会话表对第二报文进行处理。
S205:根据所述第一报文和所述第二报文的状态,确定所述待测设备的性能测试结果。
本发明实施例中,基于第一CPU和第二CPU的报文收发情况,确定待测设备的性能测试结果,例如,第一CPU发送至第二CPU的第一报文是否被第二CPU接收到,以及,第二CPU向第一CPU返回第二报文后,第一CPU是否准确接收到等。如果第一CPU和第二CPU的报文收发都正常,则可以确定该待测设备性能良好,否则性能较差,需要进一步对待测设备改进。
实际应用中,通过测试设备模拟客户端和服务端,分别与待测设备进行报文的收发过程,以测试待测设备的性能。例如,可以通过获取的第一报文和第二报文的状态,确定待测设备的性能测试结果。第一报文和第二报文的状态可以是转发成功、转发失败、重传成功或者重传失败等。性能测试结果可以根据上述第一报文和第二报文的状态计算出报文的转发成功率、报文的转发速率、重传率、重传成功率等,即为待测设备的性能测试结果。举例说明,可以根据成功发送与接收第一报文和第二报文的情况,衡量待测设备的转发能力。当然,也可以根据其他指标得到测试结果,在此不进行限定。
本发明实施例提供的网络转发设备的性能测试方法,利用运行于第一分区的CPU实现客户端,用于模拟实际场景中与待测设备交互的客户端,同时,利用运行于第二分区的CPU实现服务端,用于模拟实际场景中与待测设备交互的服务端。具体的,首先确定用于发送第一报文的第一CPU,并由第一CPU将第一报文发送至待测设备,待测设备将第一报文转发至第二CPU后,第二CPU基于自身的每核会话表对第一报文进行处理,并将预先基于第一报文构建的第二报文发送至待测设备,以便由待测设备将第二报文转发至第一CPU,最终第一CPU基于自身的每核会话表对第二报文进行处理。本发明实施例通过模拟与网络转发设备交互的客户端和服务端,以软件的形式实现了对网络转发设备的性能测试,与现有的硬件测试仪相比,降低了对网络转发设备性能测试的成本。
另外,由于属于同一会话的报文由同一个CPU进行处理,所以本发明实施例可以将多核之间的并发处理涉及到的资源设计为每核独立资源,包括每核会话表,有效避免了多核资源竞争的问题,使得测试设备的处理能力提高。
与方法实施例相对应的,本发明实施例还提供了一种网络转发设备的性能测试设备,参考图3,为本发明实施例提供的一种网络转发设备的性能测试设备的结构示意图。其中,所述设备包括客户端301和服务端302,所述客户端由运行于第一分区的CPU实现,所述服务端由运行于第二分区的CPU实现;所述客户端包括第一CPU303,所述服务端包括第二CPU304;
所述第一CPU303,用于将第一报文发送至待测设备,以便所述待测设备对所述第一报文转发至所述第二CPU;其中,所述第二CPU运行于所述第二分区;所述第一CPU是基于RSS算法并根据预先构建的第一报文的四元组信息确定的;
所述第二CPU304,用于基于自身的每核会话表对所述第一报文进行处理,并将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便由所述待测设备将所述第二报文转发至所述第一CPU;
所述第一CPU303,还用于基于自身的每核会话表对所述第二报文进行处理;
其中,所述第一报文和所述第二报文的状态用于确定所述待测设备的性能测试结果。
所述第一CPU,具体用于将所述第一报文发送至待测设备,以便由所述待测设备对所述第一报文进行源地址转换后转发至第二CPU;所述第二CPU是根据源地址转换后的第一报文的四元组信息确定的。
所述第二CPU,具体用于将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便所述客户端的网卡接收来自所述待测设备的所述第二报文后,基于RSS算法并根据所述第二报文的四元组信息,将所述第二报文分发至所述第一CPU。
所述第二CPU,具体用于将预先基于所述第一报文构建的第二报文发送至所述待测设备,并由所述待测设备对所述第二报文进行源地址转换;
所述客户端的网卡,用于接收来自所述待测设备的经过源地址转换后的第二报文后,基于RSS算法并根据所述第二报文的四元组信息,将所述第二报文分发至所述第一CPU。
所述第二CPU,具体用于在每核会话查询表中查询所述第一报文对应的每核会话表;并在查询到所述每核会话表后,基于所述每核会话表对所述第一报文进行处理。
所述第二CPU,还用于在未查询到所述每核会话表后,判断所述第一报文是否为用于建立TCP连接的报文;如果是,则所述第二CPU建立自身的每核会话表。
所述第一CPU,还用于在将所述第一报文发送至待测设备之前,判断所述第一报文是否为用于建立TCP连接的报文;如果是,则所述第一CPU建立自身的每核会话表;
相应的,所述第一CPU,具体用于在每核会话查询表中查询所述第二报文对应的每核会话表,并在查询到所述每核会话表后,基于所述每核会话表对所述第二报文进行处理。
所述运行于第一分区的CPU,用于处理来自所述待测设备的入口网卡的报文;所述运行于第二分区的CPU,用于处理来自所述待测设备的出口网卡的报文。
本发明提供的网络转发设备的性能测试设备,能够基于软件实现网络转发设备的性能测试,其中,测试设备包括客户端和服务端,该客户端用于模拟在实际应用场景中与网络转发设备交互的客户端的收发包功能,该服务端用于模拟在实际应用场景中与网络转发设备交互的服务端的收发包功能,通过模拟与网络转发设备交互的两个方向的通信连接进行报文的发送、接收,最终实现网络转发设备的性能测试。
另外,由于属于同一会话的报文由同一个CPU进行处理,所以本发明实施例可以将多核之间的并发处理涉及到的资源设计为每核独立资源,包括每核会话表,有效避免了多核资源竞争的问题,使得测试设备的处理能力提高。
相应的,本发明实施例还提供一种网络转发设备的性能测试设备,参见图4所示,可以包括:
处理器401、存储器402、输入装置403和输出装置404。网络转发设备的性能测试设备中的处理器401的数量可以一个或多个,图4中以一个处理器为例。在本发明的一些实施例中,处理器401、存储器402、输入装置403和输出装置404可通过总线或其它方式连接,其中,图4中以通过总线连接为例。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行网络转发设备的性能测试设备的各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置403可用于接收输入的数字或字符信息,以及产生与网络转发设备的性能测试设备的用户设置以及功能控制有关的信号输入。
具体在本实施例中,处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现上述网络转发设备的性能测试方法中的各种功能。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请实施例所提供的一种网络转发设备的性能测试方法及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种网络转发设备的性能测试方法,其特征在于,所述方法应用于测试设备,所述测试设备包括客户端和服务端,所述客户端由运行于第一分区的CPU实现,所述服务端由运行于第二分区的CPU实现,所述方法包括:
基于RSS算法并根据预先构建的第一报文的四元组信息,确定用于发送所述第一报文的第一CPU,所述第一CPU运行于所述第一分区;
所述第一CPU将所述第一报文发送至待测设备,以便由所述待测设备将所述第一报文转发至第二CPU;其中,所述第二CPU运行于所述第二分区;
所述第二CPU基于自身的每核会话表对所述第一报文进行处理,并将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便由所述待测设备将所述第二报文转发至所述第一CPU;
所述第一CPU基于自身的每核会话表对所述第二报文进行处理;
根据所述第一报文和所述第二报文的状态,确定所述待测设备的性能测试结果。
2.根据权利要求1所述的方法,其特征在于,所述第一CPU将所述第一报文发送至待测设备,以便由所述待测设备将所述第一报文转发至第二CPU,包括:
所述第一CPU将所述第一报文发送至待测设备,以便由所述待测设备对所述第一报文进行源地址转换后转发至第二CPU;所述第二CPU是根据源地址转换后的第一报文的四元组信息确定的。
3.根据权利要求1所述的方法,其特征在于,所述第二CPU将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便所述待测设备将所述第二报文转发至所述第一CPU,包括:
所述第二CPU将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便所述客户端的网卡接收来自所述待测设备的所述第二报文后,基于RSS算法并根据所述第二报文的四元组信息,将所述第二报文分发至所述第一CPU。
4.根据权利要求2所述的方法,其特征在于,所述第二CPU将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便所述待测设备将所述第二报文转发至所述第一CPU,包括:
所述第二CPU将预先基于所述第一报文构建的第二报文发送至所述待测设备,并由所述待测设备对所述第二报文进行源地址转换;
所述客户端的网卡接收来自所述待测设备的经过源地址转换后的第二报文后,基于RSS算法并根据所述第二报文的四元组信息,将所述第二报文分发至所述第一CPU。
5.根据权利要求1所述的方法,其特征在于,所述第二CPU基于自身的每核会话表对所述第一报文进行处理,包括:
所述第二CPU在每核会话查询表中查询所述第一报文对应的每核会话表;并在查询到所述每核会话表后,基于所述每核会话表对所述第一报文进行处理。
6.根据权利要求5所述的方法,其特征在于,在所述第二CPU未查询到所述每核会话表后,所述方法还包括:
判断所述第一报文是否为用于建立TCP连接的报文;
如果是,则所述第二CPU建立自身的每核会话表。
7.根据权利要求1所述的方法,其特征在于,所述第一CPU将所述第一报文发送至待测设备之前,所述方法还包括:
判断所述第一报文是否为用于建立TCP连接的报文;
如果是,则所述第一CPU建立自身的每核会话表;
相应的,所述第一CPU基于自身的每核会话表对所述第二报文进行处理,包括:
所述第一CPU在每核会话查询表中查询所述第二报文对应的每核会话表,并在查询到所述每核会话表后,基于所述每核会话表对所述第二报文进行处理。
8.根据权利要求1所述的方法,其特征在于,所述运行于第一分区的CPU用于处理来自所述待测设备的入口网卡的报文;所述运行于第二分区的CPU用于处理来自所述待测设备的出口网卡的报文。
9.一种网络转发设备的性能测试设备,其特征在于,包括客户端和服务端,所述客户端由运行于第一分区的CPU实现,所述服务端由运行于第二分区的CPU实现;所述客户端包括第一CPU,所述服务端包括第二CPU;
所述第一CPU,用于将第一报文发送至待测设备,以便所述待测设备对所述第一报文转发至所述第二CPU;其中,所述第二CPU运行于所述第二分区;所述第一CPU是基于RSS算法并根据预先构建的第一报文的四元组信息确定的;
所述第二CPU,用于基于自身的每核会话表对所述第一报文进行处理,并将预先基于所述第一报文构建的第二报文发送至所述待测设备,以便由所述待测设备将所述第二报文转发至所述第一CPU;
所述第一CPU,还用于基于自身的每核会话表对所述第二报文进行处理;
其中,所述第一报文和所述第二报文的状态用于确定所述待测设备的性能测试结果。
10.根据权利要求9所述的设备,其特征在于,
所述第一CPU,具体用于将所述第一报文发送至待测设备,以便由所述待测设备对所述第一报文进行源地址转换后转发至第二CPU;所述第二CPU是根据源地址转换后的第一报文的四元组信息确定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810210280.7A CN108494623B (zh) | 2018-03-14 | 2018-03-14 | 一种网络转发设备的性能测试方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810210280.7A CN108494623B (zh) | 2018-03-14 | 2018-03-14 | 一种网络转发设备的性能测试方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108494623A true CN108494623A (zh) | 2018-09-04 |
CN108494623B CN108494623B (zh) | 2020-07-10 |
Family
ID=63339047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810210280.7A Active CN108494623B (zh) | 2018-03-14 | 2018-03-14 | 一种网络转发设备的性能测试方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108494623B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109818824A (zh) * | 2018-12-29 | 2019-05-28 | 东软集团股份有限公司 | 一种报文转发测试方法、设备及存储设备、程序产品 |
CN111338861A (zh) * | 2020-02-14 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 基于rss的网卡性能测试方法、装置、设备及存储介质 |
CN112039916A (zh) * | 2020-09-07 | 2020-12-04 | 北京天融信网络安全技术有限公司 | 基于opc协议的通信方法、装置、电子设备及存储介质 |
CN112737890A (zh) * | 2020-12-29 | 2021-04-30 | 上海微波技术研究所(中国电子科技集团公司第五十研究所) | 一种防止网络震荡导致网络测试仪中断的方法及系统 |
CN112929277A (zh) * | 2019-12-06 | 2021-06-08 | 华为技术有限公司 | 一种报文处理方法及装置 |
CN113098794A (zh) * | 2021-03-30 | 2021-07-09 | 郑州信大捷安信息技术股份有限公司 | 利用二次分流实现隧道报文对称rss处理的方法及系统 |
CN113438125A (zh) * | 2021-06-08 | 2021-09-24 | 迈普通信技术股份有限公司 | 一种测试方法和系统 |
CN114900450A (zh) * | 2022-04-27 | 2022-08-12 | 北京计算机技术及应用研究所 | 一种基于高速数据处理平台的网络转发性能测试方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296131A (zh) * | 2008-06-11 | 2008-10-29 | 北京星网锐捷网络技术有限公司 | 一种交换机连通性测试方法、装置及系统 |
CN101847113A (zh) * | 2010-05-21 | 2010-09-29 | 北京广利核系统工程有限公司 | 一种系统测试确认装置及方法 |
CN103560928A (zh) * | 2013-10-22 | 2014-02-05 | 东软集团股份有限公司 | 测试网络设备转发性能的方法及系统 |
US20150020073A1 (en) * | 2011-10-25 | 2015-01-15 | Dell Products, Lp | Network Traffic Control by Association of Network Packets and Processes |
CN105450792A (zh) * | 2015-12-23 | 2016-03-30 | 东软集团股份有限公司 | 用于多核转发网络地址端口转换的端口分配方法和装置 |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
CN107612840A (zh) * | 2017-09-26 | 2018-01-19 | 东软集团股份有限公司 | 一种四层负载均衡设备的数据处理方法及装置 |
-
2018
- 2018-03-14 CN CN201810210280.7A patent/CN108494623B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296131A (zh) * | 2008-06-11 | 2008-10-29 | 北京星网锐捷网络技术有限公司 | 一种交换机连通性测试方法、装置及系统 |
CN101847113A (zh) * | 2010-05-21 | 2010-09-29 | 北京广利核系统工程有限公司 | 一种系统测试确认装置及方法 |
US20150020073A1 (en) * | 2011-10-25 | 2015-01-15 | Dell Products, Lp | Network Traffic Control by Association of Network Packets and Processes |
CN103560928A (zh) * | 2013-10-22 | 2014-02-05 | 东软集团股份有限公司 | 测试网络设备转发性能的方法及系统 |
CN105450792A (zh) * | 2015-12-23 | 2016-03-30 | 东软集团股份有限公司 | 用于多核转发网络地址端口转换的端口分配方法和装置 |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
CN107612840A (zh) * | 2017-09-26 | 2018-01-19 | 东软集团股份有限公司 | 一种四层负载均衡设备的数据处理方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109818824B (zh) * | 2018-12-29 | 2020-12-29 | 东软集团股份有限公司 | 一种报文转发测试方法、设备及存储设备、程序产品 |
CN109818824A (zh) * | 2018-12-29 | 2019-05-28 | 东软集团股份有限公司 | 一种报文转发测试方法、设备及存储设备、程序产品 |
CN112929277A (zh) * | 2019-12-06 | 2021-06-08 | 华为技术有限公司 | 一种报文处理方法及装置 |
CN112929277B (zh) * | 2019-12-06 | 2024-03-05 | 华为云计算技术有限公司 | 一种报文处理方法及装置 |
CN111338861A (zh) * | 2020-02-14 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 基于rss的网卡性能测试方法、装置、设备及存储介质 |
CN111338861B (zh) * | 2020-02-14 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 基于rss的网卡性能测试方法、装置、设备及存储介质 |
CN112039916A (zh) * | 2020-09-07 | 2020-12-04 | 北京天融信网络安全技术有限公司 | 基于opc协议的通信方法、装置、电子设备及存储介质 |
CN112737890B (zh) * | 2020-12-29 | 2022-09-13 | 上海微波技术研究所(中国电子科技集团公司第五十研究所) | 一种防止网络震荡导致网络测试仪中断的方法及系统 |
CN112737890A (zh) * | 2020-12-29 | 2021-04-30 | 上海微波技术研究所(中国电子科技集团公司第五十研究所) | 一种防止网络震荡导致网络测试仪中断的方法及系统 |
CN113098794A (zh) * | 2021-03-30 | 2021-07-09 | 郑州信大捷安信息技术股份有限公司 | 利用二次分流实现隧道报文对称rss处理的方法及系统 |
CN113098794B (zh) * | 2021-03-30 | 2022-04-05 | 郑州信大捷安信息技术股份有限公司 | 利用二次分流实现隧道报文对称rss处理的方法及系统 |
CN113438125B (zh) * | 2021-06-08 | 2023-02-28 | 迈普通信技术股份有限公司 | 一种测试方法和系统 |
CN113438125A (zh) * | 2021-06-08 | 2021-09-24 | 迈普通信技术股份有限公司 | 一种测试方法和系统 |
CN114900450A (zh) * | 2022-04-27 | 2022-08-12 | 北京计算机技术及应用研究所 | 一种基于高速数据处理平台的网络转发性能测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108494623B (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108494623A (zh) | 一种网络转发设备的性能测试方法及设备 | |
US11729260B2 (en) | Internet-of-things resource access system and method | |
CN109274707B (zh) | 一种负载调度方法及装置 | |
US8458298B2 (en) | Failover in an internet location coordinate enhanced domain name system | |
US11075821B2 (en) | Method and apparatus for managing field device based on cloud server | |
CN107948324B (zh) | 请求传输系统、方法、装置及存储介质 | |
CN108200165B (zh) | 请求传输系统、方法、装置及存储介质 | |
KR101455434B1 (ko) | 에지 라우팅을 갖는 피어-투-피어 협업 시스템 | |
US20090222583A1 (en) | Client-side load balancing | |
CN108418884A (zh) | 一种传输业务数据的方法、装置及电子设备 | |
CN105635342B (zh) | 建立连接的方法、域名服务器以及存储节点 | |
CN111385203B (zh) | 基于混合云的数据传输方法、装置、设备及存储介质 | |
CN113242272B (zh) | 基于mqtt服务集群的会话处理方法及系统 | |
JP7270036B2 (ja) | ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体 | |
CN105208053A (zh) | 一种实现负载均衡的方法、装置及负载均衡服务系统 | |
EP1073244A1 (en) | Method and system for monitoring dynamic host configuration protocol (DHCP) service in an internet protocol network | |
US20130054817A1 (en) | Disaggregated server load balancing | |
CN108366001A (zh) | 一种转发测试方法及装置 | |
CN112637332B (zh) | 一种服务注册发现方法和系统 | |
CN115883655B (zh) | 服务请求处理方法、装置、电子设备及存储介质 | |
CN103347099B (zh) | 一种数据交互的方法、装置及系统 | |
US20200213233A1 (en) | Balancing load | |
CN105099952B (zh) | 一种资源分配方法及装置 | |
CN109413224A (zh) | 报文转发方法和装置 | |
CN111049915B (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 |