Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича





4.7. Алгоритм связующего дерева

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

Для разрешения описанных проблем был разработан алгоритм связующего дерева (Spanning-Tree Algoritm) (STA). Он сохраняет преимущества петель, устранив их проблемы. Алгоритм опубликован в спецификации IEEE 802. 1d.

STA предусматривает свободное от петель подмножество топологии сети путем размещения таких мостов, которые, если они включены, то образуют петли в резервном (блокирующем) состоянии. Порты блокирующего моста могут быть активированы в случае отказа основного канала, обеспечивая новый тракт через объединенную сеть. Рис. 15 и рис. 16 объясняют, каким образом STA устраняет петли.


Рис. 15 Сеть до выполнения алгоритма связующего дерева

STA требует, чтобы каждому мосту был назначен уникальный идентификатор. Обычно этот идентификатор является одним из адресов МАС данного моста, который дополнен приоритетом. Каждому порту во всех мостах также назначается уникальный (в пределах этого моста) идентификатор (как правило, его собственный адрес МАС). И наконец, каждый порт моста взаимосвязан с затратами какого-нибудь тракта. Затраты тракта представляют собой затраты на передачу какого-нибудь блока данных в одну из локальных сетей через этот порт. На рис. 9 затраты трактов отмечены на линиях, исходящих из каждого моста. Затраты трактов обычно устaнaвливаются по умолчанию, но могут быть назначены вручную администраторами сети.

Первым шагом при вычислении связующего дерева является выбор корневого моста (root bridge), который представляет собой мост с наименьшим значением идентификатора моста. На рис. 15 корневым мостом является Мост 1. Далее определяется корневой порт (root port) во всех остальных мостах. Корневой порт моста - это порт, через который можно попасть в корневой мост с наименьшими комбинированными затратами тракта. Эта величина (т.е. наименьшие комбинированные затраты тракта до корневого моста) называется затратами корневого тракта (root path cost).

И, наконец, определяются назначенные мосты (designated bridges) и их назначенные порты (designated ports). Назначенный мост - это тот мост каждой локальной сети, который обеспечивает минимальные затраты корневого тракта. Назначенный мост локальной сети является единственным мостом, который позволяет продвигать блоки данных в ту локальную сеть (и из нее), для которой этот мост является назначенным. Назначенный порт локальной сети - это тот порт, который соединяет ее с назначенным мостом.

В некоторых случаях два или более мостов могут иметь одинаковые затраты корневого тракта. Например, на рис. 15 как Мост 4, так и Мост 5 могут достичь Мост 1 (корневой мост) с затратами тракта 10. В этом случае снова используются идентификаторы моста, на этот раз для определения назначеных мостов. При выборе предпочтение отдано порту LAN V Моста 4 перед портом LAN V Моста 5. При использовании этого процесса устраняются все мосты, непосредственно соединенные с каждой LAN, кроме одного; таким образом, удаляются все петли между двумя LAN. STA также устраняет петли, включающие более двух LAN, в то же время сохраняя связность. На рис. 16 "Сеть после выполнения алгоритма связующего дерева" показаны результаты действия STA в сети, изображенной на рис. 15. Сравнение двух рисунков показывает, что алгоритм перевел в режим резерва как порты Моста 3 в LAN V, так и порты Moста 5 в LAN V.


Рис. 16 Сеть после выполнения алгоритма связующего дерева

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

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

Содержание
  Назад                   Вперёд