Сетевой процессор — это интегральная схема , имеющая набор функций, специально предназначенных для области сетевых приложений.
Сетевые процессоры, как правило, представляют собой программируемые устройства и имеют общие характеристики, аналогичные характеристикам центральных процессоров общего назначения , которые обычно используются во многих различных типах оборудования и продуктов.
В современных телекоммуникационных сетях информация (голос, видео, данные) передается в виде пакетных данных (называемых коммутацией пакетов ), что отличается от старых телекоммуникационных сетей, которые передавали информацию в виде аналоговых сигналов, таких как в телефонной сети общего пользования (PSTN) или аналоговых сетях телевидения и радио . Обработка этих пакетов привела к созданию интегральных схем (ИС), оптимизированных для работы с этой формой пакетных данных. Сетевые процессоры имеют особые функции или архитектуры, которые предоставляются для улучшения и оптимизации обработки пакетов в этих сетях.
Сетевые процессоры эволюционировали в ИС с определенными функциями. Эта эволюция привела к созданию более сложных и более гибких ИС. Новые схемы являются программируемыми и, таким образом, позволяют одной аппаратной конструкции ИС выполнять ряд различных функций, если установлено соответствующее программное обеспечение .
Сетевые процессоры используются при производстве множества различных типов сетевого оборудования, таких как:
Реконфигурируемые таблицы соответствия [1] [2] были введены в 2013 году, чтобы позволить коммутаторам работать на высоких скоростях, сохраняя гибкость в отношении сетевых протоколов, работающих на них, или обработки, которая должна быть выполнена для них. P4 [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] пытается применить эту модель к контроллерам сетевых интерфейсов, позволяя серверам отправлять и получать пакеты на высоких скоростях, сохраняя гибкость протокола и не увеличивая нагрузку на ЦП.
В общей роли процессора пакетов сетевой процессор обычно выполняет ряд оптимизированных функций и возможностей, в том числе:
Для работы с высокими скоростями передачи данных обычно используются несколько архитектурных парадигм:
Кроме того, управление трафиком, которое является критическим элементом в обработке сети L2 - L3 и которое раньше выполнялось различными сопроцессорами, стало неотъемлемой частью архитектуры сетевого процессора, и значительная часть его кремниевой области («недвижимость») отведена под интегрированный менеджер трафика. [5] Современные сетевые процессоры также оснащены сетями межсоединений с малой задержкой и высокой пропускной способностью на кристалле, оптимизированными для обмена небольшими сообщениями между ядрами (несколько слов данных). Такие сети могут использоваться в качестве альтернативного средства для эффективной межъядерной связи помимо стандартного использования общей памяти. [6]
Используя общую функцию сетевого процессора, программа реализует приложение, которое выполняет сетевой процессор, в результате чего физическое оборудование выполняет задачу или предоставляет услугу. Некоторые типы приложений, обычно реализуемые как программное обеспечение, работающее на сетевых процессорах: [7]
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь )