基于FPGA+NPU的高速正则表达式匹配混合系统及方法技术方案

技术编号:15541815 阅读:224 留言:0更新日期:2017-06-05 11:02
本发明专利技术提出了一种基于FPGA+NPU的高速正则表达式匹配混合系统及方法,该系统主要由现场可编程门阵列FPGA芯片和多核网络处理器NPU组成。在FPGA上实现多个并行的硬件匹配引擎,在NPU上实例化多个软件匹配引擎,硬件引擎和软件引擎以流水的方式工作。同时,利用FPGA片上高速的RAM和片外DDR3 SDRAM存储器构建两级存储架构。第二步、编译正则表达式规则集、生成混合自动机。第三步、对混合自动机的状态表项进行配置。第四步、网络报文处理。该发明专利技术大大提升复杂规则集条件下的匹配性能,解决在复杂规则集下性能低的问题。

High speed regular expression matching hybrid system and method based on FPGA+NPU

The invention provides a high-speed regular expression matching hybrid system and method based on FPGA+NPU, which is mainly composed of a field programmable gate array FPGA chip and a multi-core network processor NPU. Multiple parallel hardware matching engines are implemented on the FPGA, where multiple software matching engines are instantiated on the NPU, and the hardware engine and software engine work in a pipelined manner. At the same time, the use of FPGA chip RAM and DDR3 chip SDRAM memory high-speed construction of two level storage architecture. The second step is to compile regular expression rules and generate hybrid automata. The third step is to configure the state table entries of hybrid automata. The fourth step is network message processing. The invention greatly improves the matching performance under the condition of the complex rule set, and solves the problem of low performance under the complex rule set.

