Какой компонент коммутатора сокращает время обработки пакетов внутри коммутатора
После того, как технология коммутации привлекла общее внимание и получила высокие оценки специалистов, многие компании занялись реализацией этой технологии в своих устройствах, применяя для этого различные технические решения. Многие коммутаторы первого поколения были похожи на маршрутизаторы, то есть основывались на центральном процессоре общего назначения, связанном с интерфейсными портами по внутренней скоростной шине (рисунок 4.1). Однако, это были скорее пробные устройства, предназначенные для освоения самой компании технологии коммутации, а не для завоевания рынка.
Рис. 4.1. Коммутатор на процессоре общего назначения
Для ускорения операций коммутации нужны были специализированные процессоры со специализированными средствами обмена данными, как в первом коммутаторе Kalpana, и они вскоре появились. Теперь коммутаторы используют заказные специализированные БИС, которые оптимизированы для выполнения основных операций коммутации. Часто в одном коммутаторе используется несколько специализированных БИС, каждая из которых выполняет функционально законченную часть операций.
- коммутационная матрица;
- разделяемая многовходовая память;
- общая шина.
Часто эти три способа взаимодействия комбинируются в одном коммутаторе.
Коммутаторы на основе коммутационной матрицы
Коммутационная матрица - основной и самый быстрый способ взаимодействия процессоров портов, именно он был реализован в первом промышленном коммутаторе локальных сетей. Однако, реализация матрицы возможна только для определенного числа портов, причем сложность схемы возрастает пропорционально квадрату количества портов коммутатора (рисунок 4.2).
Рис. 4.2. Коммутационная матрица
Рис. 4.3. Реализация коммутационной матрицы 4х4 с помощью двоичных переключателей
Матрица состоит из трех уровней двоичных переключателей, которые соединяют свой вход с одним из двух выходов в зависимости от значения бита тэга. Переключатели первого уровня управляются первым битом тэга, второго - вторым, а третьего - третьим.
Матрица может быть реализована и по-другому, на основании комбинационных схем другого типа, но ее особенностью все равно остается технология коммутации физических каналов. Известным недостатком этой технологии является отсутствие буферизации данных внутри коммутационной матрицы - если составной канал невозможно построить из-за занятости выходного порта или промежуточного коммутационного элемента, то данные должны накапливаться в их источнике, в данном случае - во входном блоке порта, принявшего кадр.
Коммутаторы с общей шиной
Коммутаторы с общей шиной используют для связи процессоров портов высокоскоростную шину, используемую в режиме разделения времени. Эта архитектура похожа на изображенную на рисунке 4.1 архитектуру коммутаторов на основе универсального процессора, но отличается тем, что шина здесь пассивна, а активную роль выполняют специализированные процессоры портов.
Пример такой архитектуры приведен на рисунке 4.4. Для того, чтобы шина не была узким местом коммутатора, ее производительность должна быть по крайней мере в N/2 раз выше скорости поступления данных во входные блоки процессоров портов. Кроме этого, кадр должен передаваться по шине небольшими частями, по несколько байт, чтобы передача кадров между несколькими портами происходила в псевдопараллельном режиме, не внося задержек в передачу кадра в целом. Размер такой ячейки данных определяется производителем коммутатора. Некоторые производители, например, LANNET (сейчас подразделение компании Madge Networks), выбрали в качестве порции данных, переносимых за одну операцию по шине, ячейку АТМ с ее полем данных в 48 байт. Такой подход облегчает трансляцию протоколов локальных сетей в протокол АТМ, если коммутатор поддерживает эти технологии.
Рис. 4.4. Архитектура общей шины
Шина, так же как и коммутационная матрица, не может осуществлять промежуточную буферизацию, но так как данные кадра разбиваются на небольшие ячейки, то задержек с начальным ожиданием доступности выходного порта в такой схеме нет.
Коммутаторы с разделяемой памятью
Третья базовая архитектура взаимодействия портов - двухвходовая разделяемая память. Пример такой архитектуры приведен на рисунке 4.5.
Рис. 4.5. Архитектура разделяемой памяти
Память должна быть достаточно быстродействующей для поддержания скорости переписи данных между N портами коммутатора. Применение общей буферной памяти, гибко распределяемой менеджером между отдельными портами, снижает требования к размеру буферной памяти процессора порта.
Комбинированные коммутаторы
У каждой из описанных архитектур есть свои преимущества и недостатки, поэтому часто в сложных коммутаторах эти архитектуры применяются в комбинации друг с другом. Пример такого комбинирования приведен на рисунке 4.6.
Коммутатор состоит из модулей с фиксированным количеством портов (2 - 8), выполненных на основе специализированной БИС (ASIC), реализующей архитектуру коммутационной матрицы. Если порты, между которыми нужно передать кадр данных, принадлежат одному модулю, то передача кадра осуществляется процессорами модуля на основе имеющейся в модуле коммутационной матрицы. Если же порты принадлежат разным модулям, то процессоры общаются по общей шине. При такой архитектуре передача кадров внутри модуля будет происходить чаще всего быстрее, чем при межмодульной передаче, так как коммутационная матрица - наиболее быстрый, хотя и наименее масштабируемый способ взаимодействия портов. Скорость внутренней шины коммутаторов может достигать нескольких Гб/c, а у наиболее мощных моделей - до 10 - 14 Гб/с.
Рис. 4.6. Комбинирование архитектур коммутационной матрицы и общей шины
Можно представить и другие способы комбинировании архитектур, например, использование для взаимодействия модулей разделяемой памяти.
Модульные и стековые коммутаторы
- автономные коммутаторы с фиксированным количеством портов;
- модульные коммутаторы на основе шасси;
- коммутаторы с фиксированным количеством портов, собираемые в стек.
Первый тип коммутаторов обычно предназначен для организации небольших рабочих групп.
Модульные коммутаторы на основе шасси чаще всего предназначены для применения на магистрали сети. Поэтому они выполняются на основе какой-либо комбинированной схемы, в которой взаимодействие модулей организуется по быстродействующей шине или же на основе быстрой разделяемой памяти большого объема. Модули такого коммутатора выполняются на основе технологии "hot swap", то есть допускают замену на ходу, без выключения коммутатора, так как центральное коммуникационное устройство сети не должно иметь перерывов в работе. Шасси обычно снабжается резервированными источниками питания и резервированными вентиляторами, в тех же целях. В целом такие коммутаторы напоминают маршрутизаторы высшего класса или корпоративные многофункциональные концентраторы, поэтому иногда они включают помимо модулей коммутации и модули повторителей или маршрутизатров.
С технической точки зрения определенный интерес представляют стековые коммутаторы. Эти устройства представляют собой коммутаторы, которые могут работать автономно, так как выполнены в отдельном корпусе, но имеют специальные интерфейсы, которые позволяют их объединять в общую систему, которая работает как единый коммутатор. Говорят, что в этом случае отдельные коммутаторы образуют стек.
Обычно такой специальный интерфейс представляет собой высокоскоростную шину, которая позволяет объединить отдельные корпуса подобно модулям в коммутаторе на основе шасси. Так как расстояния между корпусами больше, чем между модулями на шасси, скорость обмена по шине обычно ниже, чем у модульных коммутаторов: 200 - 400 Мб/c. Не очень высокие скорости обмена между коммутаторами стека обусловлены также тем, что стековые коммутаторы обычно занимают промежуточное положение между коммутаторами с фиксированным количеством портов и коммутаторами на основе шасси. Стековые коммутаторы применяются для создания сетей рабочих групп и отделов, поэтому сверхвысокие скорости шин обмена им не очень нужны и не соответствуют их ценовому диапазону.
Структура стека коммутаторов, соединяемых по скоростным специальным портам, показана на рисунке 4.7.
Рис. 4.7. Стек коммутаторов, объединяемых по высокоскоростным каналам
Коммутаторы — устройств канального уровня. В современных сетях они почти совершенно вытеснили мосты и частично маршрутизаторы. Коммутатор (switch) — это корпус со множеством гнезд для кабелей, который внешне похож на концентратор. Более того, некоторые производители выпускают концентраторы и комму таторы, различающиеся лишь маркировкой. Но это совершенно разные устройства: концентратор передает каждый входящий пакет через все порты, а коммутатор направляет его только на порт, обеспечивающий доступ к целевой системе (рис. 3.4).
Поскольку коммутатор направляет данные только на один порт, он, по сути, преобразует ЛВС с общей сетевой средой в ЛВС с выде ленной (dedicated) средой. В небольшой сети с коммутатором вместо концентратора каждый пакет следует от компьютера-источника к компьютеру-получателю по выделенному пути, который является коллизионным доменом для этих двух компьютеров.
Другое преимущество коммутации в том, что любая пара компьютеров пользуется всей полосой пропускания сети. Стандартная сеть 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.
Когда компьютеру в одной ЛВС нужно передать данные компьютеру в другой ЛВС, он посылает пакеты маршрутизатору в своей локальной сети, а маршрутизатор направляет их в целевую сеть. Если система-получатель находится в удаленной сети, маршрутизатору приходится пересылать пакеты другому маршрутизатору. В больших интерсетях, подобных Интернету, пакетам на пути к целевому компьютеру приходится проходить через множество маршрутизаторов.
Маршрутизация пакетов
Рассмотрим в качестве примера корпоративную интерсеть, состоящую из магистрали и нескольких сегментов, подключенных к ней с помощью маршрутизаторов (рис. 3.6). Компьютеры каждого сегмента используют в качестве шлюза по умолчанию маршрутизатор, связывающий этот сегмент с магистралью. Все пакеты, генерируемые в локальной сети, передаются либо одной из систем этой же сети, либо шлюзу по умолчанию. Маршрутизатор-шлюз удаляет из каждого пакета кадр канального уровня и считывает из заголовка сетевого уровня адрес оконечной целевой системы.
По своей таблице маршрутизации шлюз определяет, через какой маршрутизатор он может получить доступ к сети, в которой находится око нечная система. Адрес этого маршрутизатора указывается в качестве целевого адреса канального уровня в новом кадре, который шлюз создает для пакета с помощью протокола канального уровня магистрали (он может отличаться от протокола, используемого в сегменте). Затем пакет достигает следующего маршрутизатора, и процесс повторяется. Когда очередной маршрутизатор находит по своей таблице, что целевая система находится в сегменте, с которым он соединен, маршрутизатор создает кадр для передачи пакета непосредственно этой системе.
Если пакету на пути к конечному пункту приходится проходить через множество сетей (рис. 3.7), каждый обрабатывающий его маршрутизатор называют транзитом (hop). Маршрутизаторы часто оценивают эффективность маршрута по числу транзитов от исходной до целевой системы. Одна из основных функций маршрутизатора — выбор наилучшего маршрута по данным из таблицы маршрутизации.
Помимо объединения в интерсеть нескольких ЛВС в пределах одного здания, маршрутизаторы способны также соединять удаленные сети. Организации, состоящие из нескольких филиалов, часто соединяют локальные сети в этих филиалах, устанавливая в каждой сети маршрутизатор и соединяя эти маршрутизаторы с помощью выделенных телефонных линий или других технологий ГВС, например, транс ляции кадров (Frame Relay). Поскольку во всех филиалах широковещательный домен ограничен локальной сетью, по линиям ГВС передаются лишь пакеты, предназначенные для систем в других сетях. Объем трафика по каналам ГВС сведен к минимуму, а значит, минимальна и их стоимость.
Таблицы маршрутизации
Таблица маршрутизации — это сердце маршрутизатора. Без нее маршрутизатор не узнает, куда пересылать получаемые пакеты. Возникает вопрос, откуда она берется? В отличие от мостов и коммутаторов, маршрутизаторы не умеют составлять таблицы маршрутизации на основе информации из обрабатываемых ими пакетов. Это связано с тем, что для заполнения таблицы маршрутизации нужны подробности, которых в пакетах нет, а также с тем, что таблица необходима маршрутизатору для обработки первых же полученных им пакетов. Маршрутизатор, в отличие от моста, во все возможные пункты назначения пакеты не пересылает.
Таблицы маршрутизации создаются вручную или автоматически. Первый способ создания таблицы называется статической маршру тизацией (static routing). Сетевой администратор решает, что следует делать маршрутизатору при получении пакетов, адресованных системам в конкретной сети, и вводит необходимые данные в таблицу. Этим еще можно заниматься в относительно небольшой сети с несколькими маршрутизаторами, но в большой сети конфигурирование таблиц вручную становится неподъемной задачей. Кроме того, маршрутизаторы не могут автоматически корректировать таблицы при изменении структуры сети.
При динамической маршрутизации (dynamic routing) маршрутизаторы с помощью специализированных протоколов маршрутизации обмениваются информацией друг о друге и сетях, к которым они под ключены. Когда все маршрутизаторы в интерсети обменяются друг с другом таблицами, у каждого из них будет информация не только о своей собственной, но и о более удаленных сетях.
Протоколов маршрутизации существует множество, особенно в Интернете, где маршрутизация является одним из самых сложных и жизненно важных компонентов инфраструктуры. Динамическая мар шрутизация не требует прямого участия системных администраторов, не считая установки и запуска протоколов маршрутизации, а также обеспечивает автоматическое обновление содержимого таблиц при изменениях в сети. Допустим, один из маршрутизаторов вышел из строя. Через некоторое время все маршрутизаторы, которые обычно связывались с ним, удалят неисправный маршрутизатор из своих таблиц, передадут информацию о нем другим маршрутизаторам, и вскоре вся сеть прекратит попытки воспользоваться неисправным маршрутом. Когда маршрутизатор «вернется в строй», другие маршрутизаторы снова включат его в свои таблицы.
В задачу маршрутизатора входит также выбор для каждого пакета наилучшего маршрута до места назначения. В сравнительно небольших интерсетях (рис. 3.6) к конкретной системе есть только один возможный маршрут. Однако в более сложных сетях администраторы часто устанавливают несколько маршрутизаторов, чтобы в случае неисправности одного из них пакеты добрались до цели другим путем. В таблицу маршрутизации включаются все возможные маршруты к данной системе, причем каждый из них характеризуется величиной метрики (metric), определяющей относительную эффективность данного маршрута. Смысл метрики зависит от протокола маршрутизации, который ее генерирует. Иногда это просто число транзитов между мар шрутизатором и целевой системой. В других случаях метрика вычисляется сложнее.
Коммутация по праву считается одной из самых популярных современных технологий. Коммутаторы по всему фронту теснят мосты и маршрутизаторы, оставляя за последними только организацию связи через глобальную сеть. Популярность коммутаторов обусловлена прежде всего тем, что они позволяют за счет сегментации повысить производительность сети. Помимо разделения сети на мелкие сегменты, коммутаторы дают возможность создавать логические сети и легко перегруппировывать устройства в них. Иными словами, коммутаторы позволяют создавать виртуальные сети.
В 1994 году компания IDC дала свое определение коммутатора локальных сетей: “ коммутатор – это устройство, конструктивно выполненное в виде сетевого концентратора и действующее как высокоскоростной многопортовый мост; встроенный механизм коммутации позволяет осуществить сегментирование локальной сети, а также выделить полосу пропускания конечным станциям в сети”.
Впервые коммутаторы появились в конце 80-х годов. Первые коммутаторы использовались для перераспределения пропускной способности и, соответственно, повышения производительности сети. Можно сказать, что коммутаторы первоначально применялись исключительно для сегментации сети. В наше время произошла переориентация, и теперь в большинстве случаев коммутаторы используются для прямого подключения к конечным станциям.
Широкое применение коммутаторов значительно повысило эффективность использования сети за счет равномерного распределения полосы пропускания между пользователями и приложениями. Несмотря на то что первоначальная стоимость была довольно высока, тем не менее они были значительно дешевле и проще в настройке и использовании, чем маршрутизаторы. Широкое распространение коммутаторов на уровне рабочих групп можно объяснить тем, что коммутаторы позволяют повысить отдачу от уже существующей сети. При этом для повышения производительности всей сети не нужно менять существующую кабельную систему и оборудование конечных пользователей.
Общий термин “коммутация ”применяется для четырех различных технологий:
- Конфигурационной коммутации;
- Коммутации кадров;
- Коммутации ячеек;
- Преобразования между кадрами и ячейками.
- Простые автономные коммутаторы сетей рабочих групп позволяют некоторым сетевым устройствам или сегментам обмениваться информацией с максимальной для данной кабельной системы скоростью. Они могут выполнять роль мостов для связи с другими сетевыми сегментами, но не транслируют протоколы и не обеспечивают повышенную пропускную способность с отдельными выделенными устройствами, такими как серверы.
- Коммутаторы рабочих групп второй категории обеспечивают высокоскоростную связь одного или нескольких портов с сервером или базовой станцией.
- Третью категорию составляют коммутаторы сети отдела предприятия, которые часто используются для взаимодействия сетей рабочих групп. Они представляют более широкие возможности администрирования и повышения производительности сети. Такие устройства поддерживают древовидную архитектуру связей, которая используется для передачи информации по резервным каналам и фильтрации пакетов. Физически такие коммутаторы поддерживают резервные источники питания и позволяют оперативно менять модули.
- Последняя категория – это коммутаторы сети масштаба предприятия, выполняющие диспетчеризацию трафика, определяя наиболее эффективный маршрут. Они могут поддерживать большое количество логических соединений сети. Многие производители корпоративных коммутаторов предлагают в составе своих изделий модули АТМ. Эти коммутаторы осуществляют трансляцию протоколов Ethernet в протоколы АТМ.
- С коммутационной матрицей;
- С общей шиной;
- С разделяемой многовходовой памятью.
- Агрессивное поведение порта;
- Метод обратного давления.
- Коммутация “на лету” (cut-through);
- Бесфрагментная коммутация (fragment-free switching);
- Коммутация с буферизацией (store-and-forward switching).
- Прием первых байтов кадра (включая байт адреса назначения);
- Поиск адреса назначения в адресной таблице;
- Построение матрицей коммутационного пути;
- Прием остальных байтов кадра;
- Пересылка всех байтов кадра выходному порту через коммутационную матрицу;
- Получение доступа к среде передачи;
- Передача кадра в сеть.
- Трансляция протоколов канального уровня;
- Поддержка протокола Spanning Tree;
- Фильтрация кадров;
- Использование различных классов сервиса;
- Поддержка виртуальных сетей.
- Гарантирует доставку любых данных в том порядке, в котором они были посланы;
- Предотвращает размножение широковещательных пакетов;
- Устраняет их бесконечную циркуляцию;
- Запрещает распространение пакетов с неизвестным адресом назначения.
- Повышение производительности виртуальной сети, так как коммутатор передает кадры только узлу назначения (это возможно, если узлы подключаются непосредственно к портам коммутатора);
- Изоляция виртуальных сетей друг от друга для управления правами доступа пользователей и создания защитных барьеров на пути широковещательных “штормов”.
- Автономные коммутаторы с фиксированным количеством портов;
- Модульные коммутаторы на основе шасси;
- Коммутаторы с фиксированным количеством портов, собираемые в стек.
В основе конфигурационной коммутации лежит нахождение соответствия между конкретным портом коммутатора и определенным сегментом сети. Это соответствие может программно настраиваться при подключении или перемещении пользователей в сети.
В технологии АТМ также применяется коммутация, но в ней единицы коммутации носят название ячеек. Преобразование между кадрами и ячейками позволяет станциям в сети 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, к которому подключены коммутаторы рабочих групп. Сеть с распределенной магистралью упрощает связь между рабочими группами, сокращает стоимость кабельной системы и допускает разнесение узлов на большие расстояния. Недостатком является существенно меньшая скорость по сравнению с сетью со стянутой в точку магистралью.
По конструктивному исполнению коммутаторы делятся на три группы:
Коммутаторы первой группы обычно предназначены для небольших рабочих групп.
Модульные коммутаторы на основе шасси чаще всего используются на магистрали сети. Модули такого коммутатора допускают замену блоков без выключения коммутатора.
Стековые коммутаторы представляют собой множество коммутаторов, которые могут работать автономно, так как выполнены в отдельных корпусах, но имеют специальный интерфейс (высокоскоростную шину), который позволяет объединить их в одну систему – единый коммутатор.
Коммутаторы занимают центральное место в современных локальных сетях. ТИПЫ КОММУТАЦИИ КОММУТИРУЮЩИЕ КОНЦЕНТРАТОРЫ МЕТОДЫ ОБРАБОТКИ ПАКЕТОВ RISC И ASIC АРХИТЕКТУРА КОММУТАТОРОВ СТАРШЕГО КЛАССА ПОСТРОЕНИЕ ВИРТУАЛЬНЫХ СЕТЕЙ КОММУТАЦИЯ ТРЕТЬЕГО УРОВНЯ ЗАКЛЮЧЕНИЕ Коммутация - одна из самых популярных современных технологий.
Коммутаторы занимают центральное место в современных локальных сетях.
Коммутация - одна из самых популярных современных технологий. Коммутаторы вытесняют мосты и маршрутизаторы на периферию локальных сетей, оставляя за ними роль организации связи через глобальную сеть. Такая популярность коммутаторов обусловлена в первую очередь тем, что они позволяют за счет микросегментации повысить производительность сети по сравнению с разделяемыми сетями с той же номинальной пропускной способностью. Помимо разделения сети на мелкие сегменты, коммутаторы дают возможность организовать подключенные устройства в логические сети и легко перегруппировывать их, когда это необходимо; иными словами, они позволяют создавать виртуальные сети.
Что же такое коммутатор? Согласно определению IDC, "коммутатор - это устройство, конструктивно выполненное в виде концентратора и действующее как высокоскоростной многопортовый мост; встроенный механизм коммутации позволяет осуществлять сегментирование локальной сети и выделять полосу пропускания конечным станциям в сети" (см. статью М. Кульгина "Построить сеть, посадить дерево. " в февральском номере LAN ). Однако это определение относится в первую очередь к коммутаторам кадров.
ТИПЫ КОММУТАЦИИ
Под коммутацией обычно понимают четыре различные технологии - конфигурационную коммутацию, коммутацию кадров, коммутацию ячеек и преобразование между кадрами и ячейками.
Конфигурационная коммутация известна также как коммутация портов, при этом конкретный порт на модуле интеллектуального концентратора приписывается к одному из внутренних сегментов Ethernet (или Token Ring). Это назначение производится удаленным образом посредством программного управления сетью при подключении или перемещении пользователей и ресурсов в сети. В отличие от других технологий коммутации, этот метод не повышает производительности разделяемой локальной сети.
Коммутация кадров, или коммутация в локальной сети, использует стандартные форматы кадров Ethernet (или Token Ring). Каждый кадр обрабатывается ближайшим коммутатором и передается далее по сети непосредственно получателю. В результате сеть превращается как бы в совокупность параллельно работающих высокоскоростных прямых каналов. То, как осуществляется коммутация кадров внутри коммутатора, мы рассмотрим ниже на примере коммутирующего концентратора.
Коммутация ячеек применяется в ATM. Использование небольших ячеек фиксированной длины дает возможность создать недорогие высокоскоростные коммутирующие структуры на аппаратном уровне. И коммутаторы кадров, и коммутаторы ячеек могут поддерживать несколько независимых рабочих групп вне зависимости от их физического подключения (см. раздел "Построение виртуальных сетей").
Преобразование между кадрами и ячейками позволяет, например, станции с платой Ethernet непосредственно взаимодействовать с устройствами в сети ATM. Эта технология применяется при эмуляции локальной сети.
В данном уроке нас будет прежде всего интересовать коммутация кадров.
КОММУТИРУЮЩИЕ КОНЦЕНТРАТОРЫ
Первый коммутирующий концентратор под названием EtherSwictch был представлен компанией Kalpana. Этот концентратор позволял снизить конкуренцию в сети за счет сокращения числа узлов в логическом сегменте с помощью технологии микросегментации. По существу, число станций в одном сегменте сокращалось до двух: станция, инициирующая запрос, и станция, отвечающая на запрос. Никакая другая станция не видит передаваемую между ними информацию. Пакеты передаются как бы через мост, но без свойственной мосту задержки.
В коммутируемой сети Ethernet каждому члену группы из нескольких пользователей может быть одновременно гарантирована пропускная способность 10 Мбит/с. Понять, как такой концентратор работает, лучше всего помогает аналогия с обычным старым телефонным коммутатором, в котором участников диалога соединяет коаксиальный кабель. Когда абонент звонил по "вечному" 07 и просил соединить его с таким-то номером, оператор прежде всего проверял, доступна ли линия; если да, то он соединял участников непосредственно с помощью куска кабеля. Никто другой (за исключением спецслужб, разумеется) не мог слышать их разговор. После завершения разговора оператор отсоединял кабель от обоих портов и ждал следующего вызова.
Коммутирующие концентраторы действуют аналогичным образом (см. Рисунок 1): они передают пакеты со входного порта на выходной порт через коммутирующую матрицу. Когда пакет попадает на входной порт, коммутатор читает его MAC-адрес (т. е. адрес второго уровня), и он немедленно перенаправляется на порт, связанный с этим адресом. Если порт занят, то пакет помещается в очередь. По существу, очередь представляет собой буфер на входном порту, где пакеты ждут, когда нужный порт освободится. Однако методы буферизации несколько отличаются.
Рисунок 1.
Коммутирующие концентраторы функционируют аналогично прежним телефонным коммутаторам: они соединяют входной порт непосредственно с выходным через коммутирующую матрицу.
МЕТОДЫ ОБРАБОТКИ ПАКЕТОВ
При сквозной коммутации (называемой также коммутацией на лету и коммутацией без промежуточной буферизации) коммутатор считывает только адрес поступающего пакета. Пакет передается далее вне зависимости от отсутствия или наличия в нем ошибок. Это позволяет значительно сократить время обработки пакета, так как читаются только несколько первых байт. Поэтому определять дефектные пакеты и запрашивать их повторную передачу должна принимающая сторона. Однако современные кабельные системы достаточно надежны, так что необходимость в повторной передаче во многих сетях минимальна. Тем не менее никто не застрахован от ошибок в случае повреждения кабеля, неисправности сетевой платы или помех от внешнего электромагнитного источника.
При коммутации с промежуточной буферизацией коммутатор, получая пакет, не передает его дальше, пока не прочтет полностью, или во всяком случае не прочтет всю необходимую ему информацию. Он не только определяет адрес получателя, но и проверяет контрольную сумму, т. е. может отсекать дефектные пакеты. Это позволяет изолировать порождающий ошибки сегмент. Таким образом, коммутация с промежуточной буферизацией делает упор на надежность, а не на скорость.
Помимо двух вышеперечисленных, некоторые коммутаторы используют гибридный метод. В обычных условиях они осуществляют сквозную коммутацию, но при этом следят за числом ошибок посредством проверки контрольных сумм. Если число ошибок достигает заданного порогового значения, они переходят в режим коммутации с промежуточной буферизацией. При снижении числа ошибок до приемлемого уровня они возвращаются в режим сквозной коммутации. Такой тип коммутации называется пороговой или адаптивной коммутацией.
RISC И ASIC
Зачастую коммутаторы с промежуточной буферизацией реализуются на основе стандартных процессоров RISC. Одним из преимуществ такого подхода является их относительная дешевизна по сравнению с коммутаторами с интегральными схемами ASIC, однако он не очень хорош в случае специализированных приложений. Коммутация в таких устройствах осуществляется при помощи программного обеспечения, поэтому их функциональность может быть изменена посредством модернизации установленного ПО. Недостаток же их в том, что они медленнее коммутаторов на базе ASIC.
Коммутаторы с интегральными схемами ASIC предназначены для выполнения специализированных задач: вся их функциональность "зашита" в аппаратное обеспечение. В таком подходе есть и недостаток: когда необходима модернизация, производитель вынужден перерабатывать схему. ASIC обычно осуществляют сквозную коммутацию. Коммутирующая матрица ASIC создает выделенные физические пути между входным и выходным портом, как показано на Рисунке 1.
АРХИТЕКТУРА КОММУТАТОРОВ СТАРШЕГО КЛАССА
Коммутаторы старшего класса имеют, как правило, модульную структуру, и они могут осуществлять как коммутацию пакетов, так и коммутацию ячеек. Модули такого коммутатора осуществляют коммутацию между сетями разных типов, в том числе Ethernet, Fast Ethernet, Token Ring, FDDI и ATM. При этом основным механизмом коммутации в таких устройствах является коммутационная структура ATM. Мы рассмотрим архитектуру таких устройств на примере Centillion 100 компании Bay Networks.
Коммутация осуществляется при помощи следующих трех аппаратных компонентов (см. Рисунок 2):
Рисунок 2.
В коммутаторах старшего класса коммутация ячеек используется все чаще благодаря ее высокой скорости и простоте миграции к ATM.
Каждый модуль коммутатора имеет порты ввода/вывода, буферную память и CellManager ASIC. Кроме того, каждый модуль для локальной сети имеет также процессор RISC для осуществления коммутации кадров между локальными портами и сборщика/разборщика пакетов для преобразования кадров и ячеек друг в друга. Все модули могут самостоятельно осуществлять коммутацию между своими портами, так что только трафик, предназначенный другим модулям, передается через объединительную панель.
Каждый модуль поддерживает свою собственную таблицу адресов, а главный управляющий процессор сводит их в одну общую таблицу, благодаря чему отдельный модуль может видеть сеть в целом. Если, например, модуль Ethernet получает пакет, он определяет, кому этот пакет адресован. Если адрес находится в локальной таблице адресов, то RISC-процессор осуществляет коммутацию пакета между локальными портами. Если адресат находится на другом модуле, то сборщик/разборщик преобразует пакет в ячейки. CellManager указывает маску адресата для идентификации модуля(-ей) и порта(-ов), которым предназначен полезный груз ячеек. Всякий модуль, бит маски платы которого задан в маске адресата, копирует ячейку в локальную память и передает данные на соответствующий выходной порт в соответствии с заданными битами маски портов.
ПОСТРОЕНИЕ ВИРТУАЛЬНЫХ СЕТЕЙ
Кроме повышения производительности, коммутаторы позволяют создавать виртуальные сети. Одним из методов создания виртуальной сети является создание широковещательного домена посредством логического соединения портов внутри физической инфраструктуры коммуникационного устройства (это может быть как интеллектуальный концентратор - конфигурационная коммутация, так и коммутатор - коммутация кадров). Например, нечетные порты восьмипортового устройства приписываются к одной виртуальной сети, а четные - к другой. В результате станция в одной виртуальной сети оказывается изолированной от станций в другой. Недостаток такого метода организации виртуальной сети состоит в том, что все станции, подключенные к одному и тому же порту, должны принадлежать к одной и той же виртуальной сети.
Другой метод создания виртуальной сети базируется на MAC-адресах подсоединенных устройств. При таком способе организации виртуальной сети любой сотрудник может подключать, например, свой портативный компьютер к любому порту коммутатора, и он будет автоматически определять принадлежность его пользователя к той или иной виртуальной сети на основе MAC-адреса. Такой метод разрешает также пользователям, подключенным к одному порту коммутатора, принадлежать к разным виртуальным сетям. Подробнее о виртуальных сетях см. статью А. Авдуевского "Такие реальные виртуальные сети" в мартовском номере LAN за этот год.
КОММУТАЦИЯ ТРЕТЬЕГО УРОВНЯ
При всех их достоинствах коммутаторы имеют один существенный недостаток: они не в силах защитить сеть от лавин широковещательных пакетов, а это ведет к непроизводительной загрузке сети и увеличении времени отклика. Маршрутизаторы могут контролировать и фильтровать ненужный широковещательный трафик, но они работают на порядок медленнее. Так, согласно документации Case Technologies, типичная производительность маршрутизатора составляет 10 000 пакетов в секунду, а это не идет ни в какое сравнение с аналогичным показателем коммутатора - 600 000 пакетов в секунду.
В результате многие производители стали встраивать в коммутаторы функции маршрутизации. Чтобы работа коммутатора не замедлилась существенным образом, применяются различные методы: например, и коммутация второго уровня, и коммутация третьего уровня реализуются непосредственно в аппаратном обеспечении (в интегральных схемах ASIC). Разные производители называют эту технологию по-разному, но цель одна: маршрутизирующий коммутатор должен выполнять функции третьего уровня с той же скоростью, что и функции второго уровня. Немаловажным фактором является и цена такого устройства в расчете на порт: она тоже должна быть невысока, как и у коммутаторов (см. статью Ника Липписа в следующем номере журнала LAN).
ЗАКЛЮЧЕНИЕ
Коммутаторы и конструктивно, и функционально весьма разнообразны; в одной небольшой статье невозможно охватить все их аспекты. В следующем уроке мы подробно рассмотрим коммутаторы ATM.
Читайте также: