[发明专利]一种基于DPDK的用户空间内数据包快速检测方法有效
申请号: | 201711102664.9 | 申请日: | 2017-11-10 |
公开(公告)号: | CN107911237B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 李鹏;王灿帅;徐鹤;王汝传;罗保州;朱文俊;靳梦晓 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L12/26;H04L12/803;H04L12/863;H04L29/06;G06F9/54 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 王美章 |
地址: | 210023 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 dpdk 用户 空间 数据包 快速 检测 方法 | ||
1.一种基于DPDK的用户空间内数据包快速检测方法,其特征在于,包括以下几个步骤:
A、从网卡接收数据流,对网卡多队列进行配置,将队列与指定的CPU逻辑核进行绑定,数据包将绕过linux内核转移到DPDK提供的用户空间中;利用DPDK提供的用户空间机制,在用户层进行数据包的处理;
B、在DPDK提供的用户空间中进行数据包的处理,具体是:
B1、将数据帧进行剥离,直至到应用层;
B2、分析HTTP报文特征,比对各个应用层各种应用的特征进行分类识别;
C、最后,记录分类结果,检测完成;
所述的步骤A具体包括:
预处理数据包,当数据包到达网卡时,接收所有经过网卡的数据包,将网卡设置为混杂模式,同时开启网卡的硬件卸载功能,提前在硬件上进行TCP组包,将多个TCP分片进行处理聚合成一个大的分片,数据包预处理之后分配接收队列;所述分配接收队列的方法包括:
A1、查询系统所包含的可用的逻辑核数目,记录此核数,根据现存的处理器核数和网卡队列数,配置网卡的接收队列;
A2、配置一个控制报文队列,使此队列与大量的数据包处理进行区分隔离,以方便使用单独的核来处理;
A3、按照负载均衡原则,将其余数据流量平均分配到其余的队列中;
所述步骤B1具体步骤是:按照TCP/IP协议栈封包的格式,对数据报文进行包头的剥离,直至剥离到应用层,将数据包应用层数据重组;
所述步骤B2具体步骤是:
B2.1、采用多模匹配方法同时匹配多个特征字段,来加快识别速度;
B2.2、根据对特征字段识别的结果将数据包进行分类,分类是针对应用层的数据进行,首先将HTTP报文中包含相同host字段的数据包分成一级类,然后将同一个host一级类下相同Refer字段的数据包分成多个二级子类,存储各个子类的结果;
所述步骤A1中配置网卡的接收队列具体为:
A1.1、配置数据报文队列:
若逻辑核数目lcore_num2*quene_num+1,则指定每两个逻辑核处理一个数据报文队列,并配置这两个核均衡处理同一队列的数据报文;
若逻辑核数目lcore_num≤2*quene_num+1,则指定每个队列由一个逻辑核来处理;
将网卡的多队列与逻辑核进行绑定,指定每个逻辑核的处理任务,把数据包的处理任务均衡的分配给各个处理器的逻辑核;
所述步骤A2具体为:
A2.1、配置一个单独控制队列,用于对所有数据队列进行控制,绑定一个单独的逻辑核,使此队列与大量的数据包处理进行区分隔离。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711102664.9/1.html,转载请声明来源钻瓜专利网。