本发明涉及数据处理,具体涉及一种基于dpu的数据平面转发方法、装置、设备及介质。
背景技术:
1、虽然linux内核协议栈在大多数常见网络工作负载下表现良好,但在dpu场景中的高负载、高并发或大规模数据处理的情况下,由于锁竞争、内存访问延迟等原因会出现性能瓶颈,不能在大规模数据的压力下达到低时延的要求。linux内核协议栈在处理报文时需要触发中断、内存拷贝、上下文切换等动作,而这些操作会增大资源的消耗、降低操作系统的性能,导致延迟增加、吞吐量下降和性能瓶颈的问题。受限于linux内核协议栈,无法满足在dpu场景下大规模数据中心高速流量的实时处理需求。
技术实现思路
1、有鉴于此,本发明提供了一种基于dpu的数据平面转发方法、装置、设备及介质,能够提高数据平面应用的性能和吞吐量,适用于dpu低延迟场景。
2、为实现上述目的,本发明技术方案如下:
3、一种基于dpu的数据平面转发方法,基于dpu实现待转发数据平面转发,所述dpu包括soc以及网络处理器;
4、在soc侧,配置dpdk接管对应网卡,基于dpdk的用户态协议栈在用户空间处理来自客户端的待转发数据,将待转发数据传送到网络处理器;
5、所述网络处理器将接收到的待转发数据传送到服务端,完成转发。
6、其中,基于dpdk的用户态协议栈在用户空间处理待转发数据包括:
7、dpdk收取含有带转发数据的报文到达用户态协议栈;
8、将符合报文规则的待转发数据经过nat转换到达服务网格数据平面;
9、服务网格数据平面根据配置信息匹配目的端口和ip地址,跟服务端建立连接,获取本次请求响应数据;
10、根据响应数据,将待转发数据传送到网络处理器。
11、其中,所述响应数据根据nat转换为源ip地址以及相应信息。
12、其中,基于dpdk的用户态协议栈在用户空间处理待转发数据时,在用户态协议栈中对待转发数据进行报文分发,判断是否符合报文规则,若符合,则将待转发数据经过nat转换到达服务网格数据平面,否则将待转发数据通过路由表经由dpdk传送到网络处理器。
13、其中,dpdk收取待转发数据进行报文分发时,通过大页内存、内存池、零拷贝、核绑定以及轮询收发报文机制实现。
14、其中,基于dpdk的用户态协议栈按照自定义配置报文规则,对指定的客户端流量数据透明劫持到服务网格数据平面中进行透明代理。
15、本发明还提供了一种基于dpu的待转发数据平面转发装置,所述dpu包括soc以及网络处理器,所述soc包括dpdk、用户态协议栈以及服务网格数据平面;
16、其中,dpdk配置接管对应网卡;用户态协议栈在用户空间处理待转发数据,并将待转发数据传送到网络处理器;
17、所述网络处理器将接收到的待转发数据传送到服务端。
18、其中,dpdk收取待转发数据进行报文分发;在用户态协议栈中,符合报文规则的待转发数据经过nat转换到达服务网格数据平面;服务网格数据平面用于根据配置信息匹配目的端口和ip地址,跟服务端建立连接获取请求响应数据,根据响应数据,将待转发数据通过路由表经由dpdk传送到网络处理器;不符合报文规则的待转发数据直接通过路由表经由dpdk传送到网络处理器。
19、本发明还提供了一种电子设备,所述电子设备包括处理器、用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本发明基于dpu的数据平面转发方法。
20、本发明还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本发明基于dpu的数据平面转发方法。
21、有益效果:
22、1、本发明中,通过dpdk直接接管网卡,能够在数据包到达数据平面之前进行快速处理,降低数据包处理延迟,非常适用于dpu低延迟场景。将基于dpdk的用户态协议栈代替linux内核协议栈,绕过操作系统内核在用户空间处理,直接访问网络和物理存储设备硬件,显著提高数据平面应用的性能和吞吐量。
23、2、本发明优先实施方式中,基于dpdk的用户态协议栈可以按照自定义配置对指定的流量透明劫持到集中式的数据平面中进行透明代理,方便对流量进行分发管理。通过将流量劫持到dpu中的数据平面中进行透明代理,节省主机资源,减少主机cpu计算消耗,通过对主机处理器的计算资源的分配优化,进一步提高系统性能以及稳定性。
24、3、本发明优先实施方式中,dpdk配置大页内存,通过大页内存,减少页表开销,更好的利用cpu的高速缓存,提高了内存性能,提供更快的cpu访问速度。
1.一种基于dpu的数据平面转发方法,其特征在于,基于dpu实现待转发数据平面转发,所述dpu包括soc以及网络处理器;
2.如权利要求1所述的方法,其特征在于,基于dpdk的用户态协议栈在用户空间处理待转发数据包括:
3.如权利要求2所述的方法,其特征在于,所述响应数据根据nat转换为源ip地址以及相应信息。
4.如权利要求1-3任意一项所述的方法,其特征在于,基于dpdk的用户态协议栈在用户空间处理待转发数据时,在用户态协议栈中对待转发数据进行报文分发,判断是否符合报文规则,若符合,则将待转发数据经过nat转换到达服务网格数据平面,否则将待转发数据通过路由表经由dpdk传送到网络处理器。
5.如权利要求1-3任意一项所述的方法,其特征在于,dpdk收取待转发数据进行报文分发时,通过大页内存、内存池、零拷贝、核绑定以及轮询收发报文机制实现。
6.如权利要求1-3任意一项所述的方法,其特征在于,基于dpdk的用户态协议栈按照自定义配置报文规则,对指定的客户端流量数据透明劫持到服务网格数据平面中进行透明代理。
7.一种基于dpu的待转发数据平面转发装置,其特征在于,所述dpu包括soc以及网络处理器,所述soc包括dpdk、用户态协议栈以及服务网格数据平面;
8.如权利要求7所述的装置,其特征在于,dpdk收取待转发数据进行报文分发;在用户态协议栈中,符合报文规则的待转发数据经过nat转换到达服务网格数据平面;服务网格数据平面用于根据配置信息匹配目的端口和ip地址,跟服务端建立连接获取请求响应数据,根据响应数据,将待转发数据通过路由表经由dpdk传送到网络处理器;不符合报文规则的待转发数据直接通过路由表经由dpdk传送到网络处理器。
9.一种电子设备,其特征在于,所述电子设备包括处理器、用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-6中任一所述的基于dpu的数据平面转发方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-6中任一所述的基于dpu的数据平面转发方法。