Vous êtes sur la page 1sur 16

QoS dans le réseau

Chapitre 4 : Ordonnancement et QoS


Scheduling

2011 RMMQoS-chap4 1

Objectifs
•  Hypothèse : plusieurs flux en compétition
–  dans un switch/routeur
–  même interface de sortie
•  Quelques objectifs possibles :
–  obtenir des garanties pour un flux
•  ex : délai < 100 ms
•  indépendamment autres flux
–  protéger (isoler) un flux des autres
–  répartir les ressources de façon contrôlée
•  équité, priorité, …

2011 RMMQoS-chap4 2

Étapes de la QoS

flux

Mise en forme classifier policer commuter Gestion de file Ordonnancer


shaping marquer AQM scheduling

Contrôle d’admission/
réservation
host réseau

2011 RMMQoS-chap4 3

1
Ordonnancement

•  N paquets en attente même sortie


–  Buffers (file d attente)
–  choisir lequel envoyer ( = ordre)
•  si sortie libre
–  éventuellement lequel supprimer
•  si buffers plein

2011 RMMQoS-chap4 4

FIFO + drop tail

•  Solution simple :
–  une seule file FIFO
–  si la file est pleine, rejeter paquet arrivant
•  drop tail (ou tail drop)

•  Couramment utilisée
–  pas de protection ni de priorités
–  équité très approximative
•  favorise les flux gourmands => congestion

2011 RMMQoS-chap4 5

Priority Queuing

•  Plusieurs files FIFO : F1, F2, …


–  de priorités décroissantes
–  A chaque instant si sortie libre
•  prendre file non vide de priorité maximale
–  lui appliquer discipline FIFO
•  Priorités strictes
–  une file n est servie que si les files plus prioritaires
sont vides
–  risque de famine
•  si ∑ (débit files F1, …, Fj) ≥ débit lien
–  file Fj+1 jamais servie
2011 RMMQoS-chap4 6

2
Priority Queuing (suite)

•  Facile à implémenter
•  Nécessite un classifieur (classifier)
–  Ex : champ ToS (Type of service) entête IPv4
•  3 bits de précédence (0-5 user 6-7 réseau)
- 0 - 000 - Routine (données ordinaires)
- 1 - 001 - Prioritaire
- 2 - 010 - Immédiat
- 3 - 011 - Urgent
- 4 - 100 - Très urgent
- 5 - 101 - Critique
- 6 - 110 - Supervision interconnexion (ex PIM, VRRP,
IGMP, OSPF)
- 7 - 111 - Supervision réseau
2011 RMMQoS-chap4 7

Priority Queuing (suite)

•  entête ethernet champ CoS (Class of service)


•  Les trames ethernet peuvent contenir un tag
–  Utilisé pour les VLAN (VLAN id)
–  Champ priorité codé sur 3 bits (IEEE 802.1D)
•  Note : Champ Cos de MPLS
user_priority Acronym Traffic type
1 BK Background
2 — Spare
0 (Default) BE Best Effort
3 EE Excellent Effort
4 CL Controlled Load
5 VI Video, < 100 ms latency and jitter
6 VO Voice, < 10 ms latency and jitter
7 NC Network Control
2011 RMMQoS-chap4 8

Autres critères de classification


–  interface d entrée (favoriser un terminal)
–  entête IP
–  port TCP/UDP
•  ex : telnet prioritaire sur http ou smtp
•  remarque : quid de RTP ?
–  adresses DST et SRC (IP ou ethernet)
•  = flux
•  comment configurer ?

2011 RMMQoS-chap4 9

3
2011 RMMQoS-chap4 10

Ex : ré-ordonnancement des paquets

2011 RMMQoS-chap4 11

Ex : Priority Queuing routeurs cisco

•  4 priorités
–  haute, moyenne, normale, basse
–  par défaut : normale
–  configuré statiquement

•  Sur switch/routeur 3650 :


–  Possibilité d’une file prioritaire

2011 RMMQoS-chap4 12

4
Equité

•  Assurer équité/protection
–  entre flux ou classes de flux
–  éventuellement avec des poids différents
•  Qu est-ce qu être équitable
–  équité max-min (max-min fair share)
–  ex en terme de débit
–  on suppose que ∑ demandes > disponible

2011 RMMQoS-chap4 13

Equité (suite)

•  Equité Max-Min
–  n flux (ou classes)
–  capacité totale C
–  demandes d1 ≤ d2 ≤ … ≤ dn
–  ∑ di > C
–  si tous les di ≥ C/n => allouer C/n à chacun
–  sinon
•  allouer d1 au premier
•  partager récursivement C - d1 aux n-1 autres flux

