La couche liaison de données (couche 2 du modèle OSI)

Ce qui se passe vraiment quand vous chargez une page

Votre navigateur veut joindre 142.250.75.238. La pile IP compare cette adresse à votre 192.168.1.0/24, constate qu'elle est ailleurs et décide de passer le paquet à la passerelle 192.168.1.1. Sauf qu'un câble Ethernet ne transporte pas d'adresses IP, il transporte des trames. La couche 2 prend le paquet, l'emballe dans une trame dont l'adresse de destination est la MAC de la box (obtenue par ARP), ajoute sa propre MAC comme source, colle une somme de contrôle en fin de trame et confie le tout à la couche physique.

Portée : un saut. Pas un de plus.

La box reçoit la trame, vérifie le FCS, jette l'enveloppe, lit le paquet IP, choisit l'interface de sortie vers l'opérateur et refabrique une trame neuve avec deux nouvelles adresses MAC. Les adresses IP source et destination, elles, ne changent pas. C'est la ligne de partage entre les deux couches : la couche 3 raisonne de bout en bout, la couche 2 raisonne lien par lien.

Dans le modèle TCP/IP, cette couche et la couche physique sont fondues en une seule couche d'accès réseau. Le découpage OSI reste plus pratique quand il faut isoler une panne, parce qu'un câble abîmé et une table MAC saturée ne se diagnostiquent pas avec les mêmes outils.

Anatomie d’une trame Ethernet II

Lancez un tcpdump -e -i eth0 : chaque ligne commence désormais par deux adresses MAC. Voici ce que la carte réseau a réellement posé sur le fil.

Total : 64 octets au minimum, 1518 au maximum. Avec un tag VLAN 802.1Q, 1522.

Les 46 octets minimum de charge utile ne sortent pas de nulle part. À l'époque du câble coaxial partagé et de CSMA/CD, une trame devait durer assez longtemps pour qu'une collision survenue à l'autre extrémité du segment revienne avant la fin de l'émission, d'où ce plancher de 64 octets. Un paquet IP plus court est donc complété par du bourrage. L'émetteur observe aussi un silence de 96 temps-bit, soit 12 octets, entre deux trames : l'interframe gap.

Le champ EtherType est le point de jonction avec la couche du dessus. En dessous de 1500 il indique une longueur (format IEEE 802.3), à partir de 1536 (0x0600) il indique un protocole encapsulé :

IPv4 sur Ethernet est spécifié par la RFC 894, IPv6 par la RFC 2464. Ce sont deux documents courts, très lisibles, qui décrivent exactement ce mapping.

  • 0x0800 : IPv4
  • 0x0806 : ARP (RFC 826)
  • 0x86DD : IPv6
  • 0x8100 : trame taguée VLAN 802.1Q
  • 0x8864 : session PPPoE (RFC 2516)
  • 0x88CC : LLDP, découverte de voisins
ChampTailleRôle
Préambule + SFD7 + 1 octetsSynchronisation d'horloge, non comptés dans la taille de la trame
MAC destination6 octetsCarte réseau visée sur ce lien, ou adresse de diffusion ff:ff:ff:ff:ff:ff
MAC source6 octetsCarte réseau émettrice
EtherType2 octetsProtocole transporté, 0x0800 pour IPv4
Données46 à 1500 octetsLe paquet de couche 3, complété par du bourrage en dessous de 46
FCS4 octetsCRC-32 calculé sur les champs précédents, préambule exclu

MAC et LLC : deux sous-couches, deux métiers

IEEE découpe la couche 2 en deux étages. En bas, la sous-couche MAC (IEEE 802.3 pour Ethernet, 802.11 pour le Wi-Fi) gère l'adressage physique et l'accès au support : qui a le droit d'émettre, et à quel moment. Au-dessus, la sous-couche LLC (IEEE 802.2) sert à multiplexer plusieurs protocoles réseau sur le même lien et à offrir un service fiable optionnel.

En pratique, Ethernet II court-circuite LLC grâce à l'EtherType. Vous croiserez encore 802.2 dans les BPDU du Spanning Tree et dans quelques protocoles propriétaires, rarement ailleurs.

