• Aucun résultat trouvé

la littérature consacrée à ce sujet s’est substantiellement développée au cours de cette dernière décennie.

II.3

Active Queue Management

De manière générale, le contrôle de congestion consiste à réguler le trafic généré par les différents émetteurs en fonction de la charge du réseau. Les mécanismes présentés jusqu’à main- tenant effectuent un contrôle de congestion point à point, c’est-à-dire émetteur-récepteur, sans assistance du réseau. En effet, TCP observe l’apparition d’une perte5pour détecter un problème

de congestion à l’intérieur du réseau. Ce retour d’information est rendu possible par le système d’accusé de réception qui permet à l’émetteur de “se tenir au courant des paquets réclamés” par le récepteur. Bien que le mécanisme d’évitement de congestion de bout en bout appliqué par TCP prévient l’effondrement du réseau, il reste insuffisant pour assurer un contrôle efficace du trafic (Figure II.10). Par conséquent, des études ont suggéré de faire participer le réseau au contrôle de congestion et la gestion des ressources partagées [25, 104, 143].

II.3.1 Principe

Essentiellement, les routeurs appliquent un simple mécanisme de store-and-forward dans le- quel les paquets entrants sont stockés dans un buffer avant d’être transférés (ou routés) selon la bande passante du lien. Généralement, les buffers sont gérés suivant une politique FIFO (First-In

First-Out) et la saturation de leur capacité entraine la perte des paquets supplémentaires (prin-

cipe du Drop Tail). Les possibilités de gestion du trafic depuis les hôtes en bordure du réseau étant limitées, des mécanismes supplémentaires doivent être ajoutés au niveau des routeurs pour compléter les contrôles point à point. On distingue deux classes de dispositifs : les politiques de

file d’attente et les algorithmes d’ordonnancement. La première concerne la stratégie de contrôle

de la longueur de file d’attente dans les buffers. La seconde détermine quel sera le prochain pa- quet à être traité (il peut y avoir plusieurs files d’attente). Dans notre étude, nous nous sommes intéressés à la première classe de mécanismes, appelés Active Queue Management (AQM), en supposant, pour la seconde, un ordonnancement FIFO sur une seule file (configuration la plus commune).

Nous avons vu que la perte de paquet, plus exactement la réception d’acquitemments dupli- qués, constituait une mesure de la congestion pour le protocole TCP. L’objectif du mécanisme d’AQM consiste alors à réguler, de façon implicite, le trafic TCP en agissant sur le taux de pertes (Figure II.12). Pour cela, l’AQM a la possibilité de forcer la perte en éjectant un paquet du buffer afin d’anticiper la saturation totale du routeur. En effet, le paquet étant perdu (vo- lontairement), il n’atteindra pas le destinataire et celui-ci réclamera toujours le même paquet. L’émetteur, quant à lui, pensera que le paquet a été perdu par surcharge du réseau et diminuera en conséquence sa fenêtre d’émission. Ainsi, le mécanisme d’AQM s’appuie sur le principe de contrôle de congestion de bout en bout de TCP (c’est-à-dire l’algorithme AIMD) pour agir, à distance, sur le taux d’envoi des sources. Situé au niveau du routeur, il est le mieux placé pour analyser l’état de congestion du lien (taille de la file d’attente du buffer, intensité du trafic). Puis, à partir de cette mesure et d’un algorithme décisionnel, il choisira d’éjecter ou non un paquet. Cette perte forcée constitue non seulement un moyen de réduire le débit d’un émetteur mais plus généralement un retour d’information de l’intérieur du réseau vers les utilisateurs de

5

Certaines versions de TCP utilisent d’autres informations pour détecter la congestion. Par exemple, TCP Vegas [26] observe le délai, c’est-à-dire le RTT, pour conclure sur l’état de saturation du réseau.

Fig. II.12: Un AQM agit sur le taux de pertes.

bout. Bien que le transfert de l’information soit implicite, cette rétro-action permet toutefois d’établir une structure en boucle fermée.

Avant cette vision très générale et le principe des mécanismes d’AQM, cette idée de gestion

proactive de la congestion au niveau du routeur se retrouve initialement dans le mécanisme RED,

développé au début des années 90 [52], pour améliorer l’algorithme AIMD.

II.3.2 Exemple du RED

L’idée originelle de l’algorithme du Random Early Detection (RED) [52] est d’anticiper la saturation du buffer. Ce phénomène indésirable conduit à un état de congestion sévère du lien, entrainant des Time Out, une forte dégradation et une synchronisation des débits d’émission. Ainsi, plutôt que d’attendre le remplissage complet du buffer, l’idée suggérée est d’éjecter pré- maturément un paquet pour indiquer à la source correspondante de réduire son taux d’envoi.

Le principe du RED consiste à éjecter les paquets entrant avec une certaine probabilité p. Ce taux de perte est une fonction croissante de la taille moyenne de la file d’attente du buffer (Figure II.13) et s’exprime par :

p(¯b) =      0, 0≤ ¯b < bmin ¯b−bmin

bmax−bminpmax, bmin ≤ ¯b ≤ bmax

1, bmax < ¯b

