« Fonctionnement d'un ordinateur/Le matériel réseau » : différence entre les versions

Contenu supprimé Contenu ajouté
mAucun résumé des modifications
Ligne 3 :
Dans ce chapitre, nous allons étudier plus en détail le matériel lié au réseau. Nous allons notamment étudier les hub et switchs, ainsi que les routeurs. Les câbles réseau seront aussi probablement de la partie. Il existe différents protocoles pour gérer la transmission sur un réseau, mais seuls les protocoles Ethernet, MAC et IP sont pertinents pour ce chapitre. Ces protocoles sont séparés entre protocoles de couche liaison et de couche routage. Les premiers se chargent de la communication sur un réseau local, sans passer avec un intermédiaire (réseau local). Par exemple, les protocoles MAC et Ethernet s'occupent de la transmission d'informations entre deux ordinateurs reliés par un câble réseau ou via un réseau local (à travers un concentrateur/commutateur, comme on le verra plus loin). Les protocoles de routage, quant à eux, gèrent les transferts sur des réseaux étendus internet) et la transmission par un grand nombre d'ordinateurs intermédiaires.
 
==Les commutateurs==
==Rappels sur les réseaux locaux==
 
RappelonsPpur commencer, rappelons que les données sont transmises sur le réseau local sous la forme de '''trames''', des blocs de données de taille fixe. Chaque trame contient à la fois des données utiles, mais aussi un en-tête qui contient toutes les informations nécessaires à la gestion de la trame. Le standard courant de transmission des données sur un réseau local est l''''Ethernet'''. Toute trame Ethernet contient :
 
[[File:Netzwerktopologie Stern.png|vignette|Réseau local en étoile.]]
 
ConcentrateursIl etexiste plusieurs types de réseaux locaux, mais ceux que nous allons commutateursétudier sont des matérielsréseaux réseauen quiétoile, relient plusieurstous composantsles électroniquesordinateurs ousont informatiquesreliés entreà euxun équipement central. L'équipement central sert de relai aux trames : il reçoit des trames et les envoie aux ordinateurs de destination. IlsIl contiennentpossède plusieurs '''ports d'entrées''', sur lesquelsles ontrames peut recevoir des paquets de donnéesentrent, et plusieurs '''ports de sorties''', sur lesquelsd'où onressortent peut envoyer desles donnéestrames. 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. En clair, ils possèdent des ports d'entrée/sortie, sur laquelle on vient connecter des composants réseau : carte réseau, ordinateur, récepteur/émetteur WIFI, etc.
La communication sur un réseau local est actuellement prise en charge par le '''protocole Ethernet''' ainsi que par le '''protocole MAC''' et le '''protocole ARP'''. Il existe plusieurs types de réseaux, mais ceux que nous allons étudier sont des réseaux en étoile, où tous les ordinateurs sont reliés à un équipement central.
 
===Adresses MAC===
 
Pour que cela soit possible, il faut pouvoir identifier la machine de destination (celle qui doit recevoir la donnée) sur le réseau local. Pour cela, chaque machine reçoit une '''adresse MAC''', un numéro de 6 octets (48 bits). Chaque équipement réseau dispose d'une adresse unique au monde, attribuée par son fabricant, mais l'utilisateur peut changer l'adresse MAC d'un réseau ou d'un ordinateur. Les réseaux locaux eux-mêmes ont une adresse MAC : cela sert pour connecter des réseaux locaux entre eux, par exemple. Si on envoie un paquet sur l'adresse d'un réseau, celle-ci sera envoyée à tous les ordinateurs du réseau : on parle alors de ''broadcast'', ou encore de diffusion. Pour savoir si l'adresse MAC est celle d'un réseau ou d'un équipement réseau, chaque adresse MAC contient un bit I/G, qui vaut 1 si l'adresse est celle d'un réseau et 0 sinon. Pour indiquer si l'adresse a été changée par l'utilisateur, l'adresse MAC contient un bit U/L.
 
[[File:MAC-48 Address.svg|droite|MAC-48 Address]]
 
