CN113472523A - 用户态协议栈报文处理优化方法、系统、装置及存储介质 - Google Patents
用户态协议栈报文处理优化方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN113472523A CN113472523A CN202110574733.6A CN202110574733A CN113472523A CN 113472523 A CN113472523 A CN 113472523A CN 202110574733 A CN202110574733 A CN 202110574733A CN 113472523 A CN113472523 A CN 113472523A
- Authority
- CN
- China
- Prior art keywords
- network data
- protocol stack
- message
- user mode
- random key
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及计算机技术领域,公开了用户态协议栈报文处理优化方法、系统、装置及存储介质,其中方法包括:初始化DPDK运行环境,在DPDK中配置所述RSS,所述RSS用于在所述DPDK获取到网络数据报文时将DPDK所接收的网络数据报文分发到对应的多个CPU;对分发到CPU的网络数据报文进行矢量化的报文分组处理,得到多个数组;当CPU上的数组的数量达到预设数量阈值时,将所述CPU上的数组统一发送到所述用户态协议栈。本发明能够结合RSS和矢量化报文处理技术,改进网络数据报文在用户态协议栈中的传递方式,从而解决现有用户态协议栈报文处理效率较为低下的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及用户态协议栈报文处理优化方法、系统、装置及存储介质。
背景技术
伴随着云计算、人工智能等技术发展日渐成熟,各领域的处理系统对于服务的性能需求越来越高,而目前高性能处理系统最需要提升的性能是网络数据报文处理性能。
VPP是一款高性能网络数据报文处理框架,其中VPP采用矢量化的报文分组处理方式,能够大幅度提升报文处理效率。对于收到若干个网络数据包,如果有A、B、C三个处理流程,传统的处理模式是依次对报文逐个进行处理,一个流程将这个报文处理完毕后,再将其交由下一个流程,这种处理形式称为标量化报文处理流程。如果在处理报文时,每一个流程一次处理若干个报文(所谓Packet Vector),然后再交由下一个流程进行处理,这种处理形式称为矢量化报文处理流程。
在现有的用户态协议栈报文处理流程中,网卡、处理器和内存等都对数据报文处理的性能有所影响。目前用户态协议栈对于数据报文的处理方式如同该标量化报文处理方式,一般是一次处理一个数据包,当网络接口捕获单个数据报文时申请中断,接着经过一组函数路径进行处理。当数据报文需要经过函数处理的路径长度超过微处理器指令的高速缓存(I-cache)大小时,微处理器会因为不断地加载新指令而发生抖动,使得用户态协议栈报文处理效率较为低下。
发明内容
本申请实施例的目的在于,提供一种用户态协议栈报文处理优化方法、系统、装置及存储介质,能够结合RSS和矢量化报文处理技术,改进网络数据报文在用户态协议栈中的传递方式,从而解决现有用户态协议栈报文处理效率较为低下的问题。
为达到上述目的,本发明采用如下技术方案:
本发明第一方面提供了用户态协议栈报文处理优化方法,所述方法包括:
初始化DPDK运行环境,在DPDK中配置所述RSS,所述RSS用于在所述DPDK获取到网络数据报文时将DPDK所接收的网络数据报文分发到对应的多个CPU;
对分发到CPU的网络数据报文进行矢量化的报文分组处理,得到多个数组;
当CPU上的数组的数量达到预设数量阈值时,将所述CPU上的数组统一发送到所述用户态协议栈。
根据本发明第一方面的一种能够实现的方式,所述对分发到CPU的网络数据报文进行矢量化的报文分组处理,包括:
将分发到CPU的网络数据报文放入新开辟的数组空间;
待一数组空间存满网络数据报文后,将剩余的网络数据报文放入下一数组空间,直至分发到CPU的网络数据报文全部已放入完毕;其中每一放入网络数据报文的数组空间对应一个数组。
根据本发明第一方面的一种能够实现的方式,所述对分发到CPU的网络数据报文进行矢量化的报文分组处理,还包括:
当分发到CPU的网络数据报文全部已放入完毕,且最后放入的数组空间仍未存满网络数据报文时开启计时,计算未有网络数据报文存入该最后放入的数组空间的持续时间,当所述持续时间达到持续时间阈值时,直接将该最后放入的数组空间中的网络数据报文作为一个数组。
根据本发明第一方面的一种能够实现的方式,所述方法还包括:
在执行用户态协议栈进程前,在所述用户态协议栈中添加启动参数,所述启动参数包括RSS的随机密钥K值;
启动用户态协议栈进程时,向网卡驱动下发所述随机密钥K值,从而所述RSS根据所述随机密钥K值将DPDK所接收的网络数据报文分发到对应的多个CPU。
根据本发明第一方面的一种能够实现的方式,所述启动参数对应的配置文件包括预置的非对称随机密钥值和对称随机密钥值,所述随机密钥K值初始时为所述非对称随机密钥值,所述方法还包括:
接收到需要达到同流同向的报文分发请求时,将所述随机密钥K值修改为所述对称随机密钥值。
本发明第二方面提供了用户态协议栈报文处理优化系统,所述系统包括:
初始化模块,用于初始化DPDK运行环境,在DPDK中配置所述RSS,所述RSS用于在所述DPDK获取到网络数据报文时将DPDK所接收的网络数据报文分发到对应的多个CPU;
报文分组处理模块,用于对分发到CPU的网络数据报文进行矢量化的报文分组处理,得到多个数组;
发送模块,用于当CPU上的数组的数量达到预设数量阈值时,将所述CPU上的数组统一发送到所述用户态协议栈。
根据本发明第二方面的一种能够实现的方式,所述报文分组处理模块具体用于:
将分发到CPU的网络数据报文放入新开辟的数组空间;
待一数组空间存满网络数据报文后,将剩余的网络数据报文放入下一数组空间,直至分发到CPU的网络数据报文全部已放入完毕;其中每一放入网络数据报文的数组空间对应一个数组。
根据本发明第二方面的一种能够实现的方式,所述报文分组处理模块还具体用于:
当分发到CPU的网络数据报文全部已放入完毕,且最后放入的数组空间仍未存满网络数据报文时开启计时,计算未有网络数据报文存入该最后放入的数组空间的持续时间,当所述持续时间达到持续时间阈值时,直接将该最后放入的数组空间中的网络数据报文作为一个数组。
根据本发明第二方面的一种能够实现的方式,所述系统还包括:
添加模块,用于在执行用户态协议栈进程前,在所述用户态协议栈中添加启动参数,所述启动参数包括RSS的随机密钥K值;
参数下发模块,用于启动用户态协议栈进程时,向网卡驱动下发所述随机密钥K值,从而所述RSS根据所述随机密钥K值将DPDK所接收的网络数据报文分发到对应的多个CPU。
根据本发明第二方面的一种能够实现的方式,所述启动参数对应的配置文件包括预置的非对称随机密钥值和对称随机密钥值,所述随机密钥K值初始时为所述非对称随机密钥值,所述系统还包括:
修改模块,用于在接收到需要达到同流同向的报文分发请求时,将所述随机密钥K值修改为所述对称随机密钥值。
本发明第三方面实施例提供了一种用户态协议栈报文处理优化装置,该装置包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项实施例所述的用户态协议栈报文处理优化方法。
本发明第四方面实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现如上述任一项实施例所述的用户态协议栈报文处理优化方法。
本发明能够结合RSS和矢量化报文处理技术,改进网络数据报文在用户态协议栈中的传递方式,从而解决现有用户态协议栈报文处理效率较为低下的问题。
附图说明
图1是本发明提供的用户态协议栈报文处理优化方法的一个优选实施例的流程示意图;
图2是本发明提供的用户态协议栈报文处理优化系统的一个优选实施例的结构示意图。
附图标记:
初始化模块1、报文分组处理模块2、发送模块3。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解本发明申请,对本申请实施例涉及的若干个名词进行简单介绍:
DPDK:数据面开发套件,是英特尔(INTEL)公司开发的基于数据面的报文处理框架,DPDK可以支持数据的快速转发,是X86平台报文快速处理的库和驱动集,大多数情况下工作在Linux用户态空间,被广泛应用于二层或三层转发功能的开发。
RSS:一种能够在多处理器系统下使接收报文在多个CPU之间高效分发的网卡驱动技术。网卡RSS硬件分流是基于其内置的Hash函数实现的,该Hash函数根据接收数据报文的五元组(协议类型TCP/UDP、源IP地址、源端口、目的IP地址、目的端口)和一个事先已经确定的随机密钥K(Random Secret Key)值,通过移位、异或的操作计算得到32位Hash结果。
PMD:是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。
图1所示为本发明提供的用户态协议栈报文处理优化方法的一个优选实施例的流程示意图。
如图1所示,所述方法包括:
S1初始化DPDK运行环境,在DPDK中配置所述RSS,所述RSS用于在所述DPDK获取到网络数据报文时将DPDK所接收的网络数据报文分发到对应的多个CPU;
S2对分发到CPU的网络数据报文进行矢量化的报文分组处理,得到多个数组;
S3当CPU上的数组的数量达到预设数量阈值时,将所述CPU上的数组统一发送到所述用户态协议栈。
其中,初始化DPDK运行环境时,需要加载IGB_UIO模块,因为DPDK收取报文是采用轮询模式收取,以PMD驱动为基础,所以加载IGB_UIO模块是先行条件。
DPDK运行环境的初始化包括在DPDK初始化函数中进行PCI总线与硬件设备的初始化,此时获取网络设备端口号,并根据端口号找到相应的网络设备,然后获取此网络设备的详细信息。
DPDK运行环境的初始化还包括初始化无锁环形队列,轮询地从内存池中申请地址,等待硬件设备获取链路中报文信息。
当获取到网络数据报文时,对环形无锁队列进行写动作,该动作能够直接对操作系统内存进行写入,接着调用rte_eth_rx_burst函数接收网络数据报文,进而将网络数据报文拷贝到硬件接收空间(也就是描述符空间)指向的地址位置,也就是mbuf(存储器缓存)。最后解析mbuf中收取到的网络数据报文,获取网络数据报文中的部分字段信息,进行后续分发的操作。
其中,对分发到CPU的网络数据报文进行矢量化的报文分组处理,包括:
将分发到CPU的网络数据报文放入新开辟的数组空间;
待一数组空间存满网络数据报文后,将剩余的网络数据报文放入下一数组空间,直至分发到CPU的网络数据报文全部已放入完毕;其中每一放入网络数据报文的数组空间对应一个数组。
进一步地,对分发到CPU的网络数据报文进行矢量化的报文分组处理,还包括:
当分发到CPU的网络数据报文全部已放入完毕,且最后放入的数组空间仍未存满网络数据报文时开启计时,计算未有网络数据报文存入该最后放入的数组空间的持续时间,当所述持续时间达到持续时间阈值时,直接将该最后放入的数组空间中的网络数据报文作为一个数组。
其中,所述数组空间的存储容量可以根据需求预先设置。
本发明实施例通过将RSS分发到CPU的网络数据报文进行矢量化的报文分组处理,在数组达到一定数目后进行统一传送,来减少CPU指令缓存的访问延迟抖动,由于矢量报文中第一个分组有缓存预热的功能,所以能大概率地减少后续数据分组处理时的指令缓存缺失事件,也就能以一组数据分组来分摊第一个数据分组引发的指令缓存缺失开销,从而提升整体网络数据报文处理效率。
本发明上述实施例将矢量分组处理技术和RSS队列技术结合,利用DPDK多核和批处理特性,结合并行数据包进行处理,实现了高速网络下网络数据报文处理性能的优化,有效解决了现有用户态协议栈报文处理效率较为低下的问题。
进一步地,所述方法还包括:
在执行用户态协议栈进程前,在所述用户态协议栈中添加启动参数,所述启动参数包括RSS的随机密钥K值;
启动用户态协议栈进程时,向网卡驱动下发所述随机密钥K值,从而所述RSS根据所述随机密钥K值将DPDK所接收的网络数据报文分发到对应的多个CPU。
RSS技术在部分情况下存在其局限性,当数据报文在两台机器之间产生双向流量时,此时通过算法计算出的HASH值会将这两个方向的流量分配到不同队列,并且会由不同的CPU核心进行处理。本发明实施例由于将RSS的随机密钥K值封装成启动参数,因此可以根据是否需要达到同流同向的报文分发目的设置所述RSS的随机密钥K值为非对称随机密钥值或者对称随机密钥值,实现了随机密钥K值的灵活配置,从而可以提升在使用RSS队列优化技术时的灵活性,达到增加适用场景灵活性的目的。
进一步地,所述启动参数对应的配置文件包括预置的非对称随机密钥值和对称随机密钥值,所述随机密钥K值初始时为所述非对称随机密钥值,所述方法还包括:
接收到需要达到同流同向的报文分发请求时,将所述随机密钥K值修改为所述对称随机密钥值。
其中,作为优选,所述对称随机密钥值为:
{0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,
0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,
0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,
0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,
0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,}。
本发明实施例能够根据接收的请求智能修改随机密钥K值,提高了随机密钥K值分配的智能性。
本发明第二方面实施例提供了一种用户态协议栈报文处理优化系统。
图2所示是本发明提供的用户态协议栈报文处理优化系统的一个优选实施例的结构示意图,所述系统能够实现上述任一实施例所述的用户态协议栈报文处理优化方法的全部流程。
如图2所示,该系统包括:
初始化模块1,用于初始化DPDK运行环境,在DPDK中配置所述RSS,所述RSS用于在所述DPDK获取到网络数据报文时将DPDK所接收的网络数据报文分发到对应的多个CPU;
报文分组处理模块2,用于对分发到CPU的网络数据报文进行矢量化的报文分组处理,得到多个数组;
发送模块3,用于当CPU上的数组的数量达到预设数量阈值时,将所述CPU上的数组统一发送到所述用户态协议栈。
其中,所述报文分组处理模块具体用于:
将分发到CPU的网络数据报文放入新开辟的数组空间;
待一数组空间存满网络数据报文后,将剩余的网络数据报文放入下一数组空间,直至分发到CPU的网络数据报文全部已放入完毕;其中每一放入网络数据报文的数组空间对应一个数组。
进一步地,所述报文分组处理模块还具体用于:
当分发到CPU的网络数据报文全部已放入完毕,且最后放入的数组空间仍未存满网络数据报文时开启计时,计算未有网络数据报文存入该最后放入的数组空间的持续时间,当所述持续时间达到持续时间阈值时,直接将该最后放入的数组空间中的网络数据报文作为一个数组。
进一步地,所述系统还包括:
添加模块,用于在执行用户态协议栈进程前,在所述用户态协议栈中添加启动参数,所述启动参数包括RSS的随机密钥K值;
参数下发模块,用于启动用户态协议栈进程时,向网卡驱动下发所述随机密钥K值,从而所述RSS根据所述随机密钥K值将DPDK所接收的网络数据报文分发到对应的多个CPU。
进一步地,所述启动参数对应的配置文件包括预置的非对称随机密钥值和对称随机密钥值,所述随机密钥K值初始时为所述非对称随机密钥值,所述系统还包括:
修改模块,用于在接收到需要达到同流同向的报文分发请求时,将所述随机密钥K值修改为所述对称随机密钥值。
本发明系统上述实施例各模块的功能及实现方式与上述用户态协议栈报文处理优化方法的实施例相同,具体解析可以参照上述用户态协议栈报文处理优化方法的实施例,为了避免重复,在此不再赘述。
本发明还提供了一种用户态协议栈报文处理优化装置,该装置包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项实施例所述的用户态协议栈报文处理优化方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现如上述任一项实施例所述的用户态协议栈报文处理优化方法。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述用户态协议栈报文处理优化装置的控制中心,利用各种接口和线路连接整个用户态协议栈报文处理优化装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述用户态协议栈报文处理优化装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述用户态协议栈报文处理优化装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
以上所述是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
Claims (12)
1.用户态协议栈报文处理优化方法,其特征在于,所述方法包括:
初始化DPDK运行环境,在DPDK中配置所述RSS,所述RSS用于在所述DPDK获取到网络数据报文时将DPDK所接收的网络数据报文分发到对应的多个CPU;
对分发到CPU的网络数据报文进行矢量化的报文分组处理,得到多个数组;
当CPU上的数组的数量达到预设数量阈值时,将所述CPU上的数组统一发送到所述用户态协议栈。
2.根据权利要求1所述的用户态协议栈报文处理优化方法,其特征在于,所述对分发到CPU的网络数据报文进行矢量化的报文分组处理,包括:
将分发到CPU的网络数据报文放入新开辟的数组空间;
待一数组空间存满网络数据报文后,将剩余的网络数据报文放入下一数组空间,直至分发到CPU的网络数据报文全部已放入完毕;其中每一放入网络数据报文的数组空间对应一个数组。
3.根据权利要求2所述的用户态协议栈报文处理优化方法,其特征在于,所述对分发到CPU的网络数据报文进行矢量化的报文分组处理,还包括:
当分发到CPU的网络数据报文全部已放入完毕,且最后放入的数组空间仍未存满网络数据报文时开启计时,计算未有网络数据报文存入该最后放入的数组空间的持续时间,当所述持续时间达到持续时间阈值时,直接将该最后放入的数组空间中的网络数据报文作为一个数组。
4.根据权利要求1所述的用户态协议栈报文处理优化方法,其特征在于,所述方法还包括:
在执行用户态协议栈进程前,在所述用户态协议栈中添加启动参数,所述启动参数包括RSS的随机密钥K值;
启动用户态协议栈进程时,向网卡驱动下发所述随机密钥K值,从而所述RSS根据所述随机密钥K值将DPDK所接收的网络数据报文分发到对应的多个CPU。
5.根据权利要求4所述的用户态协议栈报文处理优化方法,其特征在于,所述启动参数对应的配置文件包括预置的非对称随机密钥值和对称随机密钥值,所述随机密钥K值初始时为所述非对称随机密钥值,所述方法还包括:
接收到需要达到同流同向的报文分发请求时,将所述随机密钥K值修改为所述对称随机密钥值。
6.用户态协议栈报文处理优化系统,其特征在于,所述系统包括:
初始化模块,用于初始化DPDK运行环境,在DPDK中配置所述RSS,所述RSS用于在所述DPDK获取到网络数据报文时将DPDK所接收的网络数据报文分发到对应的多个CPU;
报文分组处理模块,用于对分发到CPU的网络数据报文进行矢量化的报文分组处理,得到多个数组;
发送模块,用于当CPU上的数组的数量达到预设数量阈值时,将所述CPU上的数组统一发送到所述用户态协议栈。
7.根据权利要求6所述的用户态协议栈报文处理优化系统,其特征在于,所述报文分组处理模块具体用于:
将分发到CPU的网络数据报文放入新开辟的数组空间;
待一数组空间存满网络数据报文后,将剩余的网络数据报文放入下一数组空间,直至分发到CPU的网络数据报文全部已放入完毕;其中每一放入网络数据报文的数组空间对应一个数组。
8.根据权利要求7所述的用户态协议栈报文处理优化系统,其特征在于,所述报文分组处理模块还具体用于:
当分发到CPU的网络数据报文全部已放入完毕,且最后放入的数组空间仍未存满网络数据报文时开启计时,计算未有网络数据报文存入该最后放入的数组空间的持续时间,当所述持续时间达到持续时间阈值时,直接将该最后放入的数组空间中的网络数据报文作为一个数组。
9.根据权利要求6所述的用户态协议栈报文处理优化系统,其特征在于,所述系统还包括:
添加模块,用于在执行用户态协议栈进程前,在所述用户态协议栈中添加启动参数,所述启动参数包括RSS的随机密钥K值;
参数下发模块,用于启动用户态协议栈进程时,向网卡驱动下发所述随机密钥K值,从而所述RSS根据所述随机密钥K值将DPDK所接收的网络数据报文分发到对应的多个CPU。
10.根据权利要求9所述的用户态协议栈报文处理优化系统,其特征在于,所述启动参数对应的配置文件包括预置的非对称随机密钥值和对称随机密钥值,所述随机密钥K值初始时为所述非对称随机密钥值,所述系统还包括:
修改模块,用于在接收到需要达到同流同向的报文分发请求时,将所述随机密钥K值修改为所述对称随机密钥值。
11.用户态协议栈报文处理优化装置,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-5任一项所述的用户态协议栈报文处理优化方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现如权利要求1-5任一项所述的用户态协议栈报文处理优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110574733.6A CN113472523A (zh) | 2021-05-25 | 2021-05-25 | 用户态协议栈报文处理优化方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110574733.6A CN113472523A (zh) | 2021-05-25 | 2021-05-25 | 用户态协议栈报文处理优化方法、系统、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113472523A true CN113472523A (zh) | 2021-10-01 |
Family
ID=77871420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110574733.6A Withdrawn CN113472523A (zh) | 2021-05-25 | 2021-05-25 | 用户态协议栈报文处理优化方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113472523A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115379028A (zh) * | 2022-08-19 | 2022-11-22 | 深圳市东进银通电子有限公司 | 基于dpdk的高性能密码服务方法、装置、设备及介质 |
CN116016687A (zh) * | 2022-12-26 | 2023-04-25 | 北京力控华康科技有限公司 | 一种基于dpdk的报文分流方法及系统 |
-
2021
- 2021-05-25 CN CN202110574733.6A patent/CN113472523A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115379028A (zh) * | 2022-08-19 | 2022-11-22 | 深圳市东进银通电子有限公司 | 基于dpdk的高性能密码服务方法、装置、设备及介质 |
CN116016687A (zh) * | 2022-12-26 | 2023-04-25 | 北京力控华康科技有限公司 | 一种基于dpdk的报文分流方法及系统 |
CN116016687B (zh) * | 2022-12-26 | 2024-07-12 | 北京力控华康科技有限公司 | 一种基于dpdk的报文分流方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997106B1 (en) | Inter-smartNIC virtual-link for control and datapath connectivity | |
US11249779B2 (en) | Accelerator interconnect assignments for virtual environments | |
JP7506472B2 (ja) | アプリケーション関数を装置にオフロードするためのシステム及び方法 | |
CN110535813B (zh) | 内核态协议栈与用户态协议栈并存处理方法和装置 | |
CN105511954B (zh) | 一种报文处理方法及装置 | |
US11687375B2 (en) | Technologies for hybrid field-programmable gate array application-specific integrated circuit code acceleration | |
US8811417B2 (en) | Cross-channel network operation offloading for collective operations | |
US8296490B2 (en) | Method and apparatus for improving the efficiency of interrupt delivery at runtime in a network system | |
US11431681B2 (en) | Application aware TCP performance tuning on hardware accelerated TCP proxy services | |
CN109992405B (zh) | 一种处理数据报文的方法和网卡 | |
WO2016115831A1 (zh) | 一种虚拟机容错的方法、装置及系统 | |
US11394700B2 (en) | Proxy service through hardware acceleration using an IO device | |
CN113472523A (zh) | 用户态协议栈报文处理优化方法、系统、装置及存储介质 | |
CN109983741B (zh) | 经由直接存储器访问设备在虚拟机之间传送分组 | |
US11182150B2 (en) | Zero packet loss upgrade of an IO device | |
US9621633B2 (en) | Flow director-based low latency networking | |
WO2024082985A1 (zh) | 一种安装有加速器的卸载卡 | |
CN115237500A (zh) | 一种池化平台的数据处理方法、装置、设备和介质 | |
CN108829530B (zh) | 一种图像处理方法及装置 | |
WO2017218133A1 (en) | Technologies for coordinating access to data packets in a memory | |
US10284501B2 (en) | Technologies for multi-core wireless network data transmission | |
CN116136790A (zh) | 任务处理方法和装置 | |
US20230033312A1 (en) | Secure computing control method, data packet processing method and device and system thereof | |
WO2023231330A1 (zh) | 一种池化平台的数据处理方法、装置、设备和介质 | |
CN117041147B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211001 |
|
WW01 | Invention patent application withdrawn after publication |