Коммутаторы, как и мосты, работают на канальном уровне и позволяют разделить общую разделяемую среду на несколько независимых сегментов передачи данных. Алгоритм работы коммутаторов аналогичен алгоритму работы прозрачного моста. Основным отличием, обеспечившим вытеснение мостов коммутаторами – это гораздо более высокая скорость работы коммутаторов.
Мост должен полностью получить кадр данных перед тем, как ретранслировать его на соответствующий порт. Коммутатор начинает ретрансляцию кадра, не дожидаясь его полного получения (достаточно получить лишь несколько первых бит кадра, содержащих адрес назначения).
Кроме того, коммутатор позволяет организовать сразу несколько параллельных соединений между различными парами портов, что повышает пропускную способность сети в несколько раз. Однако коммутатор не может организовать одновременное соединение нескольких портов - к одному порту (Рис. 19).
Рис. 19. Параллельные соединения между портами коммутатора.
Технология коммутаторов Ethernet была предложена фирмой Kalpana в 1990 году в ответ на растущие потребности в повышение пропускной способности сети. Структурная схема коммутатора EtherSwitch, предложенного фирмой Kalpana представлена на Рис. 20.
Рис. 20. Структурная схема коммутатора.
Каждый из 8 портов коммутатора обслуживается собственным процессором пакетов Ethernet – EPP (Ethernet Packet Processor).
Кроме того, коммутатор имеет системный модуль, который координирует работу всех процессоров EPP. Системный модуль ведет общую адресную таблицу коммутатора (какие компьютеры подключены к каким портам) и обеспечивает управление коммутатором по протоколу SNMP. Для передачи кадров между портами используется коммутационная матрица, подобная тем, которые работают в телефонных коммутаторах или мультипроцессорных компьютерах.
При поступлении кадра в какой-либо порт, процессор EPP буферизует несколько первых байт кадра, чтобы прочитать адрес назначения. После получения адреса назначения процессор сразу же принимает решение о передаче пакета, не дожидаясь прихода остальных байт кадра. Для этого он просматривает свой кэш адресной таблицы, а если не находит там нужного адреса, то обращается к системному модулю, который работает в многозадачном режиме, параллельно обслуживая запросы всех процессоров EPP. Системный модуль производит просмотр общей адресной таблицы и возвращает процессору найденную строку (адрес компьютера – номер порта), которая запоминается процессором EPP в своем КЭШе для последующего использования. При определении того, к какому порту подключен сегмент компьютера – адресата, процессор EPP обращается к коммутационной матрице и пытается установить соединение с нужным портом. Если порт занят, то кадр полностью буферизуется процессором EPP входного порта, после чего процессор ожидает освобождение выходного порта. После освобождения, данные передаются на выходной порт, который получает доступ к своему сегменту сети и передает кадр данных в свой сегмент.
По конструктивному исполнению выделяют следующие виды коммутаторов:
- коммутаторы с фиксированным количеством портов;
- модульные коммутаторы на основе шасси;
- стековые коммутаторы;
- модульно-стековые коммутаторы.
Различия между этими типами коммутаторов аналогичны различиям между соответствующими типами концентраторов.
По способу коммутации портов в коммутаторе выделяют следующие типы коммутаторов:
- коммутаторы на основе коммутационной матрицы;
- коммутаторы с общей шиной;
- коммутаторы с разделяемой памятью;
- комбинированные коммутаторы.
Коммутаторы на основе коммутационной матрицы обеспечивают основной и самый быстрый способ взаимодействия портов. Однако реализация матрицы возможна только для определенного числа портов, причем сложность схемы возрастает пропорционально квадрату количества портов коммутатора. Чисто условно, коммутационную матрицу можно представить Рис. 21:
Рис. 21. Условная схема коммутационной матрицы.
Входные блоки процессоров EPP добавляют к байтам исходного кадра информацию о том, на какой из портов его необходимо передать в виде специального ярлыка – тэга (tag).
Для данного случая, тэг представляет собой число из 4-х бит, соответствующее номеру выходного порта. В данном случае, матрица состоит из 3-х уровней двоичных переключателей, которые соединяют свой вход с одним из двух выходов в зависимости от назначения бита тэга.
Переключателя первого уровня управляются первым битом, второго – вторым, третьего – третьим.
Основные достоинства таких матриц – высокая скорость коммутации портов и регулярная структура, которую удобно реализовывать в интегральных микросхемах
Недостатком таких матриц является сложность наращивания портов и отсутствие буферизации данных внутри коммутационной матрицы (если порт занят, то данные должны накапливаться во входном блоке порта, принявшего кадр).
В коммутаторах с общей шиной процессоры портов связаны высокоскоростной шиной передачи данных, используемой в режиме разделения времени (Рис 22).
Рис. 22. Архитектура коммутатора с общей шиной.
Каждый кадр передается по шине небольшими частями, по несколько байт (например, по 48 байт), чтобы обеспечить псевдопараллельную передачу кадров между несколькими портами. Входной блок процессора помещает тэг в переносимую по шине ячейку, в котором указан номер порта назначения.
Каждый выходной блок процессора порта содержит фильтр тэгов, который выбирает тэги, предназначенные данному порту.
Достоинством коммутаторов с общей шиной является простота наращивания количества коммутируемых портов.
Коммутаторы с разделяемой памятью обеспечивают коммутацию портов при помощи общей разделяемой памяти (Рис. 23):
Рис. 23. Архитектура коммутатора с общей разделяемой памятью
Входные блоки процессоров портов соединяются с переключаемым входом разделяемой памяти, а выходные блоки этих же процессоров соединяются с переключаемым выходом этой памяти.
Переключением входа и выхода разделяемой памяти управляет менеджер очередей выходных портов. В разделяемой памяти менеджер организует несколько очередей данных, по одной для каждого выходного порта. Входные блоки процессоров передают менеджеру портов запросы на запись данных в очередь того порта, который соответствует адресу назначения кадра.
Менеджер по очереди подключает вход памяти к одному из входных блоков процессора и тот переписывает часть данных кадра в очередь определенного выходного порта.
По мере заполнения очередей менеджер производит также поочередное переключение выхода разделяемой памяти к выходным блокам процессоров портов, и данные из очереди переписываются в выходной буфер процессора.
Достоинством коммутаторов с разделяемой памятью является гибкость и экономичность распределения общей памяти между отдельными портами, что снижает требования к размеру буферной памяти процессора каждого порта.
Комбинированные коммутаторы сочетают в себе достоинства различных видов архитектур. Например, такого коммутатора, сочетающего в себе скорость матричных коммутаторов и легкость наращивания числа портов коммутаторов с общей шиной, приведен на Рис. 24:
Рис. 24. Комбинированный коммутатор
Коммутатор состоит из модулей с фиксированным числом портов (2-12), выполненных в виде коммутационной матрицы. Модули соединены между собой при помощи общей шины.
Если порты, между которыми нужно передать кадр данных принадлежат одному модулю, то передача кадра осуществляется при помощи коммутационной матрицы. Если же порты принадлежат разным модулям, то процессоры общаются по общей шине.