Сетевой коммутатор (свитч от англ. switch — переключатель) — устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети. Коммутация одна из самых популярных современных технологий. Практически везде коммутаторы вытесняют мосты и маршрутизаторы, оставляя за последними только организацию связи через глобальную сеть. Распространение коммутаторов обусловлено тем, что они позволяют за счет сегментации повысить производительность сети. Кроме разделения сети на мелкие сегменты, коммутаторы позволяют создавать логические сети и объединять в них устройства, т.е.  создавать виртуальные сети.

Впервые коммутаторы появились в конце 80-х годов. Тогда коммутаторы использовались для перераспределения пропускной способности, т.е.  в основном, для сегментации сети. В наше время произошла переориентация, теперь в основном коммутаторы используются для прямого подключения к конечным станциям. 

Распространение коммутаторов  повысило эффективность использования сети за счет равномерного распределения полосы пропускания между пользователями и приложениями. При относительно высокой начальной стоимости они были значительно дешевле и проще в настройке и использовании, чем маршрутизаторы. Широкое распространение коммутаторов на уровне рабочих групп можно объяснить тем, что коммутаторы позволили повысить отдачу от уже существующей сети. То есть для повышения производительности всей сети не нужно менять существующую кабельную систему и оборудование конечных пользователей.

Различают четыре основных вида коммутации:

Конфигурационная коммутация;

Коммутация кадров;

Коммутация ячеек;

Преобразования между кадрами и ячейками.

Конфигурационная коммутация - нахождение соответствия между конкретным портом коммутатора и определенным сегментом сети. Это соответствие может программно настраиваться при подключении или перемещении пользователей в сети.

Коммутаторы делятся на четыре категории:

1. Простые автономные коммутаторы сетей рабочих групп позволяют некоторым сетевым устройствам или сегментам обмениваться информацией с максимальной для данной кабельной системы скоростью. Они могут выполнять роль мостов для связи с другими сетевыми сегментами, но не транслируют протоколы и не обеспечивают повышенную пропускную способность с отдельными выделенными устройствами, такими как серверы.

2. Коммутаторы рабочих групп второй категории обеспечивают высокоскоростную связь одного или нескольких портов с сервером или базовой станцией.

3. Третью категорию составляют коммутаторы сети отдела предприятия, которые часто используются для взаимодействия сетей рабочих групп. Они представляют более широкие возможности администрирования и повышения производительности сети. Такие устройства поддерживают древовидную архитектуру связей, которая используется для передачи информации по резервным каналам и фильтрации пакетов. Физически такие коммутаторы поддерживают резервные источники питания и позволяют оперативно менять модули.

4. Четвертая категория – коммутаторы сети предприятия, выполняющие диспетчеризацию трафика, определяя наиболее эффективный маршрут. Они могут поддерживать большое количество логических соединений сети. Многие производители корпоративных коммутаторов предлагают в составе своих изделий модули АТМ. Эти коммутаторы осуществляют трансляцию протоколов Ethernet в протоколы АТМ.

Технология конфигурационной коммутации сегментов Ethernet была предложена фирмой Kalpana в 1990 году. Эта технология основана на отказе от использования разделяемых линий связи между всеми узлами сегмента и применении коммутаторов, позволяющих передавать пакеты одновременно между всеми парами портов. Новшество заключалось в параллельной обработке поступающих кадров.

В таком коммутаторе системный модуль поддерживает общую адресную таблицу. Коммутационная матрица отвечает за пересылку кадров между портами. Каждый порт имеет свой процессор кадров. При поступлении кадра в один из портов его процессор отправляет в буфер несколько первых байт кадра для того, чтобы прочитать адрес назначения. После определения адреса процессор принимает решение о передаче кадра, не анализируя остальные его байты. Чтобы определить, куда передавать кадр, используется адресная таблица. Если данный адрес записан в таблице, выбирается соответствующий выходной порт. Выбор порта и формирование соединения производится коммутационной матрицей. Если такого адреса нет, он записывается в новой строке адресной таблицы, а кадр передается методом широковещания через все порты, за исключением принявшего.

Выделяют три типа функциональной структуры коммутаторов:

С коммутационной матрицей;

С общей шиной;

С разделяемой многовходовой памятью.

 Коммутаторы с коммуникационной матрицей за счет параллельной обработки быстро осуществляют взаимодействие портов. Однако число портов ограничено, так как сложность реализации коммутатора возрастает пропорционально квадрату числа портов.

