IP (Interconnection Protocol)

3.1 Caractéristiques essentielles

IP définit  la structure des données en transit dans l’interconnexion. IP est un protocole de communications sans connexion et non fiable. Les communications se font en mode datagramme.

3.2 Datagramme IPv4

La structure du datagramme est présentée par mots de 32 bits. La longueur minimale de l’en-tête est de 20 octets.
  • Mot 1    Version (4 bits), Longueur d'en-tête (4 bits), Type de service (8 bits), Longueur du paquet ou fragment (16 bits)
  • Mot 2    Identification (16 bits), Drapeau (3 bits), Déplacement de fragment (13 bits)
  • Mot 3    Durée de vie (8 bits),  Protocole (8 bits), Contrôle de l'en-tête (16 bits)
  • Mot 4    Adresse IP source
  • Mot 5    Adresse IP destination
  • Mot 6    Optionnel : Options éventuelles(24 bits)
  • Données
Différents champs de l'en-tête IP :

Version : version d'IP, IP rejette tout datagramme avec une version non traitée.
Longueur de l'en-tête : longueur de l'en-tête en mots de 32 bits, la taille minimale de l'en-tête est 20 octets.
Type de service et priorités :
Priorité de 0 (normale) à 7 (supervision réseau)
Différents types de service (info au routage)
D    délai court    (delay)
T    débit élevé     (throughput)
R    fiabilité         (reliability)
C    coût        (lower cost)
Le terme anglais employé pour type de service est TOS (type of service). Le support des types de service dépend du protocole de routage interne associé (RIP: hop count, OSPF: débit, délai, fiabilité).
L'approche TOS distingue les différents critères: débit, délai, fiabilité, coût. Elle n'est pas adaptée aux supports de communications actuels. En fait, sur les supports optiques haut débits respectent tous ces critères simultanément. Rares sont les réseaux qui emploient différents critères, le critère le plus adapté est une fonction du débit et du délai.
Longueur totale: taille du datagramme ou du fragment en octets (taille maximale: 65535 octets)
Identification: attribué par la couche IP émetteur, distingue différentes sessions entre mêmes machines.
Drapeau: deux bits contrôlent la fragmentation, l'un pour interdire la fragmentation d'un datagramme (ex: boot, Path MTU discovery), l'autre indique que le fragment n'est pas le dernier (fragment à suivre)
Déplacement de fragment: place du fragment dans le datagramme pour un datagramme fragmenté, la taille du datagramme est obtenue à l’aide du dernier fragment en additionnant son déplacement multiplié par 8 à sa longueur. La taille minimale d'un fragment est donc de 8 octets.
Durée de vie: nombre de sauts maximum possibles pour le fragment. Lors du transit, chaque routeur décrémente ce champs, le datagramme est éliminé si ce champ tombe à 0 et un message d'erreur (protocole ICMP) est renvoyé à l'émetteur initial du fragment.
Protocole: protocole de niveau supérieur employé pour créer le message de la zone donnée (UDP, TCP, ICMP, EGP,  OSPF, etc..), le principe est le même que pour le champ protocole de la trame Ethernet
Total de contrôle de l'en-tête : le total de contrôle ne s'applique qu'à l'en-tête, ceci diminue le coût de traitement au niveau des routeurs, le contrôle d'erreur des données est confié aux protocoles de plus haut niveau. Ce champ est recalculé sur chaque routeur du fait de la modification du champ TTL. Le mode de calcul est une addition complément à un. De cette façon, le remplacement d’un élément passe par deux opérations (soustraction de l’ancien et addition du nouvel élément).
Options : si elle existe, cette zone comporte trois champs: copie, classe d'option et numéro d'option. Le bit copie à 1 demande en cas de fragmentation la copie de l'option dans tous les fragments. Le champ classe d'option code les deux significations: 0 correspond à la classe datagramme ou supervision réseau, 2 correspond à la classe mise au point et mesures.
Pour la classe 0, on remarque les numéros d'options suivants:
restriction de sécurité et de gestion,
routage lâche définit par la source,
enregistrement de route,
routage strict définit par la source.
L'horodatage IP demande l'enregistrement des temps de passage du datagramme dans chaque routeur.
La taille des options est limitée par la taille maximale de l'en-tête IP qui est de 64 octets. Les datagrammes avec options de proche en proche requièrent des traitements logiciels sur les routeurs, ils ne sont pas traités à la volée comme les datagrammes ordinaires.

3.3 Circulation des datagrammes

IP découpe les datagrammes en fragments pour s'adapter au MTU (maximum transfert unit) du support sous-jacent, l'assemblage des fragments est fait que par la couche IP du récepteur. IP récepteur délivre le datagramme reconstitué à la couche transport. Les routeurs gèrent le trafic au niveau IP.
Les chemins suivis par un même fragment peuvent être différents, mais ce n'est pas forcément fréquent. En effet, la probabilité d'utilisation de chemins différents augmente avec la multiplication des lignes supports. Cette utilisation de chemins différents prend deux aspects qu'il s'agisse d'émissions rapprochées ou distantes dans le temps. Ainsi, l'emploi de chemins différents pour des datagrammes consécutifs est faible. Pour des communications distantes, des datagrammes émis à des moments différents de la journée pourraient passer par des chemins totalement différents puisque les routeurs prendront en compte la charge des lignes de communications qui dépend de l'heure. Par exemple, une communication entre la France et le Japon passe plutôt par un câble SEA-ME-WE (Méditerranée, océan Indien, océan Pacifique) le soir et par un câble transatlantique le matin. Le fait de suivre différents chemins rend possible l'arrivée de fragments dans le désordre. Cependant, la possibilité de suivre des routes diverses introduit un dynamisme important dans la tolérance aux fautes. Les routes alternatives sont également employées en cas de répartition de charge et de congestion d'un lien.

La fragmentation intervient si la taille du datagramme est supérieure à la taille maximale de la trame sur un des supports utilisés (Ethernet 1500, FDDI 4500, X25 256, ATM 48). Elle est assurée par le routeur relié au support à taille inférieure. La reconstruction des fragments est assurée par la couche IP du destinataire, sauf si un RFC particulier décrit l'adaptation au support (X25 ou ATM). La fragmentation diminue les performances, l'en-tête est dupliqué dans chaque fragment et le surcoût du traitement de la trame sur chaque nœud intermédiaire est plus important, puisqu'il existe pour chaque fragment. La couche IP du récepteur reconstruit les datagrammes, à l'aide de l'indication déplacement du fragment, mais ne détecte pas leur perte. A chaque réception de fragment, IP arme une temporisation. Si au bout de cette temporisation un autre fragment n'est pas arrivé, tous les fragments du datagramme déjà reçus sont supprimés. Pour un datagramme découpé en fragments, la probabilité de pertes est plus forte que pour un datagramme complet. En effet, la retransmission d'un fragment perdu ne sera pas demandée et la probabilité de perte augmente avec le nombre de fragments. Un message ICMP de dépassement de temps est cependant  émis par la couche IP du récepteur qui détecte la perte. Les datagrammes ne sont pas assemblés sur les nœuds intermédiaires pour deux raisons: ils ne suivent pas tous le même chemin et cela évite une fragmentation ultérieure. L'algorithme de reconstruction d'un datagramme serait plus simple si les fragments suivaient tous le même chemin. Une amélioration de la fragmentation consiste à ne pas remplir les datagrammes au maximum du MTU pour éviter les avalanches de fragmentation en cas de tunneling derrière un firewall. Des fragments inférieurs au MTU laissent une place à un en-tête IP supplémentaire.

La demande de fragmentation ICMP ainsi que la fragmentation IP sont essentiellement dues au trafic UDP car TCP adapte la taille des segments, quelquefois à l’aide du message ICMP "too big".

La couche IP d'un routeur intermédiaire envoie des messages de congestion aux émetteurs si sa mémoire est saturée. IP ne retransmet pas de datagramme, même sur réception d'un message d'erreur. IP récepteur transmet les datagrammes reçus vers la couche transport dans l'ordre de réception.

