数据包处理方法、系统、存储介质和电子设备技术方案

技术编号:37302405 阅读:24 留言:0更新日期:2023-04-21 22:47
本申请提供一种数据包处理方法、系统、存储介质和电子设备,涉及数据处理领域,包括:获取网络包并提取所述网络包中的数据信息;在所述数据信息中填写控制字段,并对所述网络包执行数据偏移,令所述网络包所在地址为字节对齐地址,得到调整数据包;将所述调整数据包发送至主机的接收队列中,并以中断方式通知所述主机,以便所述主机调用中断处理函数处理所述调整数据包。本申请实现了对网络包中业务数据的数据格式预处理,便于业务数据在主机侧被直接访问,避免由于数据格式混乱造成缓存行访问困难影响业务数据的被访问,提高了业务数据的访问性能。问性能。问性能。

【技术实现步骤摘要】
数据包处理方法、系统、存储介质和电子设备


[0001]本申请涉及数据处理领域,特别涉及一种数据包处理方法、系统、存储介质和电子设备。

技术介绍

[0002]随着大数据、人工智能、云服务等技术的快速发展,网络也正在向高带宽和新型传输体系发展,带宽正在从50Gbps到100Gbps、400Gbps不断演进。基于这些技术的大规模计算、海量数据存储、虚拟机、容器等时刻变化的业务应用需求给电子设备基础设施计算节点的CPU带来了巨大的压力。传统的网络处理流程已经不能适用于这种高带宽场景下的业务处理,因为受摩尔定律逐渐失效的影响,处理器的性能提升速度放缓,处理能力相对不能有效的应对网络带宽的提升,这将成为业务数据处理的瓶颈。
[0003]当前技术上可以通过RDMA(Remote Direct Memory Access,远程直接数据存取)将网络包的协议栈处理完全卸载网卡中。但是RDMA设计本身是为了高性能低延时,对网络有苛刻的要求(网络不丢包),否则性能下降会很大;同时上层应用需要使用新的API接口。

技术实现思路

[0004]本申请的目的是提供一种数据包处理方法、系统、存储介质和电子设备,通过对网络包进行解析和重构,使得重构后的调整数据包适配业务访问,提升了应用程序访问业务数据的效率。
[0005]为解决上述技术问题,本申请提供一种数据包处理方法,包括:获取网络包并提取所述网络包中的数据信息;在所述数据信息中填写控制字段,并对所述网络包执行数据偏移,令所述网络包所在地址为字节对齐地址,得到调整数据包;将所述调整数据包发送至主机的接收队列中,并以中断方式通知所述主机,以便所述主机调用中断处理函数处理所述调整数据包。
[0006]可选的,获取网络包并提取所述网络包中的数据信息包括:获取网络包;提取所述网络包中的以太网帧类型;判断所述以太网帧类型是否为IPv4帧;若是,提取所述以太网帧的总长度;对所述IPv4帧执行帧类型判断:若所述IPv4帧为UDP帧,提取所述UDP帧的帧长度;若所述IPv4帧为TCP帧,提取所述TCP帧的段长和头部长度。
[0007]可选的,在所述数据信息中填写控制字段之前,还包括:计算并生成控制字段;其中,若所述网络包为所述UDP帧,根据所述UDP帧的帧长度计算并生成控制字段;
若所述网络包为所述TCP帧,根据所述TCP帧的所述段长和所述头部长度计算并生成控制字段。
[0008]可选的,还包括:所述主机在驱动中注册所述中断处理函数。
[0009]可选的,将所述调整数据包发送至主机的接收队列中,并以中断通知所述主机,以便所述主机调用中断处理函数处理所述调整数据包之后,还包括:所述主机解析所述调整数据包,得到控制字段;根据所述控制字段调整预设数据结构体中的变量,并重构所述预设数据结构体;所述预设数据结构体用于上层协议栈处理。
[0010]可选的,根据所述控制字段调整预设数据结构体中的变量之前,还包括:编写并注册数据处理函数,所述数据处理函数用于对所述调整数据包进行解析并重构所述预设数据结构体。
[0011]可选的,所述重构所述预设数据结构体包括:将所述调整数据包的第一个字节对应传输至缓冲区头部,同时所述预设数据结构体的头部指针指向所述缓冲区头部;所述缓冲区头部在内存地址中保持字节对齐;将所述预设数据结构体中的数据和数据尾部作为数据区;将所述预设数据结构体中的结尾作为缓冲区尾部;其中,重构后的预设数据结构体由所述缓冲区头部、所述数据区和所述缓冲区尾部构成。
[0012]可选的,若所述调整数据包无需跨缓存行执行,对所述网络包执行数据偏移,令所述网络包所在地址为字节对齐地址,得到调整数据包包括:若所述调整数据包小于等于64字节,所述调整数据包的帧格式为控制字段+以太网帧;所述以太网帧包含以太网、IP、传输层帧头和业务数据;若所述调整数据包大于64字节,所述调整数据包的帧格式为所述控制字段+填充字段+所述以太网帧。
[0013]可选的,若所述调整数据包需要跨缓存行执行,对所述网络包执行数据偏移,令所述网络包所在地址为字节对齐地址,得到调整数据包包括:所述调整数据包包括所述控制字段、所述填充字段、所述以太网、所述IP、所述传输层帧头和所述业务数据;其中,所述控制字段、所述填充字段、所述以太网、所述IP和所述传输层帧头共计64字节或128字节。
[0014]可选的,所述业务数据按照61字节对齐,并根据所述调整数据包的帧类型计算所述控制字段的位置。
[0015]可选的,根据所述调整数据包的帧类型计算所述控制字段的位置包括:若所述调整数据包的帧类型为TCP数据包,则所述控制字段的位置为64*num
‑6‑
14

