Comprendre P2PTV : ses architectures

Problématique de l’approche réseau du P2P IPTV :


- Comment mettre en forme une topologie de recouvrement entre différents pairs ?

- Comment délivrer du contenu videos efficacement ?


Cette approche peut être classée dans deux catégories :


- Les pairs forment un arbre de recouvrement et le contenu video est poussé du server d’origine vers les pairs. Cette architecture se nomme “tree push”

  1. -Les pairs forment une maille de recouvrement, chacun des pairs réclame aux autres leurs besoins de contenu video. Cette architecture se nomme “mesh pull”










Le P2P IPTV utilise la technique de diffusion du P2P pour transmettre des flux vidéos. Comme nous n’avons pas évoquer l’approche réseau en profondeur dans les pages précédentes, cette partie pourra également servir de représentation pour le P2P.


Le P2P TV reste du P2P mais dans un cas particulier, celui de partage de fichiers vidéos.

Introduction

P2P IPTV : IP streaming video et réseaux pair à pair

AccueilAccueil.htmlshapeimage_4_link_0
P2P ?P2P.htmlshapeimage_5_link_0
IPTV ?IPTV.htmlshapeimage_6_link_0
P2P IPTV P2PTVP2P_IPTV_ou_P2PTV.htmlshapeimage_7_link_0
Comprendre P2PTV : 
ses architecturesshapeimage_8_link_0shapeimage_8_link_1
Bilan : avant et maintenantBilan___avant_et_maintenant.htmlshapeimage_9_link_0
GlossaireGlossaire.htmlshapeimage_10_link_0
RéférencesReferences.htmlshapeimage_11_link_0
 


- Délai de commutation faible




La structure en arbre unique décrit ci-dessus possède de sérieuses faiblesses. Premièrement, elle est fortement sensible aux départs et failles des pairs. En différence du multicast IP, construit sur des routeurs IP stables, les utilisateurs (les pairs ou peers) sont bien plus dynamique et peuvent joindre ou quitter le réseau à n’importe quel moment. Au sein d’un même arbre, la perte de connexion  d’un nœud entraine l’arrêt du flux media  dans toutes ses branches inférieures. Du coup, les nœuds passent leur temps à détecter les failles et a réparer la structure de l’arbre, ce qui affaibli les performances du système de manière significative.

Dans un second temps, lorsque le réseau est stable, le débit des liens est limité par le lien offrant le debit le plus lent des liens en amont. En effet, tous les chunks que les noeuds reçoivent sont transmis par le meme chemin du noeud source.

Une troisième limite, une majorité des noeuds sont des “feuilles” qui n’upload aucune donnée. Les ressources en bande passante d’émission ne peuvent pas être utilises.

Cependant, il existe des méthodes pour limiter ces faiblesses. Comme, par exemple, des algorithmes permettant d’améliorer la performance et la stabilité des arbres en ré-agençant leurs structures.

Une video est divisée en plusieurs parties de medias. Ces différentes parties sont appelées chunk. A l’origine, elles sont accessibles via un serveur qui les diffuse en broadcast sur le réseau. Toutes les informations vidéo sont accessibles pour utilisateur depuis le channel server.


1 - Un hôte (host en anglais), interessé par le visionnage d’une vidéo, fait une requête auprès du channel server et « demande » la lecture de cette vidéo. Un autre serveur (appelé le tracker server) maintient, pendant ce temps, la liste des différents hôtes connectés et intéressés par cette même vidéo.


2 - Une fois qu’un hôte sélectionne la vidéo qui l’intéresse, il récupère la liste des hôtes actuellement en train de visionner la même vidéo.


3 - L’hôte établie un lien de partenariat, via des connexions TCP et UDP, avec un sous ensemble des hôtes de la liste.


4 – Chaque hôte joue le rôle de nœud, aussi appelé pair ou peer. Ils s’entretaident pour se délivrer les flux mutlimédias.  De plus, les hôtes établissent aussi une relation de partenariat avec le serveur d’origine. Chaque hôte, regardant une certaine vidéo, met en cache et partage les chunks avec les autres hôtes utilisant cette même vidéo. En particulier, chaque hôte reçoit un « plan de mémoire tampon »  depuis ces partenaires du moment. La réception d’n plan de mémoire tampon d’un partenaire signifie que les chunks sont disponible depuis ce peer. En utilisant un algorithme de gestion des chunks, chaque hôte sollicite les chunks qu’il nécessite dans un futur proche de ces partenaires. Ces hôtes cherchent en permanence de nouveaux partenaires pour pouvoir télécharger les chunks qu’ils ont besoins.

La figure 2 montre la composition logicielle d’une solution Mesh Pull. Le logiciel d’un noeud incorpore un moteur de streaming P2P ainsi qu’un lecteur multimédias. Le moteur de streaming a pour role de :


  1. -        Récupérer les chunks des noeuds partenaire et quand cela est possible, du serveur d’origine

