一种基于DPDK的用户空间内数据包快速检测方法技术

技术编号:17709537 阅读:49 留言:0更新日期:2018-04-14 21:10
本发明专利技术公开了一种基于DPDK的用户空间内数据包快速检测方法。包括以下几个步骤:A、从网卡接收数据流,对网卡多队列进行配置,将队列与指定的CPU逻辑核进行绑定,数据包将绕过linux内核转移到DPDK提供的用户空间中;B、在DPDK提供的用户空间中进行数据包的处理,具体是:B1、将数据帧进行剥离,直至到应用层;B2、分析HTTP报文特征,比对各个应用层各种应用的特征进行分类识别;C、最后,记录分类结果,检测完成。

【技术实现步骤摘要】
一种基于DPDK的用户空间内数据包快速检测方法
本专利技术属于信息安全领域,具体是一种基于DPDK的用户空间内数据包快速检测方法。
技术介绍
现如今4G网络以及计算机网络用户的数量急剧攀升,各类智能移动终端的使用使得核心网出入口流量出现爆发式的增长。网络流量记录了当前网络的运行状况,所以对网络流量的分析有助于网络管理人员进行网络性能的测试,并跟据测试的结果依次进行网络架构的优化、发现异常流量、排除网络故障的过程,最后采取相应的管控措施。新的网络形势下,面对大量高速高吞吐量的网络环境,基于传统操作系统内核的数据采集机制在丢包率以及吞吐量方面已经难以匹配现有的需求。在当前高速网络环境中,高性能系统需要在极其有限的时间内成功地收集和处理大量数据,因此如何高效、完整、快速捕获数据包,是准确分析网络数据的基础以及进行下一步管控的关键。DPDK即英特尔数据面开发套件,是基于x86平台开发专为报文快速处理而提供的一系列库和驱动的集合。DPDK通过环境抽象层提供数据面功能以取代内核的系统调用,使用UIO机制使网卡驱动程序运行在用户态,绕开内核网络协议栈。采用轮询和零拷贝技术从网卡收取报文,并且使用大页和CPU亲和机制提高应用程序处理报文的性能,由此可以节约开销,达到提高数据包处理性能的要求。
技术实现思路
本专利技术的目的是提出一种基于DPDK的用户空间内数据包快速检测方法,利用DPDK的优化方法,把网卡接收到的数据包转移到DPDK提供的用户空间中,在用户空间进行数据包的处理。处理过程绕过了linux内核中网络协议栈的处理,省去了频繁的系统调用和内存拷贝,网卡收到的数据包直接复制到用户空间,在用户空间进行数据包的处理。为了实现对数据包的检测,需要深入到数据帧的应用层,以区分不同应用的数据。为了实现上述目的,本专利技术采用如下的技术方案:一种基于DPDK的用户空间内数据包快速检测方法,A、从网卡接收数据流,对网卡多队列进行配置,将队列与指定的CPU逻辑核进行绑定,数据包将绕过linux内核转移到DPDK提供的用户空间中;B、在DPDK提供的用户空间中进行数据包的处理,具体是:B1、将数据帧进行剥离,直至到应用层;B2、分析HTTP报文特征,比对各个应用层各种应用的特征进行分类识别;C、最后,记录分类结果,检测完成。所述的步骤A具体包括:预处理数据包,当数据包到达网卡时,接收所有经过网卡的数据包,将网卡设置为混杂模式,同时开启网卡的硬件卸载功能,提前在硬件上进行TCP组包,将多个TCP分片进行处理聚合成一个大的分片,数据包预处理之后分配接收队列;所述分配接收队列的方法包括:A1、查询系统所包含的可用的逻辑核数目,记录此核数,根据现存的处理器核数和网卡队列数,配置网卡的接收队列;A2、配置一个控制报文队列,使此队列与大量的数据包处理进行区分隔离,以方便使用单独的核来处理;A3、按照负载均衡原则,将其余数据流量平均分配到其余的队列中;A4、利用DPDK提供的用户空间机制,在用户层进行数据包的处理。所述步骤B1具体步骤是:按照TCP/IP协议栈封包的格式,对数据报文进行包头的剥离,直至剥离到应用层,将数据包应用层数据重组。所述步骤B2具体步骤是:B2.1、采用多模匹配方法同时匹配多个特征字段,来加快识别速度;B2.2、根据对特征字段识别的结果将数据包进行分类,分类是针对应用层的数据进行,首先将HTTP报文中包含相同host字段的数据包分成一级类,然后将同一个host一级类下相同Refer字段的数据包分成多个二级子类,存储各个子类的结果。所述步骤A1中配置网卡的接收队列具体为:A1.1、配置一个单独控制队列,用于对所有数据队列进行控制,绑定一个单独的逻辑核,使此队列与大量的数据包处理进行区分隔离;A1.2、配置数据报文队列:若逻辑核数目lcore_num>2*quene_num+1,则指定每两个逻辑核处理一个数据报文队列,并配置这两个核均衡处理同一队列的数据报文;若逻辑核数目lcore_num≤2*quene_num+1,则指定每个队列由一个逻辑核来处理。相对于现有方法,本专利技术一种基于DPDK的用户空间内数据包快速检测方法的有益效果是:本专利技术一种基于DPDK的用户空间内数据包快速检测方法,与传统的数据包检测不同,该方法绕过了内核协议栈,不再使用内核提供的TCP/IP协议栈对网卡收集到的数据包进行处理,而是利用DPDK提供的用户空间的平台,利用DPDK提供的API进行数据包的处理。该方法主要有以下优点:(1)对大流量数据包的适应性:因为本专利技术是基于DPDK开发套件进行的开发,因此就具有处理大流量数据的能力。比如:省略了多次的内存拷贝;采用轮询处理的方法,减少频繁上下文切换进行中断带来的系统开销;又将数据队列与处理器核进行绑定,避免了系统调用引起的性能的损伤。这就使得数据包的处理效率更高。(2)对数据包处理的高效性:将网卡的多队列与逻辑核进行绑定,指定每个逻辑核的处理任务,这样就避免了不同内核之间的资源竞争。把数据包的处理任务均衡的分配给各个处理器的逻辑核,避免了线程在不同核之间频繁的切换,大大减少性能损失,也避免了一个核内的多任务切换开销。(3)对系统实施的可行性:方法的实施并不需要专门的硬件设备,只需要在通用的处理器平台上即可。用户空间提供了丰富的API,对不同类型的数据包都可以开发出相应的处理工具,十分灵活。附图说明图1是本专利技术完整的检测模型;图2是本专利技术基于DPDK的数据包检测方法的完整流程图。具体实施方式为了阐明本专利技术的技术方案及技术目的,下面结合附图及具体实施方式对本专利技术做进一步的介绍。一种基于DPDK的用户空间内数据包快速检测方法主要基于两点:第一是从网卡接收数据流,对网卡多队列进行配置,将队列与指定的CPU逻辑核进行绑定,数据包将绕过linux内核转移到DPDK提供的用户空间中。第二是在用户空间中进行数据包的处理,将数据帧进行剥离,直至到应用层,主要分析http报文特征,比对各个应用层各种应用的特征进行分类识别。这样就实现了在大流量下快速有效的数据监测。DPDK专注于网络应用中数据包的高性能处理,它是一个软件优化库,目标是解决在多核通用处理器上发挥极致的包处理能力的问题。传统的linux内核,其控制平面和数据转发平面没有分离,不适合处理大规模网络数据包。如果能让应用程序直接接管网络数据包处理、内存管理以及CPU调度,那么性能可以得到一个质的提升。为了达到这个目标,第一个要解决的问题就是绕过Linux内核协议栈,因为Linux内核协议栈性能并不是很优秀,如果让每一个数据包都经过Linux协议栈来处理,那将会非常的慢,因此能不用Linux协议栈就不用。DPDK应用程序是运行在用户空间上利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程。Linux内核将DPDK应用程序看作是一个普通的用户态进程,包括它的编译、连接和加载方式和普通程序没有什么两样。DPDK程序启动后只能有一个主线程,然后创建一些子线程并绑定到指定CPU核心上运行。使用工具将数据包转移到用户平面之后,需要对数据包进行处理。用户空间提供了各类应用程序接口,用来调用系统资源对系统功能进行开发。本专利技术调用了接口功能对数据包本文档来自技高网...
一种基于DPDK的用户空间内数据包快速检测方法

