В этой статье может быть слишком много ссылок на другие статьи, и, возможно, их количество нужно сократить. |
Сетевой коммутатор (жарг. свитч, свич от англ. switch «переключатель») — устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети. Коммутатор работает на канальном (втором) уровне сетевой модели OSI. Коммутаторы были разработаны с использованием мостовых технологий и часто рассматриваются как многопортовые мосты. Для соединения нескольких сетей на основе сетевого уровня служат маршрутизаторы (3 уровень OSI).
В отличие от концентратора (1 уровень OSI), который распространяет трафик от одного подключённого устройства ко всем остальным, коммутатор передаёт данные только непосредственно получателю (исключение составляет широковещательный трафик всем узлам сети и трафик для устройств, для которых неизвестен исходящий порт коммутатора). Это повышает производительность и безопасность сети, избавляя остальные сегменты сети от необходимости (и возможности) обрабатывать данные, которые им не предназначались.
Далее в этой статье рассматриваются исключительно коммутаторы для технологии Ethernet.
Принцип работы коммутатора
правитьКоммутатор хранит в памяти (т. н. ассоциативной памяти) таблицу коммутации, в которой указывается соответствие узла порту. При включении коммутатора эта таблица пуста, и он работает в режиме обучения. В этом режиме поступающие на какой-либо порт данные передаются на все остальные порты коммутатора. При этом коммутатор анализирует фреймы (кадры) и, определив MAC-адрес хоста-отправителя, заносит его в таблицу на некоторое время.
Впоследствии, если на один из портов коммутатора поступит кадр, предназначенный для хоста, MAC-адрес которого уже есть в таблице, то этот кадр будет передан только через порт, указанный в таблице. Если же MAC-адрес хоста-получателя не ассоциирован с каким-либо портом коммутатора, то кадр будет отправлен на все порты, за исключением того порта, с которого он был получен. Со временем коммутатор строит таблицу для всех активных MAC-адресов, в результате трафик локализуется.
Стоит отметить малую задержку и высокую скорость пересылки на каждом порту интерфейса.
Режимы коммутации
правитьСуществует три способа коммутации, у которых различаются задержка и надёжность передачи:
- С промежуточным хранением (store and forward). Коммутатор читает весь кадр, проверяет его на отсутствие ошибок, выбирает порт коммутации и посылает в него весь кадр.
- Сквозной (cut-through). Коммутатор считывает из кадра только адрес назначения и после посылает весь кадр в соответствующий порт, не проверяя на ошибки. Так как нет необходимости хранить в памяти весь кадр для проверки, коммутатор может послать начало кадра, не получив его конца, так что задержка ниже.
- Бесфрагментный (fragment-free) или гибридный . Этот режим является модификацией сквозного режима, который частично решает проблему коллизий. Повреждённые коллизией кадры часто короче минимально допустимого размера, равного 64 байтам, поэтому в этом режиме коммутатор отбрасывает кадры длиной меньше 64 байт, а все остальные после прочтения первых 64 байт передаёт дальше в сквозном режиме[источник не указан 1434 дня].
Задержка, связанная с «принятием коммутатором решения», добавляется к времени, которое требуется кадру для входа на порт коммутатора и выхода с него, и вместе с ним определяет общую задержку коммутатора.
Симметричная и асимметричная коммутация
правитьСвойство симметрии при коммутации позволяет дать характеристику коммутатора с точки зрения ширины полосы пропускания для каждого его порта. Симметричный коммутатор обеспечивает коммутируемые соединения между портами с одинаковой шириной полосы пропускания, например, когда все порты имеют ширину пропускания 10 Мбит/с или 100 Мбит/с.
Асимметричный коммутатор обеспечивает коммутируемые соединения между портами с различной шириной полосы пропускания, например, в случаях комбинации портов с шириной полосы пропускания 10 Мбит/с или 100 Мбит/с и 1000 Мбит/с.
Асимметричная коммутация используется в случае наличия больших сетевых потоков типа клиент-сервер, когда многочисленные пользователи обмениваются информацией с сервером одновременно, что требует большей ширины пропускания для того порта коммутатора, к которому подсоединён сервер, с целью предотвращения переполнения на этом порте. Для того, чтобы направить поток данных с порта 100 Мбит/с на порт 10 Мбит/с без опасности переполнения на последнем, асимметричный коммутатор должен иметь буфер памяти[источник не указан 2621 день].
Асимметричный коммутатор также необходим для обеспечения большей ширины полосы пропускания каналов между коммутаторами, осуществляемых через вертикальные кросс-соединения, или каналов между сегментами магистрали.
Буфер памяти
правитьВ результате коммутации могут одновременно возникнуть два кадра, предназначенные одному порту. Однако, их невозможно отправить через него одновременно, поэтому все поступающие кадры хранятся до отправки в специальной области памяти коммутатора —так называемом буфере.
Есть два способа организации буфера: буферизация по портам и буферизация с общей памятью. При буферизации по портам кадры хранятся в очередях (queue), которые связаны с отдельными входными портами. Пакет передаётся на выходной порт только тогда, когда все кадры, находившиеся впереди него в очереди, были успешно переданы. При этом возможна ситуация, когда один кадр задерживает всю очередь из-за занятости порта его пункта назначения. Эта задержка может происходить даже в том случае, когда остальные кадры могут быть переданы на открытые порты своих пунктов назначения.
При буферизации в общей памяти все кадры хранятся в общем буфере, который используется всеми портами коммутатора, каждому из которых память выделяется по требованию. Такой метод называется динамическим распределением буферной памяти. После этого кадры, находившиеся в буфере, распределяются по выходным портам. Это позволяет получить кадр на одном порте и отправить его с другого порта, не устанавливая его в очередь.
Коммутатор поддерживает карту портов, в которые требуется отправить кадры. Очистка этой карты происходит только после того, как кадр успешно отправлен.
Поскольку память буфера является общей, размер кадра ограничивается всем размером буфера, а не долей, предназначенной для конкретного порта. Это означает, что крупные кадры могут быть переданы с меньшими потерями, что особенно важно при асимметричной коммутации, то есть, когда порт с шириной полосы пропускания 100 Мбит/с должен отправлять пакеты на порт 10 Мбит/с.
Возможности и разновидности коммутаторов
править
Коммутаторы подразделяются на управляемые и неуправляемые (наиболее простые).
Более сложные коммутаторы позволяют управлять коммутацией на сетевом (третьем) уровне модели OSI. Обычно их именуют соответственно, например «Layer 3 Switch» или сокращенно «L3 Switch». Управление коммутатором может осуществляться посредством Web-интерфейса, интерфейса командной строки (CLI), протокола SNMP, RMON и т. п.
Многие управляемые коммутаторы позволяют настраивать дополнительные функции: VLAN, QoS, агрегирование, зеркалирование. Многие коммутаторы уровня доступа обладают такими расширенными возможностями, как сегментация трафика между портами, контроль трафика на предмет штормов, обнаружение петель, ограничение количества изучаемых MAC-адресов, ограничение входящей/исходящей скорости на портах, функции списков доступа и т. п.
Сложные коммутаторы можно объединять в одно логическое устройство — стек — с целью увеличения числа портов. Например, можно объединить 4 коммутатора с 24 портами и получить логический коммутатор с 90 ((4*24)-6=90) портами либо с 96 портами (если для стекирования используются специальные порты).
Литература
править- Дэвид Хьюкаби, Стив Мак-Квери. Руководство Cisco по конфигурированию коммутаторов Catalyst = Cisco Field Manual: Catalyst Switch Configuration. — М.: «Вильямс», 2004. — С. 560. — ISBN 5-8459-0700-4.
- Брайан Хилл. Глава 9. Основные сведения о коммутаторах // Полный справочник по Cisco = Cisco: The Complete Reference. — «Вильямс», 2002. — С. 1088. — ISBN 0-07-219280-1.
- А. А. Шимбирёв, Тетеревлева Ев. К., Тетеревлева Ек. К. — Курс лекций «Компьютерные сети» — МПТ РГТЭУ, 2013