Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Ce cours existe en livre papier.

Ce cours existe en eBook.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !
Apprenez le fonctionnement des réseaux TCP/IP

Apprenez le fonctionnement des réseaux TCP/IP

Mis à jour le jeudi 10 juillet 2014
  • 4 semaines
  • Facile

Dans ce chapitre, nous allons étudier un matériel qui a révolutionné les réseaux.
Nous verrons comment les machines communiquent grâce à lui et ce que cela a apporté comme technologies réseau.

Un matériel, le commutateur

Le commutateur est un matériel qui va pouvoir nous permettre de relier plusieurs machines entre elles.
On l'appelle aussi switch en anglais. Ce terme étant très souvent utilisé en français, nous pourrons donc utiliser les deux.

Un commutateur est un boîtier sur lequel sont présentes plusieurs prises RJ45 femelles permettant de brancher dessus des machines à l'aide de câbles à paires torsadées. Des images valant mieux que des grands discours, voici, à la figure suivante, un commutateur.

Commutateur

Nous allons donc brancher nos machines au switch, voire d'autres switchs à notre switch (figure suivante).

Connexion sur un switch

Si tout le monde est connecté ensemble, comment le switch sait à qui envoyer la trame ?

L'aiguillage des trames

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.

Trois machines connectées au switch

La table CAM de notre switch sera la suivante :

Port

@MAC

1

@MAC 23

2

@MAC 24

3

@MAC 25

Quand la machine 23 voudra envoyer une trame à la machine 25, le switch lira l'adresse destination et saura alors vers quel port renvoyer la trame :

Adresse MAC 25

Adresse MAC 23 (source)

Protocole de couche 3

Données à envoyer

CRC

Trame envoyée de 23 à 25

Port

@MAC

1

@MAC 23

2

@MAC 24

3

@MAC 25

Le switch va donc envoyer la trame sur le port 3, et elle arrivera bien à la machine 25 qui est branchée sur ce port, et à elle seule !

Donc un switch sait aiguiller une trame vers la bonne machine.

Comment cette table CAM est fabriquée ? Si je branche une nouvelle machine, comment le switch la connaît ?

Mise à jour de la table CAM

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 (voir la figure suivante).

Trois machines connectées au switch

Port

@MAC

Table CAM vide
Imaginons maintenant que la machine 23 envoie une trame à la machine 25.

Adresse MAC 25 (destination)

Adresse MAC 23 (source)

Protocole de couche 3

Données à envoyer

CRC

Trame envoyée de 23 à 25

  • La trame arrive au switch.

  • Il lit l'adresse MAC source et voit l'adresse MAC de la machine 23.

  • Vu que la trame vient du port 1, il met en relation le port 1 et l'adresse MAC de la machine 23 dans sa table CAM.

  • Il met à jour sa table CAM.

Port

@MAC

1

@MAC 23

Table CAM mise à jour
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 !

La machine 25 va donc recevoir la trame et va pouvoir répondre à la machine 23. Elle va donc envoyer une trame à la machine 23.

Adresse MAC 23 (destination)

Adresse MAC 25 (source)

Protocole de couche 3

Données à envoyer

CRC

Trame de réponse envoyée de 25 à 23

  • La trame arrive au switch.

  • Il lit l'adresse MAC source et voit l'adresse MAC de la machine 25.

  • Vu que la trame vient du port 3, il met en relation le port 3 et l'adresse MAC de la machine 25 dans sa table CAM.

  • Il met à jour sa table CAM.

Port

@MAC

1

@MAC 23

3

@MAC 25

Table CAM mise à jour
Et ainsi de suite à chaque fois qu'il voit passer une trame :

  • le switch met à jour sa table CAM quand il voit passer une trame ;

  • le switch envoie une trame à tout le monde s'il n'a pas l'adresse MAC de destination dans sa table CAM.

OK, nous avons vu maintenant comment fonctionnait le switch, mais si je comprends bien, la table CAM ne va jamais cesser de grandir vu que l'on y ajoute en permanence des informations ?

Le TTL de la table CAM

En réseau, nous allons très, très souvent parler de TTL.

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.

Prenons la table CAM précédente :

Port

@MAC

1

@MAC 23

3

@MAC 25

Table CAM
Nous allons y ajouter une colonne pour le TTL :

Port

@MAC

TTL

1

@MAC 23

90s

3

@MAC 25

120s

Table CAM avec le TTL
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 23 n'a pas parlé (ni la machine 25), la table CAM sera ainsi :

Port

@MAC

TTL

3

@MAC 25

29s

Table CAM avec le TTL mis à jour

Maintenant, si la machine 25 envoie une trame, le TTL va être remis à jour, car le switch sait que l'information "la machine 25 est branchée sur le port 3" est une information récente :

Port

@MAC

TTL

3

@MAC 25

120s

Table CAM avec le TTL mis à jour
Ainsi, la table CAM du switch se remplira ou se mettra à jour après chaque réception d'une trame, et elle se videra quand elle n'aura pas reçu de trame depuis longtemps.

Questions complémentaires

Le switch peut-il découvrir les adresses MAC des machines sur le réseau ?

Normalement non. Ce n'est pas son rôle, le switch est un élément passif. D'ailleurs, une machine qui est branchée sur un switch envoie la plupart du temps une trame au réseau quand elle voit que sa carte réseau est branchée, donc le switch la verra et mettra à jour sa table CAM.

Le switch a-t-il une adresse MAC ?

Là encore la réponse est non. Personne n'a besoin de parler avec le switch, donc il ne nécessite pas d'adresse MAC.

Cependant, certains switchs sont dits « administrables », ce qui veut dire que l'on peut se connecter dessus pour les configurer. Et dans ce cas, ils ont une adresse MAC pour être identifiés sur le réseau.

Exemple réel de table CAM

Voici en figure suivante la table CAM du switch du réseau de mes élèves... C'est beau, hein ?
On peut remarquer une chose amusante : il y a au moins 6 machines branchées sur le port 19 de mon switch !

Table CAM réelle

Est-ce possible ou est-ce une erreur ?

C'est comme la SNCF, c'est possible ! En fait je ne peux pas brancher plusieurs machines sur un même port. Par contre, je peux brancher un switch sur le port de mon switch. Et donc toutes les adresses MAC des machines connectées à ce switch seront susceptibles d'apparaître sur le port du premier switch.

On se doute donc qu'ici il y a un switch branché sur le port 19 du switch que nous observons.

Trucs et astuces (de vilains...)

Connaissant maintenant le fonctionnement d'un switch, comment pensez-vous qu'on puisse faire pour gêner son fonctionnement s'il nous en prend l'envie ? Il y a plusieurs façons de le faire.

Méthode 1, saturation par envoi massif intelligent.
Si l'on envoie des tonnes de trames vers des adresses MAC inexistantes, que se passe-t-il ?

Le switch ne sachant pas vers quel port les envoyer, il va les envoyer vers tous les ports actifs... et va donc vite saturer !

Méthode 2, saturation de la table CAM.
Si l'on envoie des tonnes de trames en utilisant à chaque fois une adresse MAC de source différente, que se passe-t-il ?

La table CAM du switch va se remplir progressivement. Plus elle sera remplie, plus sa lecture par le switch sera longue, et plus cela induira des temps de latence importants... jusqu'à provoquer l'écroulement du switch. Quand il sera saturé et n'aura plus le temps de lire sa table CAM, il enverra directement les trames sur tous les ports. Ceci permettrait à un pirate de voir tout le trafic du switch...
Cependant, nous verrons par la suite qu'il existe des méthodes bien plus puissantes pour voir le trafic circulant sur un switch.

Nous savons donc à quoi sert un switch et comment il marche. Nous allons maintenant regarder les impacts que le switch a eus sur le réseau.

La révolution du commutateur

Qu'a apporté la commutation ?

A priori, on peut se dire que par rapport à un hub, un commutateur permet d'isoler les conversations. Ceci dit, les conséquences de l'isolation des communications sont énormes !

La commutation m'a tuer (petite référence...)

C'est la phrase qu'aurait pu dire le CSMA/CD. Vous vous rappelez le chapitre précédent ? Le CSMA/CD permet de s'affranchir des problèmes de collisions sur un réseau en bus.

Mais y a-t-il toujours des collisions sur un switch ?

Regardons les cas possibles de plus près (voir la figure suivante).

Trois machines connectées au switch

Imaginons que les machines 23 et 25 se parlent en même temps : y a-t-il collision ? On peut se dire que, vu que les messages vont être envoyés en même temps, ils vont se superposer. Mais ce serait oublier la structure des câbles à paires torsadées !
En paire torsadée, nous utilisons des fils différents pour la transmission et la réception, donc les messages vont se croiser, mais sur des fils différents !

Un schéma plus réel d'un switch serait celui de la figure suivante.

Switch avec paires torsadées

On voit bien ici les paires de réception et de transmission différentes. Il n'y a donc pas de collision dans ce cas.

Observons un autre cas : imaginons avec le schéma précédent que les machines 23 et 25 parlent en même temps à la machine 24.
Dans ce cas, les deux messages vont arriver en même temps sur la paire de réception de la machine 24, et badaboum, il y aura collision... ou pas.
Ce cas a été prévu et les switchs imaginés en conséquence.
En fait, le switch possède une mémoire dans laquelle il peut stocker une ou plusieurs trames quand il les reçoit. Il ne renvoie cette trame que si la paire de transmission de la machine à qui elle est destinée est libre. Ainsi, quand il a deux trames à envoyer sur la même paire de transmission, il envoie la première, puis la seconde. Il n'y a alors pas de collision.

Mais alors, il n'y a pas de collisions sur un switch ?

Non. Ou alors, c'est qu'on l'a configuré pour qu'il y en ait (nous le verrons par la suite).

Et donc s'il n'y a plus de collisions, ce n'est plus la peine de faire du CSMA/CD ?

Non plus ! Fini, exit le CSMA/CD ! Avant, les machines devaient écouter avant d'envoyer une trame pour vérifier que le réseau était libre, c'était le CSMA/CD. Maintenant, dès qu'une machine veut envoyer une trame, elle l'envoie, sans se soucier de savoir si quelqu'un d'autre est en train de parler, car elle est sûre et certaine que cela ne provoquera pas de collision !

Le fait d'abandonner le CSMA/CD porte un nom. On dit que la carte réseau fonctionne en full duplex.
À l'inverse, quand on fait du CSMA/CD sur un hub ou un câble coaxial, la carte réseau fonctionne en half duplex.

Le switch a donc révolutionné les réseaux, notamment en amenant le full duplex. Mais attention, nous allons voir comment le full duplex peut être aussi destructeur que performant.

Le full duplex m'a tuer

Le full duplex, c'est super ! Encore faut-il qu'il soit utilisé à bon escient, et ce n'est pas toujours le cas. Il peut parfois faire des ravages...
Imaginez qu'on branche 10 machines sur un hub. Nous sommes sur un hub, donc sur une topologie en bus, donc les machines doivent être en half duplex et faire du CSMA/CD.

Que se passe-t-il si la carte réseau de l'une d'entre elles est configurée en full duplex ?

Eh bien cela est très, très gênant. Tout simplement, car les neuf autres machines attendent que le hub soit libre avant de pouvoir parler, et si jamais quelqu'un parle en même temps qu'elles, elles considèrent qu'il y a une collision.
Alors que notre machine en full duplex ne se soucie de rien, parle quand elle veut, ne détecte aucune des collisions qui se produisent. Bref, c'est la m...

