一种多核处理器平台的流量分类方法
文献发布时间:2023-06-19 12:02:28
技术领域
本发明涉及互联网技术领域,具体为一种多核处理器平台的流量分类方法。
背景技术
互联网技术是指在计算机技术的基础上开发建立的一种信息技术。互联网技术通过计算机网络的广域网使不同的设备相互连接,加快信息的传输速度和拓宽信息的获取渠道,促进各种不同的软件应用的开发,改变了人们的生活和学习方式。互联网技术的普遍应用,是进入信息社会的标志。
随着大数据时代的发展,网络数据流量越来越复杂,流量分类被各种各样的业务和环境所需求。最早的网络流量分类方式是基于传输协议UDP或者TCP的端口号进行分类,随着各种各样的端口伪装和端口跳变技术的出现,以及应用程式和协议的越来越多元化,传统分类已经完全无法满足需求。
随之而来的深度报文解析(DPI)技术逐渐备受关注。DPI技术主要通过分析网络流中的数据包有效载荷,进行有效载荷部分与现有协议或者应用的特征匹配。DPI技术的实现多种多样,目的大同小异。所以更快更准确以及更好的扩展性成为各种技术的追求目标,现有的流量分类方法在处理网络数据流量时,无法进行高效的流量分类。
发明内容
本发明要解决的技术问题是克服现有的缺陷,提供一种多核处理器平台的流量分类方法,以解决上述技术背景中在处理网络数据流量时,无法进行高效流量分类的缺点。
为实现上述目的,本发明提供如下技术方案:一种多核处理器平台的流量分类方法,包括以下步骤:
步骤1:通过接收模块在各个系统接收数据包,并将数据包发送至分流系统;
步骤2:数据包发送至分流系统后,通过执行分流系统内的wqe预处理对各个数据包实现流量标记;
步骤3:将标记完成后的数据包发送并储存于内存块内;
步骤4:多核CPU从内存块内获取数据包,通过调用检索模块根据标记在数据包队伍中的流量标记,实现流量分类;
步骤5:将处理完成的数据及内容发送到内存块内进行储存,通过分流系统获取内存块中处理完成的数据,并将处理数据及结果发送至各个对应系统中。
优选的,所述分流系统中收包和放包的功能模块分别为分组输入单元(PKI)和分组输出单元(PKO)。
优选的,所述步骤1中,所述接收模块通过交换芯片接收各个系统发送的数据包,并将数据包发送至分流系统的所述PKI中。
优选的,所述步骤2中,所述wqe预处理模块将PKI在收放数据包的过程中,对数据包进行流量标记,且同条流量的数据包标记相同。
优选的,所述步骤3中,所述内存块采用FPA管理模块,所述管理模块采用cavium的硬件内存池管理。
优选的,所述步骤4中,所述检索模块使用cavium的HFA硬件加速模块开发;HFA在使用正则表达式时,会事先将正则表达式翻译成专用识别的图处理,在运行过程中进行多图切换。
优选的,所述步骤4中,所述流量分类的数据匹配过程将完全基于HFA进行完成,将匹配的结果通过定位正则表达式的规则号,并通过回调将结果返回,日志处理模块通过流量ID和命令中规则号的绑定,对流量进行分类。
与现有技术相比,本发明提供了一种多核处理器平台的流量分类方法,具备以下有益效果:
本发明采用了数据包接受之后的预处理功能,实现了对数据流量的标记,通过对同条流量的数据包的标记相同,在多核平台处理过程中保证了流量的完整性和不重复性,加快了多核处理的性能,数据包有效载荷检索采用硬件处理,在不降低性能的前提下减少CPU的使用率,节省资源用于处理数据包。在同等CPU资源的前提下,本发明将可以处理更多的数据,同时解决了在处理网络数据流量时,无法实现高效流量分类的问题。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制,在附图中:
图1为本发明提出的多核处理器平台的流量分类方法简易结构示意图。
图2为本发明提出的多核处理器平台的流量分类方法流程图结构示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施例和附图,进一步阐述本发明,但下述实施例仅为本发明的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得其它实施例,都属于本发明的保护范围。
请参阅图1-2,一种多核处理器平台的流量分类方法,包括以下步骤:
步骤1:通过接收模块在各个系统接收数据包,并将数据包发送至分流系统;接收模块通过交换芯片接收各个系统发送的数据包,并将数据包发送至分流系统的PKI中;分流系统中收包和放包的功能模块分别为分组输入单元(PKI)和分组输出单元(PKO)。
步骤2:数据包发送至分流系统后,通过执行分流系统内的wqe预处理对各个数据包实现流量标记;wqe预处理模块将PKI在收放数据包的过程中,对数据包进行流量标记,且同条流量的数据包标记相同,在后续多核CPU将会根据标记在数据包队列中获取到属于各种的流量,避免了出现流量的数据包丢失或者重复处理的错误。
步骤3:将标记完成后的数据包发送并储存于内存块内;内存块采用FPA管理模块,管理模块采用cavium的硬件内存池管理,避免了多核访问时将会受到锁影响。
步骤4:多核CPU从内存块内获取数据包,通过调用检索模块根据标记在数据包队伍中的流量标记,实现流量分类;检索模块使用cavium的HFA硬件加速模块开发,且检索模块支持高达64个搜索引擎和接近40G/s的检索速度;HFA支持Prel兼容的正则表达式规则集,依据正则表达式下发的规则被编译成图像,HFA在使用正则表达式时,会事先将正则表达式翻译成专用识别的图处理,在运行过程中进行多图切换,因此在检索匹配规则中,本发明将下发的规则事先变成图像,在检索过程中切换新的图像,实现了系统快速高效的规则更新功能;流量分类的数据匹配过程将完全基于HFA进行完成,将匹配的结果通过定位正则表达式的规则号,并通过回调将结果返回,日志处理模块通过流量ID和命令中规则号的绑定,对流量进行分类;匹配算法的过程完全依赖硬件完成,这样可以很大程度的减少CPU消耗,支持大流量处理。
步骤5:将处理完成的数据及内容发送到内存块内进行储存,通过分流系统获取内存块中处理完成的数据,并将处理数据及结果发送至各个对应系统中;本发明采用接收数据包预处理方式,在分流系统中完成数据包标记,保证多核平台环境中流量完整性的同时降低了CPU的消耗;在使用HFA硬件检索模块时,预处理规则,形成规则图;使用过程中动态多图切换,便于匹配检索规则的更新,在处理网络数据流量时,实现了高效流量分类的问题。
其中步骤1和步骤4中,还可以在传统服务器上使用数据平面开发套件(DPDK)与正则表达式匹配库(hyperscan)相结合实现数据包收发和检索功能;这种方案是基于Linux系统运行,数据平面开发套件用于加速数据包的收发,数据平面开发套件其本身是一套快速数据包处理的函数库和驱动集合,运行可以极大的提高数据处理性能和吞吐量;正则表达式匹配库则负责对数据包做正则匹配,检索和解析数据包有效载荷,依据规则对流量分类;DPDK和hyperscan都是运行在CPU环境下的软件,会占用大量的CPU资源,因此为了能使这套方案实现大数据流量的处理必须使用高性能处理CPU。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
- 一种多核处理器平台的流量分类方法
- 一种基于多核处理器的流量控制方法和多核处理器