Documente Academic
Documente Profesional
Documente Cultură
Filière
Ingénieurs en Télécommunications
Option
Ingénierie des Réseaux
Elaboré par :
Hana MANSOUR
Encadré par :
M. Fakhreddine KHELIFA
M. Mounir FRIKHA
A mes parents,
A mes grands-parents,
A mes soeurs,
et du soutien permanent
Hana "
i
Avant Propos
Le travail présenté dans ce projet de fin d’études a été effectué dans le cadre de la
préparation du diplôme d’ingénieur en télécommunications, option Ingénierie des Réseaux
(IRES) à l’Ecole Supérieure des Communications de Tunis (SUP’COM).
Ce projet s’inscrit dans le cadre d’étude des mécanismes de différenciation de services et
la possibilité d’intégration de l’approche de régulation dynamique aux priorités des classes de
DiffServ.
Tous mes enseignants qui ont contribué à ma formation ainsi qu’aux responsables de
SUP’COM et de CERT pour les moyens qu’ils m’ont offert afin de mener à terme ce travail.
Mes vifs remerciements s’adressent aussi à tous ceux qui m’ont encouragé de près ou de
loin tout au long de ce travail.
ii
Résumé
iii
Sommaire
DEDICACE......................................................................................................................................i
AVANT PROPOS ......................................................................................................................... ii
RESUME....................................................................................................................................... iii
LISTE DES FIGURES................................................................................................................ L4
LISTE DES TABLEAUX ........................................................................................................... L6
LISTE DES ABREVIATIONS .................................................................................................. L7
INTRODUCTION GENERALE ..................................................................................................1
AF Assured Forwarding
BA Behavior Aggregate
BE Best Effort
CBR Constant Bit Rate
CBS Committed Burst Size
CIR Committed Information Rate
CP Code Point
CS Class Selector
DiffServ Differentiated Services
DSCP DiffServ Code Point
EDF Earliest Deadline First
EF Expedited Forwarding
FTP File Transfer Protocol
IETF Internet Engineering Task Force
IntServ Integrated Service
IP Internet Protocol
MF Multi Field
MPLS Multi Protocol Label Switching
NS Network Simulator
PID Proportionnel Intégral Dérivé
PHB Per Hob Behavior
RSVP Ressource Reservation Protocol
QoS Quality of Service
RED Random Early Discard
I- Introduction
Internet a fonctionné sans que les usagers ressentent la nécessité d'introduire de traitement
différencié au niveau de la couche réseau. Le type de communication dominant le réseau, depuis,
est le transfert de fichiers et le web. Cependant, aujourd’hui, on constate le développement
d'applications s'appuyant sur des modes de communication à la sémantique radicalement
différente du transfert de fichier, comme la voix sur IP ou des applications interactives. D’où le
service best-effort devient, alors, un support de communication peu satisfaisant pour ces types de
flux. En effet, il est peu difficile de supporter ces applications au niveau des protocoles de
transport seulement. Mais il est pertinent d'aller vers l'enrichissement de la couche réseau avec de
nouveaux mécanismes d’ordonnancement et de gestion de file d’attente assurant une bonne
qualité de service.
Dans ce Chapitre, nous nous intéressons à une des mécanismes supportant ces
communications à la sémantique nouvelle, qui est le modèle DiffServ. Tout d’abord, nous
présentons les indicateurs de service et les mécanismes retenus pour caractériser les performances
d’un réseau et assurer une bonne qualité. Puis, nous décrivons l’apport du modèle DiffServ.
Ensuite, nous étudions les différents blocs fonctionnels dans le routeur de ce modèle. Enfin nous
traitons la possibilité d’intégration de DiffServ avec d’autres modèles.
pour les applications en temps réel. Le besoin en équipements de plus en plus fiables, d'un bout à
l'autre du réseau, est donc devenu incontournable. Cependant, les inconvénients rencontrés dans
les réseaux (perte de paquets, congestion…) ne peuvent pas être surmontés sans une rénovation
profonde de l'architecture.
La QoS d’une application est définie comme étant l’ensemble des exigences requises par
cette application en terme de bande passante, délai, gigue et taux de perte. Ces exigences sont
intrinsèques à la nature des applications. Ces dernières peuvent être classées en deux catégories :
¾ Les applications temps-réel : Ce type d’applications dites temps-réel ont un besoin
ferme en terme de délai et de faible variation de délai (gigue). Cependant, elles peuvent
tolérer quelques pertes de paquets.
¾ Les applications non-temps-réel : Les applications dites non-temps-réel (ou Best-Effort)
sont plus sensibles aux pertes de paquets (par rejet) qu’à des délais élevés. Dans ce cas, la
fiabilité de la communication est plus importante que la garantie d’un délai borné
Ainsi, on définit la qualité de service comme étant la méthode qui permet de garantir à un
trafic de données, quelle que soit sa nature, les meilleures conditions d'acheminement répondant à
des exigences prédéfinies. Elle fixe notamment des règles de priorité entre les différents flux.
Dans la suite, nous nous focalisons sur les exigences requises par les applications en termes de
disponibilité, la bande passante, le délai, la gigue et le taux de perte [1].
La maîtrise de la qualité de service est un enjeu essentiel. Elle doit être visualisée et
mesurée de bout en bout. Le contexte joue un rôle crucial dans l’appréciation des paramètres de
la qualité de service qu’il faut adapter aux besoins de l’entreprise.
II-1-1- Disponibilité
La bande passante (ou le débit maximum) est considérée comme étant le taux de transfert
maximum pouvant être maintenu entre deux points terminaux. La QoS ne génère pas la bande
passante. En revanche, ses mécanismes permettent de gérer de façon optimale la bande passante
du réseau en fonction des demandes des applications. Dans les réseaux à commutation de
paquets, la garantie de bande passante est un paramètre de performance très important pour
garantir la QoS aux flux temps-réel. Ces derniers, ont une exigence minimale en terme de bande
passante égale à leur débit moyen.
La latence correspond au temps que requière un paquet pour traverser le réseau d’un point
d’entrée à un point de sortie. Elle est généralement appelée le délai de bout-en-bout. Ce
paramètre est introduit par les dispositifs intermédiaires du réseau tels que les routeurs ou les
commutateurs dans les réseaux à commutation de paquets. La figure I-1 montre les différentes
composantes susceptibles d’introduire un délai dans la transmission des paquets traversant le
réseau.
Délai introduit par un dispositif
intermédiaire du réseau
Fonction de
routage ou
de
commutation
En général, la majeure partie du délai est celle introduite par les files d’attente en sortie.
En effet, plusieurs flux en entrée se trouvent en concurrence pour accéder au médium de
transmission. Les algorithmes d’ordonnancement ont été mis en oeuvre pour assurer un partage
adéquat des ressources en fonction des exigences des applications afin d’améliorer leurs
performances. L’exigence d’une application en terme de délai pourrait être stricte, auquel cas le
réseau doit garantir une borne maximale sur le délai instantané de bout-en-bout, ou moyen auquel
cas le réseau offre une valeur moyenne du délai à long terme avec la possibilité de fluctuations en
cas de surcharge du réseau.
La gigue se définit comme la variation des délais d’acheminement (latence) des paquets
sur le réseau. Ce paramètre est particulièrement sensible pour les applications multimédias qui
requièrent un délai inter paquet relativement stable. Il dépend principalement du type et du
volume de trafic sur le réseau et du type et du nombre d’équipements réseau. La figure I-2 montre
une distribution typique du délai et illustre le concept de la gigue.
D is tr ib u tio n
d u d é la i
d é la i
G ig u e
D é la i D é la i D é la i
m in m oyen m ax
Les flux temps-réel tels que les flux vidéo, audio et voix sur IP sont très sensibles à la
gigue. En effet, la non considération de cette métrique implique une discontinuité au niveau de la
restitution des données à la destination. Par exemple, la variation de délai dans une transmission
vidéo pourrait entraîner des images saccadées aléatoirement ce qui dégrade considérablement la
qualité de service de l’application. Pour réduire l’effet de la gigue, les paquets temps-réel sont
bufférisés à la destination avant leur lecture. Pour cela, la gigue doit être bornée pour prévoir la
taille du tampon qui dépend principalement de la valeur de la gigue et du débit de réception des
données [2].
Ce paramètre représente le pourcentage des unités de données qui ne peuvent pas atteindre
leur destination dans un intervalle de temps spécifique. Cette perte peut être le résultat d’un rejet
de paquets lorsque les ressources sont saturées ou d’un dépassement d’échéance. Dans une
application temps-réel, un paquet arrivant au-delà de son échéance ne fournira aucune
information utile à l’application. Le taux de perte est communément représenté par la «
probabilité » de perte. La retransmission d’un paquet perdu ne change pas la valeur de la
probabilité de perte mais fournit un moyen de recouvrement de perte [1].
La Qualité de Service peut être résumée, donc, comme étant un traitement préférentiel
pour certains types de trafic moyennant autant des paramètres qui la décrit. Par exemple, la
variation de délai est un facteur important pour les applications temps-réel (comme la Voix sur
IP). En effet, le trafic VoIP (voix sur IP) n’a pas besoin de beaucoup de bande passante mais il
nécessite un délai et une gigue faible. Au contraire, le trafic FTP (File Transfert Protocol)
nécessite une largeur de bande importante mais le délai n’est pas un critère primordial. Le tableau
ci-dessous résume les besoins en qualité de service de certaines applications susceptibles d'être
transportés sur les réseaux haut débit [3].
Débit moyen Délai Gigue maximum Taux d’erreur Taux d’erreur par
Service
(Mbit/s) maximum (s) (ms) par bit message
Voix non
0.064 0.25 10 < 10 -1 < 10 -1
compressée
Vidéo
1 à 30 0.25 1 < 10 -6 10 -9
compressée
Image 1 à 10 1 - 0 à 10 -4 0 à 10 -9
Transfert de
1 à 100 1 - 0 0
fichiers
Le problème à l’heure actuelle est que la plupart des réseaux ont un ou plusieurs liaisons
critiques qui dégradent les performances des applications. Ceci vient du fait qu’il n’y a pas de
distinction entre le trafic prioritaire et le trafic non prioritaire. La solution proposée par la
différenciation des services est de séparer les deux types de trafic sur les liens critiques. Donc,
dans le cas où le réseau serait saturé, une alternative à l’augmentation de la bande passante est la
différenciation du trafic. Actuellement, il y a deux modèles, proposés par l’IETF, permettant la
différenciation du trafic tels que IntServ et DiffServ.
Pour satisfaire les besoins des applications dans les réseaux à commutation de paquets,
une première solution suggère d’allouer plus de bande passante aux flux, afin de résoudre les
problèmes de congestion, perte de paquets et de délai puisque la bande passante devient
disponible à faible coût. Cependant, plusieurs applications temps-réel ont besoin de garanties
particulièrement en terme de délai, gigue et taux de perte et non seulement en terme de bande
passante. La proposition d’allouer des ressources supplémentaires n’est pas un choix judicieux
pour assurer la QoS. D’une part, ce choix conduit à un surdimensionnement du réseau réduisant
ainsi son taux d’utilisation en temps normal. D’autre part, avec l’émergence des applications
multimédia et l’utilisation croissante des réseaux à commutation de paquets tels que l’Internet, la
saturation rapide de la totalité des ressources du réseau est prévue. Ceci ramène de nouveau à la
situation de ressources limitées. La deuxième solution consiste à fournir les mécanismes
nécessaires pour assurer la QoS qui se résument principalement en trois fonctionnalités
supplémentaires aux services fournis par le réseau. C’est un ensemble de traitements différenciés
réalisés soit au niveau de la source de trafic (terminal émetteur) soit dans les organes du réseau.
On peut distinguer les mécanismes suivants [2]:
¾ Le « traffic shaping » ou mise en forme du trafic consiste principalement à introduire
du délai entre les émissions de paquets de manière à éviter ou limiter les rafales de
trafic.
¾ Le « traffic policing » est une opération qui consiste à vérifier que le trafic émis est
bien conforme à la description qui a été faite par la source.
¾ Le mécanisme de « buffer management » ou gestion de buffer consiste à éliminer des
paquets en cas de congestion du buffer d’une interface de sortie de manière sélective,
en fonction des paramètres de QoS associés aux flux.
¾ L’opération de traffic scheduling consiste à ordonnancer la transmission des paquets
présents dans les buffers de l’interface de sortie en fonction des paramètres de QoS
associés aux flux. Cette opération peut être effectuée par différents algorithmes.
Le domaine de la qualité de service est très vaste et complexe puisque les applications ne
cessent de se développer et les exigences varient et se ramifient. C’est un thème dynamique qui
accroît avec le progrès technique. Nous avons présenté dans ce qui précède la notion de QoS, ses
paramètres ainsi que les mécanismes permettant son contrôle. Ces derniers réalisent des actions
nécessaires au support de la QoS dans le réseau. Le placement et la configuration de ces
mécanismes dans le réseau, ainsi que leurs interactions, définissent un "modèle" de qualité de
service. Nous nous intéressons dans la suite à étudier le modèle Diffserv permettant de définir
une configuration statique des mécanismes suite à l’identification des besoins de QoS les plus
généraux.
Cependant, le principe de simplicité au niveau réseau, est remis en cause puisque les
routeurs ont des tâches désormais complexes de gestion des flux, contrôle de l'utilisation…etc.
De plus, au niveau technique, la faiblesse principale de l’architecture IntServ est sa non-
résistance au facteur d’échelle [1]. Le nombre de flux qui peuvent bénéficier d’une réservation est
assez limité, en particulier dans les routeurs du coeur du réseau. Ces équipements doivent traiter
des milliers des flux simultanément, et le coût introduit par la gestion d’états et l’ordonnancement
par flux peut entraîner une réduction considérable de leurs performances.
La standardisation du modèle IntServ s’est pratiquement achevée en 1996. Pourtant, le
modèle n’a jamais été implanté à grande échelle dans le réseau. Les faiblesses énumérées
précédemment empêchent son déploiement. De nouvelles propositions cherchant à offrir des
garanties strictes dans le réseau sont actuellement à l’étude. Elles se basent sur une architecture
hybride IntServ-DiffServ.
Une solution qui connaît un certain succès auprès des opérateurs, aujourd'hui, est le
protocole MPLS. C’est un standard de réservation de circuits virtuels que devrait fonctionner sur
la plupart des équipements de niveau liaison (sans passer par IP et les tables de routage) [1]. Bien
que la réservation de circuits soit performante, elle n'est pour l'instant possible qu'à l'échelle d'un
domaine administratif et pour un nombre relativement faible de circuits. La généralisation de
MPLS et l'interconnexion de domaines MPLS sont des thèmes actifs aujourd'hui, qui offriront
certainement à terme, des solutions d'ingénierie de trafic.
simple, modulaire, dont la mise en oeuvre peut s’effectuer d’une manière graduelle dans
l’Internet existant.
Les modèles DiffServ et IntServ cherchent à résoudre les mêmes problèmes tels que le
traitement correct des flux multimédia et un meilleur contrôle dans la distribution de la bande
passante. Néanmoins, le modèle DiffServ s’attaque à ces contraintes d'une manière moins
ambitieuse mais plus résistante. Dans ce modèle, il est impossible d’offrir des garanties strictes
ou de réserver des ressources. Par contre, la simplicité d'implantation permet à cette nouvelle
architecture de se voir déployée progressivement dans certaines régions de l'Internet [8].
Une des faiblesses du modèle IntServ est sa non-résistance au facteur d’échelle
(évolutivité). Dans ce dernier, tous les équipements du réseau doivent garder un état par flux
réservé. Il suffit qu’un nœud dans la route n’implémente pas les fonctionnalités IntServ pour que
la QoS ne puisse plus être strictement garantie. Cependant, dans l’architecture DiffServ, la
priorité est donnée au regroupement des flux dont les besoins sont similaires (agrégation) et à la
définition des traitements nécessaires dans les routeurs pour que l'agrégat de ces flux soit traité
correctement.
Pour assurer la robustesse du modèle, la création d'états et la classification par flux sont
deux fonctionnalités réservées aux routeurs d’entrée au réseau. Dans ces équipements, le nombre
de flux à traiter est considérablement réduit. Dans le reste des routeurs, des opérations très
simples, ne demandant pas la création d’états, assurent le traitement différencié.
Une autre reproche faite au modèle IntServ est la complexité du protocole de signalisation
RSVP [1]. Une grande partie de la lourdeur du protocole est due à la gestion des flux multicast et
des routes symétriques. La réservation de ressources pour des flux exige la définition de règles
d’agrégation et désagrégation dans les noeuds intermédiaires. Dans DiffServ, ce problème n’a pas
été spécifiquement abordé car les connexions multi-point n’interfèrent pas avec les mécanismes
propres à l’architecture. Dans ce modèle, la seule signalisation requise est une étiquette contenue
dans l’en-tête de chaque paquet. Nous résumons dans le tableau ci dessous, les différences entre
ces deux approches :
IntServ DiffServ
fournisseur s’engage à fournir la qualité demandée par l’émetteur. De son coté, l’émetteur est
conscient des limitations imposées par le contrat.
émetteur
ISP ISP
routeur de
frontière
Backbone (routeurs du coeur)
Cet exemple entre un site et un fournisseur d’accès peut s’appliquer également à deux
opérateurs. En général, les paquets doivent traverser plusieurs domaines administratifs avant
d’atteindre leur destination. Un accord est, donc, nécessaire entre domaines. Le fournisseur
d’accès a aussi des contraintes à respecter vis-à-vis de son opérateur. Le routeur d’entrée est
placé entre le réseau du fournisseur et celui de l’opérateur, réalisant des opérations similaires à
celles du routeur décrit précédemment. Par contre, les fonctions de contrôle de conformité ne
portent pas sur le trafic de chaque utilisateur, mais sur le trafic injecté par le fournisseur dans son
ensemble. Cette capacité d’agrégation assure la résistance du modèle au facteur d’échelle.
Les capacités des routeurs de sortie constituent une autre particularité de l’interconnexion
entre deux domaines. Un routeur de sortie est le dernier routeur traversé par un paquet avant de
quitter un domaine. Ces routeurs peuvent être chargés de traiter l’agrégat des flux quittant le
domaine afin de rendre le trafic conforme au contrat existant avec le prochain domaine. Pour
ceci, les flux appartenant à une classe de service peuvent être retardés, tandis que des paquets
d’une autre classe peuvent subir une modification dans leur niveau de priorité.
Une caractéristique de l'architecture DiffServ, qui lui permet d'être étendue à des réseaux,
est le fait que les routeurs de coeur ne considèrent pas les flux individuels. Les paquets IP ne sont
pas distingués au niveau fin du flux mais à un niveau plus grossier d'agrégats de flux. L'agrégat
d'appartenance d'un paquet est reconnu par un identifiant de classe enregistré dans le champ
DSCP (DiffServ Code Point). Cette étiquette est le champ qui identifie le traitement que le paquet
doit recevoir. Elle est codée sur 6 bits et fait parti des 8 bits codant le champ TOS d’IPv4 ou le
champ classe de trafic d’IPv6.
D SC P CU
En effet, les trois premiers bits de DSCP sont appelés Class Selector. Les codes DSCP de
type xxx000 (ou x est une variable binaire) correspondent aux classes de services principales.
Ceux-ci seront associés aux PHB (Per Hop Behviour) qui permettront le traitement différencié
des flux dans les routeurs intermédiaires. Plus la valeur de code point est élevée, plus le flux
correspondant sera prioritaire. Les deux derniers bits sont inutilisés [7].
Les agrégats sont en nombre réduit, fixé, bien inférieur au nombre de flux distincts qui
peuvent traverser un routeur. C'est le petit nombre de classes qui permet aux routeurs de coeur de
mettre en oeuvre un traitement différencié moins coûteux que celui des routeurs IntServ. Le
modèle DiffServ sépare le trafic par classes. Nous avons donc affaire à une granularité moins fine
mais qui devient en revanche plus évolutive. En effet, la granularité du flot implique la réaction
en chaîne suivante : plus il y a d'utilisateurs dans le réseau, plus il y a de flots ainsi que des
variables de classification et d'ordonnancement dans les routeurs à maintenir. Ceci a pour
conséquence une charge importante au niveau des routeurs qui deviennent alors de moins en
moins performants.
Composants du routeur de
frontière
Verificateur
rejeté
Mise en profil Classificateur Ordonnanceur
EF
selon l’entête IP
Les jetons arrivent
à un taux constant
EF
Les différents éléments présentés dans la figure (I-5) peuvent être facilement contrôlés par
un modèle à base de politiques. La configuration des ces éléments DiffServ reflète le SLA
(Service Level Agreement) entre le fournisseur de service et l’utilisateur. Il pouvait exister une
entité de gestion du domaine DiffServ qui représente un outil d’administration capable de fournir
la configuration adéquate aux routeurs.
Chaque équipement frontière met en oeuvre les mécanismes de classification, de
conditionnement et d’ordonnancement des trafics. L’ampleur de conditionnement de trafic exigée
est indépendante des détails des offres de service et peut s’étendre du simple marquage aux
opérations complexes de lissage et « policing ». Les routeurs à l'intérieur d'un domaine, quant à
eux, se consacrent exclusivement au traitement des paquets en utilisant le marquage spécifié par
les nœuds de bord.
paquets IP avec une haute probabilité sans tenir compte des délais. Cette famille de
PHB, scindée en quatre classes, soutient un partage plus flexible et plus dynamique des
ressources de réseau en maintenant des garanties fines de bande passante, un délai
minimum et de pertes appropriées pour le trafic à flot. Chaque classe AF supporte un
mécanisme permet de gérer les flux qui dépassent la capacité souscrite. Ceci est réalisé
grâce à trois niveaux de priorités (Drop Precedence) définis dans une classe AF et
différenciés par un algorithme de rejet sélectif. En cas de congestion dans une des
classes AF, les paquets de basse priorité sont rejetés en premier. La priorité peut être
modifiée dans le réseau par les opérateurs en fonction du respect ou non des contrats
SLA. Ainsi le service peut offrir une meilleure différenciation (classe et priorité), il ne
demande pas une coordination entre domaines. Cependant la qualité offerte dépend
énormément du niveau d’agrégation et de la présence de flux concurrents [10].
3. Best Effort (priorité basse) : représente le PHB par défaut et dont le DSCP vaut
« 000000 ». Le principe du Best Effort se traduit par une simplification à l’extrême des
équipements d’interconnexion. Quand la mémoire d’un routeur est saturée, les paquets
sont rejetés [1].
La figure ci dessous (I-6) illustre la procédure de classification. On distingue une
topologie de réseau qui se compose de trois sources : la première envoie un trafic CBR (Constant
Bit Rate) à 64 Kbit/S modélisant la voix, la deuxième génère un flux continu modélisant le trafic
AF1 et la dernière représente un trafic web. Le rôle de classificateur consiste, alors, à lier un flux
particulier et ses paramètres et l’assigner à une classe de service tout en traitant le champ
« Differentiated Service » DS. Ainsi, trois comportements sont distingués dans le routeur. Le
trafic voix est placé dans la file de haute priorité (EF), le flux web est classé dans une file AF et
le trafic provenant d’un serveur de base de donnée, par exemple, aura la priorité la plus faible.
La classification
EF
1 2 3
4 5 6
7 8 9
* 8 # DSCP Class1
IP Phone BA AF
/
DSCP class2
WWW Server
MF
BE
SLA C la s s 1
T r a ff ic D e s c r ip t o r (
C la s s 2
V o lu m e + tr a it e m e n t)
C la s s 3
F lu x A F
M e te r F lu x E F c o n fo r m e M a rk e r
F lu x E F n o n
c o n fo rm e
D ro p p e r
B- le « Shaper » et le « Dropper »
Suite à la vérification de la conformité vis-à-vis d’un profil, le lissage peut s’effectuer
lorsque les flux d’une classe dépassent le contrat SLA prédéfini. Cette fonctionnalité n’est pas
systématique et correspond à une règle de « policing » explicite dans le SLA. Les paquets sont
alors mis en file d’attente afin d’être transmis un peu plus tard lorsque le débit de la classe sera
considéré comme étant dans le profil du contrat. Le rejet des paquets intervient pour garantir le
débit fixé pour chaque classe de service. Dans le cadre d’un lissage, pour les files d’attente ayant
une taille finie, des dépassements de profil trop importants peuvent aussi provoquer un rejet des
paquets. Ainsi le régulateur de trafic assure principalement deux fonctions :
¾ Mise en forme du trafic (Traffic Shaping) : implantée généralement auprès des sources de
trafic. Cette fonction permet de lisser le flux généré à l’entrée du réseau pour être
conforme à une spécification particulière. Elle permet de contraindre le trafic pour le
rendre conforme à sa spécification connue par le réseau.
¾ La surveillance du trafic (Traffic Policing) : Implantée dans les dispositifs du réseau, cette
fonction permet de vérifier la conformité du trafic à son contrat, c'est-à-dire à sa
caractérisation déclarée lors de sa négociation avec le réseau en phase du contrôle
d’admission [12].
La différence entre ces deux fonctions réside dans leurs actions vis-à-vis d’un paquet non
conforme. Dans ce cas, la fonction de mise en forme du trafic retarde le paquet jusqu’à ce qu’il
soit conforme. Cependant, le traitement d’un tel paquet dans la fonction de surveillance du trafic
dépend de la politique adoptée. En effet, lors de l’arrivée d’un paquet non conforme, l’algorithme
de surveillance de trafic peut décider de retarder le paquet jusqu’à ce qu’il soit conforme, de
l’éliminer entièrement ou de décrémenter sa priorité avant de le transmettre. Les mécanismes de
régulation de trafic permettent d’imposer une forme spécifique au flux régulé. Théoriquement,
cette forme est exprimée par une fonction quelconque qui limite le nombre cumulatif d’arrivées
de paquets, appelée courbe d’arrivée, dans n’importe quel intervalle de temps. En pratique, cette
fonction est typiquement linéaire pour des raisons de simplicité d’implémentation. Il existe deux
modèles de courbes d’arrivée linéaires [2]:
¾ Le modèle de débit crête permet de limiter le débit maximal d’une source de trafic à un
débit crête. Il est caractérisé par la taille de paquet maximal noté M et le temps d’inter-
arrivée minimal entre deux paquets consécutifs notés Tmin. Ainsi, le débit crête
qu’autorise le régulateur de trafic est P = M / Tmin.
¾ Le modèle à débit moyen permet de limiter le débit moyen d’une source de trafic. Ce
régulateur est caractérisé par deux paramètres : la taille de la rafale permise notée b et le
débit moyen noté r.
Ces formes de trafic linéaires sont généralement obtenues par des régulateurs appelés seau
à jetons (Token Bucket) et seau percé (Leaky Bucket). Le régulateur du seau à jetons [13] dispose
d’un seau de jetons de taille b qui sont générés au rythme constant de r jetons par seconde.
Chaque paquet qui arrive consomme un nombre de jetons proportionnel à sa taille. S’il n’y a pas
assez de jetons dans le seau, le paquet sera mis en attente dans la file jusqu’à avoir le nombre
nécessaire de jetons, sinon il sera transmis. Le régulateur du seau percé dispose d’un seau de
taille b initialement vide. A chaque arrivée d’un paquet le seau est rempli avec une quantité de
fluide égale à la taille du paquet. Le seau percé est vidé du fluide au rythme constant r. Si la
quantité de fluide ajoutée lors de l’arrivée fait déborder le seau, alors le paquet est rejeté par le
régulateur. Dans le cas contraire, le paquet est transmis vers le réseau. La figure suivante illustre
les deux mécanismes du seau à jetons et du seau percé.
Paquets
arrivés r Paquets
Jetons arrivés
b b
r Vers le réseau r
Fig I-8 : Les mécanismes de régulation de trafic : le seau percé et le seau à jetons
C- Le marqueur
Le marquage fait référence à la mise à jour de la valeur du champ DS dans l’en-tête IP. En
effet, les informations fournies en entrée par le vérificateur et le classificateur permettront de
faire un choix sur la priorité à appliquer à chaque flux. Le bloc de marquage par exemple peut
décider qu’en cas de dépassement du contrat, les flux excédentaires seront marqués avec une
priorité moindre. Les marqueurs placent dans la zone DS d’un paquet un code point particulier de
comportement DS. Donc, c’est dans ce module que sera affecté le champ DSCP. Ce traitement
est basé actuellement sur deux token buckets. Le principe se résume comme suit [12] :
¾ Si le trafic est conforme aux deux, les paquets sont marqués en vert,
¾ Si le trafic n’est conforme qu’un des deux, les paquets seront marqués en orangé.
¾ Si le trafic n’est conforme à aucun alors les paquets seront marqués en rouge et ils auront
une probabilité de rejet plus importante que les autres.
DSCP class2
Une fois les paquets sont marqués et placés dans différentes files d’attente selon la valeur
de la classe de service identifiée dans l’en-tête IP, ils seront servis par un ordonnanceur. Ce
dernier utilise des algorithmes et des disciplines d’ordonnancement qui permettent de contrôler la
distribution de ressources. Plusieurs types de comportements d’ordonnancement et de politiques
de rejets peuvent être employés pour fournir le PHB adéquat.
Les mécanismes d’ordonnancement permettent d’assurer le partage des ressources selon
une politique de service spécifique à la nature de garantie à fournir aux applications en
concurrence d’accès aux ressources. Plusieurs algorithmes d’ordonnancement ont été proposés
pour satisfaire les exigences des applications temps-réel et fournir un service plus sophistiqué que
l’ordonnancement FIFO. Ce dernier ne présente aucune garantie particulière à une application
vis-à-vis d’une autre. Diverses classifications, présentées, dans la figure ci- dessous, peuvent être
appliquées à ces algorithmes pour caractériser leurs comportements [2]:
Algorithme
d’ordonnancement
Statique Dynamique
Priorité fixe
Guidé par Ordre Guidé par le contrôle de
l’echéance d’arrivée la bande passante
Dans un algorithme d’ordonnancement statique, les priorités des applications sont fixes et
invariantes au cours du temps. Un message moins prioritaire n’est servi que si tous les messages
plus prioritaires en attente sont tous servis. Dans un algorithme d’ordonnancement dynamique, la
priorité des messages est recalculée, chaque fois qu’un nouveau paquet arrive, suivant une règle
spécifique à l’ordonnancement. Par exemple, l’algorithme Earliest Deadline First (EDF) cherche
à chaque tour de sélection le client ayant l’échéance la plus proche parmi tous les clients en
attente. En ce qui concerne la catégorie d’ordonnancement guidé par le contrôle de bande
Des travaux sont menés au sein de l’IETF pour faire coexister les architectures IntServ et
DiffServ dans l’Internet. Il semble assez naturel que l’approche IntServ soit utilisée dans les
réseaux d’entreprise ou les réseaux de petite taille, alors que DiffServ sera utilisé pour les réseaux
de transit ou les coeurs de réseaux importants. Nous aboutissons, donc, vers un scénario où la
visibilité de l’utilisateur est IntServ, alors que le système de communication utilise DiffServ,
rendant ainsi IntServ client de DiffServ. L’intégration de ces deux mécanismes est en cours d’étude.
Plusieurs propositions ont été soumises. La première solution consiste à réaliser l’intégration de
service que dans les sites terminaux. Le coeur du réseau ne traite pas les messages de signalisation
mais les transmet comme des paquets normaux qui sont à nouveau interprétés dans le site destinataire.
Un contrôle d’admission en bordure du réseau DiffServ permet de déterminer si le flux peut entrer
dans la classe de service. L’autre possibilité est de considérer le réseau DiffServ avec la classe EF
comme un élément de réseau et le caractériser pour permettre de construire un service garanti [1].
Réservation des
Protocoles RSVP et CR-LDP Au niveau de DSCP
ressources
Plusieurs contrats (plusieurs
QoS SLA établi avec l’émetteur
labels)
VI- Conclusion
Ce chapitre avait pour objectif de présenter les différents mécanismes utilisés par DiffServ
permettant l’amélioration des performances des applications. En effet, ce modèle se base sur la
séparation du trafic en différentes classes assurant ainsi un traitement préférentiel à un ensemble
de flux regroupant des caractéristiques communes. De telles notions seront utiles dans la suite qui
s’intéressera à l’évaluation des performances du modèle DiffServ et la présentation du principe
de la régulation dans les systèmes asservis.
I- Introduction
L’architecture DiffServ, comme la présente le chapitre précédant, est une solution
avantageuse, classifie les paquets dans un nombre restreint de classes agrégées de service.
L’objectif principal de ce chapitre est de valider l’apport d’un tel modèle garantissant la
QoS. Ainsi il sera question d’un ensemble de scénarios simulés avec le simulateur NS (Network
Simulator). Ceci permet de dresser les différentes fonctionnalités et mécanismes utilisés pour
offrir une QoS de bout en bout. Une première étape des travaux aura pour objet d’illustrer les
processus essentiels d’une mise en place d’un algorithme de gestion de QoS. La deuxième étape
s’intéressera à l’apport de la discipline WFQ (weight Fair queuing ) dans DiffServ et la gestion
des priorités entre les différentes classes de services. Dans une dernière étape, nous introduisons
la régulation dans les systèmes asservis.
II- Présentation
II-1- Implémentation de Diffserv dans NS
Compte tenu des particularités de l’architecture de DiffServ, notre topologie choisie, met
en œuvre 9 nœuds. On distingue trois sources (S1, S2, S3), trois destinations (D1, D2, D3), deux
routeurs d’extrémités (E1, E2) et un routeur intermédiaire (Core). Les liens entre les sources et le
nœud d’extrémité (E1) sont de types fullduplex et de capacités égales à 6Mbit/s, de même pour
les destinations et le nœud E2. Nous avons choisi une liaison de type simplex entre le routeur
intermédiaire et le nœud E1 de capacité égale à 3Mbit/s alors que celle entre le core et E2, sa
capacité vaut 2Mbits/s. Ceci est dans le but de créer la concurrence entre les flux pour le paratge
de la bande passante. La topologie de la simulation est présentée par la figure ci dessous :
S0 D6
Edge Router Edge Router
E1 E2
S1 3 4 5 D7
Core Router
S2 D8
Comme scénario de simulation, nous générons trois types de trafic des nœuds sources (S1,
S2, S3) respectivement vers les trois destinations (D1, D2, D3). Ces sources de trafic sont
respectivement de type audio, vidéo et données. Chaque flux sera marqué par un code point
(DSCP) particulier conformément aux mécanismes de DiffServ. En effet, un flux ayant un code
point à la valeur initiale « 10 » peut être remarqué par la valeur « 11 » s’il est hors profil et qui
doit lui aussi être traité en l’insérant dans la deuxième file d’attente virtuelle. Chaque file admet
comme paramètres le nombre minimal et maximal de paquets à traiter et une probabilité de rejet
(dans notre simulation nous avons opté pour un traitement de 20 à 40 paquets avec une
probabilité de rejet 0.02). Pour le deuxième bout de la liaison, nous avons refait les mêmes
définitions et configurations pour s’assurer que le traitement des paquets est presque identique au
niveau de deux routeurs d’extrémité.
Les flux générés par les nœuds de la topologie sont de type CBR/UDP. Nous avons choisi
comme « puit » un agent attaché à la destination. Nous résumons nos choix dans le tableau
suivant :
Taille de
Débit CBS Initial OP-
Trafic Type paquet CIR Priorité Source Destination
(Kbit/s) (octets) CP CP
(octets)
Classificateur Round
Robin
La discipline de service FQ n’est pas destinée à servir des flux ayant des besoins
différents en terme de bande passante. Son objectif se limite à fournir la même portion de la
bande passante à tous les flux. Aussi, la garantie équitable du même taux de bande passante à
tous les flux n’est possible que lorsque tous les paquets aient la même taille. En effet, les flux de
paquets de large taille auront plus de bande passante que les flux de taille de paquets plus petite.
De plus, cette discipline est sensible à l’ordre d’arrivée des paquets. En effet, si un paquet arrive à
une file d’attente vide immédiatement après avoir été visitée par l’ordonnanceur, alors ce paquet
doit attendre la fin de service de tous les paquets des autres files d’attente avant d’être transmis
[19].
Pour résoudre les problèmes du FQ, un service en tourniquet bit-à-bit a été proposé. C’est
un modèle théorique, pour le partage équitable de la bande passante. De plus, la notion du poids a
été introduite pour pondérer le service proportionnellement à la bande passante exigée par le flux.
Cette proposition est appelée Weighted Fair Queueing (WFQ). Cette discipline de service est
connue aussi sous le nom de GPS (Generalized Processor Sharing) et PGPS qui est la version
«paquet» de GPS et qui correspond exactement à WFQ définie par Parekh [16].
P21 P22
P2= 0.25
Flux2 GPS
P31 P32
Flux3
P3= 0.25
Plus formellement, un serveur GPS est caractérisé par les taux de service affectés,
{ φ1.....φN }, à chacun des N flux actifs. Un flux est dit actif dans l’intervalle de temps [t1, t2], si la
file d’attente de ce flux est toujours pleine durant cet intervalle. Le serveur opère à capacité fixée
C.
Notons par Wi (t1, t2) la quantité de service reçue par le flux «i» dans l’intervalle de
temps [t1, t2]. Le serveur GPS est défini tel que :
Wi (t 1 ,t 2 ) φ i
≥ , j =1,2,...,N
W j (t 1 ,t 2 ) φ j (1)
pour tous les flux actifs «i» ayant des paquets en attente et sur tout intervalle [t1, t2]. Ainsi, en
faisant une somme sur j = 1…N pour une valeur de « i » fixée, on obtient:
φi (2)
Wi (t1,t 2) ≥ ∗C(t1,t 2)
∑ φj
j=1...N
φi
ri = ∗C (3)
∑ φj
j =1...N
Avec ∑ φ j =1 . Ainsi, le flux actif reçoit un service minimum égal à ri tant qu’il a des paquets
j =1...N
en attente de service.
GPS est une discipline fluide non implantable en réalité qui suppose que le serveur peut
servir simultanément plusieurs flux. Dans un système réaliste qui considère des paquets, un seul
flux peut être servi à un instant donné et un paquet doit être servi entièrement avant qu’un autre
paquet puisse l’être. Il existe plusieurs techniques qui permettent d’émuler la discipline GPS.
L’algorithme WFQ (ou PGPS) est la version « paquet » la plus répandue.
Le système WFQ est une émulation du système GPS proposé par Parekh et Gallager [16].
Ce serveur consiste à servir les paquets dans l’ordre croissant de leurs instants de fin de service
dans le système GPS correspondant. Ces instants sont appelés date virtuelle de fin de service.
Le processus d’ordonnancement de WFQ consiste à calculer la date virtuelle de fin de
service de chaque paquet pour émuler le système GPS. La date virtuelle de fin de service
correspond à l’instant de fin d’émission dans le modèle fluide. L’instant de départ du serveur
GPS est défini par [19] :
Fi k = max { Fi k −1 ,V (t ik ) }+ Li
k
(4)
φi
Avec :
- Fik : La date virtuelle de fin de service du keme paquet du ieme flux,
- V (t ik ) : La date virtuelle d’arrivée du keme paquet du ieme flux,
R (t )− R (s ) ≤ σ + ρ (t − s ) (5)
La fonction d’arrivée cumulative du flux R (t ) est alors limitée par la courbe d’arrivée
supérieure σ + ρ (t − s ) . Dans le formalisme du Network Calculus, la garantie de la bande passante
assurée par WFQ se traduit par une courbe de service de la forme βR ,T (t ) = R (t −T ) où R est la
bande passante réservée et T représente la latence maximale du service. Cette courbe, présentée
dans la figure ci dessous, est appelée courbe de service débit-latence (Rate-Latency Service
Curve). Généralement, Lmax dénote la latence introduite pour transmettre le paquet de plus grande
C
taille, où Lmax représente la taille maximale du paquet parmi tous les paquets servis par WFQ et C
étant la capacité du serveur.
A r r iv é e s ( b its )
D W FQ
T e m p (s e c )
T = L m ax/C
Par conséquent, le délai garanti par WFQ à un flux ayant une courbe d’arrivée
α (t ) = σ + ρ t est la distance horizontale maximale entre la courbe d’arrivée et la courbe de service.
Formellement, la borne maximale sur le délai garanti par WFQ est [20] :
D max = σ + L max (6)
R C
Notons que le délai augmente linéairement avec la taille de la rafale du flux et diminue en
augmentant le taux de bande passante réservée. Par conséquent, lors de l’arrivée d’une rafale de
taille importante, les paquets du flux peuvent rater leurs échéances requises et la qualité de
service peut être sévèrement dégradée. Nous remarquons que l’équation (6) ne tient compte
d’aucune contrainte temporelle. Elle dépend uniquement du taux de partage de bande passante et
de la taille de rafale.
Les statistiques relatives à la file d’attente située entre le « core router » sortant et le
deuxième « edge router » menant à la destination sont définies selon différents paramètres
présentés dans la figure II-7. Cette dernière représente le total des paquets envoyés ainsi que ceux
rejetés suite à une saturation dans la file RED ou une congestion dans le réseau.
En effet, d’après la figure II-8, nous remarquons bien que le partage de la capacité de lien
entre les différents flux est proportionnel aux poids attribués à la file. En fait, en appliquant les
coefficients de pondération et suivant l’équation (3), nous vérifions la conformité des résultats.
En conséquence, le flux le plus prioritaire, le trafic audio, normalement aura besoin d’une bande
de l’ordre de 1 Mbit/s notée BPaudio. L’excès de réservation, associé à ce flux, sera partagé entre
les autres flux. En conséquence, la bande réservée au flux vidéo, égale à (C- BPaudio )*P2 /( P2+
P3)) est proche de 790kbit/s alors que celle de données a pour valeur 210kbit/s.
Ainsi, nous remarquons, que grâce ces taux de service, nous avons favorisé le flux audio
en lui assignant la bande passante dont il a besoin. Aussi, les mêmes résultats sont obtenus
lorsque la source de données génère un flux selon le modèle de trafic On/Off. Les périodes
d’activité On et de silence Off sont exponentiellement distribuées avec les moyennes
1/µOn =500 ms et 1/ µOff =500 ms . La figure-ci dessous illustre le partage de 2Mbit/s entre les trois
flux.
Une autre simulation a été établie pour mettre en évidence la gestion efficace de la bande
passante par l’ordonnanceur WFQ. En effet, Nous avons arrêté la transmission de flux audio à
t=30 (s) puis nous l’avons réactivé à t= 50 (s) afin d’observer comment le surplus de la bande
passante est réparti entre les flux actifs. Le résultat est présenté dans la courbe ci-dessous.
10 0 50,4
20 0,3 54,36
30 0,77 55,70
40 0,68 56,94
50 0,76 57,76
60 0,88 57,37
80 0 ,88 57,54
180 0.98 58
En effet, en favorisant le flux vidéo par rapport au flux de données qui est considéré le
moins prioritaire, nous obtenons un taux de perte pour le flux vidéo plus faible que celui de
données tout le long de nos simulations. Nous illustrons la variation de ce taux dans par la figure
II-11 respectivement pour les deux flux.
D’après l’équation (6), la borne maximale du délai dépend de deux facteurs tels que la
taille de la rafale et la bande passante réservée. Le réseau doit garantir une borne maximale sur le
délai instantané. Nous étudions, dans cette section, ce paramètre de QoS. Les résultats de la
simulation confirment à ceux obtenus analytiquement. En effet, le délai maximal bout en bout
acquis par un paquet de flux audio, par simulation, est égal à 20 ms. Cette valeur est inférieure à
la borne calculée théoriquement avec l’équation (6). De même pour le flux vidéo, le délai
maximum obtenu est égal à 0,12 s. De plus, étant donné que le flux audio est le plus prioritaire,
alors, nous remarquons que son délai est très inférieur que celui de vidéo qui est moins
prioritaire. Ceci est conforme à notre configuration, puisque nous avons favorisé le flux audio
avec un taux de service élevé. Nous présentons la variation de délai pour ces deux flux dans la
figure ci dessous.
files sont statiques. Alors la question qui se pose comment ajuster ces taux de service
dynamiquement et rendre l’allocation des ressources dynamique. Une solution assurant ce type
d’ajustement est l’utilisation de principe de fonctionnement de régulateur PID. Pour cela, dans la
suite de ce chapitre, nous introduisons l’algorithme de fonctionnement de ce correcteur ainsi que
ces différentes actions.
V- La régulation
V-1- Besoin de la régulation
Les systèmes asservis pouvaient présenter quelques défauts tels que une précision
insuffisante, une stabilité trop relative, un temps de réponse trop élevé, un dépassement trop
important, au regard des spécifications d’un cahier des charges. Il est donc souvent nécessaire
d’intégrer dans le système asservis un système, appelé correcteur ou régulateur, dont l’objectif est
d’améliorer ces paramètres sans bien sûr le faire au détriment des autres. Le correcteur doit
permettre de répondre au cahier de charges et de réaliser le meilleur compromis entre les
spécifications lorsque celles-ci ne peuvent pas être satisfaites totalement. Les éléments contenus
dans un cahier de charges peuvent être formulés de différentes manières, mais dans tous les cas,
ils traduisent les performances attendues relatives à la stabilité, à la précision et à la rapidité.
Le comportement attendu d’une régulation peut être résumé ainsi : après un changement
de consigne ou une perturbation, la mesure doit atteindre la consigne, le plus rapidement possible
et sans oscillations. Donc la régulation permet de maintenir une grandeur physique à une valeur
constante quelque soient les perturbations extérieures. Un régulateur est un mécanisme
automatique qui élabore un signal de commande appelée «U» en fonction de l’écart de réglage et
selon un algorithme bien défini. La figure ci dessous résume ce fonctionnement.
Signal mesuré «Y »
La commande est l'action délibérée sur un système en vue d'atteindre des objectifs définis.
On parle de commande en boucle fermée (BF) dont l'action sur le système commandé dépend de
la mesure de la grandeur commandée y(t). Il s'agit d'une commande avec rebouclage de
l'information ou boucle de rétroaction. En conséquence, les performances de ce type de
commande sont meilleures. On définit la commande comme suit :
U (s)
= F (s) Î U (s) = ε (s) ∗ F (s) (7)
ε (s)
Avec F(s) représente la fonction de transfert et ε (t) =Yc −Y . On représente, aussi, l’erreur par la
figure ci dessous :
La loi de type « Tout ou Rien » peut être améliorée. S’il est en effet pertinent d’envoyer
toute la puissance quand on est encore loin du but poursuivi, il convient de la réduire quand on
s’approche du résultat à atteindre. L’action « U » est alors dosée à proportion du résultat atteint et
donc de l’erreur. La loi de commande u (t) est proportionnelle à l’écart ε :
(8)
U = K ∗ ε
En effet, si K est grand, la correction est énergique donc rapide mais le risque de
dépassement et d’oscillations dans la boucle s’accroît. Si K est petit, la correction est lente mais il
y a moins de risque d’oscillations. Nous représentons la variation de cette correction dans la
figure ci dessous :
Y(t) K élevée
K faible
Yc
La variable Ti est une constante de temps d’intégration qui doit être de même ordre de
grandeur que T. Si Ti est trop petit, l’action « U » monte trop vite sans laisser au système le temps
de démarrer progressivement. Par contre s’il est grand, l’action « U » monte trop lentement. La
commande intégrale réagit donc calmement aux variations brusques de l’erreur et assure un
rattrapage progressif de la consigne. En effet, lorsque l’erreur est devenue nulle, la commande ne
l’est pas nécessairement. Le signal de commande d’équilibre, nécessaire au processus, est
maintenu. L’intérêt principal de ce correcteur est d’ajouter dans la chaîne de commande une
intégration. On sait que la présence d’une intégration annule l’erreur statique pour une entrée en
échelon. De ce fait, il permet donc d’améliorer la précision.
L’intérêt principal de la correction dérivée est son effet stabilisant. Elle s’oppose aux
grandes variations de l’erreur (donc aux oscillations) et permet donc de stabiliser le système et
d’améliorer le temps de réponse. Dans l’industrie, l’action D n’est jamais utilisée seule mais
toujours associée aux autres actions. L’action du régulateur dérivée n’intervient que sur la dérivée
de l’erreur. La loi de commande est de la forme :
d ε (t)
u (t) = ε (t) + Td (10)
dt
L’action dérivée permet une correction rapide de l’erreur sans encourir le risque de
dépassement de consigne. Elle permet d’améliorer la stabilité et la rapidité du système régulé.
L’intérêt du correcteur PID est d’intégrer les effets positifs des trois correcteurs
précédents. La détermination des coefficients K, Ti, Td du correcteur PID permet d’améliorer à la
fois la précision (Ti et K), la stabilité (Td) et la rapidité (Td, K) [18].
Le réglage d’un PID est en général assez complexe, des méthodes pratiques de réglages
permettent d’obtenir des bons résultats. Le correcteur PID effectue un traitement de l’erreur ε (t):
dt (11)
0
u (p) = K ∗ ε ( p ) ∗ 1 + 1 + (Td ∗ P ) (12)
Ti ∗ p
U (p) (1 + Ti ∗ P + Ti ∗ Td ∗ P 2 )
C (p) = =K∗ (13)
ε (p) Ti ∗ P
Pour discrétiser cette loi, on pose t = k*∆, on choisit une approximation de la dérivée et
une autre cohérente pour le calcul de l’intégrale. Si on appelle I(k) la valeur approchée par la
méthode des rectangles supérieurs de l’intégrale de ε (x) pendant k*∆, on aura :
i=k
I(k) = ∑ ε (i) ∗ ∆ (14)
i =1
ε (k) −ε (k −1)
D (k) = (15)
∆
Ainsi le PID aura la forme suivante :
i =k
u(k)= K ε (k)+ ( ∆ ) ∑ ε(i)+Td (ε(k)−ε(k−1))
Ti i=1 ∆
(16)
VI- Conclusion
Le modèle DiffServ, en introduisant la notion de classes et de priorités entre les flux, offre
des garanties strictes en terme de métriques de qualité de service. Cependant, les priorités
affectées aux files sont statiques. Une alternative, permettant d’améliorer encore plus le niveau de
la qualité de service, est l’introduction de l’approche de régulation dynamique des priorités.
Ce chapitre, avait pour objectif d’évaluer les performances de DiffServ et de présenter la
notion de la régulation dans les systèmes asservis. Ces informations seront utiles dans le chapitre
suivant qui s’intéressera à l’implémentation de l’approche de la régulation dynamique des
coefficients de pondération des files de la discipline WFQ.
I- Introduction
Dans les chapitres précédents, nous avons introduit les paramètres quantitatifs de la
qualité de services. Parmi les exigences de certaines applications, comme la voix, en terme de
QoS, on trouve la bande passante et le délai de transmission. Nous avons aussi étudié les
mécanismes de régulation dans les systèmes asservis. Dans ce chapitre, nous nous intéressons à
intégrer le principe du régulateur PID avec le modèle de DiffServ afin d’améliorer les
performances de différenciation des flux et le niveau de la qualité de service.
Pi WFQ
Sortie
+ Régulateur PID U Pj
La Qos consigne«Yc »
-
La QoS Pk
mesurée
Le régulateur génère une commande « U » qui ajustera les poids des files. Les classes
seront servies par le « scheduler » WFQ proportionnellement aux nouveaux coefficients. La
différence entre la valeur consigne (Yc) et la valeur mesurée (Ym) sera, alors, transmise vers le
régulateur PID. La valeur consigne désigne généralement un niveau de paramètre de QoS qu’on
l’asservit, comme la bande passante, le délai, la gigue. Ensuite, une commande, relative à chaque
erreur calculée, est générée par le correcteur PID. Cette commande ajustera le coefficient de
pondération propre à chaque file et sert comme déterminant de sa priorité et son niveau de service
par WFQ. Le principe de la régulation se résume, ainsi, par les étapes suivantes :
- Spécification de la valeur consigne ou la métrique qu’on veut asservir pour un flux « i ».
- Mesure de la métrique.
- Calcul de l’erreur.
- Application de la commande de régulation pour ajuster les poids des files afin d’atteindre
la valeur consigne.
- Refaire les mesures relatives à cette régulation.
φi
ri = n ∗C (1)
∑φj
j
De même, nous avons déjà détaillé dans le chapitre II l’action de régulateur numérique
PID [18] qui se traduit par l’équation ci dessous:
i =k
u(k)= K ε (k)+ ( ∆ ) ∑ ε(i)+Td (ε(k)−ε(k−1)) (2)
Ti i=1 ∆
Etant donné qu’on modifie la priorité de la file « i », alors tout ajustement de celle ci sera
au détriment des autres files. A cet effet, on considère que l’assignation d’un nouveau taux de
service au flux « i » est suivi d’une modification d’un autre taux pour une classe moins prioritaire
que celle-ci. L’idée est de conserver toujours la qualité de service désirée pour les trafics les plus
prioritaires. Compte tenu des modifications des priorités, on exprime Yc comme suit :
φ 'i
Yc = n ∗C (4)
∑φ
j
'j
Ainsi, si nous optons de garder toujours la même bande passante pour les flux les plus
prioritaires et les mêmes coefficients, alors, une file « m » moins prioritaire que « i » aura une
nouvelle pondération φ'm ≤ φ m . Notons donc par :
n n
∑ φ ' j = ∑ φ j − φm − φ i + φ 'i + φ 'm (5)
j j
L’expression de l’erreur peut s’écrire alors:
φ' i φi
ε= n − n ∗C
(6)
∑φ' j ∑φ j
j j
Par conséquent, à partir de l’équation (6) et (2), nous déduisons le nouveau coefficient de
pondération associé à la file « i » garantissant la bande passante souhaitée. Cette nouvelle priorité
se traduit par l’équation ci-dessous :
[U (k) − A + B ] φ i n
C ∗ D
+ n ∑ φ j − φ i − φ m + φ ' m
∑φj j
φ' i =
j
(7)
[U(k) − A + B ] φi
1 − C ∗D
+ n
∑φj
j
k −1
Notons par : A= K ∗ ∆/T i ∗ ∑ ε (i) ; B =K ∗Td/∆∗ ε(k −1) ; D = [ K + ∆/Ti + Td /∆ ]
i=1
Nous avons présenté dans le chapitre II, le formalisme du Network Calculus [16] et
particulièrement la notion de la courbe d’arrivée et la courbe de service [20]. Nous déduisons le
délai garanti par un serveur WFQ pour un trafic (σ, ρ)-borné:
Dmax = σ + Lmax
(8)
R C
Formellement, la borne maximale sur le délai garanti par WFQ pour une réservation de
bande passante R augmente linéairement avec la taille de la rafale du flux et diminue en
augmentant la bande passante réservée.
Yc = σ + Lmax
φ' i C (9)
n *C
∑φ'
j
j
k −1
u (k) − K ∗ ∆/Ti ∗∑ ε (i)+ K ∗Td /∆∗ ε(k −1)
ε(k) = i =1 (10)
[ K + ∆/Ti +Td /∆ ]
On remarque que le coefficient calculé représente la valeur minimale qu’on peut attribuer à la file
« i » afin de ne pas dépasser la valeur limite sur le délai.
C lie n t 1
6
s
M
t/
A u d io
b
bi
it/
M
s
1 ,0 4 M b it/s
it /s
6
b 2 Mb
i t /s
3 M
C o re
b it/s 6 M b it/s c lie n t2
6 M
6
E1 E2
M
b
it/
s
t/s
bi
0 .8 M b it/s
M
6
C lie n t 3
D a ta
0 .5 M b it/s
Taille de paquet
Flux Débit (Mbit/s) Priorité Poids
(Octets)
Audio 1,04 1000 Haute 52%
Vidéo 0.8 1000 Moyenne 30%
Données 0.5 1000 Faible 18%
La source audio génère un trafic à débit constant (CBR) à 1,04Mbit/s. La deuxième source
génère aussi un flux vidéo à un débit constant égal à 800kbit/s. La source de données délivre ses
paquets à un débit égal à 500 kbit/s.
Au départ, nous commençons par l’initialisation des variables internes utilisées par le
programme tels que les constantes d’intégration, de dérivation, l’intervalle de temps. Ensuite,
l’application calcule la bande passante réservée au flux prioritaire, et ceci guidera le programme à
gérer le reste de la capacité afin d’assurer la valeur consigne.
Pendant l’intervalle de temps ∆, le programme effectue une routine particulière qui
consiste à calculer l’erreur entre la valeur consigne et la valeur mesurée, générer la commande de
régulation selon la modélisation décrite précédemment afin de déduire la nouvelle priorité
associée au flux vidéo et enfin se préparer au prochain cycle.
D ébut
Initialisation des
param ètres de PID
Initialisation des
variables de PID
Réception de la valeur
consigne (Bp)
Lancer l’horloge
Extraction de la bande
m esurée
Calcul de l’erreur
Routine de la génération
de la com m ande U et
des priorités
Non
Arrêt de
processus?
Oui
Fin
Cette interface de sortie montre la valeur consigne ainsi que l’ajustement nécessaire affectant
la pondération de la file de flux vidéo et permettant de garantir la bande passante souhaitée. En
effet, cette dernière est obtenue avec un certain retard, ce qui explique sa présence comme valeur
mesurée à la prochaine tentative.
La bande passante est proportionnelle au taux de partage, ce qui explique la variation des
priorités de la file vidéo. En effet, pour atteindre une consigne particulière, le régulateur agit sur
les poids. Dans le cas d’une bande passante supérieure à la valeur initiale qui est de l’ordre de 0.6
Mbit/s et pour un taux égal à 30%, le régulateur ajuste la priorité pour la file vidéo et l’augmente
sans affecter la priorité de la file la plus prioritaire. Nous devons garantir pour la file de flux
audio, toujours, une bande réservée fixe de 1,04 Mbit/s et un taux égal à 52%. En conséquence,
l’augmentation de la priorité de flux vidéo peut être au détriment de flux de données vu qu’il est
le moins prioritaire. A titre d’exemple, pour une bande égale à 0.750 Mbit/s, la file de flux vidéo
aura un taux égal à 37,5% tandis que celle de données aura un taux de 10,5%. La figure III-6
illustre la variation des poids générés par le régulateur.
La priorité statique offerte par le modèle DiffServ ne permet pas de fournir une qualité de
service flexible en fonction des besoins des applications. Nous proposons, alors, d’ajuster
dynamiquement le délai de transmission des paquets. L’objectif principal de cette section est de
modifier la priorité d’un flux « i » dans le but à ne pas dépasser le délai maximal Dmax. Le
principe consiste à alimenter le régulateur avec la valeur consigne, qui désigne la borne maximale
de délai que nous ne voulons pas la dépasser pour le flux vidéo, et affecter à la file vidéo le poids
nécessaire pour atteindre cet objectif.
En effet, ce délai maximal est proportionnel à la bande passante réservée à un flux «i » et
à la taille de trafic de rafale. Pour simuler notre approche, nous avons opté pour le choix de ces
paramètres décrits dans le tableau III-3 avec la même topologie décrit ci-dessus (Fig III-2).
CBS Echéance
Flux Policier Priorités
(Octets) (ms)
Audio Token Bucket 80000 52% 150
Vidéo Token Bucket 80000 40% 150
Donnée Token Bucket 80000 8% --
Comme, le montre le tableau ci dessus, nous avons choisi d’augmenter la priorité de flux
vidéo, par conséquent, la bande réservée augmente. Ce choix est dû aux exigences temporelles
contraignantes des applications temps-réel afin de ne pas excéder l’échéance requise par
l’application. Ainsi, en tenant compte des initialisations des priorités, nous avons essayé d’ajuster
dynamiquement ces paramètres sans dépasser la valeur consigne spécifiée par l’utilisateur. Lors,
de la programmation de module de régulation de la borne maximale du délai, nous avons garanti
pour le flux prioritaire une borne de l’ordre de 0.6s calculée selon la formule (8) de la section III-
2.
Dans la régulation de la borne sur le délai, nous commençons par initialiser les paramètres
du régulateur PID ainsi que ses variables. Puis, vient la phase de la lecture de la valeur consigne à
partir d’un fichier texte rempli par l’utilisateur et de la comparer à celle mesurée. Enfin, le
régulateur génère la commande « U » assurant l’ajustement des poids de la file de flux vidéo.
Début
Initialisation des
paramètres de PID
Initialisation des
variables de PID
Réception de la valeur
consigne (Dmax)
Lancer l’horloge
Calcul de l’erreur
Routine de la génération
de la commande U et
des priorités
Non
Arrêt de
processus?
Oui
Fin
Ce module génère comme sorties des coefficients de pondération à affecter aux files de
flux vidéo et de données. Cependant la priorité calculée pour la vidéo représente la pondération
minimale à attribuer à la file de cette classe de service. Pour le flux de données, le taux représente
la valeur maximale. L’interface ci-dessous illustre les résultats de la simulation de l’approche.
La figure III-10 montre bien la poursuite de la valeur mesurée. En effet la limite du délai
mesurée tend de se rapprocher vers la valeur souhaitée avec un certain retard. Par conséquent, ce
phénomène se traduit par une variation automatique des priorités des flux vidéo et de données.
Fig III-11 : Variation des priorités pour les flux vidéo et de données
Comme le montre la figure III-11, plus on diminue la valeur du délai maximal, plus on
augmente la pondération de flux vidéo et on diminue celle de donnée. Il en résulte, alors, une
variation de la bande passante réservée à chaque flux.
Pour valider cette approche de la régulation du délai, nous avons utilisé ces résultats pour
les intégrer dans un script tcl. L’objectif est de vérifier qu’avec les nouvelles priorités, nous
mesurons toujours un délai inférieur à une valeur maximale.
taux égal à 29% inférieur au premier taux, le paquet peut atteindre sa destination dans un délai
égal à 1.074s et donc dépasse la limite. De même, avec un coefficient égal à 40%, le délai
maximal acquis par ce même flux, présenté dans la figure III-13, est proche de 33 ms qui est
inférieur à la limite calculée théoriquement.
Après avoir développé les modules de régulation de la bande passante et du délai, nous avons
voulu aboutir à un compromis entre ces deux métriques. Il s’agit d’ajuster les coefficients de
pondération des files afin de répondre aux exigences de ces deux paramètres de qualité de
service. Pour cela, nous considérons que nous avons deux valeurs consignes et nous voulons les
atteindre. Cependant, notre régulateur génère deux coefficients répondant aux deux paramètres de
qualité de service (délai et bande passante).
L’objectif consiste de trouver un compromis entre ces deux priorités pour satisfaire les besoins
en terme de qualité de service. Au début, nous considérons les flux vidéo, audio et données ont
des coefficients de pondération respectivement égales aux 30%, 52% et 18%.
Après initialisation des variables et des paramètres, le régulateur reçoit les valeurs
consignes (la bande passante à réserver et le délai maximal). En effet, chaque consigne renvoie
vers une routine particulière comme l’indique le diagramme de la figure ci-dessous.
- La procédure de régulation de la bande passante : Une fois le régulateur reçoit la
valeur de la bande passante souhaitée, il aura besoin de la valeur mesurée afin de générer
la commande PID à partir de l’erreur calculée. Cette commande permettra de fournir
l’ajustement nécessaire pour la file de flux vidéo afin d’atteindre la bande passante
consigne.
- La procédure de régulation du délai : En recevant la valeur consigne du délai maximal,
nous faisons appel à cette routine afin de générer la commande PID permettant de nous
fournir l’ajustement adéquat de poids de la file de flux vidéo.
Dans cette approche, nous avons comme résultat deux priorités qui peuvent être
différentes. En conséquence, nous optons pour le choix de la priorité la plus élevée. En effet, en
choisissant la valeur la plus grande, ceci nous permet de satisfaire les deux besoins en terme de
qualité de service. En optons pour le coefficient déduit par la régulation de la bande passante, qui
est supérieur à celui du délai, nous garantissons la bande passante consigne et aussi un délai
maximal inférieur à la valeur consigne.
Début
Initialisation des
paramètres de PID
Initialisation des
variables de PID
Lancer l’horloge
Choix de la priorité
adéquate
Non
Fin de Oui
cycle?
Arrêt de Non
processus?
Oui
Fin
Dans certains cas, la valeur de la bande passante garantie ou de délai est différente de la
valeur consigne appliquée à l’entrée de régulateur. Ceci est dû au choix de taux de service. En
effet, après la déduction de la priorité adéquate, nous recalculons la bonne valeur consigne des
deux paramètres. La figure III-16 illustre la poursuite de la valeur mesurée la variation de la
valeur consigne.
En effet, nous remarquons bien que, plus le délai maximal est faible plus qu’on doit
réserver plus de la bande passante et donc augmenter le coefficient de pondération de flux vidéo.
Ainsi, pour valider ces travaux, nous avons intégré les résultats de l’approche de régulation dans
un script tcl afin de vérifier la conformité avec le cas pratique. Le tableau ci dessous représente
un extrait de l’exécution du programme.
Pour atteindre la bande passante égale à 680 kbit/s et un délai maximal égal à 0.95s, il est
nécessaire d’attribuer à la file de flux vidéo un coefficient égal à 34%. Nous spécifions alors ce
paramètre dans le script, puis à partir de fichier trace, nous avons obtenu la courbe ci-dessous.
Cette figure montre bien que nous atteignions la valeur consigne en terme de bande passante. De
plus, nous démontrons dans la figure III-18 que le délai subi par chaque paquet de flux vidéo est
toujours inférieur à la valeur consigne modifiée qui est 0.94s.
De même, dans le cas où nous voudrions garantir une bande passante de l’ordre de 730
kbit/s avec un délai maximal égal à 1,07 s, le module nous a fourni un ajustement de la priorité de
flux vidéo égal à 36.5%. En utilisant NS, nous mesurons une bande passante très proche de la
consigne, présentée dans la figure ci-dessus, aussi nous obtenons un délai maximal inférieur à la
valeur consigne qui est 0.87 s.
V- Conclusion
L’objectif de ce chapitre est d’intégrer l’algorithme de fonctionnement de régulateur PID,
utilisé dans les systèmes asservis, dans le modèle DiffServ. Pour atteindre ce but, nous avons
commencé par une modélisation de la régulation des paramètres de la qualité de service et une
maîtrise de l’environnement de développement. Puis, nous avons passé à la phase
d’implémentation et des tests qui a montré le bon fonctionnement des programmes. Finalement,
la simulation avec NS et les résultats de tests obtenus valident l’approche de la régulation
dynamique qui peut enrichir le modèle DiffServ.
La qualité d’une connexion réseau a un impact significatif sur les performances des
applications et des services réseaux. Le modèle de service différencié (DiffServ) représente une
solution aux applications réseaux pour garantir une QoS par classe de service.
Dans ce projet de fin d’études, nous avons fait une étude détaillée du modèle DiffServ. La
compréhension des éléments théoriques, leur simulation et leur mise en oeuvre nous ont permis
d’analyser la QoS que le modèle peut offrir aux applications. En particulier, ce projet s’est
intéressé à la Différenciation de services obtenue grâce à l’introduction des priorités dans le
réseau. La notion de classes de services et de priorités forment les deux axes qui régissent le
fonctionnement du modèle DiffServ. Nos efforts sont centrés sur le déploiement de nouvelles
techniques permettant l’ajustement des priorités d’ordonnancement de ces classes d’une manière
dynamique.
Suite à une étude des concepts du modèle DiffServ et de l’apport de l’ordonnanceur
WFQ. Nous avons présenté la notion de la régulation et ses différentes commandes.
Nous avons complété notre travail par la réalisation d’un prototype de régulation assurant
un ajustement dynamique des priorités des files d’attente de l’ordonnanceur WFQ et satisfait les
exigences de l’utilisateur en terme de métriques de qualité de service. Après une modélisation de
processus de la régulation, nous avons bien structuré notre programmation et nous avons exposé,
finalement, l’analyse du fonctionnement et les résultats obtenus.
Enfin, pour clore ce projet de fin d’étude, nous espérons que les résultats obtenus
trouveront un bon écho et formeront un petit noyau de recherche pour tout intéressé par les
applications sur la régulation et le domaine de QoS.
[2] Jean - Louis Melin, « Qualité de service sur IP », Eyrolles édition,1 juillet
1992.
[15] Peter Pieda, Jeremy Ethridge, Mandeep Baines, Farhan Shallwani, “A Network
Simulator Differentiated Services Implementation”, Open IP, Nortel Networks,
July 26, 2000.
[19] hthttp://perso.menara.ma/~bennisnajib/index.htm
[20] Koubâa Anis, Yé-Qiong Song, « Amélioration des Délais dans les Réseaux à
Débits Garantis pour des Flux Temps-Réel Sous Contrainte « (m,k)-Firm » »,
article, LORIA – UHP Nancy 1 - INPL - INRIA Lorraine, 2004.