L'adresse MAC fait 48 bits. Les 24 premiers forment l'OUI attribué au fabricant, ce qui permet de reconnaître un constructeur d'un coup d'œil. Deux bits du premier octet portent une information souvent ignorée : le bit de poids faible distingue une adresse individuelle d'une adresse de groupe, et le bit suivant indique une adresse administrée localement. C'est ce second bit que positionnent les smartphones quand ils tirent une MAC aléatoire pour se connecter à un réseau Wi-Fi public.

Sur la fiabilité, il faut être précis : Ethernet détecte les erreurs, il ne les corrige pas. Une trame dont le CRC-32 ne tombe pas juste est jetée en silence, sans notification ni réémission. C'est TCP, trois couches plus haut, qui finira par s'en rendre compte.

Le Wi-Fi fait l'inverse. En 802.11, chaque trame unicast est acquittée par un ACK et retransmise si l'acquittement manque, parce que le taux de perte radio rendrait un lien non fiabilisé inutilisable. Ses trames comportent aussi jusqu'à quatre champs d'adresse, contre deux en Ethernet, pour gérer le relais entre le poste, le point d'accès et le réseau filaire.

Les confusions à lever

La plus fréquente : confondre le niveau de l'équipement et le niveau de l'adresse qu'il regarde.

Le cas d'ARP mérite une réponse honnête. Ses trames circulent directement sur Ethernet avec leur propre EtherType 0x0806, sans passer par IP, ce qui plaide pour la couche 2. Mais son objet est de résoudre une adresse de couche 3. Selon les manuels vous le verrez classé en 2, en 3, ou à cheval. La RFC 826 ne tranche pas la question et n'en a pas besoin : ce qui compte est de savoir que sans ARP, aucune trame ne part vers la bonne carte réseau.

Autre piège de vocabulaire : le commutateur de niveau 3. Il commute toujours en couche 2 sur ses ports d'accès, mais sait en plus router entre VLAN. Le VLAN lui-même est une pure construction de couche 2 : le tag 802.1Q ajoute 4 octets à la trame, dont 12 bits d'identifiant. Les valeurs 0 et 4095 étant réservées, il reste 4094 VLAN utilisables sur un même réseau commuté.

Ethernet n'a pas le monopole de la couche 2. PPP (RFC 1661) l'occupe sur les liaisons série et dans PPPoE, HDLC et Frame Relay l'ont longtemps occupée sur les liaisons opérateur, et 802.11 la remplit sur la radio.

ÉquipementCoucheDécision prise
Répéteur, concentrateur (hub)1Recopie les bits sur tous les autres ports, sans rien lire
Commutateur (switch)2Lit la MAC de destination, consulte sa table et n'envoie que sur le bon port
Point d'accès Wi-Fi2Fait le pont entre les trames 802.11 et les trames 802.3
Routeur, box internet3Lit l'adresse IP de destination et consulte sa table de routage

Trois pannes de couche 2 et comment les voir

Négociation de duplex ratée. Le serveur affiche Duplex: Half sous ethtool eth0 alors que le port du commutateur est en Full. Le lien monte, le ping passe, tout semble normal. Puis le débit s'effondre dès qu'il y a du trafic soutenu, parce qu'un côté émet quand l'autre émet déjà. Sur Linux, ip -s link show eth0 fait grimper les compteurs errors et collisions, et ethtool -S eth0 révèle un late_collisions qui n'a aucune raison d'exister sur un réseau moderne.

Un lien qui marche à vide et s'écroule en charge, c'est presque toujours ça.

MTU mal ajustée. La MTU Ethernet standard est de 1500 octets, mais une session PPPoE ajoute 8 octets d'en-tête et ramène la MTU utile à 1492 (RFC 2516), ce qui reste courant sur les accès xDSL. Un tunnel VPN retire encore quelques dizaines d'octets. Le symptôme est déroutant : SSH répond, les petites pages s'affichent, et les gros transferts se figent parce que les paquets marqués Don't Fragment sont jetés sans que l'ICMP de retour n'arrive. Testez la valeur réelle avec ping -M do -s 1464 8.8.8.8, où 1464 + 28 octets d'en-têtes donne exactement 1492.

Boucle de commutation. Deux câbles entre deux commutateurs, aucun Spanning Tree actif, et le réseau tombe en quelques secondes. L'en-tête Ethernet ne contient aucun champ TTL : une trame de diffusion qui entre dans une boucle y tourne indéfiniment et se duplique à chaque passage. Le processeur des commutateurs sature, les tables MAC deviennent instables, plus rien ne passe. STP (IEEE 802.1D) puis RSTP (802.1w) existent pour bloquer logiquement l'un des deux liens et le rouvrir si l'autre tombe.

Quelques commandes qui répondent vite sur un poste Linux :

  • ip link show : état des interfaces, MAC, MTU configurée
  • ip -s link show eth0 : compteurs d'erreurs, de trames jetées et de collisions
  • ethtool eth0 : vitesse négociée, duplex, type de support
  • ip neigh show : cache ARP et NDP, correspondance IP vers MAC
  • bridge fdb show : table d'apprentissage MAC d'un pont Linux
  • tcpdump -e -i eth0 arp : voir les résolutions d'adresses en direct, avec les MAC affichées

La couche liaison de données est la couche 2 du modèle OSI : elle assemble les bits venus de la couche physique en trames et les livre à la bonne carte réseau du même lien, en s'appuyant sur les adresses MAC. Sa portée s'arrête au premier routeur : au-delà, la trame est détruite et une nouvelle est fabriquée avec d'autres adresses MAC.

Questions fréquentes

La couche 2, ce sont bien les adresses MAC ?

Oui, mais l'adressage n'est qu'une de ses fonctions. La couche 2 délimite aussi les trames dans le flot de bits, contrôle leur intégrité par un CRC-32, arbitre l'accès au support quand il est partagé, et gère le contrôle de flux. L'adresse MAC est la partie visible du travail.

Un commutateur travaille-t-il en couche 2 ou en couche 3 ?

En couche 2 par défaut. Il apprend quelle adresse MAC se trouve derrière quel port en observant les trames qui entrent, stocke cette correspondance dans une table, et n'envoie ensuite la trame que sur le port concerné. Quand la destination lui est inconnue, il diffuse sur tous les autres ports. Un modèle dit de niveau 3 sait en plus router entre VLAN, ce qui est une fonction de couche 3 greffée sur un matériel de couche 2.

Pourquoi ma MTU est-elle à 1492 et pas à 1500 ?

Parce que votre accès passe par PPPoE, dont l'encapsulation consomme 8 octets sur les 1500 disponibles (RFC 2516). C'est le réglage historique des accès ADSL. Sur une fibre en DHCP direct, vous retrouvez généralement 1500. Les réseaux de centre de données utilisent parfois des jumbo frames de 9000 octets, qui ne sont normalisés par aucune norme IEEE mais largement supportés.

Le Wi-Fi utilise-t-il la même couche 2 qu’Ethernet ?

Non. 802.11 et 802.3 partagent le format d'adresse MAC sur 48 bits, ce qui permet au point d'accès de faire le pont, mais tout le reste diffère : le Wi-Fi utilise CSMA/CA au lieu de CSMA/CD, acquitte chaque trame unicast, gère jusqu'à quatre adresses par trame et ajoute des trames de gestion (balises, association, authentification) qui n'ont pas d'équivalent filaire.

Que devient une trame corrompue ?

Elle est détruite. La carte réseau recalcule le CRC-32 à la réception, le compare au FCS transporté dans la trame, et jette tout écart sans prévenir personne. Aucune retransmission n'a lieu au niveau Ethernet. Le compteur rx_crc_errors s'incrémente, ce qui en fait un bon indicateur de câble abîmé, de connecteur mal serti ou de duplex mal négocié.

Testez vos connaissances

Quiz rapide Question 1 sur 3

Quelle est la taille maximale de la charge utile d'une trame Ethernet II standard ?

À lire aussi

adresse mac · commutateur reseau · arp · adresse broadcast

Newsletter

Recevez nos guides IP & réseau

Nouveaux outils, définitions et astuces sécurité, directement par email. Pas de spam, désinscription en un clic.