Классическая версия STP

Протокол STP формализует сеть (рис. 1, а) в виде графа (рис. 1, б), вершинами которого являются коммутаторы и сегменты сети.

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

Рис. 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-байтовое число, шесть младших байтов которого составляют МАС-адрес его блока управления, отрабатывающего алгоритм 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 секунды.