2011 RMMQoS-chap4 14

•  Exemple
–  4 demandes (flux) 1, 11, 17,19 (total 48)
–  capacité 40
–  Allocation : 1, 11, 14, 14
Remarque :
allocation proportionnelle de 40/48 de la
demande favoriserait les demandes
importantes : 0.83 , 9.16, 14.16, 15.83
risque de sur estimer les demandes

2011 RMMQoS-chap4 15

5
Round Robin

•  Round Robin = Tour de rôle (tourniquet)


•  Idée :
–  une FIFO par classe
–  servir un paquet par FIFO à tour de rôle
•  simple
•  poids différents des différentes classes ?
–  adapter équité max-min
»  multiplier une source par son poids
»  pendant un tour servir cette FIFO n fois
»  => Weighted Round Robin (Tour de rôle pondéré)
•  pas équitable :
»  paquets de tailles différentes ?
2011 RMMQoS-chap4 16

ex : Custom Queuing routeurs cisco

•  17 FIFO
–  dont 1 pour signalisation
–  chaque file a un poids
–  classification par protocole, interface
d entrée, …
–  configuration statique
–  Weighted Round Robin (WRR)

2011 RMMQoS-chap4 17

Weighted Fair Queuing (WFQ)

•  Equité en présence
–  de poids différents
–  de paquets de taille différente
problème ne se pose pas avec ATM
idée du Fair Queuing
simuler le cas où
paquets divisés en parties très petites
par exemple par bits
on envoie un bit de chaque file active à chaque tour
( simule un envoi en parallèle à un débit plus faible)

2011 RMMQoS-chap4 18

6
WFQ théorie

2011 RMMQoS-chap4 19

FQ : pratique
•  calculer finish time des paquets
–  temps où un paquet aurait été envoyé
•  avec « méthode théorique » par bit
–  envoyer dans l ordre des finish time
•  => arrivent même instant que théorie
–  pendant un « tour » on « consomme »
•  un bit par file non vide ( = active)
•  durée réelle d un tour = nombre de files
actives
2011 RMMQoS-chap4 20

Algorithme FQ

Variable NT = numéro de tour, initialement 0


Temps (initialement 0) 1 unité = envoi 1 bit, initial. 0
chaque paquet a un Numéro de Fin NF
NF d une file = NF du dernier paquet
–  Paquet arrive dans file vide
•  =>NF(paquet) := NT + taille(paquet)
–  Paquet arrive dans file active
•  => NF(paquet) := NF(File) + taille paquet
–  Paquets servis dans l ordre de leurs NF
•  ex æquo => arbitraire

2011 RMMQoS-chap4 21

7
Exemple FQ
•  3 files A, B et C
•  temps 0, paquets P1, P2, P3 de tailles 2, 6, 6 dans A,B,C
•  au temps 7, paquets P4, P5 de tailles 2 dans files A et B
•  NF(P1) =2, NF(P2) = NF(P3) = 6
•  temps 0, NT=0 : envoyer P1
•  temps 2, NT = 2/3 : envoyer P2, A devient inactive
•  temps 6, NT = 2/3 + 2 (4 bits 2 files)
•  temps 7, NT vaut 2/3 + 2 + 1/2 (1 bit 2 files) = 3,16
=> NF(P4) = 3,16+ 2 = 5,16 (vide) NF(P5) = 8 (non vide)
•  temps 8, NT = 3+1/6 + 1/3 = 3,5, P2 est fini envoyer P4
•  temps 10 NT = 3,5 + 2/3, P4 fini, envoyer P3 (A vide)
•  temps 16 NT = 3,5 + 2/3 + 3 P3 fini, envoyer P5 (C vide)
•  temps 18, NT = 6,5 + 2/3 + 2, P5 fini
2011 RMMQoS-chap4 22

Ex : WFQ routeurs cisco

•  WFQ par flux (sur certains routeurs)


–  files créées dynamiquement
•  détection flux actifs
–  poids affectés
•  via le champ précédence IP
•  poids proportionnel à précédence +1
–  possibilité de réservation
•  via protocole RSVP

2011 RMMQoS-chap4 23

Combien y a-t-il de flux ?


•  Exemple d une trace de 15 minutes
–  connexion Osiris-Renater (interface giga)
–  débit moyen environ 200-300 Mb/s
–  au total environ 480 000 flux TCP,
–  76 M paquets, 60 Go
–  graphe suivant : flux découpé en microflux
•  si silence d une seconde

2011 RMMQoS-chap4 24

8
2011 RMMQoS-chap4 25

2011 RMMQoS-chap4 26

Ordonnancement

•  Un bon ordonnancement est


–  facile à implémenter et rapide
•  à 10 Gb/s : 100 ns pour décider ?
•  proportionnel au nombre de classes/flux ?
–  équitable
–  fournit des bornes (garanties)
–  permet un contrôle d’admission facile

2011 RMMQoS-chap4 27

9
Contrôle d’admission

•  Garanties de QoS pour un flux


–  => réseau ne peut accepter toutes
demandes
–  Phase initiale de contrôle admission
•  vérification ressources disponibles
•  par rapport demandes flux
•  => en général réservation
–  Peu adapté à un mode sans connexion
•  RSVP (voir architecture intserv)

2011 RMMQoS-chap4 28

Ordonnancement

•  Agrégation de flux => classes


–  moins de files
–  pas de protection dans une classe ?

2011 RMMQoS-chap4 29

Garanties de QoS avec WFQ

•  Peut-on avoir des garanties sur un flux


traversant n ordonnanceurs WFQ par
flux ?
•  Débit garanti
–  débit sur un lien au moins D/n (sans poids)
•  ou poids(file)*D / ∑ poids si WFQ
–  globalement min des débits sur chaque lien

2011 RMMQoS-chap4 30

10
Garanties de QoS avec WFQ

•  Délai garanti ?
–  Délais se décomposent :
1.  Délais de propagation (indépendant trafic)
2.  Délais dûs aux paquets précédents du même flux/
classe
3.  Délais dûs aux paquets des autres flux/classe

–  Même sur réseau peu chargé


•  Gigue due aux autres flux

2011 RMMQoS-chap4 31

Garanties de QoS avec WFQ

•  Délai garanti ?
–  possible seulement si émetteur limité
•  Sinon nombre arbitraire paquet dans file d attente
•  => délai arbitraire (ou perte)
•  émission contrôlée par un leaky bucket (seau à fuite) débit ρ et de
capacité (rafale) σ
•  Principe leaky bucket (version par bit) :
–  réserve (seau) de σ jetons maximum
–  Nouveaux jetons arrivent à raison de ρ par seconde
–  Un paquet de L bits ne peut être émis que s’il y a au moins L jetons
–  (qu’il consomme) sinon il attend
Propriété :
Emetteur ne peut transmettre plus de σ + t ρ bits pendant temps t

2011 RMMQoS-chap4 32

Garanties délai WFQ (suite)

P = taille plus grand paquet de tous les flux


P idem pour ce flux
g(k) = bande passante allouée au flux sur le kième WFQ
g = min g(k) > ρ (réservation > débit émis)
r(k) = débit du kième lien (donc g(k) < r(k) ) (débit lien > réservation )

Délai max ≤ σ/g + ∑ P /g(k) + ∑ P/r(k) + Tprop


délai burst émission attente
total virtuelle paquet
sur file k autres flux
Min 0 ∑ P /r(k) 0 Tprop

2011 RMMQoS-chap4 33

11
Garanties WFQ (suite)

Conclusions :
•  Plus on alloue de BP (g) par rapport débit
émission (ρ) , plus délai D est faible
=> surallocation
•  Plus les paquets sont petits plus délai max D
faible
•  Nécessite shaping et/ou policing en entrée
•  Plus il y a de sauts plus c est difficile et plus
la borne est statistiquement surestimée
2011 RMMQoS-chap4 34

Exemple
•  Route de 20 sauts P = 10Kb
∑ P/r(k) = 0,2ms (liens giga) à 200 ms (liens à 1Mb/s)
Si sortie occupée quand paquet arrive
•  Téléphonie avec P = 128 octets, 64Kb/s réservés
∑ P /g(k) = 320 ms (160 ms si 128 Kb/s réservés)

2011 RMMQoS-chap4 35

Gestion des rejets


•  Paquet arrive dans une file pleine
–  rejeter un paquet (drop)
–  => Active Queue Management (AQM)
–  si couche transport adaptative
•  retransmet (TCP)
•  adapte débit après un retard (TCP)
•  drop sert d indicateur à l émetteur
–  problème si application non adaptative
•  Ex : flux RTP vidéo en streaming
•  Perte non compensée, débit non réduit
2011 RMMQoS-chap4 36

12
Rejets (2)

•  Drop tail (ou tail drop)


