Les réseaux informatiques/Les topologies logiques

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche
Topologie en étoile.

On a vu dans le chapitre précédent comment plusieurs ordinateurs peuvent échanger des données via un réseau local, ce qui est le principal problème de la couche liaison. Nous nous sommes attardés surtout sur les liaisons en bus, et autres réseaux de diffusion. Il faut dire que les traitements de la couche liaison sont assez simples pour des liaisons point à point, une bonne partie de la gestion des trames et de l'accès au support étant alors fortement simplifié. Néanmoins, une bonne partie des réseaux locaux ne sont pas des réseaux en bus, mais des réseaux en étoile. Pour rappel, cela signifie que les ordinateurs du réseau sont reliés à un équipement central, qui reçoit les trames et les redistribue vers les autres ordinateurs. Cette topologie en réseau est une topologie physique, ce qui veut dire qu'elle décrit comment les ordinateurs sont physiquement reliés. Mais il est possible d'émuler un réseau en bus, en anneau, ou un réseau maillé avec une topologie en étoile.

Pour simuler un bus ou un réseau maillé à partir d'une topologie en étoile, il faut que l'équipement central soit ce qu'on appelle un commutateur ou un concentrateur. Ils sont tous deux des équipements réseaux avec plusieurs ports d'entrée/sortie, sur laquelle on vient connecter des composants réseau : carte réseau, ordinateur, récepteur/émetteur WIFI, etc. Ces ports sont soit des ports d'entrées sur lesquels on peut recevoir des paquets de données, soit des ports de sorties sur lesquels on peut envoyer des données. Dans certains cas, les ports d'entrée et de sortie sont confondus : un même port peut servir alternativement d'entrée et de sortie. La différence entre concentrateur et commutateur est la topologie simulée : bus pour le concentrateur et réseau maillé pour un commutateur. Un concentrateur redistribue chaque paquet reçu sur tous les autres ports, sans se préoccuper de sa destination : c'est l'équivalent réseau d'un bus. Pour le dire autrement, un hub simule une topologie en bus, alors que la topologie réelle est en étoile. Cela nous pousse à faire la distinction entre topologie physique, au niveau du matériel installée, et topologie logique, simulée par les concentrateurs et commutateurs. Les commutateurs ont un fonctionnement similaire aux concentrateurs, si ce n'est qu'ils n'envoient les données qu'au composant de destination. Un commutateur simule donc une topologie totalement maillée à partir d'une topologie en étoile : on retrouve la distinction entre topologie réelle et logique.

Différence entre concentrateur (à gauche) et commutateur (à droite).

La topologie maillée et la commutation de trames[modifier | modifier le wikicode]

Dans cette section, nous allons voir comment il est possible de simuler un réseau maillé à partir d'un réseau local en étoile. Cela nous amènera à étudier en profondeur le fonctionnement des commutateurs, ainsi que les protocoles qu'ils utilisent. Pour introduire ce que nous allons voir, nous devons préciser ce que le commutateur doit faire pour simuler un réseau maillé. Pour faire simple, son rôle est de rediriger les trames reçues vers leur destinataire. Il reçoit des trames sur ses ports d'entrée et doit les renvoyer sur le port de sortie qui correspond à la destination. Il existe diverses méthodes pour faire cela, qui consistent toutes à mémoriser quel destinataire est connecté à tel ou tel port. Tout le problème est de savoir quel est le destinataire d'une trame reçue. Et aussi bizarre que cela puisse paraitre, il y a plusieurs méthodes différentes pour cela. A l'heure actuelle, deux méthodes sont devenues prédominantes : la technique des datagrammes et la commutation de circuits virtuels. Avec les datagrammes, chaque trame contient toutes les informations nécessaires pour identifier le destinataire. Le principal avantage de cette méthode est qu'elle ne nécessite pas de maintenir une connexion entre source et destinataire : une trame est envoyée sans concertation préalable avec le destinataire. Tel n'est pas le cas de la commutation de paquets virtuels, qui nécessite de maintenir une connexion active entre source et destinataire.

La commutation par datagrammes[modifier | modifier le wikicode]

Avec la méthode des datagrammes, c'est la trame qui précise son destinataire dans son en-tête de couche liaison. Comme vous l'avez sans doute deviné, elle contient l'adresse MAC du destinataire pour cela. Pour faire le lien entre adresse MAC de destination et le port qui correspond, le commutateur a juste besoin de maintenir une table de correspondance entre adresse MAC et numéro de port, appelée la table CAM. Dans ce qui va suivre, nous allons nous concentrer sur la table CAM, bien qu'il y aie d'autres composants dans un commutateur. Pour ceux qui veulent en savoir plus, je conseille la lecture de mon cours sur le fonctionnement d'un ordinateur, et plus précisément du chapitre sur le matériel réseau.

