一种数据处理方法、装置、设备及存储介质制造方法及图纸

技术编号:31819725 阅读:14 留言:0更新日期:2022-01-12 12:09
本申请公开了一种数据处理方法,该方法包括:获取数据平面开发套件DPDK命令参数;基于所述DPDK命令参数,确定数据处理器和业务处理器;其中,所述数据处理器和所述业务处理器不同;基于所述数据处理器和所述业务处理器,确定目标存储区域;其中,所述目标存储区域用于存储通过所述数据处理器接收到的数据包;通过所述业务处理器从所述目标存储区域获取目标数据包,并基于所述目标数据包进行业务处理,从而实现了业务处理线程无需多次拷贝数据包的实现方案,并提高了业务处理线程对数据包的处理效率。本申请还公开了一种数据处理装置、设备及存储介质。设备及存储介质。设备及存储介质。

【技术实现步骤摘要】
一种数据处理方法、装置、设备及存储介质


[0001]本申请涉及计算机通信
,尤其涉及一种数据处理方法、装置、设备及存储介质。

技术介绍

[0002]当前,随着高速网络的迅速发展,数据平面开发套件(Data Plane Development Kit,DPDK)在网络数据转发领域应用越来越广。DPDK在数据平面应用中为快速处理数据包提供了简单完善的架构,并DPDK使用轮询(polling)机制处理数据包,在收到数据包时DPDK重载的网卡驱动不会通过中断通知CPU,而是直接将数据包存入内存,应用层软件通过DPDK提供的接口直接处理,大大节省CPU中断时间和内存拷贝时间。基于上述优点,越来越多的采集分析业务也借助DPDK实现底层数据的高效收发处理,DPDK框架提供了方法使得用户业务方便的从网卡队列读取数据进行处理,目前使用DPDK接收到数据包后进行处理的方案主要有:在DPDK接收数据线程中串行处理数据报文,但在数据线程中对DPDK接收到的数据包进行数据处理时,会出现个别耗性能业务,如复杂的报文解析或等待回填等,导致整个线程的拥塞,进而出现网卡队列缓冲区溢出,报文丢失的问题,为了解决上述问题,目前常用的技术方案史将接收到的数据包发送给业务处理线程,由业务处理线程对数据包进行业务处理。
[0003]但是,目前通过业务处理线程进行业务处理时,存在数据包多次拷贝的问题,导致业务处理线程无法使用DPDK的大页及实现高效内存操作,降低了业务处理线程对数据包的处理效率。
[0004]申请内容
[0005]为解决上述技术问题,本申请期望提供一种数据处理方法、装置、设备及存储介质,解决了通过业务处理线程进行业务处理时,存在数据包的多次拷贝的问题,实现了业务处理线程无需多次拷贝数据包的实现方案,并提高了业务处理线程对数据包的处理效率。
[0006]本申请的技术方案是这样实现的:
[0007]第一方面,一种数据处理方法,所述方法应用于数据处理设备,所述数据处理设备用于运行数据平面开发套件DPDK,所述方法包括:
[0008]获取DPDK命令参数;
[0009]基于所述DPDK命令参数,确定数据处理器和业务处理器;其中,所述数据处理器和所述业务处理器不同;
[0010]基于所述数据处理器和所述业务处理器,确定目标存储区域;其中,所述目标存储区域用于存储通过所述数据处理器接收到的数据包;
[0011]通过所述业务处理器从所述目标存储区域获取目标数据包,并基于所述目标数据包进行业务处理。
[0012]可选的,所述基于所述DPDK命令参数,确定数据处理器和业务处理器,包括:
[0013]从所述DPDK命令参数中获取数据属性信息和业务属性信息;
[0014]确定属性信息为所述数据属性信息的处理器为所述数据处理器;
[0015]确定属性信息为所述业务属性信息的处理器为所述业务处理器。
[0016]可选的,所述基于所述数据处理器和业务处理器,确定目标存储区域,包括:
[0017]统计所述数据处理器的数量,得到第一数量;
[0018]统计所述业务处理器的数量,得到第二数量;
[0019]基于所述第一数量和所述第二数量,确定所述目标存储区域。
[0020]可选的,所述基于所述第一数量和所述第二数量,确定所述目标存储区域,包括:
[0021]计算所述第一数量与所述第二数量的乘积,得到目标数值;
[0022]申请目标数值个循环缓冲区;
[0023]将所述目标数值个循环缓冲区平均分成第一数量组,得到第一数量组循环缓冲区组;其中,所述目标存储区域包括所述第一数量组循环缓冲区组,每组所述循环缓冲区组对应一个所述数据处理器,每组所述循环缓冲区组包括按照预设编号顺序进行编号的第二数量个所述循环缓冲区。
[0024]可选的,所述基于所述DPDK命令参数,确定目标存储区域之后,所述方法还包括:
[0025]若所述数据处理器接收到待处理数据包,通过所述数据处理器对所述待处理数据包进行分析处理,得到第一存储位置;
[0026]通过所述数据处理器,将所述待处理数据包存储至所述第一存储位置对应的循环缓冲区中。
[0027]可选的,所述若所述数据处理器接收到待处理数据包,通过所述数据处理器对所述待处理数据包进行分析处理,得到第一存储位置,包括:
[0028]若所述数据处理器接收到所述待处理数据包,通过所述数据处理器采用同源同宿算法对所述待处理数据包进行哈希计算,得到目标哈希值;
[0029]通过所述数据处理器将所述数据处理器对应的循环缓冲区组中第目标哈希值个循环缓冲区,确定为所述第一存储位置。
[0030]可选的,所述通过所述业务处理器从所述目标存储区域获取目标数据包,并基于所述目标数据包进行业务处理之后,所述方法还包括:
[0031]通过所述业务处理器记录所述目标数据包在所述目标存储区域中的第二存储位置;
[0032]通过所述业务处理器生成包括所述第二存储位置的反馈信息;
[0033]通过所述数据处理器响应所述反馈信息,释放所述第二存储位置对应的循环缓冲区中的资源;其中,所述资源包括所述目标数据包。
[0034]可选的,所述通过所述业务处理器从所述目标存储区域获取目标数据包,并基于所述目标数据包进行业务处理,包括:
[0035]通过第i业务处理器,采用轮询的方式检测每组所述循环缓冲区组中的第i个循环缓冲区,确定所述第i个循环缓冲区中是否存在所述目标数据包;其中,i=1,2
……
,第二数量;
[0036]若检测到第j组循环缓冲区组的第i个循环缓冲区中存在所述目标数据包,通过所述第i业务处理器获取所述目标数据包,并对所述目标数据包进行业务处理;其中,j为小于或等于所述第一数量的正整数。
[0037]可选的,所述通过所述业务处理器记录所述目标数据包在所述目标存储区域中的第二存储位置,包括:
[0038]通过所述第i业务处理器将所述第j组循环缓冲区组的所述第i个循环缓冲区,确定为所述第二存储位置。
[0039]可选的,所述通过所述业务处理器生成包括所述第二存储位置的反馈信息,并将所述反馈信息发送至所述数据处理器,包括:
[0040]通过所述第i业务处理器生成包括所述第二存储位置的反馈信息,并将所述反馈信息存储至所述第二存储位置对应的循环缓冲区;
[0041]通过第j数据处理器从所述第二存储位置对应的循环缓冲区中获取所述反馈信息;其中,所述数据处理器包括所述第j数据处理器,所述第j数据处理器与所述第j组循环缓冲区组具有对应关系;
[0042]对应的,所述通过所述数据处理器响应所述反馈信息,释放所述第二存储位置对应的循环缓冲区中的资源,包括:
[0043]通过所述第j数据处理器响应所述反馈信息,获取所述反馈信息中的第二存储位置;
[0044]若所述反馈信息中的第二存储位置与本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法应用于数据处理设备,所述数据处理设备用于运行数据平面开发套件DPDK,所述方法包括:获取DPDK命令参数;基于所述DPDK命令参数,确定数据处理器和业务处理器;其中,所述数据处理器和所述业务处理器不同;基于所述数据处理器和所述业务处理器,确定目标存储区域;其中,所述目标存储区域用于存储通过所述数据处理器接收到的数据包;通过所述业务处理器从所述目标存储区域获取目标数据包,并基于所述目标数据包进行业务处理。2.根据权利要求1所述的方法,其特征在于,所述基于所述DPDK命令参数,确定数据处理器和业务处理器,包括:从所述DPDK命令参数中获取数据属性信息和业务属性信息;确定属性信息为所述数据属性信息的处理器为所述数据处理器;确定属性信息为所述业务属性信息的处理器为所述业务处理器。3.根据权利要求2所述的方法,其特征在于,所述基于所述数据处理器和业务处理器,确定目标存储区域,包括:统计所述数据处理器的数量,得到第一数量;统计所述业务处理器的数量,得到第二数量;基于所述第一数量和所述第二数量,确定所述目标存储区域。4.根据权利要求3所述的方法,其特征在于,所述基于所述第一数量和所述第二数量,确定所述目标存储区域,包括:计算所述第一数量与所述第二数量的乘积,得到目标数值;申请目标数值个循环缓冲区;将所述目标数值个循环缓冲区平均分成第一数量组,得到第一数量组循环缓冲区组;其中,所述目标存储区域包括所述第一数量组循环缓冲区组,每组所述循环缓冲区组对应一个所述数据处理器,每组所述循环缓冲区组包括按照预设编号顺序进行编号的第二数量个所述循环缓冲区。5.根据权利要求4所述的方法,其特征在于,所述基于所述DPDK命令参数,确定目标存储区域之后,所述方法还包括:若所述数据处理器接收到待处理数据包,通过所述数据处理器对所述待处理数据包进行分析处理,得到第一存储位置;通过所述数据处理器,将所述待处理数据包存储至所述第一存储位置对应的循环缓冲区中。6.根据权利要求5所述的方法,其特征在于,所述若所述数据处理器接收到待处理数据包,通过所述数据处理器对所述待处理数据包进行分析处理,得到第一存储位置,包括:若所述数据处理器接收到所述待处理数据包,通过所述数据处理器采用同源同宿算法对所述待处理数据包进行哈希计算,得到目标哈希值;通过所述数据处理器将所述数据处理器对应的循环缓冲区组中第目标哈希值个循环缓冲区,确定为所述第一存储位置。
7.根据权利要求1至6任一所述的方法,其特征在于,所述通过所述业务处理器从所述目标存储区域获取目标数据包,并基于所述目标数据包进行业务处理之后,所述方法还包括:通过所述业务处理器记录所述目标数据包在所述目标存储区域中的第二存储位置;通过所述业务处理器生成包括所述第二存储位置的反馈信息;通过所述数据处理器响应所述反馈信息,释放所述第二存储位置对应的循环缓冲区中的资源;其中,所述资源包括所述目标数据包。8.根据权利要求7所述的方法,其特征在于,所述通过所述业务处理器从所述目标存储区域获取目标数据包,并基于所述目标数据包进行业务处理,包括:通过第i业务处理器,采用轮询的方式检测每组所述循环缓冲区组中的第...

【专利技术属性】
技术研发人员:贾玉沈政
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1