Гиперскан это Intel изВысокопроизводительная библиотека сопоставления регулярных выражений,Доступно на x86 бегать на платформе и опорах Perl Совместимость с регулярными выражениями (PCRE) Синтаксис, одновременное сопоставление групп регулярных выражений и потоковые операции. это в BSD Выпущено как программное обеспечение с открытым исходным кодом по лицензии. Гиперскан обеспечивает гибкий C API и несколько различных режимов работы, чтобы гарантировать его применимость в реальных сетевых сценариях. Кроме того, особое внимание уделяется эффективным алгоритмам и технологиям Intel®. Streaming SIMD Расширения (Intel® Использование SSE) позволяет Hyperscan Возможность достижения высокого соответствияпроизводительность.Подходит для глубокой проверки пакетов (DPI), системы обнаружения вторжений (IDS), системы предотвращения вторжений (IPS), межсетевого экрана.и т. д. сценарии использования,Внедряется в глобальные решения в области кибербезопасности.。Hyperscan Также интегрирован в широко используемый открытый исходный код. IDS и IPS в таких продуктах, как Snort * иSuricata *。
Рабочий процесс Hyperscan можно разделить на две части: время компиляции и время компиляции.
Hyperscan с C++ Написан компилятор регулярных выражений. Как показано на картинке 1 Как показано, в качестве входных данных принимается регулярное выражение. На основе доступного Intel® Функции архитектурной платформы, определяемая пользователем схема и функции схемы, Hyperscan Соответствующая база шаблонов создается посредством сложного анализа формы изображения и процесса оптимизации. данных。созданныйбаза данные также могут быть сериализованы и сохранены в памяти для последующего использования при разработке.
Узнайте больше об Intel Знания, связанные с dpdkиvpp, приветствуются нас:
картина1:Процесс компиляции гиперскана
картина 2:Hyperscan бегатьчас
Hyperscan пробег используется, когда C язык развит. картина 2 показывать Понятнобегатьчас主要组件извысокий级框картина。Вам нужно отсканироватьчас使用изВременная информация предварительно выделяется в рабочем пространстве, а затем скомпилированная база данных используется для вызова API сканирования Hyperscan для запуска внутреннего механизма сопоставления (недетерминированный конечный автомат (NFA), детерминированный конечный автомат (DFA) и т. д.). ) для соответствия корпусу。Hyperscan С помощью одной инструкции несколько данных предоставляются процессорами Intel. (SIMD) Инструкции ускоряют эти механизмы и передают совпадения пользовательскому приложению для обработки через предоставляемую пользователем функцию обратного вызова. потому что Hyperscan База данных схемы доступна только для чтения, и пользователи могут создавать несколько CPU Совместное использование базы данных между ядрами или несколькими потоками для повышения соответствующей масштабируемости.
Hyperscan Поддерживает несколько Intel Процессор кросс-компилируется со специальной оптимизацией для разных наборов команд. Он не имеет ограничений операционной системы и поддерживает сценарии как виртуальных машин, так и контейнеров, охватывая большинство PCRE грамматика,и поддерживает включение“.*”и“[^>] *» и другие сложные синтаксические выражения. Предоставляет различные режимы работы (поток, блок и вектор) для удовлетворения потребностей различных сценариев. При запросе с использованием каждого флага режима гиперсканирование Начальную и конечную позицию соответствующих данных можно найти во входном потоке. Для получения дополнительной информации см. Гиперсканирование. Текущая версия Справочного руководства для разработчиков 。
В зависимости от сложности Hyperscan может поддерживать сопоставление большого количества правил. В отличие от большинства традиционных механизмов сопоставления, Hyperscan поддерживает сопоставление по нескольким шаблонам. После присвоения уникального идентификатора каждому правилу Hyperscan может скомпилировать правила в базу данных и вывести все совпадающие в данный момент идентификаторы правил во время процесса сопоставления.
картина 3:данные разбросаны по разным блокам в хронологическом порядке
Hyperscan Поддерживает три режима работы: блочный режим, потоковый режим и векторный режим.。Блочный режим — самый простой,который сканирует один непрерывный блок данных,совпадение найденочас Вернуть совпадение вызывающему абоненту。Streaming Шаблон предназначен для межпакетного сопоставления в сетевых сценариях, где сканируемые данные делятся на несколько пакетов. В потоковом режиме Hyperscan Можно сохранить состояние соответствия текущего блока данных и использовать его в качестве начального состояния соответствия при поступлении нового блока данных. Такие как картина 3 Как показано, потоковый режим может гарантировать согласованность окончательного совпадения независимо от того, как данные «xxxxabcxxxxxxxdefx» разбиваются на пакеты с течением времени. Кроме того, Гиперскан Сохраненное состояние соответствия можно сжать, чтобы уменьшить объем памяти приложения.。Работа в потоковом режиме обеспечивает Понятно一种简单из方法来扫描一段час间内到达изданные,Повторно сканируйте пакеты данных без буферизации или ограничивайте сканирование фиксированным окном исторических данных. наконец,Также есть векторный режим.,Он обеспечивает последовательное сканирование набора несмежных блоков данных в памяти.
Hyperscan требует как минимум набора инструкций Intel® Streaming SIMD Extensions 3 и использует инструкции SIMD для ускорения сопоставления производительности. Ниже мы приводим краткое описание общедоступной демонстрации производительности «Анализ производительности Hyperscan с помощью hsbench».
Мы проводим этот анализ, используя три различных набора шаблонов.
картина 4 Показан Intel® Ксеон® процессор E5-2699 v4 @ 2.20 GHz в блочном режиме Hyperscan соответствие производительности (Gbps)。
картина 4:Производительность гиперсканирования в блочном режиме на разных наборах правил.
изображение 4 показать Hyperscan может добиться хорошей одноядерной производительности, используя различные наборы правил.,Это очень масштабируемый,Его соответствующая производительность растет практически линейно с увеличением количества используемых ядер.
картина 5:Hyperscan иданные Graphic Development Kit Интегрированная производительность
существоватьКомплект разработки плоскости данных (DPDK)Обеспечивает высокоскоростную обработку сетевых пакетов.и Вперед,исуществовать Широко используется в промышленности。Hyperscan и DPDK Может быть интегрирован в высокопроизводительную DPI в растворе. картина 5 Шоу имеет интегрированные решения для повышения производительности. При тестировании мы используем реальный режим и HTTP трафик в качестве входных данных. Интеграция Hyperscan и DPDKпоставлять Понятновысокийпроизводительность,и в этом тесте,В пакете для данных большего размера,производительность может достигать линейной скорости.
Hyperscan предоставляет гибкую и простую в использовании библиотеку.,Позволяет сопоставлять большое количество шаблонов одновременно с высокой производительностью и хорошей масштабируемостью.,И предоставляет уникальные функции для обработки сетевых пакетов данных. Hyperscan и DPDK также предоставляют зрелые и эффективные решения для DPI, IDS, IPS и других сопутствующих продуктов.