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.
genial el texto muy compresible muy agradecido le coloco precedence7 🙂
excelente la información suministrada