Коммутация по праву считается одной из самых популярных современных технологий. Коммутаторы по всему фронту теснят мосты и маршрутизаторы, оставляя за последними только организацию связи через глобальную сеть. Популярность коммутаторов обусловлена прежде всего тем, что они позволяют за счет сегментации повысить производительность сети. Помимо разделения сети на мелкие сегменты, коммутаторы дают возможность создавать логические сети и легко перегруппировывать устройства в них. Иными словами, коммутаторы позволяют создавать виртуальные сети.
В 1994 году компания IDC дала свое определение коммутатора локальных сетей: “ коммутатор – это устройство, конструктивно выполненное в виде сетевого концентратора и действующее как высокоскоростной многопортовый мост; встроенный механизм коммутации позволяет осуществить сегментирование локальной сети, а также выделить полосу пропускания конечным станциям в сети”.
Впервые коммутаторы появились в конце 80-х годов. Первые коммутаторы использовались для перераспределения пропускной способности и, соответственно, повышения производительности сети. Можно сказать, что коммутаторы первоначально применялись исключительно для сегментации сети. В наше время произошла переориентация, и теперь в большинстве случаев коммутаторы используются для прямого подключения к конечным станциям.
Широкое применение коммутаторов значительно повысило эффективность использования сети за счет равномерного распределения полосы пропускания между пользователями и приложениями. Несмотря на то что первоначальная стоимость была довольно высока, тем не менее они были значительно дешевле и проще в настройке и использовании, чем маршрутизаторы. Широкое распространение коммутаторов на уровне рабочих групп можно объяснить тем, что коммутаторы позволяют повысить отдачу от уже существующей сети. При этом для повышения производительности всей сети не нужно менять существующую кабельную систему и оборудование конечных пользователей.
Общий термин “коммутация ”применяется для четырех различных технологий:
В основе конфигурационной коммутации лежит нахождение соответствия между конкретным портом коммутатора и определенным сегментом сети. Это соответствие может программно настраиваться при подключении или перемещении пользователей в сети.
При коммутации кадров используются кадров сетей Ethernet, Token Ring и т.д. Кадр при поступлении в сеть обрабатывается первым коммутатором на его пути. Под термином обработка понимается вся совокупность действий, производимых коммутатором для определения своего выходного порта, на который необходимо направить данный кадр. После обработки он передается далее по сети следующему коммутатору или непосредственно получателю.
В технологии АТМ также применяется коммутация, но в ней единицы коммутации носят название ячеек. Преобразование между кадрами и ячейками позволяет станциям в сети Ethernet, Token Ring и т.д. непосредственно взаимодействовать с устройствами АТМ. Эта технология применяется при эмуляции локальной сети.
Коммутаторы делятся на четыре категории:
Технология конфигурационной коммутации сегментов Ethernet была предложена фирмой Kalpana в 1990 году. Эта технология основана на отказе от использования разделяемых линий связи между всеми узлами сегмента и применении коммутаторов, позволяющих передавать пакеты одновременно между всеми парами портов. Новшество заключалось в параллельной обработке поступающих кадров.
На рисунке (рис. 2) показана функциональная схема коммутатора EtherSwitch, предложенного фирмой Kalpana.
В этом коммутаторе системный модуль поддерживает общую адресную таблицу коммутатора. Коммутационная матрица отвечает за пересылку кадров между портами. Каждый порт имеет свой процессор кадров. При поступлении кадра в один из портов его процессор отправляет в буфер несколько первых байт кадра для того, чтобы прочитать адрес назначения. После определения адреса процессор принимает решение о передаче кадра, не анализируя остальные его байты. Чтобы определить, куда передавать кадр, используется адресная таблица. Если данный адрес записан в таблице, выбирается соответствующий выходной порт. Выбор порта и формирование соединения производится коммутационной матрицей. Если такого адреса нет, он записывается в новой строке адресной таблицы, а кадр передается методом широковещания через все порты, за исключением принявшего.
Наиболее часто используются три типа функциональной структуры коммутаторов:
Коммутаторы с коммуникационной матрицей за счет параллельной обработки быстро осуществляют взаимодействие портов. Однако число портов ограничено, так как сложность реализации коммутатора возрастает пропорционально квадрату числа портов. На рисунке (рис. 3) показана топология связей коммутационной матрицы.
Матрица может быть реализована на разных комбинационных схемах, но в любом случае в ее основе лежит технология коммутации физических каналов. Основным недостатком является невозможность буферизации данных внутри самой матрицы.
В коммутаторах с общей шиной используется высокоскоростная шина, предназначенная для связи процессоров портов. Связь портов через шину осуществляется в режиме разделения времени. В данном случае высокоскоростная шина играет пассивную роль. Активными являются специализированные процессоры портов. Для того, чтобы шина не была узким местом коммутатора, ее производительность должна быть в несколько раз выше скорости поступления данных на входные порты. Для уменьшения задержек при передаче кадр должен передаваться по шине небольшими частями. Размер этих частей определяется производителем коммутатора. Шина, так же, как и коммутационная матрица не может осуществлять промежуточную буферизацию.
Третий тип коммутатора – коммутаторы с разделяемой многовходовой памятью. На рисунке (рис. 4) показана примерная схема коммутатора с разделяемой многовходовой памятью.
Входные блоки процессоров портов соединяются через переключатели входа с разделяемой памятью, а выходные блоки этих же процессоров соединяются с памятью через переключатели выхода. Переключением входа и выхода разделяемой памяти заведует блок управления портами. Этот юлок организует в разделяемой памяти несколько очередей данных – по одной для каждого выходного порта. Выходные блоки процессоров передают блоку управления запросы на запись данных в очередь порта, который соответствует адресу назначения пакета. Блок управления портами по очереди подключает вход памяти к одному из входных блоков процессоров и тот переписывает часть данных в очередь определенного выходного порта. По мере заполнения очередей блок управления производит поочередное подключение выхода разделяемой многовходовой памяти к выходным портам и данные из очереди переписываются в выходной буфер процессора.
Каждая из описанных архитектур имеет свои преимущества и недостатки. Поэтому часто в функционально сложных коммутаторах комбинируются различные архитектуры.
Производители коммутаторов применяют в своих изделиях различные алгоритмы управления потоком кадров для предотвращения потерь кадров при перегрузках в сети. Потеря даже небольшого количества кадров обычно резко снижает полезную производительность сети. Поэтому при возникновении перегрузки разумно было бы снизить интенсивность поступления кадров от конечных узлов к коммутатору. Для замедления потока в распоряжении коммутатора должен быть механизм снижения интенсивности трафика подключенных к его портам узлов. Существуют два таких механизма:
Порт коммутатора для захвата среды должен “вести себя агрессивно” и при передаче, и при коллизии в сети (для Ethernet).
В первом случае коммутатор оканчивает передачу очередного кадра и делает технологическую паузу в 9.1 мкс вместо положенной паузы в 9.6 мкс. При этом компьютер, выждав паузу в 9.6 мкс, не может захватить среду передачи данных. После коллизии, когда кадры коммутатора и компьютера сталкиваются, компьютер делает стандартную паузу в 51.2 мкс, а коммутатор – в 50 мкс. И в этом случае среда передачи остается за коммутатором.
В основе второго метода – метода обратного давления – лежит передача фиктивных кадров компьютеру при отсутствии в буфере коммутатора кадров для передачи по данному порту. В этом случае коммутатор может не нарушать алгоритм доступа, однако интенсивность передачи кадров в коммутатор в среднем уменьшается вдвое. Метод обратного давления используется либо для разгрузки общего буфера, либо для разгрузки буфера процессора другого порта, в который передает свои кадры данный порт.
Известны три способа коммутации в локальных сетях:
Коммутация “на лету”
При коммутации “на лету” поступающий пакет данных передается на выходной порт сразу после считывания адреса назначения. Анализ всего пакета не осуществляется. А это означает, что могут быть пропущены пакеты с ошибками. Такой способ обеспечивает самую высокую скорость коммутации. Передача кадров происходит в следующей последовательности:
В этом случае коммутатор может выполнять проверку передаваемых кадров, но не может изъять неверные кадры из сети, так как часть из байт уже передана в сеть. Использование коммутации “на лету” дает значительный выигрыш в производительности, но за счет снижения надежности. В сетях с технологией обнаружения коллизий передача искаженных кадров может привести к нарушению целостности данных.
Коммутация с буферизацией
При коммутации с буферизацией входной пакет принимается полностью, потом он проверяется на наличие ошибок (проверка производится по контрольной сумме) и только, если ошибки не были обнаружены, пакет передается на выходной пор. Этот способ гарантирует полную фильтрацию ошибочных пакетов, однако за счет снижения пропускной способности коммутатора по сравнению с коммутацией “на лету”.
Бесфрагментная коммутация занимает промежуточное положение между этими двумя способами: в ней буферизуются только первые 64 байта пакета. Если на этом пакет заканчивается, коммутатор проверяет наличие в нем ошибок по контрольной сумме. Если же пакет оказывается длиннее, он передается на выходной порт без проверки.
На разных портах коммутатора ошибки могут возникать с разной интенсивностью. В связи с этим очень полезно иметь возможность выбора способа коммутации. Такая технология получила название адаптивной коммутации. Технология адаптивной коммутации позволяет устанавливать для каждого порта тот режим работы, который оптимален именно для него. Вначале коммутация на портах осуществляется “на лету”, затем те порты, на которых возникает много ошибок, переводятся в режим бесфрагментной коммутации. Если же и после этого число неотфильтрованных пакетов с ошибками остается большим (что вполне вероятно, если по сети передается много пакетов длиной более 64 байт), порт переводится в режим коммутации с буферизацией.
Споры о преимуществах коммутации “на лету” над коммутацией с промежуточной буферизацией не прекращаются. В каких-то случаях администратор сети сам выбирает используемый способ работы, в каких-то – коммутатор самостоятельно меняет режимы в зависимости от условий в сети. Одни фирмы позволяют администраторам сети конфигурировать коммутатор так, чтобы каждый порт работал в своем режиме; другие требуют, чтобы все порты коммутатора работали в одном режиме.
Инженерами фирмы 3Com разработан набор интегральных схем ASIC, которые обладают широкими функциональными возможностями по управлению потоком данных. Каждый порт коммутатора, построенного на базе микросхемы ASIC, имеет собственный буфер с большой памятью, благодаря чему удалось решить проблему потери кадров. Создана также гибридная микросхема ASIC, в которой быстрота сквозной обработки сочетается с надежностью промежуточной буферизации.
Предложена технология, которая позволяет распределить обработку кадров между микросхемами ASIC, на которых построены порты. Обработка с привязкой к порту обеспечивает фильтрацию искаженных кадров на аппаратном уровне в пределах одной микросхемы.
Некоторые микросхемы поддерживают протоколы SNMP и удаленный мониторинг RMON. Протокол SNMP обеспечивает централизованный контроль. Так как перегрузка процессоров портов или других элементов коммутатора может привести к потере кадров, наблюдение за распределением трафика в сети, построенной на коммутаторах, очень важно.
Более надежным способом слежения за трафиком, проходящим через порты коммутатора, является использование агентов RMON. Они собирают детальную информацию об интенсивности трафика, испорченных кадрах, потерянных кадрах и т.д.
Дополнительные функции коммутаторов
Коммутатор представляет собой сложное устройство, имеющее один или несколько процессорных модулей и, естественно, может выполнять, помимо основной задачи по передаче кадров из порта в порт, некоторые дополнительные функции. К ним относятся:
Коммутаторы могут выполнять трансляции одного протокола канального уровня в другой, например, Ethernet в FDDI, Fast Ethernet в Token Ring и т.д.
Протокол STP (Spanning Tree Protocol – протокол остовного дерева) разработан для устранения логических и физических петель из сетей, построенных на базе мостов, поскольку все базовые функции коммутатора работают только при их полном отсутствии. Протокол также предусматривает возможность автоматической переконфигурации сетевой топологии в случае обрывов линий или возникновения аппаратных ошибок. Применение протокола STP в корпоративных сетях позволяет создавать большие и сложные сети на коммутаторах (их называют плоскими сетями), на опасаясь широковещательного шторма. Кроме того, реализуется только один путь передачи данных между любыми двумя точками, что
Протокол STP используется, главным образом в сетях, где основным требованием является надежность передачи данных.
Многие коммутаторы наряду со стандартной фильтрацией в соответствии с адресной таблицей позволяют администраторам задавать дополнительные условия фильтрации кадров. Пользовательские фильтры предназначены для создания дополнительных барьеров, которые ограничивают доступ определенных пользователей к некоторым сервисам сети.
Использование классов сервиса позволяет администратору назначить различным типам кадров приоритеты их обработки. При этом коммутатор поддерживает несколько очередей необработанных кадров, а сами очереди могут иметь различные приоритеты. Так как не все протоколы канального уровня поддерживают механизм определения приоритета кадра, разработан метод приписывания приоритетов портам коммутатора. При таком подходе коммутатор помещает кадр в очередь с определенным приоритетом в зависимости от того, через какой порт поступил этот кадр. Более гибким является назначение приоритетов МАС-адресам узлов.
Коммутатор позволяет локализовать потоки информации в сети и управлять ими, то есть создавать и поддерживать особые условия фильтрации. Одним из очень популярных видов специальных фильтров являются фильтры, создающие виртуальные сети. Виртуальной сетью (в данном контексте) называется группа узлов в сети, трафик которой, в том числе и широковещательный, полностью изолирован от других узлов сети.
Внутри виртуальной сети кадры передаются по технологии коммутации, а для передачи кадров между виртуальными сетями могут применяться маршрутизаторы. При использовании виртуальных сетей с коммутаторами одновременно решаются две задачи:
При всем разнообразии структурных схем сетей, построенных на основе коммутаторов, в них используются всего две базовые схемы: стянутая в точку магистраль и распределенная магистраль.
Стянутая в точку магистраль получила свое название из-за того, что внутренняя магистраль коммутатора объединяет все компоненты такой сети. Преимущество такой схемы – высокая производительность внутренней магистрали (до нескольких Гбит/с). Еще одним достоинством такой схемы является ее независимость от протоколов сетевого уровня эталонной модели OSI.
При необходимости распространения сети по большой территории можно воспользоваться другой базовой схемой – сетью с распределенной магистралью. Примером служит двойное кольцо FDDI, к которому подключены коммутаторы рабочих групп. Сеть с распределенной магистралью упрощает связь между рабочими группами, сокращает стоимость кабельной системы и допускает разнесение узлов на большие расстояния. Недостатком является существенно меньшая скорость по сравнению с сетью со стянутой в точку магистралью.
По конструктивному исполнению коммутаторы делятся на три группы:
Коммутаторы первой группы обычно предназначены для небольших рабочих групп.
Модульные коммутаторы на основе шасси чаще всего используются на магистрали сети. Модули такого коммутатора допускают замену блоков без выключения коммутатора.
Стековые коммутаторы представляют собой множество коммутаторов, которые могут работать автономно, так как выполнены в отдельных корпусах, но имеют специальный интерфейс (высокоскоростную шину), который позволяет объединить их в одну систему – единый коммутатор.