Ethernet

De Justine's wiki
Aller à la navigation Aller à la recherche

Ethernet

Ethernet est un protocole de réseau local à commutation de paquets. C'est une norme internationale : ISO/IEC 8802-3. C'est le protocole typique de la couche 2 (avec parfois SLIP, ATM ou même Token Ring), même si ses implications s'étendent jusqu'à la couche 1. Il est à noter que si l'on n'utilise aujourd'hui quasiment plus que des commutateurs et du RJ45, ethernet date de l'époque du coaxial et n'as pas beaucoup changé depuis : il gère toujours le CSMA-CD, par exemple.
 

Notion de pair/trame Ethernet, adresse MAC

Au niveau d'Ethernet, un point d'une liaison est nommé pair Ethernet : un pair A dialogue avec un pair B, en lui envoyant une trame Ethernet.

Notations du matériel

Il offre différentes options pour la couche physique, lesquelles sont généralement notées sous ce format:

Débit en Gbits/s - Bande de base (base) ou large bande (gbase) - Longueur max en multiple de 100m. Par exemple : 10 base 2 (Ce qui correspond à un vieux coaxial cheap-net). Ainsi, du RJ45 en 10 mégas est nommé : 10 base T, ce qui correspond à 10 mégas, en bande base, et la distance est remplacée par un T pour Twisted Pair : le câble torsadé. Le gigabit se ethernet en RJ45 sera noté 100 base TX avec ses paires de cuivre 5e et 6. Enfin, du 40 Gigas sur de la fibre multimodes se notera : 40-GBase SR4.

Normes

La différence entre Ethernet et 802.3 est tellement subtile qu'elle ne devrait pas exister, même si wikipédia précise :

  • Ethernet 2 (ou RFC 894) : les 13e et 14e octets d'une trame Ethernet contiennent le type (EtherType) de protocole de la couche supérieure (ARP, IPv4, IPv6…) ; comme il n'y a pas d'indication sur la longueur des données, il n'y a pas de couche LLC (Logical Link Control) pour supprimer un bourrage potentiel ⇒ ce sera donc à la couche supérieure (Réseau) de supprimer le bourrage s'il y en a ;
  • 802.3 : les 13e et 14e octets d'une trame 802.3 contiennent la longueur de la partie des données qui sera gérée par la couche LLC qui, située entre la couche MAC et la couche réseau, supprimera le bourrage avant de l'envoyer à la couche réseau.

Sachant que le bourrage correspond à des bits rajoutés en fin de trame dans le but d'avoir uen taille de trame qui correspond à ce qu'attendent les algorithmes.

802.3 à beaucoup de sous normes, qui gèrent des choses telles que la fibre optique, le 100G, le 1000-BASE-T, etc... La liste complète est disponible ici: https://fr.wikipedia.org/wiki/IEEE_802.3

Trame Ethernet

On a quatre formats de trames : Ethernet 1 qui n'est plus utilisée, Ethernet 2 (ou trame DIX), IEE 802.x LLC, IEE 802.xLLC/SNAP. Elles peuvent cohabiter sur un même média. Elles ont toutes des formats et des MTU (Maximum Transfer Unit) différentes. La principal différence est l'utilisation du champ de deux octets situé après les adresses MAC, comme expliqué juste au dessus : Ethernet indique le type de données et 802.3 indique la longueur des données.

Frameether.png

NB : une telle trame est encadrée par des indicateurs de début et fin de trame, non représentés ici; les champs préambule et délimiteur de début de trame (situés au début donc) font respectivement 7 et 1 octet.
NB2: La taille minimum d'une trame est de 64 octets, et la taille maximum est de 1518 octets; toute trame trop petite ou trop grosse sera rejetée.

Champs Adresses MAC

Les adresses utilisées sont les adresses physiques MAC (Media Access Control). Toute carte Ethernet vendue dispose d'une adresse MAC de 6 octets soit 48 bits, représentée en hexa, constituée comme suit:

  • 24 bits pour identifier le constructeur dont : 1 bit réservé I ou G (Individuel/Groupe) et 1 bit réservé U ou L (Universel/Local)
  • 24 bits pour la carte réseau.

Au total cela donne :

  • Côté constructeur : 24 - 2 bits = 222 constructeurs potentiels, soit 4 194 303
  • Côté Carte : 224-1 adresses par constructeur, soit 16 777 216 adresses MAC par constructeur.

On constate donc que les constructeurs doivent avoir plusieurs Adresses MAC constructeurs (en anglais : OUI pour Organizationally Unique Identifier), si ils vendent beaucoup. Les OUI fournies par l'IEEE sont sur 24 bits, et non 22 : les bits UL et IG sont mis à zéro. Cet OUI a des spécificités:

MACcomp.png

On voit les deux bits réservés: le 8e (b0) correspond à I/G ("Le message envoyé est-il unicast ou broad/multicast?"). Le 7e (U/G) indique si cette adresse MAC est globale (OUI fourni par IEEE) ou locale (adresse MAC configurée par l'Admin, comme en virtualisation par exemple : cette adresse ne peut être que sur du Local).

Si les octets transmis le sont bel et bien de gauche à droite, pour chacun d'entre eux, le bit le moins significatif est transmis en premier : pour chaque octet de l'adresse MAC, le bit le plus "faible" (celui tout à droite, qui correspond à 20sur l'octet) est envoyé en premier, puis celui correspondant à 21, et ainsi de droite à gauche. Sur ce schéma, on transmettra b0, puis b1, puis b2...

Champ Ethertype

Ce champ représente le type de trame et vers quel protocole de plus haut niveau est envoyée la trame reçue. Il est représenté sur deux octets, en hexa.

Le champ Type de protocole (ou EtherType) des trames Ethernet II peut prendre entres autres les valeurs suivantes :

Champ CRC (Cyclic Redundancy Check)

En français : Contrôle de Redondance Cyclique. Son but est de détecter les erreurs de transmission, il est basé sur des propriétés mathématiques. Ses principes sont:

  • Au départ, j'ai : une @MAC dest, une @MAC source, un ethertype, et mes données (payload)
  • J'applique une fonction sur tout ça qui me donne une valeur v1, qui correspond est stockée dans CRC checksum.
  • A l'arrivée, je recoit la trame et je lit v1
  • J'applique la même fonction sur @MAC dest/source et payload, qui me donne une valeur v2
  • Si v1 == v2, la transmission est correcte.

En résumé, on vérifie l'intégrité d'une trame reçue en comparant deux checksum.

Broadcast Ethernet

Broadcast (en français télédiffusion ou diffusion) signifie envoyer un message à tout le monde dans le domaine de diffusion (Toutes les cartes connectées à un même lien réseau comme un commutateur ou à toutes les adresses IPv4 de mon réseau). Les routeurs ne retransmettent pas les broadcast.

En ethernet, le broadcast se fait en utilisant l'adresse MAC de destination ff:ff:ff:ff:ff:ff. Toute carte recevant ce message le récupère; cela est utilisé notamment avec ARP.