Матрица может быть реализована на разных комбинационных схемах, но в любом случае в ее основе лежит технология коммутации физических каналов. Основным недостатком является невозможность буферизации данных внутри самой матрицы.

В коммутаторах с общей шиной используется высокоскоростная шина, предназначенная для связи процессоров портов. Связь портов через шину осуществляется в режиме разделения времени. В данном случае высокоскоростная шина играет пассивную роль. Активными являются специализированные процессоры портов. Для того, чтобы шина не была узким местом коммутатора, ее производительность должна быть в несколько раз выше скорости поступления данных на входные порты. Для уменьшения задержек при передаче кадр  передается по шине небольшими частями. Размер этих частей определяется производителем коммутатора. Шина, так же, как и коммутационная матрица не может осуществлять промежуточную буферизацию.

Коммутаторы с разделяемой многовходовой памятью. Входные блоки процессоров портов соединяются через переключатели входа с разделяемой памятью, а выходные блоки этих же процессоров соединяются с памятью через переключатели выхода. Переключением входа и выхода разделяемой памяти заведует блок управления портами. Этот блок организует в разделяемой памяти несколько очередей данных – по одной для каждого выходного порта. Выходные блоки процессоров передают блоку управления запросы на запись данных в очередь порта, который соответствует адресу назначения пакета. Блок управления портами по очереди подключает вход памяти к одному из входных блоков процессоров и тот переписывает часть данных в очередь определенного выходного порта. По мере заполнения очередей блок управления производит поочередное подключение выхода разделяемой многовходовой памяти к выходным портам и данные из очереди переписываются в выходной буфер процессора.

Каждая из описанных архитектур имеет свои преимущества и недостатки. Поэтому часто в функционально сложных коммутаторах комбинируются различные архитектуры.

В локальных сетях применяются три способа коммутации:

Коммутация “на лету” (cut-through);

Бесфрагментная коммутация (fragment-free switching);

Коммутация с буферизацией (store-and-forward switching).

При коммутации “на лету” поступающий пакет данных передается на выходной порт сразу после считывания адреса назначения. Анализ всего пакета не осуществляется, что может  привести к пропуску пакетов с ошибками. Этим способом обеспечивается самая высокая скорость коммутации. Передача кадров происходит в следующей последовательности:

1. Прием первых байтов кадра (включая байт адреса назначения);

2. Поиск адреса назначения в адресной таблице;

3. Построение матрицей коммутационного пути;

4. Прием остальных байтов кадра;

5. Пересылка всех байтов кадра выходному порту через коммутационную матрицу;

6. Получение доступа к среде передачи;

7. Передача кадра в сеть.

В этом случае коммутатор может выполнять проверку передаваемых кадров, но не может изъять неверные кадры из сети, так как часть из байт уже передана в сеть. Использование коммутации “на лету” дает значительный выигрыш в производительности, но за счет снижения надежности.

При коммутации с буферизацией входной пакет принимается полностью, потом он проверяется на наличие ошибок (по контрольной сумме) и только, если ошибки не были обнаружены, пакет передается на выходной порт. Это гарантирует полную фильтрацию ошибочных пакетов за счет снижения пропускной способности. Поскольку память буфера является общей, размер пакета ограничивается всем размером буфера, а не долей, предназначенной для конкретного порта. Это означает, что крупные пакеты могут быть переданы с меньшими потерями, что особенно важно при асимметричной коммутации, то есть когда порт с шириной полосы пропускания 100 Мб/с должен отправлять пакеты на порт 10 Мб/с.

Бесфрагментная коммутация занимает промежуточное положение между этими двумя способами: в ней буферизуются только первые 64 байта пакета. Если на этом пакет заканчивается, коммутатор проверяет наличие в нем ошибок по контрольной сумме. Если же пакет оказывается длиннее, он передается на выходной порт без проверки.

Существуют коммутаторы дающие возможность адаптивной коммутации. Технология адаптивной коммутации позволяет устанавливать для каждого порта тот режим работы, который оптимален именно для него. Вначале коммутация на портах осуществляется “на лету”, затем те порты, на которых возникает много ошибок, переводятся в режим бесфрагментной коммутации. Если же и после этого число неотфильтрованных пакетов с ошибками остается большим (что вполне вероятно, если по сети передается много пакетов длиной более 64 байт), порт переводится в режим коммутации с буферизацией.