MARCO TEÓRICO


El funcionamiento de las redes metropolitanas DQDB (Distributed Queue Dual Bus) se basa de manera aproximada y simplificada en el siguiente modelo:

Cada estación de la red está conectada a dos buses, ambos con direcciones de transmisión opuestas. En la cabeza de cada bus, un generador de slots (ranuras temporales) emite un tren continuo de celdas vacías (celda: unidad de datos de longitud fija). A su vez, cada celda recibida por una estación, es retransmitida sobre el mismo bus en el siguiente slot temporal, de manera que el tren de celdas de cada bus sufre un retardo de un slot en cada estación que atraviesa. Cuando una estación desea transmitir, espera que le llegue una celda vacía y deposita en ella los datos, pasando a transmitirla. Para simplificar el problema inicialmente se supondrá que efectivamente se escoge la primera celda que llega vacía, no obstante en una red DQDB real no es así. Por lo que en las sucesivas versiones se considerarán dos alternativas:

1) se transmite sobre la primera celda que llega vacía (de momento se supondrá que es así).

2) se dejan pasar unas cuantas celdas vacías antes de transmitir, utilizando el algoritmo de espera DQDB que se describirá más adelante.

Observar que si la estación destinataria está más a la derecha que la emisora, entonces la transmisión se realizará sobre el bus A (ver figura anterior). En caso contrario, estación destino a la izquierda, se transmitirá sobre el bus B. Esta celda será retransmitida por cada estación a la que llegue, hasta llegar a la estación destinataria. Cuando la estación destinataria recibe la celda tiene dos alternativas:

a) retransmite la celda sin modificarla (se supondrá de momento que es así).

b) "borra" la celda (p.e. la sustituye por una vacía) permitiendo un mejor aprovechamiento de los buses.

En el protocolo DQDB original se optó por la primera alternativa debido a razones de sencillez (se trata de una red de alta velocidad donde el tiempo entre celda y celda "no da para mucho"). No obstante, el estándar contempla un mecanismo de "reciclado" de celdas similar al que se estudiará aquí.

Cada celda consta de una cabecera y de un campo de datos (IEEE802.6 sección 6.2, pág. 113). En nuestro modelo simplificado la cabecera estará formada por los campos Ocupada, que permite distinguir las celdas que contienen datos de las vacías, Petición, que permite a una estación solicitar una celda vacía para transmitir, Origen, para identificar la estación origen de los datos y Destino, para identificar la estación destino de los datos. El contenido del campo de datos es indiferente para nuestros propósitos.

Se desea evaluar mediante simulación las prestaciones de este modelo simplificado de red. Dos de los parámetros cuyo estudio es más interesante son:


TIEMPO MEDIO DE SERVICIO: Para cada estación, medir el tiempo medio que transcurre desde que el Control de Acceso recibe del usuario una unidad de datos hasta que consigue enviarla, en función de la PG de los usuarios de cada estación. Lo que permitirá observar, en condiciones de carga elevada, la influencia que la posición de la estación tiene en este parámetro y la diferencia de comportamiento cuando se utilizan las alternativas (1) o (2).


TRÁFICO CURSADO: El número medio de celdas "nuevas" que admite la red por unidad de tiempo (esto es, el número medio de Controles de Acceso que consiguen transmitir por cada slot). Lo que permitirá observar, en condiciones de carga elevada, la influencia del mecanismo de "reciclado" de celdas (alternativa b).

 

VERSIONES DQDB:

Para todas las versiones, modelaremos el inicio y el final del flujo de datos de los buses mediante los bloques "Generador de Slots" y "Colector de Slots". El primero se encuentra al principio del bus y se encarga de generar y enviar una celda vacía por el bus cada ST unidades de tiempo. El segundo se encuentra al final del bus y actúa como sumidero de celdas.

Estos bloques los encapsularemos dentro de otro bloque llamado "Terminador", de forma que la red constará de dos terminadores. El terminador izquierdo, que encapsulará el Generador de Slots del bus A y el Colector de Slots del bus B; y el terminador derecho, que encapsulará el Colector de Slots del bus A y el Generador de Slots del Bus, tal como muestra la siguiente figura:

La estructura y comportamiento de estos tres bloques (Generador de slots, colector de slotsy terminador) es la misma en las 4 versiones.

Por otra parte, cada estación se compone de un bloque usuario, entidad generadora de datos, y dos controles de acceso, cada uno de ellos conectado a uno de los buses. Éstos últimos se encargan de gestionar el tráfico del bus al que están conectados y de transmitir los datos generados por el usuario.

No obstante, el comportamiento de estos bloques y la forma en que interactúan va a depender de la versión de que se trate:

VERSIÓN 1:

En esta primera aproximación suponemos que se transmite sobre la primera celda en llegar vacía y que no hay "reciclado" de celdas (alternativas (1) y (a)).