Pire encore, si cette machine est en train de télécharger un gros fichier, elle parle en permanence et empêche toutes les autres de parler. Le réseau est alors inutilisable pour nos neuf machines ! :o

Ah bon ? Mais moi je ne configure jamais ma carte pourtant ? Eh bien vous avez de la chance ! Ou plutôt nous avons la chance que les cartes réseau soient intelligentes et capables de déterminer seules le duplex à utiliser. Ainsi, quand une carte réseau est branchée, elle est capable de déterminer si elle doit fonctionner en full duplex ou en half duplex. Branchée à un hub, elle se mettra en half duplex ; branchée à un switch, elle se mettra en full duplex.

Et si je branche un hub à un switch ?

C'est une très bonne question ! Merci de l'avoir posée.
Le hub ne peut pas être configuré, il fait du half duplex, point. Il ne pourra de toute façon jamais faire autre chose, car il fonctionne comme une topologie en bus qui nécessite le CSMA/CD. Le switch va donc devoir s'adapter.

En fait, pas tout le switch, seulement le port du switch sur lequel est branché le hub. Ce port du switch fonctionnera en half duplex, et tous les autres ports en full duplex. Normalement le switch le détectera comme un grand, mais il est souvent possible de le modifier soi-même, à la main, sur les switchs administrables (voir la figure suivante).

duplex sur un switch

Nous voyons ici que le port 21 du switch fonctionne en 100 Mbps et le FC indique le full duplex.

Et si jamais je branche une machine en half duplex sur un switch ?

Il peut arriver que la négociation de duplex ne fonctionne pas et qu'une machine soit en half duplex sur le port d'un switch en full duplex.
Dans ce cas cette machine se verra grandement pénalisée, car à chaque fois que quelqu'un lui parlera, elle ne pourra pas parler en même temps.
Ceci ne serait pas grave si l'on n'avait pas de broadcasts. Mais malheureusement, à chaque broadcast elle devra se taire et abandonner son envoi en cours. Cela se traduit par de grandes latences réseau.

Heureusement cette machine sera la seule touchée et le reste du réseau fonctionnera parfaitement !
En revanche, pour l'utilisateur en question, c'est la croix et la bannière. :(

Il faut donc en conclure que dans l'énorme majorité des cas, vous n'aurez jamais à vous soucier du duplex.
Cependant, il est bon de connaître ce fonctionnement, car si jamais vous êtes confrontés à un problème de ce genre et que vous ne le connaissez pas... bonne chance !

Faisons un petit point sur tout ce que nous avons vu sur le commutateur.

Un gain gigantesque

Oui, on peut dire que la commutation a apporté un gain gigantesque aux réseaux :

  • Les conversations sont isolées, ce qui apporte un gain en sécurité.

  • On peut recevoir en même temps que l'on envoie des données, ce qui double théoriquement le débit.

  • Chaque machine peut parler quand elle le souhaite et n'a pas à attendre que le réseau soit libre, on gagne encore en débit.

Merci le commutateur !

Maintenant que nous avons vu tous les bienfaits que le switch a apportés, nous allons voir une de ses fonctionnalités avancées qui a encore permis d'améliorer les réseaux.

J'ai nommé les VLANS !

Pour aller plus loin, les VLANs

Au-delà de la commutation (le fait d'aiguiller une trame vers un port), les switchs ont acquis de nouvelles capacités au cours du temps pour améliorer le fonctionnement des réseaux. Une de ces fonctionnalités est très répandue et intéressante, il s'agit des VLANs.

Qu'est-ce qu'un VLAN ?

Un VLAN est un LAN virtuel (ou virtual LAN en anglais).
Sachant qu'un LAN est un réseau local (ou Local Area Network en anglais) un VLAN est donc un réseau local virtuel.

Ça ne nous aide malheureusement pas beaucoup à mieux comprendre de quoi il s'agit... mais la réalité est beaucoup plus simple.

Cela revient à séparer certains ports d'un switch. Ils ne pourront donc plus communiquer ensemble, vraiment plus du tout.
Prenons un exemple, illustré en figure suivante.

VLAN sur switch

Nous avons un switch de 10 ports sur lequel sont branchées six machines.
Nous souhaitons que ces groupes de machines ne puissent pas parler entre eux. Les trois premières parlent ensemble, les trois autres aussi, mais pas d'un groupe à l'autre. Les VLANs peuvent nous aider à faire cela !

L'idée du VLAN est de couper notre switch en plusieurs morceaux, comme si l'on avait plusieurs switchs.

Dans notre cas, nous allons créer deux VLANs. Un VLAN pour les trois machines de gauche, et un autre pour les trois machines de droite.
Ainsi, nous aurons fait en sorte qu'elles ne puissent plus parler entre elles d'un groupe à l'autre.

Voici à la figure suivante ce que cela donne.

VLAN sur switch2

Nous voyons ici en vert et en rouge les deux VLANs. Ainsi, les machines connectées aux ports appartenant au VLAN vert ne peuvent communiquer qu'avec le VLAN vert. Et de même pour les machines connectées aux ports appartenant au VLAN rouge. Par contre, il est impossible pour une machine connectée au VLAN vert de communiquer avec une machine connectée au VLAN rouge. C'est comme si l'on avait séparé le switch en deux petits switchs, chacun ayant sa propre table CAM, comme sur la figure suivante.

Deux switchs pour expliquer les VLANs

Quel est l'intérêt des VLANs ?

Dans l'exemple que nous avons choisi, l'intérêt n'est pas flagrant, mais imaginons que nous ayons à gérer une école, avec une administration, 100 enseignants et 1000 élèves. Nous avons alors plusieurs switchs répartis dans l'école. Des gros switchs de 256 ports ! (on appelle cela souvent des châssis.)
Il est intéressant de pouvoir segmenter ces switchs pour séparer les trois populations, pour que les élèves n'aient pas accès au réseau administratif ou à celui des enseignants, et que les enseignants n'aient pas accès au réseau administratif (pour changer leur fiche de paye par exemple). Plutôt que d'acheter 25 petits switchs de 48 ports, on en achète 5 gros de 256 ports.

En plus de la sécurité offerte par la séparation des réseaux, cela apporte de la facilité de configuration. Si je veux qu'un port passe d'un VLAN à un autre, il me suffit de le configurer sur le switch.

Je peux faire tout cela sans bouger de mon bureau d'administrateur réseau à travers une interface web d'administration du switch, comme vous pouvez le voir sur la figure suivante.

Interface d'administration du switch

On voit ici que chaque port peut être positionné dans un VLAN donné.
Ici le port 1 est dans le VLAN 1 alors que le port 5 est dans le VLAN 2. Les machines connectées sur ces ports ne pourront pas communiquer ensemble.

Est-ce vraiment impossible de passer d'un VLAN à un autre ?

Non. Ce n'est pas impossible, mais presque. D'ailleurs, rien n'est impossible en réseau. Si c'est impossible, c'est juste que personne ne l'a encore fait ! ;)

Dans le cas des VLANs, cela a déjà été fait. Cela s'appelle du VLAN hopping.
Malheureusement pour nous, les failles de conception qui le permettaient ont été corrigées et le VLAN hopping n'est plus d'actualité (jusqu'à ce que quelqu'un trouve une nouvelle faille...).

  • vous savez maintenant connecter des machines ensemble ;

  • vous savez aussi créer un réseau local ;

  • vous pouvez faire communiquer des machines ensemble sur un réseau local ;

  • vous comprenez comment les machines communiquent et comment sont aiguillées les informations sur le réseau.

Il est maintenant temps de mettre en pratique tout ce que nous avons appris.

Exemple de certificat de réussite
Exemple de certificat de réussite