DPDK数据加密处理方法、装置和网络设备与流程

文档序号:20764533发布日期:2020-05-15 18:42阅读:712来源:国知局
DPDK数据加密处理方法、装置和网络设备与流程

本发明涉及通信网络技术领域,特别是涉及一种dpdk数据加密处理方法、装置和网络设备。



背景技术:

随着通信网络技术的发展,在有线通信网络中的网络业务类型不断丰富,小包网络数据占比不断增加,例如语音通信、交互式游戏、基于tcp(transmissioncontrolprotocol,传输控制协议)的交互式软件和控制报文等均采用小包传输。dpdk(dataplanedevelopmentkit,数据平面开发套件)是intel公司开发的快速数据包处理开发套件,可以极大的提高数据处理性能和吞吐量。

而在实际应用中,使用dpdk技术的网络设备需要实现各种通信协议及网络功能。在考虑网络数据安全的应用场景中,数据加密与解密功能是网络必要且核心的功能,常用的加密算法如aes、des、rsa和dsa等都需要进行复杂的逻辑运算,使得cpu时钟消耗急剧增加,因此当小包网络数据在使用dpdk技术的网络设备中进行加密处理后,无法达到线速性能要求。为提升小包网络数据在使用dpdk技术的网络设备中的加密处理性能,传统加密性能提升方式是大多是通过增加硬件加密加速卡实现的。然而,在实现过程中,发明人发现在上述传统加密性能提升方式存在着提升性能的成本较高的问题。



技术实现要素:

基于此,有必要针对上述传统的加密性能提升方式存在的问题,提供一种能够有效降低提升加密性能的成本的dpdk数据加密处理方法、一种dpdk数据加密处理装置、一种网络设备和一种计算机可读存储介质。

为了实现上述目的,本发明实施例提供以下技术方案:

一方面,本发明实施例提供一种dpdk数据加密处理方法,包括:

获取dpdk端口上的待加密报文;

根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列;分类结果包括小包数据或大包数据,小包数据对应dpdk端口队列的优先级高于大包数据对应dpdk端口队列的优先级;

对各dpdk端口队列进行sp调度,分别将各dpdk端口队列中的待加密报文调度至各加密队列;加密队列包括至少两个,且处理小包数据的加密队列的加密门限大于处理大包数据的加密队列的加密门限;

分别根据各加密队列的加密门限,对各加密队列中的待加密报文进行统一加密处理。

在其中一个实施例中,当分类结果为小包数据时,根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列的步骤,包括:

根据待加密报文的长度,确定待加密报文的小包类型;小包类型包括第一小包和第二小包,第一小包的长度小于第二小包的长度;

若待加密报文为第一小包,则将待加密报文放入dpdk端口队列中优先级最高的sp队列。

在其中一个实施例中,根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列的步骤,还包括:

若待加密报文为第二小包,则将待加密报文放入dpdk端口队列中优先级次高的sp队列。

在其中一个实施例中,当分类结果为小包数据时,根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列的步骤,包括:

根据待加密报文的长度,确定待加密报文的小包类型;小包类型包括第一小包、第二小包和第三小包,且第一小包、第二小包和第三小包的长度依次增大;

若待加密报文为第一小包,则将待加密报文放入dpdk端口队列中优先级最高的sp队列。

在其中一个实施例中,根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列的步骤,还包括:

若待加密报文为第二小包,则将待加密报文放入dpdk端口队列中优先级次高的sp队列。

在其中一个实施例中,根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列的步骤,还包括:

若待加密报文为第三小包,则将待加密报文放入dpdk端口队列中优先级最低的sp队列。

在其中一个实施例中,加密队列包括分别对应于第一小包、第二小包、第三小包和大包数据的四个加密队列,各加密队列的加密门限依次减小且对应于大包数据的加密队列的加密门限为1;

分别根据各加密队列的加密门限,对各加密队列中的待加密报文进行统一加密处理的步骤,包括:

分别将各加密队列中的各待加密报文按相应加密门限进行组合,并以相应加密门限为单位进行统一加密处理。

在其中一个实施例中,分别根据各加密队列的加密门限,对各加密队列中的待加密报文进行统一加密处理的步骤,包括:

若设定等待时间结束,处理小包数据的加密队列中的各待加密报文的数量未达到相应加密门限,则直接进行加密处理。

