Multicast

Un article de Wikipédia, l'encyclopédie libre.
Types de routage

Anycast

Broadcast

Multicast

Unicast

Géocast

Le multicast (qu'on pourrait traduire par « multidiffusion ») est une forme de diffusion d'un émetteur (source unique) vers un groupe de récepteurs. Les termes « diffusion multipoint » ou « diffusion de groupe » sont également employés.

Les récepteurs intéressés par les messages adressés à ce groupe doivent s'inscrire à ce groupe. Ces abonnements permettent aux switchs et routeurs intermédiaires d'établir une route depuis le ou les émetteurs de ce groupe vers les récepteurs de ce groupe.

Avantages[modifier | modifier le code]

Ce système est plus efficace que l'unicast pour diffuser des contenus simultanément vers une large audience. En streaming unicast, on enverrait l'information autant de fois qu'il y a de connexions, d'où gaspillage de temps, de ressources du serveur et surtout de bande passante. Le multicast IP diffère également du broadcast, puisque le message est seulement délivré à un groupe auparavant annoncé à l'expéditeur, et non à tous les utilisateurs du réseau[1]. En multicast, chaque paquet n'est émis qu'une seule fois et sera routé vers toutes les machines du groupe de diffusion sans que le contenu soit dupliqué sur une quelconque ligne physique ; c'est donc le réseau qui se charge de reproduire les données.

Le multicast permet de développer des applications interactives de groupe, comme la visioconférence, le partage de tableau, etc.

Inconvénients[modifier | modifier le code]

Le multicast ne permet cependant en aucune façon le contrôle de la participation au groupe par la source : la source ne peut déterminer ni qui participe, ni qui peut participer ou non au groupe.

L'identification et l'authentification des participants doivent être prises en charge au niveau applicatif si elles sont souhaitées.

Protocoles[modifier | modifier le code]

Un groupe multicast se compose d'un ensemble de machines[2]. Il est entièrement dynamique (une station peut rejoindre ou quitter le groupe à tout moment), et ouvert (il n'y a pas de restriction des sources a priori) ; une station peut même émettre un paquet dans un groupe sans en faire partie.

Les protocoles de routages tels que PIM[3] permettent la diffusion du multicast au-delà du segment (TTL).

Le trafic multicast étant unidirectionnel, l'utilisation de TCP n'est pas possible, seul UDP est donc utilisé. Les mécanismes d'évitement de congestion et de retransmission de TCP ne sont en conséquence pas disponibles ; les applications ou le type de données transmises doivent pour cette raison soit tolérer les pertes, soit faire usage d'un système de retransmission fondé sur unicast (ce mode de transmission est alors appelé Reliable multicast (en)). Sur des liens où il peut exister de la congestion, la QoS peut contribuer à l'amélioration de la qualité des flux multicast dans le réseau d'un opérateur en priorisant le multicast.

IPv4[modifier | modifier le code]

Le multicasting IP a été défini dans la RFC 988[4] en .

En multicast, le protocole IP utilise les adresses de 224.0.0.0 à 239.255.255.255 (adresses de classe D), les 28 bits les moins significatifs constituent l'adresse du groupe.

Les adresses IP multicast 224.0.0.0 à 224.0.0.255 sont locales à un lien et sont réservées pour le fonctionnement des protocoles réseaux, comme OSPF par exemple. D'autres protocoles délaissés : AppleTalk, DECnet, IPX utilisent aussi le multicast.

Lorsqu'un poste veut envoyer un paquet à un groupe multicast, il envoie ce paquet à l'adresse IP identifiant ce groupe (par exemple : 224.1.2.3). La réception est réalisée par un routeur abonné au groupe et le paquet est alors dupliqué et renvoyé grâce à une trame de niveau 2 multicast.

Sur un segment, les routeurs identifient les groupes disposant de membres grâce au protocole Internet Group Management Protocol (IGMP). IGMP n'identifie pas pour autant les récepteurs individuels.

Les commutateurs Ethernet simples traitent les trames multicast comme des trames broadcast, c'est-à-dire en les répliquant sur tous les ports à l'exception du port émetteur. Le protocole IGMP Snooping ne transmet les trames qu'aux hôtes ayant manifesté de l'intérêt pour le groupe, ce qui est plus efficace.

Au niveau d'Ethernet, les trames avec le bit le moins significatif du 1er octet d'une adresse MAC (bit I/G) sont des trames diffusées. Le préfixe 01-00-5E (/25) est réservé pour les groupes multicast par la RFC 1112[5]. Les 23 bits les moins significatifs de l'adresse MAC sont remplis avec les 23 bits les moins significatifs de l'adresse IP multicast. Comme l'adresse IP multicast dispose de 28 bits de groupe, ceci signifie que 32 (228-23) adresses IP multicast partagent la même adresse MAC.

Adresses multicast IPv4 réservées[modifier | modifier le code]

Les blocs d'adresses suivants ont été réservés par l'IANA[6] :

Bloc Description
224.0.0.0/24 adresses multicast sur le lien. Par exemple 224.0.0.5 est utilisé par OSPF pour contacter tous les routeurs OSPF du lien.
232.0.0.0/8 Source-specific multicast (RFC 3569[7])
233.0.0.0/8 Adressage GLOP (RFC 2770[8]) qui permet à un fournisseur de contenu de disposer de ses propres adresses. Les octets 2 et 3 représentent un numéro d'AS public de 16 bits.
239.0.0.0/8 Adresse multicast de site. Celles-ci jouent le même rôle que les adresses privées, leur diffusion est limitée à un site.

