Коммутаторы Ethernet и Fast Ethernet
Коммутирующие концентраторы (Switched Hubs) или, как их еще называют, коммутаторы (Switches), переключатели и свичи, могут рассматриваться, как простейший и очень быстрый мост. Они позволяют разделить единую сеть на несколько сегментов для увеличения допустимого размера сети или с целью снижения нагрузки (трафика) в отдельных частях сети.
Как уже отмечалось, в отличие от мостов, коммутирующие концентраторы не принимают приходящие пакеты, а только переправляют из одной части сети в другую те пакеты, которые в этом нуждаются. Они в реальном темпе поступления битов пакета распознают адрес приемника пакета и принимают решение о том, надо ли этот пакет переправлять, и, если надо, то кому. Никакой обработки пакетов не производится, хотя и контролируется их заголовок. Коммутаторы практически не замедляют обмена по сети. Но они не могут преобразовывать формат пакетов и протоколов обмена по сети. Поскольку коммутаторы работают с информацией, находящейся внутри кадра, часто говорят, что они ретранслируют кадры, а не пакеты, как репитерные концентраторы.
Коллизии коммутатором не ретранслируются, что выгодно отличает его от более простого репитерного концентратора. Можно сказать, что коммутаторы производят более глубокое разделение сети, чем концентраторы. Они разделяют на части зону коллизий (Collision Domain) сети, то есть область сети, на которую распространяются коллизии.
Логическая структура коммутатора довольно проста (рис. 13.6).
Рис. 13.6. Логическая схема коммутатора
Она включает в себя так называемую перекрестную (коммутационную) матрицу (Crossbar Matrix), во всех точках пересечения которой могут устанавливаться связи на время передачи пакета. В результате пакет, поступающий из любого сегмента, может быть передан в любой другой сегмент (рис. 13.6). В случае широковещательного пакета, адресованного всем абонентам, он передается во все сегменты одновременно, кроме того сегмента, по которому он пришел (рис. 13.7).
Рис. 13.7. Ретрансляция широковещательного пакета
Помимо перекрестной матрицы коммутатор включает в себя память, в которой он формирует таблицу MAC-адресов всех компьютеров, подключенных к каждому из его портов. Эта таблица создается на этапе инициализации сети и затем периодически обновляется для учета изменений конфигурации сети. Именно на основании анализа этой таблицы делается вывод о том, какие связи надо замыкать, куда отправлять пришедший пакет. Коммутатор читает MAC-адреса отправителя и получателя в пришедшем пакете и передает пакет в тот сегмент, в который он адресован. Если пакет адресован абоненту из того же сегмента, к которому принадлежит отправитель, то он не ретранслируется вообще. Широковещательный пакет не передается в тот сегмент, к которому присоединен абонент отправитель пакета. Адрес отправителя пакета заносится в таблицу адресов (если его там еще нет).
Коммутаторы выпускаются на различное число портов. Чаще всего встречаются коммутаторы с 6, 8, 12, 16 и 24 портами. Следует отметить, что мосты, как правило, редко поддерживают более 4 портов. Различаются коммутаторы с допустимым количеством адресов на один порт. Этот показатель определяет предельную сложность подключаемых к порту сегментов (количество компьютеров в каждом сегменте). Некоторые коммутаторы позволяют разбивать порты на группы, работающие независимо друг от друга, то есть один коммутатор может работать как два или три.
Так же, как и концентраторы, коммутаторы выпускаются трех видов в зависимости от сложности, возможности наращивания количества портов и стоимости:
- коммутаторы с фиксированным числом портов (обычно до 30);
- модульные коммутаторы (с числом портов до 100);
- стековые коммутаторы.
Коммутаторы характеризуются двумя показателями производительности:
- Максимальная скорость ретрансляции пакетов измеряется при передаче пакетов из одного порта в другой, когда все остальные порты отключены.
- Совокупная скорость ретрансляции пакетов измеряется при активной работе всех имеющихся портов. Совокупная скорость больше максимальной, но максимальная скорость, как правило, не может быть обеспечена на всех портах одновременно, хотя коммутаторы и способны одновременно обрабатывать несколько пакетов (в отличие от моста ).
Главное правило, которого надо придерживаться при разбиении сети на части (сегменты) с помощью коммутатора, называется "правило 80/20". Только при его выполнении коммутатор работает эффективно. Согласно этому правилу, необходимо, чтобы не менее 80 процентов всех передач происходило в пределах одной части (одного сегмента) сети. И только 20 процентов всех передач должно происходить между разными частями (сегментами) сети, проходить через коммутатор. На практике это обычно сводится к тому, чтобы сервер и активно работающие с ним рабочие станции (клиенты) располагались на одном сегменте. Это же правило 80/20 применимо и к мостам.
Существует два класса коммутаторов, отличающихся уровнем интеллекта и способами коммутации:
- коммутаторы со сквозным вырезанием (Cut-Through);
- коммутаторы с накоплением и ретрансляцией (Store-and-Forward, SAF).
Коммутаторы Cut-Through
Коммутаторы Cut-Through – самые простые и быстрые, они не производят никакого буферирования пакетов и никакой их селекции. Про них часто говорят, что они производят коммутацию "на лету" (on-the-fly).
Эти коммутаторы буферируют только головную часть пакета, чтобы прочитать 6-байтовый адрес приемника пакета и принять решение о коммутации, на которое у некоторых коммутаторов уходит около 10 битовых интервалов. В результате время ожидания ретрансляции (задержка на коммутаторе ), включающее как время буферирования, так и время коммутации, может составлять около 150 битовых интервалов. Конечно, это больше задержки репитерного концентратора, но гораздо меньше задержки ретрансляции любого моста.
Недостаток данного типа коммутатора состоит в том, что он ретранслирует любые пакеты с нормальной головной частью, в том числе и заведомо ошибочные пакеты (например, с неправильной контрольной суммой) и карликовые пакеты (длиной менее 512 битовых интервалов). Ошибки одного сегмента ретранслируются в другой сегмент, что приводит к снижению пропускной способности сети в целом.
Еще одна проблема состоит в том, что коммутаторы данного типа часто перегружаются и плохо обрабатывают ситуацию перегрузки. Например, из двух или более сегментов одновременно поступают пакеты, адресованные одному и тому же сегменту. Но коммутатор не может одновременно передать несколько пакетов в один сегмент, поэтому часть пакетов пропадает. Вместе с тем коммутатор не может ретранслировать и пакеты, приходящие из того же порта, в который коммутатор передает в данный момент.
Одно из усовершенствований коммутаторов Cut-Through получило название Interim Cut-Through Switching (ICS). Оно направлено на то, чтобы избежать ретрансляции карликовых кадров. Для этого на принимающей стороне коммутатора все порты имеют буферную память типа FIFO на 512 бит. Если пакет заканчивается раньше, чем буфер заполнится, то содержимое буфера автоматически отбрасывается. Однако все остальные недостатки метода Cut-Through в данном случае сохраняются. Задержка ретрансляции коммутаторов данного типа (ICS) увеличивается примерно на 400 битовых интервалов по сравнению с обычным Cut-Through.