Сетевой процессор
Сетевой процессор — это интегральная схема , имеющая набор функций, специально предназначенный для области сетевых приложений.
Сетевые процессоры обычно представляют собой программируемые устройства и имеют общие характеристики, аналогичные центральным процессорам общего назначения , которые обычно используются во многих различных типах оборудования и продуктов.
История развития
[ редактировать ]В современных телекоммуникационных сетях информация (голос, видео, данные) передается в виде пакетных данных (так называемая коммутация пакетов ), в отличие от старых телекоммуникационных сетей, которые передавали информацию в виде аналоговых сигналов, таких как в коммутируемой телефонной сети общего пользования (PSTN) или аналоговых сетях. Теле / Радиосети . Обработка этих пакетов привела к созданию интегральных схем (ИС), оптимизированных для работы с этой формой пакетных данных. Сетевые процессоры имеют особые функции или архитектуру, предназначенные для улучшения и оптимизации обработки пакетов в этих сетях.
Сетевые процессоры превратились в микросхемы со специфическими функциями. Эта эволюция привела к созданию более сложных и гибких микросхем. Новые схемы являются программируемыми и, таким образом, позволяют одной аппаратной конструкции ИС выполнять ряд различных функций при соответствующего программного обеспечения наличии .
Сетевые процессоры используются при производстве множества различных типов сетевого оборудования, таких как:
- Маршрутизаторы , программные маршрутизаторы и коммутаторы ( Межсетевые процессоры )
- Брандмауэры
- Пограничные контроллеры сеансов
- Устройства обнаружения вторжений
- Устройства предотвращения вторжений
- сетевого мониторинга Системы
- Сетевая безопасность ( безопасные криптопроцессоры )
Реконфигурируемые таблицы соответствия
[ редактировать ]Реконфигурируемые таблицы соответствия [1] [2] были представлены в 2013 году, чтобы позволить коммутаторам работать на высоких скоростях, сохраняя при этом гибкость, когда дело касается работающих на них сетевых протоколов или выполняемой с ними обработки. П4 [3] используется для программирования чипов. Компания Barefoot Networks была основана на этих процессорах и позже была куплена Intel в 2019 году.
Конвейер RMT состоит из трех основных этапов; программируемый парсер, [2] таблицы Match-Action и программируемый депарсер. Синтаксический анализатор читает пакет по частям и обрабатывает эти фрагменты, чтобы выяснить, какие протоколы используются в пакете ( Ethernet , VLAN , IPv4 ...) и извлекает определенные поля из пакета в вектор заголовка пакета (PHV). Определенные поля в PHV могут быть зарезервированы для специального использования, например, для текущих заголовков или общей длины пакета. Протоколы обычно программируются, как и поля для извлечения. Таблицы Match-Action представляют собой серию блоков, которые считывают входной PHV, сопоставляют в нем определенные поля с помощью перемычки и памяти CAM , в результате получается широкая инструкция, которая оперирует одним или несколькими полями PHV и данными для поддержки этой инструкции. . Выходной PHV затем отправляется на следующий этап MA или в депарсер. Депарсер принимает PHV, а также исходный пакет и его метаданные (чтобы заполнить недостающие биты, которые не были извлечены в PHV), а затем выводит измененный пакет в виде фрагментов. Обычно он программируется, как и анализатор, и может повторно использовать некоторые файлы конфигурации.
FlexNIC [4] предпринимаются попытки применить эту модель к контроллерам сетевых интерфейсов, позволяя серверам отправлять и получать пакеты на высоких скоростях, сохраняя при этом гибкость протокола и не увеличивая нагрузку на процессор.
Общие функции
[ редактировать ]В общей роли пакетного процессора в сетевом процессоре обычно присутствует ряд оптимизированных функций или функций, в том числе:
- Сопоставление шаблонов – возможность находить определенные шаблоны битов или байтов внутри пакетов в потоке пакетов.
- Поиск по ключу — возможность быстро выполнить поиск в базе данных с использованием ключа (обычно адреса в пакете) для поиска результата, обычно о маршрутизации . информации
- Вычисление
- Манипулирование битовыми полями данных – возможность изменять определенные поля данных, содержащиеся в пакете, во время его обработки.
- Управление очередями – по мере того, как пакеты принимаются, обрабатываются и планируются для дальнейшей отправки, они сохраняются в очередях.
- Обработка управления — микрооперации обработки пакета контролируются на макроуровне, который включает связь и оркестровку с другими узлами в системе.
- Быстрое выделение и рециркуляция буферов пакетов.
Архитектурные парадигмы
[ редактировать ]Чтобы справиться с высокими скоростями передачи данных, обычно используются несколько архитектурных парадигм:
- Конвейер процессоров — каждый этап конвейера, состоящий из процессора, выполняющего одну из перечисленных выше функций.
- Параллельная обработка с использованием нескольких процессоров, часто включая многопоточность .
- Специализированные микрокодированные двигатели для более эффективного выполнения поставленных задач.
- С появлением многоядерных архитектур сетевые процессоры могут использоваться для обработки более высокого уровня ( L4-L7 ).
Кроме того, управление трафиком, которое является критическим элементом сетевой обработки L2 – L3 и раньше выполнялось различными сопроцессорами, стало неотъемлемой частью архитектуры сетевого процессора и существенной частью его кремниевой области (« недвижимость») посвящен интегрированному диспетчеру трафика. [5] Современные сетевые процессоры также оснащены встроенными сетями межсоединений с низкой задержкой и высокой пропускной способностью, оптимизированными для обмена небольшими сообщениями между ядрами (несколько слов данных). Такие сети могут использоваться в качестве альтернативного средства эффективного межъядерного взаимодействия помимо стандартного использования общей памяти. [6]
Приложения
[ редактировать ]Используя общую функцию сетевого процессора, программа реализует приложение, которое выполняет сетевой процессор, в результате чего часть физического оборудования выполняет задачу или предоставляет услугу. Вот некоторые типы приложений, которые обычно реализуются как программное обеспечение, работающее на сетевых процессорах: [7]
- Распознавание и пересылка пакетов или кадров , то есть базовая операция маршрутизатора или коммутатора .
- Обеспечение качества обслуживания (QoS) – идентификация различных типов или классов пакетов и обеспечение предпочтительного режима для некоторых типов или классов пакетов за счет других типов или классов пакетов.
- Функции контроля доступа – определение того, разрешено ли конкретному пакету или потоку пакетов проходить через часть сетевого оборудования.
- Шифрование потоков данных – встроенные аппаратные механизмы шифрования позволяют процессору шифровать отдельные потоки данных.
- разгрузки TCP Обработка
См. также
[ редактировать ]- Контент-процессор
- Многоядерный процессор
- Процессор, основанный на знаниях
- Активное нетворкинг
- Компьютерная инженерия
- Интернет
- Список несуществующих компаний, занимающихся сетевыми процессорами
- Форум по сетевой обработке
- Теория массового обслуживания
- Сеть на чипе
Ссылки
[ редактировать ]- ^ Босхарт, Пэт; Гибб, Глен; Ким, Хун Сок; Варгезе, Джордж; МакКаун, Ник; Иззард, Мартин; Мухика, Фернандо; Горовиц, Марк (1 августа 2013 г.). «Метаморфоза пересылки: быстрая программируемая обработка сопоставления действий в аппаратном обеспечении для SDN» .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Jump up to: а б Гибб, Глен; Варгезе, Джордж; Горовиц, Марк; МакКаун, Ник (октябрь 2013 г.). «Принципы проектирования анализаторов пакетов» . Архитектуры сетевых и коммуникационных систем . стр. 13–24. дои : 10.1109/ANCS.2013.6665172 . ISBN 978-1-4799-1641-2 . S2CID 12282067 .
- ^ «P4: Программирование протокольно-независимых пакетных процессоров | acm sigcomm» . www.sigcomm.org . Проверено 26 марта 2022 г.
- ^ Кауфманн, Антуан; Питер, Саймон; Шарма, Навин Кр.; Андерсон, Томас; Кришнамурти, Арвинд (25 марта 2016 г.). «Высокопроизводительная обработка пакетов с помощью FlexNIC». Материалы двадцать первой международной конференции по архитектурной поддержке языков программирования и операционных систем . АСПЛОС '16. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 67–81. дои : 10.1145/2872362.2872367 . ISBN 978-1-4503-4091-5 . S2CID 9625891 .
- ^ Гилади, Ран (2008). Сетевые процессоры: архитектура, программирование и реализация . Системы на кремнии. Морган Кауфманн. ISBN 978-0-12-370891-5 .
- ^ Буоно, Даниэле; Менкальи, Габриэле (21–25 июля 2014 г.). Механизмы выполнения для детального параллелизма на сетевых процессорах: опыт TILEPro64 (PDF) . Международная конференция по моделированию высокопроизводительных вычислений (HPCS 2014), 2014 г. Болонья, Италия. стр. 55–64. дои : 10.1109/HPCSim.2014.6903669 . ISBN 978-1-4799-5313-4 . Архивировано (PDF) из оригинала 27 марта 2019 г. Альтернативный URL.
- ^ Комер, Дуглас Э. (2005). Проектирование сетевых систем с использованием сетевых процессоров: версия Intel 2XXX . Аддисон-Уэсли. ISBN 978-0-13-187286-8 .