Коммутаторы содержат процессоры обработки сообщений в каждом порту и поэтому обеспечивают независимую и одновременную обработку сообщений каждого логического сегмента (порта). Коммутаторы могут производить обработку сообщений с полной буферизацией или «на лету». Из-за относительно низкой производительности мосты в настоящее время практически не применяются.
Достаточно часто возникает необходимость в использовании в разных логических сегментах сети различных сетевых технологий. В этих случаях коммуникационные устройства должны на разных выходных портах реализовывать различные MAC-процедуры. Устройств, позволяющие объединять в единую сеть сегменты с разными сетевыми технологиями, принято называть шлюзами (gateway). Шлюзы, кроме функций коммутаторов, должны выполнять преобразование форматов сообщений и реализовывать необходимые MAC-процедуры для каждого сегмента. Особенно актуальны такие задачи в сложных составных сетях.
4. Техническая реализация коммутаторов
Для эффективной работы в коммутаторах необходимо обеспечить одновременную передачу сообщений между разными портами, т.е. пропускная способность должна соответствовать суммарной пропускной способности портов. Каждый порт должен содержать буферное ЗУ для хранения сообщений в случаях, когда выходной порт (или его канал связи) занят передачей другого сообщения. Наиболее жесткие требования по быстродействию предъявляются к коммутаторам при обработке сообщений «на лету».
В настоящее время используется три основных схемы реализации коммутаторов: коммутационные матрицы, разделяемую память, общую шину. Достаточно часто эти схемы могут комбинироваться в одном коммутаторе. Но в любом варианте реализации все порты коммутатора должны образовывать полносвязаную конфигурацию, т.е. сообщения из каждого порта должны при необходимости поступать в любой другой порт.
Коммутационная матрица (рис. 2) обеспечивает самый быстрый способ взаимодействия портов и представляет собой комбинационную логическую схему, обеспечивающую передачу сигналов от каждого порта к любому другому порту. Очень часто ее строят подобно многоступенчатым матричным дешифраторам, сигналы управляющие направлением передачи формируются на основе анализа MAC – адреса и добавляются к исходному сообщению (так называемый тэг), быстродействие элементов матрицы соизмеримо со скоростью передачи данных. Однако сложность коммутационной матрицы очень существенно возрастает при увеличении количества портов коммутатора.
Рис. 2. Реализация коммутационной матрицы с помощью двоичных переключателей
В коммутаторах с общей шиной (рис. 3) порты связаны высокоскоростной шиной, обеспечивающей производительность большую, чем суммарная производительность портов. Сообщения по внутренней шине должны передаваться небольшими порциями – ячейками, это необходимо для предотвращения задержек передачи других сообщений. Общая шина не предусматривает буферизации ячеек. Каждый порт принимает все ячейки, с помощью тэгов накапливает в буфере те ячейки, которые адресованы ему и передает их в выходной канал.
Рис. 3. Архитектура общей шины
Взаимодействие портов коммутатора можно организовать с помощью двухвходовой разделяемой памяти (рис. 4). Запись в разделяемую память из входных портов осуществляется также ячейками с помощью менеджера очередей, аналогичным образом производится чтение данных для передачи в выходные порты.
Рис. 4. Архитектура разделяемой памяти
Два последних способа предъявляют весьма высокие требования по быстродействию элементов коммутатора.
5. Алгоритм «прозрачного» моста
Корректность работы коммутаторов в значительной степени зависит от корректности информации о составе каждого логического сегмента. Эта информация хранится в коммутаторах в так называемых адресных таблицах (таблицах коммутации), в виде записей о соответствии MAC-адресов узлов сети и адресов выходных портов (адресов логических сегментов) в коммутаторе. Адресные таблицы можно создавать вручную, этот способ является достаточно трудоемким и требует обновления информации при любых изменениях в сети. Могут использоваться процедуры «маршрутизации от источника», которые, во-первых, требуют дополнительных служебных полей в МАС-кадрах для передачи этих данных, и, во-вторых, требуют хранения данных о топологии сети в каждом ее узле. Наиболее эффективным и универсальным алгоритмом автоматического формирования адресных таблиц в настоящее время является алгоритм «прозрачного» моста (рис. 5).
В алгоритме «прозрачного» моста узлы сети не принимают участия в формировании адресных таблиц. При начальном включении коммутатора, работающего по этому алгоритму, адресные таблицы не содержат необходимой информации. В этом случае все поступающие сообщения ретранслируются во все выходные порты, кроме порта, из которого это сообщение поступило. Одновременно с этим для каждого поступившего сообщения создается запись в адресной таблице о соответствии МАС-адреса источника и адреса порта. При появлении этой записи все сообщения, направляемые по этому МАС-адресу, будут передаваться только в соответствующий логический сегмент. По мере заполнения адресных таблиц в процессе работы коммутатора, все меньше сообщений будут направляться во все сегменты сети. Для того, чтобы в адресных таблицах могли отображаться изменения топологии сети, каждой строке адресной таблицы устанавливается время жизни, т.е. интервал времени, в течение которого эта информация считается действительной. Если за время жизни МАС-адрес повторяется в сообщениях, то время жизни продлевается. Если за время жизни МАС-адрес отсутствует в сообщениях, запись аннулируется.
Рис. 5. Принцип работы «прозрачного» моста
Недостатками алгоритма «прозрачного» моста являются чувствительность к широковещательным штормам и ограничения на топологию сегментов. Широковещательные штормы при некорректной работе какого-либо узла могут резко увеличивать объем трафика и приводить к перегрузке и блокировке работы. Корректное формирование адресных таблиц возможно только при древовидной топологии, когда между любой парой узлов существует единственный путь. При появлении петель и контуров возможно некорректное заполнение адресных таблиц с многократной передачей сообщения в замкнутом контуре.
Существуют алгоритмы, позволяющие работать коммутаторам без таких ограничений на топологию сети. Один из таких популярных алгоритмов называют алгоритмом покрывающего дерева (spanningtreealgorithm– STA). Алгоритм STA преобразуют произвольную топологию связей в активную древовидную, избыточные связи в этом алгоритме переводятся в разряд резервных и не используются пока не возникает в них необходимость. STA автоматически определяет отказы отдельных компонентов локальной сети и преобразует резервные связи в активные, реализуя новую древовидную топологию с учетом обнаруженных отказов.
Для работы алгоритма STA коммутаторы должны обмениваться специальными служебными пакетами, поэтому в отличие от всех других, решаемых на канальном уровне задач требуют наличия MAC-адреса коммутатора. Обмен служебными пакетами необходим и для определения активной конфигурации сети, и для тестирования сети в процессе работы для обнаружения отказов. Служебные пакеты помещаются в поле данных канальных кадров.
Активная конфигурация определяется в три этапа:
· Сначала в сети выбирается корневой коммутатор, от которого строится покрывающее дерево, при автоматическом определении корневого коммутатора им становится коммутатор с меньшим значением MAC-адреса.
· Затем для каждого коммутатора определяется корневой порт, этот корневой порт выбирается по кратчайшему расстоянию до корневого коммутатора (расстояние обычно оценивают количеством промежуточных коммутаторов от выходного порта до корневого коммутатора или суммарным условным временем передачи одного бита).
· На последнем этапе для каждого логического сегмента выбирается назначенный порт, т.е. порт, который имеет кратчайшее расстояние от данного сегмента до корневого коммутатора. Все остальные порты и связи в топологии сети через них блокируются, переводятся в разряд резервных и запрещаются для использования. При этом активная топология сети всегда будет древововидной без петель и контуров.
В процессе работы корневой коммутатор периодически генерирует служебные пакеты для тестирования сети. Если по истечении тайм-аута на какой-либо корневой порт не поступит служебный пакет корневого коммутатора, это говорит об отказе каких-либо активных связей. Коммутатор, не получивший в течение заданного времени служебный пакет, начинает процедуру определения новой активной конфигурации по описанному выше алгоритму.
6. Способы передачи сообщений
Дейтаграммный и с установлением соединения (LLC-1, LLC-2, LLC-3). При передаче сообщений на канальном уровне сети автоматически предполагается, что получатель и отправитель имеют общий канал связи и даже на уровне локальной сети необходимо только выполнить определенные процедуры управления передачей данных в уже имеющемся канале связи. Поэтому с точки зрения управления на канальном уровне оба способа передачи данных принципиально не отличаются. Передача с установлением соединения требует только определенных дополнительных процедур для проверки готовности получателя к приему данных.