Trames Ethernet : tout comprendre sur leur structure, leur format et leur fonctionnement

trames ethernet

Chaque fois que vous envoyez un fichier sur votre réseau local, des milliers de petits paquets de données transitent en quelques millisecondes. Ces paquets ont un nom précis : des trames Ethernet. Et pourtant, leur structure interne reste un angle mort pour beaucoup de techniciens en herbe – alors qu’elle conditionne tout : la détection d’erreurs, l’adressage, la compatibilité entre équipements.

C’est quoi une trame Ethernet?

Une trame Ethernet est l’unité fondamentale de transmission de données sur un réseau local (LAN). En langage réseau, on parle de PDU – Protocol Data Unit. Concrètement, c’est le conteneur structuré dans lequel chaque couche du modèle OSI emballe les données avant de les envoyer sur le câble.

Ce format standardisé garantit que deux équipements de fabricants différents – un switch Cisco et une carte réseau Intel, par exemple – peuvent se comprendre sans configuration particulière. C’est l’interopérabilité par le standard. Depuis 1997, l’IEEE a unifié les deux grands formats de trames historiques sous une même normalisation, ce qui a mis fin à une ambiguïté technique qui durait depuis les années 1980.

L’Ethernet opère à la couche 2 du modèle OSI, la couche liaison de données. Il ne sait pas ce que contient la trame (du HTTP, du DNS, peu importe) – il sait juste comment l’acheminer de machine à machine sur un segment réseau.

Structure et format d’une trame Ethernet

Une trame Ethernet suit toujours le même gabarit. Voici ses champs dans l’ordre d’apparition, avec leur taille et leur rôle :

Champ Taille Rôle
Préambule 7 octets Séquence alternée de 1 et 0 pour synchroniser l’horloge du récepteur
SFD (Start Frame Delimiter) 1 octet Annonce le début réel de la trame – valeur fixe : 10101011
Adresse MAC destination 6 octets Identifiant matériel du destinataire
Adresse MAC source 6 octets Identifiant matériel de l’émetteur
EtherType / Longueur 2 octets Protocole de couche 3 encapsulé (IPv4, ARP, IPv6…)
Payload (données) 46 à 1 500 octets Contenu utile + padding si nécessaire
FCS (Frame Check Sequence) 4 octets CRC 32 bits pour la détection d’erreurs

Le préambule ne fait techniquement pas partie de la trame à proprement parler – il prépare la réception. Le SFD, lui, est le signal de départ : dès que le récepteur lit 10101011, il sait que les octets suivants sont les adresses MAC. Le champ EtherType est particulièrement utile : la valeur 0x0800 signale du trafic IPv4, 0x0806 de l’ARP, et 0x86DD de l’IPv6.

Quelle est la taille minimale et maximale d’une trame Ethernet?

trame ethernet définition

Les normes Ethernet II et IEEE 802.3 fixent des limites très précises : 64 octets minimum, 1 518 octets maximum. Ces valeurs ne sont pas arbitraires – elles découlent de contraintes physiques et protocolaires.

Le seuil de 64 octets est directement lié au mécanisme CSMA/CD (Carrier Sense Multiple Access with Collision Detection). Sur un segment Ethernet half-duplex, une station doit pouvoir détecter une collision pendant toute la durée de l’émission. Si la trame est trop courte, elle finit d’être envoyée avant que le signal de collision ne revienne à l’émetteur. Le minimum de 64 octets garantit que la trame reste « en vol » suffisamment longtemps. Avec un câble de 100 mètres, cela correspond à un temps de propagation aller-retour calculable précisément.

Le plafond de 1 518 octets se décompose ainsi : 1 500 octets de payload (le MTU, Maximum Transmission Unit), plus 14 octets d’en-têtes (adresses MAC + EtherType), plus 4 octets de FCS. Si le payload est inférieur à 46 octets, la trame est complétée par du remplissage (padding) pour atteindre le minimum requis.

Deux anomalies connues violent ces limites. Une trame inférieure à 64 octets s’appelle un runt – symptôme classique d’une collision ou d’un problème matériel. Une trame supérieure à 1 518 octets est un giant. Dans les deux cas, le périphérique récepteur abandonne la trame sans traitement.

Quelle est la différence entre Ethernet II et une trame 802.3?

Ethernet II (aussi appelé DIX 2.0) a été standardisé en 1982 par DEC, Intel et Xerox – d’où l’acronyme DIX. L’IEEE a ensuite publié sa propre spécification 802.3. Ces deux formats se ressemblent beaucoup mais diffèrent sur un point précis : le champ de 2 octets situé après les adresses MAC.

  • Dans Ethernet II, ce champ contient un EtherType – une valeur supérieure ou égale à 0x0600 qui identifie le protocole encapsulé (IPv4, ARP, IPv6…).
  • Dans IEEE 802.3, ce champ contient la longueur du payload – une valeur inférieure ou égale à 1 500 (0x05DC en hexadécimal).

En pratique, cette distinction permet de déterminer automatiquement quel format est utilisé : si la valeur est supérieure à 1 500, c’est un EtherType (Ethernet II). Si elle est inférieure ou égale à 1 500, c’est une longueur (802.3). La convergence opérée par l’IEEE en 1997 a rendu les deux formats coexistants sur les mêmes infrastructures, sans incompatibilité.

Aujourd’hui, Ethernet II domine largement les réseaux IP modernes. La trame 802.3 « pure » avec champ longueur se retrouve surtout dans des protocoles anciens comme NetWare IPX ou certaines implémentations STP.

La trame IEEE 802.1Q introduit une flexibilité réseau incontournable

La norme IEEE 802.1Q ajoute un tag VLAN de 4 octets dans la trame Ethernet, entre le champ adresse MAC source et le champ EtherType. Ce tag se compose de deux parties : un TPID (Tag Protocol Identifier) codé sur 2 octets avec la valeur fixe 0x8100, et un TCI (Tag Control Information) sur 2 autres octets qui contient la priorité de trafic (3 bits), un bit DEI, et l’identifiant VLAN sur 12 bits – ce qui permet de définir jusqu’à 4 096 VLANs distincts.

L’ajout de ces 4 octets porte la taille maximale de la trame à 1 522 octets au lieu de 1 518. Les switchs compatibles 802.1Q doivent être capables de gérer ces trames « taguées » sur leurs ports trunk sans les rejeter comme des giants.

Dans les architectures réseau modernes – datacenter, campus d’entreprise, infrastructure virtualisée – le trunking 802.1Q est omniprésent. Un seul lien physique entre deux switchs transporte simultanément du trafic appartenant à des dizaines de VLANs différents, chaque trame étant estampillée de son identifiant. Pour quiconque organise une baie de brassage avec plusieurs segments logiques, comprendre ce mécanisme d’étiquetage est fondamental.

Comment puis-je savoir si une trame Ethernet est valide?

La validation d’une trame repose principalement sur le FCS – Frame Check Sequence. Ce champ de 4 octets contient un CRC 32 bits calculé par l’émetteur sur l’ensemble des champs de la trame (hors préambule et SFD). Le récepteur recalcule ce CRC à la réception et compare. Si les valeurs divergent, la trame est corrompue et silencieusement abandonnée.

Trois conditions rendent une trame invalide :

  • Taille inférieure à 64 octets : runt, souvent causé par une collision CSMA/CD
  • Taille supérieure à 1 518 octets (ou 1 522 avec tag 802.1Q) : giant, souvent lié à un bug de pilote ou un équipement défaillant
  • Erreur de CRC : trame corrompue en transit, câble défectueux, interférence électromagnétique

Entre deux trames successives, la norme impose un Inter Frame Gap de 9,6 microsecondes à 10 Mbit/s. Ce délai permet aux équipements de « souffler » entre deux réceptions et évite les chevauchements de trames. Si vous observez des erreurs CRC répétées sur un lien, commencer par vérifier la qualité du câblage physique – un test de connectivité sur la prise RJ45 peut rapidement orienter le diagnostic.

