Definición de Control de Flujo
La meta más importante
en los protocolos de redes de comunicación es la de maximizar la
utilización de los recursos de la red, por ejemplo el ancho de banda,
a la vez que se comparten estos recursos de forma equitativa entre los
usuarios y/o aplicaciones. El control de flujo es el mecanismo que controla
la afluencia de tráfico dentro de la red y cuya función es
evitar y resolver congestiones, a la vez que se asegura una efectiva y
equitativa utilización entre las distintas sesiones.
La principal razón
en la utilización de control de flujo es reducir el tráfico
en exceso que entra a la red. Para lograr esto se utilizan métodos
de retro-alimentación ó feedback.
En redes ATM, la congestión
puede ser corta y frecuente o larga y torrencial. Sin embargo, no importa
como se genera la congestión, el control de flujo es diseñado
para reducir el tráfico que entra a la red y así aligerar
la congestión en un punto dentro de la red. Para proporcionar lo
que ATM promete, el control a utilizar debe ser simple, efectivo y equitativo.
Dos conceptos originalmente
pensados como Choke Packet y Backpressure fueron considerados por el ATM
Forum para la selección de un estándar. Estos métodos
son: el basado en créditos y el basado en tasa de bit.
Control de Flujo Basado en Créditos
El algoritmo basado en créditos
consiste en un lazo control por enlace físico entre dos conmutadores
ATM. Cada enlace consiste de un emisor y un receptor. Cada conmutador mantiene
una cola separada para cada VC (Circuito Virtual) donde fluye tráfico
ABR. El receptor observa el estado de la cola y determina el número
de celdas que puede recibir en ese VC. Este número es el llamado
"crédito". El emisor solo transmite tantas celdas como créditos
haya recibido.
Al iniciar la conexión,
el receptor informa al emisor del número de créditos que
tiene (ver Figura 1), así el emisor transmitirá tantas celdas
como créditos tenga hasta agotarlos, del mismo modo, el receptor,
una vez que haya enviado estas celdas río abajo y haya liberado
la cola, procederá a informarle al transmisor que tiene créditos
para transmitir. Al momento de experimentarse congestión en un conmutador,
este no podrá ofrecerle créditos al transmisor, haciendo
que este efecto se propague hasta la fuente de tráfico, evitando
pérdidas de celdas.
Este esquema permite una
utilización del 100% del enlace asegurando cero pérdida de
celdas por congestión, aunque la cantidad de memoria requerida dependerá
del número de conexiones y de la longitud de los enlaces.
Control de Flujo Basado en Tasa de Bit
El esquema basado en tasa
bit básicamente lo que hace es regular de forma activa la tasa de
transmisión de la fuente (lo que se le denomina Tasa de bit Permitida
ACR, (Allowed Cell Rate), mediante de un lazo cerrado de control a lo largo
de la conexión fuente-destino, a diferencia al basado en créditos,
donde el lazo de control es conmutador a conmutador.
Dentro de los esquemas de
tasa de bit se destacan dos grandes grupos: Los esquemas de "marking" o
marcaje de celdas (también llamados conmutadores binarios) y los
esquemas de tasa de bit explícita (también conocidos como
conmutadores ER, Explicit Rate).
Los conmutadores binarios
fueron los precursores del control de flujo basado en tasa. En una red
que utilice este esquema, las fuentes comienzan a transmitir a una tasa
especificada como Inicial (ICR, Initial Cell Rate). Cada conmutador posee
una cola para albergar todo el tráfico ABR que no pudiese ser transmitido
(esto sucede en el momento de que el flujo de tráfico entrante es
mucho mayor que la capacidad de transmisión a la salida). Cada vez
que dicha cola alcanza un umbral máximo, las celdas ABR salientes
se marcan activando el bit que indica congestión (CI, Congestion
Indication) dentro del campo PTI (Payload Type Indicator). El destino al
recibir dichas celdas devuelve una celda de control RM (Resource Management),
indicándole a la fuente que se ha presentado congestión.
La fuente al recibir dicha celda RM indicando congestión, disminuye
la tasa multiplicándola por un factor de reducción RDF(Reduction
Factor). En el momento que el nivel de la cola ABR en el conmutador disminuye
por debajo del umbral mínimo, el conmutador deja de marcar las celdas
y la fuente comienza a aumentar su tasa sumándole paulatinamente
un factor AIR (Additive Increase Rate).
Los conmutadores ER aparecen
como una alternativa de mejorar algunos huecos dejados por los conmutadores
binarios. De igual forma, las fuentes comienzan a transmitir a una tasa
especificada como Inicial ICR. Cada conmutador posee una cola para albergar
todo el tráfico ABR que atraviesa dicho conmutador. Una celda RM
es generada por la fuente cada N celdas de datos (típicamente N=32)
dentro del circuito virtual de su sesión ABR. En su viaje hacia
el destino, la celda RM contiene el campo CCR (Current Cell Rate, tasa
de celda actual) que informa a los conmutadores acerca de la tasa de transmisión
actual de la fuente, además contiene el campo ER (Explicit Rate)
donde indica la tasa a la cual quiere transmitir y otro campo que indica
la tasa de transferencia mínima que le fue garantizada al momento
de establecer la conexión (MCR Minimum Cell Rate). En su viaje de
regreso a la fuente de datos, cada conmutador examina la tasa requerida
en ER (Explicit Rate) y si no puede darle soporte la reduce a una tasa
que si puede manejar, de acuerdo a la congestión que esté
experimentando. Cuando la celda RM llega de vuelta a la fuente, el valor
del campo ER pasa a ser la tasa máxima de transmisión a la
cual la fuente puede transmitir. Sin embargo, la fuente no podrá
incrementar su tasa muy rápido, ya que el incremento está
limitado por el parámetro AIR (Additive Increase Rate, Incremento
de tasa aditivo) por cada RM recibida.
Muchas son las propuestas
de control de flujo por tasa de bit. Estas se diferencian por la forma
de calcular el parámetro ER a nivel de los conmutadores. Cada algoritmo
requiere la utilización de variables, como por ejemplo: celdas en
cola, # de conexiones, etc. Estos algoritmos se dividen, de acuerdo a sus
requerimientos de espacio en: (1) Algoritmos de Espacio Constante, es decir,
el número de variables utilizadas por el algoritmo es constante
e independiente del número de sesiones que se establecen a través
de un puerto, (2) Algoritmos de espacio no limitado, es decir, algoritmos
donde el número de variables depende, normalmente de forma lineal,
del número de conexiones que maneja el puerto.
Evolución de los Esquemas de Control de Flujo
Ambos esquemas de control
de flujo para ABR, tasa y créditos, se presentan con muchas ventajas
y debilidades, pero a la vez como dos esquemas totalmente incompatibles.
Se ha hablado que existe una dualidad entre estos dos esquemas, pero si
pensamos en la utilización de ATM en redes públicas, es necesario
seleccionar uno de los dos esquemas propuestos, debido a que debe existir
un solo estándar para permitir la interconexión de sistemas
de diferentes fabricantes.
El ATM Forum ha sido el
organismo que se ha dado la tarea discutir y elaborar especificaciones
para promover la unificación de criterios en relación con
la manera de manejar el tráfico en las redes, específicamente
en las que se basan en el modelo B-ISDN/ATM.
Luego de un acalorado debate,
el cual duro mas de un año, el ATM Forum adoptó el esquema
basado en tasa, rechazando la propuesta basada en créditos. Analicemos
algunas de las razones propuestas por ambos bandos al momento de la discusión:
Muchos mas argumentos fueron discutidos, pero todos ellos fueron de menor importancia frente e la comparación de utilizar colas por VC o no. La mayoría de los participantes del ATM Forum se negaron a utilizar un esquema que dependiera del numero de VC en un conmutador, por lo que el esquema basado en tasa fue aceptado por una mayoría de votos de 104 contra 7.