EE535 - Project 4

DQDB Bus Contention Resolution Interactive Applet


2. DQDB Bus Access Protocols

This section will provide a detailed description of how the dual bus system schedules accesses to the network. An overview of the modes of access control will be included in this section as well.

DQDB uses two buses to which every station is connected. In order to transmit a piece of data, a station must first gain access to the bus. This is accomplished by using one of two different modes of access control: queued arbitrated (QA) and prearbitrated (PA), each of which uses QA and PA cells (slots) respectively. It is important to point out that QA is used to provide non-isochronous services (data traffic) and PA is used in support of isochronous services (voice)

Each bus carries data flow in one direction only. If a station wishes to transfer data in the direction of bus "A", for instance, it must first send a request back in the opposite direction through the other bus (bus "B"). This request will be seen by all the other hosts downstream on bus "B" as the cell travels along. Upon seeing this request, each host will increment their "request" counter to keep track of how many hosts are being queued to access bus "A".

Figure 1. Basic Elements in the DQDB Access Protocol

These "request" counters, in conjunction with a "countdown" counter, are used to determine the order in which each host will gain access to bus "A".

This type of access to the bus lends itself to establishing levels of priority and in fact, that is the case with the DQDB Access Protocol. In the QA access mode there are two different cases: Single priority QA access and Priority Distributed QA access.

Single Priority QA Access

In this case there is a single queue in each Access Unit (AU) because every QA Segment has the same priority. When an AU has a QA Segment to transmit, it first has to reserve a slot for transmission. Thus it issues a single REQUEST (REQ) bit on the reverse bus. Then, it waits for the next free REQ bit and it writes to it making all upstream AUs "aware" of the presence of an additional QA segment queued for access to the bus.

The queue is controlled by counters in each node. Each node has two different counters. One keeps track of the number of QA segments queued downstream from itself for access to the forward bus (RQ Counter) while the other keeps track of the number of downstream segments that are queued ahead of it (CD Counter).

Each time a REQ passes on the reverse bus, the RQ counter of each node is incremented by one. On the other hand, each time an empty slot passes by a node that is not queued to transmit, one REQ in the RQ counter gets canceled. The reasoning behind this is that the empty slot will be used by a downstream AU that has QA segments queued for transmission.

Figure 2. Node not queued to send on Bus A

In addition to sending the REQ for the reverse bus, the AU having a QA segment to send transfers the current value of the RQ counter to the CD counter. For every empty slot that passes the node on bus A, the CD counter gets decremented by one. When the CD counter equals zero, the node can send the segment on the next empty slot that passes on bus A. Finally, any requests that are detected on bus B are added to the RQ counter while the node waits to send its segment.

Figure 3. Node queued to send on Bus A

It is important to point out that except for bandwidth balancing (see [1] for a more detailed treatment of this subject) a slot is never wasted if there are queued segments waiting to be transmitted. This is guaranteed by the CD counter which represents the number of segments ahead in the distributed queue. Thus, since at any point in time one segment must have queued first then it is always guaranteed that at least one of the AUs has a CD counter equal to zero.(Figures and discussion are based on the treatment by [1])

Priority Distributed QA Access

The distributed queuing protocol supports different levels of priority. Thus, in principle the protocol behaves the same as in the single priority case, except for the fact that now there are several queues (as many an priority levels). In addition, nodes can not use empty slots for a given priority segment if there are requests at higher priority levels. Finally, notice that RQ counters will notice REQs at equal and higher priority levels as well as the CD counters will get decremented each time they see an empty slot pass by and incremented for requests received at higher priority levels.

Fri Apr 11 14:36:41 EDT 1997


Back to the DQDB Bus Contention Resolution Interactive Applet
Project Homepage. HW4 - Spring 97.

Back to the WPI EE535
Telecommunications and Transmission Technologies
Course Homepage