WikiDer > Экспедиционный самолет
В маршрутизация, то самолет-отправитель, иногда называемый плоскость данных или же плоскость пользователя, определяет часть маршрутизатор архитектура, которая решает, что делать с пакетами, поступающими на входящий интерфейс. Чаще всего это относится к таблице, в которой маршрутизатор ищет адрес назначения входящего пакета и извлекает информацию, необходимую для определения пути, от принимающего элемента через внутренний транспортная ткань маршрутизатора и к соответствующему исходящему интерфейсу (-ам).
В некоторых случаях в таблице может быть указано, что пакет должен быть отброшен. В таких случаях маршрутизатор может вернуть ICMP «пункт назначения недоступен» или другой соответствующий код. Однако некоторые политики безопасности требуют, чтобы маршрутизатор отбрасывал пакет без уведомления, чтобы потенциальный злоумышленник не узнал, что цель защищена.
Элемент входящей пересылки также будет уменьшать поле времени жизни (TTL) пакета, и, если новое значение равно нулю, отбрасывает пакет. В то время как протокол Интернета (IP) указывает, что Протокол управляющих сообщений Интернета (ICMP) время истекло сообщение должно быть отправлено отправителю пакета (то есть узлу, указанному адресом отправителя), маршрутизатор может быть настроен так, чтобы отбрасывать пакет без уведомления (опять же в соответствии с политиками безопасности).
В зависимости от конкретной реализации маршрутизатора таблица, в которой ищется адрес назначения, может быть таблица маршрутизации (также известная как база маршрутной информации, RIB) или отдельный база экспедиторской информации (FIB), который заполняется (т. Е. Загружается) плоскость управления маршрутизацией, но используется самолетом пересылки для поиска на гораздо более высоких скоростях. До или после проверки пункта назначения можно обратиться к другим таблицам, чтобы принять решение об отбрасывании пакета на основе других характеристик, таких как адрес источника, поле идентификатора протокола IP или Протокол управления передачей (TCP) или Протокол пользовательских датаграмм (UDP) номер порта.
Функции плоскости пересылки выполняются в элементе пересылки.[1] Высокопроизводительные маршрутизаторы часто имеют несколько элементов распределенной пересылки, поэтому маршрутизатор увеличивает производительность за счет параллельной обработки.
Исходящий интерфейс будет инкапсулировать пакет в соответствующем протоколе передачи данных. В зависимости от программного обеспечения маршрутизатора и его конфигурации функции, обычно реализуемые на исходящем интерфейсе, могут устанавливать различные поля пакета, такие как DSCP поле, используемое дифференцированные услуги.
В общем, переход от входного интерфейса непосредственно к выходному интерфейсу через структуру с минимальными изменениями в выходном интерфейсе называется быстрый путь роутера. Если пакет требует значительной обработки, такой как сегментация или шифрование, он может перейти по более медленному пути, который иногда называют самолет обслуживания роутера. Планы обслуживания могут принимать решения о пересылке или обработке на основе информации более высокого уровня, такой как веб-URL, содержащийся в полезной нагрузке пакета.
Проблемы с производительностью переадресации маршрутизатора
Продавцы разрабатывают маршрутизаторы для конкретных рынков. Дизайн маршрутизаторов, предназначенных для домашнего использования, возможно, с поддержкой нескольких ПК и 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 в основной памяти. Основная память обычно динамическая память с произвольным доступом (ДРАМ).
Ранняя распределенная пересылка
Затем в маршрутизаторах появилось несколько элементов пересылки, которые обменивались данными через высокоскоростной общий автобус[7] или через Общая память.[8] Cisco использовала разделяемые шины до тех пор, пока они не насыщались, в то время как Juniper предпочитала разделяемую память.[9]
У каждого элемента пересылки был свой FIB. См., Например, Универсальный интерфейсный процессор на Cisco 7500[10]
В конце концов, общий ресурс стал узким местом: предел скорости общей шины составлял примерно 2 миллиона пакетов в секунду (Mpps). Ткани перекладины прорвали это узкое место.
По мере увеличения пропускной способности пересылки, даже с устранением накладных расходов, связанных с пропуском кэша, общие пути ограничивали пропускную способность. Хотя маршрутизатор может иметь 16 механизмов пересылки, при наличии одной шины единовременно возможна передача только одного пакета. Были некоторые особые случаи, когда механизм пересылки мог обнаружить, что выходной интерфейс был одним из логических или физических интерфейсов, присутствующих на карте пересылки, так что поток пакетов полностью находился внутри пересылки. Однако зачастую даже в этом особом случае было проще отправить пакет по шине и получить его по шине.
В то время как некоторые проекты экспериментировали с несколькими общими автобусами, в конечном итоге подход заключался в адаптации поперечный переключатель модель от телефонных коммутаторов, в которой каждый механизм пересылки имел аппаратный путь ко всем остальным модулям пересылки. Благодаря небольшому количеству механизмов пересылки, перекрестные коммутационные сети практичны и эффективны для высокопроизводительной маршрутизации. Существуют многоступенчатые конструкции ригельных систем, например: Clos Networks.
Смотрите также
Рекомендации
- ^ Структура разделения элементов управления и пересылки (ForCES), RFC 3746, Сетевая рабочая группа, апрель 2004 г.
- ^ Методология для устройств сетевого взаимодействия, RFC 2544, С. Брэднер И Дж. Маккуэйд, март 1999 г.
- ^ Маршрутизация по наиболее длинным совпадающим префиксам, ID, W. Doeringer 'et al.', IEEE / ACM Transactions on Networking, февраль 1996 г.
- ^ «Программные модули 6WINDGate». 6ВЕТЕР. Получено 14 августа 2015.
- ^ Эффективное отображение классификатора диапазонов в Ternary-CAM, Симпозиум IEEE по высокоскоростным межсоединениям, Х. Лю, август 2002 г.
- ^ Снижение энергопотребления TCAM и увеличение пропускной способности, Симпозиум IEEE по высокоскоростным межсоединениям, Р. Паниграхи и С. Шарма, август 2002 г.
- ^ Высокопроизводительная IP-пересылка с использованием пиринга хост-интерфейса, J. Touch и другие., Proc. 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 г.