П/з №2. Сетевые устройства и их функции
1. Устройства физического уровня
Сетевая карта
Сетевая карта - это устройство, позволяющее получать сетевые сигналы и отправлять их.
Можно сказать, что это интерфейс взаимодействия с сетью. Так как большинство устройств являются модульными (состоят из нескольких модулей, например компьютер или телефон), то сетевые карты подключаются к слотам на материнской плате. Для работы в сети каждый хост должен быть оснащён платой сетевого интерфейса (Network Interface Card - NIC), также называемой сетевым адаптером. Как правило, такие устройства могут функционировать и без компьютерной сети. Каждый адаптер NIC имеет уникальный код, называемый MAC-адресом.
Рисунок 1 - Сетевая карта Ethernet
WIFI-адаптер
WIFI-адаптер - это устройство (по функциям похоже на сетевую карту), необходимое хосту для получения доступа к беспроводной сети.
![]() |
![]() |
---|---|
а | б |
Рисунок 2 - Беспроводная сетевая карта Wi-Fi (IEEE 802.11): a - USB; б - PCI-e
Повторитель
Повторитель - это устройство, которое способно усиливать и заново формировать форму входящего аналогового сигнала сети на расстояние другого сегмента (т.е. повторять). Это особенно полезно для длинных линий связи, т.к. при передаче сигнал имеет свойство затухать. Когда сигналы покидают передающую станцию, они являются чёткими и легко распознаваемыми. Однако, чем больше длина кабеля, тем более слабым и менее различимым становится сигнал по мере прохождения по сетевой передающей среде. Целью использования повторителя является регенерация и ресинхронизация сетевых сигналов на битовом уровне, что позволяет передавать их по среде на большее расстояние.
Рисунок 3 - Повторитель сигнала
Концентратор
Концентратор (Hub) -- это центральное устройства кабельной системы или сети физической топологии "звезда", которые при получении пакета на один из своих портов пересылает его на все остальные. В результате получается сеть с логической структурой общей шины. Различают концентраторы активные и пассивные. Активные концентраторы усиливают полученные сигналы и передают их. Пассивные концентраторы пропускают через себя сигнал, не усиливая и не восстанавливая его.
Он просто принимает электронные сигналы одного порта и воспроизводит (или ретранслирует) то же сообщение для всех остальных портов. Концентраторы и повторители имеют похожие характеристики, поэтому концентраторы часто называют многопортовыми повторителями (multiport repeater).
![]() |
![]() |
---|---|
а | б |
Рисунок 4 - Концентратор (Hub): а - устройство концентратор; б - схема сегмента локальной сети с концентратором
Терминатор
Терминаторы - это резисторы номиналом 50 Ом, которые производят затухание сигнала на концах сегмента сети. Чаще всего используется для топологий типа «шина».
![]() |
![]() |
---|---|
а | б |
Рисунок 5 - а - терминаторы; б - схема подключения терминаторов
2. Устройства канального уровня
Сетевой мост
Сетевой мост (bridge) - это устройство, используемое для объединения сегментов сети. Чаще всего он соединяется с «главным» устройством сегмента сети (т.е. тот, который коммутирует в себе все устройства сегмента сети).
При получении из сети кадра (пакета) мост проверяет в его заголовке MAC-адрес и, если он принадлежит данной подсети, передаёт (транслирует) кадр дальше в тот сегмент, которому предназначался данный кадр. Если кадр не принадлежит данной подсети, мост ничего не делает.
Мосты «изучают» характер расположения сегментов сети путём построения адресных таблиц вида «Интерфейс: MAC-адрес», в которых содержатся адреса всех сетевых устройств и сегментов, необходимых для получения доступа к данному устройству. Если порт пункта назначения в данный момент занят, то мост может временно сохранить фрейм до освобождения порта.
Рисунок 6 - Сетевой мост
Коммутатор
Коммутатор - это устройство, предназначенное для объединения нескольких сетевых устройств. Он имеет несколько портов (от 1 до более 100), каждый из них сопоставляется с конкретным устройством. В отличие от концентратора, коммутатор в состоянии передать сообщение конкретному узлу. Когда узел отправляет сообщение другому узлу через коммутатор, тот принимает и декодирует кадры и считывает физический (MAC) адрес сообщения. Для того, чтобы передать кадры, коммутаторы используют таблицу MAC-адресации, в которой номер порта сопоставляется с MAC-адресом.
Для каждого нового соединения между узлами создается новый канал. Такие отдельные каналы позволяют устанавливать несколько соединений одновременно без возникновения коллизий.
Коммутаторы используются так же для микросегментации (это архитектура, при которой на каждый коммутатор приходится один сервер, который непосредственно управляет всеми остальными подключёнными к коммутатору устройствами).
Следует также учесть, что существуют коммутаторы, которые способны решать часть задач третьего уровня модели OSI. Такие коммутаторы ещё называют коммутаторами 2+ уровня.
Рисунок 7 - Коммутатор Cisco Catalyst
Точка доступа WIFI
Точка доступа WIFI - это устройство, которое даёт доступ к беспроводной локальной сети другим хостам. Важно заметить, что это только точка доступа! Она не управляет сетью (В отличие от WIFI-роутера).
Рисунок 8 - Точка доступа Cisco
3. Устройства сетевого уровня
Маршрутизатор
Маршрутизатор - это устройство, которое решает задачу маршрутизации. Если коммутаторы направляют сообщения конкретному устройству сразу на порт, то маршрутизатор соединяет несколько подсетей. Работу маршрутизатора можно отдалённо представить как работу почтальона.
В домашних условиях используют именно маршрутизатор. Коммутаторы же чаще всего ставят на предприятиях, там, где нужно подключить сразу большое количество сетевых устройств и компьютеров. Также коммутатор не работает с интернетом -- именно поэтому его нет смысла устанавливать дома. Аналогично на предприятиях устанавливают и роутеры, которые помогают распределять трафик между несколькими сетями.
В крупных сетях маршрутизаторы являются главными устройствами, регулирующими перемещение по сети потоков данных. В принципе маршрутизаторы позволяют обмениваться информацией любым типам компьютеров.
Рисунок 9 - Маршрутизатор Mikrotik
Рисунок 10 - Схема подключения маршрутизатора
WIFI-роутер
WIFI-роутер - это роутер (маршрутизатор), который имеет точку доступа WIFI. Помимо возможности проводного доступа, он так же предоставляет доступ к беспроводной среде технологии WIFI.
4. Устройства 4-5 уровня
Межсетевой экран
Межсетевые экраны (firewall, брандмауэры) - это сетевые устройства, реализующие контроль за поступающей в локальную сеть и выходящей из нее информацией и обеспечивающие защиту локальной сети посредством фильтрации информации. Большинство межсетевых экранов построено на классических моделях разграничения доступа, согласно которым субъекту (пользователю, программе, процессу или сетевому пакету) разрешается или запрещается доступ к какому-либо объекту (файлу или узлу сети) при предъявлении некоторого уникального, присущего только этому субъекту, элемента. В большинстве случаев этим элементом является пароль. В других случаях таким уникальным элементом является микропроцессорные карточки, биометрические характеристики пользователя и т. п. Для сетевого пакета таким элементом являются адреса или флаги, находящиеся в заголовке пакета, а также некоторые другие параметры.
Таким образом, межсетевой экран - это программный и/или аппаратный барьер между двумя сетями, позволяющий устанавливать только авторизованные межсетевые соединения. Обычно межсетевые экраны защищают соединяемую с Internet корпоративную сеть от проникновения извне и исключает возможность доступа к конфиденциальной информации.
Рисунок 11 - Межсетевой экран ZyXel
Шлюз
Шлюзы (Gateway) - программно-аппаратные комплексы, соединяющие разнородные сети или сетевые устройства. Шлюзы позволяет решать проблемы различия протоколов или систем адресации. Они действует на сеансовом, представительском и прикладном уровнях модели OSI.
Сетевой шлюз конвертирует протоколы одного типа физической среды в протоколы другой физической среды (сети). Например, при соединении локального компьютера с сетью Интернет обычно используется сетевой шлюз.
Маршрутизатор (он же - роутер) является одним из примеров аппаратных сетевых шлюзов. Сетевые шлюзы могут быть аппаратным решением, программным обеспечением или тем и другим вместе, но обычно это программное обеспечение, установленное на роутер или компьютер.
Рисунок 12 - Сетевой шлюз NetGear
Коммутация пакетов. Принципы коммутации пакетов
Основное назначение многопротокольного маршрутизатора - коммутация пакетов из одного сетевого сегмента в другой. В межсетевой операционной системе системообразующими являются принципы коммутации пакетов, в то время как диспетчер памяти и планировщик - это часть инфраструктуры маршрутизатора. Методы и схемы коммутации, используемые IOS, строго определяют, каким, образом маршрутизатор выполняет свою основную задачу.
Операция обработки данных сама по себе проста и состоит из следующих этапов:
- Этап 1. Пакет приходит в интерфейс.
- Этап 2. Определяется адрес получателя пакета и сравнивается со списком известных получателей.
- Этап 3. Если найдено совпадение, пакет пересылается в соответствующий интерфейс.
- Этап 4. Если совпадение с соответствующим списком не найдено, то пакет игнорируется.
И вроде как, ничего сложного нет, однако проблема состоит не в том, как коммутировать пакеты, а в том, как быстро их коммутировать. Коммутация пакетов - это процесс, который требует обработки большого количества данных. В отличие от ресурсоемких процессов, для его ускорения недостаточно просто использовать более быстрый процессор. Скорость коммутации пакетов может сильно зависеть от других параметров, например от производительности шины ввода-вывода и скорости доступа к памяти. Задача разработчиков, IOS состоит в том, чтобы обеспечить наибольшую скорость коммутации пакетов при ограниченных ресурсах производительности процессора, шины ввода-вывода и памяти.
В связи с постоянным увеличением размеров и количества маршрутизируемых сетей естественным является непрерывная модернизация и улучшение методов коммутации операционной системой. В первой версии операционной системы IOS использовался только один метод коммутации пакетов, который называется программной коммутацией (process switching).
В новых версиях появились более современные улучшенные методы коммутации, некоторые из них основаны на аппаратно-зависимой оптимизации, иные используют программные приемы, которые хорошо работают на многих других платформах.
На сегодняшний день система IOS может коммутировать до нескольких сотен тысяч пакетов в секунду с использованием таблицы маршрутизации, содержащей сотни тысяч маршрутов.
Ниже перечислены все методы коммутации пакетов, включенные в операционную систему Cisco IOS версии 12.0 (Cisco IOS Release 12.0).
- программная коммутация;
- быстрая коммутация (Fast switching);
- автономная коммутация (Autonomous switching);
- процесс коммутации корпорации Silicon (Silicon switching engine switching, SSE switching);
- оптимальная коммутация (Optimum switching);
- распределенная быстрая коммутация (Distributed fast switching);
- экспресс-пересылка корпорации Cisco (Cisco Express Forwarding, CEF);
- распределенная экспресс-пересылка корпорации Cisco (Distributed Cisco Express Forwarding).
Ниже будут описаны детали четырех из перечисленных выше методов:
- программной коммутации;
- быстрой коммутации;
- оптимальной коммутации;
- экспресс-коммутации корпорации Cisco.
Программная коммутация Process switching
Программная коммутация - это первый метод коммутации, который использовался в системе IOS. В своей основе для коммутации пакетов он использует метод последовательного перебора (brute-force method, когда для каждого пакета, методом перебора отыскивается соответствие сначала в таблице маршрутизации а затем выбирается соответствующий интерфейс).
Метод программной коммутации наименее оптимизирован и поэтому требует много процессорного времени. Однако преимуществом этого метода является независимость от аппаратного обеспечения, что позволяет применять его во всех устройствах, работающих под управлением системы Cisco IOS. Кроме того, программная коммутация позволяет использовать некоторые механизмы распределения нагрузки, которые недоступны большинству других методов.
В приведенном примере процесс обработки пакета начинается с сетевого интерфейса на маршрутизаторе, который считывает пакеты из среды передачи данных. Аппаратная часть интерфейса получает пакеты и пересылает их в буфер ввода-вывода (первый этап).
Сетевой интерфейс посылает прерывание основному процессору, сообщая ему о том, что пришел пакет, находящийся в буфере ввода-вывода, который необходимо обработать; этот процесс называется прерывание на получение (прерывание получения и прерывание передачи). Обработчик прерываний IOS считывает информацию из заголовка пакета (тип инкапсуляции, заголовок сетевого уровня и др.), определяет, что данный пакет является пакетом протокола IР, и помещает его в очередь пришедших пакетов для соответствующего процесса коммутации (второй этап). Для пакетов протокола IP рассмотренный процесс называется ip_input.
Процесс ip_input начинает выполняться в том случае, когда хотя бы один пакет по падает во входящую очередь (третий этап). По окончании работы процесса ip_input (четвертый этап) начинается операция пересылки пакета. На этом этапе проводятся все проверки и выбирается направление пересылки входящего пакета. В рассмотренном примере ip_input просматривает таблицу маршрутизации на наличие маршрута к получателю IP-пакета. Если маршрут найден, то по записи в таблице маршрутизации определяется адрес следующей точки перехода (следующего маршрутизатора на пути к получателю пакета). Затем из таблицы протокола ARP (Address Resolution Protocol) информация, необходимая для формирования нового заголовка MAC (Media Access Control), для пересылки пакета к следующей точке перехода. Процесс ip_input формирует новый заголовок MAC и записывает его поверх старого во входящем пакете, после чего он помещается в очередь для отправки через выходной сетевой интерфейс (этап пятый).
Когда аппаратная часть исходящего интерфейса определяет, что в очереди находится пакет для отправки, она считывает его из буфера ввода-вывода и передает в сеть (шестой этап).
Рисунок 13 - Алгоритм программной коммутации
После того как аппаратная часть закончит передачу пакета, интерфейс посылает прерывание основному процессору, сообщая, что пакет уже отправлен (прерывание на передачу). Операционная система IOS обновляет счетчик исходящих пакетов на интерфейсе и освобождает место в буфере ввода-вывода, занятое отправленным пакетом (седьмой этап).
Балансировка нагрузки каналов с использованием программной коммутации
Одно из преимуществ программной коммутации - это возможность организовать пакетную балансировку нагрузки. Пакетная балансировка нагрузки предоставляет относительно простой способ пересылки трафика по различным маршрутам в том случае, когда существует несколько путей к получателю. Когда к получателю ведет несколько маршрутов, то пакеты, обработанные процессом ip_input, автоматически распределяются между возможными путями достижения получателя. Выбор пути осуществляется исходя из метрики маршрутизации (также известной как удельный вес маршрута), определенной для каждого маршрута.
Параметр метрики или удельный вес маршрута в таблице маршрутизации определяется из счетчика балансировки нагрузки (load share counter) для определения пути прохождения каждого пакета. Принципы работы балансировки, иллюстрирует рис. 14.
![]() |
![]() |
---|---|
а | б |
Рисунок 14 - а - схема сегмента сети; б - пример конфигурации сети
Маршрутизатор A (RouterA) имеет два пути к сети 10.1.4.0/24
(см. рис. 14 а). В примере показаны два эквивалентных пути для этого маршрутизатора.
Обратите внимание на звездочку (*) возле одного из сетевых маршрутов в примере, которая означает, что для коммутации следующего пакета в сеть 10.1.4.0/24
будет использоваться именно этот маршрут. Коэффициент балансировки нагрузки (traffic share count) для обоих маршрутов равен единице. Это означает, что пакеты будут по очереди отправляться то по одному, то по другому маршруту.
В приведенном примере первый полученный пакет будет отправлен через узел 10.1.3.1
, а второй - через узел 10.1.2.1
, третий снова через 10.1.3.1
и т.д.
Некоторые протоколы маршрутизации семейства IР, как, например, протокол маршрутизации внутренних граничных маршрутизаторов (Interior Gateway Routing Protocol - IGRP) и расширенный протокол IGRP (Enhanced IGRP), могут назначать разные метрики в таблице маршрутизации. В этом случае алгоритм балансировки нагрузки будет иметь незначительные отличия. Если изменить конфигурацию сети на рис. 14 таким образом, что один из путей будет иметь вдвое большую пропускную способность, то получим сеть, которая показана на рис. 15.
Обратите внимание на значение коэффициента балансировки нагрузки в результате выполнения команды show ip route
. Меньший удельный вес маршрута через устройство с адресом 10.1.3.1
приводит к тому, что значение данного коэффициента равно 2; больший вес маршрута к устройству 10.1.2.1
дает значение коэффициента балансировки нагрузки, равное 1.
Теперь маршрут с большим значением указанного коэффициента будет пропускать через себя два пакета в расчете на каждый пакет, который будет проходить через путь с меньшим значением коэффициента балансировки нагрузки (рис. 15).
Рисунок 15 - Схема балансировки нагрузки между маршрутизаторами
Быстрая коммутация Fast switching
Термин кэш означает хранение некоторого, часто используемого подмножества в большом множестве данных, локальной области хранения информации с очень быстрым доступом.
Быстрая коммутация - кэширование для экономии ресурсов. Например, для повышения производительности компьютер может хранить в оперативной памяти копию данных с жесткого диска, которые часто используются, или центральный процессор может с упреждением записывать последовательность инструкций в очень быструю память для увеличения производительности.
Кэш можно охарактеризовать двумя основными параметрами: он имеет относительно небольшой размер по сравнению с обшей областью данных и предоставляет очень быстрый доступ к любым данным, которые он содержит.
Рисунок 16 - Алгоритм быстрой коммутации
Разработчики операционной системы IOS использовали описанные выше концепции при создании быстрого кэша. Быстрый кэш - это структура данных, используемая в системе IOS, для хранения копии комбинации доступности адресата, интерфейса и МАС-заголовка, найденных в процессе коммутации пакетов. Для понимания механизма использования быстрого кэша рассмотрим пример программной коммутации, приведенный выше. Добавим еще один этап к коммутации, выполняемой процессом ip_input. После того как ip_input определит адрес следующей точки перехода, необходимый интерфейс и МАС-заголовок пакета, добавим операцию сохранения найденной информации в специальной структуре данных, позволяющей получить быстрый доступ к любой записи в кэше, основанной на IP-адресе получателя пакета. Подобная структура называется быстрым кэшем. Через некоторое время процесс ip_input создаст достаточно большое количество записей в кэше часто используемых IP-адресов получателей пакетов. Теперь рассмотрим, как описанный выше кэш используется в процессе коммутации пакетов. На рис. 17 показан алгоритм механизма быстрой коммутации.
По сравнению с программной коммутацией здесь присутствует еще один элемент - быстрый кэш. Как и прежде, процесс коммутации начинается с аппаратной части интерфейса, которая получает пакет из среды передачи данных. Получив пакет, она помешает его в буфер ввода-вывода - первый этап на рис. 17.
На втором этапе аппаратная часть интерфейса посылает прерывание центральному процессору, информируя его о том, что пришедший пакет находится в буфере ввода-вывода. Обработчик прерываний операционной системы IOS проверяет заголовок пакета и убеждается, что это пакет протокола IP. Затем, вместо помещения пакета, как это делалось раньше, в очередь для процесса ip_input, обработчик прерываний проверяет быстрый кэш на наличие в нем записи адреса устройства-получателя. При наличии записи в кэше обработчик прерываний считывает МАС-заголовок в таблице и помешает его в пакет. Из записи в кэше также определяется указатель для соответствующего выходного интерфейса. Третий этап демонстрирует чтение записи из кэша и переписывание МАС-адреса пакета.
Затем центральный процессор (в течение времени обработки того же прерывания) сообщает аппаратной части выходного интерфейса, что пакет, находящийся в буфере ввода-вывода, готов для передачи, и заканчивает обработку прерывания, следовательно, другие процессы могут продолжать работу - четвертый этап.
При обработке прерывания все процессы в системе останавливаются до завершения работы обработчика прерываний.
Аппаратная часть интерфейса выводит из очереди пакет, находящийся в буфере ввода-вывода, и отправляет его в среду передачи данных - пятый этап. Затем посылается прерывание основному процессору для обновления счетчиков и освобождения места в буфере ввода-вывода, занимаемого пакетом - шестой этап.
Данный пример только иллюстрирует, как работает механизм быстрой коммутации. Обратите внимание на то, что процесс ip_input не принимает участия в коммутации пакета; фактически ни один отложенный процесс при работе метода быстрой коммутации не влияет на сам процесс коммутации до тех пор, пока существует запись в кэше. При использовании быстрого кэша система IOS выполняет всю последовательность коммутации пакета в течение очень короткого периода одного прерывания - Кэширование позволяет разделить ресурсоемкую операцию выбора маршрута с относительно легкой процедурой пересылки пакета. Итак, метод быстрой коммутации вводит понятие "маршрутизировать однажды, пересылать - много раз".
Выделим основные части механизма быстрой коммутации. Как уже было сказано выше, быстрый кэш формируется в тот момент, когда пакет программно коммутируется. Из-за того, что программная коммутация создает запись в кэше, первый пакет, посланный любому получателю, всегда будет коммутироваться с помощью указанного метода. Далее в действие вступает механизм быстрой коммутации и используется до тех пор, пока существует запись в кэше.
Метод использования механизма программной коммутации для заполнения быстрого кэша работает хорошо при определенных условиях: сеть должна быть стабильной с небольшими изменениями в маршрутизации, поток данных в основном идет между небольшим количеством получателей. Эти условия справедливы в большинстве случаев. В некоторых ситуациях, как, например, для "Backbone Internet"(совокупность быстрых каналов и обслуживающих их маршрутизаторов, объединяющих крупные узлы сети), они нарушаются. В случае магистрального канала возрастает количество "промахов" кэша (ситуация, когда для пакета не найдена запись в кэше), и как результат - большее количество пакетов коммутируется методом программной коммутации. Также возможна ситуация, приводящая к очистке кэша, когда старые записи в кэше переписываются новыми из-за отсутствия свободного места в кэше для всех необходимых записей.
Оптимальная коммутация Optimum switching
Оптимальной коммутацией называют быструю коммутацию с небольшой оптимизацией кэша. Как и при быстрой коммутации, механизм оптимальной коммутации выполняет всю операцию коммутации пакета в течение одного прерывания.
Основное отличие между механизмами оптимальной и быстрой коммутации состоит в методе доступа к записям кэша. Программное обеспечение метода оптимальной коммутации разработано так, чтобы использовать преимущества специфической архитектуры процессора. Код для метода быстрой коммутации общий и не оптимизирован для какого-либо определенного процессора. В отличие от быстрой коммутации, метод оптимальной коммутации применим только для протокола IP.
Выше было показано, что доступ к быстрому кэшу осуществлялся с помощью хеш-таблицы в ранних версиях и с помощью бинарного базисного дерева в поздних версиях системы IOS. Доступ к кэшу методом оптимальной коммутации осуществляется через 256-ветвистое дерево со множеством путей (так называемое м-дерево (mtree - дерево или mtrie - древо)). На рис. 17 показан пример м-дерева с 256 ветвями.
Рисунок 17 - Структура кэша потоков
Информация о доступности адресата и МАС-заголовке получателя хранится во множестве узлов, каждый из которых имеет 256 потомков. Несмотря на то, что такое дерево предоставляет более быстрый способ выборки информации, чем бинарное дерево быстрого кэша, на оптимальный кэш накладываются те же ограничения, что и на быстрый.
Механизм оптимальной коммутации во многом совпадает с быстрой коммутацией, в частности наиболее важные пункты совпадений алгоритмов перечислены ниже:
Запись кэша создается при обработке первого пришедшего пакета механизмом программной коммутации.
- записи в кэше устаревают и аннулируются, как только изменяется информация в таблице маршрутизации или другая кэшируемая информация;
- возможности балансировки нагрузки также ограничены использованием только адреса получателя;
- одинаковые правила используются для определения, какая запись в кэше соответствует каждому конкретному получателю.
Выводимая командой show ip cache optimum
информация, которая приведена на рис.18, очень похожа на результат команды show ip cache verbose
. Основное отличие состоит в первых строках подробной информации о кэше, отображающих данные об описанном выше м-дереве, в
котором хранится вся необходимая информация.
Первые несколько строк вывода под заголовком Optimum Route Cache дают информацию о количестве узлов в м-дереве, конечных узлов дерева, узлов, связанных с любыми другими узлами (что проявляется при наличии рекурсивных маршрутов), о размере выделенной памяти и счетчике обновлений м-дерева.
В начале работы алгоритма кэширования не все узлы м-дерева оптимального кэша содержат записи (данные); большинство потомков каждого узла ссылаются на NULL
(нулевой указатель). Несмотря на то что кэш заполняется при обработке пакетов методом программной коммутации и что постепенно количество заполненных узлов увеличивается, скорее всего вы никогда не увидите полностью заполненное м-дерево оптимального кэша.
Рисунок 18 - Информация о записях кэша
Экспресс-продвижение Cisco Express Forwarding - CEF
Экспресс-пересылка корпорации Cisco (Cisco Express Forwarding - CEF) - это наиболее современный и быстрый метод коммутации, реализованный в операционной системе IOS. Изначально он был разработан для того, чтобы преодолеть основные недостатки метода быстрой коммутации. Возвращаясь к описанию метода быстрой коммутации, обратим внимание на его основные недостатки, которые перечислены ниже:
- недостаточная поддержка перекрывающихся записей кэша;
- любые изменения в таблице маршрутизации или таблице протокола ARP из-за недостатка или отсутствия взаимосвязи кэша и данных таблиц, приводят к аннулированию большой части кэша;
- первый пакет для любого получателя должен быть обработан методом программной коммутации для создания записи в кэше;
- методу присуща неэффективная балансировка нагрузки в некоторых ситуациях (преимущественно в том случае, когда много машин обмениваются информацией с одним сервером).
Большинство из этих недостатков не создают проблем в корпоративных сетях среднего размера, потому что маршруты изменяются достаточно редко и таблица маршрутизации не очень велика. Однако существует область, в которой перечисленные ограничения приводят к появлению проблем, а именно: Backbon Internet и магистральные каналы.
Как работает CEF
В отличие от метода быстрой коммутации, которая кэширует часть таблицы маршрутизации и таблицы МАС-адресов, алгоритм CEF создает отдельную структуру, полностью воспроизводящую таблицы маршрутизации и МАС-адресов. Коммутация CEF поддерживает две основные структуры, которые обобщенно могут быть названы как "быстрый кэш" CEF и приведены ниже:
- CEF-таблица;
- таблица связей.
CEF-таблица
CEF-таблица - это "урезанная" версия таблицы маршрутизации, представленная в виде 256-ветвистого м-древа для получения оптимальной производительности. Вы можете отобразить размер CEF-таблицы (и другую основную информацию о таблице) на экране с помощью команды show ip cef summary
, как показано в примере (рис. 19).
Рисунок 19 - CEF-таблица
В структуре 256-ветвистого м-древа каждый узел может иметь до 256 потомков. В CEF-таблице каждый потомок (или связь) используется для представления разных адресов в одном октете IP-адреса (рис. 20).
Рисунок 20 - М-древо CEF
Примечание
При использовании структуры данных в виде м-дерева данные хранятся внутри самого дерева; например, м-дерево кэша метода оптимальной коммутации содержит МАС-заголовок, используемый при коммутации пакета. В структуре м-древа само дерево используется для нахождения нужных данных, но в нем не содержится никакой информации.
Например, для IP-адреса 10.10.10.4
поиск данных осуществляется выбором десятого потомка от корня дерева, десятого потомка полученного узла, еще раз отбором десятого потомка уже следующего полученного узла, а затем выбором четвертого потомка последнего узла. Этот последний узел, или конечный узел, содержит указатель на запись в другой внешней таблице, в алгоритме, называемом таблицей связей. Таблица связей содержит МАС-заголовки и другую информацию, необходимую для коммутации пакета.
Контрольные вопросы:
- Какое устройство способно усиливать и заново формировать форму входящего аналогового сигнала сети на расстояние другого сегмента?
- Чем точка доступа WIFI отличается от WIFI-роутера?
- Что чаще всего используется для топологий типа «шина»?
- Что обозначает коммутатор 2+ уровня?
- На каком этапе определяется адрес получателя пакета и сравнивается со списком известных получателей?