Dans cet article, nous allons présenter le fonctionnement de base de la technologie IP Multicast. Il s’agit d’une technologie que tout le monde utilise sans le savoir. En effet, en France, les flux TV reçus par votre box ADSL sont des flux IP Multicast: ils sont transportés sur l’infrastructure depuis les serveurs de votre opérateur jusqu’à votre décodeur grâce à cette technologie ! C’est une raison motivante pour chercher à comprendre l’envers du décor.
Le multicast: comment ça marche ? Avant de répondre à cette question, cet article va présenter les concepts fondamentaux de cette technologie passionnante…
Le concept des communication « Un vers Plusieurs »
Généralement, deux machines échangent des informations entre elles par la technologie IP unicast. C’est le cas, par exemple, entre votre machine (le client web) et le serveur qui héberge cette page (le serveur web):
- votre machine envoie ses requêtes à une seule machine: le serveur web. Pour cela, elle confectionne des paquets IP dont l’adresse IP destination correspond à l’adresse IP de ce serveur. Ainsi, seul ce serveur reçoit le paquet.
- en retour, le serveur envoie la page de cet article à votre machine: en utilisant l’adresse IP de votre machine afin que seule votre machine reçoive cette information.
Pour chaque échange, le paquet IP est destiné à une seule machine du réseau, d’où le terme de unicast.
Il existe également la possibilité d’envoyer des paquets IP à tout le monde. C’est ce que l’on fait lorsque l’on ne sait pas à qui envoyer la requête. Par exemple, lorsque l’on veut obtenir une adresse IP dynamiquement sur le réseau et que l’on ne connait pas l’adresse IP du serveur qui peut nous en attribuer une. Dans ce cas, la diffusion « Un vers tous » est appelée broadcast.
D’ailleurs, pour éviter que tout l’Internet reçoive cette information, les équipements (les routeurs) filtrent ces paquets IP pour éviter de congestionner tout l’Internet !
Enfin, la technologie Multicast correspond à l’envoie des paquets IP non pas à une seule machine (ça, c’est l’unicast) ni à toutes les machines (ça, c’est le broadcast) mais à un groupe de machines.
Comme je l’indiquais en introduction de cet article, un exemple d’utilisation du multicast est la diffusion vidéo temps-réel. Imaginons une entreprise de 800 salariés répartis dans le monde où le directeur décide de faire ses voeux de la nouvelle année à travers un logiciel de diffusion vidéo. Pour cela, le logiciel va capter les images de la caméra et transmettre les paquets IP à destination d’un groupe spécifique. Si l’on utilisait la technologie IP unicast, alors il faudrait que le logiciel génère est transmette 800 fois les informations vers les 800 postes des salariés ! Ceci serait très consommateur en ressources sur le PC du directeur mais également sur l’infrastructure de transport puisqu’il faudrait transporter 800 flux vidéos !
On pourrait envisager alors de diffuser le flux vidéo vers tout le monde (Broadcast). Le problème est qu’il faudrait alors enlever le filtre implicite que l’on a généralement sur les routeurs pour éviter de gaspiller les ressources. Et, dans ce cas, cela ne serait pas optimal puisque même les machines des salariés en congés, ou de ceux qui ne souhaitent pas voir les voeux du directeur, recevraient le trafic… même les serveurs d’autres applications seraient dérangés par ce trafic envoyé à tout le monde mais qui doit être analysé pour voir que…. les informations contenues (le flux vidéo) peuvent être mises à la poubelle puisqu’il n’y a pas d’applications capables de traiter et d’interpréter ce trafic !