IPv6[modifier | modifier le code]

Multicast fait partie des spécifications initiales d'IPv6. Il est notamment utilisé par le Neighbor Discovery Protocol et se substitue au broadcast.

Les adresses IPv6 ff00::/8 sont réservées pour le multicast, 112 bits de groupe sont disponibles.

Format d'une adresse multicast
champ préfixe drap. scope groupe
bits 8 4 4 112

Le préfixe consiste en la valeur binaire 11111111. Trois des quatre bits du champ drapeau sont définis par la RFC 4291[9]. Le bit le plus significatif est réservé à un usage ultérieur. Les quatre bits de scope indiquent le domaine de validité de l'adresse (ff0s::) :

  • si s=1, l'adresse multicast est locale à l'hôte,
  • si s=2, l'adresse est link-local,
  • si s=5, l'adresse est locale au site,
  • si s=8, l'adresse est locale à l'organisation,
  • si s=e, l'adresse est globale.

Multicast Listener Discovery joue le même rôle qu'IGMP pour IPv4, tandis que MLD snooping est similaire à IGMP snooping.

Au niveau ethernet, un préfixe OUI est réservé aux adresses IPv6 multicast (33:33:xx). L'adresse MAC du groupe multicast consistera en ces 16 bits que l'on fait suivre par les 32 derniers bits de l'adresse IPv6 multicast. Par exemple, l'adresse ff02::3:2 correspondra à l'adresse MAC 33:33:00:03:00:02. Bien que de nombreux groupes multicast partagent la même adresse MAC, ceci permet déjà un filtrage efficace au niveau de la carte réseau.

Adresses IPv6 multicast réservées[modifier | modifier le code]

Voici quelques adresses réservées par l'IANA[10] :

Bloc Description
ff02::1 Tous les hôtes sur un segment
ff02::2 Tous les routeurs sur un segment
ff02::1:FF00:0000/104 Solicited Node utilisé par Neighbor Discovery Protocol
ff02::1:2 Tous les agents DHCP sur un segment
ff05::1 Tous les hôtes d'un site
ff0x::fb Multicast DNS
ff0x::101 Network Time Protocol
ff05::1:3 Tous les serveurs DHCP du réseau local.

Auto-configuration des Adresses IPv6 multicast[modifier | modifier le code]

Efficacité de multicast vis-à-vis du broadcast sur un segment[modifier | modifier le code]

Outre la limitation de la diffusion si IGMP Snooping ou MLD snooping sont actifs, l'utilisation d'une adresse MAC multicast permet un filtrage dès la carte réseau sur les hôtes, c'est-à-dire sans que la pile TCP/IP de l'hôte ait besoin d'examiner le contenu du paquet, au contraire des trames diffusées avec une adresse broadcast.

Quand un hôte joint ou quitte un groupe, il met à jour une liste d'adresses MAC multicast acceptée par la carte réseau.

Utilisation[modifier | modifier le code]

L'usage du multicast sur Internet est encore limité aux réseaux de recherche et aux universités, il est plus rarement pris en charge par les fournisseurs d'accès Internet et les réseaux d'entreprise. Le réseau mondial Mbone facilite les échanges de trafic multicast sur Internet. Les points d'échange Internet offrent généralement la possibilité de transmettre du trafic multicast entre les fournisseurs.

Multicast est utilisé par les systèmes de Télévision IP pour diffuser le contenu des chaînes à un grand nombre d'abonnés. Il est aussi utilisé dans certaines grandes entreprises pour la diffusion d'informations, la mise à jour simultanée des postes de travail ou la synchronisation des horloges des stations de travail et des serveurs.

Certaines webradios expérimentent un flux multicast pour la diffusion de leurs programmes ; ce type de flux n'étant pas généralement supporté par les opérateurs de réseau en 2010, la diffusion de celles-ci reste limitée : un campus, par exemple.

Multicast ne dispose pas pour le moment (en 2010) d'applications susceptibles de rencontrer l'engouement du grand public. La méconnaissance des protocoles de routage multicast au sein des fournisseurs et des opérateurs n'y est pas étrangère. L'absence de tout système de contrôle de l'audience en standard démotive aussi les fournisseurs de contenu.

Notes et références[modifier | modifier le code]

  1. « Multicast : pour une diffusion multipoint », sur IONOS Digitalguide (consulté le )
  2. Ou plus exactement d'adaptateurs réseau sur ces machines
  3. Méthode recommandée par Cisco dans ses brochures
  4. (en) Steve Deering, « Host Extensions for IP Multicasting », Request for comments no 988,
  5. (en) Steve Deering, « Host extensions for IP multicasting », Request for comments no 1112,
  6. Internet Multicast Addresses
  7. (en) Supratik Bhattacharyya, « An Overview of Source-Specific Multicast (SSM) », Request for comments no 3569,
  8. (en) David Meyer, Peter Löthberg (sv), « GLOP Addressing in 233/8 », Request for comments no 2770,
  9. (en) Steve Deering, Robert Hinden, « IP Version 6 Addressing Architecture », Request for comments no 4291,
  10. IPv6 Multicast Address Space Registry

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Lien externe[modifier | modifier le code]