深入浅出Hyperscan:高性能正则表达式算法原理与设计

深入浅出Hyperscan:高性能正则表达式算法原理与设计

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

本书系统、全面、循序渐进地介绍Hyperscan技术。

内容简介

本书介绍Hyperscan技术。全书共8章,主要介绍正则表达式、经典匹配算法和正则表达式匹配所依赖的自动机原理、正则表达式匹配库等,并重点介绍Hyperscan的功能特性、设计原理和性能调优技巧,以及匹配引擎的核心算法和SIMD加速技术的运用,还展示了Hyperscan多样化的应用场景。

作者简介

作者王翔,软件架构师,主要从事.NET、XML、公钥基础设施的开发。专注于数据(尤其是XML信息)的生产、加工、交换、提炼等过程。参与了一系列有关应用密码技术和PKI环境保护信息系统数据安全的项目。 最喜欢数学,平常案头总是摆一本数学练习题。闲暇时间喜欢写作,通过发表多种技术文章与国内外同行交流各种数据应用经验。 项目间隙经常到各海滨城市徒步旅行、野外露营、出海航行、极限运动,这几年烹饪也渐渐成为个人主要爱好。

章节目录

版权信息

内容提要

前言

资源与支持

第1章 正则表达式简介

1.1 正则表达式的语法

正则表达式的元字符

1.2 正则表达式的流派与标准

1.2.1 PCRE简介

1.2.2 POSIX标准

1.3 本章参考

第2章 正则表达式匹配算法

2.1 纯字符串匹配

2.1.1 单字符串匹配KMP算法

2.1.2 单字符串匹配BM算法

2.1.3 多字符串匹配AC算法

2.1.4 AC算法与单字符串匹配

2.1.5 SHIFT-OR算法

2.2 非确定性有限状态自动机

2.2.1 定义

2.2.2 运算优先级

2.2.3 Thompson构造法

2.2.4 ε-NFA的简化

2.2.5 Glushkov构造法

2.3 确定性有限状态自动机

2.3.1 定义

2.3.2 从NFA到DFA

2.3.3 DFA的状态规模

2.3.4 DFA的状态最小化

2.4 本章参考

第3章 正则表达式匹配库

3.1 PCRE

3.1.1 语法支持

3.1.2 设计概述

3.1.3 基本API和示例代码

3.2 RE2

3.2.1 语法支持

3.2.2 设计概述

3.2.3 基本API和示例代码

3.3 Hyperscan

3.3.1 语法支持

3.3.2 匹配模式

3.3.3 设计概述

3.3.4 基本API和示例代码

3.4 正则表达式匹配库的比较

3.4.1 概述

3.4.2 语法支持

3.4.3 设计原理

3.4.4 性能

3.5 本章参考

第4章 Hyperscan特性

4.1 Hyperscan的语义

4.2 编译期和运行期

4.2.1 编译期

4.2.2 运行期

4.3 Hyperscan高级特性

4.3.1 流状态压缩

4.3.2 近似匹配

4.3.3 逻辑组合

4.3.4 Chimera

4.4 Hyperscan工具

4.4.1 hsbench

4.4.2 hscheck

4.4.3 hscollider

4.4.4 hsdump

第5章 Hyperscan设计原理

5.1 设计原则

5.1.1 实用性优先

5.1.2 极端情况可用

5.1.3 流模式支持

5.1.4 大规模可扩展

5.1.5 小规模高性能

5.1.6 性能优先

5.1.7 平衡开销

5.1.8 渐进主义

5.1.9 可测试性设计和自动可测试性设计

5.2 运行原理

5.2.1 匹配组件

5.2.2 匹配原则

5.2.3 运行期实现

5.2.4 运行期优化

5.3 图分解

5.3.1 支配路径分析

5.3.2 支配区域分析

5.3.3 网络流分析

5.3.4 图分解流程

5.4 图优化

5.4.1 节点冗余

5.4.2 边冗余

5.5 本章参考

第6章 Hyperscan引擎

6.1 SIMD加速

6.1.1 搜索单字符的加速

6.1.2 搜索双字符序列的加速

6.1.3 搜索小规模单字符集的加速

6.1.4 搜索大规模单字符集的加速

6.1.5 环视机制

6.2 纯字符串匹配

6.2.1 纯字符串匹配在Hyperscan中的作用

6.2.2 单字符串匹配器“Noodle”

6.2.3 大规模多字符串匹配器“FDR”

6.2.4 小规模多字符串匹配器“Teddy”

6.3 正则引擎

6.3.1 NFA引擎

6.3.2 DFA引擎

6.3.3 重复引擎

6.3.4 Tamarama

第7章 Hyperscan性能优化

7.1 Hyperscan性能测试

7.1.1 性能测试目的

