Multicast : pour une diffusion multipoint
Pour la retransmission radiotélévisée, le nombre d’utilisateurs connectés et désireux de recevoir le programme ne joue aucun rôle. Les choses se passent de manière complètement différente lors de la diffusion d’informations au sein d’un réseau IP. Par exemple, si plusieurs utilisateurs différents souhaitent se connecter à un flux de streaming, la communication unicast classique via IP supposerait que le poste émetteur diffuse séparément les paquets correspondants à chaque adresse. C’est parce que cette configuration utilise très rapidement toute la bande passante disponible que la technique du routage multicast (ou multicast IP) a été développée et mise en place assez tôt. Elle permet à un émetteur de diffuser simultanément en une fois des flux de données IP vers un grand nombre de récepteurs.
Qu’est-ce que le multicast IP ?
Le protocole IP (pour Internet Protocol) est le protocole standard utilisé pour les communications au sein d’un réseau d’ordinateurs. Que ce soit sur Internet ou sur un réseau local, la diffusion d’informations électroniques à l’aide d’adresses IP ne peut pas être exclue dans les réseaux modernes. La pile de protocole TCP/IP utilisée, qui est aujourd'hui la norme, met à disposition toute une série de protocoles et de méthodes permettant de répondre aux exigences les plus diverses.
Les modes de communication disponibles jouent à ce titre un rôle fondamental. C’est en particulier le cas de ce qu’on appelle le multicast, qui revêt une importance grandissante. Ce concept, également connu sous le nom de multicast IP, permet de diffuser des informations depuis un point donné vers plusieurs récepteurs. C’est pour cela qu’on qualifie aussi les liaisons multicast de liaisons point à multipoint.
En offrant la possibilité d’envoyer un seul flux de données vers plusieurs destinataires, le multicast se distingue radicalement de la norme unicast, selon laquelle les paquets IP sont transmis via une liaison directe entre les systèmes communicants. Le multicast IP diffère également du broadcast en ce sens que les flux de données ne sont pas émis vers tous les utilisateurs du réseau, mais uniquement vers ceux qui se sont annoncés auprès de l’émetteur et font ainsi partie du groupe multicast correspondant. L’émetteur peut dès lors diffuser le flux de données au groupe en utilisant une adresse multicast assignée. Dans la version IPv4 du protocole Internet, le champ d’adresse alloué était compris entre 224.0.0.0 et 239.255.255.255. Dans la version IPv6, les adresses multicast commencent par FF00::/8.
Comment l’adressage multicast fonctionne-t-il ?
L’adressage de groupe que nous avons évoqué est une des caractéristiques essentielles du multicast IP. C’est un élément fondamental pour le fonctionnement de ce concept de communication. Il prévoit la possibilité d’un adressage statique, qui permet par exemple d’établir une liaison avec un serveur multicast pour recevoir le service correspondant. D’autre part, les adresses multicast peuvent aussi être utilisées de façon dynamique, puisque les groupes multicast ne sont pas supposés y être associés à titre permanent. Cela permet ainsi à des groupes privés d’être alimentés sans problème et d’être dissous tout aussi facilement. Indépendamment du caractère statique ou dynamique de l’adressage, dans les réseaux IP, le champ d’adresse déjà évoqué compris entre 224.0.0.0 et 239.255.255.255 (ou commençant respectivement par FF00::/8), également désigné comme adresse de classe D, est réservé à cet effet.
L’adhésion à un groupe multicast obéit aux règles de fonctionnement du rouleur réseau concerné et de l’Internet Group Management Protocol (IGMP). Pour cela, le protocole appartenant à la famille de protocoles Internet met à disposition différents types d’informations qui permettent aux hôtes d’informer le routeur local de la volonté d’adhérer au groupe. Le routeur peut alors transmettre en retour les flux de données multicast correspondants. La communication IGMP commence toujours via le routeur par l’intermédiaire duquel l’émetteur multicast est lié au réseau. C’est l’émetteur lui-même qui transfère en une seule fois les paquets d’un flux de données. Il indique comme adresse du récepteur l’adresse du groupe multicast. Il n’a pas connaissance du nombre de postes ainsi atteints.
Multicast IP : aperçu des techniques et protocoles de routage
Dans le cadre du multicast, le routage, c’est-à-dire le transport des paquets multicast à travers les différents routeurs et réseaux, obéit à des protocoles spécifiques. Ces protocoles fonctionnent sur la base de différents algorithmes dans le but de diffuser le plus efficacement et rapidement possible le flux de données vers tous les membres des groupes multicast correspondants. Il n’existe pas à cet effet de protocole standard, car les protocoles existants ont été conçus pour d'autres tâches. Certains fonctionnent ainsi au mieux lorsque les membres d’un même groupe se trouvent à proximité les uns des autres, tandis que d’autres sont plus à leur avantage quand les récepteurs sont aussi éloignés que possible les uns des autres. En outre, il existe différents algorithmes de routage en fonction desquels peut se mettre en œuvre une technique de reverse path forwarding (RPF) ou de truncated reverse path forwarding (TRPF).
Reverse Path Forwarding (RPF)
Le reverse path forwarding est une méthode qui garantit que les paquets multicast IP sont transférés sans qu’aucun hôte ne soit visité à plusieurs reprises. L'adresse source du flux de données joue dans ce cadre un rôle décisif dans son transfert, de même que l’interface de réseau utilisée. Aussitôt qu’un paquet multicast atteint l’interface d’un routeur, celui-ci ajuste les deux au moyen d’un tableau de routage. Cette procédure était auparavant gérée automatiquement par broadcast ou configurée manuellement. S’il existe pour cette adresse source une entrée confirmée par l’interface de réseau utilisée, la vérification RPF est réussie : le routeur diffuse alors le flux multicast vers toutes les autres interfaces disponibles. Dans le cas contraire, les paquets sont rejetés.
Le RPF vérifie également, en sens inverse, le chemin suivi par le paquet. Pour interconnecter les routeurs suivant le chemin le plus court possible, des processus de routage unicast sont aussi utilisés. Le schéma de routage est également désigné sous le nom d’arbre multicast, où l’émetteur (ou son routeur) se trouve à la place des racines et représente par conséquent le point de départ du routage.
Truncated Reverse Path Forwarding (TRPF)
Le Truncated Reverse Path Forwarding représente un élargissement du concept du RPF, où les paquets multicast sont uniquement transmis à des routeurs qui servent au minimum un membre du groupe multicast. La vérification normale et en sens inverse de l’adresse source et de l’interface d’accueil est d’abord effectuée. Ensuite, le TRPF réexamine dans l’ordre quelles interfaces sont les plus proches et décide quelles places seront servies. Le critère décisif est rempli si une interface donnée héberge bien les hôtes qui sont enregistrés dans le groupe multicast auquel s’adresse le flux de données. Si c’est le cas, les paquets sont transférés.
Pour pouvoir utiliser le TRPF, un routeur multicast doit aussi comprendre, en plus de son tableau de routeur, une liste de tous les groupes multicast disponibles sur les différentes interfaces de réseau.
Quels protocoles de routage multicast existe-t-il ?
Pour le multicast IP, il n’existe aucun protocole de routage standard. En arrière-plan, on trouve le rayon de distribution et le nombre de postes de réception qui ont une influence mesurable sur la base de protocole. On fait donc la distinction entre les deux approches, en « mode dense » (les récepteurs sont « adjacents ») et en « mode dispersé » (les récepteurs sont largement « dispersés »). Toutefois, les protocoles se différencient aussi par d’autres aspects. C’est ce qu’illustre l’existence des protocoles DVMRP, MOSPF et PIM, présentés ci-dessous.
Distance Vector Multicast Routing Protocol (DVMRP)
Le Distance Vector Multicast Routing Protocol (DVMRP) a été créé en 1988 dans la RFC 1075 à titre de solution expérimentale pour la question du routage des paquets multicast en réseau IP. Le DVMRP a été développé par un groupe de travail de l’Université de Stanford ; c’est le Routing Information Protocol (RIP), un protocole de routage unicast, qui a servi de base à la création du vecteur de distances.
Le RIP a d’abord été défini dans le cadre de RFC 1058. Le protocole a depuis lors été révisé plusieurs fois. Les RIPng, ou RIP de nouvelle génération, ont donné naissance, entre autres, à une version qui élargit le protocole de routage de façon à le rendre compatible avec IPv6.
Pour calculer le trajet des paquets, l’équipe a mis en place une technique de Reverse Path Forwarding. C’est là-dessus que s’appuie un routeur multicast pour générer automatiquement son propre tableau de routage, où il mémorise pour tous les autres routeurs du réseau ce fameux vecteur de distances. Cette entrée contient des indications sur les coûts liés à la transmission des données, à leurs routeurs respectifs (p. ex. un retard de transfert éventuel ou le nombre de stations intermédiaires sur le trajet), ainsi que des informations sur l’identité du routeur voisin vers lequel le paquet doit être transmis afin d’atteindre son serveur cible. C’est l’IGMP qui est utilisé comme protocole d’information pour les échanges entre les différents routeurs.
Multicast Open Shortest Path First (MOSPF)
Le Multicast Open Shortest Path First (MOSPF) est une extension du protocole de routage OSPF qui permet d’effectuer le routage multicast sur un réseau OSPF. Dans ce cadre, chaque routeur administre une base de données complète portant sur l’entière topologie du réseau (disposition des appareils et des câbles). Grâce à de nouvelles annonces d’état de lien d’appartenance au groupe, cette base de données peut également contenir des entrées portant sur la localisation de tout adhérent à un groupe multicast IP. La détection des adhésions se fait par l’intermédiaire du routeur, qui recourt pour cela à des informations IGMP. En partant du routeur, derrière lequel se trouve l’émetteur multicast, il est possible de générer sans problème une structure arborescente qui indique le chemin le plus court pour chaque paquet.
Il n’est pas nécessaire d’ajouter un protocole de routage au MOSPF pour la génération de l’arbre multicast, car il retombe à cet effet sur le routage de l’OSPF.
Protocol Independent Multicast (PIM)
Le Protocol Independent Multicast (PIM) est une famille de protocoles de routage qui ne fournit aucun mécanisme de génération de tableau de routage. Pour en obtenir un, le PIM a recours aux informations données par les protocoles de routage unicast actifs sur le réseau. L’identité du protocole en jeu ne joue aucun rôle en la matière ; c’est pourquoi le PIM peut être utilisé indifféremment sur des réseaux à forte ou faible densité de clients. C’est là que les deux modes dense (PIM-DM) et dispersé (PIM-SM) évoqués plus haut sont mis à contribution.
Dans le premier cas, les flux de données multicast sont envoyés à tous les routeurs du réseau, jusqu’à ce que ces derniers quittent l’arbre multicast (en raison de l’absence de membres du groupe). Au contraire, en mode dispersé, un routeur dit « point de rendez-vous » sert de centrale de distribution pour la gestion des liaisons multicast. Il reçoit des notifications multicast et transmet les paquets à tous les routeurs demandeurs dont le sous-réseau compte au minimum un membre du groupe multicast.
Multicast ou broadcast : différences et points communs
Le broadcast n’est pas seulement une alternative au multicast IP : il peut aussi être partie intégrante d’un concept multicast. La comparaison entre multicast et broadcast met en évidence d’importants points communs entre ces deux processus. Aussi bien le broadcast que le multicast permettent de développer sur les réseaux IP des liaisons multipoints grâce auxquelles on est en mesure de toucher plusieurs récepteurs à la fois. La différence cruciale qui distingue les deux réside dans le fait qu’un broadcast a toujours pour cible tous les destinataires d’un réseau ou d’un segment de réseau donné, tandis qu’un multicast ne communique ses données qu'au groupe multicast, c’est-à-dire à certains récepteurs uniquement (avec la possibilité de dépasser les limites du réseau).
Dans la mesure où un broadcast s'adresse toujours à tous les destinataires d’un réseau, aucun champ d'adresse étendu n’est nécessaire, contrairement à ce qui se passe avec un multicast. Tout broadcast classique présente toujours l’adresse IP cible 255.255.255.255, qui a été réservée pour ce processus. Il est également possible de procéder à des broadcasts directs (ou broadcasts locaux) en mentionnant le masque de sous-réseau. Le broadcast est plus intéressant lorsque les adresses des récepteurs sont inconnues, par exemple pour le partage de données et d’imprimantes sur un réseau, ou en cas d'allocation d’adresse IP via DHCP. Toutefois, le processus exige bien plus de ressources qu’un multicast, ce qui entraîne un certain gaspillage de bande passante.
Sous IPv6, le broadcast n’existe plus en tant que format d’information. La fonction qui permet d’envoyer simultanément des informations ou des paquets de données à tous les appareils d’un réseau est reprise par des adresses multicast spéciales dans la dernière version d’IP.