Ebauche Rapport finale Sommaire : 1 - Introduction au C.D.N. 2 - Définition de la problématique 3 - Etat de l'art : Présentatio de 3 Topologies streaming p2p
1) INTRODUCTION au C.D.N. La croissance rapide du trafic Internet liée à la consultation plus massive de contenus vidéo par les Internautes a posé et continue de poser le problème de mise à disposition rapide des contenus vidéo avec optimisation de la bande passante dans les réseaux. Le CDN (Content Delevery Network) vient proposer une solution. Un Content Delivery Network (CDN) peut être définit comme un ensemble d ordinateurs reliés en réseau à travers internet et qui coopèrent afin de mettre à disposition des utilisateurs ou internautes du contenu ou des données (généralement du contenu multimédia volumineux). Ce réseau est constitué de : serveurs d'origine, où les contenus sont «injectés» dans le CDN pour y être répliqués nœuds répartis géographiquement en «bordure» d'internet, où les contenus sont répliqués d'un mécanisme de routage permettant à une requête utilisateur sur un contenu d'être servie par le nœud le «plus proche», dans le but d optimiser le mécanisme de transmission/livraison. Ainsi, quand la recherche de performance (rapidité de transmission) est privilégiée dans le traitement d une requête, les nœuds qui peuvent délivrer les données le plus rapidement possible à l utilisateur sont sélectionnés. La mesure peut être le nombre de rebonds ou le temps réseau nécessaire pour atteindre l utilisateur demandeur. Quand c est l optimisation du coût (bande passante) qui est recherchée, les emplacements offrant le coût le plus faible en émission seront choisis. Retenons que, ces deux types d optimisation ont souvent tendance à se recouper dans ce sens où, le nœud le plus proche de l utilisateur client est également celui qui offre le coût de transmission le plus faible. Comme vous venez de le voir l utilisation d un CDN pour faire du vidéo streaming vient résoudre le problème de mise à disposition de vidéo au grand public et dans un délai réduit. Cependant le CDN ne répond pas à l'ensemble de notre problématique, à savoir l'aspect des pannes. Nous allons y répondre dans la partie suivante.
2) Définition de la problématique : Dans un premier temps, nous allons introduire brièvement la notion de p2p (pair à pair). Concrètement, il faut partir du principe que chacun de nos nœuds est à la fois récepteur/diffuseur (client et serveur en d'autre terme). Dans notre contexte de vidéo streaming, les flux audios et vidéos ont généralement assez importants, ce qui peut supposer un délai assez important. Une latence peut donc être acceptable pour l'utilisateur. Cependant, le flux vidéo n'est pas entièrement lu, l'utilisateur va parfois consulter seulement le début d'une vidéo, il est donc inutile de télécharger l'ensemble. De plus, les images qui se suivent sont très similaires donc on peut accepter la perte d'informations. Mais une panne peut survenir dans notre réseau, un nœud relais ou une liaison défaillante est un phénomène courant. Malgré cela, nous devons être en mesure de continuer à maintenir la diffusion de vidéo streaming. C'est ce à quoi nous allons tenter de répondre à travers divers types d'architectures p2p. 3) Etat de l'art : Présentation de trois topologies p2p Nous allons nous intéresser à 3 modèles qui participe à la diffusion de vidéo streaming et qui rentre dans le cadre notre étude. La première est la topologie Mesh-Based (réseau maillé), la deuxième le Tree-Based (il correspond à la structure d'un arbre classique en programmation), et la 3éme est l'arbre redondant de Steïner (correspondant en faites à 2 arbres se chevauchant).
Arbre redondant de Steïner : Topologie mesh : Il faut voir cette topologie comme une sorte de filet, les hôtes sont connectés pair à pair sans serveur centrale. Elle repose sur l'échange périodique d'information sur l'état des nœuds, ce qui conduit à une diffusion de l'information à tous les nœuds. La topologie est construite aléatoirement: chaque nouveau nœud se connecte à une liste de voisins, obtenus au hasard, avec qui, il commence directement à échanger des blocs de la vidéo. Ces paquets circulent dans le réseau d'une manière aléatoire qui dépend de l'algorithme de sélection de nœuds et de blocs. Topologie Arbre : Nous avons un nœud racine qui est la source du streaming, et qui va la distribuer à tous ses nœuds fils. C'est donc le nœud source qui est à l'origine de la création de l'arbre. On a une diffusion en «cascade» (donc à sens unique) du père vers le fils toujours. On n'a donc pas véritablement d'évolution dans ce type d'architecture, en effet, chaque nœud s'attache à un seul parent et possède un nombre de fils fixe. Donc si une panne se produit dans le haut de l'architecture c'est tout le reste de cascade qui s'écroule par la même occasion.
Topologie Arbre Redondant de Steïner : Nous observons un une topologie correspondant à un graphe orienté. C'est ce qui modélise le mieux un réseau de ce point de vue-là. En effet, il parait logique que le chemin aller/retour n'ait pas le même coût, le câble réseau n'étant pas forcément le même dans l'autre sens (fibre optique, RJ45) par exemple, le trafic pouvant varier à instant donné aussi... Par conséquent, nous utiliserons la notion de graphe orienté pour satisfaire nos besoins. Au départ, on a nœud racine et une liste de destination. Grâce à un algorithme, on va construire deux arbres correspondant à un arbre de Steïner redondant. Ceci correspond concrètement à la création des liaisons entre chaque nœud. Le nœud source peut ensuite émettre à ses voisins ce qui va conduire à une diffusion de l'information à l'ensemble des nœuds. Voici un tableau comparatif de nos différentes topologies : Aspect Arbre classique Mesh Arbre redondant de Steïner Source Un seul nœud offre la vidéo Maintenance Utilisation optimale de la bande passante Mobilité Dépannage Difficile à maintenir, après le départ d'un parent, tous les descendants deviennent «orphelins» Pas de contribution de débit montant des nœuds feuilles. En cas de départ d'un nœud, l'architecture ne résistera pas Ecroulement sous forme de cascade en cas de panne d'un nœud ou d'une liaison L'ensemble des nœuds contribuent Messages «hello» suffisent à chaque nœud pour maintenir ses voisins Grosse consommation de bande passante malgré une utilisation optimale Bonne adaptation, création d'une nouvelle liste de voisin Pas très solide, un nœud n'a pas forcément deux chemins possibles L'ensemble des nœuds contribuent Même chose que pour les Mesh Faible consommation de bande-passante lié à une bonne coopération du débit montant / descendant Il est nécessaire de recalculer deux arbres pour intégrer le nœud Très robuste puisque un autre chemin est toujours possible pour accéder au nœud
Nous allons exploiter ce tableau afin de sélectionner la topologie qui répondra le plus à notre problématique. A savoir, notre topologie doit pouvoir s'adapter en cas de panne d'un nœud ou d'une liaison, et de plus elle doit être peu coûteuse en termes de consommation de bande-passante. Dans un premier temps, observons ce que peut nous apporter l'arbre classique. Du point de vue des pannes, on sait que si un nœud ou une liaison tombe en panne, l'ensemble des fils vont se retrouver orphelin et ne recevront donc plus. Chaque nœud participe l'un après l'autre à la diffusion donc l'utilisation de la bande-passante n'est pas très efficace. Nous ne sélectionnerons donc pas cette architecture pour répondre à notre problématique. Observons ce qu'il en est pour la structure Mesh, sur l'aspect de la utilisation de bande-passante certes elle est efficace cependant c'est une topologie qui est très coûteuse en terme de bandepassante. De plus, sur l'aspect des pannes, ce n'est pas une structure très solide on n'a pas l'assurance qu'il y ait toujours un autre chemin possible pour continuer la diffusion. De plus, c'est une architecture plutôt complexe à mettre en œuvre. Nous ne garderons donc pas non plus cette architecture. Enfin, la topologie Arbre de Steïner Redondants, elle présente l'avantage de fournir une grande robustesse. En effet, si une liaison ou un nœud tombe en panne, un autre chemin est toujours disponible pour continuer à diffuser. C'est ce qui fait la force de cette topologie, elle est capable de s'adapter malgré une panne. De plus, elle utilise de façon très optimale la bande-passante, chaque nœud participe avec son débit descendant et montant. La consommation en bande-passante est quant à elle relativement faible. Et c'est une architecture qui ne présente pas de grande complexité à mettre en place, des algorithmes permettent de calculer les liaisons nécessaire pour générer nos deux arbres. Finalement, nous sélectionnerons la topologie de l'arbre de Steïner redondants puisque c'est elle qui répond le mieux à notre problématique en terme de panne et tout cela à faible coût et de façon optimale.