CN115379028A - 基于dpdk的高性能密码服务方法、装置、设备及介质 - Google Patents
基于dpdk的高性能密码服务方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115379028A CN115379028A CN202210997513.9A CN202210997513A CN115379028A CN 115379028 A CN115379028 A CN 115379028A CN 202210997513 A CN202210997513 A CN 202210997513A CN 115379028 A CN115379028 A CN 115379028A
- Authority
- CN
- China
- Prior art keywords
- message
- processed
- thread
- password
- calculation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 151
- 238000004364 calculation method Methods 0.000 claims abstract description 134
- 238000004458 analytical method Methods 0.000 claims abstract description 57
- 230000004044 response Effects 0.000 claims abstract description 28
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 abstract description 18
- 238000004891 communication Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了基于DPDK的高性能密码服务方法、装置、设备及介质,方法包括:将接收的待处理报文转存至报文处理线程的用户态协议栈中,并对待处理报文的报文头进行解析得到报文头解析信息,判断报文解析信息是否为密码计算类型;若是,则通过报文处理线程将待处理报文发送至密码计算线程进行密码计算得到密码计算结果;若否,则通过报文处理线程将待处理报文发送至密钥管理线程进行密钥处理得到响应结果。通过上述方法,基于用户态协议栈存储待处理报文并进行报文头解析,根据解析得到的报文解析信息对待处理报文进行分类处理,从而提高报文吞吐性能并减小报文通信时延,从而大幅提高了基于密钥进行加密过程中对报文进行处理的效率。
Description
技术领域
本发明涉及信息加密的技术领域,尤其涉及一种基于DPDK的高性能密码服务方法、装置、设备及介质。
背景技术
密码服务系统是指通过网络对外提供密码计算和密钥管理服务的硬件系统或平台,如服务器密码机/云服务器密码机/签名验签服务器以及密钥管理系统/CA系统等。传统的密码服务系统,常常是基于linux内核TCP/IP协议栈对网卡报文进行收发处理,基于传统linux内核PCIE驱动与密码卡之间进行报文的加解密计算通信;由于linux内核中存在的互斥锁/中断/上下文切换等限制,以及用户态到内核态之间的频繁切换与多次内存拷贝等非必要开销,导致这些传统的密码服务系统存在报文吞吐性能低,通信时延大等问题。因此,现有的技术方法在基于密钥进行加密过程中存在报文处理效率较低的问题。
发明内容
本发明实施例提供了一种基于DPDK的高性能密码服务方法、装置、设备及介质,旨在解决现有技术方法在基于密钥进行加密过程中所存在的报文处理效率较低的问题。
第一方面,本发明实施例提供了一种基于DPDK的高性能密码服务方法,所述方法包括:
若接收到所输入的待处理报文,将所述待处理报文转存至预置的报文处理线程的用户态协议栈中;
在所述用户态协议栈中对所述待处理报文的报文头进行解析,以获取报文解析信息;
判断所述报文解析信息是否为密码计算类型;
若所述报文解析信息为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密码计算线程进行密码计算,得到与所述待处理报文对应的密码计算结果;
若所述报文解析信息不为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密钥管理线程进行密钥处理,得到与所述待处理报文对应的响应结果。
第二方面,本发明实施例提供了一种基于DPDK的高性能密码服务装置,其包括:
报文转发单元,用于若接收到所输入的待处理报文,将所述待处理报文转存至预置的报文处理线程的用户态协议栈中;
报文解析信息获取单元,用于在所述用户态协议栈中对所述待处理报文的报文头进行解析,以获取报文解析信息;
报文解析信息判断单元,用于判断所述报文解析信息是否为密码计算类型;
密码计算结果获取单元,用于若所述报文解析信息为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密码计算线程进行密码计算,得到与所述待处理报文对应的密码计算结果;
响应结果获取单元,用于若所述报文解析信息不为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密钥管理线程进行密钥处理,得到与所述待处理报文对应的响应结果。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的基于DPDK的高性能密码服务方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于DPDK的高性能密码服务方法。
本发明实施例提供了一种基于DPDK的高性能密码服务方法、装置、设备及介质,将接收的待处理报文转存至报文处理线程的用户态协议栈中,并对待处理报文的报文头进行解析得到报文头解析信息,判断报文解析信息是否为密码计算类型;若是,则通过报文处理线程将待处理报文发送至密码计算线程进行密码计算得到密码计算结果;若否,则通过报文处理线程将待处理报文发送至密钥管理线程进行密钥处理得到响应结果。通过上述方法,基于用户态协议栈存储待处理报文并进行报文头解析,根据解析得到的报文解析信息对待处理报文进行分类处理,从而提高报文吞吐性能并减小报文通信时延,从而大幅提高了基于密钥进行加密过程中对报文进行处理的效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于DPDK的高性能密码服务方法的流程示意图;
图2为本发明实施例提供的基于DPDK的高性能密码服务方法的应用场景示意图;
图3为本发明实施例提供的基于DPDK的高性能密码服务方法的子流程示意图;
图4为本发明实施例提供的基于DPDK的高性能密码服务方法的另一流程示意图;
图5为本发明实施例提供的基于DPDK的高性能密码服务方法的另一子流程示意图;
图6为本发明实施例提供的基于DPDK的高性能密码服务方法的又一流程示意图;
图7为本发明实施例提供的基于DPDK的高性能密码服务方法的又一子流程示意图;
图8为本发明实施例提供的基于DPDK的高性能密码服务方法的再一子流程示意图;
图9为本发明实施例提供的基于DPDK的高性能密码服务装置的示意性框图;
图10为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1及图2,如图所示,该基于DPDK的高性能密码服务方法应用于管理服务器10中,该方法通过安装于管理服务器10中的应用软件进行执行,管理服务器10可以是企业或政府部门内部所配置的用于基于密钥进行加密过程中对待处理报文进行处理的服务器端;管理服务器10包括报文处理线程11、密码计算线程12、密钥管理线程13、密码卡14及网卡15,其中,报文处理线程11与密码计算线程12及密钥管理线程13建立通信连接,密码计算线程12及密钥管理线程13均与密码卡14建立通信连接,报文处理线程11、密码计算线程12及密钥管理线程13均是管理服务器10内配置的用于进行数据处理的虚拟线程,密码卡14即是管理服务器10内配置的用于进行密钥存储的存储装置,具体的,密钥管理线程13与密码卡14中的PF模块可基于密码卡驱动进行通信连接,密码计算线程12与密码卡14中的VF模块可基于DPDK-Cryptodev进行通信连接,管理服务器10中配置的网卡15与报文处理线程11可基于F-STACK进行通信连接。
其中,管理服务器10可以是CPU主板+密码卡/网卡组成的实体工控机或服务器,也可以是虚拟机+配套虚拟密码卡/网卡组成的虚拟机系统。对于管理服务器10配置的密码卡,要求其对称加密和摘要计算(如SM4/SM3)性能在10G bps以上,同时支持SR-IOV虚拟化功能,包含物理功能子单元PF模块和至少一个虚拟功能子单元VF模块;网卡通常为两个以上的10G/25G/40G bps的高性能网卡。
报文处理线程11基于F-Stack框架实现某TCP端口的报文监听服务,实现密码服务报文的应用层收发、报文解析分发,将报文分类后送往密码计算模块/密钥管理模块/综合管理模块进行处理,并将处理后返回的响应报文组包后经过F-Stack送到网卡。
密码计算线程12对来自报文服务模块的密码计算请求报文进行处理,调用DPDK-Cryptodev用户态密码驱动框架API实现相应的密码计算并返回计算结果。
密钥管理线程13通过调用密码卡驱动实现对密码卡14的密钥管理(密钥的生成,修改,删除,查询等生命周期管理)功能,也即是密码卡通过SR-IOV虚拟化功能的密码卡驱动模块与管理服务器中的密钥管理线程进行驱动连接。
DPDK:Data Plane Development Kit,是一个linux基金会的开源项目,是在数据平面应用中为快速的数据包处理提供一个简单而完善的架构,采用大页、ring无锁队列、轮询方式数据包处理,以及网卡多队列结合多核等提升数据包转发性能。
DPDK-Crytodev:基于DPDK技术的一种用高性能户态加密引擎驱动框架,提供不同算法的各类软硬件CRYPTODEV引擎的统一API,并对用户隐藏各类已高度优化的crypto实现细节。不过,DPDK-Crytodev只提供各类密码算法的硬件加速计算接口,本身并不提供涉及密码卡密钥管理(密钥的生成,修改,删除,查询,索引等生命周期管理)的相应接口。DPDK-Cryptodev用户态密码驱动框架,用于管理密码卡的虚拟功能模块(VF模块),为来自密码计算线程的各类对称/非对称的密码算法计算请求提供基于密码卡硬件的高性能驱动框架。基于DPDK的F-Stack全用户态开发框架,用于为来自高性能网卡的报文提供从DPDK用户态网卡驱动到TCP/IP协议栈的全用户态报文处理框架,将解析后的应用层报文送到报文处理线程进行处理;反之,将报文处理线程处理完毕后的应用层数据进行TCP/IP及网卡驱动层的打包并最终将报文送出网卡。密码计算线程基于DPDK-Cryptodev用户态密码驱动框架实现各类对称及非对称密码算法计算。
F-Stack:一款兼顾高性能、易用性和通用性的开源网络开发框架,在DPDK框架的基础上融合了FreeBSD用户态协议栈和Posix API接口。
SR-IOV/PF/VF:单根I/O虚拟化接口是PCI Express(PCIe)的扩展,SR-IOV允许设备(如网络适配器,密码卡)在各种PCIe硬件功能之间分离其资源的访问。当PCIE function具备SR-IOV能力时,会存在至少一个PF(physical function,物理功能)模块和至少一个VF(virtual function,虚拟功能)模块,并且每个VF模块与特定的PF模块之间是绑定关系。PF模块,用于支持SR-IOV的PCI功能,拥有完全配置或控制PCIe设备资源的能力。VF模块,是一种轻量级的PCIe功能,与PF模块相关联,可以与物理功能以及同一物理功能关联的其他VF模块共享一个或多个物理资源。
密码卡驱动主要实现主机系统与密码卡物理功能模块(PF模块)的通信与控制,在主机上实现密码卡的SR-IOV虚拟化(配置和管理VF模块),实现对密码卡上存储的密钥进行管理的功能。
如图1所示,该方法包括步骤S110~S150。
S110、若接收到所输入的待处理报文,将所述待处理报文转存至预置的报文处理线程的用户态协议栈中。
若接收到所输入的待处理报文,将所述待处理报文转存至预置的报文处理线程的用户态协议栈中。管理服务器中配置由多个报文处理线程及网卡,待处理报文可经网卡输入管理服务器,若管理服务器接收到待处理报文,则可将待处理报文分配并转存至报文处理线程的用户态协议栈中。其中,每一报文处理线程对应一个用户态协议栈,也即各报文处理线程拥有相互独立的协议栈资源,用户态协议栈可以是用户态TCP/IP协议栈。
在一实施例中,如图3所示,步骤S110包括子步骤S111和S112。
S111、各所述报文处理线程根据与所述报文处理线程对应的网卡队列,基于DPDK用户态网络驱动框架对所述网卡队列所包含的网卡进行报文监听。
具体的,管理服务器中可配置多个网卡,每一网卡可对应多个RSS地址(即ReceiveSide Scaling队列)。每一报文处理线程绑定独立的网卡队列即处理器(CPU),可根据网卡对应的RSS地址生成与各处理线程对应的网卡队列,则每一处理线程的网卡队列中即包含一个网卡所对应的RSS地址。一个报文处理线程可基于该报文处理线程对应的网卡队列,对网卡队列中所包含的网卡进行报文监听,具体的,报文处理线程可基于DPDK用户态网络驱动框架中F-Stack的类POSIX-API接口ff_socket/ff_poll实现基于网卡所对应的TCP端口(RSS地址)的报文监听服务。
S112、若任一所述报文处理线程监听到与所述报文处理线程对应的任一网卡中输入待处理报文,将所述待处理报文并转存至所述报文处理线程对应的用户态协议栈中。
若任意报文处理线程监听到其处理队列的任一网卡中输入待处理报文,即可通过该报文处理线程将待处理报文转存至该报文处理线程对应的用户态协议栈中。在具体实施例过程中,待处理报文可基于RSS地址对应分配至该RSS地址所属网卡对应的报文处理线程进行处理,从而确保待处理报文进行高效处理。
在一实施例中,如图4所示,步骤S110之前还包括步骤S1101、S1102和S1103。
S1101、获取所述管理服务器的系统资源信息。
在对待处理报文进行处理之前,还可通过管理服务器的系统资源信息创建相应的报文处理线程。具体的,可先获取关联服务器的系统资源信息,其中,系统资源信息包括系统CPU核数、NUMA节点、网卡数量以及系统网络吞吐带宽等。
S1102、根据预置的分配规则及所述系统资源信息对所述管理服务器的系统资源进行分组,并创建与分组得到的每一组系统资源对应的报文处理线程。
可根据分配规则及系统资源信息对管理服务器的系统资源进行分组,则每一分组即对应一个保温处理线程,可基于系统资源信息创建对应的多个独立报文处理线程,并通过报文处理线程对待处理报文进行处理。例如,可根据网卡数量配置相同数量的网卡队列,并为每一网卡队列分配一个CPU、一个或多个NUMA节点及一定比例的系统网络吞吐带宽,从而得到与网卡队列数量相等的多个分组,其中一定比例可以是网卡队列数的倒数。
根据分组得到的每一组系统资源创建对应的报文处理线程,则一个报文处理线程对应一个CPU、一个或多个NUMA节点及一定比例的系统网络吞吐带宽,且每一报文处理线程对应一个网卡队列。
S1103、根据预置的协议框架创建与各所述报文处理线程对应的用户态协议栈。
根据预置的协议框架创建与各报文处理线程对应的用户态协议栈,则每一报文处理线程对应一个用户态协议栈,具体的,预置的协议框架可以是TCP/IP协议框架,则可以基于TCP/IP协议框架分别创建与各报文处理线程对应的用户态TCP/IP协议栈。
S120、在所述用户态协议栈中对所述待处理报文的报文头进行解析,以获取报文解析信息。
在所述用户态协议栈中对所述待处理报文的报文头进行解析,以获取报文解析信息。各报文处理线程可对其用户态协议栈中存储的待处理报文的报文头进行解析,来自外部网络的TCP client待处理报文,经过F-Stack的DPDK-Net用户态网络驱动处理并被报文处理线程转存至用户态协议栈中,在用户态协议栈(基于F-Stack的BSD-TCP/IP用户态协议栈)中进行网络层和传输层的报文头处理。具体的,待处理报文可由报文头及报文体组成,报文体用于存储所需处理的具体数据,报文头用于存储与报文体对应的简要信息,则可对待处理报文的报文头包含的各项目进行解析,从而获取报文解析信息。具体的,报文解析信息中至少包括线程标识,处理类型、算法类型、报文大小等。其中,线程标识也即报文处理线程在对待处理报文的报文头进行解析的过程中,添加至该报文头中的标识信息,线程标识也即对待处理报文进行解析处理的报文处理线程的标识信息。
S130、判断所述报文解析信息是否为密码计算类型。
判断所述报文解析信息是否为密码计算类型。可判断报文解析信息是否为密码计算类型,也即是判断报文解析信息中的处理类型是否为密码计算。
若报文解析信息的处理类型为密码计算类型,则需通过密码计算方式对待处理报文中的报文体进行计算处理。若报文解析信息的处理类型不为密码计算类型,则可待处理报文发送至密钥管理线程进行密钥管理处理。
若报文解析信息的处理类型不为密码计算类型,还可以将待处理报文发送至综合管理模块进行处理,其中,综合管理模块负责系统的数据配置/查询/统计/告警等辅助管理功能。
在一实施例中,如图6所示,步骤S140之前还包括步骤S1410。
S1410、根据所述管理服务器的剩余系统资源创建对应的密码计算线程。
在通过密码计算线程对待处理报文进行处理之前,还可根据管理服务器的剩余系统资源创建相应的密码计算线程。
在一实施例中,如图7所示,步骤S1410包括子步骤S1411、S1412和S1413。
S1411、确定所述剩余系统资源中的剩余处理核心数与计算队列数中的较小数值为目标数值。
其中,剩余系统资源至少包括剩余处理核心数及密码卡的计算队列数,可对处理核心数与计算队列数进行大小,并选择其中的较小值作为目标数值。
S1412、根据所述目标数值生成对应数量的密码计算线程;S1413、根据所述剩余系统资源为各所述密码计算线程分别分配一个处理核心及一个计算队列。
可根据目标数值生成对应数量的密码计算线程,并为每一密码计算线程分配一个处理核心及一个计算队列。所得到的多个密码计算线程即组合为用户态多线程的密码计算模块,通过创建多个密码计算线程,可提高密码计算的效率。
S140、若所述报文解析信息为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密码计算线程进行密码计算,得到与所述待处理报文对应的密码计算结果。
若所述报文解析信息为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密码计算线程进行密码计算,得到与所述待处理报文对应的密码计算结果。可通过报文处理线程将待处理报文发送至密码计算线程进行密码计算,具体的,密码计算线程可对待处理报文进行各类对称/非对称密码算法计算,如SM1/SM4/AEC对称算法,SM3/SHA1摘要计算,SM2/RSA签名验签,通过对待处理报文进行密码计算得到对应的密码计算结果,并将密码计算结果反馈至发送该待处理报文的报文处理线程。
待处理报文的报文头中还可以包括特定目的IP及端口,报文处理线程接收来自一个或多个密码计算线程的密码计算结果之后,通过调用F-Stack TCP socket API接口将与特定目的IP及端口对应的密码计算结果发送到用户态TCP/IP协议栈以及DPDK-Net用户态驱动处理,经过网口发送到网络上,从而实现密码计算结果的反馈。
在一实施例中,如图5所示,步骤S140包括子步骤S141、S142和S143。
S141、根据所述待处理报文的报文解析信息中的算法类型,将所述待处理报文发送至与所述算法类型对应的所述密码计算线程的计算队列;S142、每一所述密码计算线程分别对各自所述计算队列中的待处理报文进行密码计算,得到计算结果并存储至计算队列。
若报文解析信息的处理类型为密码计算类型,则待处理报文的报文解析信息中还包括算法类型,不同算法类型则对应不同密码计算方式;密码计算线程可基于DPDK-Cryptodev用户态密码驱动框架实现不同方式的对称/非对称密码算法计算,也即不同密码计算线程可进行各自不同密码算法的计算。其中,DPDK-Cryptodev管理密码卡的VF单元,为来自密码计算模块的各类对称/非对称的密码算法计算请求提供基于密码卡硬件的高性能驱动框架。
即可根据报文解析信息中的算法类型,将待处理报文发送至与该算法类型对应的密码计算线程的计算队列中,密码计算线程分别从各自的计算队列中顺序获取待处理报文进行密码计算,得到与待处理报文对应的计算结果后,将计算结果存储至密码计算线程各自对于的计算队列中。在进行密码计算过程中,密码计算线程与密码卡之间需要进行信息交互,如从密码卡读取与公钥对应的私钥。
S143、每一所述密码计算线程周期性扫描各自所述计算队列中的计算结果,并将所述计算结果反馈至对应的所述报文处理线程。
每一密码计算线程周期性地对其计算队列进行扫描,并根据与计算结果对应的待处理报文将计算结果反馈至相应报文处理线程,也即,各密码计算线程周期性扫描各自计算队列中的计算结果,若扫描到计算队列中存在计算结果,则根据该计算结果在对应待处理报文中的处理标识将计算结果反馈至相应报文处理线程。
S150、若所述报文解析信息不为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密钥管理线程进行密钥处理,得到与所述待处理报文对应的响应结果。
若所述报文解析信息不为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密钥管理线程进行密钥处理,得到与所述待处理报文对应的响应结果。若报文解析信息不为密码计算类型,则表明此待处理报文是针对密码卡的密钥管理请求报文,此待处理报文涉及密钥的生成、修改、删除、查询、通过索引进行管理的密钥处理过程;可通过报文处理线程将该待处理报文发送至相应密钥管理线程进行密钥处理,从而得到进行处理所反馈的响应结果。其中,响应结果可以是处理成功、处理失败等信息。
在一实施例中,如图8所示,步骤S150包括子步骤S151和S152。
S151、所述密钥管理线程通过用户态API对与所述密钥管理线程相连接的密码卡进行与所述待处理报文对应的密钥管理操作。
S152、所述密钥管理线程获取所述密钥管理操作的响应结果并反馈至对应的所述报文处理线程。
密钥管理线程对所接收到的待处理报文进行处理,具体的,可通过密码卡驱动模块提供的用户态API将待处理报文送到密码卡中的PF模块,由密码卡PF模块完成对密码卡的所有密钥管理操作,如密钥的生成、修改、删除、查询等具体操作,密码卡根据密钥管理操作的结果反馈相应的响应结果。密钥管理线程接收到响应结果后,则根据该响应结果在对应待处理报文中的处理标识将响应结果反馈至相应报文处理线程。
发明公开的方法,通过基于DPDK用户态网络驱动框架和用户态密码驱动技术有效解决了传统密码服务系统存在的报文吞吐性能低通信时延大的问题;通过F-Stack的用户态TCP/IP协议栈为密码服务提供了高性能的TCP/IP协议框架;通过密码卡的SR-IOV虚拟化为密码服务系统提供了可靠的密码管理功能接口,解决了DPDK-Cryptodev用户态密码驱动框架缺乏密钥管理接口的问题,从而提高报文吞吐性能并减小报文通信时延,从而大幅提高了基于密钥进行加密过程中对报文进行处理的效率。
在本发明实施例所提供的基于DPDK的高性能密码服务方法中,将接收的待处理报文转存至报文处理线程的用户态协议栈中,并对待处理报文的报文头进行解析得到报文头解析信息,判断报文解析信息是否为密码计算类型;若是,则通过报文处理线程将待处理报文发送至密码计算线程进行密码计算得到密码计算结果;若否,则通过报文处理线程将待处理报文发送至密钥管理线程进行密钥处理得到响应结果。通过上述方法,基于用户态协议栈存储待处理报文并进行报文头解析,根据解析得到的报文解析信息对待处理报文进行分类处理,从而提高报文吞吐性能并减小报文通信时延,从而大幅提高了基于密钥进行加密过程中对报文进行处理的效率。
本发明实施例还提供一种基于DPDK的高性能密码服务装置,该基于DPDK的高性能密码服务装置可配置于管理服务器中,该基于DPDK的高性能密码服务装置用于执行前述的基于DPDK的高性能密码服务方法的任一实施例。具体地,请参阅图9,图9为本发明实施例提供的基于DPDK的高性能密码服务装置的示意性框图。
如图9所示,基于DPDK的高性能密码服务装置100包括报文转发单元110、报文解析信息获取单元120、报文解析信息判断单元130、密码计算结果获取单元140和响应结果获取单元150。
报文转发单元110,用于若接收到所输入的待处理报文,将所述待处理报文转存至预置的报文处理线程的用户态协议栈中。
报文解析信息获取单元120,用于在所述用户态协议栈中对所述待处理报文的报文头进行解析,以获取报文解析信息。
报文解析信息判断单元130,用于判断所述报文解析信息是否为密码计算类型。
密码计算结果获取单元140,用于若所述报文解析信息为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密码计算线程进行密码计算,得到与所述待处理报文对应的密码计算结果;所述密码计算线程基于DPDK-Cryptodev用户态密码驱动框架实现各类对称及非对称密码算法计算。
响应结果获取单元150,用于若所述报文解析信息不为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密钥管理线程进行密钥处理,得到与所述待处理报文对应的响应结果。
在本发明实施例所提供的基于DPDK的高性能密码服务装置应用上述基于DPDK的高性能密码服务方法,将接收的待处理报文转存至报文处理线程的用户态协议栈中,并对待处理报文的报文头进行解析得到报文头解析信息,判断报文解析信息是否为密码计算类型;若是,则通过报文处理线程将待处理报文发送至密码计算线程进行密码计算得到密码计算结果;若否,则通过报文处理线程将待处理报文发送至密钥管理线程进行密钥处理得到响应结果。通过上述方法,基于用户态协议栈存储待处理报文并进行报文头解析,根据解析得到的报文解析信息对待处理报文进行分类处理,从而提高报文吞吐性能并减小报文通信时延,从而大幅提高了基于密钥进行加密过程中对报文进行处理的效率。
上述基于DPDK的高性能密码服务装置可以实现为计算机程序的形式,该计算机程序可以在如图10所示的计算机设备上运行。
请参阅图10,图10是本发明实施例提供的计算机设备的示意性框图。该计算机设备可以是用于执行基于DPDK的高性能密码服务方法以基于密钥进行加密过程中对待处理报文进行处理的管理服务器。
参阅图10,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括存储介质503和内存储器504。
该存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行基于DPDK的高性能密码服务方法,其中,存储介质503可以为易失性的存储介质或非易失性的存储介质。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行基于DPDK的高性能密码服务方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图10中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现上述的基于DPDK的高性能密码服务方法中对应的功能。
本领域技术人员可以理解,图10中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图10所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为易失性或非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现上述的基于DPDK的高性能密码服务方法中所包含的步骤。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于DPDK的高性能密码服务方法,其特征在于,所述方法应用于管理服务器中,所述管理服务器配置有密码卡,所述密码卡通过SR-IOV虚拟化功能的密码卡驱动模块与管理服务器中的密钥管理线程进行驱动连接,所述方法包括:
若接收到所输入的待处理报文,将所述待处理报文转存至预置的报文处理线程的用户态协议栈中;
在所述用户态协议栈中对所述待处理报文的报文头进行解析,以获取报文解析信息;
判断所述报文解析信息是否为密码计算类型;
若所述报文解析信息为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密码计算线程进行密码计算,得到与所述待处理报文对应的密码计算结果;所述密码计算线程基于DPDK-Cryptodev用户态密码驱动框架实现各类对称及非对称密码算法计算;
若所述报文解析信息不为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密钥管理线程进行密钥处理,得到与所述待处理报文对应的响应结果。
2.根据权利要求1所述的基于DPDK的高性能密码服务方法,其特征在于,所述将所述待处理报文转存至预置的处理线程的用户态协议栈中,包括:
各所述报文处理线程根据与所述报文处理线程对应的网卡队列,基于DPDK用户态网络驱动框架对所述网卡队列所包含的网卡进行报文监听;
若任一所述报文处理线程监听到与所述报文处理线程对应的任一网卡中输入待处理报文,将所述待处理报文并转存至所述报文处理线程对应的用户态协议栈中。
3.根据权利要求1或2所述的基于DPDK的高性能密码服务方法,其特征在于,所述将所述待处理报文转存至预置的报文处理线程的用户态协议栈中之前,还包括:
获取所述管理服务器的系统资源信息;
根据预置的分配规则及所述系统资源信息对所述管理服务器的系统资源进行分组,并创建与分组得到的每一组系统资源对应的报文处理线程;
根据预置的协议框架创建与各所述报文处理线程对应的用户态协议栈。
4.根据权利要求1所述的基于DPDK的高性能密码服务方法,其特征在于,所述报文处理线程将所述待处理报文发送至预置的密码计算线程进行密码计算,得到与所述待处理报文对应的密码计算结果,包括:
根据所述待处理报文的报文解析信息中的算法类型,将所述待处理报文发送至与所述算法类型对应的所述密码计算线程的计算队列;
每一所述密码计算线程分别对各自所述计算队列中的待处理报文进行密码计算,得到计算结果并存储至计算队列;
每一所述密码计算线程周期性扫描各自所述计算队列中的计算结果,并将所述计算结果反馈至对应的所述报文处理线程。
5.根据权利要求1或4所述的基于DPDK的高性能密码服务方法,其特征在于,所述报文处理线程将所述待处理报文发送至预置的密码计算线程进行密码计算之前,还包括:
根据所述管理服务器的剩余系统资源创建对应的密码计算线程。
6.根据权利要求5所述的基于DPDK的高性能密码服务方法,其特征在于,所述根据所述管理服务器的剩余系统资源创建对应的密码计算线程,包括:
确定所述剩余系统资源中的处理核心数与计算队列数中的较小数值为目标数值;
根据所述目标数值生成对应数量的密码计算线程;
根据所述剩余系统资源为各所述密码计算线程分别分配一个处理核心及一个计算队列。
7.根据权利要求1所述的基于DPDK的高性能密码服务方法,其特征在于,所述报文处理线程将所述待处理报文发送至预置的密钥管理线程进行密钥处理,得到与所述待处理报文对应的响应结果,包括:
所述密钥管理线程通过用户态API对与所述密钥管理线程相连接的密码卡进行与所述待处理报文对应的密钥管理操作;
所述密钥管理线程获取所述密钥管理操作的响应结果并反馈至对应的所述报文处理线程。
8.一种基于DPDK的高性能密码服务装置,其特征在于,所述装置配置于管理服务器中,所述管理服务器配置有密码卡,所述密码卡通过SR-IOV虚拟化功能的密码卡驱动模块与管理服务器中的密钥管理线程进行驱动连接,所述装置包括:
报文转发单元,用于若接收到所输入的待处理报文,将所述待处理报文转存至预置的报文处理线程的用户态协议栈中;
报文解析信息获取单元,用于在所述用户态协议栈中对所述待处理报文的报文头进行解析,以获取报文解析信息;
报文解析信息判断单元,用于判断所述报文解析信息是否为密码计算类型;
密码计算结果获取单元,用于若所述报文解析信息为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密码计算线程进行密码计算,得到与所述待处理报文对应的密码计算结果;所述密码计算线程基于DPDK-Cryptodev用户态密码驱动框架实现各类对称及非对称密码算法计算;
响应结果获取单元,用于若所述报文解析信息不为密码计算类型,所述报文处理线程将所述待处理报文发送至预置的密钥管理线程进行密钥处理,得到与所述待处理报文对应的响应结果。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的基于DPDK的高性能密码服务方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于DPDK的高性能密码服务方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210997513.9A CN115379028B (zh) | 2022-08-19 | 2022-08-19 | 基于dpdk的高性能密码服务方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210997513.9A CN115379028B (zh) | 2022-08-19 | 2022-08-19 | 基于dpdk的高性能密码服务方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115379028A true CN115379028A (zh) | 2022-11-22 |
CN115379028B CN115379028B (zh) | 2024-06-25 |
Family
ID=84066367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210997513.9A Active CN115379028B (zh) | 2022-08-19 | 2022-08-19 | 基于dpdk的高性能密码服务方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115379028B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116566617A (zh) * | 2023-05-10 | 2023-08-08 | 中安云科科技发展(山东)有限公司 | 一种单个虚拟化密码机的计算资源调整方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106549850A (zh) * | 2016-12-06 | 2017-03-29 | 东软集团股份有限公司 | 虚拟专用网络服务器及其报文传输方法 |
CN112052446A (zh) * | 2020-09-14 | 2020-12-08 | 北京数字认证股份有限公司 | 密码单元创建方法、数据处理方法、装置及电子设备 |
CN112787937A (zh) * | 2021-01-21 | 2021-05-11 | 深圳市中网信安技术有限公司 | 报文转发方法及终端设备、计算机存储介质 |
CN113472523A (zh) * | 2021-05-25 | 2021-10-01 | 派日科技(广州)有限公司 | 用户态协议栈报文处理优化方法、系统、装置及存储介质 |
WO2022105884A1 (zh) * | 2020-11-23 | 2022-05-27 | 中兴通讯股份有限公司 | 数据传输方法、装置、网络设备、存储介质 |
-
2022
- 2022-08-19 CN CN202210997513.9A patent/CN115379028B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106549850A (zh) * | 2016-12-06 | 2017-03-29 | 东软集团股份有限公司 | 虚拟专用网络服务器及其报文传输方法 |
CN112052446A (zh) * | 2020-09-14 | 2020-12-08 | 北京数字认证股份有限公司 | 密码单元创建方法、数据处理方法、装置及电子设备 |
WO2022105884A1 (zh) * | 2020-11-23 | 2022-05-27 | 中兴通讯股份有限公司 | 数据传输方法、装置、网络设备、存储介质 |
CN112787937A (zh) * | 2021-01-21 | 2021-05-11 | 深圳市中网信安技术有限公司 | 报文转发方法及终端设备、计算机存储介质 |
CN113472523A (zh) * | 2021-05-25 | 2021-10-01 | 派日科技(广州)有限公司 | 用户态协议栈报文处理优化方法、系统、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
REN YUE: "Research and Implementation of Efficient DPI Engine Base on DPDK", 《2021 CHINA AUTOMATION CONGRESS (CAC)》, 14 March 2022 (2022-03-14) * |
曼茂立: "基于DPDK的高性能移动通信网络IPSec", 《现代信息科技》, 10 March 2022 (2022-03-10) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116566617A (zh) * | 2023-05-10 | 2023-08-08 | 中安云科科技发展(山东)有限公司 | 一种单个虚拟化密码机的计算资源调整方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115379028B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11792174B2 (en) | Method to save computational resources by detecting encrypted payload | |
US11579907B2 (en) | Acceleration management node, acceleration node, client, and method | |
KR102460096B1 (ko) | 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치 | |
US11372684B2 (en) | Technologies for hybrid field-programmable gate array application-specific integrated circuit code acceleration | |
WO2022126919A1 (zh) | 文件传输方法、装置、计算机设备及存储介质 | |
US11019100B2 (en) | Detecting attacks using handshake requests systems and methods | |
CN104994032B (zh) | 一种信息处理的方法和装置 | |
EP3553689B1 (en) | System and method for automatically securing sensitive data in public cloud using a serverless architecture | |
CN111448788A (zh) | 用于基于saas的应用的ssl优化的跟踪ssl会话状态的方法 | |
CA3039944A1 (en) | System and method for automatically securing sensitive data in public cloud using a serverless architecture | |
US11750704B2 (en) | Systems and methods to retain existing connections so that there is no connection loss when nodes are added to a cluster for capacity or when a node is taken out from the cluster for maintenance | |
CN115379028B (zh) | 基于dpdk的高性能密码服务方法、装置、设备及介质 | |
CN116389372A (zh) | 网络流量的解析方法及其装置、电子设备及存储介质 | |
CN113810397B (zh) | 协议数据的处理方法及装置 | |
US11647083B2 (en) | Cluster-aware multipath transmission control protocol (MPTCP) session load balancing | |
WO2024040846A1 (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US10904719B2 (en) | Message shunting method, device and system based on user mode protocol stack | |
WO2022179293A1 (zh) | 网卡、计算设备和获取数据的方法 | |
US20230153159A1 (en) | Hardware Accelerator Service Aggregation | |
US11805109B1 (en) | Data transfer encryption offloading using session pairs | |
US20240214181A1 (en) | Methods for managing hardware security servers and devices thereof | |
US20240187375A1 (en) | Detection and blocking system and method through multi-container-based encrypted packet decryption |
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 |