Cada estación se modela según el siguiente diagrama de bloques:

Asimismo, el comportamiento de los bloques que componen cada estación será como se describe a continuación:


Bloque Usuario:

Realiza en paralelo, de manera indefinida e independientemente, las siguientes dos tareas:

  • Espera durante un tiempo aleatorio, escoge un identificador de estación aleatoriamente, construye una unidad de datos con este identificador, y si es mayor que id lo emite por txA y si es menor por txB.
  • Siempre esta dispuesto a recibir por rxA o rxB (de momento solo actúa de sumidero de los datos que le entregan los controladores de acceso).


Bloque Control de Acceso:

Repite de manera indefinida los siguientes pasos:

  • Recibe una celda por entrada y si no es una celda vacía, envía inmediatamente sus datos al usuario por rx.
  • En el siguiente slot retransmite por []salida la anterior celda sin modificarla.
    Nota: El siguiente slot vendrá marcado por la recepción de una nueva celda por el bus correspondiente.
  • Además, en todo momento deberá estar listo para recibir una unidad de datos desde el usuario (por tx), en cuyo caso deberá depositar estos datos en la primera celda vacía que le llegue y marcarla como ocupada. Mientras tenga una transmisión pendiente no aceptara mas peticiones desde tx.


VERSIÓN 2

En esta segunda aproximación suponemos que se transmite sobre la primera celda en llegar vacía y que hay "reciclado" de celdas (alternativas (1) y (b)).

Se trata de una modificación de la versión 1 para incorporar el mecanismo de borrado de celdas, según el siguiente diagrama de bloques:

El comportamiento de los bloques que componen cada estación viene dado por las siguientes especificaciones:


Bloque Usuario:

Realiza en paralelo, de manera indefinida e independientemente, las siguientes dos tareas:

  • Espera durante un tiempo aleatorio, escoge un identificador de estación aleatoriamente, construye una unidad de datos con este identificador, y si es mayor que id lo emite por txA y si es menor por txB.
  • Espera recibir por rxA o rxB. Si la unidad de datos recibida tiene identificador de destino
    igual al suyo propio, entonces emite inmediatamente una orden de "borrado de celda" hacia el controlador de acceso que corresponda (por borrA si recibió por rxA, y por borrB en caso contrario).


Bloque Control de Acceso:

Repite de manera indefinida los siguientes pasos:

  • Recibe una celda por entrada y si no es una celda vacía, envía inmediatamente sus datos al usuario por rx.
  • Si antes del siguiente slot no se ha recibido por borr, retransmite por salida la anterior celda sin modificarla. Si se ha recibido por borr, se "reciclara" la celda marcándola como vacía antes de retransmitirla (su destinatario era esta estación, por tanto la "reciclamos").
    Nota: El siguiente slot vendrá marcado por la recepción de una nueva celda por entrada.
  • Además, en todo momento deberá estar listo para recibir una unidad de datos desde el usuario (por tx), en cuyo caso deberá depositar estos datos en la primera celda vacía que le llegue y marcarla como ocupada. Mientras tenga una transmisión pendiente no aceptará nuevas peticiones desde tx.


VERSIÓN 3

En esta tercera aproximación suponemos que se utiliza el algoritmo de espera DQDB y que no hay "reciclado" de celdas. (alternativas (2) y (a)).

Se trata nuevamente de una modificación de la versión 1 para incorporar en los controladores de acceso el algoritmo de espera de celdas vacías, según el siguiente diagrama de bloques:

El comportamiento de los bloques que componen cada estación será viene dado por las siguientes especificaciones:


Bloque Usuario:

Realiza en paralelo, de manera indefinida e independientemente, las siguientes dos tareas:

  • Espera durante un tiempo aleatorio, escoge un identificador de estación aleatoriamente, construye una unidad de datos con este identificador, y si es mayor que id lo emite por txA y si es menor por txB.
  • Siempre está dispuesto a recibir por rxA o rxB (de momento solo actúa de sumidero de los datos que le entregan los controladores de acceso).


Bloque Control de Acceso:

