calidad de servicio (quality of service - qos)...calidad de servicio (quality of service - qos) -...
TRANSCRIPT
-
Calidad de Servicio(Quality of Service - QoS)
- 2019 -
Laboratorio de REDESRecuperación de Informacióny Estudios de la Web
Administración y Gestión de RedesLic. en Sistemas de Información
Equipo docente:Fernando Lorge ([email protected])Santiago Ricci ([email protected])
Alejandro Iglesias ([email protected])Mauro Meloni ([email protected])
-
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 del header● Buscar ruta● Fragmentar si es necesario (IPv4)● Procesar opciones si es necesario● Descartar paquetes ante congestión
-
Mecanismos QoS
Funciones de un ruteador(repaso)
● Clasificar paquetes● Filtrar paquetes● Marcar paquetes● NAT● Priorizar tráfico● Verificar conformidad de tráfico● Asegurar tasa de transferencia mínima
-
Mecanismos yarquitecturas QoS
-
Mecanismos QoSData Plane
Clasificación
● En Flows, Streams, Traffic Classes, de manera:● Implícita (Interfaz/Circuito Virtual de origen)● Simple (campos específicos para clasificación: IPv4 ToS-IPv6 Traffic
class → DS, MPLS Exp, Ethernet CoS)● Compleja (campo/s no específicos para clasificación)● Inspección profunda de paquetes/con estado (DPI - Deep
Packet Inspection/Stateful Inspection)● Combinaciones de algunas/todas las anteriores
-
Mecanismos QoSData Plane
Acondicionamiento de Tráfico
● Controles y acciones aplicados sobre los flujos de tráfico para cumplir con los requerimientos planteados por SLAs.
● Las funciones mediante las que se implementa son:
Policing
Marking
Shaping
Metering Queueing and Scheduling Dropping Techniques
-
Policing
● Asegurar que determinado tráfico (stream) no supere una tasa máxima definida
● Controla la tasa de envío marcando (marking) o descartando paquetes que superan el máximo establecido.
● Se implementa mediante Token Bucket
Mecanismos QoSData Plane
-
PolicingToken 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 QoSData Plane
-
Token Bucket simple
● Bucket de tamaño B (Burst - Ráfaga) ● 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” o “excedió” el token
bucket definido.
Mecanismos QoSData Plane
B
Rate (CIR)
Burst(CBS)
-
Single Rate Three Color Marker(SR-TCM, RFC 2697)
Mecanismos QoSData Plane
Commited Bucket / Excess BucketCIR: Commited Information RateCBS: Commited Burst SizeEBS: Excess Burst Size
C E
CIR
CBS EBS
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. Ni C ni E son afectados.
-
Two Rate Three Color Marker(TR-TCM, RFC 2698)
Mecanismos QoSData Plane
CIR: Commited Information RateCBS: Commited Burst SizePIR: Peak Information RatePBS: Peak Burst Size
C P
CIR
CBS PBS
PIR
Al arribar paquete de tamaño B bytes:● Si B > tokens en P → acción roja; ni C ni P son afectados. 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
-
Two Rate Three Color MarkerWith Efficient Handling of In-profile Traffic
(RFC 4115)
Mecanismos QoSData Plane
CIR: Commited Information RateEIR: Excess Information RateCBS: Commited Burst SizeEBS: Excess Burst Size
C E
CIR
CBS EBS
EIR
Al arribar paquete de tamaño B bytes:● Si B < tokens en C → acción verde, decrementar B tokens de C.
Sino,● Si B < tokens en E → acción amarilla, decrementar B tokens de
E. Sino,● Acción roja.
-
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 encolándolos.● Policing actúa para “acotar” picos de tráfico, mientras que
shaping “suaviza”
● Técnicas: Token Bucket Leaky Bucket
Mecanismos QoSData Plane
-
Leaky BucketJ. Turner (1986)
Mecanismos QoSData Plane
-
Policing vs Shaping:
Mecanismos QoSData Plane
-
Queueing and Scheduling(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 QoSData Plane
-
Queueing and Scheduling(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 QoSData Plane
-
Queueing and Scheduling(Encolado y Planificación)
Solución → Planificación con prioridades:● Strict Priority Queueing● Weighted Bandwidth Scheduling
a) Weighted Round Robinb) Weighted Fair Queuingc) Deficit Round Robin
Características deseadas:● Justo (fair), acotar peor caso de latencia, simplicidad
Mecanismos QoSData Plane
-
Queueing and Scheduling(Encolado y Planificación)
Strict priority queueing
● Pre-emptive (Packet level o Quantum level)● Non pre-emptive
Mecanismos QoSData Plane
-
Queueing and Scheduling(Encolado y Planificación)
Weighted Round Robin (WRR)
Ejemplo, si todas las colas hay paquetes, el orden de envío sería:A, B, B, C, C, C, C, A, B, B, C, C, C, A…
Pero… ¡WRR no es justo si los paquetes tienen tamaño variable!
Mecanismos QoSData Plane
-
Queueing and Scheduling(Encolado y Planificación)
Weighted Fair Queueing (WFQ)● Versión para paquetes de GPS (General Process Sharing)● Calcula el tiempo de entrega del paquete (Tep) o Número de
Secuencia.● Lleva un tiempo de referencia general llamado “número de
ronda” (round number), NR.● Si cola Q inactiva:
Tep = NR + Packet size (in bytes) x Queue Weight● Si cola Q activa:
Tep = Max(Tep(Q)) + Packet size (in bytes) x Queue Weight● Q está activa si en ella hay paquetes con Tep > NR● El planificador entrega el paquete con menor Tep● NR = Tep
Mecanismos QoSData Plane
-
Queueing and Scheduling(Encolado y Planificación)
Weighted Fair Queueing (WFQ)● Colas A:B:C. Bandwidth share 1:2:4.● QA (64B, Peso 4), QB (1500B, Peso 2), QC (300B, Peso 1)● NR = 0● Llega A1, Cola inactiva. 0 + 64 * 4 = 256 → Tep(A1)● Llega A2, Cola activa. 256 + 64 * 4 = 512 → Tep(A2)● Llega B1, Cola inactiva. 0 + 1500 * 2 = 3000 → Tep(B1)● Llega C1, Cola inactiva. 0 + 300 * 1 = 300 → Tep(C1)● Llega C2, Cola activa. 300 + 300 * 1 = 600 → Tep(C2)● Llega C3, Cola activa. 600 + 300 * 1 = 900 → Tep (C3)
Entrega: A1, C1, A2, C2, C3, B1...
Mecanismos QoSData Plane
-
Queueing and Scheduling(Encolado y Planificación)
Deficit Round Robin (DRR)● Es una versión modificada de WRR de manera que pueda ser
justo sin estar sesgado por el tamaño de los paquetes. ● Es otra versión “paquetizada” de GPS.● Indicadores:
● Quantums de peso o “crédito” disponible para la cola● Déficit o “deuda” del planificador hacia la cola.
Mecanismos QoSData Plane
-
Queueing and Scheduling(Encolado y Planificación)
Deficit Round Robin (DRR)● Colas A:B:C. Bandwidth share 1:2:4.● QA (64B, Q100), QB (1500B, Q200), QC (300B, Q400)● Queue loop:
● Quantum(QA)=100, entrego un paquete.Déficit(QA)=36 Bytes.● Quantum(QB)=200, no entrego nada.Déficit(QB)=200 Bytes.● Quantum(QC)=400, entrego un paquete.Déficit (QC)=100 Bytes.● El Quantum de cada cola es igual al Quantum nominal + Déficit.● Si la cola está vacía, Déficit(Q)=0
Mecanismos QoSData Plane
-
Queueing and Scheduling(Encolado y Planificación)
Deficit Round Robin (DRR)
Mecanismos QoSData Plane
-
Dropping Techniques(Descarte de paquetes - drop)
● ¿Cuándo? → Buffer lleno● ¿Por qué no buffers mas grandes? → Crece el tiempo de
encolado → mayor delay → SLA/objetivos de latencia ↓ dependiendo de la aplicación
● Técnicas:● Tail Drop● Weighted Tail Drop● Random Early Detection● Weighted Random Early Detection
Mecanismos QoSData Plane
-
Weighted Tail Drop
Mecanismos QoSData Plane
Probabilidad
0
1
qlim1 qlim2 Tamaño de la cola
-
Random Early Detection (RED)RFC 2309
Mecanismos QoSData Plane
Probabilidad
0
1
qmin qmax Tamaño de la cola
pmax
-
Weighted Random Early Detection (WRED)
Mecanismos QoSData Plane
Probabilidad
0
1
qminRojo
pmaxrojo
qmaxRojo
qminamarillo
qminverde
qmaxamarillo
qmaxamarillo Tamaño de la cola
pmaxamarillo
pmaxverde
-
Dropping TechniquesInteracción con TCP
● Implícita: Descarte de paquetes para que el emisor infiera que existe congestión (RED).
● Explícita: Notificar explícitamente situación de congestión mediante el marcado de paquetes. ECN - “Explicit Congestion Notification”
Mecanismos QoSData Plane
-
ECNExplicit Congestion Notification
● RFC 3168: The Addition of Explicit Congestion Notification (ECN) to IP
● A nivel IP:● Campo ECN:
● Bit ECT: ECN capable Transport● Bit CE: Congestion Experienced
● A nivel TCP:● Flags en Header:
● NS: Nonce Sum (RFC 3540 - Experimental)● ECE: ECN-Echo● CWR: Congestion Window Reduced
Mecanismos QoSData Plane
-
ECNExplicit Congestion Notification
Campos en IPv4
Mecanismos QoSData Plane
-
ECNExplicit Congestion Notification
Campos en TCP
Mecanismos QoSData Plane
-
ECNExplicit Congestion Notification
● En UDP propiamente dicho imposible por su naturaleza, pero si en capa superior:● RFC 6679: Explicit Congestion Notification (ECN) for RTP
over UDP● Debe ser negociada y soportada en la aplicación que lo
utilice, (ej. SIP/SDP, WebRTC), u otro transporte (ej. QUIC)
● DCCP Datagram Congestion Control Protocol● RFC 4340: Conexiones unicast bidireccionales de
datagramas no fiables con control de congestión
Mecanismos QoSData Plane
-
Control de Tráfico en Linux
Módulo TC (Traffic Control)
Capa IP → TC → Driver
●Shaping●Scheduling
●Policing●Dropping
Control de tráficoen Linux
-
Control de tráficoen 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áficoen Linux
-
Módulo TC
● Classless Queueing Disciplines:● Pfifo, bfifo● Pfifo_fast (default)● RED - Random Early Detection● Stochastic Fairness Queueing (SFQ)● Token Bucket Filter (TBF)
● Classful Disciplines:● PRIO● HTB - Hierarchical Token Bucket● CBQ - Class-based queuing
Control de tráficoen Linux
-
PFIFO Fast
Control de tráficoen Linux
-
SFQ - Stochastic Fairness Queuing
Control de tráficoen Linux
-
TBFToken Bucket Filter
Control de tráficoen Linux
-
Módulo TC
Definición Classless qdisc:tc qdisc add dev eth0 parent root handle 1:0 pfifo
Definición Classful qdisc:tc qdisc add dev eth0 parent root handle 1: htb default 1tc class add dev eth0 parent 1:0 classid 1:1 htb rate 2mbittc class add dev eth0 parent 1:0 classid 1:2 htb rate 2mbit ceil 1mbit
Control de tráficoen 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 1tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 1 fw classid 1:10
Control de tráficoen Linux
-
Control de tráficoen Linux
-
Próxima: QoS 2
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
Bibliografía
http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:networking:traffic_control
Diapositiva 1Diapositiva 2Diapositiva 3Diapositiva 4Diapositiva 5Diapositiva 6Diapositiva 7Diapositiva 8Diapositiva 9Diapositiva 10Diapositiva 11Diapositiva 12Diapositiva 13Diapositiva 14Diapositiva 15Diapositiva 16Diapositiva 17Diapositiva 18Diapositiva 19Diapositiva 20Diapositiva 21Diapositiva 22Diapositiva 23Diapositiva 24Diapositiva 25Diapositiva 26Diapositiva 27Diapositiva 28Diapositiva 29Diapositiva 30Diapositiva 31Diapositiva 32Diapositiva 33Diapositiva 34Diapositiva 35Diapositiva 36Diapositiva 37Diapositiva 38Diapositiva 39Diapositiva 40Diapositiva 41Diapositiva 42Diapositiva 43Diapositiva 44Diapositiva 45Diapositiva 46