一种基于DPDK的数据包处理方法及装置制造方法及图纸

技术编号:23163919 阅读:88 留言:0更新日期:2020-01-21 22:25
本申请提供一种基于DPDK的数据包处理方法及装置,该方法包括:在DPDK运行环境中,从至少一个网卡中读取数据包,并将所述数据包保存在mbuf中;将mbuf分别加入到预先创建的多个无锁队列中,所述多个无锁队列中的每个无锁队列分别与一个数据包处理服务绑定,以使所述数据包处理服务从绑定的无锁队列中读取所述mbuf并处理所述mbuf中的数据包。本申请使用数据平面开发套件DPDK,从一个或多个网卡接收数据包并将其放到多个无锁共享队列中,应用层服务从绑定的共享队列中读取数据包并进行包处理,从而实现多个服务间数据包的共享。

A data packet processing method and device based on dpdk

【技术实现步骤摘要】
一种基于DPDK的数据包处理方法及装置
本申请涉及计算机
,具体而言,涉及一种基于DPDK的数据包处理方法及装置。
技术介绍
在网络数据处理场景中,存在同一台服务器上需要将采集到的网络数据包交给多个服务进行处理的场景。目前常用的方式是通过linuxBridge网桥或者OpenVSwitch(OVS)来构造虚拟交换设备,虚拟出多个端口,并将物理端口采集到的数据转发到虚拟端口中,每个服务绑定不同的虚拟端口,读取虚拟端口中的数据包并进行处理。但是该方式在应用时需要创建虚拟交换机,并根据需求做相应的配置,而且存在数据包多次拷贝的情况,降低收发性能。
技术实现思路
本申请实施例的目的在于提供一种基于DPDK的数据包处理方法及装置,使用数据平面开发套件DPDK实现零拷贝的多服务数据包共享,不需要部署虚拟交换机,有效提升性能。第一方面,本专利技术实施例提供一种基于DPDK的数据包处理方法,包括:在DPDK运行环境中,从至少一个网卡中读取数据包,并将所述数据包保存在mbuf中;将mbuf分别加入到预先创建的多个无锁队列中,所述本文档来自技高网...

【技术保护点】
1.一种基于DPDK的数据包处理方法,其特征在于,包括:/n在DPDK运行环境中,从至少一个网卡中读取数据包,并将所述数据包保存在mbuf中;/n将mbuf分别加入到预先创建的多个无锁队列中,所述多个无锁队列中的每个无锁队列分别与一个数据包处理服务绑定,以使所述数据包处理服务从绑定的无锁队列中读取所述mbuf并处理所述mbuf中的数据包。/n

【技术特征摘要】
1.一种基于DPDK的数据包处理方法,其特征在于,包括:
在DPDK运行环境中,从至少一个网卡中读取数据包,并将所述数据包保存在mbuf中;
将mbuf分别加入到预先创建的多个无锁队列中,所述多个无锁队列中的每个无锁队列分别与一个数据包处理服务绑定,以使所述数据包处理服务从绑定的无锁队列中读取所述mbuf并处理所述mbuf中的数据包。


2.根据权利要求1所述的方法,其特征在于,在将mbuf分别加入到预先创建的多个无锁队列中之前,所述方法还包括:
设定数据包的引用计数,并在所述mbuf中存储引用计数的值。


3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在mbuf中引用计数的值为0的情况下,释放所述mbuf。


4.根据权利要求1所述的方法,其特征在于,在从至少一个网卡中读取数据包之前,所述方法还包括:
初始化所述DPDK,以确定所述网卡的工作模式、申请内存池以及创建多个无锁队列。


5.根据权利要求1所述的方法,其特征在于,所述无锁队列为ring队列,所述方法还包括:
当存在多余的ring队列时,且有待扩展数据包处理服务,则从所述多余的ring队列中选取与所述待扩展数据包处理服务数量相同的ring队列作为目标ring队列,并将所述目标ring队列分别与一个所述待扩展数据包处理服务进行绑定。


6.一种基于D...

【专利技术属性】
技术研发人员:许小奎马奥
申请(专利权)人:南京中孚信息技术有限公司
类型:发明
国别省市:江苏;32

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

1