Un commutateur doit découvrir par lui-même les adresses MAC des composants qu'on branche sur ses ports : il ne peut pas les connaitre à l'avance. Pour cela, le commutateur utilise plusieurs méthodes assez simples. Premièrement, si un ordinateur lui envoie une trame sur un port, il met à jour la table CAM avec l'adresse de l'émetteur de la trame : cela fait un port de connu. Même chose avec les accusés de réception des trames, qui contient l'adresse MAC du destinataire : cela fait une autre adresse de connue. Une fois que tous les ordinateurs ont envoyé quelque chose sur le réseau, il connait tous les ports. Si aucun port n'est associé à une adresse de destination, le commutateur envoie le paquet à tous les ports, à tous les ordinateurs du réseau. Le destinataire répondra alors avec un accusé de réception, qui permettra de déterminer son adresse MAC. Ces trois méthodes permettent de remplir progressivement la table CAM. Au tout début, celle-ci est vide. Le commutateur recevra alors des trames qu'il ne saura pas envoyer à destination et devra les envoyer à tous les ordinateurs du réseau. Progressivement, les accusés de réception permettront de remplir la table CAM, de même que les trames envoyées.

Il faut noter que le contenu de la table CAM a une durée de péremption. Cela permet de mettre à jour un réseau local sans avoir à redémarrer le commutateur : on peut changer le composant branché sur un commutateur, celui-ci ne restera pas bloqué sur l'ancien composant et finira par repérer le nouveau au bout d'un certain temps. Cette durée de péremption est appelée le Time To Live, ou TTL, et vaut entre 0 et 255 secondes[1].

La topologie en bus et les concentrateurs[modifier | modifier le wikicode]

L'usage des concentrateurs est moindre que celui des commutateurs. Néanmoins, ils sont suffisamment utilisés pour que nous devions en parler. De plus, parler des concentrateurs nous permet de parler plus en détail de deux concepts importants : les domaines de diffusion et de collision.

Le domaine de diffusion[modifier | modifier le wikicode]

Le domaine de diffusion est l'ensemble des ordinateurs qui peut communiquer avec des transmissions dites broadcast. Celles-ci sont des transmission spéciales, qui permettent à un ordinateur d'envoyer un paquet à tous les autres ordinateurs du réseau local. Cela arrive sur tous les réseaux de diffusion : chaque paquet est envoyé à tous les autres ordinateurs : c'est donc une transmission en broadcast. Les concentrateurs, en simulant une topologie en bus, vont faire que toute transmission sera une transmission broadcast. Le domaine de diffusion est donc l'ensemble des ordinateurs reliés directement et/ou indirectement au concentrateur. Si seuls des ordinateurs sont reliés au concentrateur, alors le domaine de diffusion comprend ces ordinateurs uniquement. Les subtilités surviennent quand on connecte des concentrateurs entre eux : dans ce cas, tous les ordinateurs reliés aux différents concentrateurs (eux-même connectés) forment le domaine de diffusion.

Le domaine de collision[modifier | modifier le wikicode]

Le domaine de collision est un concept légèrement différent. Il partage cependant un point commun avec le domaine de diffusion : il comprend l'ensemble des ordinateurs connectés à un même bus logique et/ou physique. La différence n'est pas dans le fait qu'un ordinateur peut envoyer des données à tous les autres. Il tient dans le fait que deux ordinateur du même domaine de collision ne peuvent pas envoyer des données sur le bus en même temps : s'ils le font, cela entraine une collision. La différence est subtile, surtout que les deux sont confondus avec l'usage de concentrateurs. Mais on verra que les deux peuvent se séparer avec l'usage de commutateurs et/ou de routeurs. Par exemple, si on relie des ordinateurs avec un commutateur, ceux-ci ne font pas partie du même domaine de collision en raison du fonctionnement du commutateur. Pourtant, ils partagent le même domaine de diffusion : le commutateur peut parfaitement envoyer une trame à tous les ordinateurs d'un réseau. Mais les bus ne sont pas possible, vu que la topologie simulée n'est pas un bus. Avec un commutateur, il y a un domaine de collision par port, contre un domaine de collision unique pour le concentrateur.

Domaines de diffusion et de collision avec plusieurs concentrateurs connectés. Domaines de diffusion et de collision avec plusieurs concentrateurs connectés à des commutateurs.

La topologie en anneau et le Token Ring[modifier | modifier le wikicode]

Topologie logique en anneau.

Avec la topologie linéaire, les ordinateurs sont reliés les uns à la suite des autres, en formant une chaine. Avec la topologie en anneaux, les ordinateurs forment un anneau : on peut dire que c'est une variation de la topologie linéaire, où on ferait boucler la chaine sur son début. Dans les réseaux en anneau, les données transmises font le tour de l'anneau avant d'être détruites : elles se propagent d'un ordinateur au suivant, jusqu’à arriver sur l'ordinateur de destination. Une fois arrivé, l'ordinateur de destination envoie un accusé de réception à l'émetteur. Une nouvelle émission est possible une fois l'accusé de réception reçu.

Méthode d'accès[modifier | modifier le wikicode]

Chaque ordinateur a accès à l'anneau a tour de rôle, un seul ordinateur ayant le droit d'envoyer des données sur l'anneau à la fois. Ce droit est modélisé par un jeton, qui passe d'un ordinateur au suivant à chaque émission. Ce jeton est juste une trame spéciale : toutes les trames envoyées sur le réseau ont un bit qui indique si cette trame est le jeton ou pas. Ce jeton est conservé dans un temps déterminé et fixe, le même pour tous les ordinateurs. L'utilisation d'un jeton permet à tous les ordinateurs d'avoir un accès équitable au réseau. On sait que tous les ordinateurs auront accès au réseau à un moment ou un autre. Évidemment, ils peuvent ne pas utiliser leur jeton s'ils n’ont rien à envoyer, et transmettent alors le jeton à l'ordinateur suivant. De plus, le temps avant de récupérer le jeton est obligatoirement fini et on peut lui attribuer une limite maximale : le temps que le jeton fasse le tour de l'anneau. C'est un avantage que les bus n'ont pas : un ordinateur peut, en théorie, monopoliser le bus durant un temps indéterminé si rien n'est prévu dans la conception du bus.

Propagation du jeton (Token) dans un réseau en anneau.

Si peu d'ordinateurs accèdent au réseau, les réseaux en bus ou étoile ont une meilleure efficacité. Mais à forte charge, les réseaux en anneau ont une efficacité nettement plus importante. En effet, les collisions sont impossibles avec un réseau en anneau, grâce à ce système de jeton. En comparaison, les collisions limitent la performance des réseaux en bus. Cela se fait sentir surtout quand on branche un grand nombre de machines sur le bus : le nombre de collisions augmente, ce qui réduit le débit utilisé pour transmettre des données. En clair, le débit utilisé est plus important sur un réseau en anneau, vu qu'il n'y a pas de collisions.

Multistation Access Unit[modifier | modifier le wikicode]

Token ring avec un équipement central (MAU).

Encore une fois, on peut simuler un réseau en anneau avec un réseau en étoile, comme pour les réseaux en bus et les réseaux maillés. Cette fois-ci, l'équipement central n'est pas un concentrateur ou un commutateur, mais ce qu'on appelle une Multistation Access Unit. On connecte plusieurs ordinateurs sur ce boitier, et ceux-ci seront alors reliés en anneau. On peut considérer que ce boîtier est un équivalent des concentrateurs et commutateurs, mais pour les réseaux en anneau.

Token ring

Les anneaux auto-réparants[modifier | modifier le wikicode]

Avec les réseaux en anneau précédent, la moindre panne d'un ordinateur peut mettre tout le réseau en panne, vu que l'ordinateur fautif ne peut plus propager les trames. Si un câble est coupé, les données ne peuvent pas atteindre l'ordinateur par le sens de propagation usuel. Mais elles le peuvent en passant dans l'autre sens. Le schéma ci-dessous illustre cette idée.

Ring Protection

Les concepteurs de réseaux ont depuis longtemps trouvé comment propager les données dans les deux sens. Il suffit d'ajouter un second anneau qui propage les trames dans l'autre sens. Le réseau en anneau est donc composé de deux anneaux, qui propagent les jetons et trames dans des sens différents. Quand un câble est coupé, l'ordinateur ne va pas envoyer les trames sur celui-ci, mais va les renvoyer dans le sens inverse, sur l'autre anneau. Ce faisant, tout se passe comme si le premier anneau bouclait sur le second quand le câble est coupé. Si un seul câble est coupé, le réseau reste le même . Mais si deux câbles sont coupés, les choses deviennent plus compliquées : tout se passe comme si le réseau étant coupé en plusieurs sous-réseaux qui ne peuvent pas communiquer entre eux. Les schémas plus bas illustrent ces concepts basiques.

Self-healing Ring Intact Self-healing Ring Damaged 1 Self-healing Ring Damaged 2|
  1. https://slideplayer.fr/slide/1631716/