Олифер В.Г., Олифер Н.А. - Компьютерные сети. Принципы, технологии, протоколы (4-ое изд.) - 2010 - обработка (953099), страница 113
Текст из файла (страница 113)
Сегмент может быть разделяемым (во время создания алгоритма 5ТА это был единственный тип сегмента) и включать устройства физического уровня — повторители/концентраторы, существование которых коммутатор, будучи устройством канального уровня, «не замечаеть. Сегмент также может представлять собой двухточечный канал, в коммутируемых локальных сетях зто единственный тип сегмента. 450 Глава 14. Интеллектуальные функции коммутаторов [ ивйф — повторители Š— дуплексный порт Н вЂ” полудуплексный порт [~ Д вЂ” коммутаторы — сегменты Рис. 14.1.
Формализованное представление сети в соответствии с алгоритмом ЗТА Протокол покрывающего дерева обеспечивает построение древовидной топологии связей с единственным путем минимальной длины от каждого коммутатора и от каждого сегмента до некоторого выделенного корневого коммутатора — корня дерева. Единственность пути гарантирует отсутствие петель, а згинимальностпь расстояния — рациональность маршрутов следования графика от периферии свти к ее магистрали, роль которой исполняет корневой коммутатор.
В качестве расстояния в БТА используется метрика — традиционная для протоколов маршрутизации величина, обратно пропорциональная пропускной способности сегмента. В БТА метрика определяется также как условное время передачи бипга сегмелгпом. В версии 802. Ю- 1998 эта величина является 16-разрядной, а в версии 802.1Р-2004 — 32-разрядной. В версии 1998 года выбраны следующие значения метрики: 10 Мбит/с — 100, 100 Мбит/с— 19, 1 Гбит/с — 4, 10 Гбит/с — 2. В текущей версии 802.1Р-2004 используются такие значения метрик, которые расширяют диапазон скоростей сегментов до 10 Тбит/с (то есть с большим запасом относительно сегодняшнего уровня максимальной для ЕгЬегпег скорости в 10 Гбит/с)~давая такому сегменту значение 2; соответственно сегмент 100 Гбит/с получает значение 200, 10 Гбит/с — 2000, 1 Гбит/с — 20 000, 100 Мбит/с — 200 000, а 10 Мбит/с — 2 000 000.
Идентификатор коммутатора — это 8-байтовое число, шесть младших байтов которого составляют МАС-адрес его блока управления, отрабатывающего алгоритм БТА (напомним, 461 Алгоритм покрывающего дерева что портам коммутаторов и мостов для выполнения своей основной функции МАС-адреса не требуются), а два старших байта называются приоритетом коммутатора (значение по умолчанию равно 32 768) и конфигурируются вручную, что, как мы увидим далее, позволяет администратору сети влиять на процесс выбора корневого коммутатора. Корневой порт коммутатора — это порт, который имеет кратчайшее расстояние до корневого коммутатора (точнее, до любого из портов корневого коммутатора).
Идентификатором порта служит 2-байтовое число. Младший байт содержит порядковый номер данного порта в коммутаторе, а значение старшего байта является приоритетом (значение по умолчанию равно 128) и задается администратором. Назначенным коммутатором сегмента объявляется коммутатор, у которого расстояние до корневого коммутатора является минимальным. Назначенный порт — это порт назначенного коммутатора сегмента, подключенный к данному сегменту. Протокольными единицами данных моста (Вг!с!Ке Ргогосо! Вайа ()п(ц ВРОЕ называются специальные пакеты, которыми периодически обмениваются коммутаторы для автоматического определения конфигурации дерева.
Пакеты ВАШ переносят данные об идентификаторах коммутаторов и портов, а также о расстоянии до корневого коммутатора. Существует два типа сообщений, которые переносят пакеты ВР1)(): конфигурационные оюбщения, называемые также сообщениями Нейо, и сообщения с уведомлениями об изменении конфигурации. Для доставки ВРП(1 используется групповой адрес 01:80:С2:00:ОО:00, позволяющий организовать эффективный обмен данными.
Интервал НеИо — это интервал между генерацией сообщений Нейо; он настраивается администратором и обычно составляет от 1 до 4 секунд; по умолчанию — 2 секунды. Три этапа построения дерева На рнс. 14.2 приведен пример сети из стандарта 802.1Р-2004, который иллюстрирует работу протокола ЗТР Мы также будем использовать этот пример в своем описании.
В этом примере сеть построена на восьми коммутаторах, которые имеют идентификаторы со значениями от 111 до 888 (для удобства записи здесь используются сокращенные до 3-х разрядов значения МАС-адресов коммутаторов). Все коммутаторы соединены друг с друюм двухточечными связями, которые образуют сегменты А-л1. Порты 3 и 4 коммутаторов с 555 по 888 соединены с конечными узлами сети, то есть компьютерами (на рисунке не показаны). Все связи в сети — это связи со скоростью 100 Мбит/с (Газг Ег!гегпес). Алгоритм ЗТА определяет активную конфигурацию сети за три этапа Первый этап — определение корневого коммутатора, от которого строится дерево. В качестве корневого коммутатора выбирается коммутатор с наименьшим значением айентификаэюра. В исходном состоянии каждый коммутатор считает себя корневым, поэтому он генерирует и передает своим соседям сообщения Нейо, в которых помещает свой идентификатор в качестве идентификатора корневого коммутатора.
Как только коммутатор получает от соседа сообщение Нейо, в котором содержится идентификатор корневого коммутатора, меньший его собственного, он перестает считать себя корневым конмутатором и генерировать свои сообщения Нейо, но начинает ретранслировать сообщения Нейо, получаемые от соседей. 45г Глава 14. Интеллеюуальные функции коммутаторов Рис. 14.2. Пример сети, иллюстрирующей работу ЗТР Если администратор не вмешается в этот процесс, корневой коммутатор выбирается достаточно случайным образом — им станет устройство с минимальным МАС-адресом блока управления. Очевидно, что такой выбор может оказаться далеко не рациональным.
Например, при выборе коммутатора 555 в качестве корневого значительная часть графика проходила бы через большое количество транзитных сегментов и коммутаторов. Поэтому пускать данный процесс «на самотеке администратору не стоит — лучше в него вмешаться и назначить корневой коммутатор осознанно (путем соответствующего конфигурирования старших байтов идентификаторов коммутатора), чтобы выбранный коммутатор действительно занимал центральное место в соединениях сегментов.
В нашем примере мы предполагаем, что администратор не стал менять приоритеты коммутаторов, так чтоу всех коммутаторов они остались равными значению 32 768 (значение по умолчанию), и корневым коммутатором стал коммутатор с идентификатором 111. Второй этап — выбор корневого порта для каждого коммутатора. Корневым портом коммутатора является тот порт, расстояние от которого до корневого коммутатора является минимальным. Сам корневой коммутатор корневых портов не имеет.
Аэгоритм покрывающего дерева Для определения корневого порта каждый коммутатор использует пакеты Нейо, ретранслнруемые ему другими коммутаторами. На основании этих пакетов каждый коммутатор определяет минимальные расстояния от всех своих портов до корневого коммутатора. При ретрансляции сообшения Не!!о каждый коммутатор увеличивает указанное в сообщении Расстояние до корня на метрику того сегмента, из которого принят данный пакет. Тем саиын в пакете Нейо по мере прохождения через коммутаторы наращивается поле, показывающее расстояние до корневого коммутатора. Например, если считать, что все сегменты в рассматриваемом примере являются сегментами Ейегпес со скоростью 100 Мбит/с, то коммутатор 222, приняв из сегмента А пакет Не!!о со значением расстояния, равным О, увеличивает его на 200 000 условных единиц (если коммутатор работает с величинами ветряки, рекомендованными версией стандарта БТР от 2004 года).
Ретранслируя пакеты, каждый коммутатор для каждого своего порта запоминает минивэльное расстояние до корня, встретившееся во всех принятых этим портом пакетах Нейо. По завершении процедуры определения конфигурации покрываюшего дерева каждый коммутатор находит свой корневой порт (с минимальным расстоянием до корня). Прн равных метриках для разрешения неоднозначности к процедуре выбора минимального Расстояния привлекаются значения идентификаторов коммутаторов и портов. Предпоэтенне отдается портам и коммутаторам с наименьшими идентификаторами. Например, у коммутатора 222 порты 1 и 2 находятся на одинаковом расстоянии до корневого коммутатора 111 — оба эти порта непосредственно связаны через сегменты А и В с коммутатором 111, а значит, получают пакеты Не!!о с метрикой, равной О. Так как идентификатор порта 1 веньше идентификатора порта 2, то корневым портом коммутатора 222 выбирается порт 1.
По анзлогичной причине корневым портом коммутатора 555 становится порт 1, а не порт 2. Оба эти порта получают сообщения Не!!о, генерируемые корневым коммутатором 111, с наименьшим значением метрики 200 000. Порт 1 получает такие сообщения по маршругу: порт 1 коммутатора 111 — сегмент С вЂ” порт 1 коммутатора 333 — порт 6 коммутатора 333 — сегмент С, соответственно порт 2 получает их по маршруту: порт 3 коммутатора 1! 1 — сегмент Š— порт 1 коммутатора 444 — порт 6 коммутатора 444 — сегмент й Уремий этап — выбор назначенных коммутаторов и портов для каждого сегмента сети. Нззваченным является тот коммутатор (из числа коммутаторов, непосредственно подкопченных к данному сегменту), у которого расстояние до корневого моста является виннмальным (точнее, расстояние от корневого порта этого коммутатора до корневого коммутатора).