7.1.2 基于性能的硬件和GRUB配置

7.1.3 hsbench测试

7.2 Hyperscan性能调优技巧

7.2.1 正则表达式构造

7.2.2 软件库的使用

7.2.3 块模式

7.2.4 数据库分配

7.2.5 scratch内存分配

7.2.6 锚定规则

7.2.7 随处匹配的规则

7.2.8 流模式下的重复语义

7.2.9 青睐字符串

7.2.10 DOTALL标志

7.2.11 单次匹配标志

7.2.12 Start of Match标志

7.2.13 近似匹配

第8章 Hyperscan实际案例学习

8.1 Snort

8.1.1 介绍

8.1.2 Hyperscan集成

8.1.3 基于内存的性能测试

8.2 Suricata

8.2.1 介绍

8.2.2 Hyperscan集成

8.2.3 基于内存的性能测试

8.3 垃圾邮件检测

Rspamd

8.4 深度报文检测

8.4.1 nDPI

8.4.2 UDPI

8.5 数据库

8.5.1 整合概述

8.5.2 实验结果与分析

8.6 Web应用防火墙

ModSecurity

深入浅出Hyperscan:高性能正则表达式算法原理与设计是2021年由人民邮电出版社出版,作者王翔,昌昊,洪扬,张磊。

得书感谢您对《深入浅出Hyperscan:高性能正则表达式算法原理与设计》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
深度学习原理与实践 电子书
(1)大量图例,简单易懂。作者亲自绘制了大量插图,力求还原深度学习的算法思想,分解和剖析晦涩的算法,用图例来表示复杂的问题。生动的图例也能给读者带来阅读乐趣,快乐地学习算法知识,体会深度学习的算法本质。 (2)简化公式,生动比喻。深度学习和机器学习类的书中通常会有大量复杂冗长的算法公式,为了避免出现读者读不懂的情况,本书尽可能地统一了公式和符号,简化相关公式,并加以生动的比喻进行解析。在启发读者的同时,锻炼读者分析问题和解决问题的能力。 (3)算法原理,代码实现。在介绍深度学习及相关算法的原理时,不仅给出了对应的公式,还给出了实现和求解公式的代码,让读者明确该算法的作用、输入和输出。原理与代码相结合,使得读者对深度学习的算法实现更加具有亲切感。 (4)深入浅出,精心剖析。理解深度学习需要一定的机器学习知识,本书在D1章介绍了深度学习与机器学习的关系,并简要介绍了机器学习的内容。在内容安排上,每章依次介绍模型框架的应用场景、结构和使用方式,最后通过真实的案例去全面分析该模型结构。目的是让读者可以抓住深度学习的本质。 (5)入门实践,案例重现。每一章最后的真实案例不是直接堆砌代码,而是讲解使用该算法模型的原因和好处。从简单的背景知识出发,使用前文讲解过的深度学习知识实现一个实际的工程项目。实践可以用于及时检验读者对所学知识的掌握程度,为读者奠定深度学习的实践基础。 将一本技术书籍写得通俗易懂谈何容易,但《深度学习原理与实践》这本书确实做到了。书中对近年来火热的深度学习理论知识进行简单剖析,化繁为简,没有局限于坐而论道,而是将实例和数学理论相结合,让读者能够快速理解各种模型并上手实践,值得细读。 --唐春明 广州大学数学与信息学科学院副院长 本书从原理、方法、实践这 3 个维度系统地介绍了深度学习的方方面面,内容详实,解读清晰,细节与全貌兼顾,既适合初学者阅读,也可以作为深入研究的参考用书。 --杨刚 西安电子科技大学教授 近年来出版的深度学习相关图书中,本书是我见过非常有指导意义的中文书籍之一。本书对 ANN、CNN、RNN 等模型进行深入浅出的介绍,引入大量图例和简化后的公式,让算法浅显易懂。每一章的实践内容都给人惊喜,强烈推荐! --吴健之 腾讯音乐高级工程师 作为产品经理,我能看懂的深度学习书籍实在太少了。本书恰到好处,插图丰富直观,数学公式简练,很喜欢此类风格的图书,易懂好学。即使你不是程序员或算法专家,该书也值得一看! --张瑞 中软国际高级产品经理
秒懂设计模式 电子书
本书以轻松幽默的文风,浅显易懂的方式全面地对23种设计模式进行了归纳和讲解。
趣学算法 电子书
50多个实例展示算法的设计、实现、复杂性分析及优化过程,培养算法思维,带你感受算法之美。
深度学习高手笔记·卷1:基础算法 电子书
本书从算法理论、算法源码、实验结果等方面对深度学习算法进行分析和介绍。
大数据技术原理与应用(第2版) 电子书
国内高校大数据课程知名教师倾心之作,带你“零基础”学习大数据。