Quelles solutions pour la transmission vido sur Internet? Aot 2008 Mmoire de fin d'tudes. Remerciements Je voudrais exprimer toute ma gratitude au couple HUBIN (Jean-Franois HUBIN et Assita HUBIN) qui m'a soutenu et aid durant ma formation. Ils m'ont suivi de prs et ils n'ont pas hsit un instant me donner un coup de main quand cela tait ncessaire. Je tiens remercier les superviseurs de la sae, Monsieur Thierry LECHIEN, Sep stigo film (Gatan et Corentin pour leur sage direction et leurs aides) et Monsieur BURTON. Je remercie aussi tous mes enseignants pour les informations qu'ils m'ont donnes pendant cette anne. Merci tous les tudiants de la section film de la Sae, Alessandro MARETTI, Claire BUKASSA, Momo. Enfm, un merci du fond du coeur tous ceux qui ont contribu de prs ou de loin l'aboutissement de ce travail. ? mes parents ... 3 TABLE DES MATIERES INTRODUCTION __________________ 5 Chapitre 1 ETAT DE L'ART Introduction _________________________ 7 1.1- Calcul de la bande passante alloue au flux 7 1.1.1- Calcul du taux de perte 7 1.1.2- Calcul du RTT 7 1.2- Scalabilit 8 1.3- Htrognit des rcepteurs 11 1.4- Conclusion 15 Chapitre 2 ___ UNE SOLUTION A LA TRANSMISSION MUL TIPOINT Introduction 16 2.1- Real Time Transport Protocol (R TP) 16 2.1.1- RTP Data Transfer Protocol 16 2.1.2- RTP Control Protocol (RTCP) 17 2.2- Organisation des agrgateurs dans le rseau 18 2.3- Classification des rcepteurs 19 2.3.1- Prliminaires 19 2.3.2- Algorithme de classification des agrgateurs 21 2.4- Travail existant 22 2.5- Travail du stage 22 2.5.1- Calcul du RTT 22 2.5.2- Dtection et rsolution des collisions des SSRC et CNAME. _______ 26 2.5.3- Synchronisation des abonnements aux couches Goin and leave). ______ 26 2.6- Rsultats attendus 27 2.7- Conclusion 28 CONCLUSION .......................................... . ........................... 29 J J I J J ~ I ( ) ( ; ~ I I I ~ ................................... .............................................. 30 INTRODUCTION La transmission vido mme en point point sur Internet n'assure aucune garantie au niveau de la perte, de la bande passante et du dlai reprsente un grand challenge, d'o la ncessit d'utiliser des protocoles de contrle qui adaptent l'application l'tat du rseau. La principale difficult pour adapter l'application aux conditions du rseau est due l'htrognit des rcepteurs, la source, pour qu'elle puisse adapter son dbit en fonction de l'tat du rseau, a besoin des informations autour les tats de rception des rcepteurs dans la session. Par la suite, chaque rcepteur doit envoyer un rapport de rception la source dans lequel il indique sa bande passante disponible et son taux de perte. Le rcepteur peut calculer facilement son taux de perte, il suffit qu'il surveille la rception du flux de donnes sur une certaine priode. La majorit des trafics sur Internet sont des trafics TCP, ds lors, le modle utilis par l'application pour calculer la bande passante disponible dans le rseau doit tre quitable avec les autres trafics TCP sur Internet. Les modles TCP sont souvent utiliss, ils allouent au flux de donnes la mme bande passante alloue avec le protocole TCP pour ce mme flux de donnes dans les mmes conditions due taux de perte et due dlai. Avec les modles TCP, la bande passante disponible du rcepteur est calcule en fonction de son taux de perte et le temps aller retour (RTT) entre lui et la source. La solution la plus simple pour calculer le RTT entre les rcepteurs et la source, est que chaque rcepteur envoie un paquet de contrle la source, et le RTT sera calcul comme tant le temps coul entre le temps d'mission du paquet la source par le rcepteur, et la rception de l'acquittement correspondant de la source. Cette solution est applicable pour les sessions avec un seul rcepteur ou avec un nombre trs petit de rcepteurs, mais pour une session avec un grand nombre des rcepteurs, cette solution prsente un problme de scalabilit et gaspillage de la bande passante du rseau. Par la suite, les rapports de rception des rcepteurs gaspille de la bande passante dans le rseau et peuvent causer une congestion dans le rseau et un problme de scalabilit, surtout dans le cas des sessions avec un grand nombre des rcepteurs. Dans ce mmoire, je dresse en dtail tous les problmes de la transmission vido multipoint sur Internet, et les solutions proposes, ainsi qu'une prsente solution qui assure une adaptation du dbit de la source, et en mme temps, qui ne prsente pas un problme de scalabilit des rapports de rception, ni un gaspillage de la bande passante dans le rseau. Dans le chapitre suivant, je dtaille ces problmes et quelques solutions proposes. Dans le chapitre 2, je prsente le protocole de transport RTP, et en dtaille l'approche prsente dans [12, 13] qui prsente une solution la transmission multipoint. L'approche propose la transmission des donnes en plusieurs couches et chaque rcepteur value sa bande passante disponible et choisit les couches joindre. Dans ce travail, est implment un algorithme de calcul de RTT entre les rcepteurs et la source propos dans notre approche. Cet algorithme sert calculer les bandes passantes TCP-Friendly des rcepteurs [18]. Les flux vido ont besoin d'un protocole de contrle de congestion qui vite les variations brusques de dbit, (ce qui n'est pas le cas pour le TCP). En mme temps, ce protocole de contrle doit tre quitable au niveau de la bande passante en comparaison avec les autres protocoles de contrle. Or, la majorit du trafic Internet est du trafic TCP, donc le protocole utilis doit allouer au flux vido (sur un intervalle du temps, qui peut tre long), la mme bande passante que TCP alloue ce mme flux, sous les mmes conditions du rseau, avec le mme taux de perte et le mme temps aller retour (RTT). L'intrt du calcul de la bande passante TCP-Friendly des rcepteurs est qu'on peut adapter le dbit de l' application aux capacits disponibles dans le rseau, en vitant les variations brusques de dbit, ainsi qu'on assure un partage quitable de la bande passante du rseau entre les diffrentes applications, ce qui peut rpondre aux besoins des applications vidos sur Internet. CHAPITRE! ETAT DE L'ART Introduction : La transmission vido multipoint sur Internet vers des rcepteurs htrognes est problmatique. Elle ncessite des algorithmes adaptatifs pour d'une part, lutter contre la perte de paquets sur Internet, et d'autre part, adapter le dbit de rception des flots vido aux caractristiques de chaque rcepteur. Pour que la source puisse adapter le dbit du flux de donnes aux caractristiques des rcepteurs, les rcepteurs doivent envoyer la source des rapports de rception dans lesquels ils indiquent leurs bandes passantes disponibles et leurs taux de perte moyens. D'autre part, les flux vido ont besoin d'un protocole de contrle de congestion qui vite les variations brusques de dbit, (c'est qui n'est pas le cas pour le TCP). En mme temps, ce protocole de contrle doit tre quitable au niveau de la bande passante en comparaison avec les autres protocoles de contrle. Or, la majorit du trafic Internet est du trafic TCP, donc le protocole utilis doit allouer au flux vido (sur un intervalle du temps, qui peut tre long), la mme bande passante que TCP alloue a ce mme flux, sous les mmes conditions du rseau, avec le mme taux de perte et le mme temps aller retour (RTT). L'intrt de l'utilisation d'un protocole de contrle qui calcule la bande passante disponible un flux de donnes est majeur. Un flux de donnes qui est transmit sans aucun contrle de dbit, peut affecter les flux de donnes transmis avec dbits contrls. Dans le cas o une congestion apparat dans le rseau, tous les flux contrls diminuent leurs dbits, et les flux sans contrle continuent mettre avec leurs mme dbit, en ignorant l'tat de congestion prsent, ce qui peut conduire des congestion de large dure, ainsi qu'ils peuvent dominer la bande passante disponible dans le rseau. Pour rcapituler, les problmes principaux de la transmission vido multipoint sur Internet, sont les suivants : 1- Le calcul de la bande passante alloue au flux. 2- Le problme de scalabilit des rapports de rception des rcepteurs. 3- L'htrognit des rcepteurs dus leurs tats de rception diffrents. 1.1- Le calcul de la bande passante alloue au flux: Pour des raisons d'quit avec le trafic Internet, qui est en majorit, compos de flots TCP, l'algorithme utilis peut calculer la bande passante alloue au flux vido, avec un modle TCP [18], en fonction du taux de perte et du RTT. 1.1.1 Calcul du taux de perte: Le calcul du taux de perte ne pose aucun problme, il suffit de surveiller la rception des paquets de donnes par le rcepteur lui-mme, et l'aide du numro de squence de chaque paquet, le rcepteur peut arriver facilement calculer son taux de perte. 1.1.2 Calcul du RTT : La mthode la plus simple pour calculer le RTT, est que l'un des deux extrmes (la source ou le rcepteur), envoie un message l'autre extrme. Le RTT est gal deux fois la diffrence entre l'instant de rception de ce message et son instant d'mission. 7 Mais cette mthode ncessite des horloges synchronises entre les deux extrmes. D'autre part, en ralit les rseaux sont souvent asymtriques, et dans ce cas, le temps d'aller n'est pas le mme que le temps de retour, ce qui rend le calcul du RTT imprcis. Une solution possible, est que l'un des deux extrmes envoie un message en mmorisant son instant d'mission, et que l'autre rpond avec un acquittement dans lequel est indiqu le Tdlsr, qui est la diffrence( en valeur absolue) entre l'instant de rception du message, et l'instant de gnration de l'acquittement correspondant. Le R TT est gal : RTT = Trception de l'acquittement- Tmission du message- Tdlsr. q. (a) Avec Tdlsr = 1 Trception du message- Tmission de l'acquittement correspondant 1 ....---->-----. _1 ~ ' / Fig. 1.1 Schma reprsentant les diffrents paramtres dans le calcul de RTT. Avec cette mthode, tous les rcepteurs doivent changer des messages de contrle avec la source. Ces messages envoys par les rcepteurs prsentent un problme de scalabilit et un gaspillage de la bande passante du rseau et surtout dans le cas de sessions avec un grand nombre de rcepteurs. 1.2 Scalabilit : Au passage l'chelle, la scalabilit est un paramtre trs important qu'il faut prendre en compte lors de l'implmentation d'un algorithme ou d'une discipline. Dans notre cas, le calcul du RTT prsente un problme de scalabilit des rapports des rcepteurs. De nombreux algorithmes ont t proposs pour rsoudre le problme de rapports de rcepteurs [ 1 ,2] . [1] prsente un algorithme propos par Anindya Basu, S.Jamaloddin Golestani, mais avec une hypothse forte, sur la distribution de rcepteurs dans le rseau. 8 Comme la montre la figure 1.2, les rcepteurs se distribuent dans le rseau sous la forme d'un arbre. Avec cet algorithme, la source diffuse un message, et le RTT pour chaque rcepteur est calcul comme tant le temps coul entre la diffusion de ce message, et l'instant de rception par la source de l'acquittement correspondant du rcepteur. L'algorithme propose une mthode qui permet chaque rcepteur de calculer facilement les RTT entre lui et chacun de ses fils (RTT diffrentiel). Le rcepteur, aprs la rception d'un acquittement de son fils, calcule le RTT diffrentiel de ce dernier. Priodiquement, chaque rcepteur envoie un acquittement agrg au rcepteur de niveau suprieur dont lequel il indique le R TT diffrentiel de chaque rcepteur duquel il a reu un acquittement. La manire de distribution des rcepteurs dans le rseau, prsente en mme temps le point fort et le point faible de cet algorithme. D'une part, cette distribution assure la fusion des acquittements des rcepteurs, ce qui vite le problme de scalabilit de ces acquittements. De l'autre part, avec une autre distribution des rcepteurs, par exemple des rcepteurs distribus dans le rseau comme des feuilles, la fusion des acquittements des rcepteurs devient inefficace, par suite, on aura un problme de scalabilit de ces acquittements. Ainsi que chaque rcepteur envoie son acquittement au rcepteur de niveau suprieur (ou la source s'il est en face d'elle), et ce dernier attend un certain temps avant l'mission de son acquittement agrg au rcepteur de niveau suprieur (ou la source), et ainsi de suite jusqu'au l'arrive la source, donc, on a un retard ajout au temps ncessaire pour que l'acquittement du rcepteur arrive la source, ce qui rend le calcul des RTT des rcepteurs imprcis. ------li 9 Fig. 1.2 La distribution des rcepteurs dans le rseau [2] prsente une solution propose par T.Turletti, J.Bolot et I.Wakeman, avec laquelle, chaque rcepteur envoie son rapport avec une probabilit qui est fonction du nombre de rcepteurs. Aussi, une autre solution efficace au problme de scalabilit, est l'utilisation des agrgateurs au sein du rseau [10,11]. Les agrgateurs se distribuent dans le rseau sous la forme d'un arbre, dont les feuille les s'appellent des agrgateurs feuilles, et la racine, l'agrgateurs final. Le rle de ces agrgateurs, est d'agrger les rapports des rcepteurs, et de les fusionner en un seul rapport. Plusieurs paramtres sont pris en compte dans cette opration de fusion. Un agrgateur feuille est lu pour chaque groupe des rcepteurs qui se trouvent dans une mme rgion locale. Chaque rcepteur envoie son rapport son agrgateur feuille, et ce dernier, chaque fois, il reoit un rapport d'un rcepteur, il fusionne avec les autres, et envoie un rapport fmal l'agrgateur de niveau suprieur, et ainsi de suite, jusqu'au l'arrive agrgateur final, qui dlivre la source un rapport final agrg. Avec cette solution, tous les rcepteurs peuvent envoyer leurs acquittements, et le nombre d'agrgateurs est fonction du nombre de rcepteurs. 10 Fig. 1.3 La distribution des agrgateurs dans le rseau 1.3- L'Htrognit des rcepteurs: Les solutions proposes pour le problme d'htrognit des rcepteurs sont nombreuses. Les deux approches, MTCP [3] et RMTP [4] utilisent une fentre de congestion, comme TCP. Avec ceux-ci, la fentre n'augmente que si la source reoit les acquittements de tous les rcepteurs. En plus, ces deux approches, utilisent les mmes protocoles que le TCP pour l'augmentation ou la diminution de la fentre. Avec ces approches, la source adapte son dbit selon l'tat du rcepteur le plus mdiocre du groupe des rcepteurs, et par suite, ne prsentent pas une solution efficace au problme d'htrognit. Aussi, ils utilisent une architecture complexe pour l'agrgation des acquittements. Une autre solution est la transmission de donnes en multicouches. Avec cette solution, la source met les donnes en plusieurs couches, une couche de base, et des couches supplmentaires, et chaque rcepteur, aprs l'valuation de sa bande passante disponible, choisit les couches a joindre. Dans la couche de base, la source met les donnes ncessaires pour une rception avec une qualit minimale, et dans les couches supplmentaires, elle envoie le reste des donnes pour augmenter la qualit de rception. Chaque rcepteur s'abonne la couche de base, et si sa bande passante le permet, il s'abonne aux couches supplmentaires, pour amliorer la qualit du flux qu'il reoit. Cette opration d'abonnement est dtaille dans le chapitre suivant. La source affecte chaque couche un niveau de protection, et la couche de base est la plus importante. Cette protection dpend de l'algorithme utilis, soit en affectant chaque couche, un niveau de priorit (et dans ce cas, le nombre maximal de couches gnres doit tre infrieur ou gal au nombre maximal de niveaux de priorits que le rseau puisse supporter), soit en envoyant les donnes avec redondance. Ces couches peuvent tre statiques, c'est dire sont fixes en nombre et dbit, ou bien dynamiques, qui sont variables, en fonction de l'tat du rseau. Dans le premier cas, la source fixe, au dbut de la transmission, le nombre de couches et le dbit de chaque couche. Dans le cas des couches dynamiques, chaque rcepteur, envoie son rapport, en indiquant son taux de perte, et sa bande passante disponible, et selon ces rapports, la source adapte le nombre de couches et le dbit de chacune. Avec cette solution, mme le dbit de la couche de base peut tre variable. Dans le cas o la bande passante la plus faible dans le groupe de rcepteurs, est plus grande que le dbit de cette couche de base, la source peut rgler le dbit de cette couche la valeur de la bande passante minimale. Dans le cas des couches dynamiques, et comme dans le calcul du RTT, les rapports des rcepteurs prsentent un problme de scalabilit. Mais l'avantage de cette solution, est qu'elle reflte toujours l'tat du rseau, ce qui n'est pas le cas avec les couches statiques. La source, avec des messages de contrle, transmet des informations concernant les couches, nombre, dbit et adresse de chacune. Les oprations "join and leave" qui permettent aux rcepteurs de joindre ou quitter une telle couche, sont synchronises avec des messages envoys par la source (ces oprations sont dtailles dans le chapitre suivant). 11 Le routeur, parmi les couches qu'il reoit, ne laisse passer que celles rclames par les rcepteurs ce qui prsente une conomie de la bande passante utilise. Vicisano L. Rizzo et J. Crowcroft [5], prsentent une approche avec une transmission de donnes en un nombre de couches statiques, et chaque rcepteur, aprs l'estimation de son taux de perte, dcide de son abonnement aux couches. Les inconvnients de ce mcanisme, est qu'il utilise des couches statiques, et que le calcul de la bande passante du rcepteur se fait en fonction du taux de perte uniquement, sans prendre en compte son RTT entre lui et la source. PLM ( packet pair receiver-driven layered multicast)[6] est bas sur une transmission de donnes en multicouches, dont le nombre est fixe, ainsi que le dbit de chacune. Avec cette approche, la source met deux paquets conscutifs, en indiquant dans leurs enttes que ces sont des paquets de contrle, et le rcepteur, en fonction du temps coul entre la rception de ces deux paquets, dtermine sa bande passante disponible et s'abonne aux couches adquates. Cette mthode permet d'viter le problme des rapports des rcepteurs, mais elle ncessite que les routeurs utilisent une discipline quitable pour servir les paquets dans les files d'attentes, car sinon, le temps coul entre la rception de ces deux paquets, ne sera plus proportionnel la bande passante disponible. T. Jiang, E. Zegura and M. Ammar[7] prsentent un mcanisme avec lequel, la source met une couche de base dont le dbit est fixe, et des couches supplmentaires avec des dbits variables. Ces dbits sont calculs en fonction des rapports de rcepteurs, qui valuent leurs bandes passantes disponibles en fonction du taux de perte et ne prennent pas en compte leurs RTT. Aussi, cette approche, ne propose pas de solution pour viter la saturation du rseau avec les rapports de rcepteurs. Cheung, Ammar et Li [8], prsentent une solution, qui consiste dcomposer le groupe de rcepteurs en sous-groupes. Vers chacun de ces sous-groupes, la source met les donnes avec un dbit qui est calcul en fonction des rapports des rcepteurs du sous-groupe correspondant. Une autre solution est prsente dans [9], avec laquelle la source met une seule couche avec un dbit maximal. Chaque noeud intermdiaire, quand elle reoit cette couche de donnes, calcule la bande passante disponible entre lui et les noeud prochain et/ou les rcepteurs. Puis, vers chacun des noeuds prochains et/ou les rcepteurs, le noeud intermdiaire transfre la couche de donnes avec un dbit adapt la valeur correspondante de la bande passante disponible. Notons que cette solution a l'inconvnient de demander une architecture complexe des routeurs. [10] prsente deux approches qui adressent le problme d'htrognit des rcepteurs, et qui permettent la source d'adapter dynamiquement son dbit en fonction de l'tat du rseau. Ces deux approches sont cites ci-dessous : a- Network-Based SAMM [10]: elle ncessite la contribution de noeuds intermdiaires pour calculer la bande passante disponible sans perte qui peut tre alloue ce flux. Pour cela, il est ncessaire d'implmenter dans les routeurs un algorithme, qui, en surveillant les flux qui le traversent, calcule la bande passante totale alloue aux flux vido, ainsi que celle de chacun d'eux. La source met plusieurs couches de donnes, et pour chaque n paquets de donnes (n autour 32), elle met un paquet de contrle, dans lequel elle indiquant le nombre maximal de couches qu'elle peut gnrer. 12 Dans ce paquet de contrle, la source fixe le champ RE la valeur du dbit maximum voulu, qui est la somme des dbits de toutes les couches. Le routeur, aprs la rception de ce paquet, calcule la bande passante disponible sans perte de paquets qui le traversent, en fonction du taux de perte pendant l'intervalle du temps coul entre la rception de ce nouveau paquet de contrle et le paquet prcdent. Aprs, il affecte RE le minimum entre la valeur de la bande passante disponible calcule, et la valeur courante de RE. Le rcepteur, quand il reoit ce paquet, rpond avec un acquittement, en indiquant la valeur de RE, qui reprsente sa bande passante disponible sans perte. Cet approche, rsout le problme de scalabilit des acquittements, en implmentant des agrgateurs dans le rseau. La source, selon l'acquittement final agrg, adapte le nombre de couches et le dbit de chaque couche. b- End-to-End SAMM [10]: trs simple, il consiste une valuation des bandes passantes disponibles aux rcepteurs, en surveillant la rception des paquets, ce qui vite de gaspiller de la bande passante dans le rseau avec les paquets de contrle de la source. Le rcepteur, en valuant le taux de perte des paquets de donnes, peut valuer si le dbit avec lequel il reoit est infrieur ou suprieur que sa bande passante disponible. La source adapte le nombre de couches et le dbit de groupe, en fonction des rapports de rcepteurs. Aussi, cette approche utilise des agrgateurs, pour fusionner les acquittements de rcepteurs. Avec ces deux approches, le rcepteur calcule sa bande passante disponible sans perte, ce qui prsente deux inconvnients : Or la majorit du trafic Internet est un trafic TCP, par suite le calcul de la bande passante disponible sans perte du rcepteur n'alloue pas ce rcepteur la mme bande passante alloue avec un modle TCP [18] dans les mmes conditions du rseau, avec le mme taux de perte et le mme RTT, ce qui rend le partage de la bande disponible dans le rseau entre les diffrentes applications inquitable. Le deuxime inconvnient est que les applications vidos ont besoin d'un protocole de contrle qui vite les variations brusques de la bande passante disponible dans le rseau. Le calcul de la bande passante disponible sans perte du rcepteur se fait la rception en comptant le nombre des paquets reus pendant une priode T. Ainsi, la prsence d'une congestion dans le rseau, la bande passante disponible sans perte du rcepteur se diminue rapidement, et dans le cas o la congestion disparut, cette bande passante augmente rapidement, par suite, on a une variation brusque dans la bande passante disponible de l'application dans le rseau. Les modles TCP sont utiliss pour viter cette variation brusque du dbit, ainsi que pour avoir un partage quitable de la bande passante disponible dans le rseau entre les diffrentes applications. Notons que la premire approche demande une architecture complexe des routeurs. MLDA [11]: est une approche qui adresse le problme d'htrognit de rcepteurs, en proposant un algorithme pour calculer le RTT entre les rcepteurs et la source. La transmission des donnes se fait en un nombre dynamique des couches. A l'aide des rapports de rception des rcepteurs, la source adapte son dbit. La source met priodiquement des messages de contrle (SR), en indiquant le nombre de couches, le dbit et l'adresse de groupe. 13 Chaque rcepteur, aprs la rception du message SR, commence surveiller la rception de paquets de donnes sur chaque couche sur une certaine priode (TO pour la couche de base, Tl pour la premire couche supplmentaire, etc.). Apres le calcul de son RTT, le rcepteur calcule sa bande passante disponible, attend un dlai alatoire, et diffuse son rapport (RR) la source dans la couche la plus leve laquelle ce rcepteur s'est abonn. Les rcepteurs qui se trouvent dans une mme rgion locale reoivent le message SR presque en mme temps. Pour viter la congestion dans les files d'attentes de la source avec les rapports de rception des rcepteurs, qui peut conduire une perte de rapports, chaque rcepteur attend un dlai alatoire avant l'mission de son rapport. Pendant ce dlai alatoire, le rcepteur coute le port correspondant sa couche la plus leve, et s'il reoit un RR d'un autre rcepteur qui demande cette mme couche, il dtruit son rapport cet algorithme s'appelle suppression partielle, et il prsente une solution efficace pour rsoudre le problme de scalabilit des rapports de rcepteurs. La source, avant d'mettre chaque SR, calcule le Tdlsr de chaque rapport de rcepteur reu dans la priode coule entre l'instant du dernier SR, et l'instant d'mission de ce SR. Sous forme de rponse aux RR de rcepteurs, la source introduit dans son message SR des nouveaux champs contenant le Tdlsr d'un RR reu, et l'identit du rcepteur correspondant. Pour les autres rcepteurs qui ont dtruit leurs rapports, la solution est la suivante : Dans un rseau idal (avec des horloges synchronises et sans asymtrie), le RTT est gal deux fois la diffrence (en valeur absolue), entre l'instant de rception du message de l'une des deux extrmits, et l'instant d'mission de ce mme message de l'autre extrmit, donc: RTT/2 =Trec- Tem (1) Pour compenser la dsynchronisation d'horloges, on ajoute le p a r a m t r ~ et le paramtre pour compenser l'asymtrie du rseau, et l'quation (1) devient: RTT/2 =Trec- Tem + ft):rT- {z-) . Supposons = f) :::- rr- ) donc : =Trec- Tem- RTT/2 (3). La source inclut dans chaque message SR l'instant d'mission de ce message. Le rcepteur, aprs la rception du message SR de la source, pour pouvoir calculer son RTT entre lui et la source, il a besoin de calculer la valeur de e. Chaque rcepteur qui obtient une rponse dans le message SR de la source, calcule son RIT selon l'quation (a). Ensuite, il calcule la valeur delavee l'quation (3) et annonce aux autres rcepteur cette valeur. Pour cela, il diffuse un message, avec un ttl (temps de vie) faible, en indiquant la valeur de 8 . Avec un faible ttl, ce message n'atteint que les rcepteurs locaux. Appelons ce rcepteur, Rs. A prsent, chaque rcepteur qui a dtruit son RR, change des paquets de contrle avec un rcepteur Rs local pour calculer le RTT entre lui et la source. Aprs la rception du message de Rs, dans laquelle )e Rs indique sa valeur de le rcepteur envoie son Rs un message (appel demande deJ'dont lequel il indique son identit, et il mmorise son instant d'mission. d Le Rs chaque fois il reoit une demande de/d'un rcepteur, il rpond avec un message (appel rponse duRs) dont lequel il indique l'identit du rcepteur et le Tdlsr de sa demande de B. A la rception de la rponse du Rs, le rcepteur calcule le R TT entre lui et ,.;;on Rs, puis, il /? calcule son local avec ce dernier, et par suite, la valeur de 8 sera la somme du"local et du-Rs. fJ du s L'intrt de cette approche, est qu'elle adresse savoir les problmes d'htrognit des rcepteurs et de scalabilit des rapports de rception. Elle prsente aussi un algorithme pour calculer les R TT des rcepteurs. 14 1.4- Conclusion : Pour rcapituler les principaux problmes de la transmission multipoint vido sur l'Internet, et des solutions proposes, il faut noter que l'htrognit des rcepteurs, et la scalabilit des rapports de rception reprsentent un grand chalenge, d'o la ncessit d'un algorithme qui adresse ces deux problmes, et ne gaspille pas de la bande passante dans le rseau avec les paquets de contrle. Dans le chapitre suivant, le protocole de transport RTP, ainsi qu'un algorithme propos dans [12, 13] qui prsente une solution tous les problmes cits ci-dessus. 15 CHAPITRE II UNE SOLUTION A LA TRANSMISSION MUL TIPOINT Introduction: L'tude du chapitre prcdent amne conclure de la ncessit d'un algorithme qui adresse les principaux problmes de la transmission multipoint, savoir, l'htrognit des rcepteurs ainsi que la scalabilit d'mission des rapports de ces derniers, et en mme temps, d'viter de gaspiller de la bande passante dans le rseau avec les paquets de contrle. Dans ce chapitre, une solution de contrle de transmission multipoint propose dans [12] et [13]. L'approche consiste utiliser une transmission des donnes avec un nombre de couches dynamiques pour rsoudre le problme d'htrognit des rcepteurs. Cette approche utilise des agrgateurs pour rsoudre le problme de scalabilit d l'mission des rapports des rcepteurs, ainsi qu'une mthode qui permet de calculer le R TT entre les rcepteurs et la source. Cette approche utilise le protocole RTP pour transfrer les paquets de donnes et de contrle (RTCP). Dans la section 2.1 le protocole R TP. La section 2.2 adresse plusieurs mthodes pour l'organisation des agrgateurs dans le rseau. Dans la section 2.3, on prsente l'algorithme utilis pour la classification des rcepteurs. La section 2.4 prsente le travail dj fait au niveau de l'implmentation de cette approche. Dans la section 2.6, les rsultats attendus aprs la fin de l'implmentation du programme, et une conclusion est prsente dans la section 2. 7. 2.1- Real Time Transport Protocol (RTP): RTP est un protocole de transport en temps rel qui est conu pour satisfaire les besoins des applications multimdia sur internet. RTP est utilis juste au dessus du protocole UDP, et on distingue, le protocole de transfert des donnes RTP du protocole de contrle associ RTCP. 2.1.1- RTP Data Transfer Protocol : Un paquet de donne est dcompos d'une entte et d'un champ de donne. L'entte elle mme est dcompose en deux partie, une partie fixe (entte fixe) de douze octets, qui est commune entre toutes les applications qui utilisent RTP, et une entte supplmentaire qui est fonction de l'application considre. Dans l'entte du paquet de donne, la source transmet toutes les informations ncessaires pour le traitement de ce paquet, savoir, le type, la taille des donnes, le numro de squence de ce paquet, l'identit de la source (SSRC) ou la liste des sources (CSRC liste) dans le cas o plusieurs sources ont contribu ce paquet de donne, etc. 16 2.1.2- RTP Control Protocol (RTCP): RTCP est bas sur la transmission priodique des paquets de contrle tous les participants la session, et sa fonction principale est d'obtenir des rapports de rception des flux vido. Il y a cinq types de messages RTCP: 1- SR (Sender Report): C'est le rapport (ou le message de contrle) de la source qui contient des informations concernant les donnes envoyes par cette source, et des statistiques sur la rception des flux envoys par les autres sources dans le cas d'une session plusieurs sources. 2- RR (Receiver Report): C'est le rapport de rception des rcepteurs, dans lequel le rcepteur indique son tat de rception (sa bande passante disponible et son taux de perte). Dans le cas d'une session plusieurs sources, ce rapport peut contenir des statistiques sur la rception d'au plus 31 sources. 3- SDES (Source description RTCP packet): Le protocole RTP identifie chaque lment de la session indpendamment des couches infrieures, pour cela, il affecte ceux-ci plusieurs identificateurs qui sont le SSRC, CNAME, NAME, EMAIL, PHONE, LOC, TOOL, NOTE et PRIV. Ces identificateurs sont choisis alatoirement, et les deux premiers (SSRC et CNAME) doivent tre unique sur toute la session, d'o la ncessit d'utiliser des algorithmes pour la dtection et la correction des collisions. Chaque lment de la session (source ou rcepteur) transmet ces identificateurs dans un paquet SDES, chaque fois qu'il transmet un rapport, donc chaque SR ou RR est suivi d'un paquet SDES. Notons que ces identificateurs sont affects chaque fois que l'on lance l'application. Dans le cas o la source met plusieurs types de donnes, par exemple, un flux audio et un flux vido, un mme paquet ne peut pas transporter ces diffrents types. Dans ce cas, RTP affecte la session des identificateurs SSRC pour chaque application, condition que le SSRC de chaque lment (source ou rcepteur) soit nouveau pour chaque application. Afin d'un seul CNAME est affect chaque lment de la session pour toutes les applications, permettre aux diffrents lments de synchroniser les flux reus. D'o la raison de l'utilisation de plusieurs identificateurs et non pas un seul. 4- BYE: Chaque lment de la session doit envoyer ce paquet pour indiquer la fm de sa contribution la session. 5- APP: Dans le cas des applications spcifiques, les donnes peuvent tre transmises dans des paquets spcifiques de type APP. Ce paquet consiste en une entte de 12 octets et un champ de donnes qui est fonction de l'application considre. Le format de ce paquet APP est reprsent dans le schma ci -dessous : 17 - 011 1 L- "f C .r - + -+ 2 6 -r 6 ) V A z "?. 1, :) 6 ::t .'7 "' 1 -r -+-+- :: -+- 4- ..., 1 [}A 2 3 \1-::. "Z.. I '?l J n= 4-?P:=:- - + +- +,ol'79.rir .!:z_ !_ 1. l? c, t - + -+ - - + - f- - + - f _ + _ + - vH:-, t t Ss R cf cs R<' + +- - .J- - -+ - + -+ + + +--t--+-+-+-+-+-+-+-+ + +- , 1 ( + + + - -+ + -+ - + - + -+ - + - + - t - f- - + - + -t - + 1 p--C; ut - iJ.c;enoi'cn . . .. -t -+--+- -t--+-+-+-+-+-+-+-+- -1- +--t.-.+ Fig.2.1 Format du APP Plus de dtails concernant le protocole RTP et le rle de chaque champ de ces paquets sont prsents dans [ 14] 2.2- Organisation des agrgateurs dans le rseau : La figure ci-dessous (Fig. 2.2) reprsente un exemple d'implmentation hirarchique multi niveau des agrgateurs dans le rseau. Les agrgateurs sont distribus sous la forme d'un arbre dont la racine est le AAO (Agrgateur final), et AAi reprsente un agrgateur de niveau i. Les agrgateurs de niveau le plus bas s'appellent agrgateurs feuilles. Chaque rgion contient un agrgateur feuille qui fusionne les rapports des rcepteurs qui y appartient, et l'envoie l'agrgateur de niveau suprieur. Le rapport final agrg contient le nombre des rcepteurs dans chaque classe. Les agrgateurs peuvent tre placs manuellement, ou automatiquement en utilisant des fonctions qui s'occupent de lancer des agrgateurs dans le rseau. [15] prsente une mthode de placement automatique des agrgateurs dans le rseau. Cette mthode consiste implmenter une fonction en utilisant le custom concast. Le custom concast est une application qui permet de dterminer une adresse destination pour un groupe de sources. Chaque groupe de rcepteurs applique cette fonction ou cette application pour choisir un agrgateur feuille, et chaque groupe des agrgateurs feuilles applique cette fonction pour choisir un agrgateur de niveau suprieur, et ainsi de suite jusqu'au le choix de l'agrgateur final. Le datagramme du custom concast contient un ensemble des groupes de sources et une destination unique pour chacun de ces groupes. 18 Fig. 2.2 Utilisation hirarchique multi niveau des agrgateurs Chaque rcepteur envoie son rapport l'adresse destination du groupe auquel il appartient, et la source reoit un seul rapport final agrg. La signalisation dans cet algorithme permet l'application d'avoir des informations concernant la configuration du rseau, pour pouvoir dcomposer le groupe des rcepteurs en sous-groupes, et dterminer les adresses des destinations correspondantes. Une autre mthode est prsente dans [16], qui consiste utiliser dans le rseau plusieurs noeuds actifs appel cluster (not AS 1 ). Dans cet algorithme, les rcepteurs ragissent comme des clients qui lancent des Agents (agrgateurs) dans des positions stratgiques dans le rseau. Avant que le client (rcepteur) lance un Agent dans le rseau, il coute le rseau pour recevoir des informations qui lui permettent d'effectuer un rendez-vous avec un nud actif. Ces informations peuvent tre obtenues en coutant une adresse multipoint connue, ou en utilisant le DHCP dcrit dans [17]. Une fois le client a affect un rendez-vous avec un AS 1, il lance son Agent. AS 1 implmente un protocole de contrle (ASCP) qui utilise un HM (Home Manager). Ce dernier reoit les demandes des agents des rcepteurs, et choisit un Agent principal et des agents secondaires pour remplacer l'agent principal dans le cas o ce dernier tombe en panne. Dans le cas o un rcepteur tombe en panne, le rcepteur est annul de la liste des rcepteurs, et la mme chose pour son Agent. Notons que dans les deux cas, les agrgateurs participent seulement aux flux RTCP et non pas aux flux des donnes ou de contrle. 2.3- Classification des rcepteurs : 2.3.1- Prliminaires : La classification des rcepteurs sert regrouper les rcepteurs homognes dans une mme classe, pour laquelle la source prend les mmes dcisions d'adaptation. Cette classification ne 19 doit pas se faire seulement en fonction des rapports des rcepteurs actuels, mais elle doit prendre en compte les rapports rcents du pass. Dans ce cas, une procdure doit tre ajoute pour oublier les rapports trs anciens. Avant de dcrire les mthodes utilises pour classifier les rcepteurs, il faut citer les paramtres qui sont pris souvent en compte lors de la classification. Parmi ces paramtres, le taux de perte et la bande passante disponible des rcepteurs. Le taux de perte permet la source de dterminer le niveau de protection ncessaire pour chaque couche, et il peut tre calcul en surveillant la rception du flux de donne sur un intervalle de temps. La bande passante disponible est utilise par la source pour adapter les dbits des diffrentes couches. Dans le cas o l'on calcule les bandes passantes disponibles des rcepteurs avec une quation TCP, qui utilise un modle de TCP (18], un algorithme scalable doit tre utilis pour calculer les RTT entre les rcepteurs et la source. L'quation TCP utilise dans notre approche est la suivante: BW = S/[R*(2*p/3)2 + tRTo*(3*(3P/8)2)*P*(1 + 32P2)] (1) O S est la taille moyenne des paquets de donnes en bytes estime par le rcepteur, Rest la valeur du RTT en secondes entre le rcepteur et la source calcule en secondes. pest le taux de perte moyen du rcepteur compris entre 0 et 1. tRTo(en secondes)= 4*R. Dans une session avec une seule source et un seul rcepteur, le rcepteur envoie un acquittement pour chaque paquet de donnes ou pour un groupe de paquets selon l'algorithme utilis. Si l'acquittement correspondant au paquet (ou au groupe des paquets) de donnes n'arrive pas la source avant tRTo partir de l'instant de son mission, il est considr perdu. Plusieurs approches sont proposes pour modliser le processus de perte: Le modle de Gilbert est un modle Markovien simple deux tats, un tat de perte reprsent par B (Bad), et un tat dans lequel le paquet arrive la destination, et est reprsent par G (Good). p dsigne la probabilit de passer de l'tat G l'tat B, et q la probabilit de passer de l'tat B l'tat G. Les temps moyens de sjour dans l'tat G et dans l'tat B sont respectivement 1/p et 1/q. La moyenne de perte dans ce modle est : p1 = p/(p + q). ? Fig. 3.3 Le modle de Gilbert Dans le cas o la probabilit de perte dans l'tat B n'est pas 1, et la probabilit de rception du paquet n'est pas 0, la moyenne de perte devient : p1 = p* pB /(p + q) + q*pa/(p + q). La classification des rcepteurs peut se faire en fonction d'un seul paramtre ou un groupe de paramtres dpendants ou indpendants. Elle se fait en regroupant les rapports similaires dans une mme classe; Pour cela, il faut une mthode pour mesurer la distance entre les diffrents rapports et choisir la classe la plus proche. 20 Cette distance peut tre mesure avec une quation cludienne Lp donne par la formule sui vante : d( x, y) = ( l: (Xi - yi)p) l!p o Xi et Yi sont les diffrents paramtres des rapport x et y respectivement. 2.3.2- Algorithme de classification des agrgateurs: [12] prsente un algorithme simple pour la classification des rcepteurs. Chaque classe est reprsente par un point reprsentatif et un poids, et chaque fois qu'un nouveau point rejoint cette classe, il change la position du point reprsentatif ainsi que son poids. L'agrgateur reoit les rapports des rcepteurs, et quand un nouveau rapport arrive, il joint la classe la plus proche, qui correspond la distance cludienne minimale, et dans le cas o cette distance est plus grande qu'un certain seuil, une nouvelle classe est cre, condition que le nombre total des classes soit infrieur 5, qui est le nombre maximal des couches. Notons que chaque classe correspond une couche. Chaque agrgateur envoie rgulirement son rapport agrg vers l'agrgateur de niveau suprieur. L'agrgateur feuille considre le point reprsentatif obtenu avec la priode passe comme un point reprsentatif pour la nouvelle priode, et les agrgateurs de niveaux suprieurs rinitialisent leurs points reprsentatifs aprs l'mission de leurs rapports. gateur feuille est diminu chaque fois que ce dernier envoie son rapport, et quand le poids descend sous un certain seuil, la classe est limine. Cette mthode prend en compte les rapports des rcepteurs rcents du pass, et limine les rapports trs anciens. Pseudo-Code de classification des rcepteurs: dth = seuil dfini pour crer des nouvelles classes (si la distance entre un rapport de rception reu et toutes les classes existantes est suprieur ce seuil, et si le nombre des classes est infrieur 5, une nouvelle classe est cre, autrement, le rapport joint la classe la plus proche). Nmax =nombre maximal des classes (5) r = rapport du rcepteur reu Chercher la classe la plus proche d(r, mine d(tj, t) .si (d(r, c dth} Si (nombre des classes< Nmax) Ajouter une nouvelle classe CNEw & Ajuster le poids (le nombre des rcepteurs) de la classe Gftew Calculer le point reprsentatif de la classe t xc= (poids()* x+ r)/(poids ( ._) f" 11 ) Augmenter le poids de la classe C de 1. Mcanisme d'agrgation des rapports des rcepteurs: W min = seuil de suppression de la classe y = poids de la mmoire V\ C = ~ W Au dbut de la priode pour toutes les classes diminution du poids de la classe par le facteur poids(C) = poids(C)* y Si (poids(C) < Wmin) enlever la classe Recevoir un nouveau rapport 21 Envoyer le rapport agrg vers l'agrgateur de niveau suprieur 2.4- Travail existant : L'approche implmente est utilise pour une transmission des donnes en plusieurs couches, et en fonction de l'tat de rception, la source adapte les caractristiques des couches. Cette approche propose l'utilisation d'agrgateurs pour rsoudre le problme de scalabilit d'mission des rapports des rcepteurs. Dans la version du code utilis, la transmission des donnes se fait en une seule couche, et chaque T control (appele priode de contrle) la source diffuse un paquet de contrle RTCP, compos d'une option SR, suivi d'une option SDES et d'une ou plusieurs options APP. Dans ces options APP, les informations concernant les caractristiques des couches sont transmises. Chaque rcepteur envoie son agrgateur feuille son rapport de rception en indiquant le taux de perte moyen des flux des donnes la rception et sa bande passante disponible sans perte. Ces rapports de rception sont envoys une fois dans chaque priode T control. Les fonctions correspondantes la fusion des rapports des rcepteurs sont dj implmentes, et par suite, le problme de scalabilit des rapports des rcepteurs est rsolu. 2.5- Travail : L'approche de [12, 13] propose une solution pour mesurer les RIT entre les rcepteurs et la source dans laquelle seuls les agrgateurs feuilles changent des messages avec la source, et chaque rcepteur calcule son RTT avec la source comme tant la somme de son R TT avec son agrgateur feuille et le R TT de son agrgateur feuille avec la source. Dans mon stage, j'ai implment l'algorithme de calcul des RTT entre les rcepteurs et la source en se basant sur l'ide cite ci-dessus. Aprs l'intgration du code correspondant au calcul du RTT entre les rcepteurs et la source, chaque rcepteur calcule le RTT entre lui et la source et transmet son rapport de rception son agrgateur feuille en indiquant sa bande passante disponible calcule avec un modle de TCP avec l'quation (1) au lieu de sa bande passante disponible sans perte, ainsi que le taux de perte moyen des flux des donnes la rception. Le problme de la dtection et la correction des collisions entre les identificateurs (SSRC et CNAME) des diffrents lments de la session ainsi que les oprations d'abonnement des rcepteurs aux couches supplmentaires, et des solutions qui peuvent tre implmentes et intgres facilement avec les codes prsents. 2.5.1- Calcul du RTT : La mthode suivie consiste changer des options APP entre la source et l'agrgateur feuille d'une part, et le rcepteur et son agrgateur feuille d'autre part. Les options APP changes pendant chaque priode de contrle T control pour le calcul des RTT entre les rcepteurs et la source sont dcrites ci-dessous : Chaque agrgateur feuille envoie priodiquement chaque Tcontrol (avec un dlai alatoire) une option APP (appele demande du RIT de l'agrgateur feuille) la source en indiquant dans le champ de donne le numro de squence de ce paquet, et il mmorise son instant d'mission. 22 0 0 A <2- +-+- + 1 v ::;. "(___ t ? i 1 -+ + --t --+ --+ - + 1 .... ..- -+ --t - -t --t - + 1 6 8 -+ 1 lj --+ -+ +-+-+ t(eune ( A Sc 1 f ) - + + -=-- + - - + -::.. + --::z_ + --:::;__ + 1 1 + :::: +-
fooifk ruyueo t- /3 elu eyzce rttun t :: + + + + + + -+ -+ - -t 1 - + = +- Fig.2.4 Format de la demande du R TT des agrgateurs feuilles Chaque fois que la source reoit une demande du R TT d'un agrgateur feuille, elle la mmorise avec son instant de rception. Avec le message priodique diffus par la source chaque T control, une option APP est ajoute (appele rponse de la source), dont le champ de donne est compos de plusieurs sous- rponses aux demandes de RTT reues. Comme montre la figure 2.5 ci-dessous, chaque sous-rponse de ce champ de donnes est compose de plusieurs champs correspondants au T dlsr d'une demande reue (qui est le temps coul entre la rception de la demande et l'mission de la rponse correspondante), le numro de squence de cette demande, ainsi que le SSRC de l'agrgateur feuille correspondant. Aprs la rception de la rponse de la source, chaque agrgateur feuille calcule le R TT entre lui et la source avec l'quation suivante: R TT Agrgateur = T rception de la rponse de la source - T mission de la demande de l'agrgateur - T dlsr (1)
1 -t- - --f 1 + -t IZ + Fig. 2.5 Format de la rponse de la source aux demandes de RIT des agrgateurs feuilles Le rcepteur, envoie priodiquement chaque T control (avec un dlai alatoire) un option APP (appel demande de RTT du rcepteur) son agrgateur feuille, en indiquant dans le ~ h a m p de donnes le numro de squence de cette demande. -t -t -1 1 + -::::.. t ;::. t- ~ t--;::. + ;::- t :::=- t ::::: t ::::' t- :::::-+ :::: t ;:._ t -= + -;:::. -t :::::_ 1- .:::::.._ + -:::... -t :::: + =--t -::::: 1 : + 1 1 l ~ -+ -=- + =-+-=- f Fig. 2.6 Format de la demande de RTT des rcepteurs Si tous les rcepteurs envoient leurs demandes de RTT leurs agrgateurs feuilles priodiquement chaque T control, on aura une congestion dans les files d'attentes des agrgateurs feuilles, pour cela, chaque rcepteur attend un dlai alatoire avant l'mission de sa demande de RTT. 24 La valeur alatoire peut tre positive ou ngative, elle varie entre deux valeurs extrmes, V max et V min de telle faon que chaque rcepteur envoie une demande et une seule pendant chaque priode T control. Les deux valeurs extrmes V max et V min sont choisies en fonction du nombre maximal des rcepteurs connects un mme agrgateur feuille. Pour la mme raison, et pour viter la congestion de la file d'attente de la source avec les demandes de RTT des agrgateurs feuilles, chaque agrgateur feuille envoie sa demande du R TT la source avec un dlai alatoire. L'agrgateur feuille chaque fois qu'il reoit une demande de R TT d'un rcepteur, il la mmorise avec son instant de rception. A la rception de la rponse de la source, il cherche sa rponse dans le champ de donne du paquet reu, en comparant son SSRC au SSRC indiqu dans chaque sous-rponse. Tout de suite, l'agrgateur feuille calcule le RTT entre lui et la source selon l'quation (1), puis il rpond les rcepteurs leurs demandes en diffusant un paquet RTCP (option APP) vers ses rcepteurs (appel rponse de l'agrgateur feuille). Le champ de donne de cette option APP est compos en plusieurs sous-rponse chacun correspondant une demande d'un rcepteur reue, et dans laquelle est indiqu le T dlsr d'une demande d'un rcepteur reue (qui est le temps coul entre la rception de la demande et l'mission de la rponse correspondante), le numro de squence de cette demande, et le SSRC du rcepteur correspondant. L'agrgateur feuille indique aussi dans ce champ de donne la valeur de RTT entre lui et la source. _s 0-'( _) L,_ ){, ':C-..,:q '1 0 /( (._ 5 .l c 1 lJ +-- -t - -t - -\ -+ - + -t - f + - + - -t + - +- -+ t - t f----- -1 - -+ 1 \ f \ 1 4 PP-=- (._. t., 1 L.iV!. J t - -t --- -\ - - -t - + --t - + - + - -t - + - t- - t - t -+-- t - - t - f- + - -+ j S s C f L SR (_ _ J -i --t- -t-i- / -r-:::: -t ::::-t-:::.+-=---\- + ::... -+ ::::.. t.= 1- .::=. -t =- +--=-+ -=-+ -= +- == + =-+-;:;...-J .:::: + --+ =: -t 1 1 s Y?/1 (L(!'- } -t-::.. -t ;::::: +-::: + ;;.... + :::: +-:::: + :=-t:::-t ;:_ + -::...+ ::-+ -::=- + =- -f t--::-+:::f =+ = t-::: -j 5e..fu._ehc_l' hwrtb &f wze u c..u\Je .yl.{e.AJ f - j_ hMt f - -t - t - -1 - -t - t - + - t -i - t- -\ - -t- - t - -t - -t- - -+ - f t ., fZ.R_LitJP/1.. f s c -. 1 - - -t - t--t -i --\- - -\ - * - \- - i" - + i - t - ....1.. ;- --r-i -'i-i--+--+ --. Fig. 2.7 Format de la rponse de l'agrgateur feuille aux demandes du RTT des rcepteurs 25 Lorsque le rcepteur reoit la rponse de son agrgateur feuille, il va chercher sa rponse dans le champ de donne, en comparant son SSRC au SSRC indiqu dans chaque sous rponse, puis il calcule son RTT avec la source selon l'quation suivante: RTTRcepteur =Trception de la rponse de l'agrgateur- Tmission de la demande du rcepteur -Tdlsr- R TT Agrgateur Avec cette mthode, tous les rcepteurs peuvent calculer avec prcision leurs R TT avec la source. Grce au fait que seuls les agrgateurs finaux participent au calcul du RTT, cet algorithme ne prsente pas un problme de scalabilit ni un gaspillage de la bande passante dans le rseau. 2.5.2- Dtection et rsolution des collisions des SSRC et CNAME : Comme c'est indiqu dans la section 2.1, RTP affecte chaque lment de la session (source ou rcepteur) parmi eux les deux identificateurs (SSRC et CNAME). Ces deux identificateurs doivent tre uniques dans la session, d'o la ncessit d'un algorithme qui dtecte la collision correspondant au cas o deux lments diffrents de la session gnrent un mme SSRC ou un mme CNAME. Chaque option SR ou RR est suivie d'une option SDES qui indique les deux identificateurs SSRC et CNAME. Dans la version du code utilise, les rcepteurs envoient des rapports de rception leurs agrgateurs feuilles, et ces derniers renvoient un rapport agrg aux agrgateurs de niveau suprieur et ainsi de suite. Chaque rapport de rception consiste en un paquet R TCP form de trois options, une option SR, suivie d'une option SDES et une option APP. Le rapport de la source consiste aussi en un paquet RTCP form de trois options, une option SR, suivie d'une option SDES et une option APP. Contrairement la spcification RTCP, ces messages de contrle priodiques ne sont pas changs entre les diffrents lments de la session, et par suite une dtection de collision entre les identificateurs n'est pas possible. Ci-dessous, on prsente une solution simple la dtection et correction des collisions. Cette solution peut tre intgre facilement avec les algorithmes dj implments. La source mmorise pour chaque lment de la session (y compris la source elle mme) son adresse IP avec ses deux identificateurs (SSRC et CNAME), et chaque fois qu'elle reoit un paquet SDES d'un lment, elle compare si un mme identificateur est utilis par un autre lment avec une adresse IP diffrente. Chaque rcepteur et chaque agrgateur envoie un paquet RTCP la source, form d'une option SDES. Pour viter la congestion du rseau avec ces paquets dans le cas o plusieurs rcepteurs s'abonnent ensemble la session, chaque rcepteur attend un dlai alatoire avant l'mission de ses identificateurs la source. Ce dlai alatoire est choisi en fonction du nombre des rcepteurs dans la session. Dans le cas d'une collision, la source inclut dans son rapport une liste des lments qui ont une collision, et chaque rcepteur ou agrgateur concern, chaque fois qu'il reoit le rapport de la source, rgnre son identificateur (ou les deux dans le cas o il y a une collision avec les deux identificateurs choisis). 2.5.3- Synchronisation des abonnements aux couches Goin and leave): Le rcepteur, pour calculer sa bande passante disponible entre lui et la source, doit calculer le taux de perte moyen sur toutes les couches. 26 Par exprimentations, ils ont trouv [11] que si deux rcepteurs essayent de joindre en mme temps deux couches diffrentes, le rcepteur qui essaye de joindre la couche la plus basse, a de grande chances de constater des pertes des paquets. Ces pertes ne sont pas dus l'augmentation du dbit qu'il reoit, mais apparaissent la suite de l'autre rcepteur qui essaye de joindre la couche la plus leve. Ainsi, des algorithmes pour synchroniser l'abonnement aux diffrentes couches sont ncessaires. L'approche prsente dans [11] adresse ce problme de synchronisation. Dans cette approche, la source transmet les donnes en plusieurs couches, et elle diffuse dans la couche de base des messages de contrle priodique autour les caractristiques des diffrentes couches. Chaque rcepteur, aprs la rception du message de contrle de la source, commence surveiller la rception des paquets sur la couche de base sur une certaine priode To. Puis, le rcepteur essaye de joindre la premire couche supplmentaire (s'il n'tait pas dj abonn), et il surveille de nouveau la rception des paquets sur cette couche supplmentaire sur une certaine priode TI, et ainsi de suite jusqu' la surveillance des toutes les couches. Aprs la fm des priodes de surveillance, le rcepteur calcule sa bande passante disponible entre lui et la source, puis il quitte les couches qui ne lui conviennent pas. Tous les rcepteurs s'abonnent la couche de base, et si la bande passante disponible du rcepteur le permet, ce dernier s'abonne des couches supplmentaires comme suit : Soit Co le dbit de la couche de base, Ci celui de la couche supplmentaire d'ordre i, et soit R la bande passante disponible du rcepteur : le rcepteur choisit K couches supplmentaires joindre condition que Co+ ... + Ck < R < Co+ ... + Ck + Ck+I. Pour rduire l'effet de dsynchronisation dans la rception des messages de contrle de la source par les rcepteurs, une priode de synchronisation Tsync est ajout la priode To. Tsync = ( RTT max- RTTi )/2 o RTT max est le RTT maximal sur tous les rcepteurs dans la session, et R TTi est le R TT du rcepteur i. Pour cela, les rcepteurs incluent leurs RIT dans leurs rapports vers la source, et cette dernire inclut dans son message de contrle la valeur du R TT max. Cet algorithme est simple et facile intgrer avec les codes dj implments. 2.6- Rsultats attendus : Dans cette section, on prsente les rsultats attendus du programme aprs la fin de l'implmentation. La source diffuse priodiquement des paquets R TP des donnes, et priodiquement elle envoie des messages de contrle SR, pour dcrire la transmission des donnes. Chaque rcepteur surveille la rception des paquets de donnes, calcule son taux de perte, ainsi que son RTT avec la source selon la mthode dcrite dans la section prcdente, et il envoie priodiquement un rapport RR son agrgateur feuille. Le rapport RR contient le taux de perte estim par le rcepteur, ainsi que la bande passante disponible entre lui et la source. Chaque fois que l'agrgateur reoit un RR, il le fusionne avec les autres RR reus selon l'algorithme dcrit dans la section 2.3 et il envoie un rapport agrg l'agrgateur de niveau suprieur, et ainsi de suite jusqu'au l'arrive l'agrgateur fmal. Apres la rception du RR fmal agrg de l'agrgateur final, la source adapte les caractristiques des couches comme c'est indiqu dans la section 2.4. Pour viter la congestion dans les routeurs et les files d'attentes avec les messages de contrle priodiques (les rapports de rception et les demandes du RIT des rcepteurs et des agrgateurs), un dlai alatoire est ajout ces messages priodiques RTP spcifie une allocation 5% de la bande passante totale de la session aux paquets 27 RTCP. Ainsi, les priodes des messages cits ci-dessus sont fonction du nombre des participants la session. Le choix du nombre des couches des donnes est trs important, et il dpend de plusieurs paramtres. D'une part, un grand nombre des couches est ncessaire pour satisfaire les besoins des rcepteurs htrognes. D'autre part, une petite priode de contrle (par suite un petit nombre de couches) permet la source de rpondre rapidement aux fluctuations du rseau l'aide des rapports de rceptions des rcepteurs. Pendant chaque priode de contrle, chaque rcepteur surveille toutes les couches pour calculer son taux de perte (To pour la couche de base, Tt pour la premire couche supplmentaire, etc.), et par suite la priode totale de surveillance est proportionnelle au nombre de ces couches. La priode de contrle doit tre suffisante pour que les rcepteurs puissent surveiller toutes les couches, ainsi un grand nombre des couches demande des rcepteurs une large priode de surveillance et par suite une large priode de contrle. Ainsi, le choix du nombre maximal des couches dpend de l'application considre. Avec l' approche, le nombre maximal des couches est cinq. 2.7- Conclusion : Dans ce chapitre le protocole R TP, plusieurs algorithmes pour organiser des agrgateurs dans le rseau, ainsi que notre approche prsente dans [12, 13] ont t prsent. L'intrt l'approche est qu'elle adresse les principaux problmes de la transmission multipoint (la scalabilit des rapports de rception et l'htrognit des rcepteurs), et prsente un algorithme pour calculer avec prcision les R TT entre les rcepteurs et la source sans avoir un problme de scalabilit. 28 CONCLUSION La transmission vido multipoint sur Internet reste un challenge, tant donn que le rseau Internet ne prsente aucune garantie au niveau de la bande passante disponible et du dlai (latence, gigue). L'htrognit des rcepteurs reste le problme le plus difficile rsoudre. A cause de cette htrognit, l'tat de rception des donnes n'est pas le mme pour tous les rcepteurs. Pour cette raison, les rcepteurs doivent envoyer priodiquement la source des rapports de rception concernant leurs tats de rception, selon lesquels la source adapte son dbit. Dans son rapport de rception, le rcepteur inclut sa bande passante disponible ainsi que son taux de perte. Pour avoir un partage quitable de la bande passante du rseau entre les applications vido et le trafic Internet, qui est en majorit un trafic TCP, chaque rcepteur peut calculer ses bandes disponibles avec un modle TCP. Les modles TCP allouent aux rcepteurs la mme bande passante alloue avec le TCP sous les mmes conditions du rseau, avec le mme taux de perte et le mme temps aller retour (R TT) entre ce rcepteur et la source. Le calcul du RTT entre les rcepteurs et la source, prsente un problme de scalabilit et gaspillage de la bande passante du rseau, car il demande l'change des paquets de contrle entre les rcepteurs et la source. Par suite, ces rapports de rception prsentent un problme de scalabilit et un gaspillage de la bande passante du rseau. L'approche propose une transmission des donnes en multicouches pour rsoudre les problmes de l'htrognit des rcepteurs. Cette approche utilise des agrgateurs pour rsoudre le problme de scalabilit des rapports de rception des rcepteurs, et propose un algorithme scalable pour le calcul du R TT entre les rcepteurs et la source, et prsente une conomie de la bande passante utilise dans le rseau. Les problmes de la transmission multipoint sur Internet, le problme de synchronisation de l'abonnement des rcepteurs aux diffrentes couches de donnes, la dtection et la correction des collisions entre les identificateurs allous par le protocole RTP chaque lment de la session (section 2.6) ont t rsolu. L'implmentation d'un algorithme de calcul de RTT entre les rcepteurs et la source est propose dans l'approche qui sert calculer les bandes passantes TCP-Freindly des rcepteurs [18]. BIBLIOGRAPHIE [1] A. Basu and S. J. Golestani,''Estimation ofReceiver Round Trip Times in Multicast Communications,'' 1999, [2] J.C. Bolot, T. Turletti and I. Wakeman, "Scalable Feed-back Control for Multicast Video Distribution in the Internet,'' inproc. ofSIGCOMM, August 1994, pp.58-67. [3] I. Rhee, N. Balaguru and G.N. Rouskas "MTCP :Scalable TCP-like congestion control for reliable multicast," in Proceeding of the conference on computer communications (IEEE Infocom), New York, USA, Mars 1999. [4] S. Paul, K. Sabnani, J.C.Lin and S.Bhattacharyya, "Reliable Multicast Transport Control (RMTP),'' IEEE Journal on selected A reas in Communications, April 1997. [5] L. Vicisano, L. Rizzo and J. Crowcroft, "TCP-like congestion control for layered multicast data transfer," in Proceeding of the conference on computer communications (IEEE Infocom), San Francisco, USA, Mar. 1998. [6] A. Legout and E.W. Biersack, "Fast convergence for cumulative layered multicast transmission scheme," Tech. Rep., Eurecom, Sophia-Antipolis, France, Oct. 1999, under submission. [7] T. Jiang, E. Zegura and M. Ammar, "Inter-receiver fair multicast communication over the internet,'' in Proc. International Workshop on Network and Operating System Support for Digital Audio and Video (NOSSDAV), Basking Ridge, New Jersey, June 1999. [8] S.Y. Cheung, M.H. Ammar and X. Li, "On the Use of Destination Set Grouping to Improve Fairness in Multicast Video Distribution,'' inproc. of IEEE Infocom, 1996. [9] E. Amir, S. McCanne and H. Zhang, "An Application-level Video Gateway," in Proc. of ACM Multimedia, November 1995. [10] B. J. Vikers, C. Albuquerque and T. Suda, "Source Adaptive Multi-layerd Multicast Algorithm for Real-Time Video Distribution,'' Technical Report ICS-TR 99-45, University of California, Irvine, June 1999.", [11] D. Sisalem and A. Wolisz, "MLDA: A TCP-Friendly Congestion Control Frame for Heterogeneous Multicast Environments,'' in Eighth International Workshop on Quality of Service (IWQoS 2000), Pittsburgh, PA, June 2000. [12] K. Salamatian and T. Turletti, "Classification ofreceivers in large multicast groups using distributed clustering," in Proceedings of Packet Video, May 2001. 54 [13] X. Hnocq, C. Guillemot, K. Salamatian and T. Turletti, "Joint source and channel rate control for multilayered multicast video transmission based on a distributed clustering algorithm". [14] "RTP: A Transport Protocol for Real-Time Applications," Internet Engineering Task Force, INTERNET-DRAFT, draft-ieft-avt-rtp-new-06, January 14, 2000. [15] K.L. Calvert, J. Griffioen, A. Sehgal and S. Wen," Concast: Design and implementation of a new network service," in proceeding of International Conference on Network Protocols, Toronto, Ontario, 1999. [16] E. Amir, S. McCanne and H. Zang, "An application level geteway," in proc. Of ACM Multimedia, San Francisco, California, November 1995. [17] R. Droms, "Dynamique host configuration protocol," RFC-1541, Octobre 1993. [18] "TCP-Friend1y Rate Control (TFRC): Protocol Specification," Internet Engineering Task Force, INTERNET-DRAFT, draft-ieft-tsvwg-tfrc-00, 17 November 2001. 30