En el pasado los protocolos de comunicaciones de datos evolucionaron en respuesta a circuitos poco confiables. Los protocolos en general detectan errores en bits y tramas perdidas, luego retransmiten los datos.
Los usuarios puede que jamás vean estos errores reportados, la degradación de respuesta o de caudal (through put) serían los únicos síntomas.
A diferencia de los mecanismos de control extremo a extremo que utiliza TCP en internerworking, la capacidad de Gbit/seg de la red ATM genera un juego de requerimientos necesarios para el control de flujo. Si el control del flujo se hiciese como una realimentación del lazo extremo a extremo, en el momento en que el mensaje de control de flujo arribase a la fuente, ésta habría transmitido ya algunos Mbytes de datos en el sistema, exacerbando la congestión.
Y en el momento en que la fuente reaccionase al mensaje de control, la condición de congestión hubiese podido desaparecer apagando innecesariamente la fuente. La constante de tiempo de la realimentación extremo a extremo en las redes ATM (retardo de realimentación por producto lazo – ancho de banda) debe ser lo suficientemente alta como para cumplir con las necesidades del usuario sin que la dinámica de la red se vuelva impractica.
Las condiciones de congestión en las redes ATM están previstas para que sean extremadamente dinámicas requiriendo de mecanismos de hardware lo suficientemente rápidos para llevar a la red al estado estacionario, necesitando que la red en sí, éste activamente involucrada en el rápido establecimiento de este estado estacionario. Sin embargo, esta aproximación simplista de control reactivo de lazo cerrado extremo a extremo en condiciones de congestión no se considera suficiente para las redes ATM.
El consenso entre los investigadores de este campo arroja recomendaciones que incluyen el empleo de una colección de esquemas de control de flujo, junto con la colocación adecuada de los recursos y dimensionamiento de las redes, para que aunados se pueda tratar y evadir la congestión ya sea:
Detectando y manipulando la congestión que se genera tempranamente monitoreando de cerca las entradas/salidas que están dentro de los conmutadores ATM y reaccionando gradualmente a medida que vaya arribando a ciertos niveles prefijados.
Tratando y controlando la inyección de la conexión de datos dentro de la red en la UNI (unidad interfaz de red) de tal forma que su tasa de inyección sea modulada y medida allí primero, antes de tener que ir a la conexión de usuario a tomar acciones mas drásticas.
El estado de la red debe ser comunicado a la UNI, generando rápidamente una celda de control de flujo siempre que se vaya a descartar una celda en algún nodo debido a congestión. La UNI debe entonces manejar la congestión, cambiando su tasa de inyección o notificándola a la conexión de usuario para que cese el flujo dependiendo del nivel de severidad de la congestión.
El mayor compromiso durante el control de congestión es el de tratar y afectar solo a los flujos de conexión que son responsables de la congestión y actuar de forma transparente frente a los flujos que observan buen comportamiento. Al mismo tiempo, permitir que el flujo de conexión utilice tanto ancho de banda como necesite sino hay congestión.
La recomendación UIT – T I. 371 especifica un contrato de tráfico que define como el tráfico del usuario seria administrado. El contrato que existe para cada conexion virtual (virtual path o virtual channel), es básicamente un acuerdo entre el usuario y la red con respecto a la Calidad de Servicio (Quality Of Service – Q o S) y los parámetros que regulan el flujo de celdas. Estos descriptores de trafico dependen de una particular clase de servicio y pueden incluir bajo la especificación del ATM Forum UNI / a cinco Q o S referenciados en los AALS.
El objetivo de estas sub clases de servicio es agrupar características de servicio como requerimiento de ancho de banda similares, sensibilidad a la perdida de datos y retardos para un correcto manejo de los datos en los puertos de acceso ATM, etc. Estos parámetros pueden incluir el Sustained Cell Rate (SCR), el Mínimum Cell Rate (MCR), el Peak Cell Rate (PCR) y/o el Burst Tolerance (BT).
Para soportar todas las diferentes clases de servicios definidos por los estándares el switch ATM debe ser capaz de definir éstos parámetros en base a cada VC o cada VP y debe proveer amortiguadores (buffers) para absorber las ráfagas de trafico.