9. Protocoles de transport multicast

Jusqu'à présent nous avons parlé des transmissions multicast via UDP. Cela est une pratique courante, car il est impossible de faire de même avec TCP. Cependant, une recherche importante a lieu depuis un certain nombre d'années et dont le but est de développer de nouveaux protocoles de transport multicast.

Plusieurs de ces protocoles ont été implémentés et testés. Une bonne leçon à tirer est qu'il ne semble pas y avoir de protocoles de transport multicast génériques et suffisament bons pour tous les types d'applications multicast.

Si les protocoles de transports sont complexes et difficiles à optimiser, imaginez une façon de gérer les délais, la perte de données, l'ordonnancement, les retransmissions, le contrôle de flux et des congestions, le management des groupes, etc, lorsque le destinataire n'est pas unique, mais peut être constitué de centaines ou de milliers d'hôtes dispersés. Le changement d'échelle est donc un problème. De nouvelles techniques sont à implémenter, tel que ne pas délivrer des accusés de réception à chaque paquet reçu mais, à la place, envoyer des accusés de non-réception (negative acknowledges, ou NACKs) pour les données qui n'ont pas été reçues. Le RFC 1458 donne des propositions relatives aux conditions nécessaires à l'implémentation de tels protocoles multicasts.

Donner la description de ces protocoles multicast sort de la portée de cette section. À la place, vous trouverez ci-dessous les noms de certains d'entre eux et quelques sources d'informations complémentaires : RTP, le protocole de transport temps-réel (ou Real-Time Transport Protocole) concerne les conférences multimédia multi-partite, SRM (Scalable Reliable Multicast) est utilisé par wb (l'outil servant de tableau blanc partagé, voyez la section applications multicast), URGC (Uniform Reliable Group Communication Protocol) permet des transactions fiables et ordonnées -ce protocole est basé sur un contrôle centralisé-, Muse a été développé comme un protocole d'application spécifique au transfert de nouvelles (articles) au travers du MBone, le MFTP (Protocole Multicast de Transport de Fichiers, ou Multicast File Transport Protocol) se décrit de lui-même ; les personnes « joignent » un transfert de fichier (précédemment annoncé) de la même façon qu'ils joignent une conférence, LBRM (Log-Based Receiver-reliable Multicast) est un protocole curieux qui permet de garder une trace de tous les paquets envoyés par un serveur « loggant » ces derniers -ce serveur indique à l'émetteur s'il doit retransmettre les données ou s'il peut les supprimer proprement dans le cas où tous les destinataires ont bien reçu les données. Un protocole avec un drôle de nom -spécialement pour un protocole multicast- est STORM (STructure-Oriented Resilient Multicast). De nombreux protocoles multicast peuvent être trouvés en cherchant sur Internet, de même que d'intéressants papiers proposant de nouveaux champs d'applications au Multicast (par exemple, la distribution de pages web en multicast).

Une bonne page fournissant des comparaisons entre les différents protocoles multicastes fiables est http://www.tascnets.com/mist/doc/mcpCompare.html.

Un très bon site (à jour !), avec des liens intéressants (Internet drafts, RFCs, papiers, liens vers d'autres sites) est : http://research.ivv.nasa.gov/RMP/links.html.

http://hill.lut.ac.uk/DS-Archive/MTP.html est aussi une bonne source d'informations sur ce sujet.

L'article de Katia Obraczka « Multicast Transport Protocols: A Survey and Taxonomy » donne de courtes descriptions pour chaque protocole et essaye de les classifer selon diverses fonctionnalités. Vous pouvez le lire dans le magazine IEEE Communication, Janvier 1998, vol 36, No 1.