【技术实现步骤摘要】
基于FPGA+NPU的高速正则表达式匹配混合系统及方法
本专利技术主要支持高速网络中的深度报文检测技术,主要应用于入侵检测系统、协议识别系统中。
技术介绍
名词解释FPGA:(英语:FieldProgrammableGateArray,缩写为FPGA),现场可编程门阵列。NPU:(英语:NetworkProcessingUnit,缩写为NPU),是一种专门应用于网络应用数据包的处理器。FSM:(英语:finitestateautomata,缩写为FSM),有限状态自动机。DFA:(英语:deterministicfiniteautomata,缩写为DFA),确定性有限自动机NFA:(英语:nondeterministicfiniteautomata,缩写为NFA),非确定性有限自动机。Hybrid-FA:(英语:hybridfiniteautomata,缩写为Hybrid-FA),混合自动机。GPU:(英语:graphicsprocessingunit,缩写为GPU),图形处理器。TCAM:(ternarycontentaddressablememory,缩写为TCAM),一种三态内容寻址存储器。SDRAM:(SynchronousDynamicRandomAccessMemory,缩写为SDRAM),同步动态随机存储器。DDR3SDRAM:(Double-Data-RateThreeSynchronousDynamicRandomAccessMemory,缩写为DDR3SDRAM),第三代双倍数据率同步动态随机存取存储器,是一种电脑存储器规格。RAM:(randomaccessmemory,缩写为RAM),随机存取存储器。当前的网络应用越来越依赖于对报文负载部分的处理。这些应用从报文负载中识别出相关特征,并用这些特征进行负载均衡、应用层协议识别、流量计费、网络入侵检测等。深度报文检测是特征识别的核心技术。预先给定一个特征(规则)集,深度报文检测用该规则集对报文负载部分逐字节地进行匹配,结束时返回匹配结果,即报文负载匹配上哪个或哪些规则。在早期的时候,精确的字符串被广泛地用于深度报文检测中的特征描述。传统的算法如AC算法、WM算法及SBOM算法是经典的高效字符串匹配算法。然而随着特征越来越复杂,精确字符串已经无法有效地对特征进行描述。正则表达式以其强大而灵活的特征描述能力,已经广泛地应用于网络应用及设备中。例如,知名的开源入侵检测系统Snort、Bro及应用层协议识别系统L7-filter均已采用正则表达式来描述它们的规则集。在工业上,网络安全设备如思科安全系统、Cavium的匹配引擎、IBMPowerENprocessor上的硬件加速器均支持正则表达式。通常的匹配方法是将正则表达式规则集转换成等价的有限状态自动机(FSM,finitestateautomata),自动机中的每个状态代表一个匹配的中间过程。匹配引擎每次读取负载的一个字节,查询自动机的状态表,跳转到下一个活跃状态集。若匹配中某个活跃状态对应的给定的某个规则,则说明该负载命中了这条规则。传统上有两种类型的FSM:确定性有限自动机(DFA,deterministicfiniteautomata)和非确定性有限自动机(NFA,nondeterministicfiniteautomata)。NFA的优点是空间开销小,NFA状态数与规则集的数量及规则长度成线性关系。缺点是NFA处理的时间复杂度高,在任意状态NFA可能有多个活跃状态,处理一个字符可能需要多次访问状态表,效率非常低。DFA的优点是任意一个时刻只有一个活跃状态,因此处理一个字符只需要一次访存,时间复杂度固定为O(1)。但是在NFA生成DFA的过程中会引入状态膨胀、甚至状态爆炸,导致空间开销极大,有时甚至无法生成完整的DFA。由于NFA的时间复杂度由其理论模型决定,在不改变系统结构的情况下很难对其进行改进。而DFA匹配逻辑简单,当前研究主要都集中在基于DFA的匹配中。深度报文检测中的正则表达式匹配目前主要面临两个方面的挑战。第一个挑战来自自动机,随着网络应用的扩展,需要检测的规则数量越来越多,规则也越来越复杂,进而导致DFA的规模越来越大。DFA存储开销可能高于当前网络设备中的存储资源,甚至在很多应用场合下无法生成完整的DFA。第二个挑战来自性能,当前因特网链路速率正以每年40%至50%的速率持续增长,而很多深度报文检测应用如入侵检测系统需要对报文的实时处理,因此对正则表达式匹配提出了线速要求。而深度报文检测本质是对报文负载的逐字节的扫描,本身就是一个复杂度极高的过程,因此需要从体系结构、访存逻辑多方面综合提升匹配性能。对第一个挑战,研究人员提出了很多压缩方法来降低DFA的存储开销。DFA状态表本质是一个二维的矩阵,矩阵中每一个表项代表一个转移边。Kumar提出的D2FA是最经典的DFA压缩算法,它通过引入默认跳转边来消除不同状态间的相同转移边,大部分DFA压缩算法都是基于D2FA而改进的。D2FA的缺点是没有性能保证,Becchi在其基础上通过限定默认跳转边的方向来保证其性能不低于DFA的1/2。尽管当前压缩算法有很好的性能保证,但是它们都是构建在DFA的基础上,它们无法解决状态爆炸导致DFA无法生成的问题。针对状态爆炸问题,当前学者提出了多种解决方案,如规则分组,半确定自动机(hybrid-FA),基于特征分解的自动机(H-FA、XFA、PaCC)等。基于特征分解的自动机主要停留在理论层面无法实用,而规则分组会导致匹配性能的线速下降。本专利将使用半确定自动机hybrid-FA作为正则匹配的的自动机。Hybrid-FA是介于NFA和DFA之间的一个非常实用的自动机。在NFA转换成DFA的子集合算法中,hybrid-FA中止了那些容易引起爆炸的NFA状态的确定化,生成了带有一个头部DFA和若干个尾部NFA的自动机。Hybrid-FA很好地对NFA和DFA进行了平衡,通过适度终止确定化,避免了DFA的状态爆炸;其次通过对规则头部确定化生成头部DFA,可以使大部分报文的处理有确定的性能保证,避免了NFA过大的时间开销。对第二个挑战,在以存储为中心的体系结构下,匹配性能取决于访存性能。对给定的规则集和报文,访存次数是确定的,关键是要提高每次访存的效率。最好的方法是将自动机全部存储在高速存储器上,但是在通用的网络设备中高速存储器容量非常有限,并且远小于自动机的存储需求。因此,如何利用好网络设备中的高速存储器是一个关键问题。另一方面可以从并行的角度入手,通过实例化多个并行引擎来对匹配性能进行线速提升。当前网络设备中并行资源比较多,如FPGA中并行的硬件资源、通过多核处理器、GPU、多核NPU、TCAM等器件都可以提供并行的资源,当前通过挖掘硬件设备并行性来提高性能的研究也集中在这几个方面。但是,单一器件均无法满足正则表达式匹配需求。以硬件逻辑为中心的FPGA通常使用NFA作为自动机,它将NFA状态表编译成硬件逻辑,对多个状态的访问处理都可以在一个时钟周期内完成。但是基于NFA的FPGA硬件并行度的提升是以复制硬件逻辑为代价的,复杂的规则集加上线速的匹配要求会极大地增加硬件开销。无法实本文档来自技高网...
基于FPGA+NPU的高速正则表达式匹配混合系统及方法