【技术保护点】
一种基于DPDK的用户空间内数据包快速检测方法,其特征在于,A、从网卡接收数据流,对网卡多队列进行配置,将队列与指定的CPU逻辑核进行绑定,数据包将绕过linux内核转移到DPDK提供的用户空间中;B、在DPDK提供的用户空间中进行数据包的处理,具体是:B1、将数据帧进行剥离,直至到应用层;B2、分析HTTP报文特征,比对各个应用层各种应用的特征进行分类识别;C、最后,记录分类结果,检测完成。

【技术特征摘要】
1.一种基于DPDK的用户空间内数据包快速检测方法,其特征在于,A、从网卡接收数据流,对网卡多队列进行配置,将队列与指定的CPU逻辑核进行绑定,数据包将绕过linux内核转移到DPDK提供的用户空间中;B、在DPDK提供的用户空间中进行数据包的处理,具体是:B1、将数据帧进行剥离,直至到应用层;B2、分析HTTP报文特征,比对各个应用层各种应用的特征进行分类识别;C、最后,记录分类结果,检测完成。2.根据权利要求1所述的基于DPDK的用户空间内数据包快速检测方法,其特征在于,所述的步骤A具体包括:预处理数据包,当数据包到达网卡时,接收所有经过网卡的数据包,将网卡设置为混杂模式,同时开启网卡的硬件卸载功能,提前在硬件上进行TCP组包,将多个TCP分片进行处理聚合成一个大的分片,数据包预处理之后分配接收队列;所述分配接收队列的方法包括:A1、查询系统所包含的可用的逻辑核数目,记录此核数,根据现存的处理器核数和网卡队列数,配置网卡的接收队列;A2、配置一个控制报文队列,使此队列与大量的数据包处理进行区分隔离,以方便使用单独的核来处理;A3、按照负载均衡原则,将其余数据流量平均分配到其余的队列中;A4、利用DPDK提供的用户空间机制,在用户层进行数据包的处理。3.根据权利要求2所述的基于...

【专利技术属性】
技术研发人员:李鹏王灿帅徐鹤王汝传罗保州朱文俊靳梦晓
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

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

1