网络数据包处理方法及装置制造方法及图纸

技术编号:21634184 阅读:25 留言:0更新日期:2019-07-17 12:50
本申请公开了一种网络数据包处理方法,所述方法包括:接收网络数据包;根据预设的流量分类算法确定所述网络数据包对应的处理进程;将所述网络数据包转发到所述对应的处理进程中。采用上述方法,解决了现有技术中存在的DPDK进程独占使用网卡的问题。

Network Data Packet Processing Method and Device

【技术实现步骤摘要】
网络数据包处理方法及装置
本申请涉及计算机
,具体涉及一种网络数据包处理方法及装置。
技术介绍
随着网络通信设备和现代CPU等硬件性能的高速发展,网卡的带宽已从曾经的千兆、万兆扩展到如今的25G、100G,网卡的收发包性能日益提高,同时现代CPU性能的扩展通过多核的方式进行演进,使得通用处理器可以并行地处理网络负载。在云计算场景中,用户在虚拟机部署的应用要求底层存储系统在数据的读写时延上越低越好,IOPS越高越好。无论是硬件本身的变革,还是市场用户的需求,都要求云计算的分布式技术在低延迟、高吞吐量上前进。现有技术下,通常采用DPDK数据包处理平台进行网络数据包的处理。DPDK是Intel公司开发的基于多核处理器的高性能数据包处理平台,现已开源,并有网卡公司如Mellanox直接与之合作,为开发者提供技术和需求支持。但是,现有技术下采用DPDK数据包处理平台进行网络数据包的处理存在以下缺陷:一旦DPDK进程启动,会导致网卡被DPDK驱动独占使用,内核的应用程序无法正常服务。
技术实现思路
本申请提供一种网络数据包处理方法,以解决现有DPDK进程独占使用网卡的问题。所述网络数据包处理方法,包括:接收网络数据包;根据预设的流量分类算法确定所述网络数据包对应的处理进程;将所述网络数据包转发到所述对应的处理进程中。可选的,所述网络数据包对应的处理进程包括:DPDK进程和内核驱动。可选的,所述预设的流量分类算法,包括:对DPDK进程和内核驱动分别分配不同的端口范围,DPDK进程使用该端口作为本端端口封装网络数据包;与该网络数据包对称的网络数据包到达网卡时根据目标端口匹配到DPDK进程。可选的,当所述网络数据包对应的处理进程为DPDK进程时,所述将所述网络数据包转发到所述对应的处理进程中,包括将所述网络数据包转发到对应的网卡队列中。可选的,所述网卡为两个或两个以上。可选的,当网卡为两个或两个以上时,网卡之间互为主备关系。可选的,所述网卡的工作机制包括:并发工作机制和/或容灾工作机制。可选的,所述预设的流量分类算法,具体为:在所述网卡上配置规则哈希表,每个所述网卡队列在相应的网卡哈希表里添加一条不同的规则,所述规则包括每个所述网卡队列需要缓存的网络数据包TCP/IP协议里的端口。可选的,当网卡为两个以上时,为不同网卡上相同序号的网卡队列配置相同的规则。可选的,当DPDK进程为客户端时,设置网卡队列的客户端规则,所述客户端规则包括每个网卡队列设置不同的端口范围作为目标端口。可选的,当DPDK进程为服务端时,设置网卡队列的服务端规则,将每个网卡队列的服务端规则设置为目标端口与监听端口范围一致,源端口对服务端工作线程取模为队列序号。可选的,在将所述网络数据包转发到与之对应的网卡队列中的步骤之后,包括:与所述网卡队列对应的工作线程读取所述网卡队列中的网络数据包;在用户态处理逻辑对所述网卡队列中的网络数据包进行协议栈解析和业务层处理生成响应数据;对所述响应数据进行协议栈封装;通过选择的网卡队列发送封装后的数据包。可选的,所述工作线程为物理CPU核上运行的DPDK线程,与物理CPU核一对一绑定,被绑定的物理CPU核只运行绑定的工作线程,且每个工作线程与网卡上的网卡队列一一对应。可选的,在选择网卡时包括采用以下算法:轮流发送或hash算法。可选的,所述与网卡队列对应的工作线程读取所述网卡队列中的流量,包括:所述与网卡队列对应的工作线程采用轮询方式读取不同网卡的网卡队列中的流量。可选的,在初始化网卡时,开启网卡的isolate模式。本申请还提供一种网络数据包处理装置,其特征在于,包括:数据包接收单元,用于接收网络数据包;进程确定单元,用于根据预设的流量分类算法确定所述网络数据包对应的处理进程;数据包转发单元,用于将所述网络数据包转发到所述对应的处理进程。与现有技术相比,本申请具有以下优点:本申请提供一种网络数据包处理方法,所述方法包括:接收网络数据包;根据预设的流量分类算法确定所述网络数据包对应的处理进程;将所述网络数据包转发到所述对应的处理进程中。本申请提供的网络数据包处理方法,根据预设的流量分类算法确定所述网络数据包对应的处理进程,实现了在流量包到达网卡时,将接收的网络数据包按照流量分类算法进行分类并转发到对应的处理进程(包括DPDK进程和内核驱动)中,本申请通过在网卡和DPDK程序中配置合适的流量分类算法,实现了DPDK进程只接管属于自己的网络数据包,DPDK进程在运行时对内核应用程序无任何副作用,解决了DPDK进程独占网卡的问题。附图说明图1是本申请第一实施例提供的一种网络数据包处理方法的流程图。图2是本申请第一实施例提供的一种支持双网卡的网络数据包处理模型示意图。图3是本申请第一实施例提供的一种网络数据包处理方法的进程运行流程图。图4本申请第二实施例提供的一种网络数据包处理装置的示意图。具体实施方式在下面的描述中阐述了很多具体细节以便于充分理解本专利技术。但是本专利技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本专利技术内涵的情况下做类似推广,因此本专利技术不受下面公开的具体实施的限制。本申请第一实施例提供了一种网络数据包处理方法。请参考图1和图2,图1示出了根据本申请的实施例提供的一种网络数据包处理方法的流程图,图2示出了本申请第一实施例提供的一种支持双网卡的网络数据包处理结构示意图。以下结合图1和图2进行详细说明。步骤S101,接收网络数据包。所述网络数据包,包括:需要DPDK进程处理的网络数据包和其他需要内核处理的数据包,其中需要内核处理的数据包包括:TCP/IP协议栈里的控制包(例如icmp/arp等控制包)、非DPDK规则的网络数据包。所述接收网络数据包,指网络数据包通过网卡到达物理机,物理机的程序接受网络数据包之后,决定由哪个进程来处理网络数据包。步骤S102,根据预设的流量分类算法确定所述网络数据包对应的处理进程。所述处理进程,包括DPDK进程和内核驱动。所述预设的流量分类算法,包括:对DPDK进程和内核驱动分别分配不同的源端口范围,DPDK进程使用该源端口作为本端端口封装网络数据包;与该网络数据包对称的网络数据包到达网卡时根据目标端口匹配到DPDK进程。本申请主要关注TCP/IP数据包,流量分类算法采用的是TCP/IP协议里的五元组(包括源IP、源端口、目标IP、目标端口、协议类型),主要与TCP/IP协议里的源端口和目的端口有关。为了保证DPDK进程运行时,不影响其他使用内核的程序,那么DPDK不能接管任何属于内核的数据包,所以DPDK进程作为客户端时的源端口范围最好与内核分开。源端口的取值范围是0~65535,可以调整内核的端口范围,例如让内核只使用0~61000,而剩下的61001~65535范围内的端口则为DPDK使用。所述根据预设的流量分类算法确定所述网络数据包对应的处理进程,包括:根据预设的流量分类算法判断所述网络数据包中所包含的目标端口是否匹配DPDK进程使用的源端口范围,若是,确定所述网络数据包对应的处理进程为DPDK进程;若否,确定所述网络数据包对应的处理进程为内核驱动。例如,如果网络数据包的目标端口为61001,则通过匹配确定目标端口61001在DPDK进程使用本文档来自技高网...