(II.3) où ¯b est la longueur moyenne de la file d’attente, bmin, bmax et pmax sont des paramètres à confi-

gurer. On observe donc que si la file est petite (¯b < bmin), chaque paquet entrant est accepté

et mis en mémoire tampon. Tandis qu’au delà d’un certain seuil, une fraction des flux entrants, proportionnelle à la mémoire utilisée (en moyenne) ¯b, est rejetée. Enfin, au delà de la limite bmax

tous les paquets supplémentaires sont refusés.

Initialement développé sur des bases empiriques, des analyses expérimentales [22], [118] ont montré les difficultés de réglage des paramètres du RED. Puis, de nombreux articles ont alors proposé des méthodes de configuration ainsi que des modifications pour le doter de nouvelles propriétés (stabilité, auto-adaptation...) [37, 47, 129] . Du point de vue de la théorie de la com-

II.3. ACTIVEQUEUEMANAGEMENT 45

1

0

probabilité d’éjection

taille moyenne de la file

pmax

bmin bmax

Fig. II.13: Probabilité de pertes du RED en fonction la taille de la file d’attente.

mande, le RED peut être assimilé à un filtre passe-bas (calcul de la taille de file moyenne) avec une action proportionnelle [75]. Il est intéressant de noter que si au départ le RED n’était qu’un mécanisme supplémentaire, plutôt intuitif, pour anticiper la saturation d’un buffer, il apparaît finalement comme un dispositif de rétroaction renvoyant une information sur l’état de congestion d’un lien. Dès lors, il a ouvert la voie à une problématique de recherche fertile, portant sur la contribution des routeurs pour le contrôle de congestion et la gestion de buffer.

Notons que, de concert avec le principe d’AQM, un mécanisme appelé Explicit Congestion

Notification (ECN) a été proposé [51], [139]. Il donne la possibilité au routeur de marquer un

paquet afin de signaler explicitement l’information de congestion plutôt que de l’éjecter. Pour cela, un champ d’un bit (dit ECN) a été ajouté dans l’en-tête IP d’un paquet. Le routeur marque alors le paquet par la mise à “1” de ce bit. Bien évidement, ce marquage est relayé par le desti- nataire lors de l’envoi de l’acquittement. L’avantage de cette technique est d’éviter la perte de paquets et donc des retransmissions inutiles.

II.3.3 Extension

La mise en place de mécanisme de gestion de file d’attente, initié par le RED, pour tenter de satisfaire les besoins en Qualité de Service a établi les bases du concept d’Active Queue Ma-

nagement (AQM). Leur rôle consiste à informer TCP de l’état de congestion d’un lien afin de

prévenir la surcharge du réseau. La question est quel taux de pertes/marquages faut-il appliquer

pour contrôler le trafic et la taille de file d’attente du buffer ?

Différents algorithmes ont été proposés pour compléter TCP dans le contrôle de congestion [143] tels que BLUE, REM ou encore AVQ pour ne citer que les plus connus.

BLUE [47], [48] met à jour la probabilité d’éjection de paquet p (à une fréquence arbitraire f reeze− time) en fonction des événements de pertes et de l’utilisation du buffer. Elle est aug- mentée d’une valeur d’incrémentation d1 lorqu’un paquet est perdu ou que la file d’attente

dépasse un certain seuil L. Elle est décrémentée d’une valeur d2 lorsque le buffer est inutilisé.

L’algorithme du REM (Random Early Marking) [18], réalisé dans le cadre d’un problème d’op- timisation, associe au lien une fonction coût pl(t) en fonction de la taille de la file d’attente. La

probabilité de perte est ensuite exprimée par p(t) = 1 − e−pl(t).

AVQ (Adaptative Virtual Queue) [99] met en place une file d’attente virtuelle vq qui se remplit au même rythme que la file réelle et applique le principe de drop tail. Cet algorithme d’AQM agit sur la capacité (virtuelle) ˆC de la file virtuelle pour empêcher la saturation du buffer. Cette

dernière est actualisée en fonction du taux de données entrant λ et du taux d’utilisation désiré γ : C = α(γC˙ˆ − λ). C est la capacité réelle du lien et α > 0 un paramètre à régler.

Par ailleurs, il existe de nombreux travaux utilisant explicitement la théorie de la commande. C’est à partir des travaux de [76], [77] que la question a véritablement été reformulée en terme de problème de régulation au sens où l’entendent les Automaticiens. A partir du modèle dynamique de TCP établi dans [122], [123], ils ont proposé un correcteur Proportionnel Intégral (PI) pour calculer la probabilité de perte p(t). Dès lors, de nombreux chercheurs se sont intéressés à cette nouvelle problématique, exploitant les différents outils de l’Automatique [157]. La plupart de ces travaux se sont focalisés sur la régulation de la file d’attente par diverses méthodes allant des correcteurs fréquentiels [2], [45] à l’analyse non linéaire [74], [120] en passant par la commande robuste [116, 138, 158] ou encore la commande prédictive [93], [159]. Si pour la communauté des réseaux de communication, le contrôle de congestion est un phénomène critique au regard de la Qualité de Service, la problématique a suscité un grand intérêt en termes de stabilité du trafic dans la communauté de l’Automatique.

Documents relatifs