Рисунок 4.1.9.3. Топология сети DQDB
Каждый из узлов подключен к обеим шинам. По каждой из шин всегда циркулирует фиксированное число контейнеров. Содержимое контейнеров может передаваться с одной шины на другую. В сети DQDB используются следующие типы сегментов:
Поле MID остается идентичным для всех DQDB ячеек сегментированного МАС-кадра. Поле ACF содержит биты busy и request, которые используются в рамках механизма qpsx. Бит busy=1 указывает на то, что ячейка занята. Бит request=1 устанавливается узлом, который ждет возможности начать передачу. В каждом узле имеется счетчик запросов RC(request counter), который фиксирует число узлов, ожидающих передачи и стоящих в очереди впереди данного узла. Содержимое счетчика увеличивается всякий раз, когда по шине А проходит контейнер с битом busy=1. Счетчик декрементируется при появлении на шине Б контейнера со свободным битом request. Когда станция сама намеривается передать кадр, содержимое RC переносится в реверсивный счетчик DC, а в регистр RC заносится нуль. Код в DC уменьшается на единицу при получении контейнера с битом busy=1. DC определяет положение запроса в очереди (нуль соответствует началу очереди). Если получен контейнер с request=0 и DC=0, узел может передать ячейку по данной шине. Каждый узел может осуществлять передачу и прием по любой из шин А и Б. В сети DQDB предусмотрено 4 уровня приоритетов и каждый узел поддерживает до 5 очередей с RC и DC счетчиками для каждой из очередей. Для индикации приоритета в поле ACF предусмотрено 4 двоичных разряда (R1, R2, R3 и R4). Высшему приоритету соответствует R4. Схема сегментирования MAC-кадра при передаче с помощью DQDB ячеек показана на Рисунок 4.1.9.4.