另一方面,还提供一种dpdk数据加密处理装置,包括:

报文获取模块,用于获取dpdk端口上的待加密报文;

报文分类模块,用于根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列;分类结果包括小包数据或大包数据,小包数据对应dpdk端口队列的优先级高于大包数据对应dpdk端口队列的优先级;

报文调度模块,用于对各dpdk端口队列进行sp调度,分别将各dpdk端口队列中的待加密报文调度至各加密队列;加密队列包括至少两个,且处理小包数据的加密队列的加密门限大于处理大包数据的加密队列的加密门限;

加密处理模块,用于分别根据各加密队列的加密门限,对各加密队列中的待加密报文进行统一加密处理。

再一方面,还提供一种网络设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述dpdk数据加密处理方法的步骤。

再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述dpdk数据加密处理方法的步骤。

上述各技术方案中的一个技术方案具有如下优点和有益效果:

上述dpdk数据加密处理方法、装置和网络设备,通过在dpdk端口的8个端口队列中配置出专门用于处理小包数据的sp队列(或称sp类型的调度队列),而大包数据则通过其他普通的dpdk端口队列处理。当dpdk端口接收到待加密报文时,根据报文长度对接收的待加密报文进行分类,确定为小包数据时放入优先级高的sp队列中,确定为大包数据时则放入相对于sp队列优先级较低的其他普通的dpdk端口队列。对各dpdk端口队列进行sp调度,优先调度小包数据同时按照设置的加密门限进行统一加密,减少了小包组合后加密的时延,降低加密小包数据时对cpu时钟周期的消耗,从而达到在保证小包数据业务时延的基础上,大幅提升dpdk数据的加密性能的目的,满足线速性能要求。如此,有效提升了dpdk小包数据加密处理能力,提升小包数据的吞吐量且无需增加设备硬件,有效降低了提升加密性能的成本。

附图说明

图1为一个实施例中dpdk数据加密处理方法的第一流程示意图;

图2为一个实施例中dpdk数据加密处理方法的第二流程示意图;

图3为一个实施例中dpdk数据加密处理方法的第三流程示意图;

图4为一个实施例中报文分类过程示意图;

图5为一个实施例中sp调度过程示意图;

图6为一个实施例中dpdk数据加密处理方法的第四流程示意图;

图7为一个实施例中加密队列示意图;

图8为一个实施例中dpdk数据加密处理方法的第五流程示意图;

图9为一个实施例中dpdk数据加密处理装置的模块结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

需要说明的是,除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体地实施方式的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。

在有线通信网络中,线速是网络数据转发能力的重要衡量指标,线速是指网络设备有足够的能力以全速处理最小的数据封包的转发。以以太网为例,mac帧最小为64字节,网络设备若具备1g的线速转发能力,则每秒须转发约148.8万个报文。若报文为1518字节,则仅需要处理约8.1万个报文。即小包数据(如64字节报文)与大包数据(如1518字节报文)相比,小包数据对线速的要求远远高于大包数据。

intel官方的数据是单核3.6g的cpu处理一个64字节小包数据的能力为90mpps,即每秒约转发9千万个小包数据,每个包消耗80个周期,这个数据只是纯转发的数据,并不涉及任何其他逻辑处理。从表面数据看,使用dpdk可以满足网络数据转发线速的要求。而在实际应用中,使用dpdk技术的网络设备需要实现各种通信协议及网络功能,一个数据报文在经过网络设备后,根据其网络业务类型,需要进行各种逻辑处理,例如报文解析与分类、报文过滤、路由查找、报文压缩、报文加密和解密等,这些逻辑处理均需要消耗大量的cpu时钟周期;在考虑网络数据安全的应用场景中,数据加密与解密功能是网络必要且核心的功能,常用的加密算法如aes、des、rsa和dsa等都需要进行复杂的逻辑运算,cpu时钟周期消耗会急剧增加,多达上千个cpu时钟周期。因此,若64字节小包网络数据(也称小包数据)在基于dpdk技术的网络设备中进行加密处理,则根本无法达到线速性能要求,而需要额外增加设备硬件,例如采用多核或增加加密加速卡(如多网卡),以分摊cpu的加密处理部分的运算负担。然而,通过增加设备硬件的方式来提升加密处理性能,会使得网络设备的设备成本大幅上升。针对上述基于dpdk技术的网络设备中的加密性能提升方式所存在的缺陷,本申请提供以下技术方案:

