一种网络流量分流方法及装置制造方法及图纸

技术编号:18501195 阅读:23 留言:0更新日期:2018-07-21 22:26
本发明专利技术提供了一种网络流量分流方法及装置,该方法应用于多核设备,包括:获取用于用户态访问的网络数据包;对网络数据包进行剥离分析,得到目标业务进程编号;若目标业务进程编号小于分流器进程所对应的业务进程数,获取目标业务进程编号所对应的目标虚拟网卡编号,其中,所述分流器进程是预先基于配置文件所开启的;将网络数据包发送至目标虚拟网卡编号所对应的目标虚拟网卡,以使目标虚拟网卡将网络数据包转发至目标业务进程。基于本发明专利技术,可以在低端网卡的单队列或者少队列分流过程中,业务进程实现无锁无竞争地处理网络数据包,充分保障CPU核的高效利用率。

A network flow distributary method and device

The present invention provides a network traffic diversion method and device, which is applied to multi-core devices, including: obtaining network data packets for user access, peeling and analyzing network data packets to get the number of target business processes; if the target business process number is less than the number of business processes corresponding to the shunt process. To obtain the target virtual network card number corresponding to the target business process number, in which the process of the shunt is based on the configuration file in advance; the network data packet is sent to the target virtual network card corresponding to the target virtual network card number to enable the target virtual network card to forward the network packet to the target business process. . Based on this invention, the business process can handle network data packets without locking and uncompeting in the process of single queue or few queues in the low end network card, which fully guarantees the efficient utilization of the CPU core.

【技术实现步骤摘要】
一种网络流量分流方法及装置
本专利技术涉及网络流量分配
,更具体地说,涉及一种网络流量分流方法及装置。
技术介绍
一般的高速网络数据分析系统均采用多核设备,在某CPU核上绑定业务进程并行处理网络数据包。业务进程在对网络流进行流重组的情况下,为保证流前后相继的报文绝对保序,需要对网络流量进行分流。现阶段的网络流量分流方式虽然均从软件分流的层面上提高分流的及时性和效率,但是,由于并未考虑到低端网卡单队列或者少队列,比如2队列或者4队列分流过程中如何避免业务进程的竞争,这就会就产生CPU核利用率过低的问题。
技术实现思路
有鉴于此,本专利技术提供一种网络流量分流方法及装置,以解决低端网卡单队列或者少队列分流过程中如何避免业务进程的竞争的问题。技术方案如下:一种网络流量分流方法,应用于多核设备,所述方法包括:获取用于用户态访问的网络数据包;对所述网络数据包进行剥离分析,得到目标业务进程编号;若所述目标业务进程编号小于分流器进程所对应的业务进程数,获取所述目标业务进程编号所对应的目标虚拟网卡编号,其中,所述分流器进程是预先基于配置文件所开启的;将所述网络数据包发送至所述目标虚拟网卡编号所对应本文档来自技高网...

【技术保护点】
1.一种网络流量分流方法,其特征在于,应用于多核设备,所述方法包括:获取用于用户态访问的网络数据包;对所述网络数据包进行剥离分析,得到目标业务进程编号;若所述目标业务进程编号小于分流器进程所对应的业务进程数,获取所述目标业务进程编号所对应的目标虚拟网卡编号,其中,所述分流器进程是预先基于配置文件所开启的;将所述网络数据包发送至所述目标虚拟网卡编号所对应的目标虚拟网卡,以使所述目标虚拟网卡将所述网络数据包转发至所述目标业务进程。

【技术特征摘要】
1.一种网络流量分流方法,其特征在于,应用于多核设备,所述方法包括:获取用于用户态访问的网络数据包;对所述网络数据包进行剥离分析,得到目标业务进程编号;若所述目标业务进程编号小于分流器进程所对应的业务进程数,获取所述目标业务进程编号所对应的目标虚拟网卡编号,其中,所述分流器进程是预先基于配置文件所开启的;将所述网络数据包发送至所述目标虚拟网卡编号所对应的目标虚拟网卡,以使所述目标虚拟网卡将所述网络数据包转发至所述目标业务进程。2.根据权利要求1所述的方法,其特征在于,所述获取用于用户态访问的网络数据包,包括:从物理网卡处获取原始网络数据包;将所述原始网络数据包从所述物理网卡所对应的内存空间映射到用户态所对应的用户空间,得到用于用户态访问的网络数据包。3.根据权利要求1所述的方法,其特征在于,所述对所述网络数据包进行剥离分析,得到目标业务进程编号,包括:在分流器进程处于开启状态的情况下,判断所述网络数据包的数据包类型是否为预设偏移数据包类型;若所述网络数据包的数据包类型不为预设偏移数据包类型,判断所述网络数据包是否为IP碎片;若所述网络数据包为IP碎片,判断所述网络数据包是否为首包;若所述网络数据包为首包或者所述网络数据包不为IP碎片,判断所述网络数据包的标识是否在预设分流表内,所述预设分流表内记录有历史网络数据包的标识及其所对应的业务进程编号;若所述网络数据包在预设分流表内,从所述预设分流表内查找所述网络数据包的标识所对应的目标业务进程编号;若所述网络数据包不在预设分流表内,根据所述网络数据包的三元组信息或者五元组信息计算目标业务进程编号;若所述网络数据包的数据包类型为预设偏移数据包类型,对所述网络数据包的数据包头进行偏移处理,并判断处理后的所述网络数据包是否为IP碎片;若处理后的所述网络数据包为IP碎片,判断处理后的所述网络数据包是否为首包;若处理后的所述网络数据包为首包或者处理后的所述网络数据包不为IP碎片,判断处理后的所述网络数据包的标识是否在预设分流表内,所述预设分流表内记录有历史网络数据包的标识及其所对应的业务进程编号;若处理后的所述网络数据包在预设分流表内,从所述预设分流表内查找处理后的所述网络数据包的标识所对应的目标业务进程编号;若处理后的所述网络数据包不在预设分流表内,根据处理后的所述网络数据包的三元组信息或者五元组信息计算目标业务进程编号。4.根据权利要求1所述的方法,其特征在于,还包括:在所述多核设备配置为混合模式的情况下,判断所述目标业务进程编号所预先绑定CPU核与物理网卡是否为同一路;若否,将所述网络数据包拷贝至所述目标业务进程编号所预先绑定CPU核的同路内存中。5.根据权利要求3所述的方法,其特征在于,所述三元组信息包括:源IP地址、目的IP地址和源端口号。6.根据权利要求3所述的方法,其特征在于,所述五元组信息包括:源IP地址、目的IP...

【专利技术属性】
技术研发人员:唐俊峰雷军孙希栋王飞
申请(专利权)人:北京启明星辰信息安全技术有限公司启明星辰信息技术集团股份有限公司
类型:发明
国别省市:北京,11

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

1