Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В сетях цифровой связи обработка пакетов относится к широкому спектру алгоритмов , которые применяются к пакету данных или информации, когда он перемещается через различные сетевые элементы сети связи. С увеличением производительности сетевых интерфейсов возникает соответствующая потребность в более быстрой обработке пакетов. [1]

Есть два основных класса алгоритмов обработки пакетов , которые выравнивают с стандартизированной сетью подразделением плоскости управления и плоскости данных . Алгоритмы применяются либо к:

  • Управляющая информация, содержащаяся в пакете, которая используется для безопасной и эффективной передачи пакета от источника к месту назначения.
или же
  • Содержимое данных (часто называемое полезной нагрузкой) пакета, которое используется для обеспечения определенного преобразования содержимого или выполнения действия, управляемого содержимым.

В любой сети совместимого устройства (например , маршрутизатор , коммутатор , сетевой элемент или терминал , такой как компьютер или смартфон) это подсистема обработки пакета , который управляет обходом многослойной сети или стек протоколов от нижних, физических и сетевых уровней всех путь до прикладного уровня .

История [ править ]

История обработки пакетов - это история Интернета и коммутации пакетов . Основные этапы обработки пакетов:

Исторические справки и хронологию можно найти в разделе «Внешние ресурсы» ниже.

Коммуникационные модели [ править ]

Для успеха сетей необходим унифицирующий стандарт, определяющий архитектуру сетевых систем. Основное требование к такому стандарту - предоставить основу, которая позволит производителям оборудования и программного обеспечения во всем мире разрабатывать сетевые технологии, которые будут работать вместе, и использовать свои совокупные инвестиционные возможности для продвижения состояния сетей вперед.