Repite de manera indefinida los siguientes pasos:

  • Recibe una celda por entrada:
    • Si está ocupada envía inmediatamente sus datos al usuario por rx.
    • Si está vacía y el contador CD es mayor que cero lo decrementará en una unidad; si por el contrario el contador CD es menor o igual que cero y no tiene datos pendientes incrementará el contador de celdas vacías; si por el contrario tiene datos pendientes los insertará en la celda y la marcará como ocupada (A partir de este momento el control de acceso puede aceptar nuevos datos desde rx). Nota: El siguiente slot vendrá marcado por la recepción de una nueva celda por el bus correspondiente.
    • Si la celda recibida está marcada con petición incrementa su contador de peticiones (contador RC asociado al bus opuesto); si no está marcada con petición y el contador de peticiones pendientes de envío es mayor que cero, marcará la celda con petición y decrementará dicho contador en una unidad.
  • Además, en todo momento deberá estar listo para recibir una unidad de datos desde el usuario (por tx). Mientras tenga datos pendientes no aceptará nuevas peticiones desde tx. Al aceptar datos recibidos por tx, solicitará por pet al otro controlador que envíe una petición "río arriba". Éste a su vez, cuando reciba dicha señal incrementará su contador de peticiones pendientes de envío y le pasará por rc el valor de su contador RC, valor que se utilizará para inicializar el contador de cuenta atrás CD, según la expresión: CD=RC(Control de Acceso Opuesto)-VACÍAS. A partir de ese momento, CD contiene el número de estaciones que hay por delante del control de acceso en la cola, es decir, el número de celdas vacías que deberá dejar pasar antes de transmitir.

VERSIÓN 4

En esta cuarta aproximación suponemos que se utiliza el algoritmo de espera DQDB y que hay "reciclado" de celdas. (alternativas (2) y (b)).

Se trata de una modificación de la versión 3 para Consiste en la versión 3 modificada para incorporar el mecanismo de “reciclado” de celdas., según el siguiente diagrama de bloques:

El comportamiento de los bloques que componen cada estación será viene dado por las siguientes especificaciones:


Bloque Usuario:

Realiza en paralelo, de manera indefinida e independientemente, las siguientes dos tareas:

  • Espera durante un tiempo aleatorio, escoge un identificador de estación aleatoriamente, construye una unidad de datos con este identificador, y si es mayor que id lo emite por txA y si es menor por txB.
  • Espera recibir por rxA o rxB. Si la unidad de datos recibida tiene identificador de destino
    igual al suyo propio, entonces emite inmediatamente una orden de "borrado de celda" hacia el controlador de acceso que corresponda (por borrA si recibió por rxA, y por borrB en caso contrario).


Bloque Control de Acceso:

Repite de manera indefinida los siguientes pasos:

  • Recibe una celda por entrada:
    • Si está ocupada envía inmediatamente sus datos al usuario por rx.
    • Si está vacía y el contador CD es mayor que cero lo decrementará en una unidad; si por el contrario el contador CD es menor o igual que cero y no tiene datos pendientes incrementará el contador de celdas vacías; si por el contrario tiene datos pendientes los insertará en la celda y la marcará como ocupada (A partir de este momento el control de acceso puede aceptar nuevos datos desde rx). Nota: El siguiente slot vendrá marcado por la recepción de una nueva celda por el bus correspondiente.
    • Si la celda recibida está marcada con petición incrementa su contador de peticiones (contador RC asociado al bus opuesto); si no está marcada con petición y el contador de peticiones pendientes de envío es mayor que cero, marcará la celda con petición y decrementará dicho contador en una unidad.
  • Si antes del siguiente slot no se ha recibido por borr, retransmite por salida la anterior celda sin modificarla. Si se ha recibido por borr, se "reciclará" la celda marcándola como vacía antes de retransmitirla (su destinatario era esta estación, por tanto la "reciclamos").
    Nota: El siguiente slot vendrá marcado por la recepción de una nueva celda por entrada.
  • Además, en todo momento deberá estar listo para recibir una unidad de datos desde el usuario (por tx). Mientras tenga datos pendientes no aceptará nuevas peticiones desde tx. Al aceptar datos recibidos por tx, solicitará por pet al otro controlador que envíe una petición "río arriba". Éste a su vez, cuando reciba dicha señal incrementará su contador de peticiones pendientes de envío y le pasará por rc el valor de su contador RC, valor que se utilizará para inicializar el contador de cuenta atrás CD, según la expresión: CD=RC(Control de Acceso Opuesto)-VACÍAS. A partir de ese momento, CD contiene el número de estaciones que hay por delante del control de acceso en la cola, es decir, el número de celdas vacías que deberá dejar pasar antes de transmitir.



Bibliografía y referencias:



Recomendaciones IEEE (The Institute of Electrical and Electronics Engineers):

  • 802.6-1994.pdf: ANSI/IEEE Std 802.6, 1994 Edition, “Part 6: Distributed Queue Dual Bus (DQDB) access method and physical layer specifications”.
  • 802.6j-1995.pdf: IEEE Std 802.6j-1995, “Supplement to Distributed Queue Dual Bus (DQDB) access method and physical layer specifications”.


Nota:
Para ver documentos .pdf necesitas el programa Adobe Acrobat Reader . Aquí hay una copia local (versión 5.0.5 win98-español).


Proyecto Fin de Carrera - Simulador didáctico de redes DQDB
Autor: Antonio Manuel Martínez Rojo