УСТРОЙСТВО И СПОСОБ ГЛУБОКОЙ ПРОВЕРКИ ПАКЕТОВ И СОПРОЦЕССОР
DEVICE AND METHOD OF DEEP PACKET VERIFICATION AND COOPROCESSOR

Область техники
[0001] Настоящее изобретение относится к компьютерным технологиям и, в частности, к устройству и способу глубокой проверки пакетов и сопроцессору.
Уровень техники
[0002] Технология глубокой проверки пакетов (глубокой проверки пакетов, DPI для краткости) в качестве базовой технологии для обнаружения вторжений в сеть и идентификации протокола прикладного уровня играет в большей степени важную роль в области безопасности сети и информации. Технология DPI реализует глубокий анализ в отношении пакета данных посредством использования алгоритма согласования особенностей для получения информации приложения пакета данных так, чтобы реализовывать службы, такие как оптимизация сети, управление трафиком приложения и обнаружение безопасности.
[0003] В предшествующем уровне техники служба DPI обычно реализуется посредством использования общего процессора, где общий процессор содержит согласующее устройство, и общий процессор реализует согласование особенностей посредством использования программной логики для возбуждения согласующего устройства. Поскольку общий процессор обычно не разрабатывается специально для службы DPI, для того, чтобы соблюсти требование универсальности согласующее устройство, включенное в состав общего процессора, в общем поддерживает только универсальный алгоритм согласования, например, алгоритм согласования регулярных выражений, но не поддерживает алгоритм согласования, который разработан специально для службы DPI, что приводит к плохой производительности согласования и становится критическим элементом обработки службы. Более того, все службы DPI реализованы в общем процессоре и поскольку ресурсы общего процессора ограничены, производительность служб DPI ограничена. Как показано на фиг. 1, в предшествующем уровне техники другим методом реализации службы DPI является то, чтобы записать логику службы DPI на аппаратную сущность постоянно, где аппаратная сущность может быть FPGA (программируемой пользователем вентильной матрицей, программируемой пользователем вентильной матрицей) или ASIC (специализированной интегральной схемой, специализированной интегральной схемой). Например, логика службы DPI устройства разделена на четыре этапа: 1. согласование таблицы конечных точек; 2. идентификация порта IP; 3. согласование особенностей текста пакета уровня приложений; и 4. сложная идентификация после декодирования. Первые три этапа могут быть все постоянно записаны в аппаратную логику для реализации; однако, этап 4, логика которого является очень сложной, не может быть реализован аппаратной логикой и соответственно оставляется для выполнения общим процессором.
[0004] Очевидно, что постоянная запись логики, реализуемой посредством использования аппаратного обеспечения, подвержена плохой масштабируемости: когда логика службы DPI (например, четыре этапа в вышеприведенном примере становятся пятью этапами или их порядок изменяется) изменяется, код аппаратного обеспечения должен быть переписан, эмулирован и затем выпущен для устройства в промышленной сети. Упомянутое не может быстро адаптироваться к изменению в сетевом трафике; более того, поскольку несколько этапов логики службы DPI реализованы общим процессором отдельно посредством использования логики микросхемы ускорения аппаратного обеспечения и программного обеспечения, неизбежно, что общий процессор взаимодействует с микросхемой ускорения аппаратного обеспечения множество раз, что вызывает длительную задержку в обработке DPI.
Сущность изобретения
[0005] Варианты осуществления настоящего изобретения обеспечивают устройство и способ глубокой проверки пакетов, и сопроцессор так, чтобы улучшать масштабируемость и производительность DPI.
[0006] Согласно первому аспекту вариант осуществления настоящего изобретения обеспечивает способ глубокой проверки пакетов, который включает в себя:
прием модулем приемопередатчика сопроцессора исходного пакета данных, отправленного общим процессором, и отправку исходного пакета данных ядру процессора сопроцессора; вызов ядром процессора по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных, где результат анализа уровня приложений используется для указания информации уровня приложений исходного пакета данных; и отправку ядром процессора результата анализа уровня приложений общему процессору так, что общий процессор обрабатывает исходный пакет данных согласно результату анализа уровня приложений.
[0007] В первом возможном методе реализации после приема модулем приемопередатчика сопроцессора исходного пакета данных, отправленного общим процессором, и до отправки исходного пакета данных ядру процессора сопроцессора способ дополнительно включает в себя: выполнение обработки потока в отношении исходного пакета данных; отправка исходного пакета данных ядру процессора включает в себя: отправку подвергнутого обработке потока пакета данных ядру процессора; и вызов ядром процессора по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных включает в себя: вызов ядром процессора упомянутого по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении подвергнутого обработке потока пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных.
[0008] Со ссылкой на первый возможный метод реализации первого аспекта во втором возможном методе реализации выполнение обработки потока в отношении исходного пакета данных включает в себя: выполнение обработки повторной сборки фрагментированного IP-пакета и обработки переупорядочения следующего не по порядку TCP-пакета в отношении исходного пакета данных.
[0009] Со ссылкой на первый аспект в третьем возможном методе реализации по меньшей мере два ядра процессора обеспечены в сопроцессоре; и отправка исходного пакета данных ядру процессора сопроцессора включает в себя:
выбор одного ядра процессора из упомянутых по меньшей мере двух ядер процессора согласно состоянию нагрузки каждого из ядер процессора и отправку исходного пакета данных выбранному ядру процессора.
[0010] Со ссылкой на первый аспект в четвертом возможном методе реализации вызов ядром процессора по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных в частности включает в себя:
вызов ядром процессора посредством использования модуля шины коммутации сопроцессора упомянутого по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных.
[0011] Со ссылкой на первый аспект в пятом возможном методе реализации вызов ядром процессора по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных включает в себя:
вызов ядром процессора подсопроцессора идентификации протокола, включенного в сопроцессор; выполнение подсопроцессором идентификации протокола при вызове ядра процессора поиска конечной точки в отношении исходного пакета данных так, чтобы получать результат поиска конечной точки, и возврат результата поиска конечной точки ядру процессора; и определение ядром процессора типа протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату поиска конечной точки, и использование определенного типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных.
[0012] Со ссылкой на первый аспект в шестом возможном методе реализации вызов ядром процессора по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных включает в себя: вызов ядром процессора подсопроцессора идентификации протокола, включенного в сопроцессор; вызов подсопроцессором идентификации протокола при вызове ядра процессора механизма согласования строк, включенного в сопроцессор; выполнение механизмом согласования строк при вызове подсопроцессора идентификации протокола согласования строк в отношении исходного пакета данных так, чтобы получать результат согласования особенностей, и возврат результата согласования особенностей ядру процессора; и определение ядром процессора типа протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату согласования особенностей, и использование типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных.
[0013] Со ссылкой на первый аспект в седьмом возможном методе реализации вызов ядром процессора по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных включает в себя:
вызов ядром процессора механизма согласования регулярных выражений, включенного в сопроцессор; выполнение механизмом согласования регулярных выражений при вызове ядра процессора согласования регулярных выражений в отношении исходного пакета данных так, чтобы получать результат согласования особенностей, и возврат результата согласования особенностей ядру процессора; и определение ядром процессора типа протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату согласования особенностей, и использование определенного типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных.
[0014] Со ссылкой на первый аспект в восьмом возможном методе реализации вызов ядром процессора по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных включает в себя:
вызов ядром процессора подсопроцессора идентификации протокола, включенного в сопроцессор, для идентификации протокола уровня приложений исходного пакета данных так, чтобы получать тип протокола уровня приложений исходного пакета данных; и
вызов ядром процессора подсопроцессора анализа протокола, включенного в сопроцессор, для выполнения анализа протокола в отношении исходного пакета данных так, чтобы получать результат анализа и использование результата анализа, и типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных.
[0015] Со ссылкой на шестой возможный метод реализации первого аспекта в девятом возможном методе реализации выполнение механизмом согласования строк при вызове подсопроцессора идентификации протокола согласования строк в отношении исходного пакета данных так, чтобы получать результат согласования особенностей включает в себя:
при вызове подсопроцессора идентификации протокола считывание механизмом согласования строк таблицы состояний алгоритма согласования строк из первой памяти и выполнение согласования строк в отношении подвергнутого обработке потока пакета данных согласно таблице состояний алгоритма согласования строк для получения результата согласования особенностей.
[0016] Со ссылкой на первый аспект или какой-либо из первого по девятый возможных методов реализации первого аспекта в одиннадцатом возможном методе реализации отправка ядром процессора результата анализа уровня приложений общему процессору включает в себя: отправку ядром процессора результата анализа уровня приложений модулю обработки сообщения результата, включенному в сопроцессор; и инкапсуляцию модулем обработки сообщения результата упомянутого результата анализа уровня приложений согласно предустановленному формату, и отправку инкапсулированного результата анализа уровня приложений общему процессору.
[0017] Согласно второму аспекту вариант осуществления настоящего изобретения обеспечивает способ глубокой проверки пакетов, который включает в себя:
отправку общим процессором исходного пакета данных сопроцессору; прием общим процессором результата анализа уровня приложений исходного пакета данных и отправленного сопроцессором, где результат анализа уровня приложений получается ядром процессора сопроцессора посредством вызова по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных, и результат анализа уровня приложений используется для указания информации уровня приложений исходного пакета данных; и обработку общим процессором исходного пакета данных, по меньшей мере, согласно результату анализа уровня приложений.
[0018] В первом возможном методе реализации обработка общим процессором исходного пакета данных, по меньшей мере, согласно результату анализа уровня приложений включает в себя: определение общим процессором согласно результату анализа уровня приложений, является ли исходный пакет данных зашифрованным пакетом данных, и если исходный пакет данных является зашифрованным пакетом данных, дешифрование исходного пакета данных.
[0019] Во втором возможном методе реализации обработка общим процессором исходного пакета данных, по меньшей мере, согласно результату анализа уровня приложений включает в себя:
определение общим процессором согласно результату анализа уровня приложений типа службы потока, к которому принадлежит исходный пакет данных, и выполнение подсчета статистики трафика, назначения цены или ускорения передачи в отношении потока согласно типу службы.
[0020] В третьем возможном методе реализации результат анализа уровня приложений исходного пакета данных включает в себя: тип протокола уровня приложений исходного пакета данных и результат согласования URL, где тип протокола уровня приложений исходного пакета данных получается ядром процессора сопроцессора посредством вызова подсопроцессора идентификации протокола сопроцессора для выполнения идентификации протокола в отношении исходного пакета данных, и результат согласования URL получается ядром процессора сопроцессора при определении, что тип протокола уровня приложений исходного пакета данных является протоколом передачи гипертекстовых файлов посредством вызова механизма согласования унифицированного указателя ресурса, URL, сопроцессора для выполнения согласования URL в отношении исходного пакета данных; и обработка общим процессором исходного пакета данных, по меньшей мере, согласно результату анализа уровня приложений включает в себя: определение общим процессором согласно результату анализа уровня приложений и результату согласования URL, используется ли поток, к которому принадлежит исходный пакет данных, для осуществления доступа к ограниченному веб-сайту и если поток, к которому принадлежит исходный пакет данных, используется для осуществления доступа к ограниченному веб-сайту, блокировку потока.
[0021] Согласно третьему аспекту вариант осуществления настоящего изобретения обеспечивает сопроцессор, который включает в себя: модуль приемопередатчика, подсопроцессор и ядро процессора, где
модуль приемопередатчика сконфигурирован с возможностью приема исходного пакета данных, отправленного общим процессором, и отправки исходного пакета данных ядру процессора;
ядро процессора сконфигурировано с возможностью вызова подсопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных, где результат анализа уровня приложений используется для указания информации уровня приложений исходного пакета данных; и отправки результата анализа уровня приложений общему процессору так, что общий процессор обрабатывает исходный пакет данных, по меньшей мере, согласно результату анализа уровня приложений; и
подсопроцессор сконфигурирован с возможностью выполнения анализа уровня приложений в отношении исходного пакета данных при вызове ядра процессора так, чтобы получать информацию уровня приложений исходного пакета данных.
[0022] В первом возможном методе реализации модуль приемопередатчика включает в себя:
блок приема, сконфигурированный с возможностью приема исходного пакета данных, отправленного общим процессором;
блок обработки потока, сконфигурированный с возможностью выполнения обработки потока в отношении исходного пакета данных после того, как блок приема принимает исходный пакет данных, отправленный общим процессором; и
блок распределения, сконфигурированный с возможностью отправки подвергнутого обработке потока пакета данных ядру процессора; и
ядро процессора в частности сконфигурировано с возможностью вызова подсопроцессора для выполнения анализа уровня приложений в отношении подвергнутого обработке потока пакета данных.
[0023] Со ссылкой на первый возможный метод реализации третьего аспекта во втором возможном методе реализации блок обработки потока в частности сконфигурирован с возможностью выполнения обработки повторной сборки фрагментированного IP-пакета и обработки переупорядочения следующего не по порядку TCP-пакета в отношении исходного пакета данных.
[0024] Со ссылкой на первый или второй возможный метод реализации третьего аспекта в третьем возможном методе реализации имеются по меньшей мере два ядра процессора; и
блок распределения в частности сконфигурирован с возможностью определения состояния нагрузки каждого ядра процессора из упомянутых по меньшей мере двух ядер процессора, выбора одного ядра процессора из упомянутых по меньшей мере двух ядер процессора согласно состоянию нагрузки каждого из ядер процессора и отправки подвергнутого обработке потока пакета данных выбранному ядру процессора.
[0025] Со ссылкой на третий аспект или первый, второй или третий возможный метод реализации третьего аспекта в четвертом возможном методе реализации сопроцессор дополнительно включает в себя: модуль шины коммутации; и
ядро процессора в частности сконфигурировано с возможностью вызова подсопроцессора посредством использования модуля шины коммутации сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных.
[0026] Со ссылкой на третий аспект в пятом возможном методе реализации подсопроцессор в частности сконфигурирован с возможностью выполнения поиска конечной точки в отношении исходного пакета данных при вызове ядра процессора так, чтобы получать результат поиска конечной точки, и возврата результата поиска конечной точки ядру процессора; и ядро процессора в частности сконфигурировано с возможностью определения типа протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату поиска конечной точки и использования определенного типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных, и отправки результата анализа уровня приложений общему процессору.
[0027] Со ссылкой на третий аспект в шестом возможном методе реализации подсопроцессор включает в себя: подсопроцессор идентификации протокола и механизм согласования строк, где подсопроцессор идентификации протокола в частности сконфигурирован с возможностью вызова механизма согласования строк при вызове ядра процессора, где механизм согласования строк выполняет согласование строк в отношении исходного пакета данных при вызове подсопроцессора идентификации протокола так, чтобы получать результат согласования особенностей и возвращает результат согласования особенностей ядру процессора; и ядро процессора в частности сконфигурировано с возможностью определения типа протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату согласования особенностей и использования определенного типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных, и отправки результата анализа уровня приложений общему процессору.
[0028] Со ссылкой на третий аспект в седьмом возможном методе реализации подсопроцессор в частности является: механизмом согласования регулярных выражений, где механизм согласования регулярных выражений сконфигурирован с возможностью выполнения согласования регулярных выражений в отношении исходного пакета данных при вызове ядра процессора так, чтобы получать результат согласования особенностей, и возврата результата согласования особенностей ядру процессора; и ядро процессора в частности сконфигурировано с возможностью определения типа протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату согласования особенностей и использования определенного типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных, и отправки результата анализа уровня приложений общему процессору.
[0029] Со ссылкой на шестой возможный метод реализации третьего аспекта в восьмом возможном методе реализации подсопроцессор дополнительно включает в себя: подсопроцессор анализа протокола, где подсопроцессор анализа протокола сконфигурирован с возможностью выполнения анализа протокола в отношении исходного пакета данных так, чтобы получать результат анализа, и возврата результата анализа ядру процессора; и ядро процессора дополнительно сконфигурировано с возможностью отправки результата анализа общему процессору так, что общий процессор обрабатывает исходный пакет данных согласно типу протокола уровня приложений и результату анализа.
[0030] Со ссылкой на шестой возможный метод реализации третьего аспекта в девятом возможном методе реализации механизм согласования строк в частности сконфигурирован с возможностью при вызове подсопроцессора идентификации протокола считывания таблицы состояний алгоритма согласования строк из первой памяти, выполнения согласования строк в отношении исходного пакета данных согласно таблице состояний алгоритма согласования строк для получения результата согласования особенностей и возврата результата согласования особенностей ядру процессора, где упомянутая первая память сконфигурирована с возможностью хранения таблицы состояний алгоритма согласования строк.
[0031] Со ссылкой на девятый возможный метод реализации третьего аспекта в десятом возможном методе реализации ядро процессора в частности сконфигурировано с возможностью считывания структуры данных условия и правила из второй памяти, и определения типа протокола уровня приложений согласно результату согласования особенностей и структуре данных условия и правила, где упомянутая вторая память сконфигурирована с возможностью хранения структуры данных условия и правила.
[0032] Согласно четвертому аспекту вариант осуществления настоящего изобретения обеспечивает общий процессор, который включает в себя:
модуль отправки, сконфигурированный с возможностью отправки исходного пакета данных сопроцессору; модуль приема, сконфигурированный с возможностью приема результата анализа уровня приложений исходного пакета данных и отправленного сопроцессором, где результат анализа уровня приложений получается ядром процессора сопроцессора посредством вызова по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных, и результат анализа уровня приложений используется для указания информации уровня приложений исходного пакета данных; и модуль обработки, сконфигурированный с возможностью обработки исходного пакета данных, по меньшей мере, согласно результату анализа уровня приложений.
[0033] В первом возможном методе реализации модуль обработки в частности сконфигурирован с возможностью дешифрования исходного пакета данных, если идентифицируется согласно результату анализа уровня приложений, что исходный пакет данных является зашифрованным пакетом данных.
[0034] Во втором возможном методе реализации результат анализа уровня приложений исходного пакет данных включает в себя: тип протокола уровня приложений исходного пакета данных и результат согласования URL, где результат согласования URL получается ядром процессора сопроцессора при определении, что тип протокола уровня приложений исходного пакета данных является протоколом передачи гипертекстовых файлов посредством вызова механизма согласования унифицированного указателя ресурса, URL, сопроцессора для выполнения согласования URL в отношении исходного пакета данных; и
модуль обработки в частности сконфигурирован с возможностью определения согласно типу протокола уровня приложений исходного пакета данных и результату согласования URL, используется ли поток, к которому принадлежит исходный пакет данных, для осуществления доступа к ограниченному веб-сайту и если поток, к которому принадлежит исходный пакет данных, используется для осуществления доступа к ограниченному веб-сайту, блокировки потока.
[0035] Согласно пятому аспекту вариант осуществления настоящего изобретения обеспечивает устройство глубокой проверки пакетов, которое включает в себя: сопроцессор, обеспеченный каким-либо вариантом осуществления настоящего изобретения, и общий процессор, обеспеченный каким-либо вариантом осуществления настоящего изобретения.
[0036] В первом возможном методе реализации имеется один общий процессор.
[0037] Во втором возможном методе реализации имеются по меньшей мере два общих процессора; и аппарат глубокой проверки пакетов дополнительно включает в себя сетевой адаптер и аппарат балансировки нагрузки, где сетевой адаптер сконфигурирован с возможностью приема пакета данных из сети и отправки пакета данных аппарату балансировки нагрузки, и аппарат балансировки нагрузки сконфигурирован с возможностью получения состояния нагрузки каждого общего процессора из по меньшей мере двух общих процессоров, выбора одного общего процессора согласно состоянию нагрузки каждого из общих процессоров и отправки пакета данных выбранному общему процессору.
[0038] Из вышеприведенных технических решений можно узнать, что в устройстве и способе глубокой проверки пакетов, и в сопроцессоре, обеспеченном вариантами осуществления настоящего изобретения, общий процессор и сопроцессор кооперируются для реализации DPI; и подсопроцессор в сопроцессоре может быть разработан специально для службы DPI для выгрузки функции DPI с общего процессора, что сокращает занятость ресурса общего процессора так, что общий процессор может обрабатывать другие дополнительные службы. Более того, ядро процессора обеспечено в сопроцессоре и подсопроцессор работает при вызове ядра процессора так, что информация о промежуточном состоянии может быть сохранена и взаимодействия между ядром процессора и подсопроцессором являются всеми взаимодействиями в микросхеме, что избегает частых взаимодействий между сопроцессором и общим процессором, посредством этого сокращая задержку обработки.
Краткое описание чертежей
[0039] Фиг. 1 представляет собой схематическое представление способа глубокой проверки пакетов в предшествующем уровне техники;
[0040] фиг. 2 представляет собой схематическое представление архитектуры глубокой проверки пакетов согласно варианту осуществления настоящего изобретения;
[0041] фиг. 3 представляет собой схематическое представление сценария применения глубокой проверки пакетов согласно варианту осуществления настоящего изобретения;
[0042] фиг. 4 представляет собой блок-схему последовательности операций первого способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения;
[0043] фиг. 5 представляет собой блок-схему последовательности операций второго способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения;
[0044] фиг. 6A и 6B представляют собой блок-схему последовательности операций способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения;
[0045] фиг. 7A и 7B представляют собой блок-схему последовательности операций другого способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения;
[0046] фиг. 8 представляет собой блок-схему последовательности операций еще одного другого способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения;
[0047] фиг. 9 представляет собой схематическое структурное представление первого сопроцессора согласно варианту;
[0048] фиг. 10 представляет собой схематическое структурное представление второго сопроцессора согласно варианту осуществления настоящего изобретения;
[0049] фиг. 11 представляет собой схематическое структурное представление общего процессора согласно варианту осуществления настоящего изобретения;
[0050] фиг. 12 представляет собой схематическое структурное представление первого устройства глубокой проверки пакетов согласно варианту осуществления настоящего изобретения;
[0051] фиг. 13 представляет собой схематическое структурное представление второго устройства глубокой проверки пакетов согласно варианту осуществления настоящего изобретения; и
[0052] фиг. 14 представляет собой схематическое структурное представление третьего устройства глубокой проверки пакетов согласно варианту осуществления настоящего изобретения.
Описание вариантов осуществления
[0053] Для обеспечения большей понятности целей, технических решений и преимуществ вариантов осуществления настоящего изобретения, далее ясно описываются технические решения в вариантах осуществления настоящего изобретения со ссылкой на прилагаемые чертежи в вариантах осуществления настоящего изобретения. Очевидно, что описанные варианты осуществления представляют собой часть, а не все варианты осуществления настоящего изобретения. Все другие варианты осуществления, полученные специалистом в данной области техники на основе вариантов осуществления настоящего изобретения без творческих усилий, должны попадать в объем охраны настоящего изобретения.
[0054] Для того чтобы специалист в данной области техники лучше понимал технические решения настоящего изобретения, архитектура глубокой проверки пакетов (глубокой проверки пакетов, DPI для краткости) вариантов осуществления настоящего изобретения в общем описана первой, что показано на фиг. 2.
[0055] В вариантах осуществления настоящего изобретения функциональные модули для задач обработки DPI разделены на несколько уровней (типично на 4 уровня), где более высокий уровень обрабатывает более сложные и общие службы, и более низкий уровень имеет более простой и более специализированный алгоритм.
[0056] Эти уровни реализованы двумя микросхемами, которые являются общим процессором и соответственно сопроцессором DPI. Для того чтобы улучшить производительность ускорения аппаратного обеспечения как можно больше задач, связанных с DPI, могут быть выполнены сопроцессором DPI. В этом случае, общий процессор может выполнять более емкие с точки зрения арифметики задачи, поскольку общий процессор улучшен с точки зрения производительности для этого типа задач и сосредоточен на обработке дополнительных служб. Сопроцессор DPI является ответственным за реализацию логики уровня управления службой DPI, логического уровня подслужбы DPI и уровня механизма алгоритма. Сопроцессор DPI внутри дополнительно включает в себя несколько подсопроцессоров, где каждый подсопроцессор сконфигурирован с возможностью выполнения специфической подслужбы DPI; согласно различию в сложности подслужбы DPI подсопроцессоры могут быть в частности классифицированы на подсопроцессор высокого уровня (такой как подсопроцессор A на фиг. 2) и подсопроцессор низкого уровня (такой как подсопроцессоры B, C и D на фиг. 2), где подсопроцессор низкого уровня может быть в частности механизмом алгоритма, реализованным программным обеспечением или аппаратным обеспечением, и сконфигурированным с возможностью реализации специализированной функции посредством использования специфического алгоритма, таким как механизм согласования строк и механизм согласования регулярных выражений; и по сравнению с подсопроцессором низкого уровня подсопроцессор высокого уровня сконфигурирован с возможностью выполнения более общей подслужбы DPI, такой как анализ и идентификация протокола. Например, подсопроцессор высокого уровня может быть логической или физической сущностью, которая интегрирует несколько подсопроцессоров и/или функций механизма алгоритма, и которая сконфигурирована с возможностью реализации более усовершенствованной и общей подфункции DPI; более того, подсопроцессор высокого уровня может вызывать подсопроцессор низкого уровня для реализации требуемой функции, и подсопроцессоры одного и того же уровня также могут вызывать друг друга для выполнения функции совместно.
[0057] В частности, в сценарии применения, как показано на фиг. 3, задачи могут быть разделены на следующие уровни:
[0058] Уровень 1: Емкий в отношении арифметики уровень, который является ответственным за задачи, которые требуют большого объема арифметической обработки, в том числе: шифрование и дешифрование, кодирование и декодирование, и сложная обработка логики в логике службы DPI; другие службы не-DPI, такие как дополнительные службы; согласование политик; исполнение действия пакета; и подобное. В вариантах осуществления настоящего изобретения задача этого уровня завершается общим процессором.
[0059] Уровень 2: Уровень управления службой DPI, который исполняет посредством размещения ядра в сопроцессоре DPI логику управления службой DPI, включающую в себя связанную со службой DPI логику управления, такую как управление последовательностью выполнения над этапами механизма DPI, согласование условия и правила, перекрестная обработка пакета и сохранение промежуточного состояния. В вариантах осуществления настоящего изобретения задача этого уровня завершается ядром процессора (ядром) в сопроцессоре DPI.
[0060] Уровень 3: Логический уровень подслужбы DPI, который является ответственным за специфические в отношении DPI подслужбы, которые могут быть записаны постоянно, например, идентификация протокола прикладного уровня, глубокий анализ протокола и анализ особенности поведения пакета данных. В вариантах осуществления настоящего изобретения задача этого уровня завершается подсопроцессором высокого уровня в сопроцессоре DPI, например, подсопроцессором идентификации протокола для идентификации типа протокола уровня приложений пакета данных, подсопроцессором анализа протокола для выполнения глубокого анализа в отношении протокола и подобным.
[0061] Уровень 4: Уровень механизма алгоритма, который является ответственным за задачи механизма алгоритма, которые в частности оптимизированы для DPI, например, общее согласование регулярных выражений, арифметические операции с плавающей запятой, многорежимное согласование строк, однорежимное согласование строк, арифметика параметров поведения и подобное. Задача этого уровня завершается подсопроцессором низкого уровня в сопроцессоре DPI, например, механизмом согласования регулярных выражений, механизмом арифметических операций с плавающей запятой, механизмом согласования строк и подобным.
[0062] Следует специально отметить, что во внутренней части сопроцессора DPI, то есть с уровня 2 по уровень 4, внутренняя шина или модуль шины коммутации требуется для взаимодействий сообщения и данных между этими многоуровневыми модулями. Однако, взаимодействие внутри микросхемы выполняется между уровнем 1 и другими уровнями, то есть между общим процессором и сопроцессором DPI, что требует некоторых стандартизированных шин, которые уже являются доступными в промышленности, для выполнения взаимодействия, которые типично могут быть, например, шиной PCIE (средством взаимодействия периферийных компонентов типа экспресс). Тип шины в использовании зависит от внешнего интерфейса, обеспеченного общим процессором.
[0063] Более предпочтительно, в дополнение к многоуровневой конструктивной архитектуре в вариантах осуществления настоящего изобретения внешняя память может быть дополнительно сконфигурирована для сопроцессора DPI так, чтобы сохранять промежуточное состояние DPI посредством этого достигая лучшей масштабируемости и производительности. В этом случае, когда задача, для которой состояние должно быть сохранено, обрабатывается, упомянутая задача не должна выполняться общим процессором, и сопроцессор DPI может сохранить больше ресурсов его процессора. В дополнение, сконфигурированная внешняя память может дополнительно сохранять различные структуры данных из области особенностей и специфические в области алгоритмов структуры данных, которые должны быть использованы во время обработки DPI. В этом случае сопроцессор DPI может непосредственно и быстро считывать данные вместо считывания их посредством использования общего процессора через шину, что может позволять достигать более высокой производительности обработки.
[0064] Например, внешняя память A сохраняет структуру данных, специфическую для ядра программного обеспечения, включающую в себя таблицу потока и условие и правило, так что сопроцессор DPI может воспринимать состояние потока вместо выполнения обработки на основе пакета. Внешняя память B сохраняет структуру данных различных механизмов согласования и подсопроцессоров, такую как таблица состояний DFA (детерминированного автомата, детерминированного автомата), вспомогательные данные алгоритма однорежимного согласования и структура данных алгоритма подсопроцессора. Следует отметить, что внешняя память A и внешняя память B разделены лишь логически, тогда как обе могут быть расположены в одной и той же физической памяти.
[0065] На основе архитектуры DPI, описанной выше по тексту, вариант осуществления настоящего изобретения обеспечивает способ глубокой проверки пакетов. Фиг. 4 представляет собой блок-схему последовательности операций первого способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения. Как показано на фиг. 4 способ глубокой проверки пакетов, обеспеченный этим вариантом осуществления, может быть в частности применимым к процессу глубокой проверки пакетов, DPI сетевого устройства, где сетевое устройство может быть, например, маршрутизатором и шлюзом. Аппарат глубокой проверки пакетов может быть обеспечен в сетевом устройстве, где аппарат глубокой проверки пакетов включает в себя общий процессор и сопроцессор, и способ глубокой проверки пакетов, обеспеченный этим вариантом осуществления, выполняется посредством использования сопроцессора.
[0066] Способ глубокой проверки пакетов, обеспеченный этим вариантом осуществления, в частности включает в себя следующие этапы:
[0067] Этап A10: Модуль приемопередатчика сопроцессора принимает исходный пакет данных, отправленный общим процессором, и отправляет исходный пакет данных ядру процессора сопроцессора.
[0068] Этап A20: Ядро процессора вызывает по меньшей мере один подсопроцессор сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных, где результат анализа уровня приложений исходного пакета данных используется для указания информации уровня приложений пакета данных, например, типа протокола уровня приложений, службы, к которой принадлежит пакет данных, и подобного, что не перечислено один за другим в этом документе.
[0069] Этап A30: Ядро процессора отправляет результат анализа уровня приложений исходного пакета данных общему процессору так, что общий процессор обрабатывает исходный пакет данных согласно результату анализа уровня приложений.
[0070] В частности, сетевое устройство нуждается в реализации оптимизации сети и управлении трафиком приложения посредством глубокого анализа пакета данных в принятом потоке; сетевое устройство отправляет пакет данных общему процессору посредством использования сетевого адаптера, и общий процессор передает управление задачей, связанной с DPI, сопроцессору DPI для исполнения.
[0071] В этом варианте осуществления настоящего изобретения сопроцессор может быть реализован посредством использования FPGA (программируемой пользователем вентильной матрицы, программируемой пользователем вентильной матрицы) или ASIC (специализированной интегральной схемы, специализированной интегральной схемы); одно или более ядер процессора развернуты в сопроцессоре; модуль приемопередатчика и несколько подсопроцессоров дополнительно обеспечены в сопроцессоре; и подсопроцессор реализован посредством использования языка описания аппаратного обеспечения, где язык описания аппаратного обеспечения может быть VHDL (языком описания аппаратного обеспечения на-быстродействующих интегральных схемах, языком описания аппаратного обеспечения на-быстродействующих интегральных схемах) или Verilog HDL. Подсопроцессор может быть сконфигурирован с возможностью выполнения идентификации протокола прикладного уровня, анализа протокола и подобного в отношении пакета данных так, чтобы улучшать производительность обработки службы.
[0072] Общий процессор отправляет исходный пакет данных модулю приемопередатчика сопроцессора; затем модуль приемопередатчика доставляет исходный пакет данных ядру процессора в сопроцессоре; ядро процессора сопроцессора вызывает подсопроцессор для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа; ядро процессора возвращает результат анализа общему процессору; затем общий процессор обрабатывает исходный пакет данных согласно результату анализа, например выполняет подсчет статистики трафика, ускорение, ограничение трафика, блокировку и фильтрацию. Общий процессор может создавать таблицу потока согласно результату анализа, где таблица потока записывает несколько вхождений таблицы потока и инструкции обработки; общий процессор согласовывает принятый пакет данных с вхождениями таблицы потока так, чтобы определять поток, к которому принадлежит пакет данных, и соответственно выполняет обработку.
[0073] В способе глубокой проверки пакетов, обеспеченном этим вариантом осуществления, общий процессор и сопроцессор кооперируются для реализации DPI; подсопроцессор в сопроцессоре может быть разработан специально для службы DPI посредством разделения сопроцессора согласно более мелкому уровню модульности; и поэтому функция DPI выгружается с общего процессора, что сокращает занятость ресурса общего процессора так, что общий процессор может обрабатывать другие дополнительные службы. Более того, ядро процессора обеспечено в сопроцессоре для выполнения управления службой DPI и подсопроцессор работает при вызове ядра процессора, что сильно улучшает гибкость обработки службы; и взаимодействия между ядром процессора и подсопроцессором являются всеми взаимодействиями в микросхеме, что избегает частых взаимодействий между сопроцессором и общим процессором, посредством этого улучшая производительность DPI.
[0074] Фиг. 5 представляет собой блок-схему последовательности операций второго способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения. Как показано на фиг. 5, способ глубокой проверки пакетов согласно этому варианту осуществления настоящего изобретения включает в себя следующие этапы:
[0075] Этап A101: Модуль приемопередатчика сопроцессора принимает исходный пакет данных, отправленный общим процессором.
[0076] Этап A102: Выполнение обработки потока в отношении исходного пакета данных.
[0077] В частности, выполнение обработки потока в отношении исходного пакета данных может включать в себя: выполнение обработки повторной сборки фрагментированного IP-пакета и обработки переупорядочения следующего не по порядку TCP-пакета в отношении исходного пакета данных. Дополнительно выполнение обработки потока в отношении исходного пакета данных может дополнительно включать в себя: выполнение обработки последовательности обеспечения сообщения потока в отношении исходного пакета данных.
[0078] Этап A103: Отправка подвергнутого обработке потока пакета данных ядру процессора сопроцессора.
[0079] В реальном процессе применения число ядер процессора в сопроцессоре может быть установлено согласно требованиям службы DPI; то есть может быть одно или более ядер процессора. Когда по меньшей мере два ядра процессора обеспечены в сопроцессоре, отправка исходного пакета данных ядру процессора сопроцессора в частности включает в себя:
определение состояния нагрузки каждого ядра процессора из нескольких ядер процессора, которые выполняют обработку совместным методом, выбор одного ядра процессора из нескольких ядер процессора согласно политике балансировки нагрузки и отправку исходного пакета данных выбранному ядру процессора.
[0080] В частности, состояния нагрузки всех ядер процессора могут контролироваться и ядро процессора выбирается согласно состоянию нагрузки каждого ядра процессора в процессе доставки пакета данных, и упомянутый пакет данных отправляется ядру процессора, ресурсы обработки которого являются относительно незанятыми для обработки.
[0081] Этап A104: Ядро процессора вызывает по меньшей мере один подсопроцессор сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных.
[0082] В этом варианте осуществления ядро процессора может в частности вызывать по меньшей мере один подсопроцессор посредством использования модуля шины коммутации сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных.
[0083] В частности, модуль шины коммутации может быть модулем коммутации переключателя-арбитра (Switch-Arbiter) и связь между ядром процессора и различными подсопроцессорами, включенными в ядро процессора, реализована посредством использования модуля шины коммутации.
[0084] Этап A105: Ядро процессора отправляет результат анализа уровня приложений исходного пакета данных общему процессору так, что общий процессор обрабатывает исходный пакет данных согласно результату анализа уровня приложений.
[0085] В частности, в варианте осуществления модуль обработки сообщения результата может быть дополнительно обеспечен в сопроцессоре; ядро процессора может отправлять результат анализа уровня приложений исходного пакета данных модулю обработки сообщения результата; модуль обработки сообщения результата инкапсулирует результат анализа уровня приложений согласно предустановленному формату и отправляет инкапсулированный результат общему процессору, где предустановленный формат может быть, например, структурой TLV (тип-длина-значение), и структура TLV является общим форматом описания данных, имеющим тип, длину и значение.
[0086] В этом варианте осуществления внешняя память может быть обеспечена для сопроцессора для использования, где память может включать в себя первую память и вторую память; и первая память, и вторая память могут быть двумя физически независимыми устройствами памяти или первая память и вторая память также могут быть в одной и той же памяти физически, но разделяться логически. Первая память сконфигурирована с возможностью хранения структуры данных, необходимой сопроцессором, и вторая память сконфигурирована с возможностью хранения данных, используемых уровнем управления службой DPI, таких как данные промежуточного состояния потока, данные таблицы конечных точек, таблицы особенности порта и таблицы условия и правила.
[0087] Обычно правило используется для описания особенности поведения для предотвращения сетевой атаки, или особенности протокола для идентификации протокола прикладного уровня; таблица условия и правила во второй памяти используется для записи одного или более правил. Правило обычно включает в себя группу характеристик; эти характеристики используются для описания подробностей пакета данных, например, адреса источника/назначения пакета данных, порта источника/назначения, типа протокола передачи, некоторых специальных строк, включенных в нагрузку пакета данных и того, является ли пакет данных фрагментированным. Подсопроцессор анализирует пакет данных для получения результата согласования особенностей; ядро процессора согласовывает особенность в каждом правиле согласно результату согласования особенностей при определении типа протокола уровня приложений и если пакет данных удовлетворяет правилу, тип протокола уровня приложений, соответствующий правилу, является типом протокола уровня приложений пакета данных. Особенность может быть описана несколькими методами, например, как строка, регулярное выражение и особенность поведения; результат согласования особенностей может быть получен разными методами для разных особенностей.
[0088] В этом варианте осуществления согласно различию в сложности подслужбы DPI подсопроцессоры, включенные в сопроцессор, могут быть в частности классифицированы на подсопроцессор высокого уровня (такой как подсопроцессор идентификации протокола и подсопроцессор анализа протокола) для выполнения общей подслужбы DPI и подсопроцессор низкого уровня для реализации специализированной функции, например, механизма алгоритма (такого как механизм согласования строк и механизм согласования регулярных выражений), реализованного программным обеспечением или аппаратным обеспечением, где подсопроцессор высокого уровня может вызывать подсопроцессор низкого уровня для реализации требуемой функции, и подсопроцессоры одного и того же уровня также могут вызывать друг друга для выполнения функции совместно. На основе этого согласно различию в типе подсопроцессора конкретный метод реализации этапа A104 также является различным:
[0089] (1) Если ядро процессора вызывает подсопроцессор высокого уровня, например, подсопроцессор идентификации протокола для идентификации типа протокола уровня приложений пакета данных, в возможном методе реализации подсопроцессор идентификации протокола может выполнять поиск конечной точки в отношении исходного пакета данных при вызове ядра процессора так, чтобы получать результат поиска конечной точки и возвращать результат поиска конечной точки ядру процессора; ядро процессора определяет тип протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату поиска конечной точки и использует определенный тип протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных.
[0090] В частности, конечный автомат обеспечен в подсопроцессоре идентификации протокола. Если в таблице конечных точек может быть найдена одна или более записей для некоторых из IP-адреса назначения, IP-адреса источника, порта назначения и порта источника потока, в котором расположен пакет данных, тип протокола уровня приложений пакета данных может быть непосредственно получен из таблицы конечных точек без выполнения большего количества этапов. Например, записью таблицы конечных точек является: IP-адрес назначения: 103.224.1.9, порт назначения: 443, тип протокола уровня приложений: gmail_webmail. Если пакет данных потока отправлен в порт 443 IP-адреса назначения, результат обработки DPI может быть непосредственно точно определен, указывая, что тип протокола уровня приложений пакета данных потока является gmail_webmail.
[0091] В другом возможном методе реализации подсопроцессор идентификации протокола может вызывать подсопроцессор низкого уровня, например, механизм согласования строк при вызове процессора так, чтобы помогать выполнять соответствующую функцию; механизм согласования строк выполняет согласование строк в отношении исходного пакета данных при вызове подсопроцессора идентификации протокола так, чтобы получать результат согласования особенностей и возвращает результат согласования особенностей ядру процессора; и ядро процессора определяет тип протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату согласования особенностей и использует тип протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных.
[0092] В частности, механизм согласования строк может быть механизмом однорежимного согласования строк или механизмом многорежимного согласования строк. Механизм однорежимного согласования строк может использовать алгоритм однорежимного согласования строк и алгоритм однорежимного согласования строк может быть алгоритмом BM(Boyer Moore). Механизм многорежимного согласования строк может использовать алгоритм многорежимного согласования строк и алгоритм многорежимного согласования строк может быть алгоритмом AC (Aho-Corasick), алгоритмом Wu-Manber, алгоритмом ExB и подобным. В процессе многорежимного согласования строк одна или более особенностей строки может быть найдена посредством однократного сканирования целевой строки.
[0093] Когда многорежимное согласование строк должно быть выполнено в отношении пакета данных, подсопроцессор идентификации протокола вызывает механизм многорежимного согласования строк, механизм многорежимного согласования строк сканирует пакет данных и находит одну или более особенностей строки в пакете данных так, чтобы получать результат согласования особенностей и возвращает результат согласования особенностей ядру процессора; ядро процессора затем определяет тип протокола уровня приложений исходного пакета данных согласно результату согласования особенностей.
[0094] В этом варианте осуществления то, что механизм согласования строк выполняет согласование строк в отношении подвергнутого обработке потока пакета данных при вызове подсопроцессора идентификации протокола включает в себя:
то, что механизм согласования строк при вызове подсопроцессора идентификации протокола считывает таблицу состояний алгоритма согласования строк из первой памяти и выполняет согласование строк в отношении исходного пакета данных согласно таблице состояний алгоритма согласования строк.
[0095] В частности, первая память сохраняет таблицу состояний алгоритма согласования строк; когда механизм согласования строк является механизмом многорежимного согласования строк, таблица состояний алгоритма согласования строк является таблицей состояний алгоритма многорежимного согласования строк; и когда механизм согласования строк является механизмом однорежимного согласования строк, таблица состояний алгоритма согласования строк является таблицей состояний алгоритма однорежимного согласования строк. Например, алгоритм многорежимного согласования строк является алгоритмом AC; таблица состояний алгоритма многорежимного согласования строк является таблицей состояний AC; и механизм многорежимного согласования строк может реализовывать многорежимное согласование строк в отношении пакета данных согласно таблице состояний алгоритма многорежимного согласования строк. Механизм согласования строк не выполняет операцию считывания или записи непосредственно в отношении первой памяти; кэш (кэш) обеспечен в сопроцессоре и взаимодействие данных может быть реализовано между кэшем и первой памятью методом DMA (непосредственного доступа к памяти, непосредственного доступа к памяти). Обеспечение кэша может сильно сокращать количество осуществлений доступа к внешней памяти, когда большинство запросов доступа к памяти могут быть выполнены посредством использования кэша, что сильно улучшает производительность системы.
[0096] (2) Если ядро процессора вызывает подсопроцессор низкого уровня, например, механизм согласования регулярных выражений, используемый специально для выполнения согласования регулярных выражений, механизм согласования регулярных выражений выполняет согласование регулярных выражений в отношении исходного пакета данных при вызове ядра процессора так, чтобы получать результат согласования особенностей и возвращает результат согласования особенностей ядру процессора; и ядро процессора определяет тип протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату согласования особенностей, и использует определенный тип протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных.
[0097] В частности, механизм согласования регулярных выражений может использовать алгоритм согласования регулярных выражений, где алгоритм согласования регулярных выражений может быть алгоритмом NFA (недетерминированного конечного автомата, недетерминированного конечного автомата), алгоритмом DFA (детерминированного конечного автомата, детерминированного конечного автомата) или подобным; в процессе согласования регулярных выражений особенность не описывается посредством использования строки, а описывается посредством использования регулярного выражения.
[0098] Когда согласование регулярных выражений должно быть выполнено в отношении пакета данных, ядро процессора может непосредственно вызывать механизм согласования регулярных выражений; механизм согласования регулярных выражений ищет пакет данных для получения результата согласования особенностей и возвращает результат согласования особенностей ядру процессора; ядро процессора затем определяет тип протокола уровня приложений исходного пакета данных согласно результату согласования особенностей.
[0099] В этом варианте осуществления то, что механизм согласования регулярных выражений выполняет согласование регулярных выражений в отношении исходного пакета данных при вызове ядра процессора включает в себя:
то, что механизм согласования регулярных выражений при вызове ядра процессора считывает таблицу состояний алгоритма согласования регулярных выражений из первой памяти и выполняет согласование регулярных выражений в отношении исходного пакета данных согласно таблице состояний алгоритма согласования регулярных выражений.
[00100] В частности, первая память сохраняет таблицу состояний алгоритма согласования регулярных выражений; например, когда алгоритм согласования регулярных выражений является алгоритмом DFA, таблица состояний алгоритма согласования регулярных выражений является таблицей состояний DFA и механизм согласования регулярных выражений может реализовывать согласование регулярных выражений в отношении пакета данных согласно таблице состояний алгоритма согласования регулярных выражений.
[00101] В другом варианте осуществления настоящего изобретения ядро процессора может дополнительно получать тип протокола уровня приложений исходного пакета данных посредством вызова подсопроцессора статистики особенности поведения. В частности, подсопроцессор статистики особенности поведения выполняет согласование особенностей поведения в отношении исходного пакета данных при вызове ядра процессора так, чтобы получать результат согласования особенностей и возвращает результат согласования особенностей ядру процессора; и ядро процессора определяет тип протокола уровня приложений согласно результату согласования особенностей.
[00102] В частности, модель особенности поведения может быть создана заранее для различных протоколов приложения; когда согласование особенностей поведения должно быть выполнено в отношении пакета данных, подсопроцессор статистики особенности поведения согласовывает особенность поведения в пакете данных для получения результата согласования особенностей и возвращает результат согласования особенностей ядру процессора; ядро процессора затем определяет тип протокола уровня приложений исходного пакета данных согласно результату согласования особенностей. В этом варианте осуществления то, что ядро процессора определяет тип протокола уровня приложений исходного пакета данных согласно результату согласования особенностей включает в себя:
считывание ядром процессора таблицы условия и правила из второй памяти посредством использования кэша, и определение типа протокола уровня приложений исходного пакета данных согласно результату согласования особенностей и таблице условия и правила.
[00103] В частности, вторая память сохраняет таблицу условия и правила; таблица условия и правила сохраняет соответствие между правилом и типом протокола уровня приложений; ядро процессора согласовывает результат согласования особенностей с характеристикой в правиле так, чтобы определять, удовлетворяет ли результат согласования особенностей правилу, и если правило удовлетворено, может определять тип протокола уровня приложений пакета данных. Ядро процессора непосредственно не выполняет операцию считывания или записи в отношении второй памяти; кэш (кэш)обеспечен в сопроцессоре и взаимодействие данных может быть реализовано между кэшем и второй памятью методом DMA.
[00104] В другом варианте осуществления подсопроцессор анализа протокола дополнительно обеспечен в сопроцессоре, где конечный автомат может быть обеспечен в подсопроцессоре анализа протокола. После того как тип протокола уровня приложений, переносимый пакетом данных, распознан посредством выполнения идентификации протокола прикладного уровня в отношении пакета данных, если информация в пакете данных должна быть дополнительно распознана для содействия обработке или согласования правил в отношении различных дополнительных служб, глубокий анализ может быть дополнительно выполнен в отношении пакета данных согласно формату протокола прикладного уровня для извлечения связанной информации так, чтобы получать результат анализа.
[00105] В частности, то, что ядро процессора вызывает по меньшей мере один подсопроцессор сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений исходного пакета данных, в частности включает в себя:
вызов ядром процессора подсопроцессора идентификации протокола, включенного в сопроцессор, для идентификации протокола уровня приложений исходного пакета данных так, чтобы получать тип протокола уровня приложений исходного пакета данных; и
вызов ядром процессора подсопроцессора анализа протокола, включенного в сопроцессор, для выполнения анализа протокола в отношении исходного пакета данных так, чтобы получать результат анализа, и использование результата анализа и типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных.
[00106] В этом варианте осуществления механизм согласования URL может быть дополнительно обеспечен в сопроцессоре; после того, как ядро процессора вызывает подсопроцессор идентификации протокола сопроцессора для идентификации протокола прикладного уровня исходного пакета данных, если ядро процессора определяет, что тип протокола уровня приложений является протоколом передачи гипертекстовых файлов, вызывается механизм согласования URL, унифицированного указателя ресурса, сопроцессора; и механизм согласования URL выполняет согласование URL в отношении исходного пакета данных при вызове ядра процессора так, чтобы получать результат согласования URL и возвращает результат согласования URL ядру процессора, где результат обработки дополнительно включает в себя результат согласования URL.
[00107] Например, если ядро процессора идентифицирует, что тип протокола уровня приложений потока, соответствующего пакету данных, является протоколом передачи гипертекстовых файлов (HTTP), механизм согласования URL может быть вызван для дополнительного анализа пакета данных. Механизм согласования URL может выполнять анализ для получения значения URL пакета данных так, чтобы получать результат согласования URL. Сопроцессор использует результат согласования URL в качестве результата обработки и отправляет результат обработки общему процессору, и общий процессор может выполнять связанную с URL работу управления сетью согласно результату согласования URL.
[00108] В реальном применении общий процессор и сопроцессор аппарата глубокой проверки пакетов реализуют службу DPI совместным методом, где функциональные модули в сопроцессоре могут быть обеспечены согласно реальному требованию службы DPI; вышеприведенный вариант осуществления обеспечивает несколько методов реализации функциональных модулей, но настоящее изобретение этим не ограничивается. Более того, процедуры обработки также могут быть различными для различных служб DPI. Работа согласования особенностей также может быть завершена посредством использования ядра процессора сопроцессора для получения результата согласования особенностей, и затем ядро процессора определяет тип протокола уровня приложений согласно результату согласования особенностей. Например, одной из особенностей протокола HTTP может быть то, что номер порта TCP равен 80; процесс согласования этого порта может быть завершен ядром процессора сопроцессора, поскольку требуется не так много вычислительных ресурсов.
[00109] В способе глубокой проверки пакетов, обеспеченном этим вариантом осуществления, общий процессор и сопроцессор кооперируются для реализации DPI; подсопроцессор в сопроцессоре может быть разработан специально для службы DPI посредством разделения сопроцессора согласно более мелкому уровню модульности; и поэтому функция DPI выгружается с общего процессора, что сокращает занятость ресурса общего процессора так, что общий процессор может обрабатывать другие дополнительные службы. Более того, ядро процессора обеспечено в сопроцессоре для выполнения управления службой DPI и подсопроцессор работает при вызове ядра процессора, что сильно улучшает гибкость обработки службы; и внешняя память сконфигурирована для сопроцессора DPI с возможностью хранения промежуточного состояния DPI, посредством этого достигая лучшей масштабируемости и производительности. Поскольку, когда задача, для которой состояние должно быть сохранено, обрабатывается, упомянутая задача не должна выполняться общим процессором, и сопроцессор DPI может сохранить больше ресурсов его процессора. В дополнение, внешняя память сконфигурирована для сопроцессора DPI с возможностью хранения различных структур данных из области особенностей и специфических в области алгоритмов структур данных, которые должны быть использованы во время обработки DPI. В этом случае сопроцессор DPI может непосредственно и быстро считывать данные вместо считывания их посредством использования общего процессора через шину, что может дополнительно улучшать производительность обработки.
[00110] Далее описывается специфический процесс выполнения глубокой проверки пакетов на основе архитектуры DPI согласно вариантам осуществления настоящего изобретения со ссылкой на специфические примеры. Фиг. 6A и 6B представляют собой блок-схему последовательности операций способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения. Далее описывается способ глубокой проверки пакетов, обеспеченный этим вариантом осуществления, со ссылкой на фиг. 6A и 6B.
[00111] Этап 1а: Общий процессор отправляет пакет данных модулю приемопередатчика сопроцессора.
[00112] Этап 2а: Модуль приемопередатчика отправляет пакет данных ядру процессора.
[00113] Этап 3а: Ядро процессора вызывает подсопроцессор идентификации протокола и отправляет пакет данных подсопроцессору идентификации протокола посредством использования модуля шины коммутации; и подсопроцессор идентификации протокола выполняет поиск конечной точки в отношении пакета данных.
[00114] Этап 4a: Подсопроцессор идентификации протокола определяет, является ли поиск успешным; и если да, выполняет этап 5a; если нет, выполняет этап 6a.
[00115] Этап 5a: Подсопроцессор идентификации протокола отправляет полученный результат поиска конечной точки ядру процессора посредством использования модуля шины коммутации и выполняет этап 15a.
[00116] Этап 6a: Подсопроцессор идентификации протокола обеспечивает обратной связью результат неудачи поиска ядру процессора посредством использования модуля шины коммутации.
[00117] Этап 7a: Подсопроцессор идентификации протокола вызывает механизм многорежимного согласования строк и отправляет пакет данных механизму многорежимного согласования строк посредством использования модуля шины коммутации; и механизм многорежимного согласования строк выполняет многорежимное согласование строк в отношении пакета данных.
[00118] Этап 8a: Механизм многорежимного согласования строк определяет, является ли согласование успешным; и если да, выполняет этап 9a; если нет, выполняет этап 10a.
[00119] Этап 9a: Механизм многорежимного согласования строк отправляет полученный результат согласования особенностей ядру процессора посредством использования модуля шины коммутации и выполняет этап 15a.
[00120] Этап 10a: Механизм многорежимного согласования строк обеспечивает обратной связью результат неудачи согласования ядру процессора посредством использования модуля шины коммутации.
[00121] Этап 11а: Ядро процессора вызывает механизм согласования регулярных выражений и отправляет пакет данных механизму согласования регулярных выражений посредством использования модуля шины коммутации; и механизм согласования регулярных выражений выполняет согласование регулярных выражений в отношении пакета данных.
[00122] Этап 12a: Механизм согласования регулярных выражений определяет, является ли согласование успешным; и если да, выполняет этап 13a; если нет, выполняет этап 14a.
[00123] Этап 13a: Механизм согласования регулярных выражений отправляет полученный результат согласования особенностей ядру процессора посредством использования модуля шины коммутации и выполняет этап 15a.
[00124] Этап 14a: Механизм согласования регулярных выражений обеспечивает обратной связью результат неудачи согласования ядру процессора посредством использования модуля шины коммутации, и ядро процессора отправляет результат неудачи согласования в качестве результата обработки модулю обработки сообщения результата и выполняет этап 20a.
[00125] Этап 15a: Ядро процессора определяет тип протокола уровня приложений согласно результату согласования особенностей.
[00126] Этап 16a: Ядро процессора определяет, должен ли быть выполнен глубокий анализ в отношении пакета данных; и если да, выполняет этап 17а; если нет, выполняет этап 19a.
[00127] Этап 17a: Ядро процессора вызывает подсопроцессор анализа протокола и отправляет пакет данных подсопроцессору анализа протокола посредством использования модуля шины коммутации; и подсопроцессор анализа протокола выполняет анализ протокола в отношении пакета данных для получения результата анализа и отправляет результат анализа ядру процессора посредством использования модуля шины коммутации.
[00128] Этап 18a: Ядро процессора отправляет тип протокола уровня приложений и результат анализа в качестве результата обработки модулю обработки сообщения результата и выполняет этап 20a.
[00129] Этап 19a: Ядро процессора отправляет тип протокола уровня приложений в качестве результата обработки модулю обработки сообщения результата.
[00130] Этап 20a: Модуль обработки сообщения результата инкапсулирует результат обработки и затем отправляет его общему процессору.
[00131] Далее описывается специфический процесс выполнения глубокой проверки пакетов на основе архитектуры DPI согласно вариантам осуществления настоящего изобретения со ссылкой другие на специфические примеры. Фиг. 7A и 7B представляют собой блок-схему последовательности операций другого способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения. Далее описывается способ глубокой проверки пакетов, обеспеченный этим вариантом осуществления, со ссылкой на фиг. 7A и 7B.
[00132] Этап 1b: Общий процессор отправляет пакет данных модулю приемопередатчика сопроцессора.
[00133] Этап 2b: Модуль приемопередатчика отправляет пакет данных ядру процессора.
[00134] Этап 3b: Ядро процессора вызывает механизм многорежимного согласования строк и отправляет пакет данных механизму многорежимного согласования строк посредством использования модуля шины коммутации; и механизм многорежимного согласования строк выполняет многорежимное согласование строк в отношении пакета данных.
[00135] Этап 4b: Механизм многорежимного согласования строк определяет, является ли согласование успешным; и если да, выполняет этап 5b; если нет, выполняет этап 6b.
[00136] Этап 5b: Механизм многорежимного согласования строк отправляет полученный результат согласования особенностей ядру процессора посредством использования модуля шины коммутации и выполняет этап 15b.
[00137] Этап 6b: Механизм многорежимного согласования строк обеспечивает обратной связью результат неудачи согласования ядру процессора посредством использования модуля шины коммутации.
[00138] Этап 7b: Ядро процессора вызывает механизм согласования регулярных выражений и отправляет пакет данных механизму согласования регулярных выражений посредством использования модуля шины коммутации; и механизм согласования регулярных выражений выполняет согласование регулярных выражений в отношении пакета данных.
[00139] Этап 8b: Механизм согласования регулярных выражений определяет, является ли согласование успешным; и если да, выполняет этап 9b; если нет, выполняет этап 10b.
[00140] Этап 9b: Механизм согласования регулярных выражений отправляет полученный результат согласования особенностей ядру процессора посредством использования модуля шины коммутации и выполняет этап 15b.
[00141] Этап 10b: Механизм согласования регулярных выражений обеспечивает обратной связью результат неудачи согласования ядру процессора посредством использования модуля шины коммутации.
[00142] Этап 11b: Ядро процессора вызывает подсопроцессор статистики особенности поведения и отправляет пакет данных подсопроцессору статистики особенности поведения посредством использования модуля шины коммутации; и подсопроцессор статистики особенности поведения выполняет согласование особенностей поведения в отношении пакета данных.
[00143] Этап 12b: Подсопроцессор статистики особенности поведения определяет, является ли согласование успешным; и если да, выполняет этап 13b; если нет, выполняет этап 14b.
[00144] Этап 13b: Подсопроцессор статистики особенности поведения отправляет полученный результат согласования особенностей ядру процессора посредством использования модуля шины коммутации и выполняет этап 15b.
[00145] Этап 14b: Подсопроцессор статистики особенности поведения обеспечивает обратной связью результат неудачи согласования ядру процессора посредством использования модуля шины коммутации, и ядро процессора отправляет результат неудачи согласования в качестве результата обработки модулю обработки сообщения результата, и выполняет этап 20b.
[00146] Этап 15b: Ядро процессора определяет тип протокола уровня приложений согласно результату согласования особенностей.
[00147] Этап 16b: Если тип протокола уровня приложений является HTTP, ядро процессора определяет, должно ли быть получено значение URL пакета данных; и если да, выполняет этап 17b; если нет, выполняет этап 19b.
[00148] Этап 17b: Ядро процессора вызывает механизм согласования URL и отправляет пакет данных механизму согласования URL посредством использования модуля шины коммутации; и механизм согласования URL выполняет анализ для получения значения URL пакета данных так, чтобы получать результат согласования URL, и отправляет результат согласования URL ядру процессора посредством использования модуля шины коммутации.
[00149] Этап 18b: Ядро процессора отправляет тип протокола уровня приложений и результат согласования URL в качестве результата обработки модулю обработки сообщения результата.
[00150] Этап 19b: Ядро процессора отправляет тип протокола уровня приложений в качестве результата обработки модулю обработки сообщения результата.
[00151] Этап 20b: Модуль обработки сообщения результата инкапсулирует результат обработки и затем отправляет его общему процессору.
[00152] Фиг. 8 представляет собой блок-схему последовательности операций другого способа глубокой проверки пакетов согласно варианту осуществления настоящего изобретения. Как показано на фиг. 8, способ глубокой проверки пакетов, обеспеченный этим вариантом осуществления может быть реализован совместно со способом, обеспеченным вариантом осуществления, показанным на фиг. 4, где специфический процесс реализации повторно подробно не описывается в этом документе. Способ глубокой проверки пакетов, обеспеченный этим вариантом осуществления, выполняется посредством использования общего процессора; упомянутый способ в частности включает в себя следующие этапы:
[00153] Этап B10: Общий процессор отправляет исходный пакет данных сопроцессору.
[00154] Этап B20: Общий процессор принимает результат анализа уровня приложений исходного пакета данных и отправленного сопроцессором, где результат анализа уровня приложений получается ядром процессора сопроцессора посредством вызова по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных, и результат анализа уровня приложений используется для указания информации уровня приложений исходного пакета данных, например, типа протокола уровня приложений, службы, к которой принадлежит исходный пакет данных, и подобного, что повторно подробно не описывается в этом документе.
[00155] Этап B30: Общий процессор обрабатывает исходный пакет данных, по меньшей мере, согласно результату анализа уровня приложений.
[00156] В частности, когда сетевое устройство должно реализовывать оптимизацию сети и управление трафиком приложения глубоко анализируя пакет данных в принятом потоке, сетевой адаптер сетевого устройства отправляет поток общему процессору. Общий процессор отправляет исходный пакет данных сопроцессору; сопроцессор выполняет анализ уровня приложений в отношении исходного пакета данных так, чтобы получать результат анализа уровня приложений, где результат анализа уровня приложений может включать в себя тип протокола уровня приложений, результат глубокого анализа протокола, результат согласования URL и подобное, и возвращает результат анализа уровня приложений общему процессору; общий процессор обрабатывает исходный пакет данных согласно результату анализа уровня приложений, например выполняет подсчет статистики трафика, ускорение, ограничение трафика, блокировку и фильтрацию.
[00157] В способе глубокой проверки пакетов, обеспеченном этим вариантом осуществления, общий процессор отправляет исходный пакет данных сопроцессору, принимает результат обработки, отправленный сопроцессором, и обрабатывает исходный пакет данных согласно результату обработки. Общий процессор и сопроцессор кооперируются для реализации DPI; и подсопроцессор в сопроцессоре может быть разработан специально для службы DPI для выгрузки функции DPI с общего процессора, что сокращает занятость ресурса общего процессора так, что общий процессор может обрабатывать другие дополнительные службы. Более того, ядро процессора обеспечено в сопроцессоре и подсопроцессор работает при вызове ядра процессора, взаимодействие между ядром процессора и подсопроцессором также может быть взаимодействием в микросхеме, что избегает частых взаимодействий между сопроцессором и общим процессором, посредством этого увеличивая рабочую скорость.
[00158] В варианте осуществления то, что общий процессор обрабатывает исходный пакет данных согласно результату анализа уровня приложений в частности включает в себя:
если общий процессор определяет согласно результату анализа уровня приложений исходного пакета данных, что исходный пакет данных является зашифрованным пакетом данных, дешифрование исходного пакета данных.
[00159] В частности, общий процессор отправляет исходный пакет данных сопроцессору; при идентификации, что исходный пакет данных зашифрован, сопроцессор возвращает результат обработки для указания, что исходный пакет данных является зашифрованным пакетом данных общему процессору; соответственно, общий процессор может дешифровать исходный пакет данных и затем отправить дешифрованный исходный пакет данных сопроцессору, где ссылка может быть сделана на описание вышеприведенного варианта осуществления для процесса, в котором сопроцессор обрабатывает исходный пакет данных.
[00160] В реальном применении реализация операции, такой как обработка дешифрования, является комплексной; задача, которую сопроцессор не может выполнить, может быть реализована общим процессором. Разумеется, когда модуль дешифрования обеспечен в сопроцессоре, сопроцессор может дешифровать исходный пакет данных самостоятельно.
[00161] В другом варианте осуществления то, что общий процессор обрабатывает исходный пакет данных согласно результату анализа уровня приложений может включать в себя:
если общий процессор определяет согласно результату анализа уровня приложений исходного пакета данных тип службы потока, к которому принадлежит исходный пакет данных, выполнение подсчета статистики трафика, назначения цены или ускорения передачи в отношении потока согласно типу службы.
[00162] В частности, оператор хочет назначить цену за трафик VoIP (систему телефонии по протоколу передачи данных в Интернете); общий процессор может, при определении, согласно результату анализа уровня приложений исходного пакета данных, что поток данных, в котором расположен исходный пакет данных, является потоком данных VoIP-телефонии, использующей протокол Skype, выполнить подсчет статистики трафика в отношении потока, посредством этого реализуя назначение цены за службу VoIP-телефонии.
[00163] Когда пользователь хочет выполнить ускорение трафика для некоторых приложений, например онлайновой игры, общий процессор выполняет ускорение в отношении потока при определении, согласно результату анализа уровня приложений, что поток, к которому принадлежит исходный пакет данных, используется для службы онлайновой игры так, чтобы обеспечить некоторую скорость передачи потока.
[00164] Когда пользователь хочет заблокировать некоторые приложения, общий процессор может заблокировать поток при определении, согласно результату анализа уровня приложений, что поток, к которому принадлежит исходный пакет данных, используется для специфической программы приложения.
[00165] Предпочтительно в другом варианте осуществления результат анализа уровня приложений исходного пакета данных включает в себя тип протокола уровня приложений исходного пакета данных и результат согласования URL, где тип протокола уровня приложений исходного пакета данных может быть получен ядром процессора сопроцессора посредством вызова подсопроцессора идентификации протокола сопроцессора для выполнения идентификации протокола в отношении исходного пакета данных; дополнительно, когда осуществляется определение, что тип протокола уровня приложений исходного пакета данных является протоколом передачи гипертекстовых файлов HTTP, ядро процессора сопроцессора может дополнительно вызывать механизм согласования унифицированного указателя ресурса, URL, сопроцессора для выполнения согласования URL в отношении исходного пакета данных так, чтобы получать результат согласования URL, и отправки результата согласования URL общему процессору; соответственно, после приема результата согласования URL, отправленного сопроцессором, общий процессор определяет согласно типу протокола уровня приложений и результату согласования URL, используется ли поток, к которому принадлежит исходный пакет данных, для осуществления доступа к ограниченному веб-сайту, и если поток, к которому принадлежит исходный пакет данных, используется для осуществления доступа к ограниченному веб-сайту, блокирует поток.
[00166] В частности, пользователь хочет обеспечить возможность службы безопасного доступа к Интернету для предотвращения осуществления подростком доступа к опасному веб-сайту; общий процессор блокирует поток при определении, согласно типу протокола уровня приложений, который является HTTP в результате обработки, и согласно результату согласования URL, что доступ к веб-сайту, на который направляет URL, ограничен так, чтобы предотвратить осуществление подростком доступа к опасному веб-сайту.
[00167] Фиг. 9 представляет собой схематическое структурное представление сопроцессора согласно варианту осуществления настоящего изобретения. Как показано на фиг. 9, сопроцессор 91, обеспеченный этим вариантом осуществления, может в частности реализовывать этапы способа глубокой проверки пакетов, который обеспечен каким-либо вариантом осуществления настоящего изобретения и который является применимым к сопроцессору, где специфический процесс реализации повторно подробно не описывается в этом документе. Сопроцессор 91, обеспеченный этим вариантом осуществления в частности включает в себя модуль 11 приемопередатчика, ядро 12 процессора и подсопроцессор 13.
[00168] Модуль 11 приемопередатчика сконфигурирован с возможностью приема исходного пакета данных, отправленного общим процессором, и отправки исходного пакета данных ядру 12 процессора.
[00169] Ядро 12 процессора сконфигурировано с возможностью вызова подсопроцессора 13 сопроцессора 91 для выполнения идентификации протокола прикладного уровня в отношении исходного пакета данных так, чтобы генерировать результат обработки, и отправки результата обработки общему процессору.
[00170] Подсопроцессор 13 сконфигурирован с возможностью выполнения идентификации протокола прикладного уровня в отношении исходного пакета данных при вызове ядра 12 процессора.
[00171] Сопроцессор 91 может быть реализован посредством использования FPGA или ASIC; одно или более ядер 12 процессора развернуты в сопроцессоре 91; модуль 11 приемопередатчика и подсопроцессор 13 дополнительно обеспечены в сопроцессоре 91; и подсопроцессор 13 реализован посредством использования языка описания аппаратного обеспечения, где язык описания аппаратного обеспечения может быть VHDL или Verilog HDL. Подсопроцессор 13 в частности сконфигурирован с возможностью выполнения идентификации протокола прикладного уровня в отношении пакета данных, посредством этого улучшая эффект обработки службы.
[00172] В этом варианте осуществления сопроцессор 91 может дополнительно включать в себя модуль 14 шины коммутации. Соответственно, ядро 12 процессора может вызывать подсопроцессор 13 посредством использования модуля 14 шины коммутации сопроцессора 91.
[00173] Дополнительно первая память 15 и вторая память 16 могут дополнительно быть сконфигурированы для функциональных модулей сопроцессора 91, где первая память сохраняет структуру данных, специфическую для ядра программного обеспечения, включающую в себя таблицу потока и условие и правило так, что сопроцессор DPI может воспринимать состояние потока вместо выполнения обработки на основе пакета. Вторая память сохраняет структуру данных различных механизмов согласования и подсопроцессоров, такую как таблица состояний DFA, вспомогательные данные алгоритма однорежимного согласования и структура данных алгоритма подсопроцессора. Следует отметить, что первая память и вторая память разделены лишь логически, тогда как обе могут быть расположены в одной и той же физической памяти.
[00174] В сопроцессоре 91, обеспеченном этим вариантом осуществления, модуль 11 приемопередатчика принимает исходный пакет данных, отправленный общим процессором, и отправляет исходный пакет данных ядру 12 процессора сопроцессора 91; ядро 12 процессора вызывает подсопроцессор 13 сопроцессора 91 для выполнения идентификации протокола уровня приложений в отношении исходного пакета данных так, чтобы генерировать результат обработки; и ядро 12 процессора отправляет результат обработки общему процессору так, что общий процессор обрабатывает исходный пакет данных согласно результату обработки. Общий процессор и сопроцессор 91 кооперируются для реализации DPI и подсопроцессор 13 в сопроцессоре 91 может быть разработан специально для службы DPI для выгрузки функции DPI с общего процессора, что сокращает занятость ресурса общего процессора так, что общий процессор может обрабатывать другие дополнительные службы. Более того, ядро 12 процессора обеспечено в сопроцессоре 91 и подсопроцессор 13 работает при вызове ядра 12 процессора так, что информация о промежуточном состоянии может быть сохранена и взаимодействия между ядром 12 процессора и подсопроцессором 13 являются всеми взаимодействиями в микросхеме, что избегает частых взаимодействий между сопроцессором 91 и общим процессором, посредством этого увеличивая рабочую скорость.
[00175] Фиг. 10 представляет собой схематическое структурное представление другого сопроцессора 10 согласно варианту осуществления настоящего изобретения. Как показано на фиг. 10, в этом варианте осуществления модуль 11 приемопередатчика может включать в себя блок 111 приема, блок 112 обработки потока и блок 113 распределения. Блок 111 приема сконфигурирован с возможностью приема исходного пакета данных, отправленного общим процессором; блок 112 обработки потока сконфигурирован с возможностью выполнения обработки потока в отношении исходного пакета данных; и блок 113 распределения сконфигурирован с возможностью отправки подвергнутого обработке потока пакета данных ядру 12 процессора; в частности, блок 112 обработки потока в частности сконфигурирован с возможностью выполнения обработки повторной сборки фрагментированного IP-пакета и обработки переупорядочения следующего не по порядку TCP-пакета в отношении исходного пакета данных; когда сопроцессор 10 включает в себя несколько ядер процессора, блок 113 распределения в частности сконфигурирован с возможностью определения состояния нагрузки каждого ядра процессора из по меньшей мере двух ядер процессора, выбора одного ядра процессора из по меньшей мере двух ядер процессора согласно состоянию нагрузки каждого из ядер процессора и отправки подвергнутого обработке потока пакета данных выбранному ядру процессора; соответственно, выбранное ядро процессора сконфигурировано с возможностью вызова подсопроцессора 13 для выполнения анализа уровня приложений в отношении подвергнутого обработке потока пакета данных, например, идентификации протокола прикладного уровня.
[00176] В этом варианте осуществления сопроцессор 10 может дополнительно включать в себя модуль 14 шины коммутации. Соответственно ядро 12 процессора в частности вызывает подсопроцессор 13 посредством использования модуля 14 шины коммутации сопроцессора 10.
[00177] В варианте осуществления подсопроцессор 13 может быть подсопроцессором 131 поиска конечной точки; в этом случае подсопроцессор 13 в частности сконфигурирован с возможностью выполнения поиска конечной точки в отношении исходного пакета данных при вызове ядра 12 процессора так, чтобы получать результат поиска конечной точки и возврата результата поиска конечной точки ядру 12 процессора. Ядро 12 процессора в частности сконфигурировано с возможностью определения типа протокола уровня приложений исходного пакета данных согласно результату согласования особенностей и использования определенного типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных, и отправки результата анализа уровня приложений общему процессору.
[00178] В другом варианте осуществления, как показано на фиг. 10, подсопроцессор 13 включает в себя подсопроцессор идентификации протокола и механизм 132 согласования строк. Подсопроцессор идентификации протокола сконфигурирован с возможностью вызова механизма 132 согласования строк после того, как ядро процессора вызывает подсопроцессор 13; и механизм 132 согласования строк сконфигурирован с возможностью выполнения согласование строк в отношении исходного пакета данных при вызове подсопроцессора идентификации протокола так, чтобы получать результат согласования особенностей, и возврата результата согласования особенностей ядру процессора.
[00179] Соответственно, ядро 12 процессора в частности сконфигурировано с возможностью определения типа протокола уровня приложений исходного пакета данных, по меньшей мере, согласно результату согласования особенностей и использования определенного типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных, и отправки результата анализа уровня приложений общему процессору.
[00180] В другом варианте осуществления подсопроцессор 13 также может быть механизмом согласования регулярных выражений. Механизм согласования регулярных выражений сконфигурирован с возможностью выполнения согласования регулярных выражений в отношении исходного пакета данных при вызове ядра 12 процессора так, чтобы получать результат согласования особенностей, и возврата результата согласования особенностей ядру 12 процессора. Ядро 12 процессора в частности сконфигурировано с возможностью определения типа протокола уровня приложений исходного пакета данных согласно результату согласования особенностей и использования определенного типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных, и отправки результата анализа уровня приложений общему процессору.
[00181] Предпочтительно, подсопроцессор 13 может дополнительно включать в себя подсопроцессор 133 статистики особенности поведения, сконфигурированный с возможностью выполнения согласования особенностей поведения в отношении исходного пакета данных при вызове ядра 12 процессора так, чтобы получать результат согласования особенностей, и возврата результата согласования особенностей ядру 12 процессора. Ядро 12 процессора в частности сконфигурировано с возможностью определения типа протокола уровня приложений исходного пакета данных согласно результату согласования особенностей и использования определенного типа протокола уровня приложений в качестве результата анализа уровня приложений исходного пакета данных, и отправки результата анализа уровня приложений общему процессору.
[00182] Предпочтительно, в этом варианте осуществления сопроцессор 10 может дополнительно включать в себя подсопроцессор 15 анализа протокола, сконфигурированный с возможностью выполнения анализа протокола в отношении исходного пакета данных при вызове ядра 12 процессора так, чтобы получать результат анализа, и возврата результата анализа ядру 12 процессора; и соответственно, ядро 12 процессора в частности сконфигурировано с возможностью отправки типа протокола уровня приложений исходного пакета данных и результата анализа, который получается подсопроцессором 15 анализа протокола, в качестве результата анализа уровня приложений исходного пакета данных общему процессору.
[00183] Предпочтительно, в этом варианте осуществления сопроцессор 10 может дополнительно включать в себя механизм 16 согласования унифицированного указателя ресурса, URL,, сконфигурированный с возможностью выполнения согласования URL в отношении исходного пакета данных при вызове ядра 12 процессора так, чтобы получать результат согласования URL, и возврата результата согласования URL ядру 12 процессора; соответственно, ядро 12 процессора в частности сконфигурировано с возможностью отправки типа протокола уровня приложений исходного пакета данных и результата согласования URL в качестве результата анализа уровня приложений исходного пакета данных общему процессору.
[00184] Предпочтительно, в этом варианте осуществления сопроцессор 10 дополнительно включает в себя модуль 17 обработки сообщения результата. Ядро 12 процессора в частности сконфигурировано с возможностью отправки результата анализа уровня приложений исходного пакета данных модулю 17 обработки сообщения результата; и модуль 17 обработки сообщения результата сконфигурирован с возможностью инкапсуляции результата анализа уровня приложений в предустановленный формат, и отправки инкапсулированного результата анализа уровня приложений общему процессору.
[00185] В реальном применении общий процессор и сопроцессор 91 устройства DPI реализуют службу DPI совместным методом, где функциональные модули в сопроцессоре 91 могут быть обеспечены согласно реальному требованию службы DPI и логика ядра 12 процессора также может быть программируемой согласно реальному требованию службы DPI. Вышеприведенный вариант осуществления обеспечивает несколько методов реализации функциональных модулей, но настоящее изобретение этим не ограничивается.
[00186] Устройство DPI может быть разделено на несколько уровней, например, на четыре уровня сверху вниз: емкий в отношении арифметики уровень, уровень управления службой DPI, уровень логики подслужбы DPI и уровень механизма алгоритма. Более высокий уровень обрабатывает более сложные и общие службы, и более низкий уровень имеет более простой и более специализированный алгоритм. Для того, чтобы улучшить производительность ускорения аппаратного обеспечения как можно больше задач, связанных с DPI, должны быть выполнены сопроцессором. В этом случае, общий процессор может выполнять более емкие с точки зрения арифметики задачи. Сопроцессор является ответственным за реализацию логики уровня управления службой DPI, логического уровня подслужбы DPI и уровня механизма алгоритма.
[00187] В принципе, модуль высокого уровня вызывает модуль низкого уровня для реализации требуемой функции. Разумеется, модули одного и того же уровня также могут вызывать друг друга для выполнения функции совместно. Уровни подробно описываются следующим образом:
[00188] Уровень 1: Емкий в отношении арифметики уровень, который является ответственным за задачу, которая требует большого объема арифметической обработки, в том числе: шифрование и дешифрование, кодирование и декодирование, и сложная обработка логики в логике службы DPI; и другие службы не-DPI, такие как дополнительные службы; согласование политик; исполнение действия пакета и подобное.
[00189] Уровень 2: Уровень управления службой DPI, который исполняет посредством размещения ядра процессора в сопроцессоре логику управления службой DPI, включающую в себя связанную со службой DPI логику управления, такую как управление последовательностью выполнения над этапами механизма DPI, согласование условия и правила, перекрестная обработка пакета и сохранение промежуточного состояния.
[00190] Уровень 3: Логический уровень подслужбы DPI, который является ответственным за специфическую в отношении DPI подслужбу, которая может быть неизменяемой, например, подсопроцессор идентификации протокола, подсопроцессор анализа протокола и подсопроцессор статистики особенности поведения.
[00191] Уровень 4: Уровень механизма алгоритма, который является ответственным за задачу механизма алгоритма, которая в частности оптимизирована для DPI, например, механизм согласования регулярных выражений, механизм выражений с плавающей запятой, механизм алгоритма многорежимного согласования строк, механизм алгоритма однорежимного согласования строк и механизм арифметики параметров поведения, и подобное.
[00192] Следует специально отметить, что во внутренней части сопроцессора, то есть с уровня 2 по уровень 4, модуль шины коммутации сконфигурирован с возможностью выполнения взаимодействий сообщения и данных между этими многоуровневыми модулями. Однако, взаимодействие внутри микросхемы выполняется между уровнем 1 и другими уровнями, то есть между общим процессором и сопроцессором, что может быть реализовано посредством использования стандартизированной шины, например, PCIE. Тип шины может быть установлен согласно внешнему интерфейсу, обеспеченному общим процессором.
[00193] В дополнение к модулям, которые могут быть назначены соответствующим уровням, имеются также несколько модулей для вспомогательной обработки, где эти модули являются независимыми от уровней и реализованы посредством использования неизменяемой логики, например, модуль приемопередатчика, модуль обработки сообщения результата, модуль записи и считывания памяти, кэш и подобное в сопроцессоре 91.
[00194] В реальном процессе применения общий процессор может дополнительно заранее определять согласно типу службы, выполнить ли обработку самому общему процессору или сопроцессору; если тип службы соответствует алгоритму обработки, который относится к высокому уровню и является сложным, общий процессор выполняет обработку, и если тип службы является связанной с DPI службой, сопроцессор выполняет обработку.
[00195] В дополнение к многоуровневой конструктивной архитектуре этот вариант осуществления настоящего изобретения дополнительно предлагает конфигурировать внешнюю память для сопроцессора, такую как первая память 83 и вторая память 84 на фиг. 10 так, чтобы сохранять промежуточное состояние DPI посредством этого достигая лучшей масштабируемости и производительности. В этом случае, когда задача, для которой состояние должно быть сохранено, обрабатывается, упомянутая задача не должна выполняться общим процессором, и сопроцессор может сохранить больше ресурсов его процессора. В дополнение, сконфигурированная внешняя память может дополнительно сохранять различные структуры данных из области особенностей и специфические в области алгоритмов структуры данных, которые должны быть использованы во время обработки DPI. В этом случае сопроцессор может непосредственно и быстро считывать данные вместо считывания их посредством использования общего процессора через шину, что может позволять достигать более высокой производительности обработки.
[00196] В этом варианте осуществления механизм 132 согласования строк в частности сконфигурирован с возможностью при вызове ядра 12 процессора считывания таблицы состояний алгоритма согласования строк из первой памяти 83, и выполнения согласования строк в отношении исходного пакета данных согласно таблице состояний алгоритма согласования строк для получения результата согласования особенностей, где первая память 83 сконфигурирована с возможностью хранения таблицы состояний алгоритма согласования строк.
[00197] В частности, первая память 83 сконфигурирована для функциональных модулей сопроцессора 10; первая память 83 сохраняет таблицу состояний алгоритма согласования строк; когда механизм 132 согласования строк является механизмом многорежимного согласования строк, таблица состояний алгоритма согласования строк является таблицей состояний алгоритма многорежимного согласования строк; и когда механизм 132 согласования строк является механизмом однорежимного согласования строк, таблица состояний алгоритма согласования строк является таблицей состояний алгоритма однорежимного согласования строк. Например, алгоритм многорежимного согласования строк является алгоритмом AC; таблица состояний алгоритма многорежимного согласования строк является таблицей состояний AC; и механизм многорежимного согласования строк может реализовывать многорежимное согласование строк в отношении пакета данных согласно таблице состояний алгоритма многорежимного согласования строк. Механизм многорежимного согласования строк не выполняет операцию считывания или записи непосредственно в отношении первой памяти 83; и сопроцессор 10 обеспечен с кэшем и осуществлением доступа к первой памяти 83 посредством использования кэша.
[00198] В этом варианте осуществления механизм согласования регулярных выражений в частности сконфигурирован с возможностью при вызове ядра 12 процессора считывания таблицы состояний алгоритма согласования регулярных выражений из первой памяти 83, и выполнения согласования регулярных выражений в отношении исходного пакета данных согласно таблице состояний алгоритма согласования регулярных выражений, где первая память 83 сконфигурирована с возможностью хранения таблицы состояний алгоритма согласования регулярных выражений.
[00199] В частности, первая память 83 сохраняет таблицу состояний алгоритма согласования регулярных выражений; например, когда алгоритм согласования регулярных выражений является алгоритмом DFA, таблица состояний алгоритма согласования регулярных выражений является таблицей состояний DFA и механизм согласования регулярных выражений может реализовывать согласование регулярных выражений в отношении пакета данных согласно таблице состояний алгоритма согласования регулярных выражений. Механизм согласования регулярных выражений не выполняет операцию считывания или записи непосредственно в отношении первой памяти 83; и сопроцессор 10 обеспечен с кэшем и осуществляет доступ к первой памяти 83 посредством использования кэша.
[00200] В этом варианте осуществления после того, как механизм 132 согласования строк выполняет согласование строк в отношении исходного пакета данных согласно таблице состояний алгоритма согласования строк в первой памяти 83 для получения результата согласования особенностей, ядро 12 процессора сконфигурировано с возможностью считывания структуры данных условия и правила из второй памяти 84, и определения типа протокола уровня приложений исходного пакета данных согласно результату согласования особенностей и структуре данных условия и правила, где вторая память 84 сконфигурирована с возможностью хранения структуры данных условия и правила.
[00201] В частности, вторая память 84 сконфигурирована для ядра 12 процессора сопроцессора 10; вторая память 84 сохраняет структуру данных условия и правила, где структура данных условия и правила используется для хранения соответствия между правилом службы и типом протокола уровня приложений; ядро 12 процессора ищет структуру данных условия и правила из второй памяти согласно результату согласования особенностей, полученному механизмом согласования строк, для получения типа протокола уровня приложений исходного пакета данных. Допускается, что ядро 12 процессора не выполняет операцию считывания или записи непосредственно в отношении второй памяти 84; и сопроцессор 10 обеспечен с кэшем и осуществляет доступ ко второй памяти 84 посредством использования кэша.
[00202] В этом варианте осуществления первая память 83 и вторая память 84 могут представлять режим двойного банка.
[00203] В частности, первая память 83 и вторая память 84 могут быть разработаны для режима двойного банка (двойного банка), где первый банк используется для хранения структуры данных, которая используется в настоящий момент, и упоминается как текущий банк, и второй банк используется для хранения обновленной структуры данных и упоминается как обновленный банк. В процессе работы системы сопроцессор 10 осуществляет доступ к данным в текущем банке для реализации обработки службы. В этом процессе, когда данные в памяти должны быть обновлены, данные, которые должны быть обновлены, могут быть загружены в обновленный банк; процесс обновления не влияет на доступ сопроцессора 10 к текущему банку памяти; новые данные переключаются в банк системы после загрузки; в этом случае первый банк используется в качестве банка системы и второй банк используется в качестве текущего банка; аналогично, первый банк и второй банк в качестве альтернативы используются для хранения обновленных данных, что гарантирует, что обновление является допустимым без прерывания текущей службы. Следует сделать значимое замечание, что в реальном применении после того, как банк системы переключен, поскольку некоторый трафик службы все еще находится в процессе обработки, трафик службы, который все еще находится в процессе обработки, не может быть принудительно переключен в новый банк системы. В этом случае, новый трафик службы обрабатывается посредством использования данных нового банка системы и существующий трафик службы продолжает обрабатываться посредством использования исходного банка системы. Исходный банк системы устанавливается в неактивное состояние только после того, как весь существующий трафик службы полностью обработан. Этим достигается обновление системы без прерывания текущей службы.
[00204] Например, исходной особенностью идентификации протокола BitTorrent является "Bttorrent"; однако, поскольку программное обеспечение BitTorrent обновлено, новой особенностью является "XBttorrent"; поэтому база знаний для идентификации DPI должна быть модернизирована, где соответствующая структура данных сопроцессора 10 настоящего изобретения является некой особенностью строки, сохраненной в таблице состояний AC. Поэтому вновь компилированная структура данных особенности должна быть загружена в банк обновления. В процессе загрузки механизм многорежимного согласования строк все еще использует текущий банк. После того, как загрузка завершена, текущий банк и банк системы переключаются. Механизм многорежимного согласования строк может считывать новую таблицу состояний AC.
[00205] Реальный процесс применения в основном включает в себя часть компиляции и часть работы.
[00206] Часть компиляции: компилятор особенностей, компилятор подсопроцессора анализа, компилятор шаблона результата и компилятор политики.
[00207] В реальном применении компилятор в основном включает в себя:
a. предварительный компилятор: компилятор особенностей, компилятор подсопроцессора анализа, компилятор правила согласования и подобное; и
b. фоновые компиляторы: компилятор регулярных выражений, однорежимный компилятор алгоритма строк, многорежимный компилятор алгоритма строк и подобное.
[00208] Главная функция предварительного компилятора включает в себя: классифицирование правил (например, идентификацию протокола прикладного уровня, IPS/IDS и фильтрацию URL) различных служб DPI на правила, которые могут быть использованы сопроцессором согласно настоящему изобретению, то есть регулярное выражение, строка, значение и подобное; генерирование структуры данных во второй памяти, то есть структуры данных условия и правила, и подобного; компиляцию языкового кода программирования высокого уровня программной логики ядра процессора в сопроцессоре в инструкцию, которая может быть исполнена ядром процессора сопроцессора; и компиляцию различных структур данных службы DPI, используемых общим процессором, то есть структуры данных, упомянутой выше по тексту, для поддержки идентификации дешифрования и идентификации алгоритма.
[00209] Главная функция фонового компилятора включает в себя: компиляцию структуры данных, используемой модулем механизма алгоритма самого низкого уровня в различных сопроцессорах, то есть структуры данных в первой памяти, которая приводиться в пример в вышеприведенном описании и повторно подробно не описывается в этом документе.
[00210] В дополнение к двум типам компиляторов модуль из части компиляции дополнительно включает в себя: программу возбуждения сопроцессора, которая является ответственной за загрузку различных компилированных структур данных в первую память и вторую память сопроцессора, и память внутри микросхемы сопроцессора (например, инструкция логики ядра процессора сохранена в памяти внутри микросхемы процессора).
[00211] Часть работы: модули аппаратного обеспечения конфигурации API, API обработки DPI, программа возбуждения, программно-аппаратное обеспечение ядра процессора уровня управления службой DPI, уровень обработки подслужбы DPI (процессор характера анализа, модуль фильтрации URL и модуль согласования политики) и уровень механизма алгоритма (механизм однорежимного согласования строк, механизм согласования регулярных выражений и механизм многорежимного согласования строк).
[00212] Фиг. 11 представляет собой схематическое структурное представление общего процессора согласно варианту осуществления настоящего изобретения. Как показано на фиг. 11, общий процессор 82, обеспеченный этим вариантом осуществления, может в частности реализовывать этапы способа глубокой проверки пакетов, который обеспечен каким-либо вариантом осуществления настоящего изобретения и который является применимым к общему процессору, где специфический процесс реализации повторно подробно не описывается в этом документе. Общий процессор, обеспеченный этим вариантом осуществления, включает в себя модуль 21 отправки, модуль 22 приемопередатчика и модуль 23 обработки.
[00213] Модуль 21 отправки сконфигурирован с возможностью отправки исходного пакета данных сопроцессору.
[00214] Модуль 22 приема сконфигурирован с возможностью приема результата анализа уровня приложений исходного пакета данных и отправленного сопроцессором, где упомянутый результат анализа уровня приложений получается ядром процессора сопроцессора посредством вызова по меньшей мере одного подсопроцессора сопроцессора для выполнения анализа уровня приложений в отношении исходного пакета данных, и упомянутый результат анализа уровня приложений используется для указания информации уровня приложений исходного пакета данных.
[00215] Модуль 23 обработки сконфигурирован с возможностью обработки исходного пакета данных, по меньшей мере, согласно результату анализа уровня приложений.
[00216] В общем процессоре, обеспеченном этим вариантом осуществления, общий процессор отправляет исходный пакет данных сопроцессору, принимает результат обработки, отправленный сопроцессором, и обрабатывает исходный пакет данных согласно результату обработки. Общий процессор и сопроцессор кооперируются для реализации DPI; и подсопроцессор в сопроцессоре может быть разработан специально для службы DPI для выгрузки функции DPI с общего процессора, что сокращает занятость ресурса общего процессора так, что общий процессор может обрабатывать другие дополнительные службы. Более того, ядро процессора обеспечено в сопроцессоре и подсопроцессор работает при вызове ядра процессора так, что информация о промежуточном состоянии может быть сохранена и взаимодействия между ядром процессора и подсопроцессором являются всеми взаимодействиями в микросхеме, что избегает частых взаимодействий между сопроцессором и общим процессором, посредством этого увеличивая рабочую скорость.
[00217] В варианте осуществления модуль 23 обработки в частности сконфигурирован с возможностью дешифрования исходного пакета данных, если идентифицируется, согласно результату анализа уровня приложений исходного пакета данных, что исходный пакет данных являются зашифрованным пакетом данных.
[00218] В другом варианте осуществления модуль 23 обработки в частности сконфигурирован с возможностью определения согласно результату анализа уровня приложений исходного пакета данных типа службы потока, к которому принадлежит исходный пакет данных, и выполнения согласно типу службы статистики трафика, назначения цены или ускорения передачи в отношении потока, к которому принадлежит исходный пакет данных.
[00219] В другом варианте осуществления результат анализа уровня приложений исходного пакета данных включает в себя тип протокола уровня приложений исходного пакета данных и результат согласования URL, где тип протокола уровня приложений исходного пакета данных может быть получен ядром процессора сопроцессора посредством вызова подсопроцессора идентификации протокола сопроцессора для выполнения идентификации протокола в отношении исходного пакета данных; дополнительно, когда осуществляется определение, что тип протокола уровня приложений исходного пакета данных является протоколом передачи гипертекстовых файлов HTTP, ядро процессора сопроцессора может дополнительно вызывать механизм согласования унифицированного указателя ресурса, URL, сопроцессора для выполнения согласования URL в отношении исходного пакета данных так, чтобы получать результат согласования URL, и отправки результата согласования URL общему процессору; соответственно, после приема результата согласования URL, отправленного сопроцессором, общий процессор определяет согласно типу протокола уровня приложений и результату согласования URL, используется ли поток, к которому принадлежит исходный пакет данных, для осуществления доступа к ограниченному веб-сайту, и если поток, к которому принадлежит исходный пакет данных, используется для осуществления доступа к ограниченному веб-сайту, блокирует поток.
[00220] Фиг. 12 представляет собой схематическое структурное представление первого устройства DPI согласно варианту осуществления настоящего изобретения. Как показано на фиг. 12, устройство DPI, обеспеченное этим вариантом осуществления, включает в себя сопроцессор 81, обеспеченный каким-либо вариантом осуществления настоящего изобретения, и общий процессор 82, обеспеченный каким-либо вариантом осуществления настоящего изобретения.
[00221] В устройстве DPI, обеспеченном этим вариантом осуществления, общий процессор 82 и сопроцессор 81 кооперируются для реализации DPI; подсопроцессор в сопроцессоре 81 может быть разработан специально для службы DPI; функция DPI выгружается с общего процессора 82, что сокращает занятость ресурса общего процессора 82 так, что общий процессор 82 может обрабатывать другие дополнительные службы. Более того, ядро процессора обеспечено в сопроцессоре 81 и подсопроцессор работает при вызове ядра процессора информация о промежуточном состоянии может быть сохранена; и все взаимодействия между ядром процессора и подсопроцессором являются взаимодействиями в микросхеме, что избегает частых взаимодействий между сопроцессором 81 и общим процессором 82, посредством этого увеличивая рабочую скорость.
[00222] В этом варианте осуществления имеется один общий процессор, включенный в устройство DPI. В реальном применении один сопроцессор также может реализовывать службу DPI вместе с одним или более общими процессорами.
[00223] В другом варианте осуществления имеются по меньшей мере два общих процессора, включенных в устройство DPI; устройство DPI дополнительно включает в себя сетевой адаптер и аппарат балансировки нагрузки.
[00224] Сетевой адаптер сконфигурирован с возможностью приема пакета данных из сети и отправки пакета данных аппарату балансировки нагрузки; и
аппарат балансировки нагрузки сконфигурирован с возможностью получения состояния нагрузки каждого общего процессора из упомянутых по меньшей мере двух общих процессоров, выбора одного общего процессора согласно состоянию нагрузки каждого из общих процессоров и отправки пакета данных выбранному общему процессору.
[00225] Фиг. 13 представляет собой схематическое структурное представление второго устройства DPI согласно варианту осуществления настоящего изобретения. Как показано на фиг. 13, с использованием примера, что два общих CPU (33 и 35 на фиг. 13) обеспечены в устройстве DPI, сетевой адаптер 31 и аппарат 32 балансировки нагрузки дополнительно обеспечены в устройстве DPI. Сетевой адаптер 31 принимает пакет данных, отправленный другим устройством в сети, и непосредственно отправляет посредством использования аппарата 32 балансировки нагрузки, который является ответственным за разделение нагрузки, надлежащему общему CPU для обработки, и не использует метод DMA (прямого доступа к памяти, прямого доступа к памяти). Общий CPU отправляет пакет данных сопроцессору 34 при определении, что требуется обработка DPI; принимает результат обработки DPI через интерфейс PCIE после того, как сопроцессор 34 завершает обработку; и после дальнейшего выполнения другой обработки службы согласно результату обработки DPI, переадресовывает посредством использования сетевого адаптера 31 пакет данных, который должен быть переадресован.
[00226] Аппарат 32 балансировки нагрузки может быть реализован посредством использования FPGA; аппарат 32 балансировки нагрузки может, с одной стороны, выбирать надлежащий общий CPU согласно состоянию нагрузки каждого общего CPU для обработки пакета данных, и с другой стороны реализовывать логику передачи и приема сообщений. Когда устройство DPI имеет только один общий CPU, допускается, что аппарат 32 балансировки нагрузки не обеспечивается, и логика передачи и приема сообщений может быть реализована посредством использования другого микросхемы; общий CPU в этом варианте осуществления настоящего изобретения может быть в частности общим CPU Cavium.
[00227] В устройстве DPI, обеспеченном этим вариантом осуществления настоящего изобретения, общий процессор и сопроцессор кооперируются для реализации DPI; и подсопроцессор в сопроцессоре может быть разработан специально для службы DPI для выгрузки функции DPI с общего процессора, что сокращает занятость ресурса общего процессора так, что общий процессор может обрабатывать другие дополнительные службы. Более того, ядро процессора обеспечено в сопроцессоре и подсопроцессор работает при вызове ядра процессора так, что информация о промежуточном состоянии может быть сохранена и взаимодействия между ядром процессора и подсопроцессором являются всеми взаимодействиями в микросхеме, что избегает частых взаимодействий между сопроцессором и общим процессором, посредством этого сокращая задержку обработки.
[00228] Фиг. 14 представляет собой схематическое структурное представление третьего устройства DPI согласно варианту осуществления настоящего изобретения. Как показано на фиг. 14, в этом варианте осуществления устройство DPI включает в себя два общих CPU (42 и 45 на фиг. 14); память 43 DDR3 сконфигурирована для общего CPU 42 и память 46 DDR3 сконфигурирована для общего CPU 45. Сетевой адаптер 41 дополнительно обеспечен в устройстве DPI; после приема пакета данных, отправленного другим устройством в сети, сетевой адаптер 41 сначала запускает посредством использования интерфейса PCI-E и методом DMA общий CPU 42 для считывания пакета данных, и сохраняет пакет данных в память 43 DDR3, используемую сетевым адаптером. Если общий CPU 42 находит после выполнения некоторой обработки, что обработка DPI должна быть выполнена, общий CPU 42 отправляет пакет данных методом DMA сопроцессору 44 для обработки DPI; после завершения обработки, сопроцессор 44 возвращает результат обработки DPI общему CPU 42 для дальнейшей обработки; затем общий CPU 42 Sandy-Bridge отправляет следующему сетевому устройству в сети посредством использования сетевого адаптера 41 пакет данных, который должен быть переадресован. Следует отметить, что общий CPU согласно этому варианту осуществления настоящего изобретения может быть общим CPU Sandy-Bridge.
[00229] В устройстве DPI, обеспеченном этим вариантом осуществления настоящего изобретения, общий процессор и сопроцессор кооперируются для реализации DPI; и подсопроцессор в сопроцессоре может быть разработан специально для службы DPI для выгрузки функции DPI с общего процессора, что сокращает занятость ресурса общего процессора так, что общий процессор может обрабатывать другие дополнительные службы. Более того, ядро процессора обеспечено в сопроцессоре и подсопроцессор работает при вызове ядра процессора так, что информация о промежуточном состоянии может быть сохранена и взаимодействия между ядром процессора и подсопроцессором являются всеми взаимодействиями в микросхеме, что избегает частых взаимодействий между сопроцессором и общим процессором, посредством этого сокращая задержку обработки.
[00230] Аппарат и способ глубокой проверки пакетов, обеспеченные этими вариантами осуществления настоящего изобретения, могут быть применены к нескольким сценариям применения, но не ограничиваются, например, использованием сопроцессора DPI для выполнения идентификации протокола прикладного уровня, глубокого анализа протокола, IDS (системами обнаружения вторжения) и механизмом политики в отношении маршрутизатора корпоративной сети; использованием сопроцессора DPI для выполнения идентификации протокола прикладного уровня, глубокого анализа протокола и механизмом политики в отношении маршрутизатора и BRAS (сервера широкополосного удаленного доступа); использованием сопроцессора DPI для выполнения идентификации протокола прикладного уровня, глубокого анализа протокола, фильтрации контента и механизмом политики в отношении GGSN (узла поддержки шлюза GPRS); использованием сопроцессора DPI для выполнения идентификации протокола прикладного уровня, глубокого анализа протокола, фильтрации контента и механизмом политики в отношении шлюза приложения; и использованием сопроцессора DPI для выполнения идентификации протокола прикладного уровня, глубокого анализа протокола, оптимизации радио ресурсов и механизмом политики в отношении элемента сети с радиодоступом RNC (контроллера сети с радиодоступом) и NodeB.
[00231] Обычный специалист в данной области техники может понимать, что все или часть этапов вариантов осуществления способа могут быть реализованы посредством программы, инструктирующей соответствующее аппаратное обеспечение. Программа может быть сохранена в считываемом компьютером носителе данных. Когда работает программа, выполняются этапы вариантов осуществления способа. Вышеприведенный носитель данных включает в себя: какой-либо носитель, который может сохранять программный код, такой как ROM, RAM, магнитный диск или оптический диск.
[00232] В завершение, следует отметить, что вышеуказанные варианты осуществления предназначены просто для описания технических решений настоящего изобретения, но не для ограничения настоящего изобретения. Хотя настоящее изобретение подробно описывается со ссылкой на вышеприведенные варианты осуществления, специалисты в данной области техники должны понимать, что они по-прежнему могут вносить модификации в технические решения, описанные в вышеприведенных вариантах осуществления, или проводить эквивалентные замены в некоторые их технические признаки без отклонения от объема технических решений вариантов осуществления настоящего изобретения.