3.4 Performances

La prise en charge d'IP nécessite l'exécution d'un certain nombre d'instructions tant sur les clients d'extrémité que sur les routeurs intermédiaires. Avec la puissance des processeurs actuels, il apparaît que cette charge devient pénalisante pour des trafics sur des artères haut débit.

La suppression de la fragmentation simplifie l'en-tête en supprimant les champs drapeaux et déplacement. Comme les réseaux affluents sont du type modem ou Ethernet et ce sont donc eux qui dictent la taille des datagrammes injectés, cette taille est souvent inférieure à la taille maximale acceptées sur les liens haut débits des artères principales.

La gestion des options est également coûteuse. Les datagrammes avec options IP sont mis dans des files spéciales à traiter par le processus au niveau des routeurs. Ils ne bénéficient donc pas de la logique câblée de routage.

Avec l'augmentation de la qualité des réseaux, le calcul du contrôle sur l'en-tête devient inutile, la validité des adresses étant testée par le contrôle UDP ou TCP (pseudo en-tête). C’est la situation préconisée dans IPv6.

De nouvelles spécifications émergent pour la gestion de flux, RSVP qui est basé sur la réservation et diffServ sur la gestion des priorités. RSVP est plus adapté aux intranets, il mémorise des flux au niveau des routeurs. DiffServ spécifie une nouvelle utilisation du champ TOS pour classifier les datagrammes. Dans cette nouvelle affectation les 3 bits de priorité sont conservés et 3 autres bits sont utilisés. Différentes classifications coexistent, mais une classification est unique au sein d'un système autonome.

Pour résumer IP effectue :
  • un contrôle de congestion à l'aide des messages ICMP, 
  • un contrôle d'erreurs sur l'en-tête,
  • chez le récepteur une mise en ordre des fragments, mais pas des datagrammes,
  • pas de gestion de fenêtre.
Un certain nombre de protocoles de contrôle utilisent directement IP: c'est le cas d'OSPF, d'ICMP. Cependant IP étant non fiable, la plupart des applications utilisent un protocole de transport de type TCP qui contrôle les communications.

3.5 IPv6

IPv6 ambitionne de devenir un standard, non seulement pour les communications entre ordinateurs, mais également pour les futurs équipements nomades, ainsi que pour les automates industriels et domestiques.

L'en-tête IPv6 est simplifié de façon à réduire les calculs sur les équipements intermédiaires. Le champ CRC de l'en-tête disparaît. L'espace d'adressage IPv6 intègre les champs d'adresses IPv4, IPX, NSAP, des portions sont également réservées aux fournisseur d'accès, à l'adressage géographique, au multicast. Pour assurer une compatibilité avec le parc IPv4 existant, l'espace d'adresse IPv4 est intégré dans l'adressage IPv6, ainsi des communications entre domaines IPv4 pourront transiter par un domaine IPv6. Des datagrammes IPv6 transiteront dans les domaines IPv4 en mode tunnel.
Pour la longueur de l'adresse, le choix correspondait aux longueurs de 8, 16 ou 20 octet ou bien une taille variable. Une taille de 8 octets semblait suffisante. Seize octets garantissaient toutes les évolutions probables. Une taille de 20 est compatible avec le schéma NSAP de l'OSI. Finalement, la taille de 16 octets fut retenue.

Les services supportés par IPv6 sont : le multicast, les classes de services, la mobilité, la sécurité, les réseaux privés.

3.5.1 Caractéristiques principales

Le protocole offre les principales caractéristiques suivantes:
  • La taille de l'adresse passe de 32 bits à 128 bits,
  • Le format de l'en-tête est simplifié,
  • en-tête fixe prolongé par des extensions,
  • authentification ainsi que le cryptage d'un datagramme sont possibles, IPSec est intégré à la pile Ipv6
  • fragmentation est faite à la source, d'où l'emploi du "Path MTU discovery",
  • la taille minimale du fragment est de 1280 octets,
  • la diffusion est facilitée par l'ajout d'un champ zone,
  • une classe d'adresses agrégées est prévu,
  • le routage par la source est possible.

3.5.2 En-tête IPv6

La longueur de la partie commune de l’en-tête est de 40 octets et sa structure est la suivante:
Version(4) Priorité (4) Flow label (24)
Payload length (16) Next Hdr(8) Hop limit (8)
Adr Src (4x32)
Adr Dst (4x32)
Flow label: le type de service requis est précisé dans ce champ (24 bits). Le champ Flow Label identifie le flux et est utilisé par des protocoles du type RSVP.
Payload length (16 bits): longueur de la zone d'informations (16 bits). Si ce champ vaut 0, la longueur est précisée en début de message.
Prochain en-tête (8 bits): précise le type du protocole encapsulé par IP.
Limitation du nombre de sauts (8 bits): ce champ évite les boucles, il est décrémenté lors du passage dans chaque routeur
Adresse source 128 bits
Adresse destination 128 bits
Pour le champs priorité, il existe deux catégories de priorité, les priorités 1 à 8 qui s’appliquent à du trafic pour lequel le contrôle de congestion est fait par la source. Les valeurs 8 à 15 sont utilisées pour le trafic sans feed-back, les niveaux vont du trafic éliminable au non éliminable. Les différents types de trafic sont: non caractérisé,  “ filler ” (news), non attendu (mail), réservé, trafic interactif, trafic de contrôle Internet.

Par rapport à IPv4, l'en-tête passe de 13 champs à 7 champs, il est donc plus simple à traiter. Par contre, le champ "next header" prolonge l'en-tête si nécessaire. Le code d'erreur sur l'en-tête disparaît. La fragmentation n'est plus à la charge des routeurs intermédiaires, mais à la charge de l'émetteur. Tous les champs dédiés à la fragmentation sont supprimés. La taille de fragment minimale passe de 576 octets pour IPv4 à 1280 octets (1024+256!) pour IPv6. Un routeur qui reçoit un paquet trop long envoie un message ICMP d'erreur à l'émetteur de façon à obtenir une fragmentation plus fine.  Un algorithme dit de "MTU discovery" détermine  la taille maximale autorisée sur un chemin donné, sinon la taille minimale de 1280 octets est de mise. Différentes méthodes de compression d'en-tête existent, notamment pour les liens PPP. L’option jumbo est utilisée pour envoyer des paquets de taille supérieure à 65.535 octets (payload length = 0), la portée d’un jumbogram est cependant locale à un réseau.

3.5.3 Prochains en-têtes

Le prochain en-tête n’indique pas forcément un protocole de niveau supérieur. Il signale également la présence d’une extension d’en-tête. Les différentes options d’en-tête possibles sont: saut par saut, routage, fragmentation, authentification, sécurité, options de destination. Lorsque plusieurs en-têtes concernent un même paquet, leur ordre d’apparition est le suivant: IPv6, saut par saut, options de destination (catégorie 1), routage, fragment, authentification, sécurité, options de destination (catégorie 2), niveau supérieur.

Options: Les deux premiers octets d’un en-tête extension indiquent  « l’en-tête suivant, la longueur de l’en-tête » . Les options saut par saut et destination sont codées sous un format dit TLV (type, length, value).

Un en-tête d’extension comporte trois champs: Type de l’extension (8 bits), Longueur de l’extension (8 bits), Extension.

L'en-tête de fragmentation mis par Ipv6 source indique le découpage en fragments, il comporte les informations déplacement dans le fragment et dernier fragment. En cas de changement de route avec un MTU inférieur un message ICMP "fragmentation needed" est envoyé.

3.5.4 Saut par saut

Cet en-tête contient des informations optionnelles à examiner par chaque nœud, l’en-tête hop by hop est en tête de liste d’en-têtes pour éviter à chaque routeur de balayer tous les en-têtes. Son format est le suivant:
prochain en-tête (8 bits)
longueur de l’en-tête (8 bits)
options : octet 1 type, octet 2 longueur
Les deux premiers bits du type indiquent l’action à effectuer si le type n’est pas reconnu :
sauter l’option et continuer le traitement de l’en-tête
éliminer le paquet
éliminer le paquet et générer un message ICMP d’erreur
éliminer le paquet et générer un message ICMP d’erreur si l’adresse de destination n’est pas une adresse multicast.
Les options de proche en proche actuelles sont : bourrage, jumbogramme, alerte de routeur.
 
L’option bourrage pour l’ajout d’octet d’alignement de la  taille sur des mots.
Le mode jumbogramme pour l’échange de datagrammes de plus de 64K entre des équipements situés sur un même réseau IP: Type :194 ; longueur :4 ; longueur des données sur 4 octets ;
L’option alerte sollicite un traitement particulier du routeur: 5:2 :valeur ;
Cette option annonce différents types de messages, pour l’instant il s’agit de messages de gestion IGMP, RSVP, réseaux actifs.

3.5.5 Routage par la source

Cet en-tête indique le chemin à suivre pour atteindre le destinataire. Le format est le suivant:
Prochain en-tête (8 bits)
longueur de l’en-tête (8 bits)
type de routage (8 bits)
nombre de segment restant à visiter (8 bits)   
liste d’adresses.

3.5.6 Adressage Ipv6

L'espace d'adressage Ipv6 est découpé en plages, pour l'instant seul 15% de cet espace est alloué. Ces zones concernent le s adresses: Ipv4, NSAP, IPX, adresses agrégées, diffusion, le lien, le réseau. C'est l'espace d'adresses agrégés qui est routable. Il comporte une hiérarchie de zones destinées à faciliter le routage. Il s'agit des zones TLA, SLA, NLA. En fait, ces zones peuvent être garnies par le routeur de sortie. Le choix des adresses sera fait selon des critères spécifiques: adresse source, adresse destination, application, heure. La mise à jour de l'adresse permet l'adaptation à différentes situations. Le découpage envisagé à l'heure actuelle est le suivant:
Zones: Registry/23:ISP/35:Clients/48:Station/64
L'affectation d'un /48 aux utilisateurs finaux est très généreuse.
Avec l'affectation dynamique d'adresses Ipv6, il est souhaitable que le DNS soit également mis à jour dynamiquement.
L'adresse MAC faisant partie de l'adresse Ipv6, une version minimale de DHCP qui donne l'adresse réseau est suffisante. Cependant, une station obtient l'adresse réseau par la demande ICMP de découverte de routeur. Par ailleurs, le message découverte des voisins donne à un routeur ou une station, l'ensemble des stations reliées à un réseau. Dans certains cas le routeur affecte lui-même la partie réseau de l’adresse IP.

3.5.7 Conclusion IPv6

L'introduction d'IPv6 requiert l'adaptation des autres protocoles :
  • ARP et RARP disparaissent au profit de l'autoconfiguration,
  • DHCP, BOOTP
  • ICMP, RIPv2, IS-IS, OSPF, IDRP et SDRP
  • UDP et TCP
  • DNS, SNMP, NTP, NETbios, OSI over TCP
Les RFC d'adaptation d'IP aux différents supports sont également en cours de révision. Différents standards non IETF sont également affectés. Il en est de même pour Posix, OSF DCE, Corba, Kerberos.

3.6 Protocoles de contrôle

Il s’agit de divers protocoles de contrôle. Un certain nombre de protocoles utilisent directement IP: c'est le cas d'ICMP et d’IGMP.

3.6.1 ICMP (Internet Control Message Protocol)

Ce protocole signale les  erreurs. Les datagrammes ICMP sont routés à travers l'interconnexion comme tout autre datagramme. La règle générale est qu'en cas d'erreur un message ICMP est envoyé à l'émetteur initial du message. Pour éviter la congestion de l'interconnexion, les messages ICMP en erreur ne génèrent pas de messages d'erreur à leur tour. De même aucun message ICMP n’est généré pour  les fragments autres que le premier, ainsi que pour les adresses de diffusion ou multicast.

3.6.1.1 Structure d'un message ICMP