请参阅图1,在一个实施例中,提供了一种dpdk数据加密处理方法,下面以应用于上述基于dpdk技术的网络设备为例进行具体说明。前述dpdk数据加密处理方法,包括如下步骤s12至s18:

s12,获取dpdk端口上的待加密报文。

可以理解,待加密报文为网络设备中dpdk模块的端口(也即前述的dpdk端口)接收到的网络数据。在实际应用中,dpdk端口对应设置有8个队列,用于存放dpdk端口接收数据流中的各不同业务类型的待加密报文。网络设备可以通过dpdk模块的端口接收外部的网络数据流获取输入的每一待加密报文。

s14,根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列。分类结果包括小包数据或大包数据,小包数据对应dpdk端口队列的优先级高于大包数据对应dpdk端口队列的优先级。

可以理解,不同业务类型的待加密报文按照其字节长度的大小,可以将其划分成小包数据或大包数据两中报文类型,如字节长度属于64字节至512字节长度区间的待加密报文,统一归类为小包数据,字节长度大于512字节的待加密报文则统一归类为大包数据,也即总共两种类型。对于小包数据,可以根据实际应用中所需的性能提升程度,进行更细颗粒度的分类,例如但不限于将字节长度处于64字节至512字节长度区间的各待加密报文,划分为两类、三类或者四类小包数据。

如将字节长度处于64字节至255字节长度区间的各待加密报文分为其中一类小包数据,将字节长度处于256字节至512字节长度区间的各待加密报文分为其中另一类小包数据,这样,加上大包数据则可以将网络数据流中的各待加密报文总共划分为三种类型,报文分类的颗粒度相比上述两种类型的分类方式的颗粒度更细。相应的,可将字节长度处于64字节至127字节长度区间的各待加密报文分为其中一类小包数据,将字节长度处于128字节至255字节长度区间的各待加密报文分为其中另一类小包数据,字节长度处于256字节至512字节长度区间的各待加密报文分为最后一类小包数据;这样,加上大包数据则可以将网络数据流中的各待加密报文总共划分为四种类型,报文分类的颗粒度相比前述三种类型的分类方式的颗粒度更细。对于四类小包数据的划分可以同理理解。报文分类的颗粒度越细,对于通过后续的处理步骤实现加密性能的提升程度越高,具体可以实现的最小分类颗粒度可以由网络设备自身硬件所能支持的处理能力确定。

在各dpdk端口队列中,可以预先将部分dpdk端口队列配置为sp(strictpriority,严格优先级)调度类型的队列(也即sp队列),作为小包数据的专属队列,大包数据则照常放入其他普通的dpdk端口队列中。可以理解,在实际应用中,小包数据如只分为一类,则配置的sp队列可以是一个;而小包数据如分为两类,则配置的sp队列可以是两个;而小包数据如分为三类,则配置的sp队列可以是三个,小包数据的字节长度越短,用于存放该小包数据的sp队列的优先级越高,以优先保证小包数据的调度,保证小包数据的带宽及延迟的控制。对于更细颗粒度的分类方式下,sp队列的配置数量与优先级设置方式可以同理理解。

具体的,对于网络数据流中的任一待加密报文,可以根据该待加密报文的字节长度确定其分类结果,也即将该待加密报文的字节长度与设定的字节区间进行比较判断,以确定该待加密报文的长度所处的字节区间,从而将该待加密报文归类为所处的字节区间对应的类别。若该待加密报文的分类结果为大包数据,则将该待加密报文入队到普通的dpdk端口队列(该队列的优先级相比于sp队列的优先级低)。若该待加密报文的分类结果为小包数据,则将该待加密报文入队到专属的dpdk端口队列中,也即入队至sp队列。

s16,对各dpdk端口队列进行sp调度,分别将各dpdk端口队列中的待加密报文调度至各加密队列。加密队列包括至少两个,且处理小包数据的加密队列的加密门限大于处理大包数据的加密队列的加密门限。

