Hyperscan首頁、文檔和下載- 高性能的多正則表達式匹配庫- 程式开发

Hyperscan是一個高性能的多正則表達式匹配庫。它遵循常用libpcre庫的正則表達式語法,但它是一個具有自己的C API的獨立庫。

Hyperscan使用混合自動機技術允許同時匹配大量(多達數万個)正則表達式,並允許跨數據流匹配正則表達式。 Hyperscan通常用於DPI庫堆棧。

Hyperscan 可在x86平台上運行,並提供對Perl兼容正則表達式(PCRE)語法的支持,同時支持正則表達式組的匹配和流操作。 Hyperscan提供了一個靈活的C語言API和一些不同的操作模式,以確保其在實際網絡場景中的適用性。此外,對高效算法的關注和對Intel Streaming SIMD Extensions(Intel SSE)的使用,使Hyperscan能夠實現高匹配性能。它適用於深層數據包檢測(DPI)、入侵檢測系統(IDS)、入侵防禦系統(IPS)和防火牆等使用場景,並已被部署在世界各地的網絡安全解決方案中。 Hyperscan還被集成到廣泛使用的開源IDS和IPS產品中,如Snort*和Suricata*。

特性:

多功能性

Hyperscan 支持多個Intel 處理器的交叉編譯,針對不同的指令集進行了特定的優化。無操作系統限制,同時支持虛擬機和容器場景,涵蓋大部分PCRE語法,支持包括“.*”、“[^>] *”等語法的複雜表達式。提供不同的操作模式(流式、塊式和矢量化)以滿足不同場景的需求。如果通過使用每個模式標誌請求,Hyperscan 可以在輸入流中找到匹配數據的開始和結束位置。有關詳細信息,參閱當前版本的 Hyperscan 開發人員參考指南

大規模匹配

根據複雜性,Hyperscan 可以支持匹配大量規則。與大多數正則匹配引擎不同,Hyperscan 支持多模式匹配。為每條規則指定一個唯一的ID後,Hyperscan能夠將規則編譯成數據庫,並在匹配過程中輸出當前所有匹配的規則ID。

Streaming mode

Hyperscan 支持三種操作模式:block mode、streaming mode 和vectored modeBlock mode 是最直接的,它掃描單個連續的數據塊,找到後將匹配結果返回給調用者。 Streaming mode 是為網絡場景中的跨包匹配而設計的,其中要掃描的數據被分成多個包。在Streaming mode 下,Hyperscan可以保存當前數據塊的匹配狀態,並在新數據塊到達時將其作為初始匹配狀態。如圖所示,無論”xxxxabcxxxxxxxdefx “數據如何隨時間分割成數據包,Streaming mode 都能保證最終匹配結果的一致性。此外,Hyperscan可以壓縮保存的匹配狀態以減少應用程序的內存佔用。 Streaming mode 操作提供了一種簡單的方法來掃描一段時間內到達的數據,而不需要你緩沖和重新掃描數據包,或將掃描限制在一個固定的歷史數據窗口。最後,還有一種vectored mode,它提供對一組在內存中不連續的數據塊的順序掃描。

高性能和可擴展性

Hyperscan 至少需要英特爾Streaming SIMD Extensions 3 指令集,並使用SIMD 指令來加速匹配性能。

#Hyperscan首頁文檔和下載 #高性能的多正則表達式匹配庫 #程式开发

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *