Unicast, multicast, broadcast: oui mais quelle couche?

10

Dans cet article, nous allons voir une notion très importante car elle est ancrée dans plusieurs couches du modèle OSI et du modèle TCP/IP et principalement dans les couches 2 et 3. C’est la notion du type d’adresse: unicast, multicast et broadcast (aussi anycast mais on en reparlera plus tard dans le chapitre dédiée à IPv6).

Adresse Unicast, multicast et broadcast

Dans les réseaux, nous avons besoin de savoir avec qui souhaite communiquer, c’est à dire avec une ou plusieurs entités. Pour cela, des adresses spéciales ont été définies pour pouvoir être interprétées correctement par les équipements informatiques en fonction du souhait.

Unicast: communication 1 vers 1

Prenons un exemple, je fais un ping vers le PC voisin pour savoir s’il est présent. Dans ce cas, je fais de l’unicast, j’envoi un paquet ping vers un et un seul PC, ou plus précisément j’envoi un paquet ping vers une adresse IP qui appartient qu’à un seul PC.

En faisant un parallèle avec la vraie vie ( 🙂 ), c’est comme si j’envoi une lettre postale à un ami. Il est bien le seul a recevoir la lettre.

C’est le cas le plus simple à appréhender 🙂

Broadcast: communication 1 vers tous

Maintenant, je souhaite faire un ping vers tous les PC qui sont dans mon réseau. Comment faire?

Je peux taper autant de fois la commande ping qu’il y a de PC. Simple mais plutôt gourmand en temps et un peu ennuyeux…

Autre solution, je forge un paquet ping avec comme adresse IP de destination, une adresse IP spécifique qui identifie toutes les entités du réseau, c’est l’adresse de broadcast. Alors comment on connait cette adresse, ce sera décrit dans un chapitre particulier.

Si je reprend le parallèle avec la vraie vie, c’est comme si j’envoyais une lettre postale à tous les habitants d’une ville (en supposant la ville étant mon réseau).

Multicast: communication 1 vers plusieurs (mais pas tout le monde!)

Dans certains cas, on aimerait pouvoir communiquer uniquement avec un groupe d’entités sans pour autant impacter tout le monde. Pour cela, on va utiliser une adresse de destination qui s’appelle multicast.

Un exemple: avant dans les avions long-courrier on pouvait voir un film mais celui-ci démarrait à un instant bien précis. Si on arrivait trop tard et bien on prenait le film au moment où on allumait la TV. Ce fonctionnement c’est du multicast: on diffuse un film qui démarre à un instant T mais chacun était libre de la regarder, c’est à dire pas tout le monde (heureusement… 🙂 ).

Comment connaitre ces adresses particulières, et bien on verra dans un prochain chapitre que selon le protocole (IP, Ethernet…), elles sont prédéfinies et réservées.

Si je reprend mon précédent exemple, c’est comme si j’envoyais une lettre postale à tous les habitants d’un arrondissement ou d’un quartier et non à toute la ville en entier.

Tout ça pour ça?

Alors certains me diront qu’ils savaient déjà tout ça. J’en suis bien content 🙂

En fait, j’insiste sur cette notion car le fait d’envoyer un paquet à une destination (unicast), à tout le monde (broadcast) ou à un groupe d’entité (multicast) est une notion qui vaut autant pour la couche 2 que pour la couche 3.

La plupart des gens comprennent cette notion avec le protocole IP (couche 3 du modèle OSI) car on l’utilise régulièrement et mes exemples ci dessus ne font que confirmer cela.

Mais il faut savoir que le protocole Ethernet (couche 2) n’arrête pas d’utiliser des adresses unicast, multicast et broadcast. Alors oui, il ne faut pas oublier qu’au niveau 2, et je ne parle pas que d’Ethernet, il existe des adresses de différent types.

Exemple d’adresse unicast, broadcast et multicast

Voici des exemples d’adresses unicast en IP et en Ethernet

Adresse unicast IP

10.1.1.1 est une adresse unicast IP. Cette adresse peut être assigné à un PC par exemple.

Adresse unicast Ethernet

00-1E-33-1D-6A-79 est une adresse unicast Ethernet (qu’on appelle aussi adresse MAC). Cette adresse est par exemple l’adresse MAC de ma carte réseau.

Adresse broadcast IP

Imaginons qu’on est dans le réseau 10.1.1.0 /24, alors l’adresse de broadcast est définie et réservée et sera 10.1.1.255

Cette adresse ne sera jamais configurée sur un PC. Essayez de la configurer sur votre carte réseau et vous aurez le message d’erreur suivant:

Dans le chapitre adressage IP, nous voyons comment identifier l’adresse de réseau, de broadcast…

Adresse broadcast Ethernet

Pour Ethernet, l’adresse de broadcast est aussi définie et réservée est vaut toujours la valeur FF-FF-FF-FF-FF-FF. Par exemple le protocole ARP – Address Resolution Protocol – utilise beaucoup l’adresse Ethernet de broadcast pour communiquer.

Pour les tordus, j’ai essayé de changer l’adresse MAC de ma carte réseau en FF-FF-FF-FF-FF-FF et bien j’ai réussi !

Alors ça me sert pas à grand chose car vous voyez qu’avec une adresse MAC pareil, Windows n’arrive pas à récupérer d’adresse IP et donc je n’ai plus accès au réseau (je me suis même coupé la communication en écrivant cet article 🙂 ).

Adresse multicast IP

Une plage d’adresses IP a été réservée pour le multicast, c’est à dire que des adresses IP sont prédéfinies pour que lorsqu’un système en voit “transiter” une alors il sait que c’est une adresse multicast. Pour IP, ces adresses sont dans la plage 224.0.0.0 à 239.255.255.255. On décrira précisément le découpage de ces adresses dans le chapitre réservé au multicast.

Adresse multicast Ethernet

Ca commence à se compliquer là car certaines adresses Ethernet dites “Multicast” sont prédéfinies comme par exemple l’adresse 01-80-C2-00-00-00 qui est une adresse réservée pour le protocole Spanning-tree. Et d’autres sont dérivées automatiquement de la couche supérieure…. kézako?

Prenons un exemple: au niveau de la couche 3 (IP), vous utilisez une adresse IP multicast alors l’adresse Ethernet au niveau 2 sera une adresse qui sera de la forme 01-00-5E-xx-xx-xx et dont les xx-xx-xx seront automatiquement calculé par rapport à l’adresse IP.

Ne vous en faites pas, on verra tout ça dans le chapitre multicast 🙂

Ce qu’il faut retenir pour le CCNA

Pour l’examen CCNA, voici ce qui est le plus important:

  • unicast: communication 1 vers 1
  • broadcst: communcation 1 vers tous
  • multicast: communication 1 vers n (n étant un nombre variable d’entité)
  • Ces 3 types d’adresse sont utilisés par les couches 2 et 3 et certaines sont prédéfinies et réservées

 

PARTAGER SUR

10 COMMENTAIRES

  1. Quelque chose qui reste à éclaircir pour moi.

    Dans le cas d’un paquet unicast, on sait qu’au niveau switch, donc niveau 2, il va retenir vers quelle port envoyer la trame car il y a une association port/mac adresse.

    Dans le cas du broadcast, très simple, le switch balance sur tous les ports sans se poser de question.

    Mais dans le cas du multicast, que fais le switch ? Comment peut-il savoir sur quel port envoyer la trame ?
    Ma fois, si je suppose qu’il balance sur tous les ports car il n’a pas l’information, finalement on est proche, pour pas dire aligné sur le fonctionnement du broadcast au niveau réseau.
    La seule différence se trouverait au niveau système, qui, si il reçoit la trame mais ne fait pas parti du groupe multicast, alors il la rejette tout simplement sans la traiter.

    Vos avis ?

  2. Quelque chose qui reste à éclaircir pour moi.

    Dans le cas d’un paquet unicast, on sait qu’au niveau switch, donc niveau 2, il va retenir vers quelle port envoyer la trame car il y a une association port/mac adresse.

    Dans le cas du broadcast, très simple, le switch balance sur tous les ports sans se poser de question.

    Mais dans le cas du multicast, que fais le switch ? Comment peut-il savoir sur quel port envoyer la trame ?
    Ma fois, si je suppose qu’il balance sur tous les ports car il n’a pas l’information, finalement on est proche, pour pas dire aligné sur le fonctionnement du broadcast au niveau réseau.
    La seule différence se trouverait au niveau système, qui si il reçoit la trame mais ne fait pas parti du groupe multicast, alors il la rejette tout simplement sans la traiter.

    Vos avis ?

    • Bonjour Anthony,
      C’est une excellente question !
      Les anciens commutateurs traitaient les trames multicast comme des trames broadcast –> “le switch balance sur tous les ports sans se poser de question.”

      Les commutateurs d’aujourd’hui sont plus intelligents et savent identifier quels sont les ports destination qui “souhaitent” recevoir ce trafic multicast. Je vais écrire un article dessus bientôt pour expliquer tout ca en detail.

      • Bonjour Cyril,

        merci beaucoup pour ta reponse rapide !
        Effectivement, il serait tres interessant d ecrire un article qui decrive exactement comment ca fonctionne, de bout en bout, etape par etape, je t en serais tres reconnaissant, car je n ai rien trouve a ce sujet. (peut etre dans la doc cisco ou dans les livres de preparation aux certifs ?)

        Desole pour le manque d accent, je n ai qu un clavier qwerty devant les yeux de dispo.
        Desole aussi pour la repetition du message, j ai cru que le message n etait pas parti.

  3. Comment sont affectées les adresses de multicast à une interface ? ce que je veux dire c’est sont elles attribuées à l’interface physique en mm temps que l’adresse Unicast via un mécanisme dhcp ?

    Merci Cyril.

    • En fait, une adresse IP multicast est toujours utilisée comme adresse de destination. Par exemple ton serveur vidéo aura une adresse IP unicast et emmétra le flux vidéo avec des paquets avec les paramètres suivants:
      – adresse source: son adresse unicast (celle configurée sur sa carte réseau)
      – adresse destination: une adresse multicast

      Je détaillerai le fonctionnement du multicast dans un prochain chapitre. Bonne lecture !

LAISSER UNE RÉPONSE