Comment analyser une trame Ethernet avec Wireshark?

trame ethernet exemple

Wireshark est l’outil de référence pour capturer et disséquer des trames en temps réel. Gratuit et disponible sur Windows, macOS et Linux, il permet de voir exactement ce qui circule sur une interface réseau – octet par octet si nécessaire.

Après avoir lancé une capture sur l’interface souhaitée, chaque ligne dans la fenêtre principale correspond à une trame. En cliquant dessus, le panneau du bas décompose la trame en couches. La section « Ethernet II » révèle les adresses MAC source et destination, l’EtherType, et la longueur totale. Si la trame porte un tag 802.1Q, une ligne « 802.1Q Virtual LAN » apparaît avec l’identifiant VLAN et la priorité.

Pour filtrer uniquement les trames ARP, tapez arp dans la barre de filtre. Pour isoler le trafic d’une adresse MAC précise : eth.addr == aa:bb:cc:dd:ee:ff. Le champ FCS n’est généralement pas affiché par défaut car la plupart des cartes réseau le calculent et le vérifient en matériel avant de remonter la trame au système d’exploitation – mais vous pouvez l’activer dans les préférences de décodage Ethernet.

Les adresses MAC au cœur de l’adressage Ethernet

Chaque trame Ethernet transporte deux adresses MAC de 6 octets chacune. Les 3 premiers octets forment l’OUI (Organizationally Unique Identifier), attribué par l’IEEE au fabricant de la carte réseau. Les 3 octets suivants sont un identifiant unique assigné par le fabricant. Résultat : chaque carte réseau produite dans le monde devrait avoir une adresse MAC unique – en théorie.

Trois types d’adresses coexistent dans le trafic Ethernet :

  • Unicast : adresse d’une seule machine, bit de poids faible du premier octet à 0
  • Multicast : groupe de machines, bit de poids faible du premier octet à 1 (ex : 01:00:5E:xx:xx:xx pour le multicast IPv4)
  • Broadcast : toutes les machines du segment, adresse FF:FF:FF:FF:FF:FF

Un switch utilise une table CAM (Content Addressable Memory) pour associer chaque adresse MAC au port physique correspondant. C’est ce mécanisme qui rend le switch bien plus efficace qu’un hub : il envoie la trame uniquement vers le bon port, pas vers tous.

Exemple concret de trame Ethernet décryptée octet par octet

Voici une trame Ethernet réelle capturée sur un réseau local, présentée en hexadécimal par groupes de champs :

Champ Valeur hex Signification
Préambule + SFD AA AA AA AA AA AA AA AB 7 octets de synchro + délimiteur 0xAB
MAC destination FF FF FF FF FF FF Broadcast – envoyé à toutes les machines
MAC source 00 1A 2B 3C 4D 5E OUI 00:1A:2B = constructeur identifiable via l’IEEE
EtherType 08 06 0x0806 = protocole ARP
Payload 00 01 08 00 06 04 00 01 … Requête ARP « qui a l’IP 192.168.1.1 ? »
FCS 3D 4E 5F 6A CRC 32 bits calculé sur l’ensemble de la trame

Cette trame ARP en broadcast illustre parfaitement le fonctionnement quotidien d’un réseau : avant d’envoyer un paquet IP, chaque machine doit résoudre l’adresse MAC correspondante. La trame part vers FF:FF:FF:FF:FF:FF, tous les équipements du segment la lisent, et seul celui qui possède l’IP demandée répond en unicast. Chaque seconde, des centaines de ces échanges se produisent silencieusement sur votre LAN – la trame Ethernet en est le véhicule.

Maîtriser cette structure, c’est avoir la carte complète du terrain : vous ne regardez plus un réseau comme une boîte noire, vous voyez exactement ce qui circule, pourquoi, et comment le déboguer quand quelque chose cloche.