可以理解,网络设备中加密模块配置的加密队列的数量可以根据报文分类的数量来确定,以满足不同类型的待加密报文分别统一加密处理的需要。如不同业务类型的待加密报文按照其字节长度的大小,分为大包数据和一种小包数据两类,则加密模块配置的加密队列的数量为两个,一个用于处理小包数据的加密,另一个则用于处理大包数据的加密。又例如,小包数据分为两种或者以上时,则加密模块配置的加密队列的数量可以是三个或者三个以上,以分别满足不同类型的待加密报文的加密处理需要。每一加密队列均有各自的加密门限,用于确定加密队列每次执行统一加密处理的触发节点,也即当从dpdk端口队列中调度到加密队列的待加密报文的数量达到加密门限时,则进行一次加密处理,以对该加密门限数量个同类的待加密报文统一加密。

加密门限可以根据报文分类中划分的字节长度区间的上限确定,也即加密门限为1518字节与字节长度区间的上限之比并取整数。因此,处理小包数据的加密队列的加密门限会大于处理大包数据的加密队列的加密门限,处理大包数据的加密队列的加密门限通常为1,也即对于大包数据而言,每一个大包数据单独进行加密,而小包数据可以按照加密门限组合起来,每加密门限数量个小包数据统一加密,相当于对大包数据进行加密的效果,这样可以极大地降低加密小包数据对cpu时钟周期的消耗,从而在保证小包数据业务时延的基础上,提升dpdk小包数据加密性能,达到所需的线速能力。

具体的,根据sp调度原理,在分别将各dpdk端口队列中的各类待加密报文调度到各相应的加密队列中,以进行加密处理时,会首先对sp队列中的小包数据进行调度,也即从最高优先级的dpdk端口队列开始调度。当最高优先级的dpdk端口队列为空时,再发送次高优先级的dpdk端口队列中的待加密报文,如此顺序进行调度。采用sp调度策略调度小包数据,可以优先保证小包数据的带宽,同时最大限度降低时延,抵消因下一级加密门限的组合加密带来的延迟。

s18,分别根据各加密队列的加密门限,对各加密队列中的待加密报文进行统一加密处理。

可以理解,不同加密队列的加密门限不同,在各加密队列中,分别按照各加密队列的加密门限将队列中的各待加密报文组合后进行统一加密处理。加密处理过程采用的加密算法为本领域常用的加密算法中的任一种,具体可以根据网络设备具体的加密算法配置确定。

具体的,网络设备可以按照各加密队列的加密门限,分别对各加密队列中的待加密报文进行统一加密处理。以报文类型分为小包数据和大包数据两类为例,处理小包数据的加密队列1的加密门限为2,处理大包数据的加密队列2的加密门限为1,在加密队列1中,每两个待加密报文统一加密,在加密队列2中,单独每个待加密报文进行加密。再以报文类型分为大包数据和两类小包数据的三种类型为例,处理字节长度最小的小包数据的加密队列1的加密门限为5,处理字节长度大的另一类小包数据的加密队列2的加密门限为2,处理大包数据的加密队列3的加密门限为1,在加密队列1中,每五个待加密报文统一加密,在加密队列2中,每两个待加密报文统一加密,在加密队列3中,单独每个待加密报文进行加密。

对于其他分类方式下的统一加密处理可以同理理解。网络设备在对各加密队列中的待加密报文进行统一加密处理的过程中,可以采用常用的平均调度算法及轮询的方式调度各加密队列。

上述dpdk数据加密处理方法,通过在dpdk端口的8个端口队列中配置出专门用于处理小包数据的sp队列(或称sp类型的调度队列),而大包数据则通过其他普通的dpdk端口队列处理。当dpdk端口接收到待加密报文时,根据报文长度对接收的待加密报文进行分类,确定为小包数据时放入优先级高的sp队列中,确定为大包数据时则放入相对于sp队列优先级较低的其他普通的dpdk端口队列。对各dpdk端口队列进行sp调度,优先调度小包数据同时按照设置的加密门限进行统一加密,减少了小包组合后加密的时延,降低加密小包数据时对cpu时钟周期的消耗,从而达到在保证小包数据业务时延的基础上,大幅提升dpdk数据的加密性能的目的,满足线速性能要求。如此,有效提升了dpdk小包数据加密处理能力,提升小包数据的吞吐量且无需增加设备硬件,有效降低了提升加密性能的成本。

