Структура и принципы работы коммутаторов
Коммутатор - это устройство, конструктивно выполненное в виде сетевого концентратора и действующее как высокоскоростной многопортовый мост; встроенный механизм коммутации позволяет осуществить широковещательное сегментирование локальной сети, а также выделить полосу пропускания к конечным станциям в сети.
Под коммутацией обычно понимают четыре различные технологии: конфигурационную коммутацию (коммутацию каналов), коммутацию кадров, коммутацию ячеек и преобразование между кадрами и ячейками. В основе конфигурационной коммутации лежит определение соответствия между конкретным портом коммутатора и внутренним сегментом сети. Это назначение портов производится удаленным образом посредством программного управления сетью при подключении или перемещении пользователей в сети. Технология конфигурационной коммутации основана на отказе от использования разделяемых линий связи между всеми узлами сегмента и использовании коммутаторов, позволяющих одновременно передавать пакеты между всеми его парами портов. Новшество заключалось в параллельной обработке поступающих кадров.
Структурная схема коммутатора фирмы Kalpana EtherSwitch показана на рис. 5.4. Системный модуль поддерживает общую адресную таблицу коммутатора. Коммутационная матрица предназначена для передачи кадров между портами. Каждый порт имеет свой процессор пакетов. При поступлении кадра в один из портов процессор пакетов буферизует несколько первых байтов кадра для прочтения адреса назначения. После получения адреса процессор принимает решение о передаче кадра, не дожидаясь прихода остальных байтов. Для этого анализируется адресная таблица. Если адрес существует в таблице, то выбирается соответствующий выходной порт. Выбор порта и формирование соединения производятся коммутационной матрицей. Если адреса нет в таблице, то заводится новая строка в адресной таблице, а кадр передается широковещательным методом через все порты, за исключением принявшего.
В настоящее время различают три типа коммутаторов: с коммутационной матрицей, с общей шиной и с разделяемой многовходовой памятью.
Коммутаторы с коммуникационной матрицей за счет параллельной обработки данных позволяют реализовать наиболее быстрый способ взаимодействия портов. Эта реализация возможна только для определенного числа портов. Причем сложность схемы возрастает пропорционально квадрату количества портов коммутатора. Основным недостатком данной технологии является отсутствие возможности буферизации данных внутри коммутационной матрицы.
В коммутаторах с общей шиной в режиме разделения времени используется высокоскоростная шина для связи процессоров портов. В этой архитектуре активную роль играют специализированные процессоры портов. Высокоскоростная шина играет пассивную роль. Для того чтобы шина не была узким местом коммутатора, ее производительность должна быть в несколько раз выше скорости поступления данных на входные порты. Для уменьшения задержек при передаче кадр должен передаваться по шине небольшими частями. Размер этих частей определяется производителем коммутатора. Шина так же, как и комму тационная матрица, не может осуществлять промежуточную буферизацию.
В коммутаторах с разделяемой многовходовой памятью (рис. 5.5) входные блоки процессоров портов соединяются через переключатели входа с разделяемой памятью, а выходные блоки этих же процессоров соединяются с этой памятью через переключатели выхода. Переключением входа и выхода разделяемой памяти управляет блок управления портами. Он организует в разделяемой памяти несколько очередей данных, по одной для каждого выходного порта. Входные блоки процессоров передают блоку управления запросы на запись данных в очередь того порта, который соответствует адресу назначения пакета. Блок управления портами по очереди подключает вход памяти к одному из входных блоков процессора, и тот переписывает часть данных в очередь определенного выходного порта. По мере заполнения очередей блок управления производит поочередное подключение выходов разделяемой многовходовой памяти к выходным портам, и данные из очереди переписываются в выходной буфер процессора.
Некоторые производители используют в своих коммутаторах различные приемы управления потоком кадров для предотвращения потерь при перегрузках в сети. Существует два способа реализации снижения интенсивности трафика: агрессивное поведение порта и метод обратного давления.
Агрессивное поведение порта коммутатора может быть реализовано путем захвата среды передачи данных или после коллизии в сети (для сети Ethernet). Например, в первом случае коммутатор окончил передачу очередного кадра и сделал технологическую паузу в 9,1 мкс вместо положенной паузы в 9,6 мкс. При этом компьютер, сделав ту же паузу в 9,6 мкс, не смог захватить среду передачи данных. Во втором случае кадры коммутатора и компьютера столкнулись, и была зафиксирована коллизия. Компьютер делает стандартную паузу после коллизии в 51,2 мкс, а коммутатор - в 50 мкс. И в этом случае среда передачи остается за коммутатором.
В основе второго метода лежит передача компьютеру фиктивных кадров при отсутствии в буфере коммутатора кадров для передачи по данному порту. В этом случае коммутатор может не нарушать алгоритм доступа, однако интенсивность передачи кадров в коммутатор в среднем уменьшается вдвое.
Существует два способа передачи пакетов коммутаторами: со сквозной обработкой и с буферизацией. Коммутатор со сквозной обработкой кадров считывает только физический адрес назначения, а сам кадр передается без проверки его содержимого. Этот способ представляет собой, по сути, конвейерную обработку кадров с частичным совмещением этапов передачи. Передача кадров происходит в такой последовательности:
1) прием первых байтов кадра (включая байт адреса назначения);
2) поиск адреса назначения в адресной таблице;
3) построение коммутируемого пути;
4) прием остальных байтов кадра;
5) прием всех байтов кадра выходным портом через коммутационную матрицу;
6) получение доступа к среде передачи;
7) передача кадра в сеть.
Использование сквозной коммутации может дать значительный выигрыш в производительности, но за счет снижения надежности.
При коммутации с буферизацией происходит проверка содержимого кадра: если в кадре содержится ошибка, то он отбраковывается.
Коммутаторы, наряду с основными функциями по передаче кадров с порта на порт, могут реализовывать дополнительные функции, например поддержку протокола STP (Spanning Tree) - построение остова дерева. Алгоритм Spanning Tree позволяет коммутаторам автоматически определять древовидную конфигурацию связей в сети при произвольном соединении портов между собой. Поддержка мостами и коммутаторами этой функции важна для обеспечения работоспособности сложных сетей.