【技术保护点】
一种基于FPGA+NPU的高速正则表达式匹配混合系统,其特征在于,包括FPGA+NPU的软硬件结合匹配的混合系统,FPGA+NPU的软硬件结合匹配的混合系统,包括正则表达匹配引擎;正则表达式匹配引擎由硬件引擎和软件引擎两部分组成,硬件引擎是通过FPGA芯片上的可编程逻辑元件布局、布线、烧录生成,软件引擎通过在NPU上软件编程实现,硬件引擎和软件引擎之间通过数据缓冲区连接;所述FPGA芯片上设计若干个硬件引擎,NPU上根据其支持的线程数实例化若干个软件线程;硬件引擎的存储器包括两级,FPGA的片上RAM作为一级存储器,存储访问概率较高的DFA状态;RAM存储器划分成多个存储块,每两个硬件引擎通过双端口RAM独占一个RAM存储块;FPGA片外DDR3SDRAM作为二级存储器,存储整个混合自动机的状态表项,混合自动机的状态表项由所有的硬件引擎和软件引擎共享。

【技术特征摘要】
1.一种基于FPGA+NPU的高速正则表达式匹配混合系统,其特征在于,包括FPGA+NPU的软硬件结合匹配的混合系统,FPGA+NPU的软硬件结合匹配的混合系统,包括正则表达匹配引擎;正则表达式匹配引擎由硬件引擎和软件引擎两部分组成,硬件引擎是通过FPGA芯片上的可编程逻辑元件布局、布线、烧录生成,软件引擎通过在NPU上软件编程实现,硬件引擎和软件引擎之间通过数据缓冲区连接;所述FPGA芯片上设计若干个硬件引擎,NPU上根据其支持的线程数实例化若干个软件线程;硬件引擎的存储器包括两级,FPGA的片上RAM作为一级存储器,存储访问概率较高的DFA状态;RAM存储器划分成多个存储块,每两个硬件引擎通过双端口RAM独占一个RAM存储块;FPGA片外DDR3SDRAM作为二级存储器,存储整个混合自动机的状态表项,混合自动机的状态表项由所有的硬件引擎和软件引擎共享。2.如权利要求1所述的于FPGA+NPU的高速正则表达式匹配混合系统,其特征在于,所述硬件引擎和软件引擎以流水化的方式工作,网络报文的匹配先由FPGA上的硬件引擎处理,硬件引擎处理完成后,再由FPGA上的任务传输单元交由NPU的软件引擎处理。3.一种基于FPGA+NPU的高速正则表达式匹配方法,其特征在于,基于该正则表达式匹配方法的步骤为:第一步、处理正则表达式,生成混合自动机;首先将正则表达式规则集编译成一个NFA,然后将NFA再编译成混合自动机;对混合自...

【专利技术属性】
技术研发人员:苏金树陈曙晖赵宝康徐成成王小峰王飞张博锋孙一品
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南,43

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

1