о
Рис. 13.3. Изменение загрузки при делении сети на сегменты
После разделения сети на сегменты подсчитаем нагрузку отдельно для каждого сегмента. Например, нагрузка сегмента 51 стала равна где Cs — внутренний трафик
сегмента 51, a Cs-si — межсегментный трафик. Чтобы показать, что загрузка сегмента 51 стала меньше, чем загрузка исходной сети, заметим, что общую загрузку сети до разделения на сегменты можно представить в таком виде:
CL - С$1 + С$1-52 + Csi:
Значит, загрузка сегмента 51 после разделения стала равной Сх - С5г, то есть стала меньше на величину внутреннего трафика сегмента 52. Аналогичные рассуждения можно повторить относительно сегмента 52. Следовательно, в соответствии с графиками, приведенными на рис. 13.1, задержки в сегментах уменьшились, а полезная пропускная способность, приходящаяся на один узел, увеличилась.
Ранее было отмечено, что деление сети на логические сегменты почти всегда снижает загрузку новых сегментов. Слово «почти» учитывает очень редкий случай, когда сеть разбита на сегменты так, что внутренний трафик каждого сегмента оказывается нулевым, то есть весь трафик является межсегментным. Для примера на рис. 13.3 это означало бы, что все компьютеры сегмента 51 обмениваются данными только с компьютерами сегмента 52, и наоборот.
На практике в сети всегда можно выделить группу компьютеров, которые принадлежат сотрудникам, решающим общую задачу. Это могут быть сотрудники одной рабочей группы, отдела, другого структурного подразделения предприятия. В большинстве случаев им нужен доступ к ресурсам сети их отдела и только изредка — доступ к удаленным ресурсам.
В 80-е годы существовало эмпирическое правило, говорящее о том, что сеть можно разделить на сегменты так, что 80 % трафика составят обращения к локальным ресурсам и только120 % — к удаленным. Сегодня такая закономерность не всегда соответствует действительности, она может трансформироваться в правило 50 на 50 % и даже 20 на 80 % (например, большая часть обращений направлена к ресурсам Интернета или к централизованным серверам предприятия). Тем не менее в любом случае внутрисегментный трафик существует. Если его нет, значит, сеть разбита на логические сегменты неверно.
При построении сети как совокупности сегментов каждый из них может быть адаптирован к специфическим потребностям рабочей группы или отдела. Это означает повышение гибкости сети. Процесс разбиения сети на логические сегменты можно рассматривать и в обратном направлении, как процесс создания большой сети из уже имеющихся небольших сетей.
Устанавливая различные логические фильтры на мостах/коммутаторах, можно контролировать доступ пользователей к ресурсам других сегментов, чего не позволяют делать повторители. Так достигается повышение безопасности данных.
Побочным эффектом снижения трафика и повышения безопасности данных является упрощение управления сетью, то есть улучшение управляемости сети. Проблемы очень часто локализуются внутри сегмента. Сегменты образуют логические домены управления сетью.
Оба описываемых устройства продвигают кадры на основании одного и того же алгоритму, а именно алгоритма прозрачного моста, описанного в стандарте IEEE 802.ID.
Этот стандарт, разработанный задолго до появления первого коммутатора, описывал работу моста, поэтому совершенно естественно, что в его названии и содержании используется термин «мост». Некоторая путаница возникла, когда на свет появились первые модели коммутаторов — они выполняли тот же описанный в стандарте IEEE 802.ID алгоритм продвижения кадров, который с десяток лет был отработан мостами. И хотя мосты, для которых алгоритм был разработан, сегодня уже относятся к практически «вымершему» виду коммуникационных устройств, в стандартах, описывающих работу коммутатора, следуя традиции, используют термин «мост». Мы же не будем столь консервативными и при описании алгоритмов 802.1D в следующем разделе позволим себе иногда указывать термин «коммутатор», кроме тех случаев, когда речь пойдет об официальном названии стандарта или когда необходимо будет подчеркнуть разницу между двумя типами устройств.
Алгоритм прозрачного моста IEEE 802.1D
В локальных сетях 80-х и 90-х годов применялись мосты нескольких типов:
? прозрачные мосты;
? мосты с маршрутизацией от источника;
? транслирующие мосты.
Мосты с маршрутизацией от источника применялись только в сетях Token Ring, а транслирующие мосты были способны соединять сегменты разных технологий, например Ethernet и Token Ring. В результате исчезновения всех технологий локальных сетей, кроме Ethernet, оба этих типа мостов также исчезли, а алгоритм прозрачного моста выжил, найдя свое применение в коммутаторах Ethernet.
Слово «прозрачный» в названии алгоритм прозрачного моста отражает тот факт, что мосты и коммутаторы в своей работе не учитывают существование в сети сетевых адаптеров конечных узлов, концентраторов и повторителей. В то же время и перечисленные сетевые устройства функционируют, «не замечая» присутствия в сети мостов и коммутаторов.
Так как алгоритм прозрачного моста остался единственным актуальным алгоритмом мостов, то в дальнейшем мы будем опускать термин «прозрачный», подразумевая именно этот тип алгоритма работы моста/коммутатора.
Мост строит свою таблицу продвижения (адресную таблицу) на основании пассивного наблюдения за трафиком, циркулирующим в подключенных к его портам сегментах. При этом мост учитывает адреса источников кадров данных, поступающих на его порты. По адресу источника кадра мост делает вывод о принадлежности узла-источника тому или иному сегменту сети.
ВНИМАНИЕ-
Каждый порт моста работает, как конечный узел своего сегмента, за одним исключением — порт моста может не иметь собственного MAC-адреса. Порты мостов не нуждаются в адресах для продвижения кадров, так как они работают в режиме неразборчивого захвата кадров, когда все поступающие на порт кадры, независимо от их адреса назначения, запоминаются на время в буферной памяти. Работая в неразборчивом режиме, мост «слушает» весь трафик, передаваемый в присоединенных к нему сегментах, и использует проходящие через него кадры для изучения топологии сети и построения таблицы продвижения. В том случае, когда порт моста/коммутатора имеет собственный МАС-адрес, он используется для целей, отличных от продвижения кадров, чаще всего — для удаленного управления портом; в этом случае порт представляет собой конечный узел сети, и кадры адресуются непосредственно ему.
Рассмотрим процесс автоматического создания таблицы продвижения моста и ее использования на примере простой сети, представленной на рис. 13.4.
Рис. 13.4. Принцип работы прозрачного моста/коммутатора
Мост соединяет два сетевых сегмента. Сегмент 1 составляют компьютеры, подключенные с помощью одного отрезка коаксиального кабеля к порту 1 моста, а сегмент 2 — компьютеры, подключенные с помощью другого отрезка коаксиального кабеля к порту 2 моста. В исходном состоянии мост не знает о том, компьютеры с какими МАС-адресами подключены к каждому из его портов. В этой ситуации мост просто передает любой захваченный и буферизованный кадр на все свои порты за исключением того порта, от которого этот кадр получен. В нашем примере у моста только два порта, поэтому он передает кадры с порта 1 на порт 2, и наоборот. Отличие работы моста в этом режиме от повторителя заключается в том, что он передает кадр, предварительно буферизуя его, а не бит за битом, как это делает повторитель. Буферизация разрывает логику работы всех сегментов как единой разделяемой среды. Когда мост собирается передать кадр с сегмента на сегмент, например с сегмента 1 на сегмент 2, он, как обычный конечный узел, пытается получить доступ к разделяемой среде сегмента 2 по правилам алгоритма доступа, в данном примере — по правилам алгоритма CSMA/CD.
Одновременно с передачей кадра на все порты мост изучает адрес источника кадра и делает запись о его принадлежности к тому или иному сегменту в своей адресной таблице. Эту таблицу также называют таблицей фильтрации, или продвижения. Например, получив на порт 1 кадр от компьютера 1, мост делает первую запись в своей адресной таблице:
М АС-адрес 1 — порт 1.
Эта запись означает, что компьютер, имеющий МАС-адрес 1, принадлежит сегменту, подключенному к порту 1 коммутатора. Если все четыре компьютера данной сети проявляют активность и посылают друг другу кадры, то скоро мост построит полную адресную таблицу сети, состоящую из 4-х записей — по одной записи на узел (см. рис. 13.4).
При каждом поступлении кадра на порт моста он, прежде всего, пытается найти адрес назначения кадра в адресной таблице. Продолжим рассмотрение действий моста на примере (см. рис. 13.4).
1. При получении кадра, направленного от компьютера 1 компьютеру 3, мост просматривает адресную таблицу на предмет совпадения адреса в какой-либо из ее записей
с адресом назначения — МАС-адресом 3. Запись с искомым адресом имеется в адресной таблице.
2. Мост выполняет второй этап анализа таблицы — проверяет, находятся ли компьютеры с адресами источника и назначения в одном сегменте. В примере компьютер 1 (МАС-адрес 1) и компьютер 3 (МАС-адрес 3) находятся в разных сегментах. Следовательно, мост выполняет операцию продвижения (forwarding) кадра — передает кадр на порт 2, ведущий в сегмент получателя, получает доступ к сегменту и передает туда кадр.
3. Если бы оказалось, что компьютеры принадлежали одному сегменту, то кадр просто был бы удален из буфера. Такая операция называется фильтрацией (filtering).
4. Если бы запись о МАС-адресе 3 отсутствовала в адресной таблице, то есть, другими словами, адрес назначения был неизвестен мосту, го он передал бы кадр на все свои порты, кроме порта — источника кадра, как и на начальной стадии процесса обучения.
Процесс обучения моста никогда не заканчивается и происходит одновременно с продвижением и фильтрацией кадров. Мост постоянно следит за адресами источника буферизуемых кадров, чтобы автоматически приспосабливаться к изменениям, происходящим в сети, — перемещениям компьютеров из одного сегмента сети в другой, отключению и появлению новых компьютеров.
Входы адресной таблицы могут быть динамическими, создаваемыми в процессе самообучения моста, и статическими, создаваемыми вручную администратором сети. Статические записи не имеют срока жизни, что дают администратору возможность влиять на работу моста, например ограничивая передачу кадров с определенными адресами из одного сегмента в другой.
Динамические записи имеют срок жизни — при создании или обновлении записи в адресной таблице с ней связывается отметка времени. По истечении определенного тайм-аута запись помечается как недействительная, если за это время мост не принял ни одного кадра с данным адресом в поле адреса источника. Это дает возможность мосту автоматически реагировать на перемещения компьютера из сегмента в сегмент — при его отключении от старого сегмента запись о принадлежности компьютера к этому сегменту со временем вычеркивается из адресной таблицы. После подключения компьютера к другому сегменту его кадры начнут попадать в буфер моста через другой порт, и в адресной таблице появится новая запись, соответствующая текущему состоянию сети.
Кадры с широковещательными МАС-адресами, как и кадры с неизвестными адресами назначения, передаются мостом на все его порты. Такой режим распространения кадров называется затоплением сети (flooding). Наличие мостов в сети не препятствует распространению широковещательных кадров по всем сегментам сети. Однако это является достоинством только тогда, когда широковещательный адрес выработан корректно работающим узлом.
Нередко в результате каких-либо программных или аппаратных сбоев протокол верхнего уровня или сетевой адаптер начинает работать некорректно, а именно постоянно с высокой интенсивностью генерировать кадры с широковещательным адресом. Мост в соответствии со своим алгоритмом передает ошибочный трафик во все сегменты. Такая ситуация называется широковещательным штормом (broadcast storm).
К сожалению, мосты не защищают сети от широковещательного шторма, во всяком случае, по умолчанию, как это делают маршрутизаторы (вы познакомитесь с этим свойством маршрутизаторов в части IV). Максимум, что может сделать администратор с помощью коммутатора для борьбы с широковещательным штормом — установить для каждого порта моста предельно допустимую интенсивность передачи кадров с широковещательным адресом. Но при этом нужно точно знать, какая интенсивность является нормальной, а какая — ошибочной. При смене протоколов ситуация в сети может измениться, и то что вчера считалось ошибочным, сегодня может оказаться нормой.
На рис. 13.5 показана типичная структура моста. Функции доступа к среде при приеме и передаче кадров выполняют микросхемы MAC, которые идентичны микросхемам сетевого адаптера.
Рис. 13.5. Структура моста/коммутатора
Протокол, реализующий алгоритм коммутатора, располагается между уровнями MAC и LLC.
На рис. 13.6 показана копия экрана терминала с адресной таблицей моста.
AddressDispnForwarding Table Address DispnРаде 1 of 1Address Dispn 00608СВ17Е58 00008101C4DF *010081000101LAN В LAN В Discard0000810298D6 LANA + 000081016A52 LANA /*0180C2000000 Discard02070188АСА *010081000100 * 000081FFD166LANAFloodFlood /Статус адреса: срок жизни записи истек ExitNext Page Prev Page Edit Table Search Item Go Page + Unlearned * Static Total Entries = 9 Static Entries = 4 Use cursor keys to choose option. Press <RETURN> to select.Press <CTRL> <P> to return to Main Menu Рис. 13.6. Адресная таблица коммутатораИз выводимой на экран адресной таблицы видно, что сеть состоит из двух сегментов — LAN А и LAN В. В сегменте LAN А имеются, по крайней мере, 3 станции, а в сегменте LAN В — 2 станции. Четыре адреса, помеченные звездочками, являются статическими, то есть назначенными администратором вручную. Адрес, помеченный плюсом, является динамическим адресом с истекшим сроком жизни.
Таблица имеет поле Dispn — «disposition» (это «распоряжение» мосту о том, какую операцию нужно проделать с кадром, имеющим данный адрес назначения). Обычно при автоматическом составлении таблицы в этом поле ставится условное обозначение порта назначения, но при ручном задании адреса в это поле можно внести нестандартную операцию обработки кадра. Например, операция Flood (затопление) заставляет мост распространять кадр в широковещательном режиме, несмотря на то что его адрес назначения не является широковещательным. Операция Discard (отбросить) говорит мосту, что кадр с таким адресом не нужно передавать на порт назначения. Вообще говоря, операции, задаваемые в поле Dispn, определяют особые условия фильтрации кадров, дополняющие стандартные условия их распространения. Такие условия обычно называют пользовательскими фильтрами, мы их рассмотрим немного позже в разделе «Фильтрация трафика» главы 14.
Топологические ограничения при применении мостов в локальных сетях
Серьезным ограничением функциональных возможностей мостов и коммутаторов является отсутствие поддержки петлеобразных конфигураций сети.
Рассмотрим это ограничение на примере сети, показанной на рис. 13.7.
Новый узел 10
Рис. 13.7. Влияние замкнутых маршрутов на работу коммутаторов
Два сегмента Ethernet параллельно соединены двумя мостами, так что образовалась петля. Пусть новая станция с МАС-адресом 123 впервые начинает работу в данной сети. Обычно начало работы любой операционной системы сопровождается рассылкой широковещательных кадров, в которых станция заявляет о своем существовании и одновременно ищет серверы сети.
На этапе 1 станция посылает первый кадр с широковещательным адресом назначения и адресом источника 123 в свой сегмент. Кадр попадает как в мост 1, так и в мост 2. В обоих мостах новый адрес источника 123 заносится в адресную таблицу с пометкой о его принадлежности сегменту 1, то есть создается новая запись вида:
М АС-адрес 123 — Порт 1.
Так как адрес назначения широковещательный, то каждый мост должен передать кадр на сегмент 2. Эта передача происходит поочередно в соответствии с методом случайного доступа технологии Ethernet. Пусть первым доступ к сегменту 2 получает мост 1 (этап 2 на рис. 13.7). При появлении кадра на сегменте 2 мост 2 принимает его в свой буфер и обрабатывает. Он видит, что адрес 123 уже есть в его адресной таблице, но пришедший кадр является более свежим, и он решает, что адрес 123 принадлежит сегменту 2, а не 1. Поэтому мост 2 корректирует содержимое базы и делает запись о том, что адрес 123 принадлежит сегменту 2: М АС-адрес 123 — Порт 2.
Аналогично поступает мост 1, когда мост 2 передает свою копию кадра на сегмент 2. Далее перечислены последствия наличия петли в сети.
? «Размножение» кадра, то есть появление нескольких его копий (в данном случае — двух, но если бы сегменты были соединены тремя мостами — то трех и т. д.).
? Бесконечная циркуляция обеих копий кадра по петле в противоположных направлениях, а значит, засорение сети ненужным трафиком.
? Постоянная перестройка мостами своих адресных таблиц, так как кадр с адресом источника 123 будет появляться то на одном порту, то на другом.
В целях исключения всех этих нежелательных эффектов мосты/коммутаторы нужно применять так, чтобы между логическими сегментами не было петель, то есть строить с помощью коммутаторов только древовидные структуры, гарантирующие наличие единственного пути между любыми двумя сегментами. Тогда кадры от каждой станции будут поступать на мост/коммутатор всегда с одного и того же порта, и коммутатор сможет правильно решать задачу выбора рационального маршрута в сети.
В небольших сетях сравнительно легко гарантировать наличие одного и только одного пути между двумя сегментами. Но когда количество соединений возрастает, то вероятность непреднамеренного образования петли оказывается высокой.
Возможна и другая причина возникновения петель. Так, для повышения надежности желательно иметь между мостами/коммутаторами резервные связи, которые не участвуют в нормальной работе основных связей по передаче информационных кадров станций, но при отказе какой-либо основной связи образуют новую связную рабочую конфигурацию без петель.
Избыточные связй необходимо блокировать, то есть переводить их в неактивное состояние. В сетях с простой топологией эта задача решается вручную путем блокирования соответствующих портов мостов/коммутаторов. В больших сетях со сложными связями используются алгоритмы, которые позволяют решать задачу обнаружения петель автоматически. Наиболее известным из них является стандартный алгоритм покрывающего дерева (Spanning Tree Algorithm, STA), который будет детально рассмотрен в главе 14.
Коммутаторы
Параллельная коммутация
При появлении в конце 80-х начале 90-х годов быстрых протоколов, производительных персональных компьютеров, мультимедийной информации и разделении сети на большое количество сегментов классические мосты перестали справляться с работой. Обслуживание потоков кадров между теперь уже несколькими портами с помощью одного процессорного блока требовало значительного повышения быстродействия процессора, а это довольно дорогостоящее решение.
Более эффективным оказалось решение, которое и «породило» коммутаторы: для обслуживания потока, поступающего на каждый порт, в устройство ставился отдельный специализированный процессор, который реализовывал алгоритм прозрачного моста. По сути, коммутатор — это мультипроцессорный мост, способный параллельно продвигать кадры сразу между всеми парами своих портов. Но если при добавлении процессорных блоков компьютер не перестали называть компьютером, а добавили только прилагательное «мультипроцессорный», то с мультипроцессорными мостами произошла метаморфоза — во многом по маркетинговым причинам они превратились в коммутаторы. Нужно отметить, что помимо процессоров портов коммутатор имеет центральный процессор, который координирует работу портов, отвечая за построение общей таблицы продвижения, а также поддерживая функции конфигурирования и управления коммутатором.
Со временем коммутаторы вытеснили из локальных сетей классические однопроцессорные мосты. Основная причина этого — существенно более высокая производительность, с которой коммутаторы передают кадры между сегментами сети. Если мосты могли даже замедлять работу сети, то коммутаторы всегда выпускаются с процессорами портов, способными передавать кадры с той максимальной скоростью, на которую рассчитан протокол. Ну а добавление к этому возможности параллельной передачи кадров между портами предопределило судьбу и мостов, и коммутаторов.
Производительность коммутаторов йа несколько порядков выше, чем мостов ^ коммутаторы могут передавать до нескольких десятков* а иногда и соте#миллионов кадров в секунду* в то время как мосты обычно обрабатывали 3-5 тысяч кад ров а секунду.
За время своего существования уже без конкурентов-мостов коммутаторы вобрали в себя многие дополнительные функции, родившиеся в результате естественного развития сетевых технологий. К этим функциям относятся, например, поддержка виртуальных сетей (VLAN), агрегирование линий связи, приоритезация трафика и т. п. Развитие технологии производства заказных микросхем также способствовало успеху коммутаторов, в результате процессоры портов сегодня обладают такой вычислительной мощностью, которая позволяет им быстро реализовывать весьма сложные алгоритмы обработки трафика, например выполнять его классификацию и профилирование.
Технология коммутации сегментов Ethernet была предложена небольшой компанией Kalpana в 1990 году в ответ на растущие потребности в повышении пропускной способности связей высокопроизводительных серверов с сегментами рабочих станций. У коммутатора компании Kalpana при свободном в момент приема кадра состоянии выходного порта задержка между получением первого байта кадра и появлением этого же байта на выходе порта адреса назначения составляла всего 40 мкс, что было гораздо ниже задержки кадра при его передаче мостом.
Структурная схема коммутатора EtherSwitch, предложенного фирмой Kalpana, представлена на рис. 13.8.
Системный модульУправлениеМногозадачноеядро
Рис. 13.8. Структура коммутатора EtherSwitch компании Kalpana
Каждый из 8 портов 10Base-T обслуживается одним процессором пакетов Ethernet (Ethernet Packet Processor, EPP). Кроме того, коммутатор имеет системный модуль, который координирует работу всех процессоров ЕРР, в частности ведет общую адресную таблицу коммутатора. Для передачи кадров между портами используется коммутационная матрица. Она функционирует по принципу коммутации каналов, соединяя порты коммутатора. Для 8 портов матрица может одновременно обеспечить 8 внутренних каналов при полудуплексном режиме работы портов и 16 — при дуплексном, когда передатчик и приемник каждого порта работают независимо друг от друга.
При поступлении кадра в какой-либо порт соответствующий процессор ЕРР буферизует несколько первых байтов кадра, чтобы прочитать адрес назначения. После получения адреса назначения процессор сразу же приступает к обработке кадра, не дожидаясь прихода остальных его байтов.
1. Процессор ЕРР просматривает свой кэш адресной таблицы, и если не находит там нужного адреса, обращается к системному модулю, который работает в многозадачном режиме, параллельно обслуживая запросы всех процессоров ЕРР. Системный модуль производит просмотр общей адресной таблицы и возвращает процессору найденную строку, которую тот буферизует в своем кэше для последующего использования.
2. Если адрес назначения найден в адресной таблице и кадр нужно отфильтровать, про-, цессор просто прекращает записывать в буфер байты кадра, очищает буфер и ждет nq-ступления нового кадра.
3. Если же адрес найден и кадр нужно передать на другой порт, процессор, продолжая прием кадра в буфер, обращается к коммутационной матрице, пытаясь установит^ в ней путь, связывающий его порт с портом, через который идет маршрут к адресу назначения. Коммутационная матрица способна помочь только в том случае, если порт адреса назначения в этот момент свободен, то есть не соединен с другим портом данного коммутатора.
4. Если же порт занят, то, как и в любом устройстве с коммутацией каналов, матрица в соединении отказывает. В этом случае кадр полностью буферизуется процессором входного порта, после чего процессор ожидает освобождения выходного порта и образования коммутационной матрицей нужного пути.
5. После того как нужный путь установлен, в него направляются буферизованные байты кадра, которые принимаются процессором выходного порта. Как только процессор выходного порта получает доступ к подключенному к нему сегменту Ethernet по алгоритму CSMA/CD49, байты кадра сразу же начинают передаваться в сеть. Процессор входного порта постоянно хранит несколько байтов принимаемого кадра в своем буфере, что позволяет ему независимо и асинхронно принимать и передавать байты кадра (рис. 13.9).
Рис. 13.0. Передача кадра через коммутационную матрицу
Описанный пособ передачи кадра без его полной буферизации получил название коммутации «на лету* (on-the-fly), или «напролет* (cut-through). Этот способ представляет собой, по сути, конвейерную обработку кадра, когда частично совмещаются во времени несколько этапов его передачи.
1. Прием первых байтов кадра процессором входного порта, включая прием байтов адреса назначения.
2. Поиск адреса назначения в адресной таблице коммутатора (в кэше процессора или в общей таблице системного модуля).
3. Коммутация матрицы.
4. Прием остальных байтов кадра процессором входного порта.
5. Прием байтов кадра (включая первые) процессором выходного порта через коммутационную матрицу.
6. Получение доступа к среде процессором выходного порта.
7. Передача байтов кадра процессором выходного порта в сеть.
На рис. 13.10 подставлены два режима обработки кадра: режим коммутации «на лету» с частичным совмещением во времени нескольких этапов и режим полной буферизации кадра с последовательным выполнением всех этапов. (Заметим, что этапы 2 и 3 совместить во времени нельзя, так как без знания номера выходного порта операция коммутации матрицы не имеет смысла.)
( 14-1--4--Ы
''4 2 [ 3 N* 1 1 1 1 1 Lм т г гг гГ1чч 7 _1111.:i 1 и 11 1 гп_IJ I Ы Mill т~п
1 + 4
111112 16 1 7 _ммм м м м : Рис. 13.10. Экономия времени при конвейерной обработке кадра: а — конвейерная обработка, б — обычная обработка с полной буферизациейКак показывает схема, экономия от конвейеризации получается ощутимой.
Однако главной причиной повышения производительности сети при использовании коммутатора является параллельная обработка нескольких кадров.
Этот эффект иллюстрирует рис. 13.11, на котором показана идеальная в отношении производительности ситуация, когда четыре порта из восьми передают данные с максимальной для протокола Ethernet скоростью в 10 Мбит/с. Причем они передают эти данные на
остальные четыре порта коммутатора не конфликтуя: потоки данных между узлами сети распределились так, что для каждого принимающего кадры порта есть свой выходной порт. Если коммутатор успевает обрабатывать входной трафик при максимальной интенсивности поступления кадров на входные порты, то общая производительность коммутатора в приведенном примере составит 4 х 10 = 40 Мбит/с, а при обобщении примера для N портов — (N/2) х 10 Мбит/с. В таком случае говорят, что коммутатор предоставляет каждой станции или сегменту, подключенному к его портам, выделенную пропускную способность протокола.
©-(4) — потоки кадров между компьютерами Рис. 13.11. Параллельная передача кадров коммутатором
Естественно, что в сети не всегда складывается описанная ситуация. Если двум станциям, например станциям, подключенным к портам 3 и 4, одновременно нужно записывать данные на один и тот же сервер, подключенный к порту 8, то коммутатор не сможет выделить каждой станции по 10 Мбит/с, так как порт 8 не в состоянии передавать данные со скоростью 20 Мбит/с. Кадры станций будут ожидать во внутренних очередях входных портов 3 и 4, когда освободится порт 8 для передачи очередного кадра. Очевидно, хорошим решением для такого распределения потоков данных было бы подключение сервера к более высокоскоростному порту, например Fast Ethernet или Gigabit Ethernet.
Дуплексный режим работы
Технология коммутации сама по себе не имеет непосредственного отношения к методу доступа к среде, который используется портами коммутатора. При подключении к порту коммутатора сегмента^ представляющего собой разделяемую среду, данный порт, как и все остальные узлы такого сегмента, должен поддерживать полудуплексный режим.
Однако когда к каждому порту коммутатора подключен не сегмент, а только один компьютер, причем по двум физически раздельным каналам, как это происходит почти во всех стандартах Ethernet, кроме коаксиальных версий Ethernet, ситуация становится не такой однозначной. Порт может работать как в обычном полудуплексном режиме, так и в дуплексном.
В полудуплексном режиме работы порт коммутатора по-прежнему распознает коллизии. Доменом коллизий в этом случае является участок сети, включающий передатчик коммутатора, приемник коммутатора, передатчик сетевого адаптера компьютера, приемник сетевого адаптера компьютера и две витые пары, соединяющие передатчики с приемниками.
Коллизия возникает, когда передатчики порта коммутатора и сетевого адаптера одновременно или почти одновременно начинают передачу своих кадров.
В дуплексном режиме одновременная передача данных передатчиком порта коммутатора и сетевого адаптера коллизией не считается. В принципе, это достаточно естественный режим работы для отдельных дуплексных каналов передачи данных, и он всегда использовался в протоколах глобальных сетей. При дуплексной связи порты Ethernet стандарта 10 Мбит/с могут передавать данные со скоростью 20 Мбит/с — по 10 Мбит/с в каждом направлении.
Уже первые коммутаторы Kalpana поддерживали оба режима работы своих портов, позволяя использовать коммутаторы для объединения сегментов разделяемой среды, как делали их предшественники-мосты, и в то же время позволяя удваивать скорость обмена данными на предназначенных для связи между коммутаторами портах за счет работы этих портов в дуплексном режиме.
Долгое время коммутаторы Ethernet сосуществовали в локальных сетях с концентраторами Ethernet: на концентраторах строились нижние уровни сети здания, такие как сети рабочих групп и отделов, а коммутаторы служили для объединения этих сегментов в общую сеть.
Постепенно коммутаторы стали применяться и на нижних этажах, вытесняя концентраторы, так как цены коммутаторов постоянно снижались, а их производительность росла (за счет поддержки не только технологии Ethernet со скоростью 10 Мбит/с, но и всех последующих более скоростных версий этой технологии, то есть Fast Ethernet со скоростью 100 Мбит/с, Gigabit Ethernet со скоростью 1 Гбит/с и 10G Ethernet со скоростью 10 Гбит/с). Этот процесс завершился вытеснением концентраторов Ethernet и переходом к полностью коммутируемым сетям, пример такой сети показан на рис. 13.12.
MAC-А МАС-Б МАС-С MAC-DРис. 13.12. Полностью коммутируемая сеть Ethernet
В полностью коммутируемой сети Ethernet все порты работают в дуплексном режиме, а продвижение кадров осуществляется на основе М АС-адресов.
При разработке технологий Fast Ethernet и Gigabit Ethernet дуплексный режим стал одним из двух полноправных стандартных режимов работы узлов сети. Однако уже практика применения первых коммутаторов с портами Gigabit Ethernet показала, что они практически всегда применяются в дуплексном режиме для взаимодействия с другими коммутаторами или высокоскоростными сетевыми адаптерами. Поэтому при разработке стандарта 10G Ethernet его разработчики не стали создавать версию для работы в полудуплексном режиме, окончательно закрепив уход разделяемой среды из технологии Ethernet.
Неблокирующие коммутаторы
Как уже отмечалось, высокая производительность является одним из главных достоинств коммутаторов. С понятием производительности тесно связано понятие неблокирующего коммутатора.
Когда говорят, что коммутатор может поддерживать устойчивый неблокирующий режим работы, то имеют в виду, что коммутатор передает кадры со скоростью их поступления в течение произвольного промежутка времени. Для поддержания подобного режима нужно таким образом распределить потоки кадров по выходным портам, чтобы, во-первых, порты справлялись с нагрузкой, во-вторых, коммутатор мог всегда в среднем передать на выходы столько кадров, сколько их поступило на входы. Если же входной поток кадров (просуммированный по всем портам) в среднем будет превышать выходной поток кадров (также просуммированный по всем портам), то кадры будут накапливаться в буферной памяти коммутатора и при переполнении просто отбрасываться.
В этом соотношении под производительностью коммутатора в целом понимается его способность продвигать определенное количество кадров, принимаемых от приемников всех его портов, на передатчики всех его портов.
В суммарной производительности портов каждый проходящий кадр учитывается дважды, как входящий и как выходящий, а так как в устойчивом режиме входной трафик равен выходному, то минимально достаточная производительность коммутатора для поддержки неблокирующего режима равна половине суммарной производительности портов. Если порт, например, стандарта Ethernet со скоростью 10 Мбит/с работает в полудуплексном режиме, то производительность порта Cpi равна 10 Мбит/с, а если в дуплексном — 20 Мбит/с.
Иногда говорят, что коммутатор поддерживает мгновенный неблокирующий режим. Это означает, что он может принимать и обрабатывать кадры от всех своих портов на максимальной скорости протокола независимо от того, обеспечиваются ли условия устойчивого
равновесия между входным и выходным трафиком. Правда, обработка некоторых кадров при этом может быть неполной — при занятости выходного порта кадр помещается в буфер коммутатора.
Для поддержки мгновенного неблокирующего режима коммутатор должен обладать большей собственной производительностью, а именно она должна быть равна суммарной производительности его портов: С* =
Приведенные соотношения справедливы для портов с любыми скоростями, то есть портов стандартов Ethernet со скоростью 10 Мбит/с, Fast Ethernet, Gigabit Ethernet и 10G Ethernet.
Способы, которыми обеспечивается способность коммутатора поддерживать неблокирующий режим, могут быть разными. Необходимым требованием является умение процессора порта обрабатывать потоки кадров с максимальной для физического уровня этого порта скоростью. В главе 12 мы подсчитали, что максимальная производительность порта Ethernet стандарта 10 Мбит/с равна 14 880 кадров в секунду. Это означает, что процессоры портов Ethernet стандарта 10 Мбит/с неблокирующего коммутатора должны поддерживать продвижение кадров со скоростью 14 880 кадров в секунду.
Однако только адекватной производительности процессоров портов недостаточно для того, чтобы коммутатор был неблокирующим. Необходимо, чтобы достаточной производительностью обладали все элементы архитектуры коммутатора, включая центральный процессор, общую память, шины, соединяющие отдельные модули между собой, саму архитектуру коммутатора (наиболее распространенные архитектуры коммутаторов мы рассмотрим позже). В принципе, задача создания неблокирующего коммутатора аналогична задаче создания высокопроизводительного компьютера — в обоих случаях она решается комплексно: за счет соответствующей архитектуры объединения модулей в едином устройстве и адекватной производительности каждого отдельного модуля устройства.
Борьба с перегрузками
Даже в том случае, когда коммутатор является неблокирующим, нет гарантии того, что он во всех случаях справится с потоком кадров, направляемых на его порты. Неблокирующие коммутаторы тоже могут испытывать перегрузки и терять кадры из-за переполнения внутренних буферов.
Причина перегрузок обычно кроется не в том, что коммутатору не хватает производительности для обслуживания потоков кадров, а в ограниченной пропускной способности отдельного выходного порта, которая определяется параметрами протокола. Другим словами, какой бы производительностью коммутатор не обладал, всегда найдется такое распределение потоков кадров, которое приведет к перегрузке коммутатора из-за ограниченной производительности выходного порта коммутатора.
Возникновение таких перегрузок является платой за отказ от применения алгоритма доступа к разделяемой среде, так как в дуплексном режиме работы портов теряется контроль за потоками кадров/направляемых конечными узлами в сеть. В полудуплексном режиме, свойственном технологиям с разделяемой средой, поток кадров регулировался самим методом доступа к разделяемой среде. При переходе на дуплексный режим узлу разрешается отправлять кадры в коммутатор всегда, когда это ему нужно, поэтому в данном режиме коммутаторы сети могут сталкиваться с перегрузками, не имея при этом никаких средств «притормаживания» потока кадров.
Таким образом, если входной трафик неравномерно распределяется между выходными портами, легко представить ситуацию, когда на какой-либо выходной порт коммутатора будет направляться трафик с суммарной средней интенсивностью большей, чем протокольный максимум. На рис. 13.13 показана как раз такая ситуация, когда на порт 3 коммутатора Ethernet направляется от портов 1, 2,4 и 6 поток кадров размером в 64 байт с суммарной интенсивностью в 22 100 кадров в секунду. Вспомним, что максимальная скорость в кадрах в секунду для сегмента Ethernet составляет 14 880. Естественно, что когда кадры поступают в буфер порта со скоростью 22 100 кадров в секунду, а уходят со скоростью 14 880 кадров в секунду, то внутренний буфер выходного порта начинает неуклонно заполняться необработанными кадрами.
Рис. 13.13. Переполнение буфера порта из-за несбалансированности трафика
В приведенном примере нетрудно подсчитать, что при размере буфера в 100 Кбайт полное заполнение буфера произойдет через 0,22 секунды после начала работы в таком интенсивном режиме. Увеличение размера буфера до 1 Мбайт даст увеличение времени заполнения буфера до 2,2 секунды, что также неприемлемо. Проблему можно решить с помощью средств контроля перегрузки, которые были рассмотрены в главе 7.
Как мы знаем, существуют различные средства контроля перегрузки: управление очередями в коммутаторах, обратная связь, резервирование пропускной способности. На основе этих средств можно создать эффективную систему поддержки показателей QoS для трафика разных классов.
В этом разделе мы рассмотрим механизм обратной связи, который был стандартизован для сетей Ethernet в марте 1997 как спецификация IEEE 802.3х. Механизм обратной связи 802.3х используется только в дуплексном режиме работы портов коммутатора. Этот механизм очень важен для коммутаторов локальных сетей, так как он позволяет сократить потери кадров из-за переполнения буферов независимо от того, обеспечивает сеть дифференцированную поддержку показателей QoS для разных типов трафика или же предоставляет базовый сервис по доставке с максимальными усилиями («по возможности»). Другие механизмы поддержания показателей QoS рассматриваются в следующей главе.
Спецификация 802JX вводит новый подуровень в стеке протоколов Ethernet — подуровень управления уровня MAC. Он располагается над уровнем MAC и является необязательным (рис. 13.14).
Кадры этого подуровня могут использоваться в различных целях, но пока в стандартах Ethernet для них определена только одна задача — приостановка передачи кадров другими узлами на определенное время.
Уровни модели OSI
Прикладной уровеньУровень представленияСеансовый уровеньТранспортный уровеньСетевой уровеньКанальный уровеньФизический уровень
Уровни CSMA/CD Верхние уровни
Клиент подуровня управления уровня MAC
Подуровень (необязательный) управления уровня MAC
Уровень MAC
Физический уровень
Рис. 13.14. Подуровень управления уровня MAC
Кадр подуровня управления отличается от кадров пользовательских данных тем, что в поле типа всегда содержится шестнадцатеричное значение 88-08. Формат кадра подуровня управления рассчитан на универсальное применение, поэтому он достаточно сложен (рис. 13.15).
6 байт 6 байт 2 байта 2 байта
(Минимальная длина кадра -160)/8 байт 4
Адрес назначения
Адрес источника
Длина/Тип
Код операции подуровня управления
Байты внутри кедра следуют сверху вниз
?
Младший бит | l l | | l | | I Старший бит
Бит 0 Бит 8
Биты внутри кадра следуют слева направо
Рис. 13.15. Формат кадра подуровня управления
остановить поступление кадров от соседней? узле; чтс^ыразг^з^ своивну^шие очереди.
В качестве адреса назначения можно указывать зарезервированное для этой цели значение группового адреса 01-80-С2-00-00-01. Это удобно, когда соседний узел также является коммутатором (так как порты коммутатора не имеют уникальных МАС-адресов). Если сосед — конечный узел, можно также использовать уникальный МАС-адрес.
В поле кода операции подуровня управления указывается шестнадцатеричный код 00-01, поскольку, как уже было отмечено, пока определена только одна операция подуровня управления — она называется PAUSE (пауза) и имеет шестнадцатеричный код 00-01.
В поле параметров подуровня управления указывается время, на которое узел, получивший такой код, должен прекратить передачу кадров узлу, отправившему кадр с операцией PAUSE. Время измеряется в 512 битовых интервалах конкретной реализации Ethernet, диапазон возможных вариантов приостановки равен 0-65535.
Как видно из описания, этот механизм обратной связи относится к типу 2 в соответствии с классификацией, приведенной в главе 7. Специфика его состоит в том, что в нем предусмотрена только одна операция — приостановка на определенное время. Обычно же в механизмах этого типа используются две операции — приостановка и возобновление передачи кадров.
Проблема, иллюстрируемая рис. 13.13, может быть решена и другим способом: применением так называемого магистрального, или восходящего (uplink), порта. Магистральные порты в коммутаторах Ethernet — это порты следующего уровня иерархии скорости по сравнению с портами, предназначенными для подключения пользователей. Например, если коммутатор имеет 12 портов Ethernet стандарта 10 Мбит/с, то магистральный порт должен быть портом Fast Ethernet, чтобы его скорость была достаточна для передачи до 10 потоков от входных портов. Обычно низкоскоростные порты коммутатора служат для соединения с пользовательскими компьютерами, а магистральные порты — для подключения либо сервера, к которому обращаются пользователи, либо коммутатора более высокого уровня иерархии.
На рис. 13.16 показан пример коммутатора, имеющего 24 порта стандарта Fast Ethernet со скоростью 100 Мбит/с, к которым подключены пользовательские компьютеры, и один порт стандарта Gigabit Ethernet со скоростью 1000 Мбит/с, к которому подключен сервер. При такой конфигурации коммутатора вероятность перегрузки портов существенно снижается по сравнению с вариантом, когда все порты поддерживают одинаковую скорость. Хотя возможность перегрузки по-прежнему существует, для этого необходимо, чтобы более чем 10 пользователей одновременно обменивались с сервером данными со средней скоростью, близкой к максимальной скорости их соединений — а такое событие достаточно маловероятно.
Пользовательские компьютеры СерверРис. 13.16. Коммутатор рабочей группы
Из приведенного примера видно, что вероятность перегрузки портов коммутаторов зависит от распределения трафика между его портами, кроме того, понятно, что даже при хорошем соответствии скорости портов наиболее вероятному распределению трафика полностью исключить перегрузки невозможно.
Поэтому в общем случае для уменьшения потерь кадров из-за перегрузок нужно применять оба средства: подбор скорости портов для наиболее вероятного распределения трафика в сети и протокол 802.3х для снижения скорости источника трафика в тех случаях, когда перегрузки все-таки возникают.
Характеристики производительности коммутаторов
Скорости фильтрации и продвижения кадров — две основные характеристики производительности коммутатора. Эти характеристики являются интегральными, они не зависят от того, каким образом технически реализован коммутатор.
Скорость фильтрации — это скорость, с которой коммутатор выполняет следующие этапы обработки кадров:
1. Прием кадра в свой буфер.
2. Просмотр адресной таблицы с целью нахождения порта для адреса назначения кадра.
3. Уничтожение кадра, так как его порт назначения и порт источника принадлежат одному логическому сегменту.
Скорость фильтрации практически у всех коммутаторов блокирующим фактором не является — коммутатор успевает отбрасывать кадры в темпе их поступления.
Скорость продвижения — это скорость, с которой коммутатор выполняет следующие этапы обработки кадров.
1. Прием кадра в свой буфер.
2. Просмотр адресной таблицы с цельюнахождения порта для адреса назначения кадра.
3. Передача кадра в сеть через найденный по адресной таблице порт назначения.
Как скорость фильтрации, так и скорость продвижения измеряются обычно в кадрах в секунду. Если в характеристиках коммутатора не уточняется, для какого протокола и для какого размера кадра приведены значения скоростей фильтрации и продвижения, то по умолчанию считается, что эти показатели даются для протокола Ethernet и кадров минимального размера, то есть кадров длиной 64 байт. Как мы уже обсуждали, режим передачи кадров минимальной длины используется как наиболее сложный тест, который должен подтвердить способность коммутатора работать при наихудшем сочетании параметров трафика.
Задержка передачи кадра измеряется как время, прошедшее с момента прихода первого байта кадра на входной порт коммутатора до момента появления этого байта на его выходном порту. Задержка складывается из времени, затрачиваемого на буферизацию байтов кадра, и времени, затрачиваемого на обработку кадра коммутатором — просмотр адресной таблицы, принятие решения о фильтрации или продвижении, получение доступа к среде выходного порта. Величина вносимой коммутатором задержки зависит от режима его работы. Если коммутация осуществляется «на лету», то задержки обычно невелики и составляют от 5 до 40 мкс, а при полной буферизации кадров — от 50 до 200 мкс для кадров минимальной длины при передаче со скоростью 10 Мбит/с. Коммутаторы, поддерживающие более скоростные версии Ethernet, вносят меньшие задержки в процесс продвижения кадров.
Производительность коммутатора определяется количеством пользовательских данных, переданных в единицу времени через его порты, и измеряется в мегабитах в секунду (Мбит/с). Так как коммутатор работает на канальном уровне, для него пользовательскими данными являются те данные, которые переносятся в поле данных кадров Ethernet. Максимальное значение производительности коммутатора всегда достигается на кадрах максимальной длины, так как при этом доля накладных расходов на служебную информацию кадра минимальна. Коммутатор — это многопортовое устройство, поэтому для него в качестве характеристики принято давать максимальную суммарную производительность при одновременной передаче трафика по всем его портам.
Еще одной важной конструюгивной характеристикой коммутатора является максимальная емкость адресной та6л»^; Онаопрбд $$^ МАС-адресов, которыми
может одновременно оперировать коммутатор.
Для выполнения операций каждого порта в коммутаторах чаще всего используется выделенный процессорный блок со своей памятью для хранения собственного экземпляра адресной таблицы. Каждый порт хранит только те наборы адресов, с которыми он работал в последнее время, поэтому экземпляры адресной таблицы разных процессорных модулей, как правило, не совпадают.
Значение максимального числа MAC-адресов, которое может запомнить процессор порта, зависит от области применения коммутатора. Коммутаторы рабочих групп обычно поддерживают всего несколько адресов на порт, так как они предназначены для образования микросегментов. Коммутаторы отделов должны поддерживать несколько сотен адресов, а коммутаторы магистралей сетей — до нескольких тысяч (обычно 4000-8000 адресов).
Недостаточная емкость адресной таблицы может служить причиной замедления работы коммутатора и засорения сети избыточным трафиком. Если адресная таблица процессора порта полностью заполнена, а он встречает новый адрес источника в поступившем кадре, процессор должен удалить из таблицы какой-либо старый адрес и поместить на его место новый. Эта операция сама по себе отнимает у процессора часть времени, но главные потери производительности наблюдаются при поступлении кадра с адресом назначения, который пришлось удалить из адресной таблицы. Так как адрес назначения кадра неизвестен, коммутатору приходится передавать этот кадр на все остальные порты. Некоторые производители коммутаторов решают эту проблему за счет изменения алгоритма обработки кадров с неизвестным адресом назначения. Один из портов коммутатора конфигурируется как магистральный порт, на который по умолчанию передаются все кадры с неизвестным адресом50. Передача кадра на магистральный порт производится в расчете на то, что этот порт подключен к вышестоящему коммутатору (при иерархическом соединении коммутаторов в крупной сети), который имеет достаточную емкость адресной таблицы и «знает», куда можно передать любой кадр.
Скоростные версии Ethernet
Скорость 10 Мбит/с первой стандартной версии Ethernet долгое время удовлетворяла потребности пользователей локальных сетей. Однако в начале 90-х годов начала ощущаться недостаточная пропускная способность Ethernet, так как скорость обмена с сетью стала существенно меньше скорости внутренней шины компьютера. Кроме того, начали появляться новые мультимедийные приложения, гораздо более требовательные к скорости сети, чем их текстовые предшественники. В поисках решения проблемы ведущие производители сетевого оборудования начали интенсивные работы по повышению скорости Ethernet при сохранении главного достоинства этой технологии — простоты и низкой стоимости оборудования.
Результатом стало появление новых скоростных стандартов Ethernet: Fast Ethernet (скорость 100 Мбит/с), Gigabit Ethernet (1000 Мбит/с, или 1 Гбит/с) и 10G Ethernet (10 Гбит/с). На время написания этой книги два новых стандарта — 40G Ethernet и 100G Ethernet — находились в стадии разработки, обещая следующее десятикратное превышение верхней границы производительности Ethernet.
Разработчикам новых скоростных стандартов Ethernet удалось сохранить основные черты классической технологии Ethernet и, прежде всего, простой способ обмена кадрами без встроенных в технологию сложных контрольных процедур. Этот фактор оказался решающим в соревновании технологий локальных сетей, так как выбор пользователей всегда склонялся в пользу простого наращивания скорости сети, а не в пользу решений, связанных с более эффективным расходованием той же самой пропускной способности с помощью более сложной и дорогой технологии. Примером такого подхода служит переход с оборудования Fast Ethernet на Gigabit Ethernet вместо перехода на оборудование АТМ со скоростью 155 Мбит/с. Несмотря на значительную разницу в пропускной способности (1000 Мбит/с против 155 Мбит/с), оба варианта обновления сети примерно равны по степени положительного влияния на «самочувствие* приложений, так как Gigabit Ethernet достигает нужного эффекта за счет равного повышения доли пропускной способности для всех приложений, а АТМ перераспределяет меньшую пропускную способность более тонко, дифференцируя ее в соответствии с потребностями приложений. Тем не менее пользователи предпочли не вдаваться в детали и тонкости настройки сложного оборудования, когда можно просто применить знакомое и простое, но более скоростное оборудование Ethernet.
Значительный вклад в «победу* Ethernet внесли также коммутаторы локальных сетей, так как их успех привел к отказу от разделяемой среды, где технология Ethernet всегда была уязвимой из-за случайного характера метода доступа. Начиная с версии 10G Ethernet, разработчики перестали включать вариант работы на разделяемой среде в описание стандарта. Коммутаторы с портами Fast Ethernet, Gigabit Ethernet и 10G Etherhet работают по одному и тому же алгоритму, описанному в стандарте IEEE 802.ID. Возможность комбинировать порты с различными скоростями в диапазоне от 10 Мбит/с до 10 Гбит/с делает коммутаторы Ethernet гибкий и эффективными сетевыми устройствами, позволяющими строить разнообразные сети.
Повышение скорости работы Ethernet было достигнуто за счет улучшения качества кабелей, применяемых в компьютерных сетях, а также совершенствования методов кодирования данных при их передаче по кабелям, то есть за счет совершенствования физического уровня технологии.
Fast Ethernet
История создания
В 1992 году группа производителей сетевого оборудования, включая таких лидеров технологии Ethernet, как SynOptics, 3Com и ряд других, образовала некоммерческое объединение Fast Ethernet Alliance для разработки стандарта новой технологии, которая должна была обеспечить резкое повышение производительности при максимально возможном сохранении особенностей технологии Ethernet.
В комитете 802 института IEEE в это же время была сформирована исследовательская группа для изучения технического потенциала новых высокоскоростных технологий. За период с конца 1992 года и по конец 1993 года группа IEEE изучила 100-мегабитные решения, предложенные различными производителями. Наряду с предложениями Fast Ethernet Alliance группа рассмотрела также и высокоскоростную технологию, предложенную компаниями Hewlett-Packard и AT&T.
В центре дискуссий была проблема сохранения метода случайного доступа CSMA/CD. Предложение Fast Ethernet Alliance сохраняло этот метод и тем самым обеспечивало преемственность и согласованность сетей со скоростями 10 Мбит/с и 100 Мбит/с. Коалиция HP и AT&T, которая заручилась поддержкой значительно меньшего числа производителей в сетевой индустрии, чем Fast Ethernet Alliance, предложила совершенно новый метод доступа, названный приоритетным доступом по требованию (demand priority). Он существенно менял картину поведения узлов в сети, поэтому не смог вписаться в технологию Ethernet и стандарт 802.3; для его стандартизации был организован новый комитет IEEE 802.12.
Осенью 1995 года обе технологии стали стандартами IEEE. Комитет IEEE 802.3 принял спецификацию Fast Ethernet в качестве стандарта 802.3и, который не является самостоятельным стандартом, а представляет собой дополнение к существующему стандарту 802.3 в виде глав с 21 по 30. Комитет 802.12 принял технологию 100VG-AnyLAN, в которой использовался приоритетный доступ по требованию и поддерживались кадры двух форматов — Ethernet и Token Ring.
Технологии Fast Ethernet и 100VG-AnyLAN в первые месяцы своего существования рассматривались как равные соперники, но очень скоро стало ясно, что пользователи предпочитают более простую и знакомую технологию Fast Ethernet. Вскоре технология 100VG-AnyLAN прекратила свое существование; немаловажным фактором этого стал и переход локальных сетей на полностью коммутируемые версии, сводящий «на нет» преимущества более совершенного метода доступа технологии 100VG-AnyLAN.
Физические уровни технологии Fast Ethernet
Все отличия технологий Fast Ethernet и Ethernet сосредоточены на физическом уровне (рис. 13.17). Уровни MAC и LLC в Fast Ethernet остались абсолютно теми же, и их описывают прежние главы стандартов 802.3 и 802.2. Поэтому, рассматривая технологию Fast Ethernet, мы будем изучать только несколько вариантов ее физического уровня.
Организация физического уровня технологии Fast Ethernet является более сложной, поскольку в ней используются три варианта кабельных систем:
? волоконно-оптический многомодовый кабель (два волокна);
? витая пара категории 5 (две пары);
? витая пара категории 3 (четыре пары).
Подуровень LLC (802.2)
Подуровень
MAC
Канальный уровень
Стек протоколов Ethernet 802.3
Стек протоколов Fast Ethernet 802.3u
Подуровень LLC (802.2)
Подуровень
MAC
Согласование
Физический уровеньИнтерфейс AUIИнтерфейс МП УстройствофизическогоуровняПодуровень кодирования Подуровень физического присоединенияПодуровень физического присоединения Подуровень зависимости от физической среды Подуровень автопереговоров о скорости передачи Разъем(зависимый от среды интерфейс)Разъем(зависимый от среды интерфейс) Рис. 13.17. Отличия технологий Fast Ethernet и EthernetКоаксиальный кабель, давший миру первую сеть Ethernet, в число разрешенных сред передачи данных новой технологии Fast Ethernet не попал. Это общая тенденция многих новых технологий, поскольку на небольших расстояниях витая пара категории 5 позволяет передавать данные с той же скоростью, что и коаксиальный кабель, но сеть получается более дешевой и удобной в эксплуатации. На больших расстояниях оптическое волокно обладает гораздо более широкой полосой пропускания, чем коаксиал, а стоимость сети получается ненамного выше, особенно если учесть высокие затраты на поиск и устранение неисправностей в крупной кабельной коаксиальной системе.
Официальный стандарт 802.3 установил три различных спецификации для физического уровня Fast Ethernet и дал им следующие названия (рис. 13.18):
? 100Base-TX для двухпарного кабеля на неэкранированной витой паре UTP категории 5 или экранированной витой паре STP типа 1;
? 100Base-T4 для четырехпарного кабеля на неэкранированной витой паре UTP категории 3,4 или 5;
? 100Base-FX для многомодового оптоволоконного кабеля с двумя волокнами.
Для всех трех стандартов справедливы перечисленные далее утверждения и характеристики.
щедмаш квдю* технологии Faдезддокод мегабитнойттй Ethernet
Согласование- Интерфейс МП Физическийуровень100Base-FX100Base-TX100Base-T4 г? Оптоволокно? ^ Витая пара ? ^ Витая пара ? Рис. 13.18. Структура физического уровня Fast EthernetПодуровень LLC
Подуровень MAC
Межкадровый интервал равен 0,96 мкс, а битовый интервал — 10 нс. Все временные параметры алгоритме достула (интервал отсрочки, время передачи кадра минимальной длины и т. п.), изморенные в битовые ин1#йаапак, рошись прежними*
Признаком свободного состояния среды является передача по ней символа простой источника — соответртвующвго избь1тоЦного кода (а не отсутствие сигналов, как а стандартах Ethernet со скоростьюлЬ цЬт/о),
Физический уровень включает три элемента.
? Независимый от среды интерфейс (Media Independent Interface, Mil).
? Уровень согласования нужен для того, чтобы уровень MAC, рассчитанный на интерфейс AUI, мог работать с физическим уровнем через интерфейс МИ.
? Устройство физического уровня (Physical Layer Device, PHY) состоит, в свою очередь, из нескольких подуровней (см. рис. 13.17):
О подуровня логического кодирования данных, преобразующего поступающие от уровня MAC байты в символы кода 4В/5В или 8В/6Т (первый метод кодирования используются в версиях 100Base-TX и 100Baase-FX, второй — в версии lOOBase-Т4);
О подуровней физического присоединения и зависимости от физической среды (PMD), которые обеспечивают формирование сигналов в соответствии с методом физического кодирования, например NRZI или MLT-3;
О подуровня автопереговоров, который позволяет двум взаимодействующим портам автоматически выбрать наиболее эффективный режим работы, например полудуплексный или дуплексный (этот подуровень является факультативным).
Интерфейс МП поддерживает независимый от физической среды способ обмена данными между подуровнем MAC и подуровнем PHY. Этот интерфейс аналогичен по назначению интерфейсу AUI классического стандарта Ethernet за исключением того, что интерфейс АШ располагался между подуровнем физического кодирования сигнала (для любых вариантов кабеля использовался одинаковый метод физического кодирования — манчестерский код) и подуровнем физического присоединения к среде, а интерфейс МП располагается между подуровнем MAC и подуровнями кодирования сигнала, которых в стандарте Fast Ethernet три: FX, ТХ и Т4.
Версия 100Base-T4 носила промежуточный характер, так как она позволяла повысить скорость классического варианта Ethernet в 10 раз, не меняя кабельную систему здания. Так как большинство предприятий и организаций достаточно быстро заменили кабели категории 3 кабелями категории 5, то необходимость в версии 100Base-T4 отпала, и оборудование с такими портами перестало выпускаться. Поэтому далее мы рассмотрим детали только спецификаций 100Base-FX и 100Base-TX.
Спецификация 100Base-FX определяет работу протокола Fast Ethernet по многомодовому оптоволокну в полудуплексном и дуплексном режимах. В то время как в Ethernet со скоростью передачи 10 Мбит/с используется манчестерское кодирование для представления данных, в стандарте Fast Ethernet определен другой метод кодирования — 4В/5В, который мы рассматривали в главе 9. Этот метод к моменту разработки технологии Fast Ethernet уже показал свою эффективность в^етях FDDI, поэтому он без изменений был перенесен в спецификацию 100Base-FX/TX. Напомним, что в этом методе каждые четыре бита данных подуровня MAC (называемых символами) представляются пятью битами. Избыточный бит позволяет применить потенциальные коды при представлении каждого из пяти битов в виде электрических или оптических импульсов.
Существование запрещенных комбинаций символов позволяет отбраковывать ошибочные символы, что повышает устойчивость работы сетей 100Base-FX/TX. Так, в Fast Ethernet признаком того, что среда свободна, стала повторяющаяся передача одного из запрещенных для кодирования пользовательских данных символа, а именно символа простоя источника Idle (11111). Такой способ позволяет приемнику всегда находиться в синхронизме с передатчиком.
Для отделения кадра Ethernet от символов простоя источника используется комбинация символов начального ограничителя кадра — пара символов J (11000) и К (10001) кода 4В/5В, а после завершения кадра перед первым символом простоя источника вставляется символ Т (рис. 13.19).
ia?*i»Преамбула ! SFD1DASALДанныеCRCТИкзекй 1 Первый байт преамбулы JK — ограничитель начала потока значащих символовТ — ограничитель конца потока значащих символовРис. 13.19. Непрерывный поток данных спецификаций 100Base-F)tyTXПосле преобразования 4-битных порций кодов MAC в 5-битные порции физического уровня их необходимо представить в виде оптических или электрических сигналов в кабеле, соединяющем узлы сети. В спецификациях 100Base-FX и 100Base-TX для этого используются, соответственно, методы физического кодирования NRZI и MLT-3.
В спецификации 100Base-TX в качестве среды передачи данных используется витая пара UTP категории 5 или STP типа 1. Основным отличием от спецификации 100Base-FX (наряду с методом кодирования MLT-3) является наличие схемы автопереговоров для выбора режима работы порта»
Схема автопереговоров позволяет двум физически соединенным устройствам, которые поддерживают несколько стандартов физического уровня, отличающихся битовой скоростью и количеством витых пар, согласовать наиболее выгодный режим работы. Обычно
процедура автопереговоров происходит при подсоединении сетевого адаптера, который может работать на скоростях 10 и 100 Мбит/с, к концентратору или коммутатору Всего в настоящее время определено 5 различных режимов работы, которые могут поддерживать устройства 100Base-TX/T4 на витых парах:
? 10Base-T;
? дуплексный режим 10Base-T;
? 100Base-TX;
? 100Base-T4;
? дуплексный режим 100Base-TX.
Режим 10Base-T имеет самый низкий прйоритет в переговорном процессе, а дуплексный режим 100Base-TX — самый высокий.
Переговорный процесс происходит при включении питания устройства, а также может быть инициирован в любой момент модулем управления устройства. Устройство, начавшее процесс автопереговоров, посылает своему партнеру пачку специальных импульсов FLP (Fast Link Pulse), в которой содержится 8-битное слово, кодирующее предлагаемый режим взаимодействия, начиная с самого приоритетного, поддерживаемого данным узлом. Импульсы FLP имеют длительность 100 нс, как и импульсы LIT, используемые для тестирования целостности физического соединения в стандарте 10Base-T, однако вместо передачи одного импульса LIT через каждые 16 мс, здесь через тот же интервал передается пачка импульсов FLP.
Если узел-партнер имеет функцию автопереговоров и также способен поддерживать предложенный режим, он отвечает пачкой импульсов FLP, в которой подтверждает этот режим, и на этом переговоры заканчиваются. Если же узел-партнер не может поддерживать запрошенный режим, то он указывает в своем ответе имеющийся в его распоряжении следующий по степени приоритетности режим, и этот режим выбирается в качестве рабочего. Характеристики производительности Fast Ethernet определяются аналогично характеристикам версии со скоростью Ethernet 10 Мбит/с с учетом неизменного формата кадра, умножения на 10 битовой скорости (в 10 раз больше) и межкадрового интервала (в 10 раз меньше). В результате получаем:
? максимальная скорость протокола в кадрах в секунду (для кадров минимальной длины с полем данных 46 байт) составляет 148 800;
? полезная пропускная способность для кадров минимальной длины равна 54,8 Мбит/с;
? полезная пропускная способность для кадров максимальной длины (поле данных 1500 байт) равна 97,6 Мбит/с.
Gigabit Ethernet
История создания
Достаточно быстро после появления на рынке продуктов Fast Ethernet сетевые интеграторы и администраторы при построении корпоративных сетей почувствовали определенные ограничения. Во многих случаях серверы, подключенные по 100-мегабитному каналу, перегружали магистрали сетей, также работающие на скорости 100 Мбит/с — магистрали FDDI и Fast Ethernet. Ощущалась потребность в следующем уровне иерархии скоростей.
В 1995 году более высокие скорости могли предоставить только коммутаторы ATM, которые из-за высокой стоимости, а также значительных отличий от классических технологий применялись в локальных сетях достаточно редко.
Поэтому логичным выглядел следующий шаг, сделанный IEEE. Летом 1996 года было объявлено о создании группы 802.3z для разработки протокола, в максимальной степени подобного Ethernet, но с битовой скоростью 1000 Мбит/с. Как и в случае Fast Ethernet, сообщение было воспринято сторонниками Ethernet с большим энтузиазмом.
Основной причиной энтузиазма была перспектива плавного перевода сетевых магистралей на Gigabit Ethernet, подобно тому, как были переведены на Fast Ethernet перегруженные сегменты Ethernet, расположенные на нижних уровнях иерархии сети. К тому же опыт передачи данных на гигабитных скоростях уже имелся. В территориальных сетях такую скорость обеспечивала технология SDH, а в локальных — технология Fibre Channel. Последняя используется в основном для подключения высокоскоростной периферии к крупным компьютерам и передает данные по волоконно-оптическому кабелю со скоростью, близкой к гигабитной. (Именно метод кодирования 8В/10В, применяемый в технологии Fiber Channel, был принят в качестве первого варианта физического уровня Gigabit Ethernet.)
Стандарт 802.3z был окончательно принят в 1998 году. Работы по реализации Gigabit Ethernet на витой паре категории 5 были переданы проблемной группе 802.3аЬ ввиду сложности обеспечения гигабитной скорости на этом типе кабеля, рассчитанного на поддержку скорости 100 Мбит/с. Проблемная группа 802.3аЬ успешно справилась со своей задачей, и версия Gigabit Ethernet для витой пары категории 5 была принята.
Проблемы совместимости
Основная идея разработчиков стандарта Gigabit Ethernet состояла в максимальном сохранении идей классической технологии Ethernet при достижении битовой скорости в 1000 Мбит/с.
пртт*
? ясифежнодсридо&уепод
Оподцержиадютад всеоашйные Щ* кабелей, в том
Несмотря на то что в Gigabit Ethernet не стали встраиваться новые функции, поддержание даже достаточно простых функций классического стандарта Ethernet на скорости 1 Гбит/с потребовало решения нескольких сложных задач.
? Обеспечение приемлемого диаметра сети для работы на разделяемой среде. В связи с ограничениями, накладываемыми методом CSMA/CD на длину кабеля, версия Gigabit Ethernet для разделяемой среды допускала бы длину сегмента всего в 25 м при сохранении размера кадров и всех параметров метода CSMA/CD неизменными. Так как существует большое количество применений, требующих диаметра сети хотя бы 200 м, необходимо было каким-то образом решить эту задачу за счет минимальных изменений в технологии Fast Ethernet.
? Достижение битовой скорости 1000 Мбит/с на оптическом кабеле. Технология Fibre Channel, физический уровень которой был взят за основу оптоволоконной версии Gigabit Ethernet, обеспечивает скорость передачи данных всего в 800 Мбит/с.
? Использование в качестве кабеля витой пары. Такая задача на первый взгляд кажется неразрешимой — ведь даже для 100-мегабитных протоколов требуются достаточно сложные методы кодирования, чтобы уложить спектр сигнала в полосу пропускания кабеля.
Для решения этих задач разработчикам технологии Gigabit Ethernet пришлось внести изменения не только в физический уровень, как это было в случае Fast Ethernet, но и в уровень MAC.
Средства обеспечения диаметра сети в 200 м на разделяемой среде
Для расширения максимального диаметра сети Gigabit Ethernet до 200 м в полудуплексном режиме разработчики технологии предприняли достаточно естественные меры, в основе которых лежало известное соотношение времени передачи кадра минимальной длины и времени оборота (PDV).
Минимальный размер кадра был увеличен (без учета преамбулы) с 64 до 512 байт, или до 4096 бит. Соответственно, время оборота также можно было увеличить до 4095 битовых интервалов, что при использовании одного повторителя сделало допустимым диаметр сети около 200 м.
Для увеличения длины кадра до величины, требуемой в новой технологии, сетевой адаптер должен дополнить поле данных до длины 448 байт так называемым расширением, представляющим собой поле, заполненное нулями. Формально минимальный размер кадра не изменился, он по-прежнему равняется 64 байт, или 512 бит; но это объясняется тем, что поле расширения помещается после поля контрольной суммы кадра (FCS). Соответственно, значение этого поля не включается в контрольную сумму и не учитывается при указании длины поля данных в поле длины. Поле расширения является просто расширением сигнала несущей частоты, необходимым для корректного обнаружения коллизий.
Для сокращения накладных расходов в случае использования слишком длинных кадров при передаче коротких квитанций разработчики стандарта разрешили конечным узлам передавать несколько кадров подряд без передачи среды другим станциям. Такой режим получил название режима пульсаций. Станция может передать подряд несколько кадров с общей длиной не более 65 536 бит, или 8192 байт. При передаче нескольких небольших кадров станции можно не дополнять первый кадр до размера в 512 байт за счет поля расширения, а передавать несколько кадров подряд до исчерпания предела в 8192 байт (в этот предел входят все байты кадра, в том числе преамбула, заголовок, данные и контрольная сумма). Предел 819^байт называется длиной пульсации. Если предел длины пульсации достигается в середине кадра, то кадр разрешается передать до конца. Увеличение «совмещенного» кадра до 8192 байт несколько задерживает доступ к разделяемой среде других станций, но при скорости 1000 Мбит/с эта задержка не столь существенна.
Спецификации физической среды стандарта Gigabit Ethernet
В стандарте 802.3z определены следующие типы физической среды:
? одномодовый вблоконно-оптический кабель;
? многомодовый Волоконно-оптический кабель 62,5/125;
? многомодовый волоконно-оптический кабель 50/125;
? экранированный сбалансированный медный кабель.
Для передачи данных по традиционному для компьютерных сетей многомодовому волоконно-оптическому кабелю стандарт предписывает применение излучателей, работающих на двух длинах волн: 1300 и 850 нм. Применение светодиодов с длиной волны 850 нм объясняется тем, что они намного дешевле, чем светодиоды, работающие на волне 1300 нм, хотя при этом максимальная длина кабеля уменьшается, так как затухание многомодового оптоволокна на волне 850 м более чем в два раза выше, чем на волне 1300 нм. Тем не менее возможность удешевления чрезвычайно важна для такой в целом дорогой технологии, как Gigabit Ethernet.
Для многомодового оптоволокна стандарт Gigabit Ethernet определяет спецификации 1000Base-SX и 1000Base-LX. В первом случае используется длина волны 850 нм (S означает Short Wavelength), а во втором — 1300 нм (L — Long Wavelength). Спецификация 1000Base-SX разрешает использовать только многомодовый кабель, при этом его максимальная длйна составляет около 500 м.
Для спецификации 1000Base-LX в качестве источника излучения всегда применяется полупроводниковый лазер диод с длиной волны 1300 нм. Спецификация 1000Base-LX позволяет работать как с многомодовым (максимальное расстояние до 500 м), так и с одномодовым кабелем (максимальное расстояние зависит от мощности передатчика и качества кабеля и может доходить до нескольких десятков километров).
В качестве среды передачи данных в спецификации 1000-СХ определен экранированный сбалансированный медный кабель с волновым сопротивлением 150 Ом. Максимальная длина сегмента составляет всего 25 м, поэтому это решение подходит только для соединения оборудования, расположенного в одной комнате.
Gigabit Ethernet на витой паре категории 5
Как известно, каждая пара кабеля категории 5 имеет гарантированную полосу пропускания до 100 МГц. Для передачи по такому кабелю данных со скоростью 1000 Мбит/с было решено организовать параллельную передачу одновременно по всем четырем парам кабеля.
Это сразу снизило скорость передачи данных по каждой паре до 250 Мбит/с. Однако и для такой скорости необходимо было придумать метод кодирования со спектром, не превышающим 100 МГц. Например, код 4В/5В не позволяет решить поставленную задачу, так как основной вклад в спектр сигнала на такой скорости у него вносит частота 155 МГц. Кроме того, не нужно убывать, что каждая новая версия должна поддерживать не только классический полудуплексный режим, но и дуплексный режим. На первый взгляд кажется, что одновременное использование четырех пар лишает сеть возможности работы в дуплексном режиме, так как не остается свободных пар для одновременной передачи данных в двух направлениях — от узла и к узлу
Тем не менее проблемная группа 802.3аЬ нашла решения обеих проблем.
Для кодирования данных был применен код РАМ5 с пятью уровнями потенциала: -2, -1, 0, +1, +2. В этом случае за один такт по одной паре передается 2,322 бит информации (log25). Следовательно, для достижения скорости 250 Мбит/с тактовую частоту 250 МГц можно уменьшить в 2,322 раза. Разработчики стандарта решили использовать несколько более высокую частоту, а именно 125 МГц. При этой тактовой частоте код РАМ5 имеет спектр уже, чем 100 МГц, то есть он может быть передан без искажений по кабелю категории 5.
В каждом такте передается не 2,322 х 4 * 9,288 бит информации, а 8. Это и дает искомую суммарную скорость 1000 Мбит/с. Передача ровно восьми битов в каждом такте достигается за счет того, что при кодировании информации используются не все 625 (54 - 625) комбинаций кода РАМ5, а только 256 (28 - 256). Оставшиеся комбинации приемник задействует для контроля принимаемой информации и выделения правильных комбинаций на фоне шума.
Для организации дуплексного режима разработчики спецификации 802.ЗаЬ применили технику выделения принимаемого сигнала из суммарного. Два передатчика работают навстречу друг другу по каждой из четырех пар в одном и том же диапазоне частот (рис. 13.20). Н-образная схема гибридной развязки позволяет приемнику и передатчику одного и того же узла использовать одновременно витую пару и для приема, и для передачи (так же, как и в трансиверах Ethernet на коаксиале).
250 Мбит/с ?-
250 Мбит/с ?-
250 Мбит/с ?-
250 Мбит/с ?-
Т>-| Г—
н
VI I—п
<^г-и
^=0
<^г~и
Т>п гп
н
гп г-<т
н
-<т
250 Мбит/с —?
ГП Г<Т
н
н—lK: iv>
Г-т_Кт н—I Г
250 Мбит/с —?
250 Мбит/с —?
250 Мбит/с —?
Рис. 13.20. Двунаправленная передача по четырем парам UTP категории 5
Для отделения принимаемого сигнала от собственного приемник вычитает из результирующего сигнала известный ему свой сигнал. Естественно, что это не простая операция и для ее выполнения используются специальные процессоры цифровой обработки сигнала (Digital Signal Processor, DSP).
Вариант технологии Gigabit Ethernet на витой паре расширил процедуру автопереговоров, введенную стандартом 100Base-T, за счет включения туда дуплексного и полудуплексного режимов работы на скорости 1000 Мбит/с. Поэтому порты многих коммутаторов Ethernet на витой паре являются универсальными в том смысле, что могут работать на любой из трех скоростей (10,100 или 1000 Мбит/с).
Характеристики производительности Gigabit Ethernet зависят от того, использует ли коммутатор режим передачи кадров с расширением или же передает их в режиме пульсаций.
В режиме пульсаций на периоде пульсации мы получаем характеристики, в 10 раз отличающиеся от характеристик Fast Etherhet:
? максимальная скорость протокола в кадрах в секунду (для кадров минимальной длины с полем данных 46 байт) составляет 1 488 000;
? полезная пропускная способность для кадров минимальной длины равна 548 Мбит/с;
? полезная пропускная способность для кадров максимальной длины (поле данных 1500 байт) равна 976 Мбит/с.
10G Ethernet
Формально этот стандарт имеет обозначение IEEE 802.3ае и является поправкой к основному тексту стандарта 802.3. Формат кадра остался неизменным, при этом расширение кадра, введенное в стандарте Gigabit Ethernet, не используется, так как нет необходимости обеспечивать распознавание коллизий.
Стандарт 802.3ае описывает несколько новых спецификаций физического уровня, которые взаимодействуют с уровнем MAC с помощью нового варианта подуровня согласования. Этот подуровень обеспечивает для всех вариантов физического уровня 10G Ethernet единый интерфейс XGMII (extended Gigabit Medium Independent Interface — расширенный интерфейс независимого доступа к гигабитной среде), который предусматривает параллельный обмен четырьмя байтами, образующими четыре потока данных.
На рис. 13.21 показана структура интерфейсов 10G Ethernet для физического уровня, использующего оптическое волокно. Как видно из рисунка, существуют три группы таких физических интерфейсов: 10GBase-X, 10Gbase-R и 10GBase-W. Они отличаются способом кодирования данных: в варианте 10Base-X применяется код 8В/10В, в остальных двух — код 64В/66В. Все они для передачи данных задействуют оптическую среду.
Группа 10GBase-X в настоящее время состоит из одного интерфейса подуровня PMD — 10GBase-LX4. Буква L говорит о том, что информация передается с помощью волн второго диапазона прозрачности, то есть 1310 нм. Информация в каждом направлении передается одновременно с помощью четырех волн (что отражает цифра 4 в названии интерфейса), которые мультиплексируются на основе техники WDM (рис. 13.22). Каждый из четырех потоков интерфейса XGMII передается в оптическом волокне со скоростью 2,5 Гбит/с. Максимальное расстояние между передатчиком и приемником стандарта 10GBase-LX4 на многомодовом волокне равно 200-300 м (в зависимости от полосы пропускания волокна), на одномодовом — 10 км.
В каждой из групп 10GBase-W и 10GBase-R может быть три варианта подуровня PMD: S, L и Е в зависимости от используемого для передачи информации диапазона волн — 850, 1310 или 1550 нм соответственно. Таким образом, существуют интерфейсы 10GBase-WS, 10GBase-WL, 10GBase-WE и 10GBase-RS, 10GBase-RL и lOGBase-RE. Каждый из них передает информацию с помощью одной волны соответствующего диапазона.
Уровни CSMA/CDВерхние уровни
10GBase-W 10GBase-R 10GBase-XРис. 13.21. Три группы физических интерфейсов 10G Ethernet
Кроссовый кабель
WD - волновое разделение Интерфейс РМОРис. 13.22. В интерфейсе 10GBase-LX4 используется техника WDM
В отличие от 10GBase-R физические интерфейсы группы 10GBase-W обеспечивают жорость передачи и,формат данных, совместимые с интерфейсом SONET STS-192/SDH ГГМ-64. Пропускная способность интерфейсов группы W равна 9,95328 Гбит/с, а эффективная скорость передачи данных — 9,58464 Гбит/с (часть пропускной способности тратит-я на заголовки кадров STS/STM). Из-за того что скорость передачи информации у этой рунпы интерфейсов ниже, чем 10 Гбит/с, они могут взаимодействовать только между обой, то есть соединение, например. интерфейсов 10GBase-RL и 10Base-WL невозможно.
Интерфейсы группы W не являются полностью совместимыми по электрическим характеристикам с интерфейсами SONET STS-192/SDH STM-64. Поэтому для соединения сетей 10G Ethernet через первичную сеть SONET/SDH у мультиплексоров первичной сети должны быть специальные 10-гигабитные интерфейсы, совместимые со спецификациями 10GBase-W. Поддержка оборудованием 10GBase-W скорости 9,95328 Гбит/с обеспечивает принципиальную возможность передачи трафика 10G Ethernet через сети SONET/SDH в кадрах STS-192/STM-64.
Физические интерфейсы, работающие в окне прозрачности Е, обеспечивают передачу данных на расстояния до 40 км. Это позволяет строить не только локальные сети, но и сети мегаполисов, что нашло отражение в поправках к исходному тексту стандарта 802.3.
В 2006 году была принята спецификация 10GBase-T, которая дает возможность использовать знакомые администраторам локальных сетей кабели на витой паре. Правда, обязательным требованием является применение кабелей категории 6 или 6а: в первом случае максимальная длина кабеля не должна превышать 55 м, во втором — 100 м, что является традиционным для локальных сетей.
Архитектура коммутаторов
Для ускорения операций коммутации сегодня во всех коммутаторах используются заказные специализированные БИС — ASIC, которые оптимизированы для выполнения основных операций коммутации. Часто в одном коммутаторе имеется несколько специализированных БИС, каждая из которых выполняет функционально законченную часть операций.
Важную роль в построении коммутаторов играют также программируемые микросхемы FPGA (Field-Programmable Gate Array — программируемый в условиях эксплуатации массив вентилей). Эти микросхемы могут выполнять все функции, которые выполняют микросхемы ASIC, но в отличие от последних эти функции могут программироваться и перепрограммироваться производителями коммутаторов (и даже пользователями). Это свойство позволило резко удешевить процессоры портов коммутаторов, выполняющих сложные операции, например профилирование трафика, так как производитель FPGA выпускает свои микросхемы массово, а не по заказу того или иного производителя оборудования. Кроме того, применение микросхем FPGA позволяет производителям коммутаторов оперативно вносить изменения в логику работы порта при появлении новых стандартов или изменении действующих.
Помимо процессорных микросхем для успешной неблокирующей работы коммутатору нужно иметь быстродействующий узел обмена, предназначенный для передачи кадров между процессорными микросхемами портов.
В настоящее время в коммутаторах узел обмена строится на основе одной из трех схем:
? коммутационная матрица;
? общая шина;
? разделяемая многовходовая память.
Часто эти три схемы комбинируются в одном коммутаторе.
Коммутационная матрица обеспечивает наиболее простой способ взаимодействия процессоров портов, и именно этот способ был реализован в первом промышленном коммутаторе локальных сетей. Однако реализация матрицы возможна только для определенного числа портов, причем сложность схемы возрастает пропорционально квадрату количества портов коммутатора (рис. 13.23).
Рис. 13.23. Коммутационная матрица
1 2 3
4 5 6
Более детальное представление одного из возможных вариантов реализации коммутационной матрицы для восьми портов дано на рис. 13.24. Входные блоки процессоров портов на основании просмотра адресной таблицы коммутатора определяют по адресу назначения номер выходного порта. Эту информацию они добавляют к байтам исходного кадра в виде специального ярлыка — тега. Для данного примера тег представляет собой просто
3-разрядное двоичное число, соответствующее номеру выходного порта.
Входные блоки процессоров портовКоммутационная матрицаВыходные блоки процессоров портовРис. 13.24. Реализация коммутационной матрицы 8 х 8 с помощью двоичных переключателей
Матрица состоит из трех уровней двоичных переключателей, которые соединяют свой вход с одним из двух выходов в зависимости от значения бита тега. Переключатели первого уровня управляются первым битом тега, второго — вторым, а третьего — третьим.
Матрица может быть реализована и иначе, на основании комбинационных схем другого типа, но ее особенностью все равно остается технология коммутации физических каналов. Известным недостатком этой технологии является отсутствие буферизации данных внутри коммутационной матрицы — если составной канал невозможно построить из-за занятости выходного порта или промежуточного коммутационного элемента, то данные должны накапливаться в их источнике, в данном случае — во входном блоке порта, принявшего кадр. Основные достоинства таких матриц — высокая скорость коммутации и регулярная структура, которую удобно реализовывать в интегральных микросхемах. Зато после реализации матрицы N* N в составе БИС проявляется еще один ее недостаток — сложность наращивания числа коммутируемых портов.
В коммутаторах с общей шиной процессоры портов связывают высокоскоростной шиной, используемой в режиме разделения времени.
Пример такой архитектуры приведен на рис. 13.25. Чтобы шина не блокировала работу коммутатора, ее производительность должна равняться, по крайней мере, сумме производительностей всех портов коммутатора. Для модульных коммутаторов характерно то, что путем удачного подбора модулей с низкоскоростными портами можно обеспечить неблокирующий режим работы, но в то же время некоторые сочетания модулей с высокоскоростными портами могут приводить к структурам, у которых узким местом является общая шина.
Рис. 13.25. Архитектура коммутатора с общей шиной
Кадр должен передаваться по шине небольшими частями, по несколько байтов, чтобы передача кадров между портами происходила в псевдопараллельном режиме, не внося задержек в передачу кадра в целом. Размер такой ячейки данных определяется производителем коммутатора. Некоторые производители выбирают в качестве порции данных, переносимых по шине за одну операцию, ячейку АТМ с ее полем данных в 48 байт. Такой подход облегчает трансляцию протоколов локальных сетей в протокол ATM, если коммутатор поддерживает эти технологии. Кроме того, небольшой размер ячейки (ее формат может быть и фирменным, так как перенос данных между портами является сугубо внутренней операцией) уменьшает задержки доступа порта к общей шине.
Входной блок процессора помещает в ячейку, переносимую по шине, тег, в котором указывает номер порта назначения. Каждый выходной блок процессора порта содержит фильтр тегов, который выбирает теги, предназначенные данному порту.
Шина, так же как и коммутационная матрица, не может осуществлять промежуточную буферизацию, но поскольку данные кадра разбиваются на небольшие ячейки, задержек с начальным ожиданием доступности выходного порта в такой схеме нет — здесь работает принцип коммутации пакетов, а не каналов.
Разделяемая многовходовая память представляет собой третью базовую архитектуру взаимодействия портов. Пример такой архитектуры приведен на рис. 13.26.
Рис. 13.26. Архитектура коммутаторов с разделяемой памятью
Входные блоки процессоров портов соединяются с переключаемым входом разделяемой памяти, а выходные блоки этих же процессоров — с ее переключаемым выходом. Переключением входа и выхода разделяемой памяти управляет менеджер очередей выходных портов. В разделяемой памяти менеджер организует несколько очередей данных, по одной для каждого выходного порта. Входные блоки процессоров передают менеджеру портов запросы на запись данных в очередь того порта, который соответствует адресу назначения кадра. Менеджер по очереди подключает вход памяти к одному из входных блоков процессоров и тот переписывает часть данных кадра в очередь определенного выходного порта. По мере заполнения очередей менеджер производит также поочередное подключение выхода разделяемой памяти к выходным блокам процессоров портов, и данные из очереди переписываются в выходной буфер процессора.
Применение общей буферной памяти, гибко распределяемой менеджером между отдельными портами, снижает требования к размеру буферной памяти процессора порта. Однако буферная память должна быть достаточно быстродействующей для поддержания необходимой скорости обмена данными между N портами коммутатора.
Комбинированные коммутаторы. У каждой из описанных архитектур есть свои достоинства и недостатки, поэтому часто в сложных коммутаторах эти архитектуры применяются в комбинации друг/> другом. Пример такого комбинирования приведен на рис. 13.27.
Коммутатор состоит из модулей с фиксированным количеством портов (2-12), выполненных на основе специализированной БИС, реализующей архитектуру коммутационной матрицы. Если порты, между которыми нужно передать кадр данных, принадлежат одному модулю, то передача кадра осуществляется процессорами модуля на основе имеющейся в модуле коммутационной матрицы. Если же порты принадлежат разным модулям, то процессоры общаются по общей шине. В такой архитектуре передача кадров внутри модуля будет происходить быстрее, чем при межмодульной передаче, так как коммутационная матрица — это наиболее быстрое, хотя и наименее масштабируемое средство взаимодействия портов. Скорость внутренней шины коммутаторов может достигать нескольких гигабит в секунду, а у наиболее мощных моделей — до нескольких десятков гигабит в секунду.
Рис. 13.27. Комбинирование архитектур коммутационной матрицы и общей шины
Конструктивное исполнение коммутаторов
На конструктивное исполнение коммутаторов большое влияние оказывает их область применения. Настольные коммутаторы и коммутаторы рабочих групп чаще всего выпускаются как устройства с фиксированным количеством портов, корпоративные коммутаторы — как модульные устройства на основе шасси, а коммутаторы отделов могут иметь стековую конструкцию. Такое деление не является жестким, и в качестве корпоративного коммутатора может использоваться, например, стековый коммутатор.
Коммутатор с фиксированным количеством портов — это наиболее простое конструктивное исполнение, когда устройство представляет собой отдельный корпус со всеми необходимыми элементами (портами, органами индикации и управления, блоком питания), и эти элементы заменять нельзя.
Настольные коммутаторы представляют собой наиболее простой тип устройств с фиксированным количеством портов (рис. 13.28). Обычно все порты такого коммутатора поддерживают одну среду передачи, общее количество портов изменяется от 4 до 48. Порты такого коммутатора являются чаще всего интерфейсами 10/100 или 10/100/1000 Мбит/с на витой паре, поддерживающими автопереговоры. Как правило, такой коммутатор не поддерживает удаленное управление по протоколу SNMP.
Коммутатор рабочей группы с фиксированным количеством портов (рис. 13.29) имеет, как правило, множество портов для подключения пользовательских компьютеров — как и у настольного коммутатора, эти порты обычно являются интерфейсами 10/100 или 10/100/1000 Мбит/с витой паре, поддерживающими автопереговоры. В нашем примере коммутатор оснащен 24 портами 10/100 Мбит/с Кроме того, такой коммутатор имеет несколько магистральных портов для соединения с коммутаторами верхних уровней.
В нашем примере коммутатор имеет 4 магистральных порта, но они выполнены в особом конструктивном исполнении как слоты для установки модулей портов стандарта SFP.
Дело в том, что начиная со стандарта Gigabit Ethernet, порты для работы на оптическом волокне начали выпускаться в виде отдельных модулей, устанавливаемых в специальные слоты коммуникационных устройств.. Такая конструкция позволяет легко переходить от одного типа оптического волокна к другому, например от многомодового к одномодовому, путем замены модуля порта. Существует два популярных стандарта на конструктивное исполнение модулей портов Gigabit Ethernet и их интерфейс с самим устройством: GBIC hSFP (рис. 13.30).
Рис. 13.28. Настольный коммутатор
4 слота для модулей 24 порта 10/100 Мбит/с SPF 1000 Мбит/с (RJ-45)Рис. 13.29. Коммутатор рабочей группы с магистральными портами
Рис. 13.30. Модули QBIC (слева) и SFP (справа)
Оба эти стандарта приняты комитетом SFF (Small Form Factor committee — Комитет производителей компактного оборудования), который был образован в 1990 году как консорциум производителей периферийного оборудования для компьютеров, а затем расширил свои функции. Стандарты ^Fp являются результатом взаимной договоренности между производителями оборудования. Модули GBIC (Gigabit Ethernet Interface Converter — конвертор интерфейса Gigabit Ethernet) появились раньше, они обладают большими размерами, чем модули SFP (Small Factor Pluggable module — устанавливаемый модуль небольшого размера), которые были стандартизованы позднее. Модули SFP называют также моделями мини-GBIC. Несмотря на то что изначально и модули GBIC, и модули SFP были задуманы
как сменная часть портов Gigabit Ethernet для оптического волокна, выпускаются модули SFP и для витой пары, так как это делает слоты SFP коммутаторов (и маршрутизаторов) универсальными.
В том случае, если коммутатор рабочей группы поддерживает интерфейсы 10G Ethertnet (их нет у коммутатора на рис. 13.29), они также выполняются как слоты с устанавливаемыми модулями. Существует несколько стандартов таких модулей: XENPAK, XSP и SFP+ (последний вариант самый компактный). Все эти стандарты представляют собой результат взаимной договоренности между производителями оборудования.
Модульный коммутатор выполняется в виде отдельных модулей с фиксированным количеством портов, эти модули устанавливаются на общее шасси (рис. 13.31). Шасси имеет внутреннюю шину для объединения отдельных модулей в единое устройство. Для модульного коммутатора могут существовать различные типы модулей, отличающиеся количеством портов и типом поддерживаемой физической среды. Модульные коммутаторы позволяют более точно подобрать необходимую для конкретного применения конфигурацию коммутатора, а также гибко и с минимальными затратами реагировать на изменения конфигурации сети.
Рис. 13.31. Модульные коммутаторы на основе шасси
Ввиду ответственной работы, которую выполняют модульные коммутаторы, они снабжаются модулем управления, системой терморегулирования, избыточными источниками питания и возможностью замены модулей «на лету».
Недостатком коммутатора на основе шасси является высокая начальная стоимость такого устройства для случая, когда предприятию на первом этапе создания сети нужно установить всего 1-2 модуля. Высокая стоимость шасси вызвана тем, что оно поставляется вместе со всеми общими устройствами, такими как избыточные источники питания и т. п.
Стековый коммутатор, как и коммутатор с фиксированным числом портов, выполнен в виде отдельного корпуса без возможности замены отдельных его модулей. Несколько типичных стековых коммутаторов Ethernet показаны на рис. 13.32.
Рис. 13.32. Стековые коммутаторы Ethernet
Стековые коммутаторы имеют специальные порты и кабели для объединения нескольких корпусов в единый коммутатор с общим блоком управления. Стековые коммутаторы могут поддерживать различные физические среды передачи, что делает их почти такими же гибкими, как модульные концентраторы, но при этом стоимость этих устройств в расчете на один порт получается обычно ниже, так как сначала предприятие может купить одно устройство без избыточного шасси, а потом нарастить стек еще несколькими аналогичными устройствами.
Приведенная классификация конструктивного исполнения справедлива не только для коммутаторов, но и для коммуникационных устройств всех типов — маршрутизаторов, коммутаторов глобальных сетей, мультиплексоров SDH/OTN/DWDM.
Выводы
Для логической структуризации сети применяются мосты и их современные преемники — коммутаторы локальных сетей. Устройства обоих типов работают на основе одного и того же стандарта IEEE 802.1D, но коммутаторы обладают гораздо более высоким быстродействием за счет параллельной обработки потоков данных.
Коммутаторы являются самообучающимися устройствами, так как строят таблицы продвижения автоматически на основе слежения за передаваемыми кадрами.
Недостатком коммутаторов является невозможность работы в сетях с петлевидными связями. Другим недостатком сетей, построенных на коммутаторах, является отсутствие защиты от широковещательного шторма.
Применение коммутаторов позволяет сетевым адаптерам использовать дуплексный режим работы. В этом режиме отсутствует этап доступа к разделяемой среде, а общая скорость передачи данных удваивается.
В дуплексном режиме для борьбы с перегрузками коммутаторов используется метод обратной связи, описанный в стандарте 802.3х. Он позволяет приостановить на некоторое время поступление кадров от непосредственных'соседей перегруженного коммутатора.
Основными характеристиками производительности коммутатора являются: скорость фильтрации кадров, скорость продвижения кадров, общая пропускная способность по всем портам в мегабитах в секунду, задержка передачи кадра.
Потребности в высокоскоростной и в то же время недорогой технологии для подключения к сети мощных рабочих станций привели к созданию нескольких скоростных версий Ethernet: Fast Ethernet со скоростью 100 Мбит/с, Gigabit Ethernet со скоростью 1 Гбит/с и 10G Ethernet со скоростью 10 Гбит/с.
Существует несколько основных вариантов внутренней архитектуры коммутатора, в основе которых лежит:
? коммутационная матрица;
? разделяемая память;
? общая шина.
Кроме того, применяется комбинирование основных вариантов в одном устройстве.
По конструктивному исполнению коммутаторы разделяются на:
? устройства с фиксированным количеством портов;
? модульные устройства на основе шасси;
? стековые коммутаторы.
Вопросы и задания
1. Что из перечисленного можно отнести к недостаткам сетей на разделяемой среде:
а) неопределенная доля пропускной способности, приходящаяся на один узел сети;
б) сложность подключения нового узла к сети;
в) плохая масштабируемость;
г) сложность организации широковещания.
2. Почему мост, работающий в соответствии со стандартом IEEE 802.ID, называют «прозрачным»? Варианты ответов:
а) потому что он передает кадры Ethernet без изменения;
б) потому что конечные узлы «не замечают» его присутствия в сети;
в) потому что мост строит таблицу продвижения автоматически.
3. На основе изучения каких адресов автоматически строится таблица продвижения моста? Варианты ответов:
а) МАС-адресов назначения; б) МАС-адресов источника.
4. К каким негативным последствиям приводит наличие петель в сети, построенной на коммутаторах, работающих в соответствии с алгоритмом прозрачного моста? Варианты ответов:
а) кадры могут дублироваться;
б) кадры могут зацикливаться;
в) таблица продвижения может постоянно перестраиваться.
5. Для какой цели записи таблицы продвижения имеют ограниченный срок жизни?
6. Может ли скорость продвижения превосходить скорость фильтрации?
7. Чем коммутатор отличается от моста? Варианты ответов:
а) количеством портов;
б) способом построения таблицы продвижения;
в) дополнительными функциями;
г) производительностью.
8. При каком распределении трафика неблокирующий коммутатор с 12-ю портами Fast Ethernet и одним портом Gigabit Ethernet оправдывает свое название? Варианты ответов:
а) входной трафик всех портов Fast Ethernet, которые работают с близкой к 100 % нагрузкой, направлен в порт Gigabit Ethernet;
б) входной трафик порта Gigabit Ethernet, который работает с близкой к 100 % нагрузкой, равномерно распределен между 12-ю портами Fast Ethernet;
в) входной трафик всех портов Fast Ethernet, которые работают с 50-процентной нагрузкой, направлен в порт Gigabit Ethernet.
9. Какие механизмы коммутаторы используют для борьбы с перегрузками в дуплексном режиме работы? Варианты ответов:
а) обратное давление;
б) сообщение PAUSE;
в) динамическое увеличение скорости порта.
10. К каким последствиям может привести недостаточный объем памяти, выделенной под таблицу продвижения коммутатора? Варианты ответов:
а) постоянная перестройка таблицы продвижения;
б) затопление сети кадрами с неизученным адресом назначения;
в) потеря кадров.
11. Совпадают ли форматы кадров 10 Мбит/с Ethernet и Fast Ethernet?
12. Для какой цели в формат кадра Gigabit Ethernet было введено поле расширения? Варианты ответов:
а) для повышения производительности сети;
б) для передачи дополнительных адресов назначения;
в) для увеличения максимального диаметра сегмента разделяемой среды.
13. Может ли в технологии 10G Ethernet использоваться разделяемая среда?
14. Поддерживается ли режим автопереговоров для волоконно-оптических портов?
15. Какой особенности физического интерфейса соответствует цифра 4 в спецификации 10GBase-LX4?
16. Можно ли коммутатор локальной сети с интерфейсом 10GBase-WL непосредственно присоединить к порту STM-64 мультиплексора SDH?
ГЛАВА 14 Интеллектуальные
функции коммутаторов
Коммутируемые сети гораздо более производительны и масштабируемы, чем сети на разделяемой среде. Тем не менее локальная сеть, коммутаторы которой поддерживают алгоритм прозрачного моста, по-прежнему обладает рядом принципиальных недостатков. Прежде всего, остается нерешенной проблема надежности сети, так как древовидная топология коммутируемых локальных сетей очень уязвима — отказ любой линии связи или коммутатора приводит к потере связности сети, сеть фактически распадается на два или более сегмента.
Кроме того, такая сеть не имеет барьеров на пути ошибочного трафика, генерируемого любым из ее узлов, так как алгоритм прозрачного моста подразумевает передачу кадров с неизученным или широковещательным адресом всем узлам сети. Примером такой нежелательной ситуации является широковещательный шторм, возникающий из-за неисправности всего одного сетевого адаптера и приводящий к потере работоспособности всей сети. Говорят, что сеть на коммутаторах является «плоской», поскольку такая сеть не имеет барьеров на пути нежелательного трафика.
Ограничения древовидной топологии преодолеваются с помощью интеллектуальных функций коммутаторов, которые наделяют локальные сети дополнительными возможностями. Так, в коммутируемых локальных сетях широко применяется протокол покрывающего дерева (STP), который за счет резервных связей в сети автоматически находит новый вариант древовидной топологии при отказах и тем самым обеспечивает отказоустойчивость сети. Алгоритм покрывающего дерева был разработан одновременно с алгоритмом прозрачного моста (то есть в начале 80-х) и с тех пор успешно применяется в локальных сетях; последняя версия этого алгоритма Rapid STP позволила значительно сократить время перехода сети на резервную топологию.
Техника виртуальных локальных сетей (VLAN) позволяет разбивать коммутируемую локальную сеть на несколько обособленных логических сегментов, предотвращающих распространение нежелательного трафика по всей сети, кроме того, это свойство улучшает управляемость сети. Обособленные сегменты виртуальных локальных сетей затем могут быть соединены в составную сеть уже с помощью маршрутизаторов, при этом благодаря программному делению сети на сегменты очень удобно быстро поменять структуру сети.
Механизм агрегирования линий связи позволяет объединить несколько линий связи (физических каналов) в один логический канал. Это повышает как производительность, так и надежность сети. Агрегирование линий связи полезно в тех случаях, когда 10-кратное повышение скорости какой-нибудь связи замечет перехода на более высокий уровень иерархии протокола Ethernet либо невозможно (например, из-за того, что существующая скорость линии является предельной, каковой на момент написания этой книги была скорость 10 Пбит/с), либо экономически или организационно менее выгодно, чем параллельное использование нескольких имеющихся портов.
Новые развитые возможности коммутаторов локальных сетей обеспечивают поддержку методов QoS для различных типов трафика, включая приоритетные и взвешенные очереди, обратную связь, резервирование ресурсов.
Алгоритм покрывающего дерева
В коммутируемых локальных сетях проблема обеспечения надежности сети имеет свою специфику: базовый протокол прозрачного моста корректно работает только в сети с древовидной топологией, в которой между любыми двумя узлами сети существует единственный маршрут. Тем не менее очевидно, что для надежной работы сети необходимо наличие альтернативных маршрутов между узлами, которые можно использовать при отказе основного маршрута. Наиболее простым решением этой проблемы является построение сети с альтернативными маршрутами, ручное нахождение связной древовидной топологии и ручное блокирование (то есть перевод в административное состояние «отключен») всех портов, которые не входят в найденную топологию. В случае отказа сети этот процесс должен повторяться, опять же в ручном режиме. Понятно, что надежность сети в этом случае оказывается не очень высокой, так как время пребывания ее в неработоспособном состоянии будет исчисляться минутами: сначала нужно обнаружить отказ и локализовать его (то есть не только зафиксировать факт, что в сети что-то перестало работать, но и понять, какая именно связь пострадала и требует обхода), затем найти новый работоспособный вариант топологи сети (если он, конечно, существует), а потом его сконфигурировать.
Для автоматического выполнения перечисленных действий, то есть нахождения и конфигурирования активной древовидной топологии, мониторинга состояния ее связей и перехода к новой древовидной топологии при обнаружении отказа связи в коммутируемых локальных сетях используются алгор«гЫ| покрывающего дереве (Spanning Tree Algorithm, STA) и реализующий его протокол покрывающего деревa (Spanning Tree Protocol, STP).
Алгоритм покрывающего дерева, разработанный достаточно давно, в 1983 году, был признан IEEE удачным решением и включен в ту же спецификацию 802.1D, в которойюписы-вается и сам алгоритм прозрачного моста. Сегодня протокол STP широко применяется в наиболее массовых устройствах современных локальных сетей — коммутаторах. Протокол STP обновлялся несколько раз, последняя его редакция описана в документе 802.1D-2004; новая версия протокола получила название RSTP (Rapid STP, то есть быстрый протокол покрывающего дерева), так как предыдущие версии STP недостаточно быстро находили новую древовидную топологию — на это могло уйти до 50 секунд. Новая версия протокола покрывающего дерева — RSTP — работает значительно быстрее, затрачивая на поиск новой топологи несколько секунд.
Мы сначала рассмотрим классическую версию STP, а затем ее быстрый вариант — RSTP.
Классическая версия STP
Протокол STP формализует сеть (рис. 14.1, а) в виде графа (рис. 14.1, 6), вершинами которого являются коммутаторы и сегменты сети.
Сегмент — это связная ^асть сети, не содержащая коммутаторов (и маршрутизаторов). Сегмент может быть разделяемым (во время создания алгоритма STA это был единственный тип сегмента) и включать устройства физического уровня — повторители/концентраторы, существование которых коммутатор, будучи устройством канального уровня, «не замечает». Сегмент также может представлять собой двухточечный канал, в коммутируемых локальных сетях это единственный тип сегмента.
Рис. 14.1. Формализованное представление сети в соответствии с алгоритмом STA
НЛН
н/ н
н
н




коммутаторы повторители дуплексный порт полудуплексный порт коммутаторы сегменты
Протокол покрывающего дерева обеспечивает построение древовидной топологии связей с единственным путем минимальной длины от каждого коммутатора и от каждого сегмента до некоторого выделенного корневого коммутатора — корня дерева. Единственность пути гарантирует отсутствие петель, а минимальность расстояния — рациональность маршрутов следования трафика от периферии сёти к ее магистрали, роль которой исполняет корневой коммутатор.
В качестве расстояния в STA используется метрика — традиционная для протоколов маршрутизации величина, обратно пропорциональная пропускной способности сегмента. В STA метрика определяется также как условное время передачи бита сегментом. В версии 802.1D-1998 эта величина является 16-разрядной, а в версии 802.1D-2004 — 32-разрядной.
В версии 1998 года выбраны следующие значения метрики: 10 Мбит/с — 100,100 Мбит/с — 19, 1 Гбит/с — 4, 10 Гбит/с — 2. В текущей версии 802.1D-2004 используются такие значения метрик, которые расширяют диапазон скоростей сегментов до 10 Тбит/с (то есть с большим запасом относительно сегодняшнего уровня максимальной для Ethernet скорости в 10 Гбит/с),Сдавая такому сегменту значение 2; соответственно сегмент 100 Гбит/с получает значение 200, 10 Гбит/с — 2000, 1 Гбит/с — 20 000, 100 Мбит/с — 200 000, а 10 Мбит/с - 2 000 000.
Идентификатор коммутатора — это 8-байтовое число, шесть младших байтов которого составляют М AC-адрес его блока управления, отрабатывающего алгоритм STA (напомним, что портам коммутаторов и мостов для выполнения своей основной функции М АС-адреса не требуются), а два старших байта называются приоритетом коммутатора (значение по умолчанию равно 32 768) и конфигурируются вручную, что, как мы увидим далее, позволяет администратору сети влиять на процесс выбора корневого коммутатора.
Корневой порт коммутатора — это порт, который имеет кратчайшее расстояние до корневого коммутатора (точнее, до любого из портов корневого коммутатора).
Идентификатором порта служит 2-байтовое число. Младший байт содержит порядковый номер данного порта в коммутаторе, а значение старшего байта является приоритетом (значение по умолчанию равно 128) и задается администратором.
Назначенным коммутатором сегмента объявляется коммутатор, у которого расстояние до корневого коммутатора является минимальным.
Назначенный порт — это порт назначенного коммутатора сегмента, подключенный к данному сегменту.
Протокольными единицами данных моста (Bridge Protocol Data Unit, BPDU) называются специальные пакеты, которыми периодически обмениваются коммутаторы для автоматического определения конфигурации дерева. Пакеты BPDU переносят данные об идентификаторах коммутаторов и портов, а также о расстоянии до корневого коммутатора. Существует два типа сообщений, которые переносят пакеты BPDU: конфигурационные сообщения, называемые также сообщениями Hello, и сообщения с уведомлениями об изменении конфигурации. Для доставки BPDU используется групповой адрес 01:80:С2:00:00:00, позволяющий организовать эффективный обмен данными.
Интервал Hello — это интервал между генерацией сообщений Hello; он настраивается администратором и обычно составляет от 1 до 4 секунд; по умолчанию — 2 секунды.
Три этапа построения дерева
На рис. 14.2 приведен пример сети из стандарта 802.1D-2004, который иллюстрирует работу протокола STP. Мы также будем использовать этот пример в своем описании.
В этом примере сеть построена на восьми коммутаторах, которые имеют идентификаторы со значениями от 111 до 888 (для удобства записи здесь используются сокращенные до 3-х разрядов значения МAC-адресов коммутаторов). Все коммутаторы соединены друг с другом двухточечными связями, которые образуют сегменты A-N. Порты 3 и 4 коммутаторов с 555 по 888 соединены с конечными узлами сети, то есть компьютерами (на рисунке не показаны). Все связи в сети — это связи со скоростью 100 Мбит/с (Fast Ethernet).
Алгоритм STA определяет активную конфигурацию сети за три этапа.
Первый этап — определение корневого коммутатора, от которого строится дерево.
В качестве корневого коммутатора выбирается коммутатор с наименьшим значением идентификатора. В исходном состоянии каждый коммутатор считает себя корневым, поэтому он генерирует и передает своим соседям сообщения Hello, в которых помещает свой идентификатор в качестве идентификатора корневого коммутатора. Как только коммутатор получает от соседа сообщение Hello, в котором содержится идентификатор корневого коммутатора, меньший его собственного, он^перестает считать себя корневым коммутатором и генерировать свои сообщения Hello, но начинает ретранслировать сообщения Hello, получаемые от соседей.
Рис. 14.2. Пример сети, иллюстрирующей работу STP
Если администратор не вмешается в этот процесс, корневой коммутатор выбирается достаточно случайным образом — им станет устройство с минимальным МАС-адресом блока управления. Очевидно, что такой выбор может оказаться далеко не рациональным. Например, при выборе коммутатора 555 в качестве корневого значительная часть трафика проходила бы через большое количество транзитных сегментов и коммутаторов. Поэтому пускать данный процесс «на самотек» администратору не стоит — лучше в него вмешаться и назначить корневой коммутатор осознанно (путем соответствующего конфигурирования старших байтов идентификаторов коммутатора), чтобы выбранный коммутатор действи-тельно занимал центральное место в соединениях сегментов.
В нашем примере мы предполагаем, что администратор не стал менять приоритеты коммутаторов, так что у всех коммутаторов они остались равными значению 32 768 (значение по умолчанию), некорневым коммутатором стал коммутатор с идентификатором 111.
Второй этап — выбор корневого порта для каждого коммутатора.
Корневым портом коммутатора является тот порт, расстояние от которого до корневого коммутатора является минимальным. Сам корневой коммутатор корневых портов не имеет.
Для определения корневого порта каждый коммутатор использует пакеты Hello, ретранслируемые ему другими коммутаторами. На основании этих пакетов каждый коммутатор определяет минимальные расстояния от всех своих портов до корневого коммутатора. При ретрансляции сообщения Hello каждый коммутатор увеличивает указанное в сообщении расстояние до корня на метрику того сегмента, из которого принят данный пакет. Тем самым в пакете Hello по мере прохождения через коммутаторы наращивается поле, показывающее расстояние до корневого коммутатора. Например, если считать, что все сегменты в рассматриваемом примере являются сегментами Ethernet со скоростью 100 Мбит/с, то коммутатор 222, приняв из сегмента А пакет Hello со значением расстояния, равным 0, увеличивает его на 200 000 условных единиц (если коммутатор работает с величинами метрики, рекомендованными версией стандарта STP от 2004 года).
Ретранслируя пакеты, каждый коммутатор для каждого своего порта запоминает минимальное расстояние до корня, встретившееся во всех принятых этим портом пакетах Hello. По завершении процедуры определения конфигурации покрывающего дерева каждый коммутатор находит свой корневой порт (с минимальным расстоянием до корня).
При равных метриках для разрешения неоднозначности к процедуре выбора минимального расстояния привлекаются значения идентификаторов коммутаторов и портов. Предпочтение отдается портам и коммутаторам с наименьшими идентификаторами. Например, у коммутатора 222 порты 1 и 2 находятся на одинаковом расстоянии до корневого коммутатора 111 — оба эти порта непосредственно связаны через сегменты А и В с коммутатором 111, а значит, получают пакеты Hello с метрикой, равной 0. Так как идентификатор порта 1 меньше идентификатора порта 2, то корневым портом коммутатора 222 выбирается порт 1.
По аналогичной причине корневым портом коммутатора 555 становится порт 1, а не порт 2. Оба эти порта получают сообщения Hello, генерируемые корневым коммутатором 111, с наименьшим значением метрики 200 000. Порт 1 получает такие сообщения по маршруту: порт 1 коммутатора 111 — сегмент С — порт 1 коммутатора 333 — порт 6 коммутатора 333 - сегмент G, соответственно порт 2 получает их по маршруту: порт 3 коммутатора 111 — сегмент Е — порт 1 коммутатора 444 — порт б коммутатора 444 — сегмент /.
Третий этап — выбор назначенных коммутаторов и портов для каждого сегмента сети.
Назначенным является тот коммутатор (из числа коммутаторов, непосредственно подключенных к данному сегменту), у которого расстояние до корневого моста является минимальным (точнее, расстояние от корневого порта этого коммутатора до корневого коммутатора). Назначенные порты для сегментов исполняют ту же роль, что корневые порты для коммутаторов — они находятся на кратчайшем пути до корневого коммутатора.
Как и при выборе корневого порта, здесь используется распределенная процедура. Каждый коммутатор сегмента, прежде всего, исключает из рассмотрения свой корневой порт (для сегмента, к которому он подключен, всегда существует другой коммутатор, расположенный ближе к корню). Для каждого из оставшихся портов выполняется сравнение принятых по ним минимальных расстояний до корня (еще до наращивания на метрику сегмента) с расстоянием до корня корневого порта данного коммутатора. Если все принятые на этом порту расстояния оказываются больше, чем расстояние от собственного корневого порта, значит, для сегмента, к которому подключен порт, кратчайший путь к корневому коммутатору проходит через него, и он становится назначенным. Коммутатор делает все свои порты, для которых такое условие выполняется, назначенными. Когда имеется несколько портов с одинаковым кратчайшим расстоянием до корневого коммутатора, выбирается порте наименьшим идентификатором.
В рассматриваемом примере коммутатор 111 при проверке порта 1 обнаруживает, что через этот порт принимаются пакеты с минимальным расстоянием 200 000 (это пакеты от порта 1 коммутатора 222, который ретранслирует через все свои порты сообщения Hello, полученные от коммутатора 111, но с измененной метрикой, в частности передает их и коммутатору 111). Так как коммутатор 111 является корневым, то его расстояние до корневого коммутатора равно нулю, то есть меньше, чем у получаемых через порт 1 сообщений. Поэтому коммутатор 1 объявляет свой порт 1 назначенным для сегмента А. Коммутатор 222 не может объявить свой порт 1 назначенным для сегмента А, так как через него он получает сообщения с минимальной метрикой 0, а у его корневого порта метрика равна 200 000.
На выполнение всех трех этапов коммутаторам сети отводится по умолчанию 15 с. Эта стадия работы портов называется стадией прослушивания (listening), поскольку порты слушают только сообщения BPDU и не передают пользовательских кадров. Считается, что порты находятся в заблокированном состоянии, которое относится только к пользовательским кадрам, в то время как кадры BPDU обрабатываются. Предполагается, что в стадии прослушивания каждый коммутатор получит столько пакетов Hello, сколько потребуется для определения состояния своих портов.
Все остальные порты, кроме корневых и назначенных, каждым коммутатором блокируются и не могут передавать пользовательские кадры. Математически доказано, что при таком выборе активных портов в сети исключаются петли, а оставшиеся связи образуют покрывающее дерево (если оно вообще может быть построено при существующих связях в сети).
Результат работы протокола STP для нашего примера показан на рис. 14.3.
На рисунке корневые порты коммутаторов отмечены символом R, назначенные порты закрашены, а заблокированные зачеркнуты.
После построения покрывающего дерева коммутатор начинает принимать (но не продвигать) пакеты данных и на основе их адресов источника строить таблицу продвижения. Это обычный режим обучения прозрачного моста, который ранее нельзя было активизировать, так как порт не был уверен в том, что он останется корневым ири назначенным и будет передавать пакеты данных. Стадия обучения (learning) также выдерживается в течение интервала 15 с. При этом порт продолжает участвовать в работе алгоритма STA, так что поступление пакетов BPDU с лучшими параметрами переводит его в заблокированное состояние.
И только после двукратной выдержки по таймеру порт переходит в стадию продвижения (forwarding) и начинает продвигать пользовательские кадры в соответствии с построенной таблицей (которая продолжает модифицироваться, отражая изменения в структуре сети). Фактически в нашем примере в продвижении пользовательских пакетов после построения активной топологии участвуют только коммутаторы 111,333 и с 555 по 888.
В процессе нормальной работы корневой коммутатор продолжает генерировать пакеты Hello, а остальное коммутаторы получают их через свои корневые порты и ретранслируют через назначенные порты. У коммутатора могут отсутствовать назначенные порты, как у коммутаторов 222 и 444, но он все равно участвует в работе протокола STA, так как корневой порт принимает служебные пакеты BPDU.
Рис. 14.3. Активная топология, найденная по протоколу STP
Если по истечении максимального времени жизни сообщения (по умолчанию — 10 интервалов Hello, то есть 20 с) корневой порт любого коммутатора сети не получает служебный пакет Hello, то он инициализирует новую процедуру построения покрывающего дерева. При этом на все порты генерируется и передается пакет Hello, в котором коммутатор указывает себя в качестве корневого. Аналогичным образом ведут себя и другие коммутаторы сети, у которых сработал таймер истечения максимального времени жизни сообщения, в результате чего выбирается новая активная конфигурация.
В процессе изменения активной топологии адресная информация, находящаяся в таблицах продвижения коммутаторов, может перестать соответствовать действительности, так как некоторые порты изменяют свое состояние с активного на заблокированное, и наоборот. Использование устаревшей адресной информации может приводить к тому, что некоторое время кадры будут досылаться в неверном направлении и не доходить до адресатов. Для того чтобы сообщить коммутатору о том, что в сети произошло изменение топологии и необходимо удалить старую адресную информацию, по сети распространяются уведомления об изменении конфигурации (это особый тип пакета BPDU).
Недостатки и достоинства STP
Одним из основных достоинств алгоритма покрывающего дерева является то, что в отличие от многих упрощенных алгоритмов, где переход на резервное соединение осуществляется исключительно при отказе соседнего устройства, он принимает решение о реконфигурировании с учетом не только связей с соседями, но и связей в отдаленных сегментах сети,
К недостаткам алгоритма можно отнести то, что в сетях с большим количеством коммутаторов время определения новой активной конфигурации может оказаться слишком большим. Если в сети используются заданные по умолчанию значения тайм-аутов, переход на новую конфигурацию может занять свыше 50 с: 20 с понадобится на констатацию факта потери связи с корневым коммутатором (истечение таймера — единственный способ узнать об этом событии в стандартном варианте STA), а еще 2 х 15 с потребуется для перехода портов в состояние продвижения.
Имеющиеся многочисленные нестандартные версии STA позволяют сократить время реконфигурирования за счет усложнения алгоритма, например добавления новых типов служебных сообщений. В 2001 году была разработана стандартная ускоренная версия протокола — RSTP (спецификация IEEE 802. lw), которая затем вошла в качестве раздела 17 в общий стандарт 802.1D-2004.
Версия RSTP
В версии RSTP для сокращения времени построения активной топологии использовано несколько новых механизмов и приемов.
Коммутаторы стали учитывать тип сегмента, подключенного к порту. Различаются следующие типы сегментов:
? Сегмент типа «точка-точка». В коммутируемых сетях это единственный тип сегмента; для него у порта существует единственный порт-сосед.
? Разделяемая среда. Стандарт RSTP по-прежнему учитывает существование разделяемой среды, так как формально ее никто не отменял, и все стандарты, включая основной стандарт Ethernet IEE 802.3, описывают работу сегмента этого типа.
? Тупиковая связь (edge port). Связь, которая соединяет порт коммутатора с конечным узлом сети; по этому сегменту нет смысла ожидать прихода сообщений протокола RSTP. Тупиковая связь конфигурируется администратором.
В случае подключения к порту тупикового сегмента этот порт не участвует в протоколе RSTP, а сразу после включения переходит в стадию продвижения кадров. Нужно заметить, что в стандарте RSTP начальное заблокированное состояние портов переименовано в состояние отбрасывания.
Для портов со связями остальных типов переход в состояние продвижения по-прежнему достижим только после нахождения в стадии обучения.
Исключается стадия прослушивания. Коммутаторы не выдерживают паузу в 15 с для того, чтобы зафиксировать соответствующую роль порта, например корневого или назначенного. Вместо этого порты переходят в стадию обучения сразу же после назначения им роли корневого или назначенного порта.
Сокращается период фиксации отказа в сети — вместо 10 периодов неполучения сообщений Hello он стал равен трем таким периодам, то есть 6 с вместо 20.
Введены новые роли портов — появились альтернативный (alternative) и резервный (backup) порты. Альтернативный порт является портом-дублером корневого порта коммутатора, то есть он начинает продвигать кадры в том случае, когда отказывает (либо перестает принимать сообщения Hello в течение трех периодов) корневой порт. Резервный порт является портом-дублером назначенного порта сегмента; однако такая роль порта имеет смысл только для сегментов, представляющих собой разделяемую среду. Альтернативные и резервные порты находятся в состоянии отбрасывания кадров, так как они не должны продвигать кадры до тех пор, пока их роль не изменится на роль корневого или назначенного порта.
Как альтернативные, так и резервные порты выбираются одновременно с корневыми и назначенными портами. Такой подход значительно ускоряет реакцию сети на отказы, так как переход, например, на альтернативный порт происходит сразу же после фиксации отказа и не связан с ожиданием истечения тайм-аутов. Например, на рис. 14.3 альтернативным портом выбирается порт 2, так как он имеет наилучшее из всех портов (после корневого, естественно) расстояние до корневого коммутатора. При отказе связи между портом 4 коммутатора 111 и портом 1 коммутатора 333 порт 2 коммутатора 333 становится корневым. Он сразу же переходит в состояние обучения, минуя стадию прослушивания, которая была бы необходима, если бы коммутаторы работали по протоколу STP.
Введена процедура подтверждения перехода назначенного порта в состояние продвижения кадров после изменения активной топологии. Если альтернативный порт в протоколе RSTP переходит в состояние обучения сразу же после фиксации отказа корневого порта, то такой безусловный переход для назначенного порта, который до этого не продвигал кадры из-за того, что порт-сосед в двухточечной связи находился в состоянии отбрасывания, может вызвать образование петель.
Для исключения данной ситуации (и в условиях отсутствия стадии прослушивания) назначенный порт, который претендует на то, чтобы продвигать кадры, просит подтвердить свою роль у соседних коммутаторов. Например, на рис. 14.3 при отказе связи между портом 4 коммутатора 111 и портом 1 коммутатора 333 порт 3 коммутатора 222 должен инициировать процедуру подтверждения.
Для этого порт посылает своему соседу по сегменту «точка-точка» конфигурационное сообщение, называемое предложением (proposing). Это сообщение вызывает временный перевод всех назначенных портов соседа в состояние отбрасывания; кроме того, эти порты распространяют сообщение с предложением далее по сети своим нижележащим (в отношении расстояния до корневого коммутатора) соседям. Когда это сообщение доходит до коммутатора, у которого все порты либо находятся в стабильном состоянии, либо являются тупиковыми, то этот коммутатор отвечает на него сообщением согласия (название этого сообщения отражает тот факт, что коммутатор согласен на то, чтобы назначенные порты, передавшие предложение на переход в состояние продвижения кадров, стали продвигать кадры). Назначенный порт, получив в ответ сообщение согласия (а оно проходит в обратном направлении, от листьев к корню), фиксирует состояние продвижения кадров. Если же назначенный порт не получает такого сообщения, то он останется в состоянии отбрасывания. Данная процедура исключает возникновение петель в активной конфигурации, к тому же она сокращает время работы протокола RSTP, так как именно благодаря ей исключается стадия прослушивания.
За счет новых механизмов и новых ролей портов протокол RSTP строит новую активную топологию существенно быстрее, чем протокол STP — за несколько секунд вместо минуты или даже нескольких минут. Кроме того, время построения новой активной топологии по протоколу RSTP не зависит от размера сети.
На рис. 14.4 показана активная топология покрывающего дерева, найденная для предыдущего примера сети (см. рис. 14.2), но уже по протоколу RSTP. Двумя черточками отмечены альтернативные порты, находящиеся в состоянии отбрасывания, а ромбами — тупиковые порты.
Рис. 14.4. Активная топология, найденная по протоколу RSTP
Как видно из рисунка, активная топология, найденная по обоим протоколам, совпадает. Разница только в том, что время перехода на новую топологию в случае отказа элемента сети оказывается меньше, если коммутаторы поддерживают протокол RSTP, так как альтернативные порты уже найдены и будут очень быстро использованы. Протокол RSTP совместим с протоколом STP, так что сеть, построенная из коммутаторов, часть из которых поддерживает RSTP, а часть — STP, будет работать нормально.
Агрегирование линий связи в локальных сетях
Транки и логические каналы
Агрегирование линий связи (физических каналов) между двумя коммуникационными устройствами в один логический канал является еще одной формой использования избыточных альтернативных связей в локальных сетях.
При отказе одной из составляющих агрегированного логического канала, который часто называют транком, трафик распределяется между оставшимися линиями. На рис. 14.5 примером такой ситуации является транк 2, в котором один из физических каналов (центральный) отказал, так что все кадры передаются по оставшимся двум каналам. Этот пример демонстрирует повышение надежности при агрегировании.
Рис. 14.5. Агрегирование физических каналов
Покажем теперь, как агрегирование линий связи повышает производительность сети. Так, на рисунке коммутаторы 1 и 3 соединены тремя параллельными линиями связи, что в три раза повышаем производительность этого участка сети по сравнению со стандартным вариантом топологии дерева, которая не допускает таких параллельных связей. Повышение производительности связи между коммутаторами путем агрегирования линий связи в некоторых случаях является более эффективным, чем замена единственной линии связи более скоростной. Например, несмотря на то что семейство Ethernet предлагает широкий выбор скоростей физического канала, от 10 Мбит/с до 10 Гбит/с, десятикратное повышение скорости при переходе от одного стандарта Ethernet к другому не всегда нужно и экономически оправдано. Так, если в установленных в сети коммутаторах отсутствует возможность добавления модуля с портом Gigabit Ethernet, то повышение скорости на некоторых каналах до 1000 Мбит/с потребует полной замены коммутаторов. В то же время вполне возможно, что у таких коммутаторов имеются свободные порты Fast Ethernet, поэтому скорость передачи данных можно было бы повысить, например, до 600 Мбит/с, объединив в агрегированный канал шесть портов Fast Ethernet.
Агрегирование линий связи является обобщением одного из подходов к применению альтернативных маршрутов, когда сеть заранее находит два маршрута, однако использует только один. При агрегировании отыскивается N маршрутов (где N > 2), каждый из которых используется для одного потока, а при отказе какого-либо маршрута «пострадавший» поток переводится на любой из оставшихся (N- 1) работающих маршрутов.
Агрегирование линий связи применяется как для связей между портами коммутаторов локальной сети, так и для связей между компьютером и коммутатором. Чаще всего этот вариант выбирают для высокоскоростных и ответственных серверов. В этом случае все сетевые адаптеры, входящие в транк, принадлежат одному компьютеру и разделяют один и тот же сетевой адрес. Поэтому для протокола IP или другого протокола сетевого уровня порты транка неразличимы, что соответствует концепции единого логического канала, лежащей в основе агрегирования.
Почти все методы агрегирования, применяемые в настоящее время, обладают существенным ограничением — в них учитываются только связи между двумя соседними коммутаторами сети и полностью игнорируется все, что происходит вне этого участка сети. Например, работа транка 1 никак не координируется с работой транка 2, и наличие обычной связи между коммутаторами 2 и 3, которая создает вместе с транками 1 и 2 петлю, не учитывается. Поэтому если администратор сети хочет использовать все топологические возможности объединения узлов сети, технику агрегирования линий связи необходимо применять одновременно с алгоритмом покрывающего дерева. Для STA транк должен выглядеть как одна линия связи, тогда логика работы алгоритма останется в силе.
Борьба с «размножением» пакетов
Рассмотрим теперь подробней, в чем состоят особенности работы коммутатора в случае, когда его порты образуют транк. Во фрагменте сети, приведенном на рис. 14.6, коммутаторы 1 и 2 связаны четырьмя физическими каналами. Необходимо отметить, что транк может быть односторонним или двусторонним. Каждый коммутатор контролирует только отправку кадра, принимая решение, на какой из выходных портов его нужно передать. Поэтому если оба коммутатора считают связывающие их каналы транком, то он будет двусторонним, в противном случае — односторонним.
Рисунок иллюстрирует поведение коммутатора 1 по отношению к параллельным каналам. В том случае, когда они не рассматриваются данным коммутатором как агрегированный канал, возникают проблемы с кадрами двух типов:
? кадрами с еще не изученными коммутатором уникальными адресами;
? кадрами, в которых указан широковещательный или групповой адрес.
Алгоритм прозрачного моста требует от коммутатора передавать кадр с неизученным (отсутствующим в таблице продвижения) адресом на все порты, кроме того, с которого кадр
был принят. При наличии параллельных каналов такой кадр будет «размножен» в количестве, равном количеству каналов — в приведенном примере коммутатор 2 примет четыре копии оригинального кадра.
МАС7А
МАС1->Р11МАС2-+Р11МАСЗ-+Р12МАС4-»Р15МАС5->Р16МАС6->Р12МАС7->Р17МАС8-+Р18МАС9->?MAC 10-*?МАС11 -*?МАС9-+Р24
Рис. 14.6. Размножение пакетов с неизученным адресом при наличии параллельных каналов
между коммутаторами
При этом происходит еще и зацикливание кадров — они будут постоянно циркулировать между двумя коммутаторами, причем удалить их из сети окажется невозможно, так как в кадрах канального уровня отсутствует поле срока жизни, часто используемое в протоколах верхних уровней, таких как IP.
В любом случае кадр с неизученным адресом повысит нагрузку на сеть за счет увеличения числа кадров, что чревато возникновением заторов, задержек и потерь данных. Помимо роста нагрузки дублирование кадров может привести к неэффективной работе многих протоколов верхнего уровня. Примером может служить узел, работающий по протоколу TCP, для которого дублирование положительных квитанций, подтверждающих факт доставки данных адресату, служит косвенным признаком перегрузки сети.
Еще больше проблем создают кадры с широковещательным адресом — они всегда должны передаваться на все порты, кроме исходного, так что в любом случае «засорение» сети посторонним трафиком окажется значительным, и кадры будут зацикливаться.
С кадрами, у которых адрес назначения изучен, проблем у коммутаторов, связанных параллельными каналами, не возникает — коммутатор передает такой кадр на тот единственный порт, по которому этот кадр впервые пришел от источника.
Разработчики механизмов агрегирования учли проблемы, возникающие при обработке кадров с неизученными, широковещательными и групповыми адресами. Решение достаточно простое — все порты, связанные с параллельными каналами, считаются одним логическим портом, который и фигурирует в таблице продвижения вместо нескольких физических портов.
В примере, представленном на рис. 14.6, в таблице продвижения вместо портов Р17, Р18, Р19 и Р10 фигурирует логический порт ALII. С этим портом связаны адреса всех узлов, путь к которым лежит через коммутатор 2. При этом изучение нового адреса по кадру, поступившему от любого из физических портов, входящих в транк, приводит к появлению в таблице продвижения коммутатора новой записи с идентификатором логического порта. Поступающий в коммутатор кадр, адрес назначения которого изучен и связан с идентификатором логического порта, передается на один (и только один!) выходной физический порт, входящий в состав транка. Точно так же коммутатор поступает с неизученными, широковещательными и групповыми адресами — для передачи кадра используется только одна из связей. На порты коммутатора, не входящие в транк, это изменение в логике обработки кадров не распространяется. Так, коммутатор 1 всегда передает кадр с неизученным или широковещательным адресом на порты Р11-Р16. Благодаря такому решению кадры не дублируются и описанные проблемы не возникают.
ВНИМАНИЕ-
Сказанное справедливо только тогда, когда агрегированная линия связи сконфигурирована в качестве транка с обеих сторон.
Выбор порта
Остается открытым вопрос: какой из портов коммутатора нужно использовать для продвижения кадра через транк?
Можно предложить несколько вариантов ответа. Учитывая, что одной из целей агрегирования линий связи является повышение суммарной производительности участка сети между двумя коммутаторами (или коммутатором и сервером), следует распределять кадры по портам транка динамически, учитывая текущую загрузку каждого порта и направляя кадры в наименее загруженные (с меньшей длиной очереди) порты. Динамический способ распределения кадров, учитывающий текущую загрузку портов и обеспечивающий баланс нагрузки между всеми связями транка, должен приводить, казалось бы, к максимальной пропускной способности транка.
Однако такое утверждение справедливо не всегда, так как в нем не учитывается поведение протоколов верхнего уровня. Существует ряд таких протоколов, производительность которых может существенно снизиться, если пакеты сеанса связи между двумя конечными узлами будут приходить не в том порядке, в котором они отправлялись узлом-источником. А такая ситуация может возникнуть, если два или более последовательных кадра одного сеанса будут передаваться через разные порты транка — по причине того, что очереди в буферах этих портов имеют разную длину. Следовательно, и задержка передачи кадра может быть разной, так что более поздний кадр может обогнать более ранний.
Поэтому в большинстве реализаций механизмов агрегирования используются методы статического, а не динамического распределения кадров по портам. Статический способ распределения кадров подразумевает закрепление за определенным портом транка потока кадров определенного сеанса между двумя узлами, так что все кадры будут проходить через одну и ту же очередь и их упорядоченность не изменится.
Обычно при статическом распределении выбор порта для некоторого сеанса выполняется на основании определенных признаков, имеющихся в поступающих пакетах. Чаще всего такими признаками являются МАС-адреса источника или приемника или оба вместе. В популярной реализации механизма Fast EtherChannel компании Cisco для коммутаторов семейства Catalyst при выборе номера порта транка используется операция исключающего ИЛИ (XOR) над двумя последними битами МАС-адресов источника и приемника. Результат этой операции имеет четыре значения: 00,01,10 и 11, которые и являются условными номерами портов транка.
МАС1 МАС7
На рис. 14.7 приведен пример сети, в которой работает механизм Fast EtherChannel. Распределение потоков для сеансов между конечными узлами получается при этом достаточно случайным. Так как в распределении не учитывается реальная нагрузка, которую создает каждый сеанс, общая пропускная способность транка может использоваться нерационально, особенно если интенсивности сеансов намного отличаются друг от друга. Кроме того, алгоритм распределения не гарантирует даже равномерного в количественном отношении распределения сеансов по портам. Случайный набор М AC-адресов в сети может привести к тому, что через один порт будут проходить несколько десятков сеансов, а через другой — только два-три. Выравнивания нагрузки портов в данном алгоритме можно достигнуть только при большом количестве компьютеров и сеансов связи между ними.
Можно предложить и другие способы распределения сеансов по портам. Например, в соответствии с IP-адресами пакетов, которые инкапсулированы в кадры канального уровня, типами прикладных протоколов (почта по одному порту, веб-трафик по другому и т. д.). Полезным оказывается назначение порту сеансов с М AC-адресами, которые были изучены как идущие именно через этот порт — тогда трафик сеанса пойдет через один и тот же порт в обоих направлениях.
Стандартный способ создания агрегированных каналов, описанный в спецификации 802.3ad, предполагает возможность создания логического порта путем объединения нескольких физических портов, принадлежащих разным коммутаторам. Для того чтобы коммутаторы могли автоматически обеспечиваться информацией о принадлежности какого-либо физического порта определенному логическому порту, в спецификации предложен служебный протокол управления агрегированием линий связи (Link Control Aggregation Protocol, LCAP). Поэтому возможны такие конфигурации агрегированных каналов, которые увеличивают отказоустойчивость сети не только на участках между двумя коммутаторами, но и в более сложных топологиях (рис. 14.8).
-7*- Агрегированный канал Рис. 14.8. Распределенное агрегирование каналов
При отказе какого-либо канала транка все пакеты сеансов, назначенные для соответствующего порта, будут направляться на один из оставшихся портов. Обычно восстановление связности при таком отказе занимает от единиц до десятков миллисекунд. Это объясняется тем, что во многих реализациях транка после отказа физического канала все МАС-адреса, которые были с ним связаны, принудительно помечаются как неизученные. Затем коммутатор повторяет процедуру изучения этих адресов. После этого процедура назначения сеанса портам выполняется заново, естественно, учитываются только работающие порты. Так как тайм-ауты в сеансах протоколов локальных сетей обычно небольшие, коротким оказывается и время восстановления соединения.
Фильтрация трафика
Локальная сеть обеспечивает взаимодействие каждого узла с каждым — это очень полезное свойство, так как не требуется производить никаких специальных действий, чтобы обеспечить доступ узла А к узлу В — достаточно того, что эти узлы подключены к одной и той же локальной сети. В то же время в сети могут возникать ситуации, когда такая тотальная доступность узлов нежелательна. Примером может служить сервер финансового отдела, доступ к которому желательно разрешить только с компьютеров нескольких конкретных сотрудников этого отдела. Конечно, доступ можно ограничить на уровне операционной системы или системы управления базой данных самого сервера, но для надежности желательно иметь несколько эшелонов защиты и ограничить доступ еще и на уровне сетевого трафика.
Многие модели коммутаторов позволяют администраторам задавать дополнительные условия фильтрации кадров наряду со стандартными условиями их фильтрации в соответствии с информацией адресной таблицы. Такие фильтры называют пользовательскими.
Пользовательский фильтр, который также часто вазываютсписком доступа {access list), предназначен для созд ания дополнительных барьеров на ггут кадров, что позволяет ограничивать доступ определенных групп полЁзовапгелвйк отдф^»^^^жб8«зсер|1. Пользовательский фильтр — это набор условий, которые ограничивают о^^ передачи кзщроетсомму-
таторами.
Наиболее простыми являются пользовательские фильтры на основе МAC-адресов станций. Так как МАС-адреса — это та информация, с которой работает коммутатор, он позволяет создавать подобные фильтры удобным для администратора способом, возможно, проставляя некоторые условия в дополнительном поле адресной таблицы, например условие отбрасывать кадры с определенным адресом (см. рис. 13.6 в главе 13). Таким способом пользователю, работающему на компьютере с данным МАС-адресом, полностью запрещается доступ к ресурсам другого сегмента сети.
Рассмотрим применение пользовательского фильтра на примере сети, показанной на рис. 14.9.
С1 С2 СЗ С4Рис. 14.9. Контроль доступа к серверу с помощью пользовательского фильтра
Пусть мы хотим разрешить доступ к серверу 51 только с компьютеров С1 и С3, кадры от всех остальных компьютеров до этого сервера доходить не должны. Список доступа, который решает эту задачу, может выглядеть так:
10 permit МАС-С1 MAC-SI
20 permit MAC-C3 MAC-SI
30 deny any any
Числа 10,20 и 30 — это номера строк данного списка. Строки нумеруются с интервалом 10 для того, чтобы в дальнейшем была возможность добавить в этот список другие записи, сохраняя исходную последовательность строк. Первое условие разрешает (permit) передачу кадра, если его адрес источника равен МАС-С1, а адрес назначения — MAC-S1; второе условие делает то же, но для кадра с адресом источника МАС-СЗ, третье условие запрещает (deny) передачу кадров с любыми (any) адресами.
Для того чтобы список доступа начал работать, его нужно применить к трафику определенного направления на какому-либо порту коммутатора: либо к входящему, либо к исходящему. В нашем примере нужно применить список доступа к исходящему трафику порта 1 коммутатора SW3, к которому подключен сервер 51. Коммутатор SW3, перед тем как предать кадр на порт 1, будет просматривать условия списка доступа по очереди. Если какое-то условие из списка соблюдается, то коммутатор выполняет действие этого условия для обрабатываемого кадра, и на этом применение списка доступа для данного кадра заканчивается.
Поэтому когда от компьютера С1 приходит кадр, адресованный серверу 51, то соблюдается первое условие списка, которое разрешает передачу кадра, так что коммутатор выполняет стандартное действие по продвижению кадра, и тот доходит до сервера 52. С кадром от компьютера СЗ совпадение происходит при проверке второго условия, и он также передается. Однако когда приходят кадры от других компьютеров, например компьютера С2, то ни первое, ни второе условия не соблюдаются, зато соблюдается третье условие, поэтому кадр не передается, а отбрасывается.
Списки доступа коммутаторов не работают с широковещательными адресами Ethernet, такие кадры всегда передаются на все порты коммутатора. Списки доступа коммутаторов достаточно примитивны, поскольку могут оперировать только информацией канального уровня, то есть МАС-адресами. Списки доступа маршрутизаторов гораздо более гибкие и мощные, поэтому на практике они применяются гораздо чаще.
Иногда администратору требуется задать более тонкие условия фильтрации, например запретить некоторому пользователю печатать свои документы на сервере печати Windows, находящемуся в чужом сегменте, а остальные ресурсы этого сегмента сделать доступными. Для реализации подобного фильтра нужно запретить передачу кадров, которые удовлетворяют следующим условиям: во-первых, имеют определенный МАС-адрес, во-вторых, содержат в поле данных пакеты SMB, в-третьих, в соответствующем поле этих пакетов в качестве типа сервиса указана печать. Коммутаторы не анализируют протоколы верхних уровней, такие как SMB, поэтому администратору приходится для задания условий фильтрации «вручную» определять поле, по значению которого нужно осуществлять фильтрацию. В качестве признака фильтрации администратор указывает пару «смещение-размер» относительно начала поля данных кадра канального уровня, а затем еще приводит шестнадцатеричное значение этого поля.
Сложные условия фильтрации обычно записываются в виде булевых выражений, формируемых с помощью логических операторов AND и OR.
Виртуальные локальные сети
Важным свойством коммутатора локальной сети является способность контролировать передачу кадров между сегментами сети. По различным причинам (соблюдение прав доступа, политика безопасности и т. д.) некоторые кадры не следует передавать по адресу назначения.
Как мы выяснили в предыдущем разделе, ограничения такого типа можно реализовать с помощью пользовательских фильтров. Однако пользовательский фильтр может запретить коммутатору передачу кадров только по конкретным адресам, а широковещательный трафик он обязан передать всем сегментам сети. Так требует алгоритм его работы. Поэтому, как уже отмечалось, сети, созданные на основе коммутаторов, иногда называют плоскими — из-за отсутствия барьеров на пути широковещательного трафика. Технология виртуальных локальных сетей позволяет преодолеть указанное ограничение.
трафик которой, 1 от т^фика<^Г
называется группа узлов сети, изолирован
Это означает, что передача кадров между разными виртуальными сетями на основании адреса канального уровня невозможна независимо от типа адреса (уникального, группового или широковещательного). В то же время внутри виртуальной сети кадры передаются по технологии коммутации, то есть только на тот порт, который связан с адресом назначения кадра.
Виртуальные локальные сети могут перекрыватьсяу если один или несколько компьютеров входят в состав более чем одной виртуальной сети. На рис. 14.10 сервер электронной почты входит в состав виртуальных сетей 3 и 4. Это означает, что его кадры передаются коммутаторами всем компьютерам, входящим в эти сети. Если же какой-то компьютер входит в состав только виртуальной сети 3, то его кадры до сети 4 доходить не будут, но он может взаимодействовать с компьютерами сети 4 через общий почтовый сервер. Такая схема защищает виртуальные сети друг от друга не полностью, например, широковещательный шторм, возникший на сервере электронной почты, затопит и сеть 3, и сеть 4.
Говорят, что виртуальная сеть образует домен широковещательного трафика по аналогии с доменом коллизий, который образуется повторителями сетей Ethernet.
Назначение виртуальных сетей
Как мы видели на примере из предыдущего раздела, с помощью пользовательских фильтров можно вмешиваться в нормальную работу коммутаторов и ограничивать взаимодействие узлов локальной сети в соответствии с требуемыми правилами доступа. Однако механизм пользовательских фильтров коммутаторов имеет несколько недостатков:
? Приходится задавать отдельные условия для каждого узла сети, используя при этом громоздкие МАС-адреса. Гораздо проще было бы группировать узлы и описывать условия взаимодействия сразу для групп.
? Невозможно блокировать широковещательный трафик. Широковещательный трафик может быть причиной недоступности сети, если какой-то ее узел умышленно или неумышленно с большой интенсивностью генерирует широковещательные кадры.
Техника виртуальных локальных сетей решает задачу ограничения взаимодействия узлов сети другим способом.
Основное назначение технологии VLAN состоит в облегчении процесса создания изолированных сетей, которые затем обычно связываются между собой с помощью маршрутизаторов. Такое построение сети создает мощные барьеры на пути нежелательного трафика из одной сети в другую. Сегодня считается очевидным, что любая крупная сеть должна включать маршрутизаторы, иначе потоки ошибочных кадров, например широковещательных, будут периодически «затапливать» всю сеть через прозрачные для них коммутаторы, приводя ее в неработоспособное состояние.
{Одогоиногвод вирту^нь^ с^вй напнется то, чтс она позволяет соадаватьпсшностыо
изолированные оегмэнты сети яутем логического конфигурирования коммутаторов, ре прибегая кйзменен июфизиче<жойо^у<1>1>ы.
До появления технологии VLAN для создания отдельной сети использовались либо физически изолированные сегменты коаксиального кабеля, либо не связанные между собой сегменты, построенные на повторителях и мостах. Затем эти сети связывались маршрутизаторами в единую составную сеть (рис. 14.11).
Изменение состава сегментов (переход пользователя в другую сеть, дробление крупных сегментов) при таком подходе подразумевает физическую перекоммутацию разъемов на передних панелях повторителей или на кроссовых панелях, что не очень удобно в больших сетях — много физической работы, к тому же высока вероятность ошибки.
Рис. 14.11. Составная сеть, состоящая из сетей, построенных на основе повторителей
Для связывания виртуальных сетей в общую сеть требуется привлечение средств сетевого уровня. Он может быть реализован в отдельном маршрутизаторе или в составе программного обеспечения коммутатора, который тогда становится комбинированным устройством - так называемым коммутатором 3-го уровня (см. главу 18).
Технология виртуальных сетей долгое время не стандартизировалась, хотя и была реализована в очень широком спектре моделей коммутаторов разных производителей. Положение изменилось после принятия в 1998 году стандарта IEEE 802.1Q, который определяет базовые правила построения виртуальных локальных сетей, не зависящие от протокола канального уровня, поддерживаемого коммутатором.
Создание виртуальных сетей на базе одного коммутатора
При создании виртуальных сетей на основе одного коммутатора обычно используется механизм группирования портов коммутатора (рис. 14.12). При этом каждый порт приписывается той или иной виртуальной сети. Кадр, пришедший от порта, принадлежащего, например, виртуальной сети 1, никогда не будет передан порту, который не принадлежит этой виртуальной сети. Порт можно приписать нескольким виртуальным сетям, хотя на практике так делают редко — пропадает эффект полной изоляции сетей.
Создание виртуальных сетей путем группирования портов не требует от администратора большого объема ручной работы — достаточно каждый порт приписать к одной из нескольких заранее поименованных виртуальных сетей. Обычно такая операция выполняется с помощью специальной программы, прилагаемой к коммутатору.
Второй способ образования виртуальных сетей основан на группировании МАС-адресов. Каждый МАС-адрес, который изучен коммутатором, приписывается той или иной виртуальной сети. При существовании в сети множества узлов этот способ требует от администратора большого объема ручной работы. Однако при построении виртуальных сетей на основе нескольких коммутаторов он оказывается более гибким, чем группирование портов.
Рис. 14.12. Виртуальные сети, построенные на одном коммутаторе
Создание виртуальных сетей на базе нескольких коммутаторов
Рисунок 14.13 иллюстрирует проблему, возникающую при создании виртуальных сетей на основе нескольких коммутаторов, поддерживающих технику группирования портов.
Рис. 14.13. Построение виртуальных сетей на нескольких коммутаторах с группированием портов
Если узлы какой-либо виртуальной сети подключены к разным коммутаторам, то для подключения каждой такой сети на коммутаторах должна быть выделена специальная пара портов. В противном случае, если коммутаторы будут связаны только одной парой портов, информация о принадлежности кадра той или иной виртуальной сети при передаче из коммутатора в коммутатор будет утеряна. Таким образом, коммутаторы с группированием портов требуют для своего соединения столько портов, сколько виртуальных сетей они поддерживают. Порты и кабели используются в этом случае очень расточительно. Кроме того, при соединении виртуальных сетей через маршрутизатор для каждой виртуальной сети выделяется отдельный кабель и отдельный порт маршрутизатора, что также приводит к большим накладным расходам.
Группирование МАС-адресов в виртуальную сеть на каждом коммутаторе избавляет от необходимости связывать их по нескольким портам, поскольку в этом случае МАС-адрес становится меткой виртуальной сети. Однако этот способ требует выполнения большого количества ручных операций по маркировке МАС-адресов на каждом коммутаторе сети.
Описанные два подхода основаны только на добавлении дополнительной информации к адресным таблицам коммутатора и в них отсутствует возможность встраивания в передаваемый кадр информации о принадлежности кадра виртуальной сети. В остальных подходах используются имеющиеся или дополнительные поля кадра для сохранения информации о принадлежности кадра той или иной виртуальной локальной сети при его перемещениях между коммутаторами сети. При этом'нет необходимости помнить в каждом коммутаторе о принадлежности всех МАС-адресов составной сети виртуальным сетям.
Дополнительное поле с пометкой о номере виртуальной сети используется только тогда, когда кадр передается от коммутатора к коммутатору, а при передаче кадра конечному узлу оно обычно удаляется. При этом модифицируется протокол взаимодействия «коммутатор-коммутатор», а программное и аппаратное обеспечение конечных узлов остается неизменным. До принятия стандарта IEEE 802.1Q существовало много фирменных протоколов этого типа, но все они имели один недостаток — оборудование различных производителей при образовании VLAN оказывалось несовместимым.
Этот стандарт вводит в кадре Ethernet дополнительный заголовок, который называется тегом виртуальной локальной сети.
* авторов является
*Фйс. 14.14. Структура помеченного кадра Ethernet
Тег VLAN не является обязательным для кадров Ethernet. Кадр, у которого имеется такой заголовок, называют помеченным (tagged frame). Коммутаторы могут одновременно работать как с помеченными, так и с непомеченными кадрами. Из-за добавления тега VLAN максимальная длина поля данных уменьшилась на 4 байта.
Для того чтобы оборудование локальных сетей могло отличать и понимать помеченные кадры, для них введено специальное значение поля EtherType, равное 0x8100. Это значение говорит о том, что за ним следует поле TCI; а не стандартное поле данных. Обратите внимание, что в помеченном кадре за полями тега VLAN следует другое поле EtherType, указывающее тип протокола, данные которого переносятся полем данных кадра.
В поле TCI находится 12-битное поле номера (идентификатора) VLAN, называемого VID. Разрядность поля VID позволяет коммутаторам создавать до 4096 виртуальных сетей. Помимо этого в поле TCI помещено 3-битное поле приоритета кадра. Однобитное поле CFI было введено с целью поддержания специального формата кадра Token Ring, для сетей Ethernet оно должно содержать значение 0.
Пользуясь значением VID в помеченных кадрах, коммутаторы сети выполняют групповую фильтрацию трафика, разбивая сеть на виртуальные сегменты, то есть на VLAN. Для поддержки этого режима каждый порт коммутатора приписывается к одной или нескольким виртуальным локальным сетям, то есть выполняется группировка портов.
Для упрощения конфигурирования сети в стандарте 802.1Q вводятся понятия линии доступа и транка.
^бммутатора (называемый а этом случае портом доступа) Шекоторойвиртуальной локальной сети.
щ соединяет между собой порты двух коммутаторов; в общем ! нескольких виртуальныхсетей. » , j
Коммутаторы, поддерживающие технику VLAN, без специального конфигурирования по умолчанию работают как стандартные коммутаторы, обеспечивая соединения всех со всеми. В сети, образованной такими коммутаторами, все конечные узлы по умолчанию относятся к условной сети VLAN1 с идентификатором VID, равным 1. Все порты этой сети, к которым подключены конечные узлы, по определению являются портами доступа. VLAN1 можно отнести к виртуальным локальным сетям лишь условно, так как по ней передаются непомеченные кадры.
Для того чтобы образовать в исходной сети виртуальную локальную сеть, нужно в первую очередь выбрать для нее значение идентификатора VID, отличное от 1, а затем, используя команды конфигурирования коммутатора, приписать к этой сети те порты, к которым присоединены включаемые в нее компьютеры. Порт доступа может быть приписан только к одной виртуальной локальной сети.
Порты доступа получают от конечных узлов сети непомеченные кадры и помечают их тегом VLAN, содержащим то значение VID, которое назначено этому порту. При передаче же помеченных кадров конечному узлу порт доступа удаляет тег виртуальной локальной сети.
Для более наглядного описания вернемся к рассмотренному ранее примеру сети. На рис. 14.15 показано, как решается задана избирательного доступа к серверам на основе техники VLAN.
Будем считать, что поставлена задача обеспечить доступ компьютеров С1 и СЗ к серверам 51 и 53, в то время как компьютеры С2 и С4 должны иметь доступ только к серверам 52 и 54.
MAC-S2
С1 С2 СЗ С4- VLAN-2----VLAN-3Рис. 14.15. Разбиение сети на две виртуальные локальные сети
Чтобы решить эту задачу, можно организовать в сети две виртуальные локальные сети, VLAN2 и VLAN3 (напомним, что сеть VLAN1 уже существует по умолчанию — это наша исходная сеть), приписав один набор компьютеров и серверов к VLAN2, а другой — KVLAN3.
Для приписывания конечных узлов к определенной виртуальной локальной сети соответствующие порты объявляются портами доступа этой сети путем назначения им соответствующего идентификатора VID. Например, порт 1 коммутатора SW1 должен быть объявлен портом доступа VLAN2 путем назначения ему идентификатора VID2, то же самое должно быть проделано с портом 5 коммутатора SW1, портом 1 коммутатора SW2 и портом 1 коммутатора SW3. Порты доступа сети VLAN3 должны получить идентификатор VID3.
В нашей сети нужно также организовать транки — те линии связи, которые соединяют между собой порты, коммутаторов. Порты, подключенные к транкам, не добавляют и не удаляют теги, они просто передают кадры в неизменном виде. В нашем примере такими портами должны быть порты 6 коммутаторов SW1 и SW2, а также порты 3 и 4 коммутатора SW3. Порты в нашем примере должны поддерживать сети VLAN2 и VLAN3 (и VLAN1, если в сети есть узлы, явно не приписанные ни к одной виртуальной локальной сети).
Коммутаторы, поддерживающие технологию VLAN, осуществляют дополнительную фильтрацию трафика. В том случае если таблица продвижения коммутатора говорит о том, что пришедший кадр цужно передать на некоторый порт, перед передачей коммутатор проверяет, соответствует ли значение VID в теге VLAN кадра той виртуальной локальной сети, которая приписана к этому порту. В случае соответствия кадр передается, несоответствия — отбрасывается. Непомеченные кадры обрабатываются аналогичным образом, нос использованием условной сети VLAN1. МАС-адреса изучаются коммутаторами сети отдельно по каждой виртуальной локальной сети.
Как мы видим из примера, техника VLAN оказывается весьма эффективной для разграничения доступа к серверам. Конфигурирование виртуальной локальной сети не требует знания МАС-адресов узлов, кроме того, любое изменение в сети, например Подключение компьютера к другому коммутатору, требует конфигурирования лишь порта данного коммутатора, а все остальные коммутаторы сети продолжают работать без внесения изменений в их конфигурации.
Альтернативные маршруты в виртуальных локальных сетях
По умолчанию протокол STP/RSTP образует в сети одно покрывающее дерево для всех виртуальных локальных сетей. Чтобы в сети можно было использовать разные покрывающие деревья для разных виртуальных локальных сетей, существует специальная версия протокола, называемая множественным протоколом покрывающего дерева (Multiple Spanning Tree Protocol, MSTP).
Рис. 14.16. Два покрывающих дерева, построенные по протоколу MSTP
Протокол MSTP позволяет создать несколько покрывающих деревьев и приписывать к ним различные виртуальные локальные сети. Обычно создается небольшое количество деревьев, например два или три, чтобы сбалансировать нагрузку на коммутаторы, в противном случае, как мы видели в примере на рис. 14.2 и 14.3, единственное покрывающее дерево может полностью оставить без работы некоторые коммутаторы сети, то есть недоиспользует имеющие сетевые ресурсы.
Если вернуться к нашему примеру (см. рис. 14.2), то при создании двух покрывающих деревьев можно сконфигурировать приоритеты коммутаторов так, чтобы для одного дерева корневым коммутатором стал коммутатор 111, а для второго — коммутатор 222 (рис. 14.16).
В этом варианте мы подразумеваем, что порты 4 коммутаторов с 555 по 888 сконфигурированы как порты доступа одной виртуальной локальной сети, например VLAN100, а порты 3 тех же коммутаторов — как порты доступ» другой виртуальной локальной сети, например VLAN200. Сеть VLAN 100 приписана к покрывающему дереву с корневым коммутатором 111, a VLAN200 — к покрывающему дереву с корневым коммутатором 222. В этом варианте все коммутаторы сети используются для передачи трафика, что повышает производительность сети.
Протокол MSTP основан на протоколе RSTP, поэтому обеспечивает быструю реакцию сети на отказы.
Качество обслуживания в виртуальных сетях
Коммутаторы локальных сетей поддерживают практически все механизмы QoS, которые мы обсуждали в главе 7. Это утверждение относится к коммутаторам локальных сетей как к классу коммуникационных устройств, каждая же конкретная модель коммутатора может быть наделена только определенным набором механизмов поддержания параметров QoS или же не иметь их вовсе. Как правило, коммутаторы рабочих групп средств QoS не поддерживают, в то время как дл^ магистральных коммутаторов эта поддержка является обязательной.
Классификация трафика
Коммутаторы локальных сетей являются устройствами второго уровня, которые анализируют заголовки только протоколов канального уровня. Поэтому коммутаторы обычно используют для классификации трафика только МAC-адреса источника и приемника, а также номер порта, через который поступил кадр. Возможен также учет при классификации значения произвольного подполя внутри поля данных, заданного путем указания смещения в байтах. Эти способы не очень удобны для администратора, которому необходимо, например, отделить голосовой трафик от трафика передачи файлов. Поэтому некоторые коммутаторы, не поддерживая протоколы верхних уровней в полном объеме (например, не применяя протокол IP для продвижения пакетов), выполняют классификацию на основе признаков, содержащихся в заголовках пакетов этих протоколов — IP-адресах и портах TCP/UDP.
Маркирование трафика
Маркирование трафика обычно выполняется на границе сети, а затем его результаты используются во всех промежуточных устройствах сети. В кадре Ethernet 802.3 отсутствует поле, в которое можно было бы поместить результат маркировки трафика. Однако этот недостаток исправляет спецификация 802.1р, в которой имеются три бита дополнительного заголовка 802.1Q/p для хранения приоритета кадра.
Фактически, эти три бита служат для хранения признака одного из восьми классов трафика. Именно так трактует это поле стандарт 802.1 D-2004, куда вошла спецификация 802.1р. В приложении G стандарта 802.1D-2004 даются рекомендации по разделению всего трафика локальных сетей на семь классов:
? NC (управление сетью). Управлению сетью дается высший приоритет при обслуживании, так как от своевременного принятия решения и доставки управляющей информации сетевым устройствам зависят любые характеристики сети.
? VO (голос). Голосовому трафику требуется обеспечить задержу менее 10 мс.
? VI (видео). Видеотрафику требуется обеспечить задержу менее 100 мс.
? CL (контролируемая нагрузка). При применении важных бизнес-приложений требуется некоторая форма контроля допуска (admission control) и резервирование пропускной способности для потока.
? ЕЕ (улучшенное обслуживание). Это улучшенный вариант обслуживания по возможности, не дающий никаких гарантий пропускной способности.
? BE (обслуживание по возможности, или с максимальными усилиями). Стандартное обслуживание в локальных сетях.
? ВК (фоновый трафик). Наименее чувствительный к задержкам трафик, например трафик резервного копирования, источник которого может передавать большие объемы данных, поэтому его целесообразно выделить в особый класс, чтобы он не замедлял обработку других типов трафика.
Управление очередями
Коммутатор, поддерживающий параметры QoS, позволяет использовать несколько очередей для дифференцированной обработки классов трафика. Очереди могут обслуживаться в соответствии с алгоритмом приоритетной обработки, алгоритмом взвешенного обслуживания или на основе комбинации этих алгоритмов.
Коммутатор обычно поддерживает некоторое максимальное количество очередей, которое может оказаться меньше, чем требуемое число классов трафика. В этой ситуации несколько классов будут обслуживаться одной очередью, то есть фактически сольются в один класс. Стандарт 802.1D-2004 дает рекомендации в отношении того, какие классы трафика нужно реализовывать в сети в условиях ограниченного количества очередей в коммутаторах (табл. 16.1).
При существовании только одной очереди в сети все классы трафика обслуживаются этой очередью. На самом деле все классы обслуживаются с обычным качеством (по возможности), так как за счет управления очередями улучшить качество невозможно, хотя такие возможности, как обратная связь и резервирование полосы пропускания, для общего трафика остаются.
Две очереди дают возможность дифференцированно обслуживать группы классов трафика — менее требовательные классы ВК, BE и ЕЕ в одной очереди, а более требовательные классы VO, CL, VI, NC — в другой.
Дальнейшее увеличение количества очередей позволяет более дифференцированно обслуживать трафик, вплоть до рекомендуемых семи классов. Предложенная схема является только рекомендацией, администратор сети может делить трафик на классы по своему усмотрению.
Таблица 16.1. Классы трафика и количество очередей Количество очередейКлассы трафика 1{BE, ЕЕ, ВК, VO, CL, VI, NC} 2{BE, ЕЕ, ВК} {VO, CL, VI, NC} 3{BE, ЕЕ, ВК} {CL, VI}{VO, NC} 4{ВК}{BE, ЕЕ} {CL, VI} {VO, NC} 5{ВК}{BE, ЕЕ} {CL}{VI}{VO.NC} 6{ВК}{BE}{ЕЕ}{CL}{VI}{VO.NC} 7{ВК} {BE} {ЕЕ} {CL} {VI} {VO} {NC}Кроме того, допускается обслуживание индивидуальных потоков трафика, но при этом каждый коммутатор должен самостоятельно выделять поток из общего трафика, так как в кадре Ethernet нет поля для переноса через сеть метки потока. В качестве признака класса трафика можно использовать номер виртуальной сети. Этот признак можно также комбинировать со значениями поля приоритета кадра, получая большое число различных классов.
Резервирование и профилирование
Коммутаторы локальных сетей поддерживают методы резервирования пропускной способности интерфейсов для классов трафика или индивидуальных потоков. Обычно коммутатор разрешает назначить классу или потоку минимальную скорость передачи данных, которая гарантируется в периоды перегрузок, а также максимальную скорость передачи данных, которая контролируется механизмом профилирования.
Для коммутаторов локальных сетей не существует стандартного протокола резервирования ресурсов. Поэтому для выполнения резервирования администратор сети должен сконфигурировать каждый коммутатор сети отдельно.
Ограничения коммутаторов
Применение коммутаторов позволяет преодолеть ограничения, свойственные сетям с рг деляемой средой. Коммутируемые локальные сети могут покрывать значительные терр тории, плавно переходя в сети мегаполисов; они могут состоять из сегментов различи! пропускной способности, образуя сети с очень высокой производительностью; они мог использовать альтернативные маршруты для повышения надежности и производите;] ности. Однако построение сложных сетей без маршрутизаторов, а только на основе ко мутаторов имеет существенные ограничения.
? Серьезные ограничения по-прежнему накладываются на топологию коммутируем! локальной сети. Требование отсутствия петель преодолевается с помощью техни] STP/RSTP/MSTP и агрегирования каналов лишь частично. Действительно, STP не п зволяет задействовать все альтернативные маршруты для передачи пользовательско трафика, а агрегирование каналов разрешает так делать только на участке сети меж, двумя соседними коммутаторами. Подобные ограничения не позволяют примени многие эффективные топологии, пригодные для передачи трафика.
? Логические сегменты сети, расположенные между коммутаторами, слабо изолиров ны друг от друга, а именно — не защищены от так называемых широковещательш штормов. Использование же механизма виртуальных сетей, реализованного во мноп коммутаторах, хотя и позволяет достаточно гибко создавать изолированные по трафи группы станций, при этом изолирует их полностью, то есть так, что узлы одной вирт альной сети не могут взаимодействовать с узлами другой виртуальной сети.
? В сетях, построенных на основе мостов и коммутаторов, достаточно сложно решает задача фильтрации трафика на основе данных, содержащихся в пакете. В таких сет. фильтрация выполняется только с помощью пользовательских фильтров, для создан) которых администратору приходится иметь дело с двоичным представлением соде жимого пакетов.
? Реализация транспортной подсистемы только средствами физического и канально уровней приводит к недостаточно гибкой одноуровневой системе адресации: в качест адреса назначения используется МАС-адрес, жестко связанный с сетевым адаптеро
? У коммутаторов ограничены возможности по трансляции протоколов при создании г терогенной сети. Они не могут транслировать протоколы WAN в протоколы LAN из-различий в системе адресации этих сетей, а также различных значений максимально размера поля данных.
Наличие серьезных ограничений у протоколов канального уровня показывает, что п строение на основе средств этого уровня больших неоднородных сетей является весы проблематичным. Естественное решение в этих случаях — привлечение средств бол высокого сетевого уровня.
Пример коммутируемой сети завода можно найти на сайте www.olifer.co.uk в разделе «Коммутируемые сети».
Выводы
Для автоматического поддержания в сложных сетях резервных связей в коммутаторах реализуется алгоритм покрывающего дерева. Этот алгоритм описан в документе IEEE 802.1D и основан на периодической обмене коммутаторов специальными кадрами, с помощью которых выявляются и блокируются петлевидные связи в сети.
Протокол STA находит конфигурацию покрывающего дерева за три этапа. На первом этапе определяется корневой коммутатор, на втором — корневые порты, на третьем — назначенные порты сегментов.
Недостатком протокола STA 802.1D является сравнительно большое время установления новой активной конфигурации — около 50 с. Новый стандарт RSTP устраняет этот недостаток за счет предварительного выбора портов-дублеров для корневых и назначенных портов, а также введения некоторых других новых механизмов.
Агрегирование нескольких физических каналов в один логический является одной из форм использования нескольких активных альтернативных маршрутов в локальных сетях на коммутаторах. Агрегирование каналов повышает как производительность, так и надежность сети.
Агрегированный канал может быть образован не только между двумя соседними коммутаторами, но и распределяться между портами нескольких коммутаторов. Для автоматического уведомления о принадлежности физического порта определенному агрегированному порту разработан протокол LCAP.
Технология виртуальных локальных сетей (VLAN) позволяет в сети, построенной на коммутаторах, программным путем создать изолированные группы конечных узлов, между которыми отсутствует любой трафик, в том числе широковещательный.
Конфигурирование VLAN обычно ведется путем группирования портов или МАС-адресов.
Для построение виртуальной локальной сети на основе нескольких коммутаторов желательно помечать передаваемые кадры специальной меткой — тегом, идентифицирующем номер сети, которой принадлежит отправитель кадра. Стандартный формат тега VLAN определен в спецификации 802.1Q.
Протокол MSTP позволяет организовать в сети отдельные покрывающие деревья для виртуальных локальных сетей.
Коммутаторы LAN поддерживают многие механизмы QoS: классификацию и профилирование трафика, приоритетные и взвешенные очереди, резервирование пропускной способности.
Вопросы и задания
1. Для какой цели используется алгоритм покрывающего дерева? Варианты ответов:
а) для автоматического построения связной топологии без петель;
б) для защиты мостов от широковещательного шторма;
в) для автоматического перехода на резервные связи при отказе узлов или основных линий связи сети.
2. Каждый ли коммутатор, участвующий в построении покрывающего дерева, имеет корневой порт?
3. Какой порт называется назначенным?
а) имеющий минимальное расстояние до корневого коммутатора среди всех портов, которые подключены к данному сегменту;
б) имеющий минимальное расстояние до корневого коммутатора среди всех портов данного коммутатора.
4. Может ли администратор влиять на выбор корневого коммутатора?
5. Каким образом коммутаторы решают, что выбор активной топологии завершен?
6. За счет каких усовершенствований протокол RSTP работает быстрее протокола STP? Варианты ответов:
а) применение более быстрых процессоров коммутаторов;
б) исключение тупиковых портов из процесса выбора корневых и назначенных портов;
в) выбор портов-дублеров для корневых и назначенных портов;
г) введение процедуры подтверждения новой роли назначенного порта.
7. Как взаимодействуют алгоритмы покрывающего дерева и агрегирования каналов?
8. В чем заключаются недостатки динамического способа выбора порта транка? Варианты ответов:
а) неравномерная загрузка портов транка;
б) нарушение порядка следования кадров, принадлежащих одному потоку;
в) возможность потери кадров.
9. Преимуществами разбиения локальной сети на VLAN являются:
а) локализация широковещательного трафика;
б) повышение безопасности сети;
в) улучшение управляемости сети;
г) уменьшение объема ручного конфигурирования коммутаторов.
10. Каким образом можно объединить несколько виртуальных локальных сетей? Варианты ответов:
а) приписать их к одному и тому же транку;
б) сделать какой-либо конечный узел членом объединяемых сетей VLAN;
в) объединить VLAN с помощью маршрутизатора.
11. Укажите способы образования VLAN:
а) блокировка портов;
б) группирование портов;
в) группирование МАС-адресов;
г) использование тегов стандарта IEEE 802.1Q.
12. Почему группирование портов плохо работает в сети, построенной на нескольки коммутаторах?
13. Можно ли одновременно использовать группирование портов и стандарт IEE 802.1Q?
14. Должен ли алгоритм покрывающего дерева учитывать наличие в сети VLAN?
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОК