Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
уч.пособ архитектура.doc
Скачиваний:
59
Добавлен:
11.04.2015
Размер:
3.25 Mб
Скачать

5.5 Коммутатор

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

Внедрение коммутаторов повышает пропускную способность сетей за счет равномерного распределения полосы пропускания между пользователями и приложениями.

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

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

Как и многопортовые мосты, коммутаторы передают пакеты между портами на основе адреса получателя, включенного в каждый пакет. Реализация коммутаторов обычно отличается от мостов в части возможности организации одновременных соединений между любыми парами портов устройства - это значительно расширяет суммарную пропускную способность сети. Более того, мосты в соответствии со стандартом IEEE 802.1d должны получить пакет целиком до того, как он будет передан адресату, а коммутаторы могут начать передачу пакета, не приняв его полностью.

Коммутатор (Switch - HUB) – это такой же мост, но у него для каждого порта имеется свой процессор. Поэтому коммутатор работает гораздо быстрее моста, у которого всего один процессор для всех портов, т. е. коммутаторы – это мосты нового поколения, которые обрабатывают кадры в параллельном режиме.

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

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

Таблица адресов коммутатора

MAC-адрес

Номер порта

A

1

B

2

C

3

D

4

Используя таблицу адресов и содержащийся в пакете адрес получателя, коммутатор организует виртуальное соединение порта отправителя с портом получателя и передает пакет через это соединение. На рисунке 5.10. узел А посылает пакет узлу D. Найдя адрес получателя в своей внутренней таблице, коммутатор передает пакет в порт 4.

Виртуальное соединение между портами коммутатора сохраняется в течение передачи одного пакета, т.е. для каждого пакета виртуальное соединение организуется заново на основе содержащегося в этом пакете адреса получателя.

Поскольку пакет передается только в тот порт, к которому подключен адресат, остальные пользователи (в нашем примере - B и C) не получат этот пакет. Таким образом, коммутаторы обеспечивают средства безопасности, недоступные для стандартных повторителей Ethernet.

Рисунок 5.10.Установление виртуального соединение с использованием коммутатора

В коммутаторах Ethernet передача данных между любыми парами портов происходит независимо и, следовательно, для каждого виртуального соединения выделяется вся полоса канала. Например, коммутатор 10 Mbps (рис. 5.11.) обеспечивает одновременную передачу пакета из A в D и из порта B в порт C с полосой 10 Mbps для каждого соединения.

Поскольку для каждого соединения предоставляется полоса 10 Mbps, суммарная пропускная способность коммутатора в приведенном примере составляет 20 Mbps. Если данные передаются между большим числом пар портов, интегральная полоса соответственно расширяется. Например, 24 портовый коммутатор Ethernet может обеспечивать интегральную пропускную способность до 120 Mbps при одновременной организации 12 соединений с полосой 10 Mbps для каждого из них. Теоретически, интегральная полоса коммутатора растет пропорционально числу портов. Однако, в реальности скорость пересылки пакетов, измеренная в Mbps, меньше чем суммарная полоса пар портов за счет так называемой внутренней блокировки. Для коммутаторов высокого класса блокировка весьма незначительно снижает интегральную полосу устройства.

Рисунок 5.11.Одновременная передача пакетов

Коммутатор Ethernet 10 Mbps может обеспечить высокую пропускную способность при условии организации одновременных соединений между всеми парами портов. Однако, в реальной жизни трафик обычно представляет собой ситуацию "один ко многим" (например, множество пользователей сети обращается к ресурсам одного сервера). В таких случаях пропускная способность коммутатора в нашем примере не будет превышать 10 Mbps, и коммутатор не обеспечит существенного преимущества по сравнению с обычным концентратором (повторителем).

На рисунке 5.12. три узла A, B и D передают данные узлу C. Коммутатор сохраняет пакеты от узлов A и B в своей памяти до тех пор, пока не завершится передача пакета из узла D. После завершения передачи пакета коммутатор начинает передавать хранящиеся в памяти пакеты от узлов A и B. В данном случае пропускная способность коммутатора определяется полосой канала C (в данном случае 10 Mbps). Описанная в данном примере ситуация является другой формой блокировки.

Есть и чисто механический (электрический) путь повысить скорость передачи данных между клиентом и коммутатором. Коммутатор умеет работать не только в одном направлении (half duplex) по сетевому кабелю, а в двух направлениях (full duplex).

Рисунок 5.12.Одновременная передача пакетов на порт С.

Коммутатор – это участок дороги с двухсторонним движением по пять полос в каждую сторону для 5 или 8 входящих. При этом все полосы могут быть соединены в разных уровнях, не мешая друг другу и не пересекаясь. Поэтому по ней могут ехать одновременно 10 автомобилей (5 пар) не замечая друг друга.

Важным параметром коммутатора является задержка. Задержка - это промежуток времени между получением пакета от отправителя и передачей его получателю. Обычно задержку измеряют относительно первого бита пакета.

Коммутаторы Ethernet могут обеспечивать очень низкую задержку после того, как будет определен адресат. Поскольку адрес получателя размещается в начале пакета, передачу можно начать до того, как пакет будет полностью принят от отправителя. Такой метод называется коммутацией на лету (cut-through) и обеспечивает минимальную задержку. Малая задержка важна, поскольку с ней непосредственно связана производительность коммутатора. Однако метод коммутации на лету не проверяет пакеты на предмет ошибок.

При таком способе коммутатор передает все пакеты (даже те, которые содержат ошибки). Например, при возникновении коллизии после начала передачи пакета (адрес уже получен) полученный фрагмент все равно будет передан адресату. Передача таких фрагментов занимает часть полосы канала и снижает общую производительность коммутатора.

При передаче пакетов из низкоскоростного порта в высокоскоростной (например, из порта 10 Mbps в порт 100 Mbps) коммутацию на лету использовать вообще невозможно. Поскольку порт-приемник имеет большую скорость, нежели передатчик, при использовании коммутации на лету неизбежно возникнут ошибки. При организации виртуального соединения между портами с разной скоростью требуется буферизация пакетов.

Малая задержка повышает производительность сетей, в которых данные передаются в виде последовательности отдельных пакетов, каждый из которых содержит адрес получателя. В сетях, где данные передаются в форме последовательности пакетов с организацией виртуального канала, малая задержка меньше влияет на производительность

По технической реализации коммутаторы делятся:

  1. Коммутатор на центральном процессоре общего назначения (рис.5.14).

Для связи с интерфейсными портами I/O используется внутренняя скоростная шина.

Основным недостатком таких коммутаторов была их низкая скорость. Универсальный процессор никак не мог справиться с большим объемом специализированных операций по пересылке кадров между интерфейсными модулями.

2. Коммутатор на основе коммутационной матрицы (рис.5.14.).

Коммутационная матрица обеспечивает основной и самый быстрый способ взаимодействия процессоров портов. Однако реализация матрицы возможна только для определенного числа портов, причем сложность схемы возрастает пропорционально квадрату количества портов коммутатора.

Рисунок 5.14. Коммутатор на основе коммутационной матрицы.

Входные блоки процессоров портов на основании просмотра адресной таблицы коммутатора определяют по адресу назначения номер выходного порта. Эту информацию они добавляют к байтам исходного кадра в виде специального ярлыка - тэга. Матрица состоит из трех уровней двоичных переключателей, которые соединяют свой вход с одним из двух выходов в зависимости от значения бита тэга. Переключатели первого уровня управляются первым битом тэга, второго - вторым, а третьего - третьим.

Матрица может быть реализована и по-другому, на основании комбинационных схем другого типа, но ее особенностью все равно остается технология коммутации физических каналов.

Недостатки:

1) отсутствие буферизации данных внутри коммутационной матрицы - если составной канал невозможно построить из-за занятости выходного порта или промежуточного ком­мутационного элемента, то данные должны накапливаться в их источнике, в данном случае - во входном блоке порта, принявшего кадр. 2). Сложность наращивания числа коммутируемых портов.

Достоинства - высокая скорость коммутации и регулярная структура, которую удобно реализовывать в интегральных микросхемах

3. Коммутаторы с общей шиной (рис.5.15.)

В коммутаторах с общей шиной процессоры портов связывают высокоскоростной шиной, используемой в режиме разделения времени. Чтобы шина не блокировала работу коммутатора, ее производительность должна равняться, по крайней мере сумме производительности всех портов коммутатора.

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

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

4. Коммутаторы с разделяемой памятью (рис.5.16.)

Рисунок 5.16 - Схема коммутаторы с разделяемой памятью

Входные блоки процессоров портов соединяются с переключаемым входом разделяемой памяти, а выходные блоки этих же процессоров соединяются с переключаемым выходом этой памяти. Переключением входа и выхода разделяемой памяти управляет менеджер очередей выходных портов. В разделяемой памяти менеджер организует несколько очередей данных, по одной для каждого выходного порта. Входные блоки процессоров передают менеджеру портов запросы на запись данных в очередь того порта, который соответствует адресу назначения пакета. Менеджер по очереди подключает вход памяти к одному из входных блоков процессоров и тот переписывает часть данных кадра в очередь определенного выходного порта. По мере заполнения очередей менеджер производит также поочередное подключение выхода разделяемой памяти к выходным блокам процессоров портов, и данные из очереди переписываются в выходной буфер процессора.

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

5. Комбинированные коммутаторы.

У каждой из описанных архитектур есть свои преимущества и недостатки, поэтому часто в сложных коммутаторах эти архитектуры применяются в различных комбинациях друг с другом.

В конструктивном исполнении коммутаторы делятся на следующие типы:

1. Автономные коммутаторы с фиксированным количеством портов. Используются в основном для организации небольших рабочих групп;

2. Модульные коммутаторы на основе шасси. Используются на магистральных сетях.

3. коммутаторы с фиксированным количеством портов, собираемые в стек. Это коммутаторы, которые могут работать автономно, так как выполнены в отдельном корпусе, но имеют специальные интерфейсы, которые позволяют их объединять в общую систему, работающую как единый коммутатор (образуют стек). Обычно такой специальный интерфейс представляет собой высокоскоростную шину. Стековые коммутаторы применяются для создания сетей рабочих групп и отделов.

Дополнительные функции коммутаторов:

Наиболее распространенные дополнительные функции коммутаторов, которые поддерживаются большинством производителей коммуникационного оборудования.

1) Поддержка алгоритма Алгоритма покрывающего дерева - (STA) позволяет коммутаторам автоматически определять древовидную конфигурацию связей в сети при произвольном соединения портов между собой.

2) Трансляция протоколов канального уровня. Коммутаторы могут выполнять трансляцию одного протокола канального уровня в другой, например Ethernet в FDDI, Fast Ethernet в Token Ring и т. п. При этом они работают по тем же алгоритмам, что и транслирующие мосты.

3) Возможности коммутаторов по фильтрации трафика. Многие коммутаторы позволяют администраторам задавать дополнительные условия фильтрации кадров наряду со стандартными условиями их фильтрации в соответствии с информацией адресной таблицы. Пользовательские фильтры предназначены для создания дополнительных барьеров на пути кадров, которые ограничивают доступ определенных групп пользователей к определенным службам сети.

4).Приоритетная обработка кадров. Коммутатор обычно ведет для каждого входного и выходного порта не одну, а несколько очередей, причем каждая очередь имеет свой приоритет обработки. При этом коммутатор может быть сконфигурирован, например, так, чтобы передавать один низкоприоритетный пакет на каждые 10 высокоприоритетных пакетов.

STP (Spanning Tree Protocol).

Один из методов, использующийся для повышения отказоустойчивости компьютерной сети, это Spanning Tree Protocol (STP) – протокол связующего дерева. Разработанный достаточно давно, он до сих пор остается актуальным. В сетях Ethernet, коммутаторы поддерживают только древовидные связи, которые не содержат петель. Это означает, что для организации альтернативных каналов требуются особые протоколы и технологии, выходящие за рамки базовых, к которым относится Ethernet.

Понятие петель

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

• Широковещательные штормы;

• Множественные копии кадров;

• Множественные петли.

Широковещательный шторм (рис.5.17.)

Распространение широковещательных сообщений в сетях с петлями представляет серьезную проблему. Предположим, что первый кадр, поступивший от узла 1, является широковещательным. Тогда все коммутаторы будут пересылать кадры бесконечно, как показано на рисунке используя всю доступную полосу пропускания сети и блокируя передачу других кадров во всех сегментах.

Рисунок 5.17 - Мостовые петли в среде прозрачных мостовых соединений

Множественные копии кадров

Еще одна проблема заключается в том, что коммутатор получает несколько копий одного кадра одновременно приходящих из нескольких участков сети. В этом случае таблица коммутации не сможет определить расположение устройства, потому что коммутатор будет получать кадр из нескольких каналов. Может случиться так, что коммутатор вообще не сможет переслать кадр, так как будет постоянно обновлять таблицу коммутации.

Множественные петли

Одна из самых сложных проблем – это множественные петли, образующиеся в объединенной сети. Возможно появление петли внутри других петель. Если за этим последует широковещательный шторм, то сеть не сможет выполнять коммутацию кадров. Для решения этих проблем и был разработан протокол связующего дерева STP использующий алгоритм STA (Spanning Tree Algorithm). STA позволяет коммутаторам автоматически определять древовидную конфигурацию связей в сети при произвольном соединении портов между собой.

Коммутаторы, поддерживающие протокол STP автоматически создают древовидную конфигурацию связей без петель в компьютерной сети. Такая конфигурация называется покрывающим деревом - Spanning Tree (иногда ее называют остовым деревом). Конфигурация покрывающего дерева строится коммутаторами автоматически с использованием обмена служебными пакетами.

Рассмотрим подробно работу протокола STP.

Алгоритм STA требует, чтобы каждому мосту был присвоен идентификатор. Идентификатор моста– 8-байтное поле, которое состоит из 2-х частей: 2-байтного приоритета, назначенного администратором и 6 байтного МАС-адреса его блока управления. Каждому порту также назначается уникальный идентификатор в пределах моста, как правило, это его МАС-адрес. Каждому порту моста ставится в соответствие стоимость маршрута, соответствующая затратам на передачу кадра по локальной сети через данный порт.

Первый шаг. Процесс вычисления связующего дерева начинается с выбора корневого моста (root switch), от которого будет строиться дерево. В качестве корневого моста выбирается коммутатор с наименьшим значением идентификатора. Первоначально, по умолчанию, все коммутаторы имеют одинаковое значение приоритета, равное 32768 (8000h). В этом случае, корневой коммутатор определяется по наименьшему МАС-адресу. Иногда, такой выбор может оказаться далеко не рациональным. Для того, чтобы в качестве корневого моста было выбрано определенное устройство (исходя из требуемой структуры сети), администратор может повлиять на процесс выборов, присвоив соответствующему коммутатору наименьший идентификатор вручную.

Второй шаг работы STP – выбор корневого порта (root port) для каждого из остальных коммутаторов сети. Корневой порт коммутатора – это порт, который имеет по сети кратчайшее расстояние до корневого коммутатора.

Третий шаг работы STP – определение назначенных портов.

Каждый сегмент в коммутируемой сети имеет один назначенный порт (designated port). Этот порт функционирует как единственный порт моста, который принимает пакеты от сегмента и передает их в направлении корневого моста через корневой порт данного коммутатора. Коммутатор, содержащий назначенный порт для данного сегмента называется назначенным мостом (designated bridge) этого сегмента. Назначенный порт сегмента имеет наименьшее расстояние до корневого моста, среди всех портов, подключенных к данному сегменту. Назначенный порт у сегмента может быть только один. У корневого моста все порты являются назначенными, а их расстояние до корня полагается равным нулю. Корневого порта у корневого моста нет.

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

В качестве расстояния в STA используется метрика стоимость пути (Path Cost) – она определяется как суммарное условное время на передачу пакета от порта корневого коммутатора до порта данного коммутатора. Условное время сегмента рассчитывается как время передачи одного бита информации через канал с определенной полосой пропускания. Таблица 5.1 показывает типичные стоимости пути в соответствии со стандартом IEEE 802.1d.

Таблица 5.1 Стоимость пути в протоколе IEEE 802.1d

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

BPDU (Bridge Protocol Data Unit).

Пакеты BPDU (рис.5.18.)содержат основную информацию, необходимую для построения топологии сети без петель:

• Идентификатор коммутатора, на основании которого выбирается корневой коммутатор;

• Расстояние от коммутатора-источника до корневого коммутатора (стоимость корневого маршрута);

• Идентификатор порта;

• Пакеты BPDU помещаются в поле данных кадров канального уровня, например, кадров Ethernet.

Коммутаторы обмениваются BPDU через равные интервалы времени (обычно 1-4с). В случае отказа корневого моста (что сигнализирует об изменении топологии) соседние коммутаторы, не получив пакет BPDU в течение заданного времени (Max Age), начинают пересчет cвязующего дерева.

Пакет BPDU имеет следующие поля (рис.5.18.)

• Идентификатор (ID) версии протокола STA - 2 байта. Коммутаторы должны поддерживать одну и ту же версию протокола STA, иначе может установиться активная конфигурация с петлями;

ID версии протокола STA

Версия

Тип

BPDU

Флаг

ID корневого коммутатора

Расстояние до корня

ID коммутатора

ID

порта

Время жизни сообщения

Максимальное время жизни сообщения

Интервал

hello

Задержка смены состояния

Рисунок 5.18. Формат конфигурационного BPDU

• Версия протокола STP – 1 байт;

• Тип BPDU - 1 байт. Существует два типа BPDU - конфигурационный BPDU, то есть заявка на возможность стать корневым коммутатором, на основании которой происходит определение активной конфигурации, и BPDU уведомления о реконфигурации, которое посылается коммутатором, обнаружившим событие, требующее проведения реконфигурации - отказ линии связи, отказ порта, изменение приоритетов коммутатора или портов;

• Флаги - 1 байт. Один бит содержит флаг изменения конфигурации, второй бит - флаг подтверждения изменения конфигурации;

• Идентификатор (ID корневого коммутатора - 8 байтов;

• Расстояние до корня - 2 байта;

• Идентификатор (ID) коммутатора - 8 байтов;

• Идентификатор порта - 2 байта;

• Время жизни сообщения - 2 байта. Измеряется в единицах по 0.5 с, служит для выявления устаревших сообщений. Когда пакет BPDU проходит через коммутатор, тот добавляет ко времени жизни пакета время его задержки данным коммутатором;

• Максимальное время жизни сообщения - 2 байта. Если пакет BPDU имеет время жизни, превышающее максимальное, то он игнорируется коммутаторами;

• Интервал hello (время приветствия), через который посылаются пакеты BPDU корневым коммутатором;

• Задержка смены состояний - 2 байта. Минимальное время перехода портов коммутатора в активное состояние. Такая задержка необходима, чтобы исключить возможность временного возникновения альтернативных маршрутов при неодновременной смене состояний портов во время реконфигурации.

Пакет BPDU уведомления о реконфигурации (см. Рис.5.19) имеет следующие поля:

• Идентификатор версии протокола STA - 2 байта;

• Версия протокола STP – 1 байт;

• Тип BPDU - 1 байт с установленным флагом реконфигурации топологии.

1…2

3

4

Идентификатор версии протокола STA

Версия протокола STP

Тип BPDU

Рисунок 5.19.Формат пакета BPDU уведомления о реконфигурации

Пример работы STP

Для примера рассмотрены 3 коммутатора, подключенные с образованием петли (см. Рис. 5.20.). Таким образом, в сети могут возникнуть проблемы с зацикливанием пакетов. Например, пусть какой-либо компьютер в сети LAN1 посылает широковещательный пакет. В соответствии с логикой работы коммутаторов, коммутатор А передаст этот пакет во все

подключенные к нему сегменты, за исключением того, из которого он пришел. Коммутатор B получит этот пакет и передаст его коммутатору С. Коммутатор С, также получит широковещательный пакет от коммутатора А и передаст его коммутатору В. Тот в свою очередь, вернет его коммутатору A и так далее. Пакеты могут ходить по сети бесконечно долго, что может привести к нарушению работоспособности сети. В этом примере с помощью STP блокируется соединение между коммутаторами С и B.

Итак, после включения питания и загрузки каждый коммутатор начинает считать себя корневым. Когда он генерирует BPDU (через интервал hello), он помещает свой идентификатор в поле «идентификатор корневого коммутатора», расстояние до корня устанавливается в 0, а в качестве идентификатора порта указывается идентификатор того порта, через который будет передаваться BPDU.

Рисунок 5.20. - Схема перед применением Spanning Tree

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

Рассмотрим выборы корневых портов коммутаторов на примере (см. Рисунок 4). Когда коммутатор A (корневой мост) посылает BPDU, они содержат стоимость пути к корневому мосту равную 0. Когда коммутатор B получает эти BPDU, он добавляет стоимость пути Port 1 (4) к стоимости, указанной в полученном BPDU (0). Коммутатор B затем использует значение 4 и посылает BPDU со стоимостью пути к корню равной 4 через Port 3 и Port 2.

Когда коммутатор C получает BPDU от коммутатора B, он увеличивает стоимость пути к корню до 23 (4 + 19). Однако коммутатор C также получает BPDU от корневого коммутатора А через Port 1. Стоимость пути к корню в этом BPDU равна 0 и коммутатор C увеличивает ее стоимость до 4 (стоимость его Port 1 равна 4). Теперь коммутатор C должен выбрать единственный корневой порт. Коммутатор C выбирает Port 1 в качестве корневого, поскольку его стоимость пути к корню меньше. После этого коммутатор C начинает объявлять стоимость пути до корня равную 4 нижележащим коммутаторам.

Выборы корневого порта коммутатора В происходят аналогично и корневым портом для него становится Port 1 со стоимостью 4.

Итак, после включения питания и загрузки каждый коммутатор начинает считать себя корневым. Когда он генерирует BPDU (через интервал hello), он помещает свой идентификатор в поле «идентификатор корневого коммутатора», расстояние до корня устанавливается в 0, а в качестве идентификатора порта указывается идентификатор того порта, через который будет передаваться BPDU.

Рисунок 5.21. – После применения Spanning Tree

Кроме этого, коммутаторы выбирают для каждого сегмента сети назначенный порт. Для этого они исключают из рассмотрения свой корневой порт, а для всех своих оставшихся портов сравнивают принятые по ним минимальные расстояния до корня с расстоянием до корня своего корневого порта. Если у своего порта это расстояние меньше принятых, то это значит, что он является назначенным портом. Когда имеется несколько портов с одинаковым кратчайшим расстоянием до корневого коммутатора, то для выбора назначенного порта сегмента STP принимает решение на основе последовательного сравнения идентификаторов мостов и идентификаторов портов. Все порты, кроме назначенных переводятся в заблокированное состояние и на этом построение покрывающего дерева заканчивается. На коммутаторе В корневым портом является Port 1 (стоимость 4). Поэтому для сегмента коммутатор А – коммутатор В, назначенным портом будет Port 1 коммутатора А. На коммутаторе С корневым портом является Port 1 (стоимость 4). Поэтому для сегмента коммутатор А – коммутатор С, назначенным портом будет Port 2 коммутатора А. В сегменте коммутатор В – коммутатор С оба порта Port 3 и Port 2 имеют одинаковую стоимость пути, равную 23. В этом случае STP выберет назначенный порт сегмента на основе сравнения идентификаторов мостов. Поскольку идентификатор коммутатора С (20) меньше идентификатора коммутатора В (30), то назначенным портом для этого сегмента станет Port 2 коммутатора С. Port 3 на коммутаторе В заблокируется (см. Рис. 5.21).

Таким образом, в процессе построения топологии сети каждый порт коммутатора проходит несколько стадий (см. Рис.5.22.):

1. Порт активен или инициализация порта;

2. Порт отключен администратором или сбой порта;

3. Порт выбран в качестве корневого или назначенного порта;

4. Порт заблокирован;

5. Истек таймер смены состояний.

Blocking - При инициализации коммутатора все порты (за исключением отключенных) автоматически переводятся в состояние «Заблокирован». В этом случае порт принимает и обрабатывает только пакеты BPDU. Все остальные пакеты отбрасываются.

Рисунок 5.22. – Состояние портов в STP

Listening (прослушивание) - в этом состоянии порт продолжает принимать, обрабатывать и ретранслировать только пакеты BPDU. Из этого состояния порт может перейти в состояние «Заблокирован», если получит BPDU с лучшими параметрами, чем его собственные (расстояние, идентификатор коммутатора или порта). В противном случае, при истечении таймера смены состояний, порт перейдет в следующее состояние «Обучение».

Learning (обучение) – порт начинает принимать все пакеты и на основе адресов источника строить таблицу коммутации. Порт в этом состоянии все еще не продвигает пакеты. Порт продолжает участвовать в работе алгоритма STA, и при поступлении BPDU с лучшими параметрами переходит в состояние «Заблокирован». В противном случае, при истечении таймера смены состояний, порт перейдет в следующее состояние «Продвижение».

Forwarding (продвижение) - в этом состоянии порт может обрабатывать пакеты данных в соответствии с построенной таблицей коммутации. Также продолжают приниматься, передаваться и обрабатываться пакеты BPDU.

Disable (отключен) – в это состояние порт переводит администратор. Отключенный порт не участвует ни в работе протокола STP, ни в продвижении пакетов данных. Порт можно также вручную включить и он сначала перейдет в состояние Blocking. В процессе нормальной работы корневой коммутатор продолжает генерировать служебные пакеты BPDU, а остальные коммутаторы продолжают их принимать своими корневыми портами и ретранслировать назначенными. Если по истечении максимального времени жизни сообщения (по умолчанию — 20 с) корневой порт любого коммутатора сети не получит служебный пакет BPDU, то он инициализирует новую процедуру построения покрывающего дерева. Коммутаторы D-Link также поддерживают протокол Rapid STP (IEEE 802.1w), который обладает лучшим u1074 временем сходимости по сравнению с STP (меньше 1 секунды).

Ограничения в сетях с использованием повторителей, мостов и коммутаторов.

  1. Не должно быть петель, т. е. между отправителем и получателем должен быть единственный путь.

  2. Сегменты слабо изолированы друг от друга, т. е. не защищены от широковещательных сообщений со стороны отдельных ПК в сети.

  3. Нельзя управлять трафиком (т. е. обменом данными) на основании информации, содержащейся в этих данных.

Эти недостатки можно устранить в случае применения маршрутизатора, они используется в больших сетях, которые в свою очередь могут состоять из более мелких составных частей (подсетей).

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