Hyperscan✦
深入浅出Hyperscan出版啦!
正则表达式的概念早在20世纪50年代就由美国数学家克莱尼提出。由于其丰富的描述性特征,在大家日常开发和运维中得到了极其广泛的运用。尽管功能强大,基于经典算法实现的正则表达式匹配性能并不高效。在网络安全场景下,正则表达式被广泛用于以规则匹配为核心的深度报文检测。流量特征的多样性决定了需要定义大量正则规则进行匹配,从而成为网络处理中的一大性能瓶颈。在实际生产环境中甚至会导致正则表达式拒绝服务攻击(Regular expression Denial of Service: https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/)。因此在几十年的发展过程中,对正则表达式匹配的研究层出不穷,沉淀出了许多经典的算法。在CPU上以软件形式运行这些经典算法仍然难以满足网络处理性能的要求。
Hyperscan是一款高性能正则表达式匹配开源软件库。它的设计初衷就是为了实现基于软件的高性能正则表达式解决方案。凭借创新性的系统设计和巧妙的算法实现,Hyperscan的横空出世解决了长期困扰大家的性能痛点。随着时间的推移,Hyperscan已经商用于诸多顶级的网络设备商和云厂商的生产环境,显著解决了性能瓶颈问题。Hyperscan广泛应用于各类网络应用中,包括入侵检测和防御系统(Snort和Suricata)、网络应用防火墙、垃圾邮件过滤系统(Rspamd)、协议/应用识别系统(nDPI)等。它还能够提高数据分析应用的性能,包括日志分析系统、代码版本控制系统(GitHub)和数据库(ClickHouse)等。
Hyperscan作为已经被广泛使用的成熟产品,许多学术界研究者和产品开发者对其内部设计实现产生了十分浓厚的兴趣。相信对大多数人来说,正则表达式匹配算法是一个较为陌生的领域。Hyperscan本身又有许多创新的算法设计并未在公开文献中发表。在没有足够基础和时间的前提下,直接从代码层面去剖析Hyperscan较为晦涩和繁琐。作为Hyperscan的开发者,我们也想通过更好的渠道来分享其中的技术精华,让大家从中汲取一些核心设计思想以应用于实际工作学习中。因此我们花了很多精力撰写了这本新书:深入浅出Hyperscan:高性能正则表达式算法原理与设计。
本书由浅入深,从正则表达式基础知识介绍逐步深入Hyperscan内部具体的设计和实现。其中主要包含以下内容:
介绍正则表达式的背景知识以及字符串匹配和正则匹配的各类常规算法;
探索Hyperscan算法库的功能特性和与业界广泛使用的较为成熟的正则匹配算法库的比较;
阐释Hyperscan总体设计原则,并详细描述了对正则表达式的全新解构思路;
展现经过解构后的正则表达式模型的实现方法,并详细描述了优化手段;
介绍Hyperscan使用过程中性能调优的若干原则与技巧;
展示Hyperscan与多种现实应用的整合案例。
欢迎感兴趣的同学多多支持我们的新书!希望你们能从中学习到正则表达式匹配以及Hyperscan的设计精髓,并将其熟练运用在日常学习工作中。
(购买链接请点击文末左下角阅读原文)
转载须知
推荐阅读
点左下角“阅读原文”查看购买链接~