-Stocker les chunks récupérés dans un cache

-Partager les chunks stockés dans son cache avec ses partenaires

-Envoyer une copie de chaque chunk au lecteur multimedia


Comme le montre la figure 2, le noeud local envoie un plan de mémoire tampon (buffer map) à chacun de ces partenaires. Un noeud partenaire peut alors “apprendre” quels sont les chunks disponible sur ce noeud. Il peut alors réclamer les chunks desires pour pouvoir les recevoir.

Figure 2 : Fonctionnement de l’approche Mesh Pull entre les noeuds

Figure 3 : Schéma de fonctionnement d’un noeud

-Principe d’architecture simple

-Robuste vis à vis des déconnexions d’hôtes au réseau

-De nombreux tutorial sur le P2P IPTV disponible sur Internet

-Mesh Pull reste l’architecture la plus populaire pour le moment avec de nombreux succès de déploiements






-Temps de commutation

-Temps de connexion d’un pair (start up delay)

Motivé par l’idée du Multicast IP, plusieurs réseaux P2P (ex :ZigZag) ont introduit une structure en arbre pour le streaming vidéo via la couche application du modèle OSI et non plus la couche réseau


De plus, en utilisant les relations « Parent / Enfant », les pairs ont pu adopter cette structure en arbre.

Comme le montre la topologie réseau, les blocks de données sont transférés depuis le noeud racine vers toutes les feuilles de l’arbre (c’est à dire les sous noeuds) en suivant l’architecture en branche.


Typiquement, la topologie tree push est employée pour transmettre les flux. De ce fait, les blocks de flux (chunk) sont dits « poussés », en continu, des parents vers leurs enfants. La simplicité et l’efficacité de ces protocoles permettent de garder un délai très faible entre chaque saut relai.   


Dans le cadre de cette architecture, l’algorithme utilisé ressemble fortement à un calcul de route façon spanning tree. De cette manière, on peut calculer le changement de noeud lors d’une perte de connexion.

Afin de garder les qualités et de supprimer les défauts des deux architectures, une solution émerge : la topologie hybride push / pull. Cette architecture pourra alors alier performance et robustesse. Plusieurs approches sont, en ce moment, en train d’être testées, voir même utilisées.


Selon les structures, certaines s’appuient davantage sur l’approche du mesh pull pour recréer un réseau multi-arbres qui ne sont pas nécessairement disjoints. Avec l’aide d’une maille, la construction, la réparation d’arbres multiples sont simplifiées et plus performant que les approches traditionnelles. Par ailleurs, les informations comme la charge ou bien la latence d’un nœud fournit par la maille peuvent participer au processus de réalisation d’arbres. Cette approche hérite de la performance de tree push et de la simplicité du mesh pull


D’autres systèmes adopte une solution hybride push/pull en utilisant une structure en arbre simplifiée. Au lieu de récupérer un bloc de données, un nœud récupère (pull) un nombre de blocs dans une même requête. Une fois la requête acceptée, tous les autres blocs sont poussés (push) automatiquement. Ce schéma améliore la performance que peu offrir une simple architecture mesh pull. Cependant, cette rapidité se paye en performance. Les peers doivent détecter en permanence les requêtes des voisins et vérifier qu’ils possèdent suffisament de capacité d’émission.


L’approche mesh n’est pas utilisée simplement comme aide, certains systèmes peuvent aussi changer de structure (en arbre ou en maille) selon les circonstances. Par exemple, des nœuds peuvent être identifiés comme stables en fonction de leurs âges et former un réseau backbone appelé treebone par lequel sont poussé les flux médias. Du coup, les nœuds instables sont organisés sous forme de mailles auxiliaires recouvrantes améliorant la résilience et l’efficacité du cœur de réseau.



Ces approches sont basés sur algorithme tiré du P2P qui permet de partager des fichiers en morceaux «Chunk» et de les réordonnancer à la destination. Cet algorithme a été détaillé par un professeur de l’université de Rome. Le fichier accessible à cette adresse fourni tous les détails à la compréhension de cet algorithme : www.gtti.it/GTTI08/papers/bracciale.pdf

L’approche Mesh Pull
L’approche Tree Push
L’approche Push / Pull

L’approche Mesh Pul est un réseau maillé non structuré. Les pairs demandent des fichiers medias aux autres. N’importe quel pair peut récupérer ou envoyer n’importe quel fichier media. Cette approche ressemble beaucoup à la topologie du protocole Napster.

Topologie réseau
Partage de fichier media
Fonctionnement logiciel d’un noeud
Topologie réseau & informations générales
Avantages
Limites
Avantages
Limites