深入浅出Hyperscan:高性能正则表达式算法原理与设计pdf电子书下载

计算机与互联网 编程语言与程序设计 王翔,昌昊,洪扬,张磊
简介: 本书系统、全面、循序渐进地介绍Hyperscan技术。

内容提要

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

本书既适合作为Hyperscan开发者的学习用书,也适合作为高等院校计算机相关专业的师生用书和相关培训学校的教材。

前言

正则表达式的概念早在20世纪50年代就由美国数学家Kleene提出了。由于其丰富的描述性特征,正则表达式在网络安全场景下被广泛用于以规则匹配为核心的深度报文检测。流量特征的多样性决定了网络处理需要定义大量正则规则进行匹配,这成为了网络处理中的一大性能瓶颈。尽管在几十年的发展过程中,人们对正则表达式匹配的研究层出不穷,并沉淀了许多经典的算法,但在CPU上以软件形式运行这些经典算法还是难以满足网络处理性能的要求。因此定制化硬件(如FPGA)的正则匹配加速方案曾经一直主导潮流。在如今网络功能虚拟化(Network Function Virtualization,NFV)的浪潮中,如何在CPU上进行高效正则匹配以满足网络场景的需求已成为一大痛点。Hyperscan 应运而生,它让使用通用 x86 处理器进行高性能深度报文检测成为可能。

学术界研究者和产品开发者因此对Hyperscan产生了浓厚的兴趣,是什么样的算法设计让其显著优于先前的软件解决方案?由于实现上的复杂性,单纯从代码层面剖析Hyperscan对大多数人而言较为晦涩和烦琐,这也成为诸多探索者身前的一大壁垒。作为Hyperscan的开发者,我们想通过更好的渠道来分享其中的技术精华,让大家从中汲取一些核心设计思想以应用于实际工作和学习中。因此,我们编写了本书,将开发过程中的经验总结整理成册,供广大读者参考。

本书由浅入深,从正则表达式的介绍和经典算法的剖析来引导感兴趣的初学者入门;接着从Hyperscan总体设计原理逐步深入内部匹配引擎的介绍,梳理Hyperscan的核心技术点;最后以性能优化和应用场景收尾。为使本书更易于理解,我们使用大量图片和伪代码来解释各种算法和概念。

本书适合那些对算法有强烈兴趣的初学者,以及觉得算法晦涩难懂而无所适从的人阅读,也适合作为计算机相关专业的师生用书。同时它可为相关领域的工作者提供技术上的参考。本书不仅能帮助你理解经典的匹配算法,同时可以在系统设计层面教授你如何将理论与实践相结合。希望广大读者都能从本书中有所收获!

本书内容

本书主要介绍正则表达式算法库Hyperscan的设计原理、实现方法、技术细节以及具体应用。本书围绕Hyperscan的以下方面展开。

第1章介绍正则表达式的语法和相关背景知识。

第2章讲解字符串匹配和正则匹配的各类常规算法。

第3章介绍并比较目前业界广泛使用的较为成熟的正则匹配算法库。

第4章全面介绍Hyperscan算法库的功能特性。

第5章和第6章是本书的核心内容。

第5章介绍Hyperscan总体设计原则,并详细描述了对正则表达式的全新解构思路。

第6章介绍解构后的正则表达式模型的实现方法,并详细描述了优化手段。

第7章针对Hyperscan的使用,介绍了性能调优的若干原则与技巧。

第8章展示了Hyperscan与现实应用的整合案例。

本书特色

本书具有以下几个特色。

(1)算法思想,由浅入深。字符串匹配和正则匹配算法,一直是基础算法中比较晦涩的一类,讲解难度较大。而这些都是Hyperscan思想的“基石”。本书搜集诸多基础匹配算法,介绍顺序从简单到复杂,从直观到抽象。本书对每个算法源码抽丝剥茧,分析其优势或局限,对于Hyperscan算法本身的介绍,也蕴含着自顶向下、从宏观到微观的叙述脉络。读者可以从本书的内容编排感受到,即使是思想艰深的算法,也能有层次感。

版权:人民邮电出版社