中文引用格式: 杨嘉佳,关健,于增明,等. ɑFA:一种基于非信任字符比较的高性能正则表达式匹配算法[J]. 电子技术应用,2024,50(6):57-60.
英文引用格式: Yang Jiajia,Guan Jian,Yu Zengming,et al. ɑFA: a high-performance regular expression matching algorithm based on untrusted character comparison[J]. Application of Electronic Technique,2024,50(6):57-60.
引言
正则表达式因拥有强大的表达能力与灵活性,在数据治理、解析提取和深度包检测方面得到了广泛应用。比如著名的搜索工具grep、sed以及入侵检测系统Snort[1]都包含了很多正则表达式规则。
正则表达式匹配方法通常分为基于确定型有限自动机(Deterministic Finite Automata, DFA)和基于非确定型有限自动机(Nondeterministic Finite Automata, NFA)[2]。两者的区别在于NFA的空间需求较少,但匹配性能较低;DFA则相反,匹配性能较高,但空间需求大。
在真实数据处理环境背景下,正则表达式的匹配性能是最重要的衡量因素之一。以状态转移次数计算,DFA匹配单个字符时发生一次状态转移,转移次数固定,性能较高且较为稳定;相反,NFA匹配单个字符时可能会引发若干次状态转移,转移次数较多,性能较低且稳定性较差。因此,现有的高性能匹配研究工作主要集中于如何提升DFA的匹配性能。
截止目前,各式各样的DFA加速匹配方法已被提出[3],包括经典的多步长自动机、多核平台并行匹配加速、基于枚举方法的SIMD加速、基于推测与枚举方法相结合的新型并行化匹配方法等。但是,这些算法在加速匹配过程中需多次访问内存导致较大的时间开销,因而性能还有进一步提升的空间。
因此,本文专注于DFA的匹配性能问题,提出了一种基于非信任字符比较的高性能正则表达式匹配算法。通过每次判断连续的若干个字符是否属于最常被访问状态的非信任字符集,获得无需通过DFA匹配可直接跳过的字符数,从而实现DFA的加速处理。理论分析与实验结果表明,此算法可达到原始DFA性能加速比的1.05~7.58倍。
本文详细内容请下载:
https://www.chinaaet.com/resource/share/2000006031
作者信息:
杨嘉佳,关健,于增明,张雷,姚旺君
(中国电子信息产业集团有限公司第六研究所,北京 100083)