请参阅图2,在一个实施例中,当分类结果为小包数据时,关于上述的步骤s14,具体可以包括如下处理步骤s142和s144:

s142,根据待加密报文的长度,确定待加密报文的小包类型;小包类型包括第一小包和第二小包,第一小包的长度小于第二小包的长度。

可以理解,在本实施例中,上述的小包数据可以具体分为两类,因此,与上述的大包数据一起,可以将获取的待加密报文总共划分成三种报文类型:第一小包、第二小包和大包数据。第一小包和第二小包的划分方式可以根据实际应用中需要优先保证的小包数据的字节长度确定,例如但不限于将字节长度处于64字节至255字节长度区间的各待加密报文划分为第一小包,将字节长度处于256字节至512字节长度区间的各待加密报文划分为第二小包。或者将字节长度处于64字节至127字节长度区间的各待加密报文分划分为第一小包,将字节长度处于128字节至512字节长度区间的各待加密报文划分为第二小包。

具体的,网络设备在进行报文分类时,可以根据待加密报文的字节长度与设置的字节长度区间进行比较,确定该待加密报文是第一小包还是第二小包。

s144,若待加密报文为第一小包,则将待加密报文放入dpdk端口队列中优先级最高的sp队列。

可以理解,在各dpdk端口队列中,可以将各dpdk端口队列中的两个配置为sp队列,其中,优先级最高的sp队列用于存放属于第一小包类型的各待加密报文,而优先级次高的sp队列用于存放属于第二小包类型的各待加密报文,以优先保证属于第一小包类型的各待加密报文的带宽,其次是第二小包类型的各待加密报文的带宽,最后是各大包数据的带宽,减少小包数据所在队列的时延。

具体的,当网络设备确定当前获取的待加密报文的小包类型为第一小包时,则将该待加密报文放入最高优先级的sp队列中。以便在后续sp调度过程中,优先调度字节长度最短的第一小包,再调度第二小包,最后调度大包数据,从而可以优先保证第一小包和第二小包的带宽,降低时延。

通过上述的处理步骤,将小包数据分为第一小包和第二小包具体的两类,可以进一步细化报文分类的颗粒度,能够更有效地提升dpdk小包数据加密处理能力,提升小包数据的吞吐量。

在一个实施例中,如图2所示,关于上述的步骤s14,具体还可以包括如下处理步骤s146:

s146,若待加密报文为第二小包,则将待加密报文放入dpdk端口队列中优先级次高的sp队列。

具体的,当网络设备确定当前获取的待加密报文的小包类型为第二小包时,则将该待加密报文放入次高优先级的sp队列中,完成第二小包的入队处理。以便在后续sp调度过程中,优先调度字节长度最短的第一小包,再调度第二小包,最后调度大包数据,从而可以优先保证第一小包和第二小包的带宽,降低时延。

通过上述的处理步骤,将小包数据分为第一小包和第二小包具体的两类,可以进一步细化报文分类的颗粒度,能够更有效地提升dpdk小包数据加密处理能力,提升小包数据的吞吐量。

请参阅图3,在一个实施例中,当分类结果为小包数据时,关于上述的步骤s14,具体可以包括如下处理步骤s141和s143:

s141,根据待加密报文的长度,确定待加密报文的小包类型。小包类型包括第一小包、第二小包和第三小包,且第一小包、第二小包和第三小包的长度依次增大。

可以理解,在本实施例中,上述的小包数据可以具体分为三类,因此,与上述的大包数据一起,可以将获取的待加密报文总共划分成四种报文类型:第一小包、第二小包、第三小包和大包数据。第一小包、第二小包和第三小包的划分方式可以根据实际应用中需要优先保证的小包数据的字节长度确定,例如将字节长度处于64字节至127字节长度区间的各待加密报文划分为第一小包,将字节长度处于128字节至255字节长度区间的各待加密报文划分为第二小包,将字节长度处于256字节至512字节长度区间的各待加密报文划分为第三小包。

具体的,网络设备在进行报文分类时,可以根据待加密报文的字节长度与设置的字节长度区间进行比较,确定该待加密报文是第一小包还是第二小包,或者是第三小包。

s143,若待加密报文为第一小包,则将待加密报文放入dpdk端口队列中优先级最高的sp队列。

