Плоскость данных
При маршрутизации плоскость данных , иногда называемая плоскостью пересылки или плоскостью пользователя , определяет часть архитектуры маршрутизатора , которая решает, что делать с пакетами, поступающими на входящий интерфейс. Чаще всего это относится к таблице, в которой маршрутизатор ищет адрес назначения входящего пакета и извлекает информацию, необходимую для определения пути от принимающего элемента через внутреннюю структуру пересылки маршрутизатора к соответствующему исходящему интерфейсу. (с).
В некоторых случаях в таблице может быть указано, что пакет должен быть отброшен. В таких случаях маршрутизатор может вернуть ICMP «пункт назначения недоступен» или другой соответствующий код. Однако некоторые политики безопасности требуют, чтобы маршрутизатор молча отбрасывал пакет, чтобы потенциальный злоумышленник не узнал, что цель защищена.
Входящий пересылающий элемент также уменьшит поле времени жизни (TTL) пакета и, если новое значение равно нулю, отбросит пакет. Хотя спецификация Интернет-протокола (IP) указывает, что протокола управляющих сообщений Интернета (ICMP) сообщение о превышении времени должно быть отправлено отправителю пакета (т. е. узлу, указанному исходным адресом), маршрутизатор может быть настроен на отбрасывание пакета. молча (опять же согласно политикам безопасности).
В зависимости от конкретной реализации маршрутизатора таблица, в которой ищется адрес назначения, может быть таблицей маршрутизации (также известной как база информации маршрутизации, RIB) или отдельной базой информации пересылки (FIB), которая заполняется (т. е. загружается). ) плоскостью управления маршрутизацией , но используется плоскостью пересылки для поиска на гораздо более высоких скоростях. До или после проверки места назначения можно обращаться к другим таблицам, чтобы принять решение об отбрасывании пакета на основе других характеристик, таких как адрес источника, поле идентификатора IP-протокола, протокол управления передачей (TCP) или протокол пользовательских дейтаграмм (UDP). номер порта.
Функции плоскости пересылки выполняются в элементе пересылки. [1] Высокопроизводительные маршрутизаторы часто имеют несколько элементов распределенной пересылки, поэтому маршрутизатор повышает производительность за счет параллельной обработки.
Исходящий интерфейс инкапсулирует пакет в соответствующий протокол канала передачи данных. В зависимости от программного обеспечения маршрутизатора и его конфигурации функции, обычно реализуемые на исходящем интерфейсе, могут устанавливать различные поля пакета, например поле DSCP, используемое дифференцированными службами .
В общем, переход от входного интерфейса непосредственно к выходному интерфейсу через структуру с минимальными изменениями на выходном интерфейсе называется быстрым путем маршрутизатора. Если пакету требуется значительная обработка, например сегментация или шифрование, он может перейти по более медленному пути, который иногда называют сервисной плоскостью маршрутизатора. Плоскости обслуживания могут принимать решения о пересылке или обработке на основе информации более высокого уровня, такой как веб-URL-адрес, содержащийся в полезных данных пакета.
Контраст с плоскостью управления
[ редактировать ]Плоскость данных — это часть программного обеспечения , которая обрабатывает запросы данных. [2] Напротив, плоскость управления — это часть программного обеспечения, которая настраивает и отключает плоскость данных. [3]
Концептуальное отделение плоскости данных от плоскости управления осуществлялось уже много лет. [3] Ранним примером является Unix , где основными операциями с файлами являются открытие, закрытие для плоскости управления и чтение, запись для плоскости данных. [4]
Концептуальное отделение плоскости данных от плоскости управления в программировании программного обеспечения оказалось полезным в области коммутации пакетов , где оно возникло. В сетевых технологиях плоскость данных иногда называют плоскостью пересылки, поскольку она разделяет задачи: плоскость данных оптимизирована для скорости обработки, а также для простоты и регулярности. Плоскость управления оптимизирована таким образом, чтобы обеспечить возможность настройки , обработки политик, обработки исключительных ситуаций и в целом облегчения и упрощения обработки плоскости данных. [5] [6]
Проблемы с производительностью переадресации маршрутизатора
[ редактировать ]Поставщики разрабатывают маршрутизаторы для конкретных рынков. Разработка маршрутизаторов, предназначенных для домашнего использования, возможно, поддерживающих несколько компьютеров и VoIP-телефонию, обусловлена стремлением максимально снизить стоимость. В таком маршрутизаторе нет отдельной структуры пересылки и есть только один активный путь пересылки: в главный процессор и из главного процессора.
Маршрутизаторы для более требовательных приложений допускают более высокую стоимость и сложность, чтобы обеспечить более высокую пропускную способность в своих плоскостях пересылки.
На производительность пересылки маршрутизатора влияют несколько конструктивных факторов:
- Обработка уровня канала передачи данных и извлечение пакета
- Расшифровка заголовка пакета
- Поиск адреса назначения в заголовке пакета
- Анализ других полей в пакете
- Отправка пакета через «фабрику», соединяющую входящий и исходящий интерфейсы.
- Обработка и инкапсуляция канала передачи данных на выходном интерфейсе
Маршрутизаторы могут иметь один или несколько процессоров. В однопроцессорной конструкции на эти параметры производительности влияет не только скорость процессора, но и конкуренция за процессор. Маршрутизаторы с более высокой производительностью всегда имеют несколько вычислительных элементов, которые могут быть процессорными микросхемами общего назначения или специализированными интегральными схемами для конкретных приложений (ASIC).
Продукты с очень высокой производительностью имеют несколько процессорных элементов на каждой интерфейсной карте. В таких конструкциях главный процессор не участвует в пересылке, а только в плоскости управления и обработке управления.
Сравнительный анализ производительности
[ редактировать ]В Инженерной рабочей группе по Интернету две рабочие группы в области эксплуатации и обслуживания занимаются аспектами производительности. Группа по измерению эффективности работы поставщиков (IPPM), как следует из названия, фокусируется на оперативном измерении услуг. Измерения производительности отдельных маршрутизаторов или узко определенных систем маршрутизаторов являются прерогативой Рабочей группы по сравнительному анализу (BMWG).
RFC 2544 является ключевым документом BMWG. [7] Классический тест RFC 2544 использует половину портов маршрутизатора (т. е. тестируемого устройства (DUT)) для ввода определенной нагрузки и измеряет время, в течение которого выходные данные появляются на выходных портах.
Проектирование экспедиционной информационной базы
[ редактировать ]Первоначально все направления просматривались в RIB. Возможно, первым шагом в ускорении работы маршрутизаторов было создание отдельных RIB и FIB в основной памяти, причем FIB, обычно с меньшим количеством записей, чем RIB, был организован для быстрого поиска пункта назначения. Напротив, RIB был оптимизирован для эффективного обновления протоколами маршрутизации.
Ранние однопроцессорные маршрутизаторы обычно организовывали FIB в виде хеш-таблицы , тогда как RIB мог представлять собой связанный список . В зависимости от реализации FIB может иметь меньше записей, чем RIB, или такое же количество.
Когда маршрутизаторы начали иметь отдельные процессоры пересылки, эти процессоры обычно имели гораздо меньше памяти, чем основной процессор, поэтому процессор пересылки мог хранить только наиболее часто используемые маршруты. Например, в ранних версиях Cisco AGS+ и 7000 кэш процессора пересылки мог содержать около 1000 записей маршрутов. На предприятии это часто работало вполне хорошо, поскольку насчитывалось менее 1000 серверов или других популярных подсетей назначения. Однако такой кэш был слишком мал для общей маршрутизации в Интернете. Различные конструкции маршрутизаторов вели себя по-разному, когда пункт назначения отсутствовал в кеше.
Проблемы с пропуском кэша
[ редактировать ]Состояние промаха в кэше может привести к отправке пакета обратно в главный процессор для поиска по медленному пути , имеющему доступ к полной таблице маршрутизации. В зависимости от конструкции маршрутизатора промах в кэше может привести к обновлению быстрого аппаратного кэша или быстрого кэша в основной памяти. В некоторых проектах наиболее эффективно было аннулировать быстрый кэш в случае промаха кэша, отправить пакет, вызвавший промах кэша, через главный процессор, а затем повторно заполнить кеш новой таблицей, включающей пункт назначения, вызвавший промах. Этот подход аналогичен операционной системе с виртуальной памятью, которая сохраняет самую последнюю использованную информацию в физической памяти.
Поскольку затраты на память снизились, а потребности в производительности возросли, появились FIB, которые имели такое же количество записей маршрутов, как и в RIB, но обеспечивали быстрый поиск, а не быстрое обновление. При каждом изменении записи RIB маршрутизатор изменял соответствующую запись FIB.
Альтернативы конструкции FIB
[ редактировать ]Высокопроизводительные FIB достигают своей скорости благодаря комбинациям специализированных алгоритмов и аппаратного обеспечения, зависящим от реализации.
Программное обеспечение
[ редактировать ]различные алгоритмы поиска Для поиска FIB использовались . В то время как впервые использовались известные структуры данных общего назначения, такие как хеш-таблицы , появились специализированные алгоритмы, оптимизированные для IP-адресов. Они включают в себя:
- Бинарное дерево
- Радикс-дерево
- Четырехходовая тройка
- Дерево Патрисии [8]
Архитектура многоядерного процессора обычно используется для реализации высокопроизводительных сетевых систем. Эти платформы облегчают использование программной архитектуры, в которой высокопроизводительная обработка пакетов выполняется в среде быстрого пути на выделенных ядрах, чтобы максимизировать пропускную способность системы. Модель выполнения до завершения минимизирует накладные расходы и задержки ОС. [9]
Аппаратное обеспечение
[ редактировать ]различные формы быстрой оперативной памяти и, в конечном итоге, базовая память с адресацией по содержимому Для ускорения поиска использовались (CAM). CAM, хотя и был полезен в коммутаторах уровня 2, которым требовалось искать относительно небольшое количество MAC-адресов фиксированной длины , имел ограниченную полезность с IP-адресами, имеющими префиксы маршрутизации переменной длины (см. Бесклассовая междоменная маршрутизация ). Тернарный CAM (CAM), хотя и дорогой, позволяет выполнять поиск префиксов переменной длины. [10]
Одной из задач проектирования механизма поиска пересылки является минимизация необходимого объема специализированной памяти и, во все большей степени, минимизация мощности, потребляемой памятью. [11]
Распределенная переадресация
[ редактировать ]Следующим шагом в ускорении работы маршрутизаторов было создание специализированного процессора пересылки, отдельного от основного процессора. По-прежнему существовал единый путь, но пересылке больше не приходилось конкурировать с управлением в одном процессоре. Процессор быстрой маршрутизации обычно имел небольшой FIB с аппаратной памятью (например, статической оперативной памятью (SRAM)) быстрее и дороже, чем FIB в основной памяти. Основная память обычно представляла собой динамическую память с произвольным доступом (DRAM).
Ранняя распределенная переадресация
[ редактировать ]Затем маршрутизаторы стали иметь несколько элементов пересылки, которые обменивались данными через высокоскоростную общую шину. [12] или через общую память . [13] Cisco использовала общие шины до тех пор, пока они не насыщались, а Juniper предпочитал общую память. [14]
Каждый элемент пересылки имел свой собственный FIB. См., например, универсальный интерфейсный процессор Cisco 7500. [15]
В конце концов, общий ресурс стал узким местом: предел скорости общей шины составлял примерно 2 миллиона пакетов в секунду (Mpps). Ткани с перекладинами преодолели это узкое место.
Общие пути становятся узкими местами
[ редактировать ]По мере увеличения пропускной способности пересылки, даже при устранении накладных расходов на пропуски в кэше, общие пути ограничивали пропускную способность. Хотя маршрутизатор может иметь 16 механизмов пересылки, если бы была одна шина, за раз была бы возможна только одна передача пакетов. В некоторых особых случаях механизм пересылки мог обнаружить, что выходной интерфейс был одним из логических или физических интерфейсов, присутствующих на карте пересылки, так что поток пакетов полностью находился внутри устройства пересылки. Однако зачастую даже в этом особом случае было проще отправить пакет из шины и получить его от шины.
Хотя в некоторых проектах экспериментировались с несколькими общими шинами, в конечном итоге подход заключался в адаптации модели перекрестного коммутатора на основе телефонных коммутаторов, в которых каждый механизм пересылки имел аппаратный путь к каждому другому механизму пересылки. Благодаря небольшому количеству механизмов пересылки фабрики перекрестной пересылки практичны и эффективны для высокопроизводительной маршрутизации. Существуют многоступенчатые конструкции для ригельных систем, например сетей Clos .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Структура разделения элементов пересылки и управления (ForCES) , RFC 3746, Сетевая рабочая группа, апрель 2004 г.
- ^ Конран, Мэтт (25 февраля 2019 г.). «Именованные сети данных: плоскость пересылки с отслеживанием состояния для доставки дейтаграмм» . Сетевой мир . Проверено 15 октября 2019 г.
- ^ Jump up to: а б До, Чыонг-Сюань; Ким, Ёнхан (01 июня 2017 г.). «Архитектура разделения плоскостей управления и данных для поддержки прослушивателей многоадресной рассылки при распределенном управлении мобильностью» . ИКТ Экспресс . 3 (2): 90–95. дои : 10.1016/j.icte.2017.06.001 . ISSN 2405-9595 .
- ^ Бах, Морис Дж. (1986). Проектирование операционной системы Unix . Прентис-Холл. Бибкод : 1986duos.book.....B . ISBN 9780132017992 .
- ^ Ахмад, Иджаз; Намаль, Сунет; Илианттила, Мика; Гуртоз, Андрей (2015). «Безопасность в программно-конфигурируемых сетях: обзор» (PDF) . Опросы и учебные пособия IEEE по коммуникациям . 17 (4): 2317–2342. дои : 10.1109/COMST.2015.2474118 . S2CID 2138863 .
- ^ Ся, В.; Вэнь, Ю.; Фох, CH; Ниято, Д.; Се, Х. (2015). «Опрос по программно-конфигурируемым сетям» . Опросы и учебные пособия IEEE по коммуникациям . 17 (1): 27–51. дои : 10.1109/COMST.2014.2330903 .
- ^ Методология сетевых межсетевых устройств , RFC 2544, С. Брэднер и Дж. Маккуэйд, март 1999 г.
- ^ Маршрутизация по самым длинным совпадающим префиксам , ID, В. Дерингер «и др.», Транзакции IEEE/ACM в сети, февраль 1996 г.
- ^ «Программные модули 6WINDGate» . 6ВЕТР . Проверено 14 августа 2015 г.
- ^ Эффективное отображение классификатора диапазона в Ternary-CAM , Симпозиум IEEE по высокоскоростным межсоединениям, Х. Лю, август 2002 г.
- ^ Сокращение энергопотребления TCAM и увеличение пропускной способности , Симпозиум IEEE по высокоскоростным межсоединениям, Р. Паниграхи и С. Шарма, август 2002 г.
- ^ Высокопроизводительная IP-пересылка с использованием пиринга хост-интерфейса , J. Touch et al. ,Проц. 9-й семинар IEEE по локальным и городским сетям (LANMAN), май 1998 г.
- ^ Многопроцессорные архитектуры с общей памятью для программных IP-маршрутизаторов , Ю. Луо и др. ,Транзакции IEEE в параллельных и распределенных системах, 2003 г.
- ^ Архитектура маршрутизатора Juniper Networks , Справочное руководство Juniper Networks: Маршрутизация, конфигурация и архитектура JUNOS , Т. Томас, Addison-Wesley Professional, 2003
- ^ Аппаратная архитектура маршрутизатора Cisco 7500 , Внутренняя архитектура программного обеспечения Cisco IOS (CCIE Professional Development , В. Боллапрагада и др. , Cisco Press, 2000).