Прозрачные мосты (TB) были впервые разработаны Digital Equipment Corporation в начале 1980 гг. Digital представила свою работу в IEEE, который включил ее в стандарт IEEE 802.1. TB очень популярны в сетях Ethernet/IEEE 802.3.
ТВ названы так потому, что их присутствие и работа являются прозрачными для хостов сети. После подачи питания на ТВ, они узнают о топологии сети путем анализа адреса источника блоков данных, приходящих из всех других подключенных сетей. Например, если мост видит, что какой-нибудь блок данных поступил на линию 1 из Хоста А, он делает вывод, что до Хоста А можно добраться через сеть, подключенную к линии 1. С помощью этого процесса ТВ строят таблицу, приведенную на Рис. 29-1.
Host address | Network number |
---|---|
15 | 1 |
17 | 1 |
12 | 2 |
13 | 2 |
18 | 1 |
9 | 1 |
14 | 3 |
. . . | . . . |
Мост использует свою таблицу в качестве базиса для продвижения трафика. Когда на один из интерфейсов моста принят блок данных, мост ищет адрес пункта назначения этого блока данных в своей внутренней таблице. Если таблица содержит взаимосвязь между адресом пункта назначения и любым из портов этого моста, за исключением того, в которой был принят этот блок данных, то блок данных продвигается из указанного порта. Если не найдено никакой взаимосвязи, то блок данных отправляется лавинной адресацией во все порты, кроме порта вхождения блока данных. Широковещательные сообщения и сообщения многопунктовой адресации также отправляются лавинной адресацией таким же образом.
ТВ успешно изолирует внутрисегментный трафик, тем самым сокращая трафик, видимый в каждом отдельном сегменте. Это обычно улучшает время реакции сети, видимое пользователю. Степень сокращения трафика и улучшения времени реакции зависят от об'ема межсегментного трафика относительно общего трафика, а также от об'ема широковещательного и многопунктового трафика.
Без протокола взаимодействия между мостами алгоритм ТВ отказывает, когда между двумя любыми LAN об'единенной сети имеется несколько трактов, включающих в себя мосты и локальные сети. Образование петли при об'единении с помощью мостов показано на Рис. 29-2 "Неправильное продвижение пакетов и узнавание информации в средах прозрачного об'единения".
Предположим, что Хост А отправляет блок данных в Хост В. Оба моста принимают этот блок данных и и делают правильный вывод о том, что машина А находится в сети 2. К сожалению, после того, как машина В примет два экземпляра блока данных машины А, оба моста снова получают этот же блок данных на свои интерфейсы с Сетью 1, т.к. все хосты принимают все сообщения широковещательных LAN. В некоторых случаях мосты затем изменяют свои внутренние таблицы, чтобы указать, что машина А находится в Сети 1. В этом случае при ответе машины В на блок данных машины А оба моста примут, а затем проигнорируют эти ответы, т.к. их таблицы укажут, что данный пункт назначения (машина А) находится в том же сегменте сети, что и источник этого блока данных.
Помимо основных проблем связности, подобных описанной выше, потенциально серьезной проблемой является размножение широковещательных сообщений в сетях с петлями. Обратившись снова к Рис. 29-2, предположим, что первоначальный блок данных машины А является широковещательным. Оба моста будут бесконечно продвигать этот блок данных, используя всю доступную ширину полосы сети и блокируя передачу других пакетов в обоих сегментах.
Топология с петлями, подобными изображенной на Рис. 29-2, может быть полезной, но также и потенциально вредной. Петля подразумевает существование нескольких трактов через об'единеннную сеть. В сети с несколькими трактами от источника до пункта назначения общая помехоустойчивость может увеличиться благодаря улучшенной топологической гибкости.
Алгоритм был разработан для того, чтобы сохранить преимущества петель, устранив их проблемы. Первоначально алгоритм был документирован корпорацией Digital - основным поставщиком Ethernet. Новый алгоритм, разработанный Digital, был впоследствии пересмотрен комитетом IEEE 802 и опубликован в спецификации IEE 802. 1d в качестве алгоритма STA.
STA предусматривает свободное от петель подмножество топологии сети путем размещения таких мостов, которые, если они включены, то образуют петли в резервном (блокирующем) состоянии. Порты блокирующего моста могут быть активированы в случае отказа основного канала, обеспечивая новый тракт через об'единенную сеть.
STA пользуются выводом из теории графов в качестве базиса для построения свободного от петель подмножества топологии сети. Теория графов утверждает следующее:
Первым шагом при вычислении связующего дерева является выбор корневого моста (root bridge), который представляет собой мост с наименьшим значением идентификатора моста. На Рис. 29-3 корневым мостом является Мост 1. Далее определяется корневой порт (root port) во всех остальных мостах. Корневой порт моста - это порт, через который можно попасть в корневой мост с наименьшими комбинированными затратами тракта. Эта величина (т.е. наименьшие комбинированные затраты тракта до корневого моста) называется затратами корневого тракта (root path cost).
И наконец, определяются назначенные мосты (designated bridges) и их назначенные порты (designated ports). Назначенный мост - это тот мост каждой локальной сети, который обеспечивает минимальные затраты корневого тракта. Назначенный мост локальной сети является единственным мостом, который позволяет продвигать блоки данных в ту локальную сеть (и из нее), для которой этот мост является назначенным. Назначенный порт локальной сети - это тот порт, который соединяет ее с назначенным мостом.
В некоторых случаях два или более мостов могут иметь одинаковые затраты корневого тракта. Например, на Рис. 29-3 как Мост 4, так и Мост 5 могут достичь Мост 1 (корневой мост) с затратами тракта 10. В этом случае снова используются идентификаторы моста, на этот раз для определения назначеных мостов. При выборе предпочтение отдано порту LAN V Моста 4 перед портом LAN V Моста 5.
При использовании этого процесса устраняются все мосты, непосредственно соединенные с каждой LAN, кроме одного; таким образом, удаляются все петли между двумя LAN. STA также устраняет петли, включающие более двух LAN, в то же время сохраняя связность. На Рис. 29-4 "Сеть ТВ после прогона STA" показаны результаты действия STA в сети, изображенной на Рис. 29-3. На Рис. 29-4 более четко показана топология дерева. Сравнение этого рисунка с рисунком сети до прогона STA показывает, что STA перевел в режим резерва как порты Моста 3 в LAN V, так и порты Moста 5 в LAN V.
Расчет связующего дерева имеет место при подаче питания на мост и во всех случаях обнаружения изменения топологии. Для расчета необходима связь между мостами связующего дерева, которая осуществляется через сообщения конфигурации (иногда называемые протокольными информационными единицами моста - bridge protocol data units, или BPDU). Сообщения конфигурации содержат информацию, идентифицирующую тот мост, который считается корневым (т.е. идентификатор корневого моста), и расстояние от моста-отправителя до корневого моста (затраты корневого тракта). Сообщения конфигурации также содержат идентификаторы моста и порта моста-отправителя, а также возраст информации, содержащейся в сообщении конфигурации.
Мосты обмениваются сообщениями конфигурации через регулярные интервалы времени (обычно 1-4 сек.). Если какой-нибудь мост отказывает (вызывая изменение в топологии), то соседние мосты вскоре обнаруживают отсутствие сообщений конфигурации и инициируют пересчет связующего дерева.
Все решения, связанные с топологией ТВ, принимаются логически. Обмен сообщениями конфигурации производится между соседними мостами. Центральные полномочия или администрация управления сетевой топологией отсутствуют.
Мосты ТВ обмениваются сообщениями конфигурации (configuration messages) и сообщениями об изменении в топологии (topology change). Мосты обмениваются сообщениями конфигурации для установления топологии сети. Сообщения об изменении топологии отправляются после обнаружения какого-нибудь изменения в топологии для указания того, что должен быть произведен повторный прогон STA.
Формат сообщения конфигурации IEEE 802.1d представлен на Рис. 29-5.
Первым полем сообщения конфигурации ТВ является поле идентификатора протокола (protocol identifier), которое содержит нулевое значение.
Вторым полем в сообщении конфигурации ТВ является поле версии (version), которое содержит нулевое значение.
Третьим полем в сообщении ТВ является поле типа сообщения (message type), которое содержит нулевое значение.
Четвертым полем в сообщении конфигурации ТВ является однобайтовое поле флагов (flags). Бит ТС сигнализирует об изменении в топологии. Бит ТСА устанавливается для подтверждения приема сообщения конфигурации с установленным битом ТС. Другие шесть битов этого байта не используются.
Следующим полем в сообщении конфигурации ТВ является поле идентификатора корневого моста (root ID). Это 8-байтовое поле идентифицирует корневой мост путем перечисления его 2-байтового приоритета, за которым следует его 6-байтовый ID.
За полем ID корневого моста идет поле затрат корневого тракта (root path cost), которое содержит затраты тракта от моста, который отправляет конфигурационное сообщение, до корневого моста.
Далее идет поле идентификатора моста (bridge ID), которое идентифицирует приоритет и ID моста, отправляющего сообщение.
Поле идентификатора порта (port ID) идентифицирует порт, из которого отправлено конфигурационное сообщшение. Это поле позволяет обнаруживать и устранять петли, образованные несколькими подключенными мостами.
Поле возраста сообщения (message age) определяет промежуток времени, прошедшего с момента отправки корневым мостом конфигурационного сообщения, на котором базируется текущее конфигурационное сообщение.
Поле максимального возраста (maximum age) указывает, когда текущее конфигурационное сообщение должно быть стерто.
Поле времени приветствия (hello time) обеспечивает период времени между конфигурационными сообщениями корневого моста.
И наконец, поле задержки продвижения (forward delay) обеспечивает промежуток времени, в течение которого мосты должны выжидать, прежде чем перейти в новое состояние после изменения в топологии. Если переходы какого-нибудь моста происходят слишком быстро, то не все каналы сети могут оказаться готовыми для изменения их состояний, в результате чего могут появиться петли.
Сообщения о топологических изменениях состоят всего из 4 байтов. Они включают в себя поле идентификатора протокола (protocol identifier), которое содержит нулевое значение, поле версии (version), которое содержит нулевое значение и поле типа сообщения (message type), которое содержит значение 128.