Calidad de servicio (Quality of Service - QOS)

Anuncio
Administración y Gestión de Redes
Lic. en Sistemas de Información
Laboratorio de REDES
Recuperación de Información
y Estudios de la Web
Calidad de servicio
(Quality of Service - QOS)
Fernando Lorge
florge@unlu.edu.ar
- 2015 -
Mecanismos QoS
Calidad de servicio
●
●
●
●
Problema de optimización: Maximizar satisfacción del
usuario final minimizando costos
Capacidad de la red de garantizar los recursos requeridos
para un requerimiento de servicio a la red
Conjunto de técnicas para administrar los recursos de la
red. (manejando delay, jitter, bandwith, packet loss)
Capacidad de la red de proveer mejor servicio a tráfico
seleccionado sobre varias tecnologías.
Mecanismos QoS
Funciones de un ruteador
(repaso)
●
Validar header
●
Decrementar TTL
●
Recalcular checksum
●
Buscar ruta
●
Fragmentar si es necesario (ipv4)
●
Procesar opciones si es necesario
●
Descartar paquetes ante congestión
Mecanismos QoS
Funciones de un ruteador
●
Clasificar paquetes
●
Filtrar paquetes
●
Marcar paquetes
●
NAT
●
Priorizar tráfico
●
Verificar conformidad de tráfico
Mecanismos y
arquitecturas QoS
Mecanismos QoS
Data Plane
Clasificación
●
En Flows, Streams. Traffic Classes
●
Implícita (Interfaz, VC)
●
Compleja (campo/s no específicos pasa classificación)
●
●
Inspección profunda de paquetes/con estado (deep
Packet Inspection/statefull inspection)
Simple (TOS, DS, IPv6 traffic class, MPLS Exp, L2)
Mecanismos QoS
Data Plane
Acondicionamiento de tráfico
●
Asegurar que un determinado flujo de tráfico no exceda una
tasa máxima de transmisión determinada.
●
Policing
●
Shaping
●
Marking
¿Cómo se implementa?
Token Bucket – Leaky Bucket
Mecanismos QoS
Data Plane
Policing
●
●
●
Asegurar que determinado tráfico (stream) no supere una tasa
máxima definida
Controla la tasa de envío marcando o descartando paquetes
que superan el máximo establecido.
Se implementa mediante Token bucket
Mecanismos QoS
Data Plane
Token Bucket
●
●
Mecanismo para limitar la tasa media de transferencia de un
flujo, permitiendo “ráfagas” hasta un tamaño máximo admitido.
Genéricamente:
● CIR: Commited Information Rate - Tasa de Caudal
Comprometido.
● CBS: Commited Burst Size – Tamaño de ráfaga
comprometido
● T: Time Interval - Intervalo
Mecanismos QoS
Data Plane
Token Bucket simple
●
●
●
●
●
Bucket de tamaño B (Burst)
Tasa o Rate (R) a la cual se llena el bucket con tokens
Al “llegar” un paquete se compara su tamaño en bytes con los
tokens-bytes que hay en el bucket.
Si hay suficientes se decrementan tantos tokens-bytes como
bytes del paquete (paquete “en conformidad”)
Si no el paquete “no esta en conformidad”
Mecanismos QoS
Data Plane
Single Rate Three Color Marker
(SR-TCM, rfc2697)
CIR
CBS
C
EBS
E
CIR: Commited information rate
CBS: Commited burst size
EBS: Excess burst size
Al arribar paquete de tamaño B bytes:
●
●
●
Si B < tokens en C → decrementar B tokens de C, acción
verde, sino
Si B < tokens en E → decrementar B tokens de E, acción
amarilla, sino
Acción roja.
Mecanismos QoS
Data Plane
Two Rate Three Color Marker
CIR
CBS
C
PIR
PBS
P
(TR-TCM, rfc2698)
CIR: Commited information rate
CBS: Commited burst size
PIR: Peak information rate
EBS: Peak burst size
Al arribar paquete de tamaño B bytes:
●
●
●
Si B > tokens en P → acción roja, sino
Si B > tokens en C → decrementar B tokens de P, acción
amarilla, sino
Decrementar B tokens de C y P, acción verde
Mecanismos QoS
Data Plane
Traffic Shaping
●
●
●
●
●
Asegurar que determinado tráfico (stream) no supere una tasa
máxima definida
Controla la tasa de envío
A diferencia de policing que marca o dropea paquetes que
superan el máximo establecido, shaping retrasa
Policing actúa para “acotar” picos de tráfico, mientras que
shaping “suaviza”
Técnicas:
● Token bucket
● Leaky bucket
Mecanismos QoS
Data Plane
Leaky Bucket
J. Turner (1986)
Mecanismos QoS
Data Plane
Policing vs Shaping:
Mecanismos QoS
Data Plane
Encolado y planificación
●
●
●
●
●
Manejar los paquetes recibidos y planificar su envío en una
interfaz de salida.
Función del administrador de colas (“queue manager”) de un
ruteador.
Debe ser eficiente a la vez de poder dar prioridad a
determinados paquetes.
Para acomodar ráfagas (“bursts”) se utilizan buffers.
Los buffers son de tamaño finito. Puede ser necesario
descartar paquetes.
(En parte problemática similar a la planificación de procesos de un SO!)
Mecanismos QoS
Data Plane
Encolado y planificación
●
Clásico FIFO (o FCFS)
●
Fácil de implementar.
●
Retardo máximo conocido. (Tamaño búffer/capacidad del enlace)
●
No provee QoS!!.
Mecanismos QoS
Data Plane
Encolado y planificación
●
Solución → Planificación con prioridades:
● Strict Priority Queueing
● Weighted Bandwidth Scheduling:
● Weighted Round Robin
● Weighted Fair Queuing
● Deficit Round Robin
Características deseadas:
● justo, acotar peor caso, simplicidad
Mecanismos QoS
Data Plane
Encolado y planificación
Strict priority queeing:
●
●
Pre-emptive (Packet level o Quantum level)
Non pre-emptive
Mecanismos QoS
Data Plane
Descarte de paquetes (drop)
●
●
●
¿Cuándo? Buffer lleno
¿Por qué no buffers mas grandes? → Crece también el
retardo en la cola.
Técnicas:
●
●
●
●
Tail Drop
Head Drop
Weighted Tail Drop
Random Early Detection
Mecanismos QoS
Data Plane
Random Early Detection (RED)
Probabilidad
1
pmax
0
qmin
qmax
Tamaño de la cola
Mecanismos QoS
Data Plane
Weighted Random Early Detection (WRED)
Probabilidad
1
pmax
rojo
pmax
amarillo
pmax
verde
0
qmin
Rojo
qmax
Rojo
qmin
amarillo
qmax qmin
amarillo verde
qmax
amarillo
Tamaño de la cola
Mecanismos QoS
Data Plane
Descarte de paquetes
Interacción con TCP
●
●
Implícita: Descarte de paquetes para que el emisor infiera
que existe congestión.
Explícita: Notificar explícitamente situación de congestión
mediante el marcado de paquetes. ECN - “Explicit Congestion
Notification”
Mecanismos QoS
Data Plane
ECN
Explicit Congestion Notification
●
●
●
RFC 3168
A nivel IP:
● Campo ECN:
● Bit ECT: ECN capable Transport
● Bit CE: Congestion Experienced
A nivel TCP:
● TCP Headers:
● ECE: ECN-Echo
● CWR: Congestion Window Reduced
Control de tráfico
en Linux
Control de Tráfico en Linux
Módulo TC (Traffic Control)
Capa IP → TC → Driver
●
●
Shaping
Scheduling
●
●
Policing
Dropping
Control de tráfico
en Linux
Control de tráfico
en Linux
Módulo TC
Definición de políticas de Control de Tráfico:
●
●
Queuing disciplines (tc qdisc)
●
Clases (tc class)
●
Filtros que relacionan paquetes con las clases (tc filter)
Control de tráfico
en Linux
Módulo TC
●
Classless Queueing Disciplines:
●
●
●
●
●
●
Pfifo, bfifo
Pfifo_fast (default)
RED - Random Early Detection
Stochastic Fairness Queueing (SFQ)
Token Bucket Filter (TBF)
Classfull Disciplines:
●
●
●
PRIO
HTB - Hierarchical Token Bucket
CBQ - Class-based queuing
Control de tráfico
en Linux
PFIFO Fast
Control de tráfico
en Linux
SFQ - Stochastic Fairness
Queuing
Control de tráfico
en Linux
TBF
Token Bucket Filter
Control de tráfico
en Linux
Módulo TC
Definición Classless qdisc:
tc qdisc add dev eth0 parent root handle 1:0 pfifo
Definición Classfull qdisc:
tc qdisc add dev eth0 parent root handle 1: htb default 1
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 2mbit
tc class add dev eth0 parent 1:0 classid 1:2 htb rate 2mbit ceil 1mbit
Control de tráfico
en Linux
Módulo TC
Definición de filtros:
u32 [u16 u8] selector:
tc filter add dev eth0 parent 1:0 protocol ip u32 match ip sport 80 0xffff classid 1:10
Netfilter CLASSIFY target:
iptables ­t mangle ­A POSTROUTING ­o eth0 ­p tcp ­­sport 80 ­j CLASSIFY ­­set­class 1:10
Netfilter MARK target:
iptables ­t mangle ­A POSTROUTING ­o eth2 ­p tcp ­­sport 80 ­j MARK ­­set­
mark 1
tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 1 fw classid 1:10
Control de tráfico
en Linux
Bibliografía
Bibliografía:
Deploying IP and MPLS QoS for Multiservice Networks: Theory & Practice. John Evans
and Clarence Filsfils. Morgan Kaufmann, 2007.
Network Routing: Algorithms, Protocols, and Architectures. Deepankar Medhi,Karthikeyan
Ramasamy. Morgan Kaufmann, 2007.
http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:networking:traffic_control
Próxima: QoS 2
Descargar