Алгоритм Source-Route Bridging (SRB) (об'единение с помощью мостов "источник-маршрут") был разработан IBM и предложен комитету IEEE 802.1 в качестве средства об'единения локальных сетей с помощью мостов. После того, как комитет предпочел другой конкурирующий стандарт (смотри Главу 29 "Прозрачное об'единение с помощью мостов" о стандарте ТВ), сторонники SRB предложили его комитету IEEE 802.5, который впоследствии включил его в спецификацию локальной сети IEEE 802.5/Token Ring.
За первым предложением IBM последовало предложение нового стандарта об'единения с помощью мостов в комитет IEEE 802: Source-Route Transparent (SRT) (Прозрачное об'единение "источник-маршрут") Подробная информация о SRT дается в Главе 31 "Mixed-Media Bridging". SRT полностью устраняет мосты "источник-маршрут" (SRB), предлагая взамен два типа мостов LAN-TB и SRT. Несмотря на то, что SRT получил одобрение, мосты SRB попрежнему широко применяются в сетях.
Свое название мосты SRB получили потому, что они предполагают размещение полного маршрута от источника до пункта назначения во всех межсетевых (LAN) блоках данных, отправляемых источником. SRB хранят и продвигают эти блоки данных в соответствии с указаниями о маршруте, содержащимися в соответствующем поле блока данных. На Рис. 30-1 представлен образец сети SRB.
Предположим, что Хост Х на Рис. 30-1 решила отправить блок данных в Хост Y. Вначале машина Х не знает, где находится машина Y-в той же или в другой LAN. Чтобы определить это, она отправляет тестовый блок данных. Если этот блок данных возвращается к ней без положительного указания о том, что машина Y видела его, то она должна предположить, что машина Y находится в отдаленном сегменте.
Чтобы точно определить местоположение отдаленной машины Y, машина Х отправляет блок данных разведчика (explorer). Каждый мост, получающий этот блок данных (в нашем примере это Мосты 1 и 2), копирует его во все порты отправки сообщений. По мере продвижения блоков данных-разведчиков через об'единенную сеть они дополняются маршрутной информацией. Когда блоки данных-разведчики машины Х доходят до машины Y, то машина Y отвечает каждому отдельно, используя накопленную маршрутную информацию. После получения всех ответных блоков данных машина Х может выбрать маршрут, базирующийся на заранее установленном критерии.
В примере, приведенном на Рис. 30-1, результатом этого процесса будут два маршрута:
Машина Х должна выбрать один из этих двух маршрутов. Спецификация IEEE 802.5 не назначает критерий, который машина Х должна использовать для выбора маршрута; однако в ней имеется несколько предложений, которые перечислены ниже:
После того, как маршрут выбран, он включается в блоки данных, предназначенных для машины Y, в форме поля маршрутной информации (routing information field - RIF). RIF включается только в блоки данных, предназначенных для других LAN. Наличие маршрутной информации в блоке данных указывается путем установки самого значащего бита, называемого битом индикатора маршрутной информации (routing information indicator - RII), в поле адреса источника.
Структура IEEE 802.5 RIF представлена на Рис. 30-2.
Подполе типа (type) в RIF указывает на количество узлов, в которые должен быть отправлен данный блок данных: в один узел, в группу узлов, включающих в себя связующее дерево данной об'единенной сети, или во все узлы. Первый тип называется "специально направленным" (specifically routed) блоком данных, второй тип - "разведчиком связующего дерева" (spanning-tree explorer), а третий тип - "разведчиком всех трактов" (all-paths explorer). Разведчик связующего дерева может быть использован в качестве транзитного механизма для блоков данных с многопунктовой адресацией. Он может быть также использован в качестве замены разведчика всех трактов в запросах об исходящих маршрутах. В этом случае пункт назначения в ответ присылает разведчика всех трактов.
Подполе длины (length) обозначает общую длину RIF в байтах.
Бит D указывает направление движения блока данных (прямое или обратное).
Поле "самый большой" (largest) обозначает самый большой блок данных, который может быть обработан вдоль всего этого маршрута.
Полей описателя маршрута (route descriptor) может быть несколько. Каждое из них содержит пару "номер кольца/номер моста", которая определяет какую-нибудь часть маршрута. Таким образом, маршруты представляют собой просто чередующиеся последовательности номеров LAN и мостов, которые начинаются и заканчиваются номерами LAN.