Ethernet est un protocole de réseau local à commutation de paquets
(en savoir plus).
C'est une norme internationale : ISO/IEC 8802-3.
Il a été développé par Xerox Corporation au milieu des années 70.
Son débit élevé (jusqu'à 10 Gbits/s de nos jours), son faible coût, sa simplicité de mise en oeuvre,
sa stabilité, l'ajout et le retrait de machines même à chaud
lui ont permis de s'imposer comme la référence.
Il existe de nombreux types de trames Ethernet. Nous développerons uniquement
la trame Ethernet II qui est la plus couramment utilisée.
Une trame Ethernet II est constituée des éléments suivants :
Préambule
Afin de permettre l'annonce de la trame et la synchronisation des horloges de transmission, on y ajoutera un préambule composé de :
- 7 octets dont la valeur est
10101010
(alternance de 1 et de 0). Les valeurs hexadécimales sont 0xAA.
- 1 octet dont la valeur est
10101011
. On l'appelle le SFD : "Starting Frame Delimiter". Sa valeur hexadécimale
est 0xAB. Il doit être reçu en entier pour valider le début de la trame.
Le préambule est donc : 10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011
En-Tête de liaison
L'en-tête de liaison ou Mac Header est une suite de 14 octets qui se décomposent comme suit :
- 6 octets pour l'adresse MAC du destinataire
- 6 octets pour l'adresse MAC de l'émetteur
- 2 octets pour l'EtherType. Cela indique quel protocole est concerné par le message. La carte réalise un démultiplexage en fournissant les
données au protocole concerné.
Voici quelques types courants (en hexadécimal) définis par la RFC 1700 :
- 0x0800 pour IPv4
- 0x0806 pour ARP
- 0x809B pour AppleTalk
- 0x86DD pour IPv6
Données
Ce sont les données véhiculées par la trame, il s'agit d'une encapsulation du datagramme IP issu de la couche précédente : la couche Internet
du modèle TCP/IP ou couche Réseau du modèle OSI.
Sur la station destinataire de la trame, ces octets seront communiqués à l’entité (protocole) indiquée par le champ EtherType, vu précédemment.
Notons que la taille minimale des données est de 46 octets. Des octets à 0, dits de “bourrage”, sont utilisés pour compléter des données dont la taille est
inférieure à 46 octets.
CRC CheckSum
Le CRC (Cyclic Redundancy Code) est le champ de contrôle de la redondance cyclique, il est composé de 4 octets. Il permet de s’assurer que la trame a été correctement transmise et
que les données peuvent donc être délivrées au protocole destinataire.