可以理解,在各dpdk端口队列中,可以将各dpdk端口队列中的三个配置为sp队列,其中,优先级最高的sp队列用于存放属于第一小包类型的各待加密报文,而优先级次高的sp队列用于存放属于第二小包类型的各待加密报文,优先级最低的sp队列用于存放属于第三小包类型的各待加密报文,以优先保证属于第一小包类型的各待加密报文的带宽,其次是第二小包类型的各待加密报文的带宽,然后是第三小包类型的各待加密报文的带宽,最后是各大包数据的带宽,进一步减少小包数据所在队列的时延。

具体的,当网络设备确定当前获取的待加密报文的小包类型为第一小包时,则将该待加密报文放入最高优先级的sp队列中。以便在后续sp调度过程中,优先调度字节长度最短的第一小包,再调度第二小包,然后调度第三小包,最后调度大包数据,从而可以优先保证第一小包、第二小包和第三小包的带宽,更精细地降低时延。

通过上述的处理步骤,可以优先于第二小包和第三小包的数据调度第一小包的数据,将小包数据分为第一小包、第二小包和第三小包等具体的三类,可以更进一步细化报文分类的颗粒度,能够更加有效地提升dpdk小包数据加密处理能力,进一步提升小包数据的吞吐量。

在一个实施例中,如图3所示,关于上述的步骤s14,具体还可以包括如下处理步骤s145:

s45,若待加密报文为第二小包,则将待加密报文放入dpdk端口队列中优先级次高的sp队列。

具体的,当网络设备确定当前获取的待加密报文的小包类型为第二小包时,则将该待加密报文放入次高优先级的sp队列中,完成第二小包的入队处理。以便在后续sp调度过程中,优先调度字节长度最短的第一小包,再调度第二小包,然后调度第三小包,最后调度大包数据,从而可以优先保证第一小包、第二小包和第三小包的带宽,降低时延。

通过上述的处理步骤,可以优先于第三小包和大包数据调度第二小包的数据,将小包数据分为第一小包、第二小包和第三小包等具体的三类,可以更进一步细化报文分类的颗粒度,能够更加有效地提升dpdk小包数据加密处理能力,进一步提升小包数据的吞吐量。

在一个实施例中,如图3所示,关于上述的步骤s14,具体还可以包括如下处理步骤s147:

s147,若待加密报文为第三小包,则将待加密报文放入dpdk端口队列中优先级最低的sp队列。

具体的,当网络设备确定当前获取的待加密报文的小包类型为第三小包时,则将该待加密报文放入最低高优先级的sp队列中,完成第三小包的入队处理。以便在后续sp调度过程中,优先调度字节长度最短的第一小包,再调度第二小包,然后调度第三小包,最后调度大包数据,从而可以优先保证第一小包、第二小包和第三小包的带宽,降低时延。

通过上述的处理步骤,可以优先于大包数据调度第三小包的数据,更进一步细化报文分类的颗粒度,能够更加有效地提升dpdk小包数据加密处理能力,进一步提升小包数据的吞吐量。

为更直观地理解上述入队处理过程,如图4所示的是四种报文类型下的报文分类过程示意图,如图5所示的是四种报文类型下的sp调度过程示意图。具体的,当dpdk端口收到待加密报文后,首先根据该待加密报文的长度大小进行分类并入队:若该待加密报文的长度位于64字节-127字节区间,则确定为第一小包而放入优先级为7的端口队列(也即优先级为7的sp队列)中。若该待加密报文的长度位于128字节-255字节区间,则确定为第二小包而放入优先级为6(也即优先级为6的sp队列)的端口队列中。若该待加密报文的长度位于256字节-512字节区间,则确定为第三小包而放入优先级为5的端口队列(也即优先级为5的sp队列)中。若该待加密报文的长度大于512字节,则确定为大包数据而放入其他普通dpdk端口队列中。

在sp调度过程中,sp调度策略是严格按照优先级从高到低的次序调度各队列中的数据,当较高优先级的队列为空时,再发送较低优先级的对列中的数据。所以根据sp调度的原理,先调度优先级为7的sp队列中长度在64字节-127字节之间的第一小包数据,再调度优先级为6的sp队列中长度在128字节-255字节之间的第二小包数据;优先级为6的sp队列为空后,再调度优先级为5的sp队列中长度在256字节-512字节之间的第三小包数据。采用sp调度策略调度小包数据可以优先保证小包数据的带宽,同时最大限度降低时延,抵消因下一级小包数据组合加密带来的延迟问题。

请参阅图6,在一个实施例中,加密队列包括分别对应于第一小包、第二小包、第三小包和大包数据的四个加密队列。各加密队列的加密门限依次减小且对应于大包数据的加密队列的加密门限为1。关于上述的步骤s18,可以包括如下处理步骤s182:

s182,分别将各加密队列中的各待加密报文按相应加密门限进行组合,并以相应加密门限为单位进行统一加密处理。

具体的,网络设备在加密队列中,分别按照各加密队列各自的加密门限,将各自的待加密报文进行组合,从而形成以各自的加密门限为单位长度的各组合报文,分别对各组合报文进行统一加密处理。例如:如图7所示的是四个加密队列下的加密队列示意图。加密模块设置四个加密队列,每个队列设置不同的加密个数门限值(也即加密门限)。加密队列0的加密门限值为10,加密队列1的加密门限值为5,加密队列2的加密门限值为2,加密队列3的加密门限值为1。如此,在加密队列0中,每10个小包数据统一加密;在加密队列1中,每5个小包数据统一加密;在加密队列2中,每2个小包数据统一加密;在加密队列3中,单独地每个大包数据分别进行加密。

通过上述的报文组合统一加密,可以将小包数据进行组合加密,相当于转换成大包数据进行加密,降低对cpu资源的消耗,提升dpdk小包数据加密性能,满足所需的线速能力,提升小包网络吞吐率。

请参阅图8,在一个实施例中,关于上述的步骤s18,可以包括如下处理步骤s183:

s183,若设定等待时间结束,处理小包数据的加密队列中的各待加密报文的数量未达到相应加密门限,则直接进行加密处理。

可以理解,设定等待时间是指为处理小包数据的加密队列设置的组合耗时阈值(也称draintime),可以通过网络设备中已有的定时器实现设定等待时间的设置。当加密队列有多个时,例如上述的两个加密队列、三个加密队列或者四个加密队列,相应的,设定等待时间也设置有一个、两个或者三个,处理小包数据的每一加密队列对应的设定等待时间可以不相同,设定等待时间的具体大小可以根据各加密队列中小包业务量(也即小包数据的数量)的大小来确定,只要能够有效避免在小包业务量较小的情况下,出现数据的较大网络延迟的问题即可。

具体的,在实际应用中,网络设备还可以为处理小包数据的加密队列设置设定等待时间。对于处理小包数据的任一加密队列,在设定等待时间内,该任一加密队列中的小包数据(也即各待加密报文)的数量达不到相应的加密门限,网络设备会直接进行加密处理,将当前调度过来的所有小包数据作为整体进行统一加密,防止在小包业务量极其小的情况下,出现数据较大网络延迟。

通过上述的处理步骤,可以在小包数据的统一加密处理过程中,有效避免出现数据较大网络延迟,从而更进一步地提升dpdk小包数据加密性能。

应该理解的是,虽然图1至图3,以及图6和图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图1至图3,以及图6和图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

请参阅图9,在一个实施例中,还提供一种dpdk数据加密处理装置100,包括报文获取模块11、报文分类模块13、报文调度模块15和加密处理模块17。报文获取模块11用于获取dpdk端口上的待加密报文。报文分类模块13用于根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列;分类结果包括小包数据或大包数据,小包数据对应dpdk端口队列的优先级高于大包数据对应dpdk端口队列的优先级。报文调度模块15用于对各dpdk端口队列进行sp调度,分别将各dpdk端口队列中的待加密报文调度至各加密队列;加密队列包括至少两个,且处理小包数据的加密队列的加密门限大于处理大包数据的加密队列的加密门限。加密处理模块17用于分别根据各加密队列的加密门限,对各加密队列中的待加密报文进行统一加密处理。

上述dpdk数据加密处理装置100,通过各模块的协作,当dpdk端口接收到待加密报文时,根据报文长度对接收的待加密报文进行分类,确定为小包数据时放入优先级高的sp队列中,确定为大包数据时则放入相对于sp队列优先级较低的其他普通的dpdk端口队列。对各dpdk端口队列进行sp调度,优先调度小包数据同时按照设置的加密门限进行统一加密,减少了小包组合后加密的时延,降低加密小包数据时对cpu时钟周期的消耗,从而达到在保证小包数据业务时延的基础上,大幅提升dpdk数据的加密性能的目的,满足线速性能要求。如此,有效提升了dpdk小包数据加密处理能力,提升小包数据的吞吐量且无需增加设备硬件,有效降低了提升加密性能的成本。

