• Aucun résultat trouvé

Les comportements pathologiques de RLM

2.3 Conclusion

3.1.2 Les comportements pathologiques de RLM

RLM (Receiver-driven Layered Multicast) [55] a ´et´e introduit par Steven McCanne et al.

en 1996. RLM est un protocole de contrˆole de congestion multipoint `a couches cumulatives et orient´e r´ecepteur pour la diss´emination de contenu vid´eo `a un groupe h´et´erog`ene de r´ecepteurs.

3.1.2.1 Rappels sur RLM

Une source RLM encode en couches cumulatives le flux vid´eo et envoie chaque couche dans un groupe multipoint diff´erent. En fait, toute la((machinerie )) du protocole est au niveau du r´ecepteur. Celui-ci s’abonne ou se d´esabonne `a des groupes multipoints en fonction de la bande passante disponible ou de la congestion du r´eseau. Ainsi, chaque r´ecepteur peut s’adapter `a l’´etat de congestion du r´eseau sur le chemin entre la source et lui. Le comportement d’un r´ecepteur RLM est d´etermin´e par une machine `a ´etats finis dont les transitions sont d´eclench´ees par des expirations de timers ou par la d´etection de pertes.

Dire qu’un r´ecepteur fait un join-experiment signifie qu’il ajoute exp´erimentalement une couche et regarde si cette couche produit de la congestion. Si elle produit de la congestion, il

n’y a pas assez de bande passante pour recevoir cette couche. Alors le r´ecepteur quitte cette couche, on dit que le join-experiment a ´echou´e. Si elle ne produit pas de congestion, il y a assez de bande passante pour recevoir cette couche et le r´ecepteur conserve son abonnement `a cette couche, on dit que le join-experiment a r´eussi. Un r´ecepteur RLM maintient deux timers : un join-timer

T

j et un detection-timer

T

d. Le join-timer d´efinit la fr´equence des join-experiments, le detection-timer est une estimation du temps jug´e n´ecessaire pour d´ecider si un join-experiment a r´eussi. Le m´ecanisme de d´ecouverte de la bande passante est le suivant : un r´ecepteur fait un join-experiment tous les

T

j unit´es de temps et d´ecide que le join-experiment a r´eussi s’il n’a pas observ´e de pertes durant un intervalle de temps

T

d apr`es le d´ebut du join-experiment. S’il observe des pertes durant cet intervalle de temps, il juge que le join-experiment a ´echou´e et augmente le join-timer correspondant `a la couche qui n’a pas pu ˆetre ajout´ee. Si le r´ecepteur observe des pertes en dehors d’un join-experiment, il va entrer dans un ´etat hysteresis qui est destin´e `a absorber les p´eriodes transitoires de congestion. Apr`es une p´eriode

T

d dans cet ´etat, le r´ecepteur mesure le taux de pertes et quitte une couche si le taux de pertes est sup´erieur `a un seuil de 25%. Un r´ecepteur ne peut cependant quitter qu’une seule couche par p´eriode

T

d.

Ce m´ecanisme de d´ecouverte de la bande passante ne fonctionne pas correctement lorsque l’on augmente le nombre de r´ecepteurs. Pour r´esoudre ce probl`eme McCanne et al. ont introduit le shared learning : lorsqu’un r´ecepteur fait un join-experiment, il en notifie le groupe entier en envoyant un message indiquant la couche ajout´ee exp´erimentalement. Tous les r´ecepteurs apr`es avoir re¸cu ce message annuleront leurs join-experiments aux couches sup´erieures `a celle annon-c´ee. L’id´ee est d’´eviter une congestion due `a un join-experiment `a une couche sup´erieure qui serait mal interpr´et´ee par un join-experiment `a une couche inf´erieure qui se d´eroule au mˆeme moment. Tous les r´ecepteurs observant de la congestion durant un join-experiment annonc´e vont d´eduire que ce join-experiment a ´echou´e et vont augmenter leur

