Le Fonctionnement du switch

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.
  • 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.
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

La table CAM du switch va être fabriquée de façon dynamique. Cela veut dire que le switch va apprendre, au fur et à mesure qu'il voit passer des trames, quelle machine est branchée à quel port.
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 TTL veut dire Time To Live en anglais, soit Durée De Vie. Il représente donc une durée.
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.

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


Nous voyons que le switch a deux informations et que la seconde est plus récente, car son TTL est élevé.

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