Le langage de couche 2
Nous
allons devoir définir un langage pour communiquer entre machines. Ce
langage permettra de définir le format des messages que les ordinateurs
vont s'échanger. Et le gagnant est... Ethernet ! En réseau, on traduit langage par protocole, pour faire plus pro.
Ethernet n'est pas le seul protocole de couche 2, mais il est de très loin le plus utilisé aujourd'hui.
un protocole ?
L'objectif
des réseaux est de pouvoir s'échanger des informations. Étant donné que
nous discutons entre des machines très différentes, qui elles-mêmes ont
des systèmes d'exploitation très différents (Windows, Mac OS, Linux,
etc.), nous devons créer un langage de communication commun pour se
comprendre. C'est le protocole.
dans notre message, nous allons au moins devoir envoyer :
- l'adresse de l'émetteur ;
- l'adresse du destinataire ;
- le message proprement dit.
Ainsi, nous pouvons très bien dire que les 48 premiers caractères que
nous allons recevoir représentent l'adresse MAC de l'émetteur (puisque
l'adresse MAC fait 48 bits) les 48 suivants l'adresse du récepteur, puis
enfin le message.
Plus exactement, nous allons appeler ce message, une trame.(La trame est le message envoyé sur le réseau, en couche 2.)
Format d'une trame Ethernet
il existe 3 types (ethernet II - version IEEE 802.3 et une pour définir les vlans)
en général l'écriture d'une trame est
@mac destination (6 octets) | @mac source (6 octets) | type de protocole | données | CFC
taille min d'une donnée est 46 octets
taille max d'une donnée est 1500 octets
type de protocole : 2 à 3 octets
CFC : 4 octets
la séquence de contrôle de trame (CRC)
En gros cela veut dire que c'est un nombre qui sera différent pour chaque message.
Imaginons qu'une machine A envoie un message à une machine B.
Imaginons qu'une machine A envoie un message à une machine B.
- Lors de l'envoi, A calcule le CRC (une valeur X) et le met à la fin de la trame.
- B reçoit le message et fait le même calcul que A avec la trame reçue (une valeur Y).
- B compare la valeur qu'elle a calculée (Y) avec la valeur que A avait calculée et mise à la fin de la trame (X).
Si elles sont égales, bingo ! La trame envoyée par A est bien identique à la trame reçue par B.
Si
elles sont différentes, gloups ! Il y a eu une erreur lors de la
transmission. La trame reçue par B n'est apparemment pas la même que
celle envoyée par A. Il y a eu un problème quelque part, mais nous
l'avons détecté !
un échange entre deux machine selon le modèle OSI
un échange de données entre deux machines A et B.
- Une application sur la machine A veut envoyer des données à une autre application sur une machine B.
- Le message parcourt les couches du modèle OSI de haut en bas.
- La couche 3 indique à la couche 2 quel protocole a été utilisé.
- La couche 2 peut alors former la trame et l'envoyer sur le réseau.
- La machine B reçoit la trame et regarde l'adresse MAC de destination.
- C'est elle ! elle lit donc la suite de la trame.
- Grâce à l'information sur le protocole de couche 3 utilisé, elle peut envoyer les données correctement à la couche 3.
- Le message remonte les couches du modèle OSI et arrive à l'application sur la machine B.
Le Fonctionnement du switch
Pour envoyer la trame vers la bonne machine, le switch se sert de l'adresse MAC destination contenue dans l'en-tête de la trame.
Il contient en fait une table qui fait l'association entre un port du switch (une prise RJ45 femelle) et une adresse MAC. Cette table est appelée la table CAM.
Il contient en fait une table qui fait l'association entre un port du switch (une prise RJ45 femelle) et une adresse MAC. Cette table est appelée la table CAM.
Prenons un exemple, avec le schéma de la figure suivante.
La table CAM de notre switch sera la suivante :
Port
|
@MAC
|
1
|
@MAC A
|
2
|
@MAC B
|
Prenons l'exemple précédent,
imaginons que la table CAM du switch est vide et que l'on vient de brancher les
machines
Port |
@MAC
|
Table CAM vide
Imaginons maintenant que la machine A envoie une trame à la machine B.
la trame envoyée :
@mac B | @mac A| protocole | donnée |CFC
- La trame arrive au switch.
- Il lit l'adresse MAC source et voit l'adresse MAC de la machine A.
- Vu que la trame vient du port 1, il met en relation le port 1 et l'adresse MAC de la machine A dans sa table CAM.
- Il met à jour sa table CAM.
Port
|
@MAC
|
1
|
@MAC A
|
Par contre, l'adresse MAC destination n'est pas présente dans sa table
CAM, il ne sait donc pas où envoyer la trame. Pour être sûr que la
machine destination va recevoir la trame, il lui suffit de l'envoyer à tout le monde, donc de renvoyer la trame sur tous les ports actifs du switch !
Attention, ceci n'est pas un broadcast, car l'adresse
de destination dans la trame est l'adresse MAC de la machine B. La
trame est envoyée à tout le monde, mais pas en broadcast.
La machine B va donc recevoir la trame (car c'est son adresse MAC) et va pouvoir répondre à la machine A. Elle va donc envoyer une trame à la machine A.(une autre trame va etre envoyé, et le switch va faire la même chose)
Le TTL de la table
CAM
Le principe est de considérer
qu'une donnée est valable pendant un certain temps, mais qu'au-delà de ce
temps, elle ne l'est plus.
C'est un peu l'équivalent des dates de péremption sur les yaourts : le yaourt est mangeable tant que la date n'est pas dépassée.
C'est un peu l'équivalent des dates de péremption sur les yaourts : le yaourt est mangeable tant que la date n'est pas dépassée.
Pour une information dans la table CAM, c'est pareil. On va considérer
que cette information est valable un certain temps, mais une fois ce
temps dépassé, on enlèvera l'information de la table CAM. Ainsi la table
CAM sera mise à jour régulièrement et les données les plus anciennes
seront effacées.
Nous allons y ajouter une colonne pour le TTL :
Port
|
@MAC
|
TTL
|
1
|
@MAC A
|
90s
|
2
|
@MAC B
|
120s
|
Dans 91s, si la machine A n'a pas parlé (ni la machine B), la table CAM sera ainsi :
Port
|
@MAC
|
TTL
|
2
|
@MAC B
|
29s
|
Maintenant, si la machine B envoie une trame, le TTL va être remis à jour, car le switch sait que l'information "la machine B est branchée sur le port 2" est une information récente :
Port
|
@MAC
|
TTL
|
2
|
@MAC B
|
120s
|
Bonne Chance
mohameddouhaji7@gmail.com