–  rejet paquet arrivant file pleine
–  très simple, très implémenté
–  mais indication tardive (pour TCP)
•  congestion déjà là
•  réaction après un RTT
•  => risque pertes multiples
–  variante : WTD (weighted Tail Drop)
•  à voir sur cisco 3560
•  seuils de remplissage différents pour n classes

2011 RMMQoS-chap4 37

RED
•  RED : Random Early Discard
–  Pour sources réactives aux pertes (TCP)
–  paquets rejetés aléatoirement avant file
pleine
–  => 1 source ralentit avant congestion
–  statistiquement toutes sources réactives
ralentissent

2011 RMMQoS-chap4 38

Rejet : RED
•  En pratique
–  définir seuil remplissage file S (ex 50%)
–  Calcul remplissage en moyenne pondérée MP
•  MP = (1-a) MP + a Remplissage_courant (ex a = 0,002)
–  si file assez remplie MP > S
•  rejeter nouveau paquet
–  avec probabilité proportionnelle à MP :
–  P = Pmax * (MP -S ) / (MaxS -S)
Probabilité rejet

1
Pmax

S MaxS
Longueur moyenne file d attente
2011 RMMQoS-chap4 39

13
Rejet : RED

•  RED : Donne bons résultats avec TCP


•  petites rafales non pénalisées
•  flux gourmands pénalisés (ou ralentissent : TCP)
•  Implanté dans certains routeurs
•  Assez peu utilisé en pratique

•  Variante WRED: Weighted RED (cisco)


–  le seuil est différent par précédence IP
•  Très nombreuses variantes proposées

2011 RMMQoS-chap4 40

Rejet (3)

•  Si plusieurs files
–  indépendantes (pool buffers indépendants)
•  => appliquer politique à chaque file
–  utilisent même pool de buffer
•  limitation globale somme des files
•  rejet file moins prioritaire
•  ou rejet file plus longue

2011 RMMQoS-chap4 41

Rejet (4)

•  rejeter paquet déjà en file


–  premier (émetteur « prévenu » plus vite)
–  aléatoire (plus difficile à implémenter)
–  dernier …

2011 RMMQoS-chap4 42

14
Policing et Shaping

•  Indépendamment de la charge
–  limiter le débit à un seuil fixé
•  nécessaire pour les garanties de délai
•  shaping : mise en forme
–  faire attendre les paquets en trop
–  lissage des pics de trafic
–  utilisé en sortie (hôte, réseau, …)
–  seau à jeton débit + taille rafale (= buffer)
•  suppose que l application émettrice peut attendre

2011 RMMQoS-chap4 43

Contrôle de conformité
•  Policing
–  utilisé en entrée (de domaine avec QoS)
–  vérifier si trafic conforme
–  trafic non conforme
•  jeté ou marqué (ex : diminuer sa priorité)
–  Algorithme : seau à fuite (leaky bucket)
•  débit fuite, taille rafales acceptées

2011 RMMQoS-chap4 44

Classification

•  Permet ensuite appliquer politique


–  marquage, policing, ordonnancement, rejet
•  basée sur
–  interface d entrée
–  champs spécifiques à la QoS
•  ethernet avec tag : champ Cos 3 bits
•  IP : champ ToS 8 bits (3 bits de précédence)
•  ou 8 bits de DSCP (Differentiated Service Code Point)
–  si architecture Diffserv
–  autres champs
•  adresses Mac, IP, protocole, port …
2011 RMMQoS-chap4 45

15
Classification et marquage

•  classification sur entêtes coûteuse


–  => faite à l entrée du domaine QoS
–  peut être ensuite marquée dans paquet :
•  champ CoS ou DSCP
•  inspection rapide dans les autres switchs/
routeurs

2011 RMMQoS-chap4 46

Chaîne traitement paquet


marquer attente shaper

classifier marquer policer commuter AQM attente shaper scheduler

marquer attente shaper


1 Classifier trame en entrée
en fonction
2 marquer trame trame et port d entrée
3 policer
=> classe
champ DSCP ou ToS
4 commuter
simême
classe a un débit limité
mettreclasse
5 AQMexcédent
envoyer dans
trame
:
= même
file sortie
vers
QoS
sortie
6 Shaper (éventuel)
éventuellement
utilise table commutation
supprimé ou déclassé
si file soumise
jeter ce à
7 scheduler/ordonnanceur
ethernet / shaping
paquet
IP … (drop tail)
limite
parmi débit/rafale
files
jeterdpaquet
peut nécessiter attentes enprêtes
buffers file (RED)
d entrée
indépendamment
choisir autres files
paquet à envoyer
RR, PQ, WFQ, …
2011 RMMQoS-chap4 47

16