Calidad de Servicio QoS

 

Siguiendo con la “Calidad de Servicio QoS para el CCNA parte 1” que vimos en un artículo anterior, ahora veremos un poco mas en profundidad las herramientas QoS

 

Herramientas QoS

Las herramientas que nos permiten implementar QoS son las siguientes:

 

Clasificación y marcado: si queremos dar a ciertos paquetes un tratamiento diferente, debemos identificarlos y marcarlos.

Queueing – Gestión de la congestión: en lugar de tener una gran cola en la que los paquetes se tratan con FIFO, podemos crear múltiples colas con diferentes prioridades.

 

Shaping and Policing: estas dos herramientas se utilizan para limitar el tráfico.

 

Congestion Avoidance: hay algunas herramientas que podemos usar para administrar la pérdida de paquetes y reducir la congestión.

 

Clasificación y marcado:

 

Con esta herramienta, se clasifica los paquetes en función del contenido de su encabezado, luego se marca el mensaje cambiando algunos bits en campos específicos del encabezado.

 

Conceptos básicos de clasificación:

 

Las herramientas de QoS se habilitan en las interfaces por dirección entrante o saliente de la interface.

 

Las herramientas de QoS realizan la clasificación (coincidencia de campos de encabezado) para decidir qué paquetes tomar contra ciertas acciones de QoS.

 

Acá un ejemplo:

 

Calidad de Servicio QoS para el CCNA 01

 

En la figura de arriba, se ha habilitado la herramienta en la cola de salida de una interfaz. En los routers, usan esta herramienta para colocar paquetes en una cola de salida, otros paquetes en otra cola y así sucesivamente. Programando/priorizando el tráfico en función de las reglas configuradas por el ingeniero de red.

 

Pasos que suceden con el paquete durante el procesamiento interno del router:

 

Paso 1: El router toma una decisión de reenvío (enrutamiento).

 

Paso 2: La herramienta de cola de salida utiliza la lógica de clasificación para determinar qué paquetes entrar en la cola de salida.

 

Paso 3: El router retiene los paquetes en la cola de salida esperando en la interfaz de salida, disponibilidad para enviar el siguiente mensaje.

 

Paso 4: La lógica de programación de la herramienta de puesta en cola elige el próximo paquete, priorizando con eficacia un paquete sobre otro.

 

Queueing – Gestión de la congestión:

  

Todos los dispositivos de red usan colas. Los dispositivos de red reciben mensajes, hacen una decisión de reenvío, y luego envían el mensaje, pero a veces la interfaz de salida está ocupada. Así que, el dispositivo mantiene el mensaje saliente en una cola, esperando que la interfaz saliente esté disponible.

 

El término “gestión de la congestión”, se refiere al conjunto de herramientas QoS

para gestionar las colas que contienen paquetes mientras esperan su turno para salir de una interfaz (y en otros casos en los que un router contiene paquetes esperando algún recurso). Pero la gestión de la congestión, se refiere más a una idea, por lo que debe mirarse dentro de los dispositivos para pensar sobre cómo funcionan.

 

 

Calidad-de-Servicio-QoS-para-el-CCNA-02

 

La figura muestra la cola de salida, un aspecto de la gestión de la congestión, en el que

el dispositivo retiene mensajes hasta que la interfaz de salida esté disponible. El sistema de colas puede usar una sola cola de salida, con un programación de, el primero en entrar, es el primero en salir (FIFO).

 

Muchos dispositivos de redes pueden tener un sistema de colas con múltiples colas. Para usar múltiples colas, el sistema de colas necesita una función de “clasificador” para elegir qué paquetes se colocan en qué cola. El sistema de colas también necesita un programador (Scheduler) , para decidir qué mensaje tomar a continuación cuando la interfaz está disponible, como se muestra en la siguiente Figura

 

 

Calidad-de-Servicio-QoS-para-el-CCNA-03

 

Existen varios tipos de Scheduler como:

 

Round Robin Scheduling (Prioritización)

 

Round robin, pasa por las colas en orden, turnándose con cada cola. En cada ciclo, el Scheduler toma un mensaje o toma una cantidad de bytes de cada cola tomando suficientes mensajes para totalizar esa cantidad de bytes. Toma algunos mensajes

de la cola 1, avance y tome algunos de la cola 2, luego tome algunos de la cola 3,

y así sucesivamente, comenzando en la cola 1 después de terminar un pase completo a través de todas las colas.

 

La programación de Round Robin también incluye el concepto de ponderación (generalmente denominado ponderado round robin). Básicamente, el planificador toma una cantidad diferente de paquetes (o bytes) de cada cola, dando más preferencia a una cola sobre otra.

 