T

j pour la couche correspon-dante.

3.1.2.2 Comportements pathologiques de RLM

On ne fait, dans ce paragraphe, que r´esumer nos r´esultats : tous les d´etails sur les comporte-ments pathologiques de RLM peuvent ˆetre trouv´es en annexe A.3. On a trouv´e cinq m´ecanismes qui conduisent `a des comportements pathologiques :

– la valeur minimale du join-timer d´efinit une borne inf´erieure `a la vitesse de convergence de RLM. En effet, un r´ecepteur ne peut ajouter qu’une seule couche tous les

T

j. Cepen-dant, cette valeur minimale du join-timer est le r´esultat d’un compromis entre vitesse de convergence et congestion due aux join-experiments. Il est par cons´equent tr`es difficile d’en trouver une valeur optimale.

3.1. COMPORTEMENTS PATHOLOGIQUES DE RLM ET RLC 39 – le grand seuil de pertes (fix´e par McCanne `a 25%) peut conduire `a un taux de pertes tr`es ´elev´e. En effet, un taux de pertes persistant de 24% ne sera pas suffisant pour qu’un r´ecepteur quitte une couche. D’autre part, ce grand seuil rend RLM tr`es agressif avec TCP.

On observe ce comportement agressif lorsque RLM est d´ej`a abonn´e `a plusieurs couches ; dans ce cas, les flux TCP sont incapables de produire suffisamment de congestion pour que RLM quitte des couches et lib`ere ainsi de la bande passante. Cependant, le seuil de pertes est un compromis entre comportement r´eactif et conservateur en cas de pertes. Il faut souligner que RLM a ´et´e con¸cu pour la vid´eo, application peu sensible aux pertes mais tr`es sensible aux fr´equents changements de qualit´e caract´eris´es par des oscillations des abonnements aux couches. Par cons´equent, RLM doit ˆetre conservateur en cas de pertes.

– le m´ecanisme du shared learning conduit `a une synchronisation des r´ecepteurs. En effet, un r´ecepteur qui fait un join-experiment empˆeche un join-experiment des autres r´ecepteurs

`a une couche plus ´elev´ee. Par cons´equent, l’abonnement aux couches des r´ecepteurs se fait par palier. Cependant, le shared learning est un composant principal de RLM et le modifier reviendrait `a refondre enti`erement RLM.

– le m´ecanisme de join-experiment rend RLM tr`es conservateur avec TCP. En effet, un r´ecepteur RLM ne peut ajouter une couche que s’il ne voit pas de pertes durant toute la dur´ee du join-experiment, c’est-`a-dire pendant une p´eriode

T

d. Or, lorsque RLM par-tage un goulot d’´etranglement avec TCP, `a cause des pertes p´eriodiques engendr´ees par TCP `a la fin de chaque cycle, RLM ne peut jamais ajouter de couche. Le m´ecanisme de join-experiment est un composant principal de RLM et il est tr`es difficile de modifier ce m´ecanisme sans enti`erement modifier RLM.

– RLM est tr`es conservateur en cas de pertes. En effet, un r´ecepteur ne peut quitter qu’une couche par p´eriode de

T

d secondes. Le r´esultat est un tr`es fort taux de pertes transitoires en cas de forte congestion ; par exemple, lorsqu’il faut quitter deux couches afin de s’adapter

`a la bande passante disponible, il faudra au minimum

2

T

d secondes pour quitter ces deux couches.

On a donc identifi´e plusieurs comportements pathologiques de RLM dus `a des m´ecanismes propres `a RLM. On a ´egalement vu que ces m´ecanismes ´etaient tr`es difficiles `a modifier pour

´eviter les comportements pathologiques. On peut noter cependant qu’un m´ecanisme efficace de d´ecouverte de la bande passante pourrait r´esoudre tous les probl`emes, sauf celui de synchroni-sation des r´ecepteurs dˆu au shared learning.