В маршрутизации , то пересылка плоскость , иногда называют данные плоскости или плоскость пользователя , определяет часть маршрутизатора архитектуры , который решает , что делать с пакетами , прибывающих на входящем интерфейсе. Чаще всего это относится к таблице, в которой маршрутизатор просматривает адрес назначения входящего пакета и извлекает информацию, необходимую для определения пути от принимающего элемента через внутреннюю структуру пересылки маршрутизатора и к соответствующему исходящему интерфейсу. (s).
В некоторых случаях в таблице может быть указано, что пакет должен быть отброшен. В таких случаях маршрутизатор может вернуть ICMP «пункт назначения недоступен» или другой соответствующий код. Однако некоторые политики безопасности требуют, чтобы маршрутизатор отбрасывал пакет без уведомления, чтобы потенциальный злоумышленник не узнал, что цель защищена.
Элемент входящей пересылки также будет уменьшать поле времени жизни (TTL) пакета, и, если новое значение равно нулю, отбрасывает пакет. Хотя спецификация Интернет-протокола (IP) указывает, что сообщение о превышении времени протокола управляющих сообщений Интернета (ICMP) должно быть отправлено отправителю пакета (то есть узлу, указанному адресом источника), маршрутизатор может быть настроен на отбрасывание пакета. тихо (опять же в соответствии с политиками безопасности).
В зависимости от конкретной реализации маршрутизатора таблица, в которой ищется адрес назначения, может быть таблицей маршрутизации (также известной как база маршрутной информации, RIB) или отдельной базой информации о пересылке (FIB), которая заполняется (т. Е. Загружается). ) плоскостью управления маршрутизацией , но используется плоскостью пересылки для поиска на гораздо более высоких скоростях. До или после проверки пункта назначения можно обратиться к другим таблицам, чтобы принять решение об отбрасывании пакета на основе других характеристик, таких как адрес источника, поле идентификатора протокола IP или протокол управления передачей (TCP) или протокол дейтаграмм пользователя (UDP). номер порта.
Функции плоскости пересылки выполняются в элементе пересылки. [1] Высокопроизводительные маршрутизаторы часто имеют несколько элементов распределенной пересылки, поэтому маршрутизатор увеличивает производительность за счет параллельной обработки.
Исходящий интерфейс инкапсулирует пакет в соответствующий протокол канала передачи данных. В зависимости от программного обеспечения маршрутизатора и его конфигурации функции, обычно реализуемые на исходящем интерфейсе, могут устанавливать различные поля пакета, такие как поле DSCP, используемое дифференцированными услугами .
В общем, переход от входного интерфейса непосредственно к выходному интерфейсу через фабрику с минимальными изменениями в выходном интерфейсе называется быстрым путем маршрутизатора. Если пакет требует значительной обработки, такой как сегментация или шифрование, он может перейти по более медленному пути, который иногда называют плоскостью служб маршрутизатора. Плоскости обслуживания могут принимать решения о пересылке или обработке на основе информации более высокого уровня, такой как URL-адрес Web, содержащийся в полезной нагрузке пакета.
Проблемы с производительностью переадресации маршрутизатора
Продавцы разрабатывают маршрутизаторы для конкретных рынков. Дизайн маршрутизаторов, предназначенных для домашнего использования, возможно, с поддержкой нескольких ПК и VoIP-телефонии, основан на минимальной стоимости. В таком маршрутизаторе нет отдельной структуры пересылки, и есть только один активный путь пересылки: в главный процессор и из главного процессора.
Маршрутизаторы для более требовательных приложений допускают более высокую стоимость и сложность, чтобы получить более высокую пропускную способность в своих плоскостях пересылки.
На производительность переадресации маршрутизатора влияют несколько конструктивных факторов:
- Обработка на канальном уровне и извлечение пакета
- Расшифровка заголовка пакета
- Поиск адреса назначения в заголовке пакета
- Анализ других полей в пакете
- Отправка пакета через «фабрику», соединяющую входной и выходной интерфейсы.
- Обработка и инкапсуляция канала данных на исходящем интерфейсе
Маршрутизаторы могут иметь один или несколько процессоров. В однопроцессорной конструкции на эти параметры производительности влияет не только скорость процессора, но и конкуренция за процессор. Маршрутизаторы с более высокой производительностью неизменно имеют несколько элементов обработки, которые могут быть микросхемами процессора общего назначения или специализированными интегральными схемами (ASIC) для конкретных приложений .
Продукты с очень высокой производительностью имеют несколько элементов обработки на каждой интерфейсной плате. В таких схемах главный процессор не участвует в пересылке, а только в плоскости управления и обработке управления.
Бенчмаркинг производительности
В Инженерной группе Интернета две рабочие группы в области эксплуатации и технического обслуживания занимаются аспектами производительности. Группа Interprovider Performance Measurement (IPPM) фокусируется, как следует из названия, на оперативном измерении услуг. Измерения производительности отдельных маршрутизаторов или узко определенных систем маршрутизаторов являются прерогативой Рабочей группы по сравнительному анализу (BMWG).
RFC 2544 - ключевой документ BMWG. [2] Классический эталонный тест 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-адресов. Они включают:
- Двоичное дерево
- Радиксное дерево
- Четырехстороннее дерево
- Патрисия дерево [3]
Многоядерные процессоры архитектура обычно используется для реализации систем высокопроизводительных сетей. Эти платформы облегчают использование программной архитектуры, в которой высокопроизводительная обработка пакетов выполняется в среде быстрого доступа на выделенных ядрах, чтобы максимизировать пропускную способность системы. Модель выполнения до завершения минимизирует накладные расходы и задержку ОС. [4]
Аппаратное обеспечение
Для ускорения поиска использовались различные формы быстрой оперативной памяти и, в конечном итоге, базовой памяти с адресацией по содержимому (CAM). CAM, хотя и полезен в коммутаторах уровня 2, которым необходимо было искать относительно небольшое количество MAC-адресов фиксированной длины , имел ограниченную полезность с IP-адресами, имеющими префиксы маршрутизации переменной длины (см. Бесклассовая междоменная маршрутизация ). Тернарный CAM (CAM), хотя и является дорогостоящим, поддается поиску префиксов переменной длины. [5]
Одна из проблем при проектировании поискового сервера пересылки состоит в том, чтобы минимизировать объем необходимой специализированной памяти и, во все большей степени, минимизировать энергопотребление, потребляемое памятью. [6]
Распределенная пересылка
Следующим шагом в повышении скорости маршрутизаторов было создание специализированного процессора переадресации, отдельного от основного процессора. По-прежнему оставался единственный путь, но пересылка больше не должна была конкурировать с управлением в одном процессоре. Процессор быстрой маршрутизации обычно имел небольшой FIB с аппаратной памятью (например, статической оперативной памятью (SRAM)) быстрее и дороже, чем FIB в основной памяти. Основная память обычно была динамической памятью с произвольным доступом (DRAM).
Ранняя распределенная пересылка
Затем в маршрутизаторах появилось несколько элементов пересылки, которые обмениваются данными через высокоскоростную общую шину [7] или через общую память . [8] Cisco использовала разделяемые шины до их насыщения, в то время как Juniper предпочитала разделяемую память. [9]
У каждого элемента пересылки был свой FIB. См., Например, Универсальный интерфейсный процессор на Cisco 7500 [10]
В конце концов, общий ресурс стал узким местом: предел скорости общей шины составлял примерно 2 миллиона пакетов в секунду (Mpps). Ткани перекладины прорвали это узкое место.
По мере увеличения пропускной способности пересылки, даже с устранением накладных расходов, связанных с пропуском кэша, общие пути ограничивали пропускную способность. Хотя маршрутизатор может иметь 16 механизмов пересылки, при наличии одной шины единовременно возможна передача только одного пакета. Были некоторые особые случаи, когда механизм пересылки мог обнаружить, что выходной интерфейс был одним из логических или физических интерфейсов, присутствующих на карте пересылки, так что поток пакетов полностью находился внутри пересылки. Однако часто бывает проще, даже в этом особом случае, отправить пакет по шине и получить его по шине.
В то время как некоторые проекты экспериментировали с несколькими совместно используемыми шинами, в конечном итоге подход заключался в адаптации модели коммутационной панели от телефонных коммутаторов, в которой каждый механизм пересылки имел аппаратный путь к любому другому механизму пересылки. Благодаря небольшому количеству механизмов пересылки, перекрестные коммутационные сети практичны и эффективны для высокопроизводительной маршрутизации. Существуют многоступенчатые конструкции для ригелей, например сетей Клоса .
Смотрите также
Рекомендации
- ^ Структура разделения элементов управления и пересылки (ForCES) , RFC 3746, Network Working Group, апрель 2004 г.
- ^ Методология для устройств межсетевого взаимодействия , RFC 2544, С. Брэднер и Дж. Маккуэйд, март 1999 г.
- ^ Маршрутизация по наиболее длинным совпадающим префиксам , ID, W. Doeringer 'et al.', IEEE / ACM Transactions on Networking, февраль 1996 г.
- ^ «Программные модули 6WINDGate» . 6ВЕТЕР . Проверено 14 августа 2015 года .
- ^ Эффективное отображение классификатора диапазонов в троичный CAM , Симпозиум IEEE по высокоскоростным межсоединениям, Х. Лю, август 2002 г.
- ^ Снижение энергопотребления TCAM и увеличение пропускной способности , Симпозиум IEEE по высокоскоростным межсоединениям, R Panigrahy & S. Sharma, август 2002 г.
- ^ Высокопроизводительная IP-переадресация с использованием пиринга хост-интерфейса , J. Touch et al. , Proc. 9-й семинар IEEE по локальным и городским сетям (LANMAN), май 1998 г.
- ^ Многопроцессорные архитектуры с общей памятью для программных IP-маршрутизаторов , Y. Luo et al. , Транзакции IEEE в параллельных и распределенных системах, 2003 г.
- ^ Можжевельника Архитектура сети маршрутизатор , Juniper Networks Справочное руководство: JUNOS маршрутизации, конфигурации и архитектуры , Т. Томас, Addison-Wesley Professional, 2003
- ^ Аппаратная архитектура маршрутизатора Cisco 7500 , внутренняя архитектура программного обеспечения Cisco IOS (профессиональная разработка CCIE , В. Боллапрагада и др. , Cisco Press, 2000).