Por ejemplo los routers usan una herramienta llamada Class-Based Weighted Fair Queuing (CBWFQ) para garantizar una cantidad mínima de ancho de banda para cada clase. Es decir, cada clase recibe al menos la cantidad de ancho de banda configurada durante los momentos de congestión, pero podría ser más. Internamente, CBWFQ usa un algoritmo ponderado de programación de round robin, por ejemplo en las tres colas del sistema se han dado 20, 30, y 50 por ciento del ancho de banda para cada uno, respectivamente.

 

 

Calidad-de-Servicio-QoS-para-el-CCNA-04

Con el sistema de cola mostrado en la figura, si el enlace saliente está congestionado, el programador garantiza el porcentaje de ancho de banda que se muestra en la figura para cada cola. Es decir, cola 1 obtiene el 20 por ciento del enlace, incluso durante las horas punta.

 

Low Latency Queuing (LLQ)

 

Un sistema “round robin queuing” agrega demasiado retraso para los paquetes de voz y video. Debido a que a pesar de tener asignado un % del ancho de banda, los paquetes de voz y dato debe esperar a que se envíe algunos mensajes de las otras colas para enviar nuevamente paquetes de voz y datos, lo que agrega retraso y jitter.

 

LLQ le dice al planificador que trate una o más colas como cola de prioridad especial. El planificador de LLQ siempre toma el siguiente mensaje de una de estas colas de prioridades especiales. Problema resuelto: muy poco retraso para los paquetes en esa cola, lo que resulta en muy poco jitter también. Además, la cola nunca tiene tiempo para llenarse, por lo que no hay caídas debido al llenado de la cola, como se muestra en la siguiente figura:

 

 

Calidad-de-Servicio-QoS-para-el-CCNA-05

 

El uso de LLQ, o cola de prioridad, proporciona bajo retardo, jitter y de pérdida de tráfico en esa cola. Sin embargo, pensemos en las otras colas. Qué sucede si la velocidad de la interfaz es de X bits / segundo, pero vienen más de X bits / segundo en la cola de voz? El Scheduler nunca dará servicio a las otras colas. Para solucionar este problema usamos “policing”, por ejemplo reservando el 20% del ancho de banda para la cola de voz, si sobrepasa este valor, el router descarta el exceso.

 

Limitar la cantidad de ancho de banda en la cola de prioridad protege las otras colas, pero causa otro problema. La voz y el video necesitan poca pérdida, y con LLQ, ponemos la voz y video en una cola de prioridad que descartará el exceso de mensajes más allá del ancho de banda límite. ¿La solución? Encontrar la forma de limitar la cantidad de voz y video que la red rutea de este enlace, para que el “policer” nunca descarte nada del tráfico. Hay herramientas de QoS para ayudar a hacer justamente eso, llamadas herramientas de control de admisión de llamadas (Call Admission Control (CAC)).

 

 

Shaping and Policing

 

Estas herramientas se usan con mayor frecuencia en el borde WAN en un diseño de red empresarial.

 

Tanto policing y shaping, supervisan la tasa de bits de los mensajes combinados que fluyen a través de un dispositivo. Una vez habilitado, el policer o shaper toma nota de cada paquete que pasa, y mide la cantidad de bits por segundo a lo largo del tiempo. Ambos intentan mantener la velocidad de bits en o por debajo de la velocidad configurada, pero utilizando dos acciones diferentes: policers descartar paquetes y shapers mantiene los paquetes en colas para retrasar los paquetes.

 

Policing

 

Esta herramienta descarta paquetes mientras mira la tasa de tráfico versus la tasa policing configurada para un momento dado.

El tráfico llega a los dispositivos de red a un ritmo variable, con valles y picos, como se muestra en la siguiente figura

 

Calidad de Servicio QoS para el CCNA 06 

En la siguiente figura muestra un gráfico de lo que sucede con el tráfico cuando un policer descarta cualquier mensaje. En efecto, el policer corta la parte superior del gráfico a la tasa del policing configurada.

 

También se muestra en la figura de arriba que un policer permite un pico o “Burst” de tráfico. Los “policers” permiten un estallido más allá de la tasa de policing durante un corto período de tiempo, después de un período de baja actividad. Entonces, ese pico que excede la tasa de policing en el gráfico permite la naturaleza de las aplicaciones de datos en ráfagas.

 Calidad de Servicio QoS para el CCNA 07

Shaping

 

Shaping es una técnica de QoS que podemos usar para aplicar tasas de bits más bajas que las que la interfaz física es capaz de hacer. La mayoría de los proveedores de servicios de Internet utilizarán shaping o policing para hacer cumplir los “contratos de tráfico” con sus clientes. Cuando usamos shaping almacenamos el tráfico a una cierta tasa de bits, en cambio policing eliminará el tráfico cuando exceda una cierta tasa de bits.

 

