Построение локальных сетей на основе коммутаторов


Типичные причины перегрузок сети

Подобно проблемам уличного трафика в больших городах, сегодняшние локальные сети становятся все более перегруженными и в них все чаще происходят заторы. Кроме постоянно растущего числа пользователей есть и некоторые другие факторы, которые в совокупности потребовали расширения возможностей традиционных локальных сетей. Среди них можно выделить следующие:

Эта таблица иллюстрирует некоторые примеры потребления пропускной способности для различных типов файлов. Сетевое время использования вычислено, предполагая пропускной способностью сегмента сети 4 Mbps.

ПунктРазмер ФайлаИспользование Сети
Роман на 700 страниц (только текст)1 megabyte (MB)2 seconds
Полные работы Шекспира5 MB10 seconds
Один большой GIF Графический файл (несжатый) 5 MB10 seconds
Один большой GIF Графический файл (сжатый)1 MB2 seconds
Фрагмент DVD фильма68 MB150 seconds

Мосты - раннее решение проблем перегрузки сети

Для преодоления ограничений технологий локальных сетей уже достаточно давно начали применять локальные мосты - функциональные предшественники коммутаторов.

Мост - это устройство, которое обеспечивает взаимосвязь двух (реже нескольких) локальных сетей посредством передачи кадров из одной сети в другую с помощью их промежуточной буферизации. Мост, в отличие от повторителя, не старается поддержать побитовый синхронизм в обеих объединяемых сетях. Для мостов сеть представляется наборами МАС-адресов устройств, используемых на канальном уровне, причем каждый набор связан с определенным портом моста. Мосты используют эти адреса для принятия решения о продвижении кадра, когда кадр записывается во внутренний буфер моста из какого-либо его порта. Таким образом, мост, изолирует трафик одного сегмента от трафика другого сегмента, фильтруя кадры. Так как в каждый из сегментов теперь направляется трафик от меньшего числа узлов, то коэффициент загрузки сегментов уменьшается. Сегментация сети разбивает сеть на отдельные домены коллизий, и поэтому уменьшается загрузка сети.
Некоторые из самых важных особенностей мостов следующие:

Добавление мостов к сети обеспечило множество выгод, включая следующее:

Коммутаторы

Технология коммутации сегментов Ethernet была предложена фирмой Kalpana в 1990 году в ответ на растущие потребности в повышении пропускной способности связей высокопроизводительных серверов с сегментами рабочих станций. Эта технология основана на отказе от использования разделяемых линий связи между всеми узлами сегмента и использовании коммутаторов, позволяющих одновременно передавать пакеты между всеми его парами портов.

Функционально многопортовый коммутатор работает как многопортовый мост, то есть работает на канальном уровне, анализирует заголовки кадров, автоматически строит адресную таблицу и на основании этой таблицы перенаправляет кадр в один из своих выходных портов или фильтрует его, удаляя из буфера. Новшество заключалось в параллельной обработке поступающих кадров, в то время как мост обрабатывает кадр за кадром. Коммутатор же обычно имеет несколько внутренних процессоров обработки кадров, каждый из которых может выполнять алгоритм моста. Таким образом, можно считать, что коммутатор - это мультипроцессорный мост, имеющий за счет внутреннего параллелизма высокую производительность.
Подобия между мостами и коммутаторами следующие:

Как мосты, коммутаторы соединяют сегменты ЛВС и уменьшают загрузку сети. Однако коммутаторы работают на намного более высоких скоростях, чем мосты и поддерживают более передовые функциональные возможности:

Для отправки фрейма через коммутатор могут быть использованы два метода:

Коммутация с быстрой отправкой (fast-forward switching). Коммутация с быстрой отправкой обеспечивает наименьшую задержку, поскольку отправка пакета начинается сразу после получения адреса пункта назначения. Поскольку при таком виде коммутации отправка начинается еще до полного получения пакета, возможны ситуации, когда пакет передается с ошибками. Хотя такое происходит нечасто, а сетевой адаптер пункта назначения обычно отбрасывает пакеты с ошибками при получении, чрезмерный поток данных может оказаться в некоторых ситуациях неприемлемым. Для уменьшения числа пакетов, отправленных с ошибками, рекомендуется использовать метод коммутации без фрагментации. В режиме быстрой отправки задержка измеряется периодом времени от получения первого бита до его отправки, т.е. по принципу "первым пришел — первым ушел" (first in, first out, FIFO).
Коммутация без фрагментации (fragment-free switching).При коммутации без фрагментации отфильтровываются пакеты, попавшие в коллизию, которые составляют большинство ошибок при передаче, и только после этого начинается передача. В правильно работающей сети фрагменты, попавшие в коллизию должны иметь размер менее 64 байт. Пакеты размером более 64 байт являются действительными и обычно принимаются без ошибок. При коммутации без фрагментации пакет должен быть проверен на повреждение в результате коллизии до того, как он будет отправлен. При таком способе задержка также определяется принципом FIFO. Задержка обоих способов коммутации определяется тем, когда коммутатор начинает отправку фрейма. Чем быстрее режим коммутации, тем меньше задержка коммутатора. Для ускорения отправки фрейма приходится сокращать время, отводимое на проверку ошибок. При этом качество проверки снижается, что может привести к большему количеству повторных передач.

Как коммутаторы сегментируют сеть Ethernet

Ethernet-коммутатор может узнать адрес каждого устройства в сети путем чтения адреса отправителя в каждом переданном пакете и, отмечая порт, по которому пакет пришел на коммутатор. После этого коммутатор добавляет эту информацию в свою базу данных. Адреса изучаются динамически. Это означает, что после чтения нового адреса он запоминается и хранится в таблице MAC адресов. Если считан адрес отправителя, который отсутствует в таблице, то он запоминается и хранится для будущего употребления. При каждой записи адреса в таблицу отмечается момент его получения. Это позволяет хранить адреса в течение определенного периода времени. При каждом обращении к адресу или поиске его в таблице его временная метка обновляется. Адреса, к которым не было обращений в течение определенного периода времени, удаляются из таблицы. Посредством удаления устаревших адресов поддерживается точная и функционально эффективная база данных MAC адресов

Последовательность действий коммутатора при получении одноадресного фрейма в сети Ethernet
Шаг Действие
1Когда на порт поступает одноадресный фрейм, коммутатор сравнивает адрес MAC адресата с адресами MAC, содержащимися в его таблице
2Если Коммутатор решает, что адрес MAC адрес получателя фрейма находится в том же самом сегменте сети что и источник, то он не отправляет фрейм. Этот процесс называют фильтрация. При помощи фильтрации, устраняя ненужные фреймы, коммутаторы могут значительно уменьшить количество трафика, идущего между сетевыми сегментами
3Если Коммутатор решает, что адрес MAC адрес получателя фрейма находится не в том же самом сегменте сети что и источник, то он передает фрейм в соответствующий сегмент
4Если Коммутатор не знает, где находится получатель, то он передаст фрейм во все порты, кроме порта с которого он получил фрейм. Этот процесс называют наводнение сети

Пример коммутации

ШагДействие
1Коммутатор получает широковещательный фрейм от PC А на порт 1
2Коммутатор записывает MAC адрес отправителя и порт коммутатора, который получил фрейм, в таблицу MAC адресов
3Поскольку адрес получателя - широковещательный, то коммутатор записывает фрейм во все порты, кроме порта с которого он получил фрейм
4В ответ на этот широковещательный фрейм, удаленные устройства посылают PC A одноадресный фрейм
5Коммутатор вводит исходный MAC адрес PC B и порт, который получил фрейм в таблицу MAC адресов. Адрес получателя фрейма и связанного с этим адресом порта найден в таблице MAC
6Коммутатор может теперь отправить фреймы между PC A и PC B без наводнения, потому что имеются записи в таблице MAC адресов, которые идентифицируют связанные порты