Qu’est-ce que TBXcast ?

TBXcast signifie Tree-Based eXplicit multicast.
C’est un protocole de routage multicast arborescent, c’est-à-dire que l’on code dans l'entête des paquets de données l'arbre qui représente l’ensemble des chemins utilisés pour acheminer les informations depuis la source vers plusieurs destinataires.

Pourquoi un nouveau protocole ?

Le protocole TBXcast permet l’envoi massif de données d'une source vers plusieurs destinataires, comme par exemple lors d’une vidéo conférence, d’une audio-conférence ou d’un jeu en ligne multijoueur.

Certains protocoles multicast existent déjà, cependant TBXcast minimise le surcoût dû à la gestion multicast. Par exemple, les routeurs ne possèdent pas de tables multicast et il n'y a pas de paquets de contrôle TBXcast. TBXcast offre en plus la possibilité de gérer la qualité de service (QoS). En effet, TBXcast permet d’optimiser chaque chemin multicast en fonction de besoins particuliers: rapidité, fluidité ou réduction de la perte de données, par exemple.

Sa forme arborescente offre une transmission plus rapide des données par rapport à d’autres protocoles lorsque les utilisateurs sont géographiquement éloignés et regroupés en un grand nombre de petits groupes.

Fondé sur de solides bases

Le protocole TBXcast est développé pour IPv6, ce qui en fait un protocole d’avenir.
Son code source est basé sur celui d’un protocole existant : Xcast. La solide base que forme Xcast a permis de développer TBXcast dans de bonnes conditions, et ainsi d’exprimer ses fonctionnalités spécifiques.

Nous avons choisi d'implémenter TBXcast au sein du système d’exploitation NetBSD. En effet, ce système d’exploitation se montre particulièrement adapté au développement de contrôleurs de réseau ou "drivers".

Pour comprendre le fonctionnement du protocole TBXcast ainsi que ses spécificités et avantages sur d’autres protocoles, nous allons détailler le principe du routage multicast en général.

Multicast

Le routage permet l'acheminement de données à travers un réseau informatique. Ces données sont encapsulées dans des paquets. Lorsqu'il n'y a qu'un seul destinataire, le routage est dit unicast. S'il y en a plusieurs, il est dit multicast. Ces destinataires sont alors les membres d'un groupe multicast.

L'avantage du multicast par rapport à l'unicast devient évident quand on veut diffuser de la vidéo à de nombreux destinataires, par exemple. En multi-unicast, on envoie un même paquet autant de fois qu'on a de destinataires ce qui conduit à une perte de temps, à un gaspillage des ressources du serveur et surtout de bande passante du réseau.

En multicast, un paquet n'est émis au plus qu'une seule fois sur chaque lien du réseau et sera acheminé vers tous les destinataires du groupe de diffusion. Les routeurs assurent la duplication des paquets multicast lorsque cela est nécessaire. Cependant, le routage multicast est surtout efficace pour un nombre réduit de grands groupes. Un nombre trop important de groupes multicast entrainerait une surcharge des tables de routage multicast, devenant alors trop volumineuses pour les routeurs. En effet, les tables multicast doivent contenir autant d'entrées que de groupes multicast passant par ce routeur.

Multicast explicite

Les protocoles de routage multicast explicites pallient au problème évoqué ci-dessus en intégrant la liste explicite des destinations dans l'entête de chaque paquet multicast au lieu de l'adresse du groupe.

Il n'y a alors plus besoin de sauvegarder l'état des groupes dans les tables de routage multicast. Ces protocoles peuvent donc supporter un très grand nombre de petits groupes multicast (plusieurs milliers voire millions), car ils s'appuient uniquement sur les tables de routage unicast.
C’est comme cela que fonctionne le protocole Xcast sur lequel TBXcast se base.

Spécificités et fonctionnement

Il existe néanmoins certains inconvénients avec le protocole Xcast. Lors de la réception d'un paquet Xcast par un routeur, ce dernier doit analyser l'entête pour déterminer le prochain routeur puis reconstituer un nouvel entête Xcast avant de retransmettre le paquet. C'est un travail très coûteux.

Dans l'optique de diminuer ce coût, le projet TBXcast développe un protocole de routage dit multicast arborescent.

La différence majeure se situe dans l'entête du paquet: ce ne sont plus les adresses des destinations qui sont encodées mais les adresses des noeuds significatifs de l'arbre de routage qui permettra d'atteindre ces destinations. Cet arbre est calculé préalablement par la source. Les routeurs n'ont plus qu'à retransmettre le paquet à leurs fils dans l'arbre.

Dans le cas d'arbres trop volumineux pour être contenus dans l'entête d'un paquet, la source procède à une segmentation pour diviser l'arbre en plusieurs sous-arbres. La source se charge également de recalculer l'arbre dans le cas de modification de la topologie du réseau, ainsi que dans le cas de modification d'un groupe.

arbre

Sur la figure, nous voyons comment la source S transmet via le routeur R0 le paquet aux destinataires D1, D2, D3, D4 et D5. Le routeur R1 ne va recevoir que le sous-arbre vert, et le routeur R5 que le sous-arbre orange. Le destinataire D2, quant à lui, va directement recevoir la donnée de la source S.
Les noeuds de l'arbre de routage correspondant à cette topologie seront uniquement les routeurs R0, R3 et R6, car seulement ceux-ci sont des routeurs de branchement.

Contexte du projet

Le projet TBXcast s’inscrit dans le cadre des projets de 4ème année de l’INSA de Rennes, école d’ingénieur en informatique. S’étalant sur la durée d’une année, ce projet mobilise sept étudiants ainsi que deux encadreurs.

Une salle d’expérimentation visant à tester le protocole a été mise en place et continue encore d’évoluer. Elle permet de simuler différentes configurations de réseaux, et d’effectuer ainsi des tests dans de bonnes conditions, ce qui en fait un outil indispensable à la bonne réalisation du projet TBXcast.

Contacter les membres de l'équipe

  • Cyril BOULEAU -
  • Hamze FARROUKH -
  • Loïc LE HENAFF -
  • Mickaël LECUYER -
  • Jozef LEGENY -
  • Benoît LUCET -
  • Emmanuel THIERRY -
Encadré par
  • Miklós MOLNÁR
  • Bernard COUSIN

Liens