Jump to content

Обработка пакетов

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

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

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

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

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

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

Коммуникационные модели

[ редактировать ]

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

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

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

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

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

[ редактировать ]

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

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

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

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

Структура пакета

[ редактировать ]

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

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

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

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

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

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

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

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

[ редактировать ]

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

Плоскость данных

[ редактировать ]

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

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

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

Приложения управления

[ редактировать ]

Приложения для обработки данных

[ редактировать ]

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

[ редактировать ]

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

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

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

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

[ редактировать ]

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

Сетевые процессоры

[ редактировать ]

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

Многоядерные процессоры

[ редактировать ]

Многоядерный процессор — это единый полупроводниковый корпус, имеющий 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]

Глубокая проверка пакетов

[ редактировать ]

Возможность принимать решения на основе содержимого отдельных пакетов позволяет использовать широкий спектр новых приложений, таких как политика и функция правил оплаты (PCRF) и качество обслуживания. Системы обработки пакетов выделяют определенные типы трафика с помощью глубокой проверки пакетов (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. ^ ИСО/МЭК 10731:1994. Информационные технологии. Взаимосвязь открытых систем. Базовая эталонная модель. Соглашения по определению услуг OSI.
  5. ^ ITU-T X.200-199407, X.200: Информационные технологии - Взаимосвязь открытых систем - Базовая эталонная модель: Базовая модель
  6. ^ Технические вопросы и ответы. Модель OSI – что это такое; Почему это важно; Почему это не имеет значения
  7. ^ Заметки о компьютерных сетях. Преимущества 7-уровневой модели OSI
  8. ^ «DARPA — Агентство перспективных оборонных исследовательских проектов» . Архивировано из оригинала 15 января 2020 г. Проверено 5 января 2012 г.
  9. ^ Живой Интернет. ARPANET — Первый Интернет
  10. ^ Школы W3, Учебное пособие по TCP/IP
  11. ^ Шелдон, Том. Пакеты и сети обработки пакетов . Линкционарий, 2001.
  12. ^ Коупленд, Ли. Краткое исследование: сети с коммутацией пакетов и сети с коммутацией каналов . Компьютерный мир, март 2000 г.
  13. ^ Негропонте, Н. Быть цифровым. Винтаж, январь 1996 г.
  14. ^ Рединг, Вивиан. Цифровая конвергенция: совершенно новый образ жизни . Выставка цифрового образа жизни, май 2006 г.
  15. ^ Петерсон, Л. и Дэви, Б. Компьютерные сети (5-е издание): системный подход. Моргон Кауфманн, март 2011 г.
  16. ^ Справочник RFC. IP, интернет-протокол.
  17. ^ Стринструп, М. Маршрутизация в сетях связи. Прентис Холл, апрель 1995 г.
  18. ^ Андерсон, П. и Джеймс, Л. Производительность растет, функции меняются - Обзор: балансировщики нагрузки . NetworkWorldFusion, июнь 1999 г.
  19. ^ Мурти, С. Маршрутизация в сетях с коммутацией пакетов с использованием алгоритмов поиска пути . Калифорнийский университет в Санта-Крус, 1996 год.
  20. ^ Университет Мэриленда. Введение, скорость и задержка . 2009 год
  21. ^ Руководство по коммуникационной платформе Nokia. Что такое самолеты? . Февраль 2010.
  22. ^ Вин, Х. Приложения для обработки пакетов: обзор . унив. Техаса, осень 2003 г.
  23. ^ Редди, М. Транскодирование и перевод видео - Видео в 31 вкусе! . Вела, сентябрь 2011 г.
  24. ^ Эльханани И. и Хамди М. Высокопроизводительные архитектуры коммутации пакетов. Спрингер, ноябрь 2011 г.
  25. ^ Селиссен, М. Необходимость обработки пакетов сбалансирована между архитектурой и сетью . EE Times, август 2002 г.
  26. ^ Фунг А., Фунг Дж. и Ньюэлл Д. Улучшенное масштабирование SMP в Linux: привязка процессора под управлением пользователя . Intel Software Network, октябрь 2008 г.
  27. ^ Инновации CDC. 6WIND обеспечивает 10-кратное ускорение функций обработки пакетов на новых многоядерных платформах Intel® . Март 2010 г.
  28. ^ NetLogic Микросистемы. Усовершенствованные процессоры, основанные на алгоритмических знаниях .
  29. ^ Интел. Обработка пакетов с помощью многоядерных процессоров Intel® . 2008.
  30. ^ Черла, Р. Сравнение архитектуры высокопроизводительных систем оптимизации глобальных сетей . Инфинета, Cardinal Directions, март 2011 г.
  31. ^ Кавиум. Многоядерные процессоры интернет-приложений OCTEON II CN63XX MIPS64
  32. ^ NetLogic Микросистемы. многоядерные процессорные решения
  33. ^ dpacket.org Введение в глубокую проверку/обработку пакетов .
  34. ^ Форум многоядерной обработки пакетов
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6e177e0dbeff82b9e76740c1470d79e6__1713301440
URL1:https://arc.ask3.ru/arc/aa/6e/e6/6e177e0dbeff82b9e76740c1470d79e6.html
Заголовок, (Title) документа по адресу, URL1:
Packet processing - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)