Какой компонент коммутатора сокращает время обработки пакетов внутри коммутатора
После того, как технология коммутации привлекла общее внимание и получила высокие оценки специалистов, многие компании занялись реализацией этой технологии в своих устройствах, применяя для этого различные технические решения. Многие коммутаторы первого поколения были похожи на маршрутизаторы, то есть основывались на центральном процессоре общего назначения, связанном с интерфейсными портами по внутренней скоростной шине (рисунок 4.1). Однако, это были скорее пробные устройства, предназначенные для освоения самой компании технологии коммутации, а не для завоевания рынка.
Рис. 4.1. Коммутатор на процессоре общего назначения
Основным недостатком таких коммутаторов была их низкая скорость. Универсальный процессор никак не мог справиться с большим объемом специализированных операций по пересылке кадров между интерфейсными модулями.
Для ускорения операций коммутации нужны были специализированные процессоры со специализированными средствами обмена данными, как в первом коммутаторе Kalpana, и они вскоре появились. Теперь коммутаторы используют заказные специализированные БИС, которые оптимизированы для выполнения основных операций коммутации. Часто в одном коммутаторе используется несколько специализированных БИС, каждая из которых выполняет функционально законченную часть операций.
Часто эти три способа взаимодействия комбинируются в одном коммутаторе.
Коммутаторы на основе коммутационной матрицы
Рис. 4.2. Коммутационная матрица
Рис. 4.3. Реализация коммутационной матрицы 4х4 с помощью двоичных переключателей
Коммутаторы с общей шиной
Коммутаторы с общей шиной используют для связи процессоров портов высокоскоростную шину, используемую в режиме разделения времени. Эта архитектура похожа на изображенную на рисунке 4.1 архитектуру коммутаторов на основе универсального процессора, но отличается тем, что шина здесь пассивна, а активную роль выполняют специализированные процессоры портов.
Пример такой архитектуры приведен на рисунке 4.4. Для того, чтобы шина не была узким местом коммутатора, ее производительность должна быть по крайней мере в N/2 раз выше скорости поступления данных во входные блоки процессоров портов. Кроме этого, кадр должен передаваться по шине небольшими частями, по несколько байт, чтобы передача кадров между несколькими портами происходила в псевдопараллельном режиме, не внося задержек в передачу кадра в целом. Размер такой ячейки данных определяется производителем коммутатора. Некоторые производители, например, LANNET (сейчас подразделение компании Madge Networks), выбрали в качестве порции данных, переносимых за одну операцию по шине, ячейку АТМ с ее полем данных в 48 байт. Такой подход облегчает трансляцию протоколов локальных сетей в протокол АТМ, если коммутатор поддерживает эти технологии.
Рис. 4.4. Архитектура общей шины
Входной блок процессора помещает в ячейку, переносимую по шине, тэг, в котором указывает номер порта назначения. Каждый выходной блок процессора порта содержит фильтр тэгов, который выбирает тэги, предназначенные данному порту.
Шина, так же как и коммутационная матрица, не может осуществлять промежуточную буферизацию, но так как данные кадра разбиваются на небольшие ячейки, то задержек с начальным ожиданием доступности выходного порта в такой схеме нет.
Коммутаторы с разделяемой памятью
Рис. 4.5. Архитектура разделяемой памяти
Входные блоки процессоров портов соединяются с переключаемым входом разделяемой памяти, а выходные блоки этих же процессоров соединяются с переключаемым выходом этой памяти. Переключением входа и выхода разделяемой памяти управляет менеджер очередей выходных портов. В разделяемой памяти менеджер организует несколько очередей данных, по одной для каждого выходного порта. Входные блоки процессоров передают менеджеру портов запросы на запись данных в очередь того порта, который соответствует адресу назначения пакета. Менеджер по очереди подключает вход памяти к одному из входных блоков процессоров и тот переписывает часть данных кадра в очередь определенного выходного порта. По мере заполнения очередей менеджер производит также поочередное подключение выхода разделяемой памяти к выходным блокам процессоров портов, и данные из очереди переписываются в выходной буфер процессора.
Память должна быть достаточно быстродействующей для поддержания скорости переписи данных между N портами коммутатора. Применение общей буферной памяти, гибко распределяемой менеджером между отдельными портами, снижает требования к размеру буферной памяти процессора порта.
Комбинированные коммутаторы
У каждой из описанных архитектур есть свои преимущества и недостатки, поэтому часто в сложных коммутаторах эти архитектуры применяются в комбинации друг с другом. Пример такого комбинирования приведен на рисунке 4.6.
Рис. 4.6. Комбинирование архитектур коммутационной матрицы и общей шины
Можно представить и другие способы комбинировании архитектур, например, использование для взаимодействия модулей разделяемой памяти.
Модульные и стековые коммутаторы
Первый тип коммутаторов обычно предназначен для организации небольших рабочих групп.
Модульные коммутаторы на основе шасси чаще всего предназначены для применения на магистрали сети. Поэтому они выполняются на основе какой-либо комбинированной схемы, в которой взаимодействие модулей организуется по быстродействующей шине или же на основе быстрой разделяемой памяти большого объема. Модули такого коммутатора выполняются на основе технологии «hot swap», то есть допускают замену на ходу, без выключения коммутатора, так как центральное коммуникационное устройство сети не должно иметь перерывов в работе. Шасси обычно снабжается резервированными источниками питания и резервированными вентиляторами, в тех же целях. В целом такие коммутаторы напоминают маршрутизаторы высшего класса или корпоративные многофункциональные концентраторы, поэтому иногда они включают помимо модулей коммутации и модули повторителей или маршрутизатров.
С технической точки зрения определенный интерес представляют стековые коммутаторы. Эти устройства представляют собой коммутаторы, которые могут работать автономно, так как выполнены в отдельном корпусе, но имеют специальные интерфейсы, которые позволяют их объединять в общую систему, которая работает как единый коммутатор. Говорят, что в этом случае отдельные коммутаторы образуют стек.
Структура стека коммутаторов, соединяемых по скоростным специальным портам, показана на рисунке 4.7.
Рис. 4.7. Стек коммутаторов, объединяемых по высокоскоростным каналам
Компания Cisco предложила другой подход к организации стека. Ее коммутатор Catalyst 3000 (ранее называвшийся EtherSwitch Pro Stack) также имеет специальный скоростной интерфейс 280 Мб/с для организации стека, но с его помощью коммутаторы соединяются не друг с другом, а с отдельным устройством, содержащим коммутационную матрицу 8(8, организующую более высокопроизводительный обмен между любыми парами коммутаторов.
Коммутаторы и маршрутизаторы
Коммутация
Коммутаторы — устройств канального уровня. В современных сетях они почти совершенно вытеснили мосты и частично маршрутизаторы. Коммутатор (switch) — это корпус со множеством гнезд для кабелей, который внешне похож на концентратор. Более того, некоторые производители выпускают концентраторы и комму таторы, различающиеся лишь маркировкой. Но это совершенно разные устройства: концентратор передает каждый входящий пакет через все порты, а коммутатор направляет его только на порт, обеспечивающий доступ к целевой системе (рис. 3.4).
Поскольку коммутатор направляет данные только на один порт, он, по сути, преобразует ЛВС с общей сетевой средой в ЛВС с выде ленной (dedicated) средой. В небольшой сети с коммутатором вместо концентратора каждый пакет следует от компьютера-источника к компьютеру-получателю по выделенному пути, который является коллизионным доменом для этих двух компьютеров.
Такой коммутатор иногда называют коммутирующим концентратором (switching hub). Широковещательные сообщения коммутаторы передают на все свои порты, но к узковещательным и многоадресным сообщениям это не относится. Ни один компьютер не получает пакеты, которые ему не предназначены. В процессе узковещательной передачи коллизии никогда не возникают, так как любая пара компьютеров в сети обменивается данными по выделенному кабелю. Иными словами, если мост просто разгружает сеть, то коммутатор практически полностью устраняет в ней лишний трафик.
Другое преимущество коммутации в том, что любая пара компьютеров пользуется всей полосой пропускания сети. Стандартная сеть Ethernet с концентратором может состоять из 20 или более компьютеров, совместно использующих полосу пропускания 10 Мбит/сек. Замените концентратор на коммутатор, и каждая пара компьютеров получит собственный выделенный канал со скоростью передачи 10 Мбит/сек. Это может существенно повысить общую производительность сети без модернизации рабочих станций. Кроме того, некоторые коммутаторы снабжены портами, работающими в полнодуплексном режиме, т. е. два компьютера могут передавать данные в обоих направлениях одновременно, используя отдельные пары проводов в сетевом кабеле. Работа в полнодуплексном режиме может увеличить пропускную способность сети с 10 Мбит/сек до 20 Мбит/сек.
Примечание: Коммутаторы, как правило, дороже концентраторов и дешевле маршрутизаторов. Как и концентраторы, по размерам коммутаторы варьируются от небольших блоков до моделей, смонтированных в отдельных стойках.
Установка коммутаторов
В небольших сетях, как правило, вместо коммутатора можно исполь зовать концентратор. Чаще коммутаторы применяют в крупных интерсетях вместо мостов или маршрутизаторов. Если в обычной корпоративной сети, состоящей из магистрали и нескольких сегментов, заменить маршрутизаторы коммутаторами, эффект будет поразительный. В сети с маршрутизатором магистраль переносит межсетевой трафик, сгенерированный всеми сегментами. Это приводит к тому, что она всегда работает в условиях высокого трафика. В коммутируемой сети компьютеры подсоединены к отдельным коммутаторам рабочих групп, которые в свою очередь связаны с высокопроизводительным коммутатором магистрали (рис. 3.5). В результате любой компьютер сети может соединиться по выделенному каналу с любым другим компьютером, даже если данные проходят через несколько коммутаторов.
Существует много вариантов использования коммутаторов в сложных интерсетях; менять сразу все концентраторы и маршрутизаторы на коммутаторы не придется. Например, можно продолжать пользоваться обычными сетевыми концентраторами, но подключить их не к маршрутизатору, а к многопортовому коммутатору. От этого эффек тивность межсетевого трафика возрастет. С другой стороны, если в Вашей сети большой объем трафика генерируется внутри отдельных ЛВС, а не между ними, можно, не затрагивая магистраль, заменить коммутаторами концентраторы рабочих станций, увеличив тем самым доступную каждому компьютеру полосу пропускания.
Проблема больших интерсетей, связанная с заменой всех мар шрутизаторов на коммутаторы, состоит в том, что в результате вместо нескольких небольших широковещательных доменов Вы получаете один, но очень большой (о коллизионных доменах Вам беспокоиться не придется, потому что коллизий будет гораздо меньше). Любое широковещательное сообщение, сгенерированное одним компьютером, коммутаторы передают всем остальным компьютерам сети, увеличивая тем самым количество лишних пакетов, обрабатываемых каждой системой. Существует несколько технологий для решения этой проблемы.
• Виртуальные ЛВС (ВЛВС) позволяют выделять в коммутируемой сети подсети, существующие только внутри коммутаторов. Адреса систем, входящих в данную подсеть, задаются сетевым администратором; физическая сеть остается коммутируемой. Системы подсети могут находиться где угодно, поскольку подсеть виртуальна и не зависит от физического расположения компьютеров. Когда компьютер, включенный в подсеть, передает широковещательное сообщение, оно передается только компьютерам данной подсети. Связь между подсетями может осуществляться с помощью маршрутизатора или коммутатора, но внутри ВЛВС трафик может быть только коммутируемым.
• Уровень коммутации 3 — это вариант ВЛВС, минимизирующий объем маршрутизации между виртуальными сетями. Когда требуется установить связь между системами в разных ВЛВС, маршрутизатор устанавливает соединение между системами, а затем управление берут на себя коммутаторы. Маршрутизация осуществляется только тогда, когда она действительно необходима.
Типы коммутаторов
Существует два основных типа коммутаторов: сквозные (cut- through) и с промежуточной буферизацией (store-and-forward). Сквозной коммутатор передает пакеты через соответствующий порт без дополнительной обработки, немедленно, как только они получены, считывая адрес целевой системы в заголовке протокола канального уровня. Коммутатор начинает передачу пакета, даже не дожидаясь завершения его приема. Как правило, в сквозных коммутаторах используется аппаратный компонент, состоящий из набора схем ввода- вывода, который позволяет данным поступать в коммутатор и покидать его через любой порт. Такие коммутаторы называются еще матричными (matrix) или координатными (crossbar). Они относительно недороги и сводят к минимуму так называемое время ожидания (latency), т. е. время, затрачиваемое коммутатором на обработку пакетов.
Коммутатор с промежуточной буферизацией дожидается завершения приема пакета и лишь потом отправляет его по назначению. Различают коммутаторы с общей памятью (shared-memory switch), т. е. с общим буфером для хранения данных всех портов, и коммутаторы с шиной (bus architecture switch) — с отдельными буферами для каждого порта, соединенными шиной. Пока пакет хранится в буферах, коммутатор пользуется этой возможностью, чтобы проверить данные, вычислив их код CRC. Кроме того, коммутатор отслеживает появление других проблем, присущих конкретному протоколу канального уровня, которые приводят к формированию дефектных кадров, на сленге именуемых коротышками (runt), гигантами (giant) и тарабар щиной (jabber). Эта проверка, естественно, увеличивает время ожидания, а дополнительные функции повышают стоимость коммутаторов с промежуточным хранением по сравнению со сквозными.
Маршрутизация
Маршрутизатором (router) называется устройство, связывающее вместе две сети, формируя из них интерсеть. В отличие от мостов и коммутаторов, маршрутизаторы функционируют на сетевом уровне эталонной модели OSI. Это означает, что маршрутизатор может связывать ЛВС, которые работают с разными протоколами канального уровня (например, Ethernet и Token Ring), при условии, что все они используют один и тот же протокол сетевого уровня. Самым популярным в наши дни является набор протоколов TCP/IP, на сетевом уровне которого действует протокол IP. Таким образом, большая часть информации, которую Вы будете узнавать о маршрутизаторах, будет относиться к протоколу IP.
Когда компьютеру в одной ЛВС нужно передать данные компьютеру в другой ЛВС, он посылает пакеты маршрутизатору в своей локальной сети, а маршрутизатор направляет их в целевую сеть. Если система-получатель находится в удаленной сети, маршрутизатору приходится пересылать пакеты другому маршрутизатору. В больших интерсетях, подобных Интернету, пакетам на пути к целевому компьютеру приходится проходить через множество маршрутизаторов.
Поскольку маршрутизаторы работают на сетевом уровне, они не связаны ограничениями протоколов канального уровня. Пакет, поступающий в маршрутизатор, продвигается по стеку протоколов к сетевому уровню, причем по ходу дела кадр канального уровня отсекается. Маршрушзатор определяет, куда нужно отправить пакет, и передает данньк вниз по стеку другому сетевому интерфейсу, который для отправки инкапсулирует их в новый кадр. Если два протокола канального уровня поддерживают пакеты разных размеров, мар шрутизатору, возможно, придется фрагментировать данные сетевого уровня и создавать из них несколько кадров.
Маршрутизация пакетов
В отношении пакетов, пересылаемых другим портам, маршрутизаторы более избирательны, чем концентраторы, мосты и коммутаторы. Работая на границах ЛВС, они не передают широковещательные сообщения за исключением некоторых специальных случаев. Маршрутизатор осуществляет передачу пакетов, руководствуясь не аппаратным адресом в заголовке канального уровня, а адресом оконечной целевой системы в заголовке протокола сетевого уровня. Информация о смежных с маршрутизатором сетях содержится в его внутренней таблице маршрутизации (routing table). По этой таблице маршрутизатор определяет, куда направить очередной пакет. Если пакет предназначен для системы в одной из сетей, к которым подключен маршрутизатор, он передает пакет непосредственно этой системе. Если пакет предназначен системе в удаленной сети, маршрутизатор через одну из смежных сетей передает пакет другому маршрутизатору.
Рассмотрим в качестве примера корпоративную интерсеть, состоящую из магистрали и нескольких сегментов, подключенных к ней с помощью маршрутизаторов (рис. 3.6). Компьютеры каждого сегмента используют в качестве шлюза по умолчанию маршрутизатор, связывающий этот сегмент с магистралью. Все пакеты, генерируемые в локальной сети, передаются либо одной из систем этой же сети, либо шлюзу по умолчанию. Маршрутизатор-шлюз удаляет из каждого пакета кадр канального уровня и считывает из заголовка сетевого уровня адрес оконечной целевой системы.
По своей таблице маршрутизации шлюз определяет, через какой маршрутизатор он может получить доступ к сети, в которой находится око нечная система. Адрес этого маршрутизатора указывается в качестве целевого адреса канального уровня в новом кадре, который шлюз создает для пакета с помощью протокола канального уровня магистрали (он может отличаться от протокола, используемого в сегменте). Затем пакет достигает следующего маршрутизатора, и процесс повторяется. Когда очередной маршрутизатор находит по своей таблице, что целевая система находится в сегменте, с которым он соединен, маршрутизатор создает кадр для передачи пакета непосредственно этой системе.
Если пакету на пути к конечному пункту приходится проходить через множество сетей (рис. 3.7), каждый обрабатывающий его маршрутизатор называют транзитом (hop). Маршрутизаторы часто оценивают эффективность маршрута по числу транзитов от исходной до целевой системы. Одна из основных функций маршрутизатора — выбор наилучшего маршрута по данным из таблицы маршрутизации.
Помимо объединения в интерсеть нескольких ЛВС в пределах одного здания, маршрутизаторы способны также соединять удаленные сети. Организации, состоящие из нескольких филиалов, часто соединяют локальные сети в этих филиалах, устанавливая в каждой сети маршрутизатор и соединяя эти маршрутизаторы с помощью выделенных телефонных линий или других технологий ГВС, например, транс ляции кадров (Frame Relay). Поскольку во всех филиалах широковещательный домен ограничен локальной сетью, по линиям ГВС передаются лишь пакеты, предназначенные для систем в других сетях. Объем трафика по каналам ГВС сведен к минимуму, а значит, минимальна и их стоимость.
Таблицы маршрутизации
Таблица маршрутизации — это сердце маршрутизатора. Без нее маршрутизатор не узнает, куда пересылать получаемые пакеты. Возникает вопрос, откуда она берется? В отличие от мостов и коммутаторов, маршрутизаторы не умеют составлять таблицы маршрутизации на основе информации из обрабатываемых ими пакетов. Это связано с тем, что для заполнения таблицы маршрутизации нужны подробности, которых в пакетах нет, а также с тем, что таблица необходима маршрутизатору для обработки первых же полученных им пакетов. Маршрутизатор, в отличие от моста, во все возможные пункты назначения пакеты не пересылает.
Таблицы маршрутизации создаются вручную или автоматически. Первый способ создания таблицы называется статической маршру тизацией (static routing). Сетевой администратор решает, что следует делать маршрутизатору при получении пакетов, адресованных системам в конкретной сети, и вводит необходимые данные в таблицу. Этим еще можно заниматься в относительно небольшой сети с несколькими маршрутизаторами, но в большой сети конфигурирование таблиц вручную становится неподъемной задачей. Кроме того, маршрутизаторы не могут автоматически корректировать таблицы при изменении структуры сети.
При динамической маршрутизации (dynamic routing) маршрутизаторы с помощью специализированных протоколов маршрутизации обмениваются информацией друг о друге и сетях, к которым они под ключены. Когда все маршрутизаторы в интерсети обменяются друг с другом таблицами, у каждого из них будет информация не только о своей собственной, но и о более удаленных сетях.
Протоколов маршрутизации существует множество, особенно в Интернете, где маршрутизация является одним из самых сложных и жизненно важных компонентов инфраструктуры. Динамическая мар шрутизация не требует прямого участия системных администраторов, не считая установки и запуска протоколов маршрутизации, а также обеспечивает автоматическое обновление содержимого таблиц при изменениях в сети. Допустим, один из маршрутизаторов вышел из строя. Через некоторое время все маршрутизаторы, которые обычно связывались с ним, удалят неисправный маршрутизатор из своих таблиц, передадут информацию о нем другим маршрутизаторам, и вскоре вся сеть прекратит попытки воспользоваться неисправным маршрутом. Когда маршрутизатор «вернется в строй», другие маршрутизаторы снова включат его в свои таблицы.
В задачу маршрутизатора входит также выбор для каждого пакета наилучшего маршрута до места назначения. В сравнительно небольших интерсетях (рис. 3.6) к конкретной системе есть только один возможный маршрут. Однако в более сложных сетях администраторы часто устанавливают несколько маршрутизаторов, чтобы в случае неисправности одного из них пакеты добрались до цели другим путем. В таблицу маршрутизации включаются все возможные маршруты к данной системе, причем каждый из них характеризуется величиной метрики (metric), определяющей относительную эффективность данного маршрута. Смысл метрики зависит от протокола маршрутизации, который ее генерирует. Иногда это просто число транзитов между мар шрутизатором и целевой системой. В других случаях метрика вычисляется сложнее.
Коммутаторы
Технология коммутации сегментов Ethernet была предложена фирмой Kalpana в 1990 году в ответ на растущие потребности в повышении пропускной способности связей высокопроизводительных серверов с сегментами рабочих станций.
Системный модуль ведет общую адресную таблицу коммутатора и обеспечивает управление коммутатором по протоколу SNMP. Для передачи кадров между портами используется коммутационная матрица, подобная тем, которые работают в телефонных коммутаторах или мультипроцессорных компьютерах, соединяя несколько процессоров с несколькими модулями памяти.
При поступлении кадра в какой-либо порт процессор ЕРР буферизует несколько первых байт кадра, чтобы прочитать адрес назначения.
После получения адреса назначения процессор сразу же принимает решение о передаче пакета, не дожидаясь прихода остальных байт кадра. Для этого он просматривает свой собственный кэш адресной таблицы, а если не находит там нужного адреса, обращается к системному модулю, который работает в многозадачном режиме, параллельно обслуживая запросы всех процессоров EРР. Системный модуль производит просмотр общей адресной таблицы и возвращает процессору найденную строку, которую тот буферизует в своем кэше для последующего использования
После нахождения адреса назначения процессор ЕРР знает, что нужно дальше делать с поступающим кадром (во время просмотра адресной таблицы процессор продолжал буферизацию поступающих в порт байтов кадра). Если кадр нужно отфильтровать, процессор просто прекращает записывать в буфер байты кадра, очищает буфер и ждет поступления нового кадра.
Если же кадр нужно передать на другой порт, то процессор обращается к коммутационной матрице и пытается установить в ней путь, связывающий его порт с портом, через который идет маршрут к адресу назначения. Коммутационная матрица может это сделать только в том случае, когда порт адреса назначения в этот момент свободен, то есть не соединен с другим портом.
Если же порт занят, то, как и в любом устройстве с коммутацией каналов, матрица в соединении отказывает. В этом случае кадр полностью буферизуется процессором входного порта, после чего процессор ожидает освобождения выходного порта и образования коммутационной матрицей нужного пути.
После того как нужный путь установлен, в него направляются буферизованные байты кадра, которые принимаются процессором выходного порта. Как только процессор выходного порта получает доступ к подключенному к нему сегменту Ethernet по алгоритму CSMA/CD, байты кадра сразу же начинают передаваться в сеть.
Процессор входного порта постоянно хранит несколько байт принимаемого кадра в своем буфере, что позволяет ему независимо и асинхронно принимать и передавать байты кадра (рис. 6). При свободном в момент приема кадра состоянии выходного порта задержка между приемом первого байта кадра коммутатором и появлением этого же байта на выходе порта адреса назначения составляла у коммутатора компании Kalpana всего 40 мкс, что было гораздо меньше задержки кадра при его передаче мостом.
Рис. 6. передача кадра через коммутационную матрицу.
Описанный способ передачи кадра без его полной буферизации получил название коммутации «на лету» («on-the-fly») или «напролет» («cut-through»). Этот способ представляет, по сути, конвейерную обработку кадра, когда частично совмещаются во времени несколько этапов его передачи (рис.7).
1. Прием первых байт кадра процессором входного порта, включая прием байт адреса назначения.
2. Поиск адреса назначения в адресной таблице коммутатора (в кэше процессора или в общей таблице системного модуля).
3. Коммутация матрицы.
4. Прием остальных байт кадра процессором входного порта.
5. Прием байт кадра (включая первые) процессором выходного порта через коммутационную матрицу.
6. Получение доступа к среде процессором выходного порта.
7. Передача байт кадра процессором выходного порта в сеть.
Этапы 2 и 3 совместить во времени нельзя, так как без знания номера выходного порта операция коммутации матрицы не имеет смысла.
По сравнению с режимом полной буферизации кадра, также приведенном на рис.7, экономия от конвейеризации получается ощутимой.
Рис. 7. Экономия времени при конвейерной обработке кадра.
Естественно, что в сети не всегда складывается такая ситуация, которая изображена на рис.8. Если двум станциям, например станциям, подключенным к портам 3 и 4, одновременно нужно записывать данные на один и тот же сервер, подключенный к порту 8, то коммутатор не сможет выделить каждой станции поток данных по 10 Мбит/с, так как порт 8 не может передавать данные со скоростью 20 Мбит/с. Кадры станций будут ожидать во внутренних очередях входных портов 3 и 4, когда освободится порт 8 для передачи очередного кадра.
Очевидно, хорошим решением для такого распределения потоков данных было бы подключение сервера к более высокоскоростному порту, например Fast Ethernet. Так как главное достоинство коммутатора, благодаря которому он завоевал очень хорошие позиции в локальных сетях, это его высокая производительность, то разработчики коммутаторов стараются выпускать так называемые неблокирующие (non-blocking) модели коммутаторов.
Рис. 8. Параллельная передача кадров коммутатором.
Обычно имеют в виду устойчивый неблокирующий режим работы коммутатора, когда коммутатор передает кадры со скоростью их поступления в течение произвольного промежутка времени. Для обеспечения такого режима нужно, естественно, такое распределение потоков кадров по выходным портам, чтобы они справлялись с нагрузкой и коммутатор мог всегда в среднем передать на выходы столько кадров, сколько их поступило на входы.
Если порт работает в полудуплексном режиме, например Ethernet 10 Мбит/с, то производительность порта Cpi равна 10 Мбит/с, а если в полнодуплексном, то его Cpi будет составлять 20 Мбит/с. Иногда говорят, что коммутатор поддерживает мгновенный неблокирующий режим. Это означает, что он может принимать и обрабатывать кадры от всех своих портов на максимальной скорости протоколов, независимо от того, обеспечиваются ли условия устойчивого равновесия между входным и в ыходным графиком.
Поэтому сегменты Ethernet в крупных сетях в первую очередь нуждались в средстве разгрузки узких мест сети, и этим средством стали коммутаторы фирмы Kalpana, а затем и других компаний. Некоторые компании стали развивать технологию коммутации для повышения производительности других технологий локальных сетей, таких как Token Ring и FDDI. Эти коммутаторы поддерживали как алгоритм работы прозрачного моста, так и алгоритм моста с маршрутизацией от источника.
Порты коммутаторов работали в обычном полудуплексном режиме, поэтому к ним прозрачно можно было подключить как конечный узел, так и концентратор, организующий целый логический сегмент. Так как коммутаторы и мосты прозрачны для протоколов сетевого уровня, то их появление в сети не оказало никакого влияния на маршрутизаторы сети, если они там имелись.
Коммутационная матрица обеспечивает основной и самый быстрый способ взаимодействия процессоров портов, именно он был реализован в первом промышленном коммутаторе локальных сетей. Однако реализация матрицы возможна только для определенного числа портов, причем сложность схемы возрастает пропорционально квадрату количества портов коммутатора (рис.9).
Для данного примера тэг представляет собой просто 3-разрядное двоичное число, соответствующее номеру выходного порта.
Рис. 9. Коммутационная матрица.
В коммутаторах с общей шиной процессоры портов связывают высокоскоростной шиной, используемой в режиме разделения времени. Пример такой архитектуры приведен на рис.11. Чтобы шина не блокировала работу коммутатора, ее производительность должна равняться по крайней мере сумме производительности всех портов коммутатора.
Для модульных коммутаторов некоторые сочетания модулей с низкоскоростными портами могут приводить к неблокирующей работе, а установка модулей с высокоскоростными портами может приводить к тому, что блокирующим элементом станет, например, общая шина. Кадр должен передаваться по шине небольшими частями, по нескольку байт, чтобы передача кадров между несколькими портами происходила в псевдопараллельном режиме, не внося задержек в передачу кадра в целом.
Размер такой ячейки данных определяется производителем коммутатора. Некоторые производители, например LANNET или Centillion, выбрали в качестве порции данных, переносимых за одну операцию по шине, ячейку АТМ с ее полем данных в 48 байт. Такой подход облегчает трансляцию протоколов локальных сетей в протокол АТМ, если коммутатор поддерживает эти технологии.
Рис. 11. Архитектура коммутатора с общей шиной
Входной блок процессора помещает в ячейку, переносимую по шине, тэг, в котором указывает номер порта назначения. Каждый выходной блок процессора порта содержит фильтр тэгов, который выбирает тэги, предназначенные данному порту.
Переключением входа и выхода разделяемой памяти управляет менеджер очередей выходных портов. В разделяемой памяти менеджер организует несколько очередей данных, по одной для каждого выходного порта. Входные блоки процессоров передают менеджеру портов запросы на запись данных в очередь того порта, который соответствует адресу назначения пакета.
Менеджер по очереди подключает вход памяти к одному из входных блоков процессоров и тот переписывает часть данных кадра в очередь определенного выходного порта. По мере заполнения очередей менеджер производит также поочередное подключение выхода разделяемой памяти к выходным блокам процессоров портов, и данные из очереди переписываются в выходной буфер процессора.
Рис. 12. Архитектура разделяемой памяти.
Память должна быть достаточно быстродействующей для поддержания скорости переписи данных между N портами коммутатора.
Применение общей буферной памяти, гибко распределяемой менеджером между отдельными портами, снижает требования к размеру буферной памяти процессора порта.
У каждой из описанных архитектур есть свои преимущества и недостатки, поэтому часто в сложных коммутаторах эти архитектуры применяются в комбинации друг с другом. Пример такого комбинирования приведен на рис.13.
Коммутатор состоит из модулей с фиксированным количеством портов (2-12), выполненных на основе специализированной БИС, реализующей архитектуру коммутационной матрицы. Если порты, между которыми нужно передать кадр данных, принадлежат одному модулю, то передача кадра осуществляется процессорами модуля на основе имеющейся в модуле коммутационной матрицы.
Рис. 13. Комбинирование архитектур коммутационной матрицы и общей шины.
Можно представить и другие способы комбинирования архитектур, например использование разделяемой памяти для взаимодействия модулей.






