46
Calidad de Servicio (Quality of Service - QoS) - 2019 - Laboratorio de REDES Recuperación de Información y Estudios de la Web Administración y Gestión de Redes Lic. en Sistemas de Información Equipo docente: Fernando Lorge ([email protected]) Santiago Ricci ([email protected]) Alejandro Iglesias ([email protected]) Mauro Meloni ([email protected])

Calidad de Servicio (Quality of Service - QoS)...Calidad de Servicio (Quality of Service - QoS) - 2019 - Laboratorio de REDES Recuperación de Información y Estudios de la Web Administración

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

  • 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