9 de marzo de 2012

Quality of Service: ToS, CoS y otros bits

Con los nuevos vientos provenientes del mundo del networking: Comunicaciones unificadas, redes convergentes, soluciones NGN, el tan llamado Cloud... Se hace cada vez más necesario la utilización de mecanismos para garantizar la conexión de las nuevas tecnologías de telefonía, video, Internet movil, telepresencia, etc.

Para ello, en 1994 el ITU define las calidades de servicio (Quality of Service) con las que asegurar las conexiones telefónicas así como corregir fallos como el eco, lentitud, ruido, etc. Estás han sido aplicadas a las redes de datos y han posibilitado la unificación de ambas tecnologías sobre un mismo soporte físico, como el uso de softphones.

Entrando un poco más en materia, vamos a bucear entre las cabeceras IP y Ethernet para entender cómo se reflejan las configuraciones de nuestros dispositivos.


Dado que utilizamos el modelo de capas basado en el modelo OSI, la pila TCP/IP difenrencia tareas y delega funciones entre ellas. Como transmitir en binario los impulsos eléctricos/ópticos enviados desde el puerto físico, utilizando la información lógica que proviene de las aplicaciones de usuario. Esto es en pocas palabras, si quieres una definición más exacta no sé que haces visitando éste blog... Ponte a estudiar de verdad cacho patán! : p

Layer 2

A nivel de trama, en la cabecera Ethernet se define el campo CoS (Class of Service) dentro de la etiqueta que añade el protocolo 802.1Q para discriminar tráfico a través de VLANs. Añadiendo 32 bits a la trama Ethernet donde se define un campo de 16 bits con valor 0x8100 para identificar las que son marcadas.


El resto de campos corresponden a:

- Priority Code Point (PCP): Los 3 bits más significativos restantes, los llamados Class Selectors que van del 0 (CS0) al 7 (CS7) para indicar el nivel de prioridad de menor a mayor numericamente.
- Cannonical Format Indicator (CFI): Debido a un fallo de implementación a la hora de transmitir la dirección MAC (dcha->izq VS izq->dcha), se establece éste valor booleano. Y hasta aqui puedo hablar...
- VLAN Identifier: Campo de 12 bits que corresponde al identificador de la VLAN con la que se marcarán los paquetes. Los valores 0x000 y 0xFFF están reservados pudiendo definirse 4096 redes virtuales según el estandar.

Layer 3

A nivel de red, en capa 3, se utilizan 8 bits de la cabecera IPv4 para definir el campo ToS (Type of Service) del que se utilizan los tres bits más significativos para definir la precedencia (IP Precedence). El bit menos significativo debe valer 0. ¿Alguien capaz de explicarlo?


En diciembre de 1998, se restructura y se definen los Differentiated Services Code Points (DSCPs) que utilizan los 6 bits más significativos del campo. Los dos bits restantes definen el Explicit Congestion Notification (ECN), que se utiliza para informar que se están rechazando paquetes por congestión.


Relaciones

Dado que inicialmente se utilizaba IP Precedence para definir las calidades de servicio junto con los Class Selectors, en la siguiente tabla se muestra la relación entre ambos:


Como comentaba anteriormente, en 1998 se definen los códigos DSCP que proporcionan más opciones con las que controlar el tráfico. La siguiente tabla muestra la relación entre ellos:


Dado que los códigos DSCP proporcionan mayor granularidad, en esta tabla se muestran las relaciones entre DSCP, IP Precedence y Class Selectors:


Se introduce el concepto de AF (Assured Forwarding) que completa y proporciona todo un nuevo sistema de control de tráfico.


Posibilita la retrocompatilibidad y utiliza el campo que se añade para generar un sistema con el que diferenciar los paquetes.
Precedence                   ECN
      000     |    XX YY    |    00
        Priority (Class+Level)
Hibrido L2/L3

He de decir que a nivel de ISP, en los cores de red: MPLS/VPLS hasta donde conozco, también se utilizan las QoS para priorizar tráfico. Sino hay concordancia entre el equipo final y el de central, mal vamos... luego vienen las averias : p


Como no tengo mucha experiencia sobre el tema y la documentación que he encontrado es un poco abstracta... Sólo puedo decir que se utiliza el campo experimental de la cabecera MPLS (Exp), de 3 bits de tamaño, para arrastrar el valor establecido en la trama Ethernet (L2). Eso tengo entendido, ¿Alguien nuevamente puede corregir?

Enlaces

http://www.cisco.com/en/US/prod/collateral/switches/ps5718/ps708/prod_white_paper0900aecd803e5269.html
http://mccltd.net/blog/?p=1199
http://www.pbxphreak.com/QoS/
http://www.cisco.com/en/US/docs/solutions/Enterprise/WAN_and_MAN/QoS_SRND_40/QoSIntro_40.html#wp62023
http://bogpeople.com/networking/dscp.shtml
http://www.network-core.net/2010/02/comparacion-entre-ip-precedence-y-dscp.html
http://blog.ine.com/2010/02/21/the-mpls-forwarding-plane/

Un saludo, Brixton Cat.

No hay comentarios:

Publicar un comentario

Bienvenid= si quieres dejar un comentario