Глава 6. Технологии коммутации
Технологии коммутации
Мостовые соединения (bridging) являются фундаментальной частью стандартов для локальных сетей IEEE. Мост был разработан с целью уменьшения количества коллизий в локальных сетях, которые изначально использовали разделяемую среду передачи, увеличения диаметра сети, а также поддержки различных протоколов сетевого уровня. Мост делил локальную сеть на два (или более) сегмента и выполнял фильтрацию кадров на основе их МАС-адресов назначения. Прежде чем переслать кадры из одного сегмента в другой, он анализировал их и передавал только в том случае, если такая передача действительно была необходима, то есть МАС-адрес рабочей станции назначения принадлежал другому сегменту.
Стандарты IEEE определяют мостовые соединения для всех технологий локальных сетей. Например, в сетях Token Ring используется алгоритм мостовой передачи с маршрутизацией от источника (source route bridging), определенный в Секции 9 стандарта IEEE 802.2, в сетях Ethernet используется алгоритм прозрачного моста (transparent bridge), который определен стандартом IEEE 802.1D.
В настоящее время основным строительным блоком для создания локальных сетей являются коммутаторы (коммутаторы Ethernet, т.к. Ethernet является основной технологией локальных сетей). Коммутатор представляет собой многопортовый мост и также функционирует на канальном уровне модели OSI. Основное отличие коммутатора от моста заключается в том, что он производительнее, может устанавливать одновременно несколько соединений между разными парами портов и поддерживает множество дополнительных возможностей, отвечающих общепринятым стандартам. Наиболее распространенными и широко используемыми в настоящее время функциями коммутаторов являются:
● виртуальные локальные сети (VLAN);
● семейство протоколов Spanning Tree – IEEE 802.1D, 802.1w, 802.1s;
● статическое и динамическое по протоколу IEEE 802.1ad агрегирование каналов Ethernet;
● обеспечение качества обслуживания QoS;
● функции обеспечения безопасности, включая аутентификацию 802.1Х, функции Port Security, IP-MAC-Port Binding и т.д.;
● SNMP-управление и др.
Помимо перечисленных функций коммутаторы могут поддерживать протоколы маршрутизации и играть роль маршрутизаторов локальной сети. В этом случае их называют коммутаторами 3-го уровня.
Алгоритм прозрачного моста
Коммутаторы локальных сетей обрабатывают кадры на основе алгоритма прозрачного моста (transparent bridge), который определен стандартом IEEE 802.1D. Процесс работы алгоритма прозрачного моста начинается с построения таблицы коммутации (Forwarding DataBase, FDB) или таблицы МАС-адресов. Напомним, что сети Ethernet являются сетями с коммутацией пакетов. Коммутация пакетов основана на таблицах, которые хранятся в памяти и содержат информацию, позволяющую определить путь до места назначения пакета.
Рис. 6.1 Таблица коммутации
Изначально таблица коммутации пуста. При включении питания, одновременно с передачей данных, коммутатор изучает расположение подключенных к нему сетевых устройств путем анализа МАС-адресов источников получаемых кадров. Например, если на порт 1 коммутатора, показанного на рисунке 6.2, поступает кадр от узла А, то он создает в таблице коммутации запись, ассоциирующую МАС-адрес узла А с номером входного порта. Записи в таблице коммутации создаются динамически, т.е. как только коммутатором будет прочитан новый МАС-адрес, то он сразу будет занесен в таблицу коммутации. Дополнительно к МАС-адресу и ассоциированному с ним порту в таблицу коммутации для каждой записи заносится время старения (aging time). Время старения позволяет коммутатору автоматически реагировать на перемещение, добавление или удаление сетевых устройств. Каждый раз, когда идет обращение по какому-либо МАС-адресу, соответствующая запись получает новое время старения. Записи, по которым не обращались долгое время, из таблицы удаляются. Это позволяет хранить в таблице коммутации только актуальные МАС-адреса, что уменьшает время поиска соответствующей записи и гарантирует, что она не будет использовать слишком много системной памяти.
Рис. 6.2 Построение таблицы коммутации
Помимо динамического создания записей в таблице коммутации в процессе самообучения коммутатора, существует возможность создания статических записей таблицы коммутации вручную. Статическим записям, в отличие от динамических, не назначается время старения.
Статическую таблицу коммутации удобно использовать для повышения сетевой безопасности, когда необходимо гарантировать подключение к сети только устройств с определенными МАС-адресами. В этом случае необходимо отключить автоизучение МАС-адресов на портах коммутатора.
Внимание: как правило, размер статической таблицы коммутации меньше размера динамической. Размеры обеих таблиц также зависят от модели коммутатора. Обычно производители указывают размеры таблиц коммутации в спецификациях устройств. |
Если в таблице коммутации появляется хотя бы одна запись, то коммутатор начинает использовать ее для пересылки кадров. Рассмотрим пример, показанный на рисунке 6.3, описывающий процесс пересылки кадров между портами коммутатора.
Когда коммутатор получает кадр, отправленный компьютером А компьютеру В, он извлекает из него МАС-адрес назначения и ищет этот МАС-адрес в своей таблице коммутации. Как только в таблице коммутации будет найдена запись, ассоциирующая МАС-адрес назначения (компьютера В) с одним из портов коммутатора, за исключением порта-источника, кадр будет передан через соответствующий выходной порт (в приведенном примере – порт 2). Этот процесс называется продвижением (forwarding) кадра.
Если бы выходной порт и порт-источник совпали, то передаваемый кадр был бы отброшен коммутатором. Этот процесс называется фильтрацией (filtering).
В том случае, если МАС-адрес назначения в поступившем кадре неизвестен (в таблице коммутации отсутствует соответствующая запись), коммутатор создает множество копий этого кадра и передает их через все свои порты, за исключением того, на который он поступил. Этот процесс называется лавинной передачей (flooding). Несмотря на то, что процесс лавинной передачи занимает полосу пропускания, он позволяет коммутатору избежать потери кадров, когда МАС-адрес приемника неизвестен.
Помимо лавинной передачи одноадресных кадров, коммутаторы также выполняют лавинную передачу многоадресных и широковещательных кадров, которые генерируются сетевыми мультимедийными приложениями.
Рис. 6.3 Передача кадра с порта на порт коммутатора
Методы коммутации
Прежде чем принять решение о передаче кадра, коммутатор получает и анализирует его содержимое. В современных коммутаторах используются следующие методы коммутации пакетов, определяющие поведение устройства при получении кадра:
● коммутация с промежуточным хранением (store-and-forward);
● коммутация без буферизации (cut-through).
Оба метода коммутации пакетов принимают решение о продвижении кадров на основе МАС-адреса получателя, но отличаются последовательностью действий, которые коммутатор выполнит, прежде чем передать или отбросить поступивший на его порт кадр.
Рис. 6.4 Методы коммутации
Метод коммутации с промежуточным хранением (store-and-forward) исторически появился первым. Он характеризуется тем, что коммутатор, прежде чем передать кадр, полностью копирует его в буфер и производит проверку на наличие ошибок. Если кадр содержит ошибки (не совпадает контрольная сумма, или кадр меньше 64 байт или больше 1518 байт), то он отбрасывается. Если кадр не содержит ошибок, то коммутатор находит МАС-адрес приемника в своей таблице коммутации и определяет выходной порт. Затем, если не определены никакие фильтры, коммутатор передает кадр через соответствующий порт устройству назначения.
Несмотря на то, что этот способ передачи связан с задержками (чем больше размер кадра, тем больше времени требуется на его прием и проверку на наличие ошибок), он обладает двумя существенными преимуществами:
● коммутатор может быть оснащен портами, поддерживающими разные технологии и скорости передачи, например, 10/100 Мбит/с, 1000 Мбит/с и 10 Гбит/с;
● коммутатор может проверять целостность кадра, благодаря чему поврежденные кадры не будут передаваться в соответствующие сегменты.
В большинстве коммутаторах D-Link реализован этот метод коммутации. Благодаря использованию в устройствах высокопроизводительных процессоров и контроллеров ASIC (Application-Specific Integrated Circuit), задержка, вносимая коммутацией store-and-forward при передаче кадров, оказывается незначительной.
Коммутация без буферизации (cut-through) была реализована в первом коммутаторе Ethernet, разработанном фирмой Kalpana в 1990 г. При работе в этом режиме теоретически коммутатор копирует в буфер только МАС-адрес назначения (первые 6 байт после преамбулы) и сразу начинает передавать кадр, не дожидаясь его полного приема. Однако современные коммутаторы не всегда реализуют коммутацию без буферизации в классическом варианте. В зависимости от реализации коммутатор дожидается приема в буфер определенного количества байтов кадра и, если на порте не определены никакие фильтры, принимает решение о его передаче. Так как при работе в режиме cut-through коммутатор не дожидается приема всего кадра, то он не выполняет проверку кадров на наличие ошибок. Проверка кадра на наличие ошибок возлагается на принимающий узел. Однако, современная сетевая инфраструктура, включающая оборудование и кабельную систему позволяет свести вероятность возникновения ошибочных кадров к минимуму.
Основным преимуществом коммутации без буферизации по сравнению с коммутацией с промежуточным хранением является уменьшение времени передачи кадров большого размера. Например, если приложение использует Jumbo-фреймы (кадры размером до 10 000 байт), то коммутатор, работающий в режиме cut-through, будет передавать данные на несколько микро или миллисекунд (в зависимости от скорости портов коммутатора) быстрее коммутатора, использующего режим store-and-forward.
Помимо этого, коммутаторы с поддержкой режима cut-through хорошо подходят для использования в сетях с приложениями, критичными к задержкам, например в центрах обработки данных.
Однако в некоторых случаях, метод cut-through теряет свои преимущества в скорости передачи. Это может произойти при перегрузке сети, использовании функций фильтрации, требующих обработки на ЦПУ, или когда порты коммутатора поддерживают разную скорость (если коммутационная матрица плохо спроектирована).
Коммутаторы D-Link серии DXS-3600-xx обеспечивают гибкость в выборе метода коммутации, т.к. поддерживают selectable store-and-forward/cut-through mode. По умолчанию в коммутаторах этой серии используется режим store-and-forward, поэтому для получения преимуществ от использования режима cut-through, администратор сети должен сначала его активизировать. Коммутатор будет копировать в буфер и изучать первые 560 байт кадра. Если размер кадра окажется больше 560 байт, коммутатор автоматически переключится в режим cut-through и начнет процесс продвижения кадра, не дожидаясь его полного приема. Соответственно для кадров, чей размер меньше или равен 560 байт, будет использоваться режим коммутации store-and-forward.