帧长度+业务数据长度

头部数据长度;若所述调整数据包的帧类型为UDP数据包,则所述控制字段的位置为64*num
‑6‑
14

帧长度+UDP数据包长度

8;其中,num为所述控制字段与所述头部数据长度之和。
[0016]可选的,在所述数据信息中填写控制字段,并对所述网络包执行数据偏移,令所述
网络包所在地址为字节对齐地址,得到调整数据包之后,还包括:为所述调整数据包添加数据指针、尾部指针和结尾指针;所述数据指针指向报文头。
[0017]本申请还提供一种数据包处理系统,包括:网络包获取模块,用于获取网络包并提取所述网络包中的数据信息;网络包调整模块,用于在所述数据信息中填写控制字段,并对所述网络包执行数据偏移,令所述网络包所在地址为字节对齐地址,得到调整数据包;网络包发送模块,用于将所述调整数据包发送至主机的接收队列中,并以中断方式通知所述主机,以便所述主机调用中断处理函数处理所述调整数据包。
[0018]本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
[0019]本申请还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
[0020]本申请提供一种数据包处理方法,包括:获取网络包并提取所述网络包中的数据信息;在所述数据信息中填写控制字段,并对所述网络包执行数据偏移,令所述网络包所在地址为字节对齐地址,得到调整数据包;将所述调整数据包发送至主机的接收队列中,并以中断方式通知所述主机,以便所述主机调用中断处理函数处理所述调整数据包。
[0021]本申请在获取网络包后,对网络包进行数据信息提取,从而根据提取到的数据信息向其中填充控制字段,从而对网络包执行数据偏移,实现了对网络包中业务数据的数据格式预处理,便于业务数据在主机侧被直接访问,避免由于数据格式混乱造成缓存行访问困难影响业务数据的被访问,提高了业务数据的访问性能。
[0022]本申请还提供一种数据包处理系统、存储介质和电子设备,具有上述有益效果,此处不再赘述。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据包处理方法,其特征在于,包括:获取网络包并提取所述网络包中的数据信息;在所述数据信息中填写控制字段,并对所述网络包执行数据偏移,令所述网络包所在地址为字节对齐地址,得到调整数据包;将所述调整数据包发送至主机的接收队列中,并以中断方式通知所述主机,以便所述主机调用中断处理函数处理所述调整数据包。2.根据权利要求1所述的数据包处理方法,其特征在于,获取网络包并提取所述网络包中的数据信息包括:获取网络包;提取所述网络包中的以太网帧类型;判断所述以太网帧类型是否为IPv4帧;若是,提取所述以太网帧的总长度;对所述IPv4帧执行帧类型判断:若所述IPv4帧为UDP帧,提取所述UDP帧的帧长度;若所述IPv4帧为TCP帧,提取所述TCP帧的段长和头部长度。3.根据权利要求2所述的数据包处理方法,其特征在于,在所述数据信息中填写控制字段之前,还包括:计算并生成所述控制字段;其中,若所述网络包为所述UDP帧,根据所述UDP帧的帧长度计算并生成所述控制字段;若所述网络包为所述TCP帧,根据所述TCP帧的所述段长和所述头部长度计算并生成所述控制字段。4.根据权利要求1所述的数据包处理方法,其特征在于,还包括:所述主机在驱动中注册所述中断处理函数。5.根据权利要求1或4所述的数据包处理方法,其特征在于,将所述调整数据包发送至主机的接收队列中,并以中断通知所述主机,以便所述主机调用中断处理函数处理所述调整数据包之后,还包括:所述主机解析所述调整数据包,得到所述控制字段;根据所述控制字段调整预设数据结构体中的变量,并重构所述预设数据结构体;所述预设数据结构体用于上层协议栈处理。6.根据权利要求5所述的数据包处理方法,其特征在于,根据所述控制字段调整预设数据结构体中的变量之前,还包括:编写并注册数据处理函数,所述数据处理函数用于对所述调整数据包进行解析并重构所述预设数据结构体。7.根据权利要求6所述的数据包处理方法,其特征在于,所述重构所述预设数据结构体包括:将所述调整数据包的第一个字节对应传输至缓冲区头部,同时所述预设数据结构体的头部指针指向所述缓冲区头部;所述缓冲区头部在内存地址中保持字节对齐;将所述预设数据结构体中的数据和数据尾部作为数据区;将所述预设数据结构体中的结尾作为缓冲区尾部;
其中,重构后的预设数据结构体由所述缓冲区头部、所述数据区和所述缓冲区尾部构成。8.根据权利要求1所述的数据包处理方法,其特征在于,若所述调整数据包无需跨缓存行执行,对所述网络包执行数据偏移,令所述网络包所在地址为字节对齐地址,得到调整数据包包括:若所述调整数据包小于等于64字节...

【专利技术属性】
技术研发人员:刘伟徐亚明郭巍张德闪张灿
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1