15/11/2024

Qu’est-ce qu’un switch ?

Maintenant que vous possédez les bases des réseaux informatiques, il est temps de faire un zoom sur les appareils qui vont représenter la plus grande partie de ce cours : les switchs et les routeurs.

Ce sont tous deux des périphériques intermédiaires, donc ils ont pour rôle d'agir sur le signal réseau, mais pas au même stade. Nous allons donc détailler chaque appareil, son mode de fonctionnement et sa place dans le modèle OSI.

I. Les concentrateurs

Avant de parler du switch, je vais dire un mot sur son ancêtre : le concentrateur. Ce dernier, nommé hub par les anglophones, était un appareil d'apparence similaire au profane, mais avec un mode de fonctionnement tout à fait différent.

Je vous ai parlé du modèle OSI tout à l'heure. Le concentrateur est un équipement de couche 1 (physique). Il fonctionne de manière très simple : c'est une multiprise. De la même manière qu'une multiprise distribue le courant à l'identique sur tous ses ports, le hub distribue le réseau sur tous les siens. Le problème, c'est que c'est comme si plusieurs postes étaient connectés au même câble ! Il peut donc arriver la même chose que pour des humains dans la même pièce : deux personnes qui parlent en même temps.

C'est ce qu'on appelle une collision dans le domaine informatique, des mécanismes ont été développés pour les détecter (CSMA/CD) ou pour les éviter (CSMA/CA).

Je n'entre pas dans les détails ici pour ne pas charger le chapitre. La deuxième méthode sera détaillée lorsque je vous parlerai de wifi ; pour la première, elle n'est plus en usage aujourd'hui mais si ça vous intéresse, n'hésitez pas à faire une recherche sur Internet. Le fait est quand dans les réseaux « d'avant », les collisions étaient fréquentes, les hubs disposent même d'une LED spécifique, servant à prévenir l'administrateur en cas de collision. Des collisions répétées dans un réseau altèrent fortement son efficacité.

Pour ne pas arranger les choses, ces réseaux étaient en half-duplex ou semi-duplex en français, c'est-à-dire qu'un appareil pouvait envoyer et recevoir, mais jamais en même temps. Donc si une communication partait du périphérique alors qu'une autre arrivait : collision. Maintenant, mettez tous ces périphériques sur un hub (donc sur le même câble) et essayer d'imaginer le résultat...

C'est pour cela que les hubs ont disparu, mais il n'est pas impossible que vous en rencontriez un au cours de votre carrière. Si vous voyez un appareil disposant de plusieurs prises RJ45, et avec une LED ou il est indiqué "COLLISION", pas de doute, vous détenez la perle rare ! Mon conseil dans ce cas : recyclage. Ne le laissez surtout pas dans une armoire avec d'autres équipements, des cas de réseaux rendus indisponibles à cause du branchement d'un hub en leur sein est quelque chose de possible (et de déjà-vu...)

II. Les commutateurs

Nous voilà donc revenus de nos jours. Les switchs, ou commutateurs en français dans le texte, sont des appareils plus « intelligents » que leurs ancêtres. Ils commutent les trames d'un port A à un port B, ce qui permet de créer une sorte de circuit réservé entre deux machines. Je ne sais pas si vous avez déjà vu des images montrant les anciennes opératrices télécoms, qui branchaient et débranchaient des câbles pour mettre en relation deux personnes au téléphone, c'est exactement ce principe.


Par U.S. Air Force photo — page image, Domaine public, Lien

Dans cette comparaison, l'opératrice est le switch. Elle reçoit un appel de Monsieur A qui veut parler avec Madame B. Elle sait où est la prise de Madame B, elle relie donc la prise de Madame A et celle de Madame B pour qu'ils puissent communiquer. Elle a commuté la ligne.

C'est exactement le principe du switch, mais comment celui-ci fait pour savoir qui est connecté où ? C'est grâce à l'adresse MAC.

Mais bon, je vous ai parlé de trame, de MAC, mais si vous débutez, ce sont certainement des termes inconnus pour vous, donc parlons d'abord de la couche 2.

III. Couche liaison de données

La couche 1 du modèle OSI est donc la couche physique, qui attrait au matériel. Je vais la laisser de côté, car peu de manipulation sont faites dessus d'un point de vue de l'administration réseau. La couche 2 en revanche est déjà plus importante pour l'administrateur, car c'est elle qui « accueille » les périphériques juste après leur branchement physique sur le réseau.

La couche liaison de données a donc pour rôle de déterminer comment les données sont transmises sur la couche physique, de découper le flux de données en trames et de contrôler les erreurs. Ici, la trame est le PDU de couche 2. Le protocole prépondérant dans nos réseaux est Ethernet.

Note : Sur les réseaux Wifi, la trame de couche 2 est différente, bien qu'elle remplisse les mêmes fonctions. Je ne détaille ici que celle concernant les réseaux filaires, le Wifi faisant l'objet d'un autre cours dans la même série.

Cette trame est composée de bits, qui est le PDU de couche 1. Les bits sont littéralement ce qui circule sur le support. Pour faciliter la manipulation de ces éléments qui ne peuvent être que des 1 ou des 0, on parle d'octets : 1 octet = 8 bits.

Dans le chapitre précédent, je vous ai parlé d'encapsulation, celle-ci se matérialise par l'ajout, pour chaque trame, d'un entête contenant des informations pour acheminer correctement la trame.

Voyons un peu ce qui se cache dedans :

  • Préambule : permet la synchronisation de l'envoi de la trame
  • SFD : champ qui indique le début de la trame, l'équipement qui la reçoit sait que ce qui va suivre contient les informations importantes
  • Adresse MAC de destination : adresse de l'équipement de destination
  • Adresse MAC source : adresse de l'équipement source
  • EtherType : champ qui indique quel est le type de données encapsulées. Ce champ-là permet au destinataire de savoir comment doit être traité la trame par la couche supérieure.
  • Données : le contenu du message lui-même. La limite de 1500 octets définit le découpage en trames, on parle ici de MTU (Maximum Transmission Unit, ou Unité de transmission maximum)

Vous remarquez également un champ après les données. La couche 2 est la seule qui ajoute, en plus de l'entête, ce qu'on appelle une queue de bande. Celle-ci contient un mécanisme qui permet de s'assurer que la trame reçue n'a pas été modifiée pendant le trajet, il s'appelle FCS pour Frame Check Sequence ou séquence de vérification de trame.

Attention, il ne s'agit pas de modification d'un point de vue sécurité, mais d'une modification sur les bits de la trame. Ces modifications peuvent être causées par des interférences, par exemple. En effet, les câbles en cuivre peuvent être soumis à des interférences électromagnétiques ou radioélectriques provenant de toute sorte de sources (néon, microonde, smartphone, Wifi, etc.) ou encore dans les réseaux anciens, issus d'une collision.

Ce champ FCS utilise donc un calcul pour vérifier qu'aucun bit n'est passé de 0 à 1 et inversement pendant son transport. Je ne rentre pas dans les détails du calcul, car ce n'est pas le but de ce cours, mais imaginez que vous envoyez une lettre en indiquant à la fin combien elle contient de "a", de "e" et de "i". Votre destinataire peut alors vérifier le calcul, s'il est différent, c'est que quelque chose s'est passé en cours de route ; c'est l'idée de cette vérification.

Point très important : une trame qui a subi une erreur, qui est trop petite ou trop grande (par rapport à la MTU) sera abandonnée ou en d'autres termes "mise à la poubelle". En aucun cas l'appareil va informer la source, ni demander une retransmission. Ce n'est pas le rôle de la couche 2 !

Viens maintenant le temps de parler des adresses MAC, ces adresses sont physiques, c'est-à-dire qu'elles sont inscrites en dur dans le matériel lors de sa fabrication. Elles sont spécifiques à l'appareil et unique au monde, une adresse MAC ne peut pas se modifier.

Note : pour les plus avancés d'entre vous, vous devez sûrement vous dire "mais il est possible de modifier son adresse MAC dans les paramètres de la carte réseau !", et bien oui et non... Lorsque vous renseignez manuellement une adresse MAC sur votre poste, en réalité, vous la changez logiciellement et non physiquement. L'adresse MAC de la carte réseau reste inchangée, mais elle sera ignorée par votre PC qui prendra à la place celle que vous avez renseignée.

Vous voulez en savoir plus sur les adresses MAC ? Florian vous résume cela dans la vidéo ci-dessous (l'autre Florian, le chef 😋) :

IV. Revenons à nos switchs

Vous savez désormais ce qu'est la couche 2 et comment une trame est faite, il est temps d'expliquer concrètement comment un commutateur fonctionne !

Premièrement, vous l'avez donc compris, chaque périphérique a un canal de communication dédié pour chaque communication (principe de commutation de circuit), mais encore faut-il que le switch sache qui est connecté et où ! Ceci se fait grâce à la table CAM pour Content Addressable Memory Table ou table MAC qu'on peut également trouver.

Cette table est remplie grâce à l'adresse source des périphériques qui communiquent, à chaque fois qu'un PC « parle », le switch inscrit son adresse MAC associée au port où est entré le flux. Ainsi, au bout d'un moment, il sait où tous les périphériques sont connectés, en attendant, il fait le hub !

Prenons un exemple concret :

Disons que PC A souhaite envoyer un message à PC B, nous dirons que PC A est branché sur le port n°1 et PC B sur le port n°10.

PC A prépare son message et l'envoie, il va donc rentrer dans le port n°1. Le switch va lire l'entête et inscrire cette nouvelle entrée dans sa table CAM :

Comme le switch ne sait pas encore où est PC B (on imagine que d'autres postes sont connectés bien sûr), il va envoyer la trame sur tous les ports, SAUF le numéro 1, car il sait que PC B n'est pas là. On peut donc dire qu'il se comporte comme un hub...

Tout le monde va donc recevoir la trame, mais seul PC B va y répondre vu que c'est le destinataire. Ce faisant, il va générer une nouvelle trame qui rentrera dans le switch sur le port n°10, permettant au switch de compléter sa table CAM :

Cette fois-ci, le switch reconnaît l'adresse de destination de PC A dans l'entête, il commute donc la trame sur le port n°1, sans l'envoyer sur tous les ports.

Cette table CAM est dynamique, si PC A se débranche du port n°1 et se branche au port n°2, la table sera mise à jour dès l'arrivée d'une nouvelle trame. De même, les entrées sont temporaires, la durée dépend de la marque du commutateur, mais dans tous les cas, cette table est remise à zéro lors du redémarrage du switch.

Si vous avez remarqué l'ordre des adresses dans l'entête de trame, peut-être avez-vous constaté que celle de destination arrivait en premier. Ceci est une particularité de la couche 2, car comme vous le verrez par la suite, elle est en deuxième position dans les entêtes de couches supérieures. Cela est fait pour accélérer le traitement des trames, car lorsqu'un périphérique reçoit une trame, il n'a qu'à parcourir les 14 premiers octets pour savoir si cette trame lui est destinée ; si ce n'est pas le cas, il peut abandonner immédiatement sans avoir à parcourir le reste de la trame.

Une autre raison est pour accélérer la commutation. En effet, comme le switch réalise la commutation sur l'adresse de destination par rapport à sa table CAM, il peut agir dès la lecture de celle-ci et commuter immédiatement. Ceci s'appelle le cut-through et est une des méthodes de commutation connues, elles sont toutes reprises dans cet article, il n'est pas nécessaire de les connaître par cœur pour la suite du cours (sauf si vous souhaitez passer la certification bien sûr...)

Vous en savez maintenant suffisamment sur les switchs, passons au routeur !

author avatar
Florian Duchemin Administrateur réseau et sécurité
Consultant indépendant, je suis spécialisé en réseau et sécurité. J'interviens pour du conseil ou de l'accompagnement. Je suis également formateur en centre et en entreprise, j'alterne donc entre utilisation et partage de mes connaissances!
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.