Dans le cas de l’utilisation du broadcast, tout le monde reçoit le flux qui doit être traité par les CPUs de tous les systèmes !
On voit donc l’intérêt du multicast: profiter des avantages de la diffusion (au sens du broadcast) mais sans les inconvénients (ne pas envoyer à ceux qui ne sont pas intéressés).
En effet, une caméra capte des images et elle les diffuse à ce que l’on va appeler: un groupe. Il s’agit de l’ensemble des machines IP qui sont intéressées par recevoir le flux de données, notamment pour permettre l’affichage sur l’écran dans l’application dédiée.
Pour résumer, le multicast est utilisé pour optimiser les infrastructures lorsque plusieurs destinataires sont intéressés par le même trafic. Il s’agit de communications « Un-vers-Plusieurs ».
La notion de groupe multicast
Le concept associé à la technologie multicast repose donc sur la notion de groupe. Pour revenir sur notre exemple de diffusion vidéo, l’application vidéo permet, de façon plus ou moins transparente pour l’utilisateur, d’abonner la machine à un groupe multicast.
S’abonner à un groupe veut dire: « je veux recevoir les paquets IP à destination du groupe ». Dans le cas d’un paquet IP multicast, cela reste un paquet IP standard. C’est l’adresse IP utilisée qui est particulière: elle ne désigne pas une machine en particulier mais le groupe.
Mais alors, comment le réseau (les routeurs) savent qu’il ne s’agit pas d’une machine en particulier mais d’un groupe ? Pour cela, une plage d’adresses IP a été réservée à cet effet. Ce sont les adresses de classes D (plage d’adresses entre 224.0.0.0 et 239.255.255.255).
De plus, lorsqu’une machine veut recevoir le trafic à destination d’un groupe, elle doit s’abonner au préalable, c’est à dire envoyer un message au réseau pour lui dire: « maintenant, le trafic vers cette adresse IP m’intéresse ! Merci de m’envoyer les paquets IP correspondants. » Les messages échangés entre le réseau et l’usager sont définis par le protocole IGMP (Internet Group Management Protocol).
Multicast & couche Ethernet
Considérons à présent le paquet IP qui a une adresse IP destination de groupe (une adresse multicast, donc). Comment ce paquet est-il traité par la couche Ethernet ?
Au niveau Ethernet, la trame qui va transporter ce paquet doit avoir une adresse Ethernet (on parle aussi d’adresse MAC) de destination. Pour étendre le concept de multicast IP sur les réseaux Ethernet, les adresses Ethernet sont des adresses multicast également. D’ailleurs, l’adresse MAC multicast est dérivée de l’adresse IP multicast.

Exemple d’adresse MAC multicast dérivée de l’adresse IP: les derniers bits sont simplement recopiés !
Ceci a plusieurs avantages:
- Contrairement au monde unicast (où il faut demander l’adresse MAC associée à une adresse IP: c’est le rôle de ARP), l’adresse MAC multicast est implicitement définie par l’adresse IP Multicast.
- Lorsqu’une machine s’abonne (par les messages IGMP) à un groupe, elle programme – par la même occasion – sa propre carte Ethernet pour capter et récupérer les trames Ethernet associées à l’adresse IP multicast. Toutes les autres trames Ethernet multicast ne sont pas intéressantes et ne sont donc pas remontées à la pile IP de la machine. Encore une fois, on cherche à optimiser toutes les ressources possibles !
Les différentes briques de la diffusion IP Multicast
Comme indiqué en début d’article, le système à la source d’un flux multicast (par exemple, une caméra IP) n’émet le trafic qu’une seule fois, en utilisant l’adresse IP de groupe comme étant l’adresse destination du paquet IP.
Les machines qui veulent recevoir le flux doivent donc s’abonner à cette adresse IP en l’indiquant au réseau (en fait, à la passerelle par défaut de la machine).
Entre les sources et les récepteurs, le réseau assure la duplication et le routage des paquets multicast (au plus proche du destinataire). Pour cela, un protocole de routage (PIM pour Protocol Indépendent Multicast) créé au préalable un arbre de diffusion pour permettre à tous les systèmes qui en ont fait la demande de recevoir le trafic IP émis par la source à destination du groupe.
Félicitations: vous êtes arrivés au bout de l’article ! Mais pour la technologie Multicast, ça ne fait que commencer… N’hésitez pas à me laisser vos questions ou commentaires dans l’espace ci-dessous, ça m’aide à définir le contenu de mes prochains articles et ça me permet de bien cerner les difficultés que rencontrent mes élèves: cela profite à tout le monde !
Bonjour
Merci pour ces explications.
Svp ,la différence entre le dense mode et le sparce mode.
Merci de votre collaboration.
Bonjour.
Dense Mode et Sparse Mode sont deux variantes de PIM qui permettent de créer l’arbre de diffusion.
Pour faire simple:
– Dense Mode: on fait l’hypothèse que tout le monde veut recevoir le flux (ceux qui ne le veulent pas le disent après avoir reçu le flux)
– Sparse Mode: Les systèmes qui veulent recevoir le flux se manifestent auprès d’un point de rendez-vous…
Mais… le mode dense est obsolète et ne doit même pas être envisagé: nous sommes en 2017!!! 😉