深入淺出Hyperscan:高性能正則表達式算法原理與設計

深入淺出Hyperscan:高性能正則表達式算法原理與設計

《深入淺出Hyperscan:高性能正則表達式算法原理與設計》是2021年人民郵電出版社出版的圖書。

基本介紹

  • 書名:深入淺出Hyperscan:高性能正則表達式算法原理與設計
  • 作者:王翔,昌昊,洪揚 等
  • 出版社:人民郵電出版社
  • 出版時間:2021年9月1日
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787115552099
內容簡介,作者簡介,圖書目錄,

內容簡介

《深入淺出 Hyperscan:高性能正則表達式算法原理與設計》系統、循序漸進地介紹Hyperscan技術。全書共8章,主要介紹正則表達式、匹配算法和正則表達式匹配所依賴的自動機原理、正則表達式匹配庫等,並重點介紹Hyperscan的功能特性、設計原理和性能調優技巧,以及匹配引擎的核心算法和SIMD加速技術的運用,還展示了Hyperscan多樣化的套用場景。
《深入淺出 Hyperscan:高性能正則表達式算法原理與設計》既適合作為Hyperscan開發者的學習用書,也適合作為高等院校計算機相關專業的師生用書和相關培訓學校的教材。

作者簡介

王翔,英特爾數據中心網路平台部資深工程師,Hyperscan 項目主要技術負責人。昌昊,英特爾資深軟體工程師,負責Hyperscan算法開發和性能調優等相關工作。洪楊,英特爾資深軟體工程師,負責 Hyperscan研發。張磊,英特爾網路平台部門軟體套用工程師,主要負責DPDK、Hyperscan、QAT等網路加速方案的技術支持。

圖書目錄

目  錄
第 1章 正則表達式簡介 1
1.1 正則表達式的語法 1
1.2 正則表達式的流派與標準 7
1.2.1 PCRE簡介 7
1.2.2 POSIX標準 8
1.3 本章參考 10
第 2章 正則表達式匹配算法 11
2.1 純字元串匹配 11
2.1.1 單字元串匹配KMP算法 11
2.1.2 單字元串匹配BM算法 16
2.1.3 多字元串匹配AC算法 21
2.1.4 AC算法與單字元串匹配 24
2.1.5 SHIFT-OR算法 25
2.2 非確定性有限狀態自動機 28
2.2.1 定義 28
2.2.2 運算優先權 29
2.2.3 Thompson構造法 31
2.2.4 ε-NFA的簡化 34
2.2.5 Glushkov構造法 36
2.3 確定性有限狀態自動機 40
2.3.1 定義 40
2.3.2 從NFA到DFA 40
2.3.3 DFA的狀態規模 46
2.3.4 DFA的狀態最小化 52
2.4 本章參考 55
第3章 正則表達式匹配庫 56
3.1 PCRE 56
3.1.1 語法支持 56
3.1.2 設計概述 57
3.1.3 基本API和示例代碼 58
3.2 RE2 60
3.2.1 語法支持 60
3.2.2 設計概述 60
3.2.3 基本API和示例代碼 60
3.3 Hyperscan 61
3.3.1 語法支持 61
3.3.2 匹配模式 62
3.3.3 設計概述 63
3.3.4 基本API和示例代碼 64
3.4 正則表達式匹配庫的比較 65
3.4.1 概述 65
3.4.2 語法支持 65
3.4.3 設計原理 66
3.4.4 性能 68
3.5 本章參考 70
第4章 Hyperscan特性 71
4.1 Hyperscan的語義 71
4.2 編譯期和運行期 71
4.2.1 編譯期 72
4.2.2 運行期 74
4.3 Hyperscan高級特性 77
4.3.1 流狀態壓縮 77
4.3.2 近似匹配 78
4.3.3 邏輯組合 79
4.3.4 Chimera 80
4.4 Hyperscan工具 82
4.4.1 hsbench 82
4.4.2 hscheck 84
4.4.3 hscollider 85
4.4.4 hsdump 88
第5章 Hyperscan設計原理 92
5.1 設計原則 92
5.1.1 實用性優先 92
5.1.2 極端情況可用 93
5.1.3 流模式支持 93
5.1.4 大規模可擴展 93
5.1.5 小規模高性能 94
5.1.6 性能優先 94
5.1.7 平衡開銷 94
5.1.8 漸進主義 95
5.1.9 可測試性設計和自動可測試性設計 96
5.2 運行原理 96
5.2.1 匹配組件 97
5.2.2 匹配原則 100
5.2.3 運行期實現 103
5.2.4 運行期最佳化 108
5.3 圖分解 112
5.3.1 支配路徑分析 114
5.3.2 支配區域分析 115
5.3.3 網路流分析 116
5.3.4 圖分解流程 117
5.4 圖最佳化 122
5.4.1 節點冗餘 123
5.4.2 邊冗餘 129
5.5 本章參考 132
第6章 Hyperscan引擎 133
6.1 SIMD加速 133
6.1.1 搜尋單字元的加速 133
6.1.2 搜尋雙字元序列的加速 134
6.1.3 搜尋小規模單字元集的加速 136
6.1.4 搜尋大規模單字元集的加速 140
6.1.5 環視機制 143
6.2 純字元串匹配 148
6.2.1 純字元串匹配在Hyperscan中的作用 148
6.2.2 單字元串匹配器“Noodle” 148
6.2.3 大規模多字元串匹配器“FDR” 150
6.2.4 小規模多字元串匹配器“Teddy” 156
6.3 正則引擎 160
6.3.1 NFA引擎 160
6.3.2 DFA引擎 168
6.3.3 重複引擎 186
6.3.4 Tamarama 197
第7章 Hyperscan性能最佳化 199
7.1 Hyperscan性能測試 199
7.1.1 性能測試目的 199
7.1.2 基於性能的硬體和GRUB配置 199
7.1.3 hsbench測試 201
7.2 Hyperscan性能調優技巧 205
7.2.1 正則表達式構造 206
7.2.2 軟體庫的使用 207
7.2.3 塊模式 207
7.2.4 資料庫分配 209
7.2.5 scratch記憶體分配 209
7.2.6 錨定規則 211
7.2.7 隨處匹配的規則 212
7.2.8 流模式下的重複語義 213
7.2.9 青睞字元串 214
7.2.10 DOTALL標誌 215
7.2.11 單次匹配標誌 216
7.2.12 Start of Match標誌 217
7.2.13 近似匹配 218
第8章 Hyperscan實際案例學習 221
8.1 Snort 221
8.1.1 介紹 221
8.1.2 Hyperscan集成 222
8.1.3 基於記憶體的性能測試 225
8.2 Suricata 229
8.2.1 介紹 229
8.2.2 Hyperscan集成 229
8.2.3 基於記憶體的性能測試 234
8.3 垃圾郵件檢測 238
8.4 深度報文檢測 242
8.4.1 nDPI 242
8.4.2 UDPI 245
8.5 資料庫 247
8.5.1 整合概述 248
8.5.2 實驗結果與分析 250
8.6 Web套用防火牆 254

相關詞條

熱門詞條

聯絡我們