Por ejemplo, si nuestro ISP nos vende una conexión de fibra con un contrato de tráfico y un ancho de banda garantizado de 10 Mbit, pero la interfaz de fibra es capaz de enviar 100 Mbit por segundo. La mayoría de los proveedores de servicios de Internet configurarán policing para reducir todo el tráfico por encima de 10 Mbit, por lo que no podrá obtener más ancho de banda de lo que está pagando. También es posible hacer shaping hasta 10 Mbit, pero shaping significa que tienen que almacenar datos mientras que policing significa que pueden descartarlo. Los 10 Mbit que pagamos se llaman CIR (Commited Information Rate (tasa de información comprometida)).

 

Hay dos razones por las que quizás queramos configurar shaping:

  • En lugar de esperar a que el policy del ISP elimine nuestro tráfico, podriamos querer hacer shape para que no sea elimininado el tráfico hacia el ISP
  • Para evitar el bloqueo de salida. Cuando se pasa de una interfaz de alta velocidad a una interfaz de baja velocidad, es posible que se pierda paquetes en la cola saliente. Podemos usar shaping para asegurarnos de que se enviará todo (hasta que el búfer esté lleno).

En la siguiente figura podemos ver el gráfico del uso de shaping:

 

 Calidad de Servicio QoS para el CCNA 08

 

 

Podemos resumir de shaping que:

  • Shapers miden la tasa de tráfico a lo largo del tiempo para compararla con la tasa shaping configurada.
  • Shapers permiten picos o bursting después de un período de inactividad.
  • Los shapers están habilitados en una interfaz de salida (paquetes salientes).
  • Los shapers reducen la velocidad de los paquetes al ponerlos en cola, y con el tiempo los liberan de la cola en la tasa shaping.
  • Los shapers utilizan herramientas de puesta en cola para crear y programar las colas de shaping

 

Congestion Avoidance

 

La función de QoS llamada prevención de la congestión (congestion avoidance) intenta reducir la pérdida general de paquetes de forma preventiva descartando algunos paquetes usados ​​en conexiones TCP. Para ver cómo funciona, primero

necesitamos ver cómo funciona TCP en lo que respecta a ventanas, y luego ver cómo funciona Congestion Avoidance

 

 

Conceptos básicos de TCP Windowing

 

TCP usa un mecanismo de control de flujo llamado windowing. Cada receptor TCP otorga una ventana al remitente. La ventana, que es un número, define la cantidad de bytes que el emisor puede enviar a través de la conexión TCP antes de recibir un acuse de recibo TCP. Más exactamente, el tamaño de la ventana es la cantidad de bytes no reconocidos que el remitente puede enviar antes de que el remitente simplemente se detenga y espere. 

El mecanismo de ventana TCP le da al receptor el control de la tasa de envío de datos del emisor. Cada nuevo segmento enviado por el receptor al remitente otorga una nueva ventana, que puede ser más pequeño o más grande que la ventana anterior. Al subir y bajar la ventana, el receptor puede hacer que el emisor espere más o espere menos.

Por elección, cuando todo está bien, el receptor sigue aumentando la ventana concedida, duplicándola cada vez que el receptor acusa recibo de los datos. Eventualmente, la ventana crece hasta el punto que el remitente nunca tiene que dejar de enviar: el remitente sigue recibiendo acuses de recibo TCP antes de enviar todos los datos en la ventana anterior. Cada nuevo acuse de recibo (como figura en un segmento TCP y un encabezado TCP) otorga una nueva ventana al remitente.

También por elección, cuando un receptor TCP detecta la pérdida de un segmento TCP, reduce la ventana con el siguiente tamaño de ventana enumerado en el siguiente segmento TCP que el receptor envía de vuelta a el remitente. Por cada segmento TCP perdido, la ventana puede reducirse a la mitad, con múltiples pérdidas de segmento que causan que la ventana se reduzca a la mitad varias veces, ralentizando la tasa del remitente significativamente.

 En la siguiente figura, podemos ver como se produce la congestión y como se descartan los paquetes debido al aumento de la congestión. A mayor congestión, mayor descarte de segmentos TCP.

 

Calidad de Servicio QoS para el CCNA 09 

Ahora la herramienta de Congestion Avoidance, intenta evitar la congestión, principalmente mediante el uso de su propio mecanismos de ventanas TCP. Estas herramientas descartan algunos segmentos TCP antes que las colas se llenen, con la esperanza de que se desaceleren las conexiones TCP suficientemente, reduciendo la congestión y evitando un problema mucho peor: los efectos de muchos más paquetes que se eliminan debido a la caída de la cola. La estrategia es simple: desechar algunos ahora con la esperanza de que el dispositivo descarte muchos menos en el largo plazo.