En tête IP
Mot1    Type (4 bits) ; Code (4 bits) ;  Total de contrôle (16 bits)
Mot2    Inutilisé (à zéro)
Mot3 et suivants (données)

En fait, la structure de la zone de donnée dépend du type de message.
Les différents types de messages ICMP sont:
  • Demande d'écho et réponse d'écho (Messages de tests, commande ping)
  • Demande et réponse d'estimation de temps de transit (time stamp)
  • Demande et réponse de masque d'adresse
Les messages ICMP d'erreur sont:
  • Destination inaccessible (destination unreachable)
  • Demande de limitation de débit (source quench)
  • Expiration de délai d'un datagramme (time exceeded)
  • Modification de route    (redirect)
Pour les messages ICMP d'erreur, la zone de données comprend l'en-tête IP du fragment en erreur suivi des 64 premiers bits du datagramme ou du fragment en erreur (en-tête transport UDP complet, TCP partiel).
Le message d'estimation de temps de transit  est plus simple que le message d'horodatage IP. En effet, il comporte seulement le temps d'émission de l'émetteur, de réception et de réémission pour le récepteur et non pas le temps de transit dans chaque routeur.

Le message "destination inaccessible" est émis dans le cas où l'une des entités suivantes est inaccessible:  réseau, station, protocole, port, TOS, droit d'accès.

La demande de limitation de débit (d'un routeur vers la source) est émise par un routeur lorsqu'il détruit un datagramme par faute de place mémoire ou par anticipation lorsque la place occupée dépasse un certain seuil. Cette demande est prise en compte par Tcp qui redémarre un slow-start. On appelle congestion la situation où le taux d’occupation de la mémoire d'un routeur à dépasé un certain seuil.

Le message "time exceeded" est envoyé dans le cas du TTL qui tombe à zéro ainsi que si le délai de reconstruction d'un datagramme fragmenté a expiré.

Les messages de modification de route sont uniquement envoyés aux hôtes et non pas à d'autres routeurs, il s'agit de préciser à une station que pour aller vers un réseau IP donné, il vaut mieux passer par un autre routeur de sortie. Un tel message n'est donc émis que dans le cas où il y a plusieurs routeurs de sortie sur un réseau donné.

Selon leur type et les circonstances, les messages ICMP remontent à différents niveaux: noyau, TCP, application ou bien ils génèrent un message d'erreur.

3.6.1.2 ICMPv6

Dans ICMPv6, nous retrouvons les mêmes types de messages que dans ICMPv4. Les messages d’erreurs sont les suivants:
  • Destination inaccessible (destination unreachable)
  • Paquet trop grand
  • Expiration de délai d'un datagramme (time exceeded)
  • Problèmes de paramètres.
Les messages ICMP d'information sont la demande d'écho et réponse d'écho utilisés par les messages de tests et la commande ping. Le protocole IGMP a été intégré à ICMPv6, IGMP comprend les messages suivants: Demande d’adhésion à un groupe, rapport de groupe, réduction de groupe. Par contre, pour ICMPv6, les messages suivants disparaissent:
  • Demande de limitation de débit (source quench)
  • Modification de route    (redirect)
  • Demande et réponse d'estimation de temps de transit (time stamp)
  • Demande et réponse de masque d'adresse.
Le message "Source quench" est éliminé car il génère du trafic supplémentaire en phase de congestion. La modification de route est remplacée par le protocole de découverte des voisins. Time stamp est remplacé par NTP (network time protocol). Les demandes et réponses de masque d’adresse sont supprimées pour des raisons de sécurité.

3.6.2 IGMP

Le protocole IGMP (Internet Group Message Protocol) est défini dans le RFC 1112. IGMP est le protocole de gestion de groupe de diffusion sur l’Internet. Chaque groupe possède une adresse de diffusion de groupe (classe D, adresse de multicast qui commence par 1110). Les données sont envoyées à cette adresse de groupe. IGMP gère l'adhésion au groupe localement, pour étendre la diffusion de groupe au delà d'un domaine de diffusion, il faut mettre en œuvre le routage multicast. Pour adhérer à un groupe une station diffuse une demande d'adhésion IGMP, cette demande est acquittée par le service IGMP du réseau où la station est connectée. Dès qu'elle en est membre, tous les messages envoyés à ce groupe lui seront transmis. La diffusion de groupe ne fonctionne que si le service IGMP existe sur le réseau du  membre, ce service de gestion des clients IGMP locaux tourne sur une station ou un routeur du réseau concerné.  Au delà du réseau local, la demande est transmise par le routage multicast. Sur un réseau à diffusion, le service IGMP fait régulièrement (environ toutes les minutes) des demandes d'appartenance au groupe. Les membres d'un groupe répondent au bout d'une durée aléatoire. En fait, si un groupe a plusieurs membres sur un réseau à diffusion la première réponse diffusée est lue par les autres membres qui ne répondent donc pas. Le service ne conserve donc pas la liste des membres, il teste régulièrement s'il reste un membre de façon à décider de rester ou non dans l'arbre de diffusion qui correspond à un arbre de recouvrement minimal.

Les adresses IGMP seront supportées au niveau de l'application, de la pile IP, du gérant et de la carte réseau, du routeur. Une correspondance directe existe entre les adresses IGMP et les adresses de diffusion restreinte ethernet. Lors de l'adhésion à un groupe, l'interface réseau est configurée pour recevoir les trames comportant l'adresse de ce groupe. Les cartes réseaux mémorisent plusieurs adresses de ce type. La plupart des contrôleurs ethernet sont donc capables de recevoir les trames ethernet avec les adresses de destination suivantes: l'adresse de la carte, l'adresse de diffusion broadcast, les adresses IGMP programmées. Un logiciel d'analyse réseau met la carte réseau en mode "promiscuous" pour lire tout ce qui circule sur le réseau, ce trafic est cependant limité par la commutation ethernet.

Un message IGMP comporte huit octets et a la structure suivante:
Version (4), type (4), unused (8), checksum (16)
Adresse de groupe (32).
Il existe différents types de messages IGMP: demande (join), questions, réponses (report). Un message IGMP est tout simplement un datagramme IP avec une adresse multicast. Les questions sont envoyées régulièrement par les routeurs IGMP. Les reports sont des réponses qui signalent l'appartenance à un groupe. A l’aide des questions et réponses le routeur multicast local maintient sa table d'appartenance aux groupes et de créer les tunnels nécessaires. Un groupe est créé à partir du moment ou une station y adhère. Aucun message ICMP d'erreur n'est généré vers une adresse multicast.

Les adresses IGMPv4 sont attribuées de la façon suivante (RFC3171):

224.0.0.0 - 224.0.0.255 (224.0.0/24) Local Network Control Block
224.0.1.0 - 224.0.1.255 (224.0.1/24) Internetwork Control Block
224.0.2.0 - 224.0.255.0
AD-HOC Block
224.1.0.0 - 224.1.255.255 (224.1/16) ST Multicast Groups
224.2.0.0 - 224.2.255.255 (224.2/16) SDP/SAP Block
224.252.0.0 - 224.255.255.255
DIS Transient Block
225.0.0.0 - 231.255.255.255
RESERVED
232.0.0.0 - 232.255.255.255 (232/8) Source Specific Multicast Block
233.0.0.0 - 233.255.255.255 (233/8) GLOP Block
234.0.0.0 - 238.255.255.255
RESERVED
239.0.0.0 - 239.255.255.255 (239/8) Administratively Scoped

Les adresses GLOP reserved (233/8) attribuent les adresses multicast au sein d'un système autonome. Le numéro du SA est inséré à la place des deux octets centraux pour obtenir des adresses du type 233.x.y.0/24.

La gestion du routage multicast se fait à l'aide d'un arbre de diffusion qui couvre les routeurs empruntés. Cette gestion est ASM (Any Source MultiCast) ou SSM (Source Specific Multicast). Dans le mode ASM, tout participant pourra émettre, alors que dans le mode SSM une seule source existe. La gestion du mode SSM est beaucoup plus simple.