【技术保护点】
1.一种网络数据包处理方法,其特征在于,包括:接收网络数据包;根据预设的流量分类算法确定所述网络数据包对应的处理进程;将所述网络数据包转发到所述对应的处理进程中。

【技术特征摘要】
1.一种网络数据包处理方法,其特征在于,包括:接收网络数据包;根据预设的流量分类算法确定所述网络数据包对应的处理进程;将所述网络数据包转发到所述对应的处理进程中。2.根据权利要求1所述的网络数据包处理方法,其特征在于,所述网络数据包对应的处理进程包括:DPDK进程和内核驱动。3.根据权利要求1所述的网络数据包处理方法,其特征在于,所述预设的流量分类算法,包括:对DPDK进程和内核驱动分别分配不同的端口范围,DPDK进程使用该端口作为本端端口封装网络数据包;与该网络数据包对称的网络数据包到达网卡时根据目标端口匹配到DPDK进程。4.根据权利要求1所述的网络数据包处理方法,其特征在于,当所述网络数据包对应的处理进程为DPDK进程时,所述将所述网络数据包转发到所述对应的处理进程中,包括将所述网络数据包转发到对应的网卡队列中。5.根据权利要求4所述的网络数据包处理方法,其特征在于,包括:所述网卡为两个或两个以上。6.根据权利要求5所述的网络数据包处理方法,其特征在于,包括:当网卡为两个或两个以上时,网卡之间互为主备关系。7.根据权利要求6所述的网络数据包处理方法,其特征在于,所述网卡的工作机制包括:并发工作机制和/或容灾工作机制。8.根据权利要求3或5所述的网络数据包处理方法,其特征在于,所述预设的流量分类算法,具体为:在所述网卡上配置规则哈希表,每个所述网卡队列在相应的网卡哈希表里添加一条不同的规则,所述规则包括每个所述网卡队列需要缓存的网络数据包TCP/IP协议里的端口。9.根据权利要求8所述的网络数据包处理方法,其特征在于,包括:当网卡为两个以上时,为不同网卡上相同序号的网卡队列配置相同的规则。10.根据权利要求8所述的网络数据包处理方法,其特征在于,当DPDK进程...

【专利技术属性】
技术研发人员:石博朱凌俊
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1