在一个实施例中,当分类结果为小包数据时,上述的报文分类模块13具体可以用于根据待加密报文的长度,确定待加密报文的小包类型;小包类型包括第一小包和第二小包,第一小包的长度小于第二小包的长度;以及用于在待加密报文为第一小包时,将待加密报文放入dpdk端口队列中优先级最高的sp队列。

在一个实施例中,当分类结果为小包数据时,上述的报文分类模块13具体还可以用于在待加密报文为第二小包时,将待加密报文放入dpdk端口队列中优先级次高的sp队列。

在一个实施例中,当分类结果为小包数据时,上述的报文分类模块13具体还可以用于根据待加密报文的长度,确定待加密报文的小包类型;小包类型包括第一小包、第二小包和第三小包,且第一小包、第二小包和第三小包的长度依次增大;以及用于在待加密报文为第一小包时,将待加密报文放入dpdk端口队列中优先级最高的sp队列。

在一个实施例中,当分类结果为小包数据时,上述的报文分类模块13具体还可以用于在待加密报文为第二小包时,将待加密报文放入dpdk端口队列中优先级次高的sp队列。

在一个实施例中,当分类结果为小包数据时,上述的报文分类模块13具体还可以用于在待加密报文为第三小包时,将待加密报文放入dpdk端口队列中优先级最低的sp队列。

在一个实施例中,加密队列包括分别对应于第一小包、第二小包、第三小包和大包数据的四个加密队列,各加密队列的加密门限依次减小且对应于大包数据的加密队列的加密门限为1。上述的加密处理模块17具体可以用于分别将各加密队列中的各待加密报文按相应加密门限进行组合,并以相应加密门限为单位进行统一加密处理。

在一个实施例中,上述的加密处理模块17具体还可以用于在设定等待时间结束,处理小包数据的加密队列中的各待加密报文的数量未达到相应加密门限时,直接进行加密处理。

关于dpdk数据加密处理装置100的具体限定,可以参见上文中dpdk数据加密处理方法的相应限定,在此不再赘述。上述dpdk数据加密处理装置100中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于网络设备中的处理器中,也可以以软件形式存储于网络设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,还提供一种网络设备,例如但不限于微波站设备或点对点通信的以太网中的网元设备。该网络设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:获取dpdk端口上的待加密报文;根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列;分类结果包括小包数据或大包数据,小包数据对应dpdk端口队列的优先级高于大包数据对应dpdk端口队列的优先级;对各dpdk端口队列进行sp调度,分别将各dpdk端口队列中的待加密报文调度至各加密队列;加密队列包括至少两个,且处理小包数据的加密队列的加密门限大于处理大包数据的加密队列的加密门限;分别根据各加密队列的加密门限,对各加密队列中的待加密报文进行统一加密处理。

本领域技术人员可以理解,本实施例中的网络设备除上述的存储器和处理器外,还可以包括其他的组成部分,具体可以根据实际应用中网络设备的结构组成及其实现的功能确定,本说明书中不再一一展开说明。

在一个实施例中,处理器执行计算机程序时还可以实现上述dpdk数据加密处理方法各实施例中的增加的步骤或者子步骤。

在一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取dpdk端口上的待加密报文;根据待加密报文的长度进行报文分类,并根据分类结果将待加密报文入队至相应优先级的dpdk端口队列;分类结果包括小包数据或大包数据,小包数据对应dpdk端口队列的优先级高于大包数据对应dpdk端口队列的优先级;对各dpdk端口队列进行sp调度,分别将各dpdk端口队列中的待加密报文调度至各加密队列;加密队列包括至少两个,且处理小包数据的加密队列的加密门限大于处理大包数据的加密队列的加密门限;分别根据各加密队列的加密门限,对各加密队列中的待加密报文进行统一加密处理。

在一个实施例中,计算机程序被处理器执行时,还可以实现上述dpdk数据加密处理方法各实施例中的增加的步骤或者子步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1