В 1970-х годах две организации, Международная организация по стандартизации [2] (ISO) и Международный консультативный комитет по телеграфной и телефонной связи [3] (CCITT, теперь именуемый Международным союзом электросвязи (ITU-T), инициировали проекты с целью разработке международных стандартов сетей. в 1983 году эти усилия были объединены и в 1984 году стандарт, называемый Основной Эталонная модель взаимодействия открытых систем , [4] была опубликована ISO и в качестве стандарта X.200 [5] МСЭ-Т.

Модель OSI - это 7-уровневая модель [6], описывающая, как работает сетевая операционная система. Многоуровневая модель имеет много преимуществ [7], включая возможность изменять один уровень, не влияя на другие, и как модель для понимания того, как работает сетевая ОС. Пока сохраняется взаимосвязь между уровнями, поставщики могут улучшать реализацию отдельного уровня без влияния на другие уровни.

Параллельно с разработкой модели OSI Агентство перспективных исследовательских проектов Министерства обороны США [8] ( DARPA ) внедряло исследовательскую сеть . Межсетевой протокол , разработанный для поддержки сети, называется ARPAnet , [9] был назван TCP или программой управления коробкой передач. По мере продвижения исследований и разработок и роста размера сети было установлено, что используемый дизайн межсетевого взаимодействия становится громоздким и не совсем соответствует многоуровневому подходу модели OSI. Это привело к расщеплению исходного TCP и созданию TCP / IP архитектура [10] - TCP теперь означает протокол управления передачей, а IP - протокол Интернета.

Появление обработки пакетов [ править ]

Пакетные сети [11] возникли в результате необходимости в начале 1960-х годов сделать сети связи более надежными. Его можно рассматривать как реализацию многоуровневой модели с использованием пакетной структуры.

Ранние коммерческие сети состояли из выделенных аналоговых цепей, используемых для голосовой связи. Концепция коммутации пакетов была введена для создания сети связи, которая продолжала бы функционировать, несмотря на отказы оборудования по всей сети. При таком сдвиге парадигмы сети рассматриваются как совокупность систем, которые передают данные небольшими пакетами, которые проходят путь от источника к месту назначения по любому количеству маршрутов. Функции начальной обработки пакетов поддерживали маршрутизацию пакетов по сети, обнаружение и исправление ошибок передачи и другие функции управления сетью .

Коммутация пакетов с поддерживающими функциями обработки пакетов имеет несколько практических преимуществ по сравнению с традиционными сетями с коммутацией каналов: [12]

  • Полностью цифровая среда, поддерживающая несколько типов данных (таких как голос, данные и видео), не только обогатила жизнь пользователей, [13] [14] она значительно повысила эффективность сетевых провайдеров, которым ранее приходилось внедрять разные сети для поддержки разных типы данных.
  • Более широкое использование полосы пропускания с несколькими `` логическими цепями '', использующими одни и те же физические каналы
  • Надежность связи благодаря множеству путей через сеть из любого источника в любой пункт назначения
  • Дополнительные информационные услуги могут быть введены с использованием функций обработки пакетов для обеспечения необходимой обработки.

Структура пакета [ править ]

Сетевой пакет является основным строительным блоком для сетей с коммутацией пакетов. [15] Когда элемент, такой как файл, сообщение электронной почты, голосовой или видеопоток, передается по сети, он разбивается на блоки, называемые пакетами, которые можно более эффективно перемещать по сети, чем один большой блок данных. Многочисленные стандарты [16] охватывают структуру пакетов, но обычно пакеты состоят из трех элементов:

  • Заголовок - содержит информацию о пакете, включая источник, место назначения, длину и номер пакета.
  • Полезная нагрузка (или тело) - содержит данные, составляющие пакет.
  • Трейлер - указывает конец пакета и часто включает информацию об обнаружении и исправлении ошибок.

В сети с коммутацией пакетов отправляющий хост-компьютер пакетирует исходный элемент, и каждый пакет маршрутизируется через сеть к месту назначения. Некоторые сети использовали пакеты фиксированной длины, обычно 1024 бита, в то время как другие используют пакеты переменной длины и включают длину пакета в заголовок.

Отдельные пакеты могут идти по разным маршрутам к пункту назначения и прибывать в пункт назначения не по порядку. Конечный компьютер проверяет правильность данных в каждом пакете (используя информацию в трейлере), повторно собирает исходный элемент, используя информацию о номере пакета в заголовке, и представляет этот элемент принимающему приложению или пользователю.

Этот базовый пример включает три основных функции обработки пакетов: пакетирование, маршрутизацию и сборку. Функции обработки пакетов варьируются от простых до очень сложных. Например, функция маршрутизации на самом деле представляет собой многоэтапный процесс [17], включающий различные алгоритмы оптимизации и поиск в таблицах. Базовая функция маршрутизации в Интернете выглядит примерно так:

1. Проверьте, является ли адрес назначения адресом, «принадлежащим» этому компьютеру. Если да, обработайте пакет. Если не:
а. Убедитесь, что для параметра IP Forwarding установлено значение «Да». Если нет, пакет уничтожается. Если да, то
я. Проверьте, владеет ли сеть, подключенная к этому компьютеру, адресом назначения. Если да, направьте пакет в соответствующую сеть. Если нет, то
1. Проверьте, есть ли какой-либо маршрут к сети назначения. Если да, направьте пакет на шлюз следующего перехода. Если нет, уничтожьте пакет.

Более продвинутые функции маршрутизации включают балансировку сетевой нагрузки [18] и алгоритмы наиболее быстрого маршрута. [19] Эти примеры иллюстрируют диапазон возможных алгоритмов обработки пакетов и то, как они могут вносить значительные задержки [20] в передачу элемента. Разработчики сетевого оборудования часто используют комбинацию аппаратных и программных ускорителей, чтобы минимизировать задержку в сети.

Архитектура сетевого оборудования [ править ]

IP-оборудование можно разделить на три основных элемента: уровень данных, уровень управления и уровень управления. [21]

Уровень данных [ править ]

Плоскости данных представляет собой подсистему сетевого узла , который принимает и передает пакеты из интерфейса, обрабатывает их в соответствии с требованиями применимого протокола, и обеспечивает, падает, или передает их в зависимости от обстоятельств.

Плоскость управления [ править ]

Плоскость управления сохраняет информацию , которая может использоваться для изменения данных , используемых в плоскости данных. Для поддержания этой информации требуется обработка сложных протоколов сигнализации. Реализация этих протоколов в плоскости данных приведет к снижению производительности пересылки. Распространенный способ управления этими протоколами - позволить плоскости данных обнаруживать входящие пакеты сигнализации и локально пересылать их в плоскость управления. Протоколы сигнализации плоскости управления могут обновлять информацию плоскости данных и вводить исходящие пакеты сигнализации в плоскость данных. Эта архитектура работает, потому что сигнальный трафик составляет очень небольшую часть глобального трафика.

Плоскость управления [ править ]

Плоскость управления обеспечивает административный интерфейс для всей системы. Он содержит процессы, которые поддерживают оперативное администрирование, управление или действия по настройке / обеспечению, такие как:

  • Средства для поддержки сбора и агрегирования статистики,
  • Поддержка внедрения протоколов управления,
  • Интерфейс командной строки, графический интерфейс конфигурации пользователя через веб-страницы или традиционное управление по протоколу SNMP ( Simple Network Management Protocol ).

Также могут быть включены более сложные решения на основе XML ( расширяемого языка разметки ).

Примеры [ править ]

Список приложений обработки пакетов [22] обычно делится на две категории. Ниже приведены несколько примеров, отобранных, чтобы проиллюстрировать разнообразие, используемое сегодня.

Управляющие приложения [ править ]

  • Перенаправление , основная работа роутера
  • Шифрование / дешифрование , защита информации в полезной нагрузке с помощью криптографических алгоритмов
  • Качество обслуживания (QOS) , обработка пакетов по-разному, например предоставление приоритетных или специализированных услуг в зависимости от класса пакета.

Приложения данных [ править ]

  • Транскодирование , преобразование определенного кодирования видео в конкретное кодирование, используемое местом назначения.
  • Transrating & Transizing, [23] преобразование размера и плотности изображения в соответствии с целевым устройством.
  • Распознавание изображения или голоса , обнаружение определенного шаблона (изображения или голоса), который сопоставляется с образцами в базе данных, с некоторыми сопутствующими действиями, предпринимаемыми при совпадении
  • Расширенные приложения включают в себя такие области, как безопасность ( мониторинг вызовов и предотвращение утечки данных ), таргетированная реклама , многоуровневые услуги , защита авторских прав и статистика использования сети. Эти и многие другие приложения, ориентированные на контент, основаны на способности распознавать определенные интеллектуальные данные, содержащиеся в полезных данных пакета, с использованием технологий глубокой проверки пакетов (DPI).

Архитектуры обработки пакетов [ править ]

Коммутация пакетов [24] также вносит некоторые архитектурные компромиссы. Выполнение функций обработки пакетов при передаче информации приводит к задержкам, которые могут отрицательно сказаться на выполняемом приложении. Например, в приложениях для передачи голоса и видео необходимое преобразование из аналого-цифрового и обратно в пункт назначения вместе с задержками, вносимыми сетью, может вызвать заметные пробелы, мешающие работе пользователей. Задержка - это мера задержки по времени, испытываемой сложной системой.

Было разработано несколько архитектурных подходов к обработке пакетов [25] для удовлетворения требований к производительности и функциональности конкретной сети и для решения проблемы задержки.

Однопоточная архитектура (стандартная операционная система) [ править ]

Стандартный сетевой стек использует услуги , предоставляемые операционной системой (ОС) работает на одном процессоре ( однопоточный ). Хотя однопоточные архитектуры проще всего реализовать, они подвержены накладным расходам, связанным с производительностью функций ОС, таких как прерывание, управление потоками, таймеры и блокировка. Эти накладные расходы на обработку ОС накладываются на каждый пакет, проходящий через систему, что приводит к снижению пропускной способности.

Многопоточная архитектура (многопроцессорная операционная система) [ править ]

Повышение производительности сетевого стека ОС может быть достигнуто путем адаптации программного обеспечения обработки стека протоколов для поддержки нескольких процессоров ( многопоточность ) либо за счет использования платформ симметричной многопроцессорной обработки (SMP) , либо за счет архитектуры многоядерных процессоров . Повышение производительности реализуется для небольшого числа процессоров [26], но не может линейно масштабироваться на большее количество процессоров (или ядер), а процессор, например, с восемью ядрами, может не обрабатывать пакеты значительно быстрее, чем один с двумя ядрами.

Архитектура быстрого пути (обход операционной системы) [ править ]

В реализации быстрого пути плоскость данных разделена на два уровня. Нижний уровень, обычно называемый быстрым путем, обрабатывает большую часть входящих пакетов за пределами среды ОС и без каких-либо накладных расходов ОС, которые ухудшают общую производительность. Только те пакеты, которые требуют сложной обработки, направляются в сетевой стек ОС (верхний уровень плоскости данных), который выполняет необходимые функции управления, сигнализации и контроля. Когда требуются сложные алгоритмы, такие как маршрутизация или безопасность, сетевой стек ОС пересылает пакет выделенным программным компонентам в плоскости управления.

Многоядерный процессор может обеспечить дополнительное улучшение производительности при быстрой реализации. [27] Чтобы максимизировать общую пропускную способность системы, несколько ядер могут быть выделены для работы по быстрому пути, в то время как только одно ядро ​​требуется для работы операционной системы, сетевого стека ОС и плоскости управления приложения.

Единственное ограничение при настройке платформы заключается в том, что, поскольку ядра, выполняющие быстрый путь, работают вне ОС, они должны быть выделены исключительно для быстрого пути и не должны использоваться совместно с другим программным обеспечением. Систему также можно динамически переконфигурировать по мере изменения структуры трафика. Разделение плоскости данных на два уровня также добавляет сложности, поскольку эти два уровня должны иметь одинаковую информацию для обеспечения согласованности системы.

Технологии обработки пакетов [ править ]

Для создания специализированных платформ обработки пакетов были разработаны и внедрены различные технологии. Эти технологии, охватывающие весь спектр аппаратного и программного обеспечения, были разработаны с целью максимизации скорости и пропускной способности при минимизации задержек.

Сетевые процессоры [ править ]

Сетевой процессор блок (НП) подобен во многих отношениях процессоров общего назначения (GPP) , что власти большинства компьютеров , но и с его внутренней архитектурой и функциями с учетом сетецентрических операций. АЯ обычно имеют сетевые специфичные функции , такие как поиск адреса, сопоставление с образцом и управление очередью , встроенный в их микрокод . Операции обработки пакетов более высокого уровня, такие как безопасность или обнаружение вторжений , часто встроены в архитектуры NPU. [28] Примеры сетевых процессоров:

  • Intel - семейство IXP2xxx
  • Нетроном - семейства NFP-6xxx / 4xxx / 32xx
  • PMC Sierra - семья Winpath
  • EZChip - семейство NP-x

Многоядерные процессоры [ править ]

Многоядерный процессор является единственным полупроводниковым пакетом , который имеет 2 или более сердцевин, каждый из которых представляет отдельный блок обработки, способные к выполнению коды параллельно. ЦП общего назначения, такие как Intel Xeon [29], теперь поддерживают до 8 ядер. Некоторые многоядерные процессоры объединяют специальные возможности обработки пакетов для создания полноценной SoC (системы на кристалле). Они , как правило интегрировать Ethernet интерфейсов, крипто-двигатели , соответсвующую модель двигателей, аппаратные очередидля QoS и иногда более сложных функций с использованием микроядер. Все эти аппаратные функции позволяют разгрузить программную обработку пакетов. Недавние примеры этих специализированных многоядерных пакетов, такие как Cavium OCTEON II, могут поддерживать от 2 до 32 ядер.

  • Tilera - Семейство процессоров TILE-Gx
  • Cavium Networks - семейства многоядерных процессоров OCTEON и OCTEON II
  • Freescale - Платформы обработки QorIQ
  • NetLogic Microsystems - семейства процессоров XLP, XLR и XLS

Аппаратные ускорители [ править ]

Для четко определяемых и повторяющихся действий создание специального ускорителя, встроенного непосредственно в решение для полупроводникового оборудования, ускорит выполнение операций по сравнению с программным обеспечением, работающим на процессоре общего назначения. [30] Первоначальные реализации использовали FPGA (программируемые пользователем вентильные матрицы) или ASIC (специализированные интегральные схемы), но теперь определенные функции, такие как шифрование и сжатие, встроены в GPP и NPU в качестве внутренних аппаратных ускорителей. Текущие примеры многоядерных процессоров с аппаратными ускорителями для конкретных сетей включают Cavium CN63xx с ускорением для обеспечения безопасности, TCP / IP, QOS и сопоставление шаблонов HFA [31]и семейство процессоров Netlogic Microsystems XFS с механизмами ускорения работы в сети и безопасности. [32]

Глубокая проверка пакетов [ править ]

Возможность принимать решения на основе содержимого отдельных пакетов позволяет использовать широкий спектр новых приложений, таких как Policy Charging and Rules Functions ( PCRF ) и Quality of Service. Системы обработки пакетов разделяют определенные типы трафика с помощью технологий Deep Packet Inspection (DPI) [33] . Технологии DPI используют алгоритмы сопоставления с образцом , чтобы заглянуть внутрь полезной нагрузки данных, чтобы идентифицировать содержимое каждого пакета, проходящего через сетевое устройство. Об успешных совпадениях с образцом сообщается управляющему приложению для принятия любых соответствующих дальнейших действий.

Программное обеспечение для обработки пакетов [ править ]

Программное обеспечение операционной системы будет содержать определенные стандартные сетевые стеки, которые будут работать как в одноядерных, так и в многоядерных средах. [34] Для реализации архитектуры обхода операционной системы (быстрого пути) требуется использование специализированного программного обеспечения для обработки пакетов, такого как 6WINDGate от 6WIND . Этот тип программного обеспечения предоставляет набор сетевых протоколов, которые могут быть распределены между несколькими блейд-серверами, процессорами или ядрами и соответствующим образом масштабироваться.

Ссылки [ править ]

  1. ^ Д. Церович, В. Дель Пикколо, А. Амаму, К. Хаддаду и Г. Пуйоль, Быстрая обработка пакетов: обзор , в IEEE Communications Surveys & Tutorials, vol. 20, нет. 4, стр. 3645-3676, четвертый квартал 2018 г. doi: 10.1109 / COMST.2018.2851072
  2. ^ Международная организация по стандартизации
  3. ^ Международный союз электросвязи)
  4. ^ ISO / IEC 10731: 1994. Информационные технологии - Взаимодействие открытых систем - Базовая эталонная модель - Соглашения для определения услуг OSI
  5. ^ ITU-T X.200-199407, X.200: Информационные технологии - Взаимодействие открытых систем - Базовая эталонная модель: Базовая модель
  6. ^ Tech-FAQ. Модель OSI - что это такое; Почему это важно; Почему это не имеет значения
  7. ^ Заметки о компьютерных сетях. Преимущества 7-уровневой модели OSI
  8. ^ "DARPA - Агентство перспективных оборонных исследовательских проектов" . Архивировано из оригинала на 2020-01-15 . Проверено 5 января 2012 .
  9. ^ Живой Интернет. ARPANET - Первый Интернет
  10. ^ W3 Schools, Учебное пособие по TCP / IP
  11. ^ Шелдон, Том. Пакеты и сети обработки пакетов . Ссылки, 2001.
  12. ^ Коупленд, Ли. QuickStudy: Сети с коммутацией пакетов и сети с коммутацией каналов . Computerworld, март 2000 г.
  13. ^ Негропонте, Н. Быть цифровым. Винтаж, январь 1996 г.
  14. Рединг, Вивиан. Цифровая конвергенция: совершенно новый образ жизни . Выставка цифрового образа жизни, май 2006 г.
  15. ^ Петерсон, Л. и Дэви, Б. Компьютерные сети (5-е издание): системный подход. Моргон Кауфманн, март 2011 г.
  16. ^ Справочник по RFC. IP, Интернет-протокол.
  17. ^ Стринструп М. Маршрутизация в сетях связи. Прентис Холл, апрель 1995 г.
  18. ^ Андерсон, П. и Джеймс, Л. Производительность стремительно растет, функции меняются - Обзор: балансировщики нагрузки . NetworkWorldFusion, июнь 1999 г.
  19. ^ Мурти, С. Маршрутизация в сетях с коммутацией пакетов с использованием алгоритмов поиска пути . Калифорнийский университет в Санта-Крус, 1996 год.
  20. Перейти ↑ U. of Maryland. Введение, скорость и задержка . 2009 г.
  21. ^ Руководство Nokia Communications Framework. Что такое самолеты? . Февраль 2010 г.
  22. ^ Вин, Х. Приложения для обработки пакетов: Обзор . Univ. Техаса, осень 2003 г.
  23. ^ Редди, М. Транскодирование и преобразование видео - 31 вид видео! . Вела, сентябрь 2011 г.
  24. ^ Эльханани, И. и Хамди, М. Архитектуры высокопроизводительной коммутации пакетов. Springer, ноябрь 2011 г.
  25. ^ Селиссен, М. Потребности в обработке пакетов сбалансированы между архитектурой и сетью . EE Times, август 2002 г.
  26. ^ Фунг, А., Фунг, Дж. И Ньюэлл, Д. Улучшенное масштабирование SMP Linux: управляемое пользователем соответствие процессоров . Intel Software Network, октябрь 2008 г.
  27. ^ CDC Innovation. 6WIND обеспечивает 10-кратное ускорение функций обработки пакетов на новых многоядерных платформах Intel® . Март 2010 г.
  28. ^ NetLogic Microsystems. Усовершенствованные алгоритмические процессоры, основанные на знаниях .
  29. ^ Intel. Обработка пакетов с помощью многоядерных процессоров Intel® . 2008 г.
  30. ^ Cheerla, R. Сравнение архитектуры для высокопроизводительных систем оптимизации WAN . Infineta, Cardinal Directions, март 2011 г.
  31. ^ Cavium. OCTEON II CN63XX многоядерные процессоры интернет-приложений MIPS64
  32. ^ NetLogic Microsystems. многоядерные процессорные решения
  33. ^ dpacket.org Введение в глубокую проверку / обработку пакетов .
  34. ^ Форум по многоядерной обработке пакетов

Внешние ссылки [ править ]

  • Живая история. « История Интернета »
  • Хау, Уолт. (2010) « Краткая история Интернета »
  • Интернет-общество. « Истории Интернета »
  • Живая история. « История коммутации пакетов »
  • Робертс, доктор Лоуренс Г. (ноябрь 1978 г.). « Эволюция пакетной коммутации »
  • Маршалл, Дэйв. « История Интернета - Хронология. ”
  • Рами Розен " Сетевое ускорение с помощью DPDK ", статья на lwn.net, июль 2017 г.
  • Рами Розен « Сетевое взаимодействие в пользовательском пространстве с помощью DPDK », статья в Linux Journal, апрель 2018 г.