论文部分内容阅读
正则表达式具有较强的灵活性、逻辑性及功能性,是一种字符串匹配模式,可以迅速地用较简单的方式来表述复杂的字符串。正则表达式多用于入侵检测系统及文本处理等。一般地,都是采用软件方式来实现正则表达式的匹配。然而,随着网络带宽的大幅度提高、网络数据流量的剧增以及云计算技术等的快速发展,软件实现的方式成了正则表达式高速匹配的瓶颈。而硬件由于其并行化工作的特点,可以用于快速处理模式的匹配,因此成为研究人员设计、构造匹配引擎的新载体。FPGA由于其特殊结构及具有可重复配置等特性,现多用于高速多数据处理的场合。本文介绍了采用FPGA来实现正则表达式匹配的方法。论文首先对正则表达式构造自动机的几种经典算法进行了简述。在分析对比各自优缺点之后提出了一种新的NFA构造算法,该算法的空间复杂度理论上为O(n),时间复杂度为O(n2)。且构造生成的NFA的规模数相对很小,其中状态数比正则表达式中含有的普通字符数n要少,转换数约等于n。有且只有一个终止状态。其次对在FPGA中实现匹配的过程进行了研究,提出了构建匹配子模块的设计,生成匹配子模块库。该设计可以大大节约后续设计过程中的时间成本,加快入侵检测系统中的特征模式的更新速度。对于一些特殊结构的正则表达式,论文给出了设计中的一些优化方案以节约实现中的硬件资源。最后利用论文中构建的子模块库,分别采用新算法S-NFA和经典的Thompson算法对正则表达式进行处理,生成对应的NFA。论文的第四章给出了将NFA进行逻辑化处理的方法,以适用于硬件化的处理。搭建Testbench测试平台,对各实例进行测试并给出了仿真结果,从得到的NFA规模以及实际匹配延时两个方面对新的算法进行了评价。综上所述,本文在对正则表达式匹配技术的研究基础之上,提出了一种新的NFA构造算法及NFA的逻辑化处理方法,构建了匹配子模块库,通过仿真实验对该子模块库进行了验证,并比较了S-NFA算法和Thompson算法的性能。结果表明S-NFA算法在构造过程、生成的NFA的规模以及应用后的实际延时等方面要优于传统的Thompson算法,且适合于用FPGA来实现。