{|class="wikitable"
|-
!Bit I/G
!Bit U/L
!Reste de l'adresse MAC
|-
|0
|0
|L'adresse MAC n'a pas été modifiée par l'utilisateur. L'adresse MAC se décompose en une adresse de 24 bits qui identifie un ordinateur dans le réseau, et un Organizationally Unique Identifier (OUI) de 22 bits qui identifie le constructeur du matériel.
|-
|0
|1
|L'adresse MAC a été modifiée par l'utilisateur.
|-
|1
|0
|Le reste de l'adresse pointe vers un réseau local.
|-
|1
|1
|Le reste de l'adresse est intégralement remplie avec des bits à 1. Elle est interprétée comme étant une adresse de broadcast pour le réseau local.
|}
 
===Les trames réseau (Ethernet)===
 
Rappelons que les données sont transmises sur le réseau local sous la forme de '''trames''', des blocs de données de taille fixe. Chaque trame contient à la fois des données utiles, mais aussi un en-tête qui contient toutes les informations nécessaires à la gestion de la trame. Le standard courant de transmission des données sur un réseau local est l''''Ethernet'''. Toute trame Ethernet contient :
 
* l'adresse MAC du destinataire : sans cela, on ne sait pas à qui la donnée est destinée ;
* l'adresse de l'émetteur, qui peut se révéler utile ;
* la donnée envoyée : un simple bloc de données de taille fixe, le plus souvent ;
* éventuellement des octets de synchronisation ou de contrôle d'erreur.
Dans la première version d'Ethernet, la trame indique elle-même son nombre d'octets, sa longueur. Celle-ci est comprise entre 46 et 1500 octets. Si le nombre total d'octets est inférieur à 42, l'équipement réseau ajoute des octets inutiles dans la trame, histoire d'avoir au moins 46 octets. Dans les versions suivantes d'Ethernet, la longueur est remplacée par un numéro qui indique quels sont les protocoles utilisés pour la transmission des données sur le net : l'Ethertype. Pour garantir la compatibilité, il a été convenu que les trames Ethernet version 2 ont un champ dont la valeur est supérieure à la longueur de la trame, à savoir 1500.
 
[[File:Ethernet frame.svg|centre|thumb|800px|Paquet Ethernet.]]
 
==Les concentrateurs==
 
