viernes, 12 de octubre de 2007

Quality of Service

Hasta ahora hemos visto si un paquete puede ser enviado, no como puede serlo.
Diferentes tipos de aplicaciones tienen diferentes requerimientos de como debe la data ser enviada.

Delay - el total delay de un punto inicial al final es llamado latencia.
Jitter - La variacion de delay es llamado jitter, el audio es suceptible a ella.
Loss - En extremos casos los paquetes durante congestión serán dropeados.

Para aliviar estas condiciones una red emplea mecanismos QoS.

Tipos de QoS :
- Best-effort delivery
- Integrated Services model
- Differentiated Sevices model

Best Effort Delivery
una red que simplemente envia paquetes en el orden en que es recibida no tiene un real QoS.
Switch y router hacen "best effort" para entregar paquetes tan rapidamente posible, no ve el tipo de tráfico o la necesidad de priorizar servicios.

Integrated Services Model
Un enfoque a QoS es el modelo IntServ. La idea básica es establecer un camino de data priorizado. el RSVP fue desarrolado el mecanismo para manejar y reservar un adecuado camino bandwidth para una aplicación.

Differentiated Services Model
Modelo DiffServ, permite manejar cada paquete sobre una base individual. Cada router se configura con politicas QoS para monitorear y reenviar.
IntServ aplica QoS sobre un flujo basico, DiffServ se aplica sobre per-hop.
DiffServ tambien basa esta decision QoS en base a la información contenida en cada paquete.

DiffServ QoS

Layer 2 QoS Classification
Frames Layer 2 no tienen mecanismos para indicar la prioridad o importancia de su contenido. Por lo tanto, un switch capa 2 puede solo enviar frames de acuerdo a best-efford.
Cuando las tramas son llevadas de un switch a otro, una oportunidad de clasificación ocurre.
El trunk añade un tag indicando source VLAN number. La encapsulación tambien incluye un campo que puede marcar CoS de cada trama.

Layer 3 QoS Classification with DSCP
Los paquetes IP tienen ToS byte, que puede ser usado para marcar paquetes.
Este byte tiene 3 bits IP Precendence value y 4 bits ToS value.
Se usa un valor conocido como DSCP Differentiated Service Code Point.

ToS Byte : P2 - P1 - P0 - T3 - T2 - T1 - T0 - Zero
DS Byte : DS5 - DS4 - DS3 - DS2 - DS1 - DS0 - ECN1 - ECN0

IP Precedence :
Routine 0
Priority 1
Inmediate 2
Flash 3
Flash Override 4
Critical 5
Internetwork Control 6
Network control 7

Ingress Queueing
Muchos switch tienen 2 tipos de colas de ingreso : un strict priority queue y standard queue.
Si QoS es habilitado en todos, algunos paquetes son automaticamente puestos en prioridad estricta. paquetes que llegan con CoS de 5 son puestos en queue strict priority.

Classification, trust and Marking
Cada switch debe decidir cuando trust incoming QoS values.

policier
Despues de que un paquete ha sido clasificado, se puede configurar el switch para limitar el bandwidth de cierto tipo de trafico. tenemos 2 tipos :
-Microflow policers : mantiene track del BW usado por cada flujo de trafico granular, como un source y destination address usando especificos puertos.
-Aggregate policers : monitorea y controla un flujo acumulativo que viaja a travez de uno o mas port ingreso o VLANs.

Scheduling
Paquetes que estan listos para enviarse o entregarse son puestos en la cola de salida. Estas colas son servidos de acuerdo a un predefinido configurable metodo scheduling.
Los switchs catalyst usualmente tienen multiples colas habilitados en cada port de salida. Una cola es reservada como strict priority. Esta cola mantiene paquetes time-critical como voice stream. Las otras colas son llamadas estandard queues y son servidas en un configurable prioridad, siempre debajo de un strict priority queue.
Los paquetes son asignados a la cola de salida de acuerdo a una funcion de mapeado, basado en un valor CoS. Por default paquetes con CoS 0 a 3 son puestos a la primera cola estandar, mientras que CoS 4 a 7 iran a la segunda cola estandar.
Basicamente, la congestion es manejada en la manera que las colas sean servidas. Los switch catalyst usan una tecnica llamada WRR Weighted Round Robin. El tamaño de la cola es configurada como un % del total del espacio de cola. Entonces a cada cola se le asigna un peso, por lo que una cola con mayor peso es atendida primero. Las colas son atendidas en round.robin, una despues de otra. La sola excepcion es priority queue, que siempre es atendida hasta quedar vacia.

Congestion Avoidance (Evitar congestion)
La funcion de las colas del puerto del switch es proveer un espacio para paquetes que esperan a ser transmitidos cuando el port no lo puede transmitir inmediatamente. Si un puerto se congestiona, la cola empieza a llenarse. Si la congestion es severa, los nuevos paquetes no podrán ser guardados en la cola y deberan ser dropeados.
De alguna manera, un switch debe anticiparse o evitar severa congestion usando uno de los siguientes metodos disponibles :
- Tail drop
- Weighted Random Early Detection

Tail Drop
Es usado como un basico y drastico medio de evitar la congestion en colas de puertos. Los paquetes son puestos en una cola donde la cabeza son cercanos a ser transmitidos y el final es lejano en la cola. cuando la cola se llena en capacidad, algun nuevo paquete que arriva son simplemente dropeados en el fin de la cola.

Weighted Random Early Detection
Dropea paquetes aleatoriamente en la cola, tal que nunca se llene.
dentro de cada cola tenemos varios umbrales que WRED puede usar, cada umbral marca el nivel en la cola donde empezará a dropear, por ejemplo si tenemos 2 umbrales, el primero al 50% con CoS 0 y 1 y otro umbral al 75% para CoS 2 y 3, cuando la cola se llene al 50% empezará a dropear paquetes con CoS 0 y 1, si pese a ello se llena la cola al 75% enpezará a dropear paquetes con CoS 2 y 3.

Switch Port Queues
p: priority queue
q: estandar queue
t: configurable wred queue

ejemplo: 1p2q2t
el priority queue nunca tiene un umbral, todos los paquetes se envian.

show queueing interface f0/12
show interface f0/12 capabilities

No hay comentarios: