Couche #2 : Liaison de données
La couche de liaison de données est la couche responsable de l’acheminement de données entre deux hôtes par leur adresse MAC (medium access control). Cette adresse est unique à chaque interface permettant la mise en réseau d’un appareil (carte Ethernet, WiFi, Bluetooth, etc.). Un hôte possédant plusieurs interfaces aura donc une adresse unique pour chaque interface. Cette adresse peut être reconfigurée au besoin mais l’interface conservera toujours une adresse de base unique.
Les unités de transmission à cette couche du modèle OSI se nomment des trames Ethernet et sont destinées à une adresse MAC, que ce soit celle de la destination finale du trafic ou celle du prochain saut à la couche réseau (passerelle). L’étendue dans laquelle il est possible d’acheminer des trames se nomme un domaine de diffusion. Pour acheminer du trafic à l’extérieur de celui-ci, il faut passer à la couche réseau du modèle OSI. Les appareils responsables de l’acheminement des trames au sein d’un domaine de diffusion sont généralement des concentrateurs (hubs), commutateurs (switch) ou des ponts (bridges). Ces appareils utilisent une table de commutation ou “forwarding information database” (FIB/FDB/MAC) qui répertorie quelle adresse MAC se situe derrière quelle interface réseau.
La capture d’écran suivante est une table de commutation sur un commutateur Cisco. On y remarque que deux adresses se situent derrière le port 2 car un autre commutateur y est branché derrière lequel se situent deux ordinateurs.
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0050.7966.6800 DYNAMIC Et0/0
1 0050.7966.6801 DYNAMIC Et0/1
1 0050.7966.6802 DYNAMIC Et0/2
La structure d’une trame ethernet est la suivante.
|
8 octets |
6 octets |
6 octets |
2 octets |
MTU |
4 octets |
|
Préambule |
MAC Destination |
MAC source |
Type |
Données |
FCS |
Le préambule annonce le début d’une trame ethernet. Les adresses de destination et source seront utilisées pour l’acheminement des données. Le type de trame indiquera la norme utilisée pour la trame (Ethernet II, 802.3, 802.2, etc.). Les données seront généralement un paquet IP mais d’autres protocoles fonctionnant seulement à la couche 2 existent. Sa taille est variable en fonction de la taille maximale d’unité de transmission (MTU). La dernière section d’une trame contient la séquence de variation de trame ou “frame check sequence” (FCS). Il s’agit du résultat d’un calcul permettant la détection d’erreur dans la transmission de la donnée.
Pour effectuer l’association entre les adresses MAC et les adresses IP (entre la couche 2 et la couche 3), c’est le protocole ARP qui sera utilisé. Tous les appareils connectés à un réseau IP possèdent une telle table. La capture d’écran suivante représente une table ARP sur un routeur MikroTik.
[admin@MikroTik] > /ip arp print
Flags: D - DYNAMIC; C - COMPLETE
Columns: ADDRESS, MAC-ADDRESS, INTERFACE, STATUS
# ADDRESS MAC-ADDRESS INTERFACE STATUS
0 DC 192.168.4.2 0C:45:07:34:00:03 ether4 reachable
1 DC 192.168.2.2 0C:C2:BC:B8:00:01 ether2 reachable
2 DC 192.168.3.2 0C:F1:BF:A0:00:02 ether3 reachable
Ce protocole opère à la couche 2 et permet donc seulement de remplir la table avec les adresses se situant au sein du même domaine de diffusion.
On peut penser ici à l’équivalent de remettre directement une lettre à un voisin ou à déposer une lettre dans une boîte aux lettres.