Calidad de Servicio QoS (Quality of Service)

por | 11 marzo, 2016

Para entender bien qué es Qos, qué implicaciones tiene y cómo opera en la red, hay que ir por  partes. El concepto de QoS implica una serie de técnicas y protocolos destinados a mantener unos requerimientos en diversos aspectos de una conexión. Estos requerimientos son las calidades del servicio que se pretende salvaguardar. El concepto de calidad del servicio es tremendamente amplio y pueden referirse a temas como el tiempo de respuesta, pérdidas de información, capacidad de reconexión, etc. Calidad del servicio es también proveer prioridades a aplicaciones, flujos de datos y usuarios.

En términos de transmisión de datos normalmente se refiere a mecanismos de control para la reserva de recursos asociados a dichas calidades. Con ello se pretende eliminar o minimizar el impacto de problemas como el bajo rendimiento, retardos, latencia, jitter, desorden en los paquetes de información y errores.

Para poder llevar a cabo el QoS en redes de datos, existen diversos mecanismos o estrategias que se sirven de protocolos o reglas específicas. Estos mecanismos de QoS pueden ser independientes del medio de transmisión o capa dos (por ejemplo Diffsev que opera a nivel IP) , o estar implementados en estrecha relación con el medio de transmisión como por ejemplo ATM.

Estrategias y mecanismos de implementación de QoS

En redes de comunicaciones existen dos mundos bien distintos: conmutación de paquetes y conmutación de circuitos. En general los protocolos de conmutación de circuitos como ATM, Frame-Realy o GSM ya incorporan calidad del servicio en su propia definición del protocolo y no necesitan de procedimientos adicionales para implementarla.

En redes de conmutación de paquetes, como Ethernet e IP, se necesitan mecanismos adicionales. Estos mecanismos se pueden diferenciar en dos categorías:

  •  Modelo priorizado de servicios diferenciados.

Denominado Diffserv se trata de marcar paquetes según un tipo de servicio deseado. Los routers y switches de la red usan por lo general estrategias de encolado del tráfico para priorizar el tráfico atendiendo a dicha marca en el paquete.

  • Modelo parametrizado de servicios integrados.

En este modelo son las aplicaciones las que reservan un recurso a lo largo de la red mediante un protocolo de reservación de recurso. Actualmente está en desuso en redes grandes debido a sus problemas de escalabilidad. Su principal exponente fue el protocolo RSVP.

Por otra parte en cuanto a la capa dos,  también es posible marcar paquetes para un tratamiento especial en la red. En el caso de redes Ethernet el estándar 802.1p utiliza una cabecera 802.1Q (VLAN) para implementar un nivel de ocho prioridades o calidades de servicio usando el campo user_priority de tres bits de la cabecera 802.1Q añadida a la trama.

Otra técnica de capa dos es MPLS, la cual añade etiquetas en dicho nivel, asignando distintos niveles de QoS. MPLS realiza la conmutación de paquetes en función de dichas etiquetas independientemente de la tecnología de transporte. Por ello MPLS permite servicios multiprotocolo y es portable sobre distintas tecnologías de enlace como Ethernet, ATM, Frame-Relay, etc.

Una vez encuadrado QoS en las redes de datos, vamos a entrar en un poco más de detalle en algunos aspectos.

El campo type of service (ToS) de la cabecera IP

Cuando se creó IP, se incluyó en su cabecera un campo de 8 bits llamado ToS (type of service) o tipo de servicio. Este campo ha tenido varios usos a lo largo del tiempo y ha sido redefinido en varias RFCs.

Inicialmente se dividía en dos subcampos: Precedencia y Tipo de Servicio. En concreto el campo Precedencia era de tres bits y asociaba al paquete un rango de prioridad de 0 a 7.

0 1 2 3 4 5 6 7
Precedence Type of Service

 

Ip Precedence (bits 1,2 y 3) Significado
0 (000)  Best Effort Valor por defecto, tráfico rutinario
1 (001) Priority Prioritario
2 (010) Immediate Inmediato
3 (011) Flash Flash, usado en señalización de voz principalmente
4 (100) Flash Override Anulación de Flash
5 (101) Critical Crítico, VozIP, etc.
6 (110) Internetwork Control Control de interred
7 (111) Network Control  Reservado para protocolos de control de red

En cuanto al subcampo Type of Service, cada bit tenía un significado específico según esté a 0 o a 1:

Bit 3: Retardo (0=retardo normal 1=bajo retardo)
Bit 4: Rendimiento (0=rendimiento normal, 1=alto rendimiento)
Bit 5: Fiabilidad (0=fiabilidad normal, 1=alta fiabilidad)
Bit 6: Coste (0=coste normal, 1=bajo coste)
Bit 7: Reservado (siempre a cero)

Esto actualmente ya no se utiliza. En la actualidad el campo ToS de la cabecera IP se utiliza para albergar dos tipos de subcampos, uno llamado DSCP (Differentiated Services Code Point) utilizando los primeros 6 bits y otro llamado ECN (Explicit Congestion Notification) utilizando los dos bits restantes, según RFCs 3260 y 3168.

Campo DSCP (6 bits) Campo ECN (2 bits)

DSCP no es más que un código con el que se marcan los paquetes ToS de la cabecera IP y que es utilizado por una técnica llamada Difserv para implementar QoS en redes IP.

ECN es un mecanismo de notificación de estados de congestión entre extremos el cual permite evitar el descarte de paquetes IP entre dos elementos con ECN habilitado cuando la red subyacente también la soporta. No lo tratamos aquí.

Diffserv (Servicios difereciciados) y DSCP

Básicamente Diffserv de basa en marcar paquetes IP mediante un código llamado DSCP utilizando el campo ToS de la cabecera IP. Los router y switches de la red pueden leer el campo DSCP y priorizan el tráfico indicado mediante técnicas de encolado del tráfico.

DSCP se transporta en los seis primeros bits del campo ToS, es decir, permite 64 valores diferentes. Pero para mantener cierta compatibilidad con los tres bits de Precedencia, el campo de  seis bits del DCSP se dividió en dos grupos. Los tres primeros bits tienen el mismo significado que el IP Precedence y marcan una prioridad en el paquete. Los tres últimos bits significan Drop Preference y también marcan un segundo nivel de órden en el posible descartado de paquetes. El valor que tiene más peso es el de Precedence. Si dos paquetes tienen el mismo Precedence, cuanto más pequeño sea del Drop Preference menos probabilidad de ser descartado.

El código DSCP puede ser introducido en la cabecera IP por el propio host, para marcar el switch qué tráfico es más prioritario. Por supuesto los switches y routes pueden introducir el código DSCP a determinado tipo de tráfico que se considere prioritario en la red. Además los switches y routres pueden también cambiar el código DSCP entrante por otro distinto, alterando el tratamiento de un determinado tipo de tráfico en la red.

En DSCP el concepto IP Precedence se llama Class Selector. Lógicamente hay ocho Class Selectors: CS0-CS7, y para cada CS podría haber hasta otros ocho posibles Drop Preference aunque no se utilizan todos ya que sólo se usan dos bits del subcampo. El binomio CS-Drop Preference ha derivado en lo que se conoce como PHB (Per Host Behavior). Algunos CS tienen nombres especiales, como se verá en las siguientes tablas. Por último algunos CS se denominan también Assured Forwarding (AF) y van seguidos de dos números según el valor del Drop Preference.

DSCP Binary Decimal Behavior Equivalent IP precedence value
CS0 (Default) 000 000 0  Best effort  Best effort
CS1 001 000 8 AF1  Priority
CS2 010 000 16 AF2  Immediate
CS3 011 000 24 AF3  Flash
CS4 100 000 32 AF4  Flash override
CS5 101 000 40 EF (Expedited Forwarding)  Critical
CS6 110 000 48 Internetwork control  Internetwork control
CS7 111 000 56  Network control  Network control

Para cada AF de han definido tres prioridades de descartes y nombrados como AFxy, donde x es el AF correspondiente y la y asigna una probabilidad de descarte. Así tenemos de AF11 al AF13, AF21 al AF23 y así hasta el AF43.

DSCP value Decimal value Meaning Drop probability Equivalent IP precedence value
000 000 0 Best effort N/A 000 – Routine
001 010 10 AF11 Low 001 – Priority
001 100 12 AF12 Medium 001 – Priority
001 110 14 AF13 High 001 – Priority
010 010 18 AF21 Low 010 – Immediate
010 100 20 AF22 Medium 010 – Immediate
010 110 22 AF23 High 010 – Immediate
011 010 26 AF31 Low 011 – Flash
011 100 28 AF32 Medium 011 – Flash
011 110 30 AF33 High 011 – Flash
100 010 34 AF41 Low 100 – Flash override
100 100 36 AF42 Medium 100 – Flash override
100 110 38 AF43 High 100 – Flash override
101 110 46 Expedited forwarding (EF) N/A 101 – Critical
110 000 48 Internetwork control N/A 110 – Internetwork control
111 000 56 Network control N/A 111 –  Network control

Así por ejemplo, en una red mixta datos-VoPI marcaríamos los paquetes de voz con DSCP 46 en los hosts de origen o en los switches de acceso y haríamos que los routers y switches de transporte priorizaran ese tráfico.

 

 

Un pensamiento en “Calidad de Servicio QoS (Quality of Service)

  1. kzador

    genial el texto muy compresible muy agradecido le coloco precedence7 🙂

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *