论文部分内容阅读
模式匹配不仅是计算理论的基础,而且在计算机和网络处理中,有着广泛地应用。随着信息爆炸及网络带宽的迅速增加,无论是信息查询的需要还是网络安全的需求,线速地处理网络数据成为了必然要求。本文对此进行了比较详细的研究与实践,主要贡献和创新点包括:1.针对研究NFA(非确定型有穷自动机)算法时无数学证明的问题。提出了六个定理,一方面,使用这些定理,形式化地证明了本文提出的算法正确性、算法与NFA等价性;另一方面,迄今为止,在公开发表的文献中对于NFA的证明都是说明性的,没有适合的数学公式证明。本文提出了数学定义、定理,为NFA的证明初步建立了数学基础;最后,由于数学公式的建立,为以后研究NFA、NFA推导打下了基础。2.提出了一种新的固定模式串匹配算法。通过设计新的解码矩阵对正文的解码和模式比较结果的提取这两种操作,一方面减少了正则表达式实现时,大量模式符和输入正文字符间的比较操作对资源的大量占用,另一方面加快了大量模式符和输入正文字符之间比较操作的运算速度。解决了模式匹配时大量比较运算资源占用高和运行速度慢的难题。3.提出了“向量与”算法。这个算法把正则表达式中连接运算变为简单的逻辑与操作。正则表达式中最常用的操作是连接运算。每个正则表达式中都使用了很多连接操作,因此加快连接操作的运算速度对提高正则表达式的运算速度有着至关重要的意义。本文提出的算法将正则表达式中的各种运算全部转化为最简单的逻辑运算,从而提高了算法的整体运算速度。4.本文提出的算法不仅支持正则表达式的常用运算,而且很好地支持补运算。补运算一直是正则表达式实现算法中的一个难题。公开文献中要么很少提及补运算的实现,要么所有提及的算法都是以大量资源占用的方式来实现补运算。本文把补运算转化为常用的连接运算,解决了正则表达式中补运算实现的难题。5.提出了扩展解码矩阵方案。利用这个方案解决了正则表达式中单个模式符之间的并、交、非运算。通过在FPGA(现场可编程门阵列)上验证本文提出的算法,结果表明:本文提出的算法充分地利用了FPGA的特性,提高了正则表达式的吞吐率。迄今为止,公开文献中给出的最大吞吐率都在40Gbps之下,有资料可查的商用最大吞吐率不超过20Gbps。在本文最后一章给出了本文提出的算法能达到的最大吞吐率。通过实验表明,在现有FPGA中本文提出的算法的吞吐率可以达到512Gbps。这个吞吐率已经远远超过现代网络中最大带宽。另外,由于本文提出的算法仅使用FPGA逻辑资源,不使用其它资源,因此也不会受FPGA与外部设备之间连线及传输的影响。同时也增加了系统的可扩展性,可通过使用更多资源的FPGA和增加FPGA数量的方式增加整个系统中实现的模式符数量。