LA QUALITÉ DE SERVICE DANS L'INTERNET
L'Internet est un réseau à commutation de paquets qui ne fournit qu'un
service ``au mieux'' (best-effort), c'est à dire qu'aucune garantie
d'aucune sorte n'est faite sur le service offert, autre que l'engagement du
réseau à faire ``du mieux qu'il peut'' pour amener les paquets à
destination. Ce type de service est tout à fait utilisable par les
applications élastiques, qui n'ont pas de contrainte temporelle et
peuvent donc accepter de grandes variations de délai et compenser les pertes
éventuelles par des retransmissions. Ainsi le réseau ne fournit qu'un
service minimal, et c'est au niveau de la couche transport qu'est gérée la
fourniture d'un service de bout en bout satisfaisant. Toutes les
applications initialement développées sur l'Internet se satisfont d'un tel
service.
Cependant, le développement de l'Internet a suscité la création de nouveaux
types d'applications, multimédias, qui ne peuvent se satisfaire d'un
tel service minimal. Ces applications ont des contraintes du type
temps réel et ont besoin de garanties de délai et/ou de débit pour
les flots de données qu'elles génèrent. Différents types d'applications
auront besoin de garanties plus ou moins strictes. Pouvoir satisfaire les
besoins de ces applications, c'est leur fournir une qualité de
service adaptée.
Depuis de nombreuses années, des travaux importants sont menés dans le
domaine de la qualité de service dans les réseaux à commutation de
paquets. En particulier, des techniques d'ordonnancement de paquets (comme
par exemple le weighted fair queuing) permettent de garantir un débit
et sous certaines conditions un délai à un flot de données. Dans le
cadre de l'Internet, une architecture pour fournir la qualité de service a
été développée par l'IETF. Basée sur l'intégration de services,
l'architecture IntServ/RSVP utilise le protocole RSVP pour gérer des
réservations de ressources pour chaque flot de données.
Plus récemment, une approche différente a été proposée par l'IETF : la
différenciation de services, DiffServ, repose sur une gestion de trafic
par classe et des méthodes de conditionnement du trafic à l'entrée
dans le réseau. Cette approche résout certains des problèmes qui se posent à
IntServ mais apporte ses propres difficultés. Dans cette thèse, nous nous
concentrerons sur l'architecture IntServ.
Pour qu'une telle architecture soit effective, elle doit être mise en place
dans l'ensemble du réseau, y compris dans les réseaux d'interconnexion
(backbones), de façon à fournir des garanties de service de bout en
bout. Ces réseaux d'interconnexion posent cependant des contraintes
particulières et sont donc sources de problèmes pour l'architecture IntServ.
Les problèmes liés au haut débit
La première contrainte est celle du haut débit. Une très grande quantité de
paquets devant être traités en un temps très court, il faut obtenir des
temps de traitement par paquet extrêmement faibles. Ceci nécessite
l'utilisation de technologies particulières pour les éléments
d'interconnexion, qui sont capables de traiter les paquets à un rythme très
élevé. Dans le cas d'un réseau à intégration de services, le traitement à
appliquer à chaque paquet est nettement plus complexe ce qui rend le
problème plus difficile à résoudre.
Une approche développée ces dernières années pour atteindre des débits
élevés dans le cadre du service au mieux est représentée par les solutions
de type ``commutation IP'' qui permettent d'associer la flexibilité et la
robustesse d'IP aux capacités haut débit d'un moteur de commutation
ATM. Cette approche au départ proposée par la compagnie ``Ipsilon'' a été
reprise par de grands industriels des réseaux. Elle a été généralisée sous le nom de ``commutation par labels''. Le groupe
de travail Multi Protocol Label Switching (MPLS) de l'IETF est chargé
de standardiser cette technologie.
Nous nous proposons de montrer comment les mécanismes de l'intégration de
services peuvent être adaptés pour ce type de technologie, résultant en une
technologie de réseau haut débit capable de gérer la qualité de service.
Les problèmes liés au facteur d'échelle
Un autre problème est celui du facteur d'échelle. Une architecture
telle que IntServ/RSVP qui requiert de maintenir des états par flot
pose certains problèmes pour le passage à l'échelle. Une augmentation
très importante du nombre de flots à gérer se traduit en un accroissement de
la charge de traitement qui peut devenir insupportable. Cette charge se
situe aussi bien dans le plan de données, où des états de classification et
d'ordonnancement doivent être maintenus par flot et manipulés à chaque
paquet, que dans le plan de contrôle où il faut maintenir des états de
gestion par flot.
Dans le texte de cette thèse, nous utiliserons souvent les mots
``scalabilité'' et ``scalable'', dérivés des mots anglais scalability
et scalable, pour éviter la lourdeur du recours systématique à des
expressions du type ``capacité à passer à l'échelle'' ou ``sensible au
facteur d'échelle''.
Nous explorons dans cette thèse deux types d'approches au problème du
passage à l'échelle :
- les techniques basées sur l'agrégation correspondent à un
changement de granularité dans la gestion des ressources. En regroupant
plusieurs flots en une seule entité à laquelle fournir un service, on réduit
le nombre d'états à gérer, en contrepartie d'une perte de flexibilité.
- une seconde approche consiste à ne plus maintenir d'état du tout, mais
à transporter les informations d'état dans les paquets de données
eux-mêmes. Nous proposerons une solution simple basée sur ce principe.
PLAN DU DOCUMENT
Le corps de la thèse est constitué de quatre chapitres.
Dans le chapitre deux, nous faisons un bref état de l'art de la gestion de
la qualité de service dans les réseaux à commutation de paquets tels que
l'Internet. Nous décrivons en particulier les deux modèles actuellement
proposés, IntServ et DiffServ, leurs architectures, les services proposés,
leurs avantages et les problèmes qui restent à résoudre. Nous montrons
comment il est possible d'obtenir des garanties de délais déterministes dans
un réseau à commutation de paquets. Enfin, nous présentons la technique
d'ordonnancement weighted fair queuing et quelques unes de ses
nombreuses variantes.
Dans le chapitre trois, nous présentons les principes de la ``commutation
IP'', et en particulier la solution ``IP switching'' développée par
Ipsilon. Cette technologie permet de construire des éléments
d'interconnexion supportant des débits très élevés, mais n'inclut aucun
support pour la qualité de service. Aussi, nous proposons une adaptation de
l'architecture IntServ, et en particulier du protocole RSVP, au contexte de
cette technologie. Cette proposition a été validée par la réalisation d'un
prototype.
Dans le chapitre quatre, nous étudions une solution basée sur l'agrégation
des flots au problème de scalabilité de l'architecture IntServ. Partant de
la constatation que ce problème ne se pose réellement que dans des zones
bien définies, les réseaux d'interconnexion, nous proposons d'utiliser
l'architecture telle quelle partout où c'est possible et d'utiliser des
techniques d'agrégation dans les réseaux d'interconnexion. Nous montrons
comment des garanties par flot peuvent être assurées malgré une granularité
plus grossière dans la gestion des ressources. Nous définissons ensuite des
mécanismes d'interfaçage permettant une gestion entièrement transparente des
mécanismes d'agrégation du point de vue des applications. Enfin, nous
montrons dans quelles conditions les techniques d'agrégation permettent
également une gestion plus efficace des ressources.
Dans le chapitre cinq, partant de la même architecture globale proposée au
chapitre quatre, nous proposons une approche différente au problème de la
scalabilité. Les techniques d'agrégation impliquent intrinsèquement une
perte de flexibilité dans la gestion des ressources. La technique
Dynamic Packet State permet de supprimer la gestion d'état par flot
en transportant les informations nécessaires dans les paquets. Afin
d'obtenir des garanties déterministes, elle nécessite cependant des
mécanismes assez lourds. Nous proposons une approche simplifiée dans
laquelle une partie des informations est transportée dans les paquets, et un
conditionnement du trafic rend superflues (dans une certaine mesure) les
autres informations.