Concentrateurs et commutateurs sont des matériels réseau qui relient plusieurs composants électroniques ou informatiques entre eux. Ils contiennent plusieurs '''ports d'entrées''', sur lesquels on peut recevoir des paquets de données, et plusieurs '''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. En clair, ils possèdent des ports d'entrée/sortie, sur laquelle on vient connecter des composants réseau : carte réseau, ordinateur, récepteur/émetteur WIFI, etc.
 
[[File:Ethernet switch.jpg|centre|thumb|500px|Illustration d'un concentrateur/commutateur dont les ports servent à la fois de ports d'entrée et de sortie.]]
 
Suivant la manière dont fonctionne l'équipement central, on distingue le concentrateur du 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. Les concentrateurs sont à contraster avec les commutateurs, au fonctionnement similaire, mais qui n'envoient les données qu'au composant de destination. Avec un concentrateur, les données émises sont envoyées à tous les autres ordinateurs. LaPas donnéebesoin estde envoyéeparler avecplus l'adresseen dedétail destination,du afinconcentrateur que: lesnous ordinateursavons sachentdéjà siparlé lades donnéebus leurdans estun destinéechapitre :à sipart ceet n'estle pasconcentrateur leen cas,lui-même ils ln'ignorent.est Maisrien cela signifie que seuld'autre qu'un ordinateurbus peut! émettrePar àcontre, unil instantest donnéintéressant :de lesparler émissionsdu ontcommutateur. lieu un ordinateur à la fois.
===Concentrateur contre 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. Les concentrateurs sont à contraster avec les commutateurs, au fonctionnement similaire, mais qui n'envoient les données qu'au composant de destination. Avec un concentrateur, les données émises sont envoyées à tous les autres ordinateurs. La donnée est envoyée avec l'adresse de destination, afin que les ordinateurs sachent si la donnée leur est destinée : si ce n'est pas le cas, ils l'ignorent. Mais cela signifie que seul un ordinateur peut émettre à un instant donné : les émissions ont lieu un ordinateur à la fois.
 
[[File:HubSwitch.gif|centre|thumb|500px|Différence entre concentrateur (à gauche) et commutateur (à droite).]]
 
Le commutateur doit savoir à quel ordinateur transmettre la trame reçue. Pour cela, il doit identifier chaque ordinateur du réseau, ce qui est fait en donnant à chaque ordinateur une '''adresse MAC''', un numéro de 6 octets (48 bits). L'adresse MAC de la destination est insérée dans la trame, ce qui fait que chaque trame indique d'elle-même sa destination dans le réseau. Lorsqu'il reçoit une trame, le commutateur l'analyse, déduit quel est l'ordinateur de destination et renvoie la trame sur le port associé à l'ordinateur de destination. Pour faire ce travail, le commutateur dispose de plusieurs sous-circuits :
===CSMA-CD : l'arbitrage du bus===
 
[[File:CMSA-CD.png|droite|CMSA-CD]]
 
Le protocole Ethernet utilise une méthode d'arbitrage spéciale : le '''CSMA-CD'''. De base, les machines attendent que le bus soit libre (personne n'émet) pour émettre une trame. Mais il est parfaitement possible que deux machines émettent sur le bus en même temps, si les deux machines échantillonnent le bus en même temps. Dans ce cas, plusieurs ordinateurs tentent d'émettre une donnée en même temps sur le bus, ce qui n'est pas possible : on dit qu'une '''collision''' a lieu. Comme avec tous les autres bus, le bus Ethernet doit contenir des mécanismes d'arbitrage pour résoudre la situation.
 
Avec ce protocole, la détection de collision est relativement simple. Quand une machine envoie un 1 sur le bus, elle s'attend à ce que le bus contienne une tension positive, correspondant à un 1. Même chose pour un 0, qui doit donner une tension nulle. Si deux machines émettent sur le bus, les 1 l'emportent sur les 0 : si une machine émet un 1 et une autre un 0, on observera un 1 sur le bus. Pour détecter une collision, chaque machine compare ce qu'elle envoie sur le bus et ce qu'il y a sur le bus. Si elle observe un 1 sur le bus alors qu'elle a envoyé un 0, une collision a eu lieu. Quand une collision a lieu, a machine qui a détecté la collision stoppe sa transmission et envoie une trame spéciale sur le bus, qui indique l'occurrence d'une collision. Lorsqu'une collision a lieu, ou que le bus n'est pas libre, la machine va attendre son tour. Chaque machine attend durant un temps aléatoire, histoire de limiter l’occurrence des collisions.
 
[[File:CSMA-CD Verfahren.svg|centre|500px|CSMA-CD : détection d'une collision.]]
 
==Les commutateurs==
 
Pour rappel, le commutateur est un équipement utilisé dans les réseaux locaux, au même titre que les concentrateurs. La différence avec le concentrateur est qu'il redirige les trames reçues vers l'ordinateur de destination uniquement, il ne diffuse pas la trame à tous les ordinateurs du réseau local comme le ferait un concentrateur. Chaque trame reçue par le commutateur contient l'adresse MAC de l'ordinateur de destination, ce qui fait que le commutateur a juste à analyser la trame pour savoir qui est le récepteur. Lorsqu'il reçoit une trame, il l'analyse, déduit quel est l'ordinateur de destination et renvoie la trame sur le port associé à l'ordinateur de destination. Pour faire ce travail, le commutateur dispose de plusieurs sous-circuits :
* Un circuit extrait l'adresse MAC de destination des trames reçues (l'analyseur de trames).
* Un circuit qui décide, en fonction de l'adresse MAC de destination, sur quel port l'envoyer (le ''forwarding engine'').