2.A - Les Réseaux Locaux Ethernet

Dans cette partie du cours nous allons présenter ce qu'est un réseau local en introduisant les différentes notions sous-jacentes. Ainsi, nous allons décrire ce qu'est un réseau local au sens large et présenter les caractéristiques du matériel nécessaire à sa mise en place, à savoir la carte réseau et les équipements intermédiaires.

Qu'est-ce qu'un réseau local ?

C'est un ensemble de moyens autonomes de calculs reliés entre eux pour s'échanger des informations et partager des ressources matérielles (imprimantes, ordinateurs, temps de calcul, mémoire de stockage...) ou logicielles (serveurs de fichiers, serveurs de courriels, serveurs web...). La notion de réseau local est issue de la classification des réseaux selon leur taille vue dans la section 1-A de ce cours. Le terme anglophone est le LAN pour Local Area Network. Un réseau local interconnecte des ressources dans un rayon allant de quelques mètres à au plus 1 kilomètre via une liaison multipoint.

Caractéristiques d'un réseau local

Un réseau est un ensemble d'equipements permettant la transmission du signal via des supports de transmission (des câbles par exemple). Ainsi, chaque entité du réseau va disposer d'un matériel spécifique, une carte réseau, qui va lui permettre d'émettre et/ou recevoir des données via les supports de transmission. Enfin, un réseau local contient la plupart du temps plus de deux entités communicantes sur la même liaison. La liaison est alors dite multipoint, ce qui signifie que plus de deux cartes réseaux doivent se partager le même support de transmission. Dans le cas où il n'y a que deux cartes réseaux qui sont mises en relation, on parle de liaison point-à-point.

Par analogie, une salle regroupant plus de deux personnes constitue la liaison multipoint. Chaque personne dispose d'une carte réseau (bouche et oreilles) pour envoyer/recevoir un signal sonore qui se propage dans la salle à toutes les personnes présentes. Il s'agit alors d'une diffusion. Mais on peut aussi imaginer une personne qui ne souhaite s'adresser qu'à une seule personne de la salle ou à un petit groupe de personnes.

La liaison multipoint apporte donc deux problématiques. Premièrement, quand une personne ou une carte réseau veut envoyer un message, il faut qu'elle puisse dire à qui le message est destiné ce qui implique de donner des adresses distinctes non seulement à chaque personne (adresse dite individuelle ou unicast) mais aussi à des groupes de personnes (adresse multicast) ou à tout le monde (adresse de diffusion ou broadcast).

Deuxièmement, une liaison multipoint nécessite de partager le support de transmission, c'est-à-dire de définir des règles de prises de parole pour éviter que plusieurs communications ou signaux ne se perturbent les uns les autres.

Autrement dit, qui a le droit de parler, quand et combien de temps ?

Classiquement, que ce soit chez les humains ou dans les réseaux locaux, il y a trois manières de faire :

  1. La politique dite maître/esclave : pour prendre la parole, il faut lever la main et une personne dans la salle (le maître) distribue la parole et peut stopper une personne qui parle trop longtemps.

  2. La politesse : tout le monde peut prendre la parole quand il veut mais à condition qu'une autre personne n'est pas déjà en train de parler et en essayant de ne pas monopoliser la parole.

  3. Le jeton ou la pièce de monnaie : une pièce de monnaie circule dans la salle de personne en personne ; seule la personne qui dispose de la pièce de monnaie peut parler si elle le souhaite mais pendant un temps limité ; à la fin de son tour de parole, elle transmet la pièce à la personne suivante.

La première méthode est efficace mais peut ne pas être équitable et nécessite un système centralisé (le maître) pour gérer les prises de paroles. La deuxième méthode est simple, facile à mettre en oeuvre mais n'est pas adaptée si tout le monde veut parler et que les prises de paroles sont trop longues. La troisième méthode est simple et équitable mais peu efficace si peu de personnes veulent prendre la parole car il faut attendre que la pièce de monnaie circule de personne en personne avant de pouvoir parler.

Dans une liaison multipoint, des équipements intermédiaires peuvent être nécessaires pour relier les différentes cartes réseaux entre elles. Il peut s'agir d'un simple répéteur de signal, d'un pont qui permet de passer d'un type de liaison à un autre type (typiquement une borne Wifi permet de faire le pont entre le signal Wifi d'un côté et le réseau filaire de l'autre) ou d'un commutateur dont le rôle est de relier plusieurs cartes réseaux entre elles en redirigeant le signal vers la bonne carte réseau.

Chaque carte réseau doit donc avoir une adresse unique. Cette adresse permet d'identifier pour chaque trame émise une source et une destination. Elle permet ainsi de filtrer les signaux reçus et de ne conserver que ceux qui sont destinés à la ressource (i.e. ceux dont l'adresse de destination est égale à l'adresse de la ressource).

Normalisation des réseaux locaux

La normalisation des réseaux locaux se fait dans un groupe de travail de l'IEEE qui est un organisme international regroupant des associations gouvernementales, des industriels, des chercheurs... C'est le groupe 802 qui normalise les réseaux locaux, lui-même étant divisé en plusieurs sous-groupes de travail spécifiques. Le groupe 802.1 normalise toutes les généralités sur les réseaux locaux puis un groupe spécifique se charge de définir la norme pour chaque type de réseau local : par exemple 802.3 pour Ethernet, 802.11 pour le Wifi, 802.15 pour Bluetooth, etc.

La normalisation s'appuie sur le modèle OSI et fait donc référence à la couche physique pour la transmission d'une séquence binaire et à la couche liaison pour la transmission des trames. Le groupe 802 de l'IEEE a défini quatre sous-couches, deux pour la couche physique et deux pour la couche de liaison.

Normes 802

La sous-couche Medium Access Control MAC de la couche de liaison est la plus connue. Elle se charge à la fois de l'adressage des cartes réseau (en leur attribuant une adresse physique ou MAC), des algorithmes qui permettent de partager le droit de parole et donc l'accès au support de transmission mais aussi de la détection d'erreurs en définissant une somme de contrôle de 4 octets pour chaque trame circulant sur une liaison.

L'adresse MAC est donc une adresse unique associée à chaque carte réseau. Un decription plus détaillée de la couche MAC est fournie à la fin de la section.

Nous allons maintenant présenter plus en détails les différents composants nécessaires pour mettre en oeuvre un réseau local et discuter les différentes possibilités (topologies) pour relier ces entités entre elles en commençant par la carte réseau.

Fonctionnement d'une carte réseau

À la réception d'un signal, une carte réseau doit :

  1. Reconnaître le début et la fin de chaque trame
  2. Savoir si le signal lui est destiné. Cela correspond à l'un des trois cas évoqués précédemment : a. L'adresse de destination est son adresse MAC b. L'adresse de destination est l'adresse de diffusion (broadcast) c. L'adresse de destination est une adresse multicast qui la concerne
  3. Vérifier le checksum
  4. Délivrer le contenu de la trame à la couche supérieure

La carte réseau sert donc de filtre vis à vis de l'hôte de cette carte réseau. L'adresse MAC de la carte réseau est fixée lors de la fabrication de la carte et se trouve stockée dans un registre de la carte. Si la trame ne lui est pas destinée ou si la trame est erronée, elle est tout simplement ignorée. Sinon, la carte réseau doit interrompre le processeur de la machine hôte pour qu'il traite la réception de cette trame en lui délivrant son contenu. En pratique, une trame Ethernet ou Wifi contient généralement soit un paquet IP soit un paquet ARP. Dans les deux cas, c'est le système d'exploitation de la machine hôte qui va récupérer le paquet et exécuter le protocole IP ou ARP.

Les équipements intermédiaires

Les équipements intermédiaires sont des dispositifs servants à relier plusieurs machines entre elles. Pour ce faire, ils disposent généralement de plusieurs ports qui font office de cartes réseaux. Sur chaque port, il est possible de brancher un câble reliant l'équipement à une autre carte réseau, soit celle d'une machine du réseau, soit celle d'un autre équipement intermédiaire. Il est donc possible de mettre en cascade plusieurs équipements intermédiaires afin d'agrandir le réseau local en reliant entre elles un plus grand nombre de cartes réseaux. Il existe trois types principaux d'équipements intermédiaires au sein d'un reseau local.

Equipements intermediaires

  • Le répéteur ou hub en anglais : il s'agit d'un équipement de niveau 1 relativement au modèle OSI car il ne dispose d'aucune intelligence et n'exécute aucun protocole. Il est en revanche capable de transformer une séquence binaire en un signal et inversement. Il permet de relier n machines entre elles avec une topologie en étoile, n étant le nombre de ports pouvant valoir 4, 8, 16, 24, 48, 64, 128... Le répéteur, comme son nom l'indique, est chargé de répeter n'importe quel signale reçu sur un port sur tous les ports. Il réalise donc une diffusion de chaque message émis par l'une des cartes réseau. Le réseau se comporte alors comme un bus. On dit alors que la topologie physique est en étoile alors que la topologie logique est en bus.
  • Le commutateur ou switch en anglais : il s'agit d'un équipement de niveau 2 OSI car il peut interpréter l'entête et l'enqueue des trames reçues et prendre des décisions en fonction de leurs contenus. Ainsi, il peut calculer un cheksum pour éliminer les trames erronées et extraire l'adresse MAC destination d'une trame pour la relayer vers le port de sortie du commutateur correspondant à cette adresse MAC. Le commutateur exécute un protocole de liaison correspondant à la nature des ports qu'il met à disposition. Les commutateurs les plus répandus sont les commutateurs Ethernet.
  • Le pont ou bridge en anglais : il s'agit également d'un équipement de niveau 2 OSI dont le rôle, comme son nom l'indique, est de faire le pont entre un réseau local d'un certain type et un autre réseau local d'un autre type. L'exemple typique est la borne Wifi : d'un côté, elle permet de constituer un réseau local avec tous les équipements se trouvant à proximité et disposant d'une carte réseau Wifi ; d'un autre côté, elle est reliée à un réseau filaire, généralement le réseau local Ethernet du bâtiment dans lequel elle se trouve.

La topologie physique indique comment les différentes stations sont physiquement raccordées (câblage) alors que la topologie logique décrit comment est distribué le droit d'émettre. Ceci sera discuté dans la section Topologies et méthodes d'accès.

Un réseau local est donc un ensemble de machines reliées par des câbles ou des liaisons sans fil à des équipements intermédiaires. Ces équipements peuvent à leur tour être reliés à d'autres équipements intermédiaires pour constituer un réseau local plus grand ou se relier à un autre réseau par l'intermédiaire d'un routeur.

Cablage

Une description plus détaillée du fonctionnement des équipements intermédiaires est fournie dans la section 2.B du cours.

Les différents types de câbles

Nous allons décrire de manière plus exhaustive les différents types de câbles à notre disposition.

Les câbles à paires torsadées

Ils sont beaucoup utilisés dans les réseaux Ethernet ou la téléphonie. Le connecteur le plus courant est le RJ-45.

Paires torsadees

Ils sont peu coûteux, faciles à mettre en place mais ont des longueurs limitée, une centaine de mètres maximum et sont relativement sensibles aux perturbations électromagnétiques. Ils transportent un signal électrique sur des fils en cuivre peu épais. Généralement, deux fils sont utilisés pour l'émission (TX+ et TX-) et deux autres fils pour la réception (RX+ et RX-). Il existe plusieurs types de câbles à paires torsadées, plus ou moins coûteux et plus ou moins performants selon l'épaisseur des fils de cuivre (catégorie du câble) et la protection du câble (UTP, FTP ou STP).

Le câble coaxial

Il est utilisé dans les immeubles ou les maisons pour être relié aux réseaux d'opérateurs ou pour la télévision. Il a été utilisé pour les réseaux locaux dans les premières versions d'Ethernet.

Cable coaxial

Il est un peu plus coûteux que la paire torsadée. Il transporte également un signal électrique et ne contient qu'un seul fil de cuivre mais nettement plus épais que ceux de la paire torsadée ce qui permet au signal de parcourir des distances un peu plus grande. Il est également plus résistants aux perturbations extérieures mais plus difficile à installer du fait de la rigidité du câble et de son encombrant plus important.

La fibre optique

Elle est principalement utilisée dans les coeurs de réseaux, les réseaux d'opérateurs mais est de plus en plus répandue. Elle se déploie dans toutes les rues, parfois directement jusque chez l'habitant.

Fibre optique

Elle est beaucoup plus coûteuse et fragile que la paire torsadée. Elle transporte une ou plusieurs ondes lumineuses avec des longueurs d'ondes différentes (monomode ou multimode). Les propriétés du signal transporté sont bien meilleures que celles d'un signal électrique. Cela permet une très faible atténuation du signal et donc de parcourir des distances plus grandes sans utiliser de répéteur, jusqu'à plusieurs dizaines de kilomètres. Elles permettent également d'obtenir une meilleure bande passante et donc des débits élevés de l'ordre de plusieurs dizaines de Gigabits par seconde.

Topologies et méthodes d'accès

Il existe trois principaux types de topologies que nous avons présentés dans la section 1-B :

  1. La topologie en bus Lorsqu'un message est envoyé par une carte réseau, il est diffusé à tout le monde. Cela nécessite de vérifier que le support de transmission est libre avant d'envoyer afin d'éviter les collisions entre deux signaux issus de messages différents. Dans le cas d'Ethernet, une station vérifie avant d'émettre qu'aucune autre station n'est déjà en train d'émettre. Si un réseau local Ethernet utilise un répéteur pour relier les ordinateurs entre eux, la topologie physique est une étoile mais le partage de la parole doit se faire comme sur un bus car le répéteur diffuse n'importe quel signal sur tous ses ports ; la topologie logique est un bus.

  2. La topologie en anneau Chaque station du réseau est reliée à une prédédante et une suivante. Chaque message circule de manière unidirectionnelle et de proche en proche jusqu'à atteindre son destinataire. Le droit d'émettre peut être transmis par l'intermédiaire d'un jeton qui circule de station en station sur l'anneau.

  3. La topologie en étoile Chaque station est reliée par un câble à un équipement central. Il y a autant de liaisons point à point que de stations reliées à cet équipement intermédiaire. Il peut s'agir d'un répéteur ou d'un commutateur. Cet équipement peut participer à la distribution de l'accès au support selon le type de réseau qu'il implémente.

La couche MAC

Nous allons maitenant présenter de manière plus détaillée la couche MAC (Medium Access Control). Elle définit le format des adresses MAC, la somme de contrôle Checksum et la manière de partager le support selon le type de réseau. Pour les réseaux Ethernet, il s'agit de l'algorithme CSMA/CD qui repose sur la politesse et la détection des collisions.

L'adressage MAC

L'adresse MAC désigne de façon unique une station sur le réseau (unicité assurée par l'IEEE). Elle est gravée dans la carte réseau par le constructeur lors de sa fabrication.

Il s'agit d'un adressage à plat, c'est-à-dire que l'adresse ne donne aucune information sur la localisation de la carte réseau. La norme définit deux formats : 1. Une adresse courte sur 16 bits pour réseaux locaux non interconnectés ; ce format n'est plus utilisé. 2. Une adresse longue sur 48 bits pour les réseaux interconnectés Cette adresse fait donc 6 octets et s'écrit en hexadécimal. Par exemple, l'adresse de diffusion a tous les bits à 1 et s'écrit FF:FF:FF:FF:FF:FF, chaque octect étant séparé des autres par un ":". Il arrive que l'adresse soit écrite avec le tiret comme séparateur, par exemple FF-FF-FF-FF-FF-FF. Il est possible de passer d'une écriture à l'autre en inversant les bits dans chaque octet, ce qui ne change pas la valeur des octets pour l'adresse de diffusion puisque tous les bits sont à 1. Elle est composée de deux parties, trois octets pour le numéro de vendeur ou fabriquant attribué par l'IEEE et trois octets pour le numéro de série de la carte attribué par le fabriquant.

Adresse MAC

Le contrôle d'erreur

La trame MAC contient un en-tête et un en-queue spécifiques à chaque type de réseau. L'en-queue contient 4 octets pour le champ CRC ou FCS (Frame Control Sequence) normalisé par l'IEEE : il s'agît d'un code correcteur dont le polynôme générateur est le même quel que soit le réseau utilisé. La couche MAC rejette les trames erronées, mais ne fait pas de reprise sur erreur considérant qu'il peut éventuellement être réalisé dans les couches supérieures.

Principes du protocole CSMA/CD

Le protocole CSMA/CD est l'algorithme qui permet de partager le droit d'émettre dans les réseaux Ethernet. Il est mis en oeuvre dès qu'une carte réseau est branchée à un répéteur ce qui nécessite de garantir qu'à chaque instant, une seule trame circule sur dans le réseau. Dans le cas contraire, il se produit une collision entre deux signaux provenant de deux cartes réseaux distinctes ce qui perturbe les deux signaux et altère leur contenu.

Les principes de l'algorithme sont les suivants : - Chaque message envoyé est diffusé à toutes les stations. - Avant d'émettre, une station écoute le réseau pour s'assurer que le support est libre ; malgré cela, il est possible que deux stations émettent simultanément car elles peuvent toutes les deux observer que le support est libre au même moment. - Si deux stations émettent simultanément, car elles ont détecté un silence sur le support, il y a collision : chaque message est pollué par l'autre. - En cas de collision, une station cesse ses émissions et essaie d'émettre ultérieurement ; la couche MAC réalise la reprise sur collision.

Pour réaliser la détection de collision, chaque station écoute son propre message et compare les niveaux électriques du message qu'elle a émis et du message écouté. S'ils diffèrent, elle sait qu'il y a une collision et doit arrêter d'émettre. Ainsi, pour réaliser la détection de collision sur un réseau Ethernet à paires torsadées, la paire de réception sert à l'écoute du canal et ne permet pas de réceptionner un autre signal. Les liaisons sont donc en half-duplex dès lors que le CSMA/CD est mis en oeuvre c'est-à-dire si un répéteur ou hub relie les stations entre elles.

Si une station détecte une collision, elle doit attendre un délai aléatoire avant d'essayer d'émettre à nouveau. La figure suivante présente un exemple de détection d'une collision.

Détection des collisions

La station A commence à émettre sa trame. Lorsque B et C veulent émettre à leur tour, elles se rendent comptent que le médium est occupé. Elles vont donc attendre que le support soit libre. Dès que A termine son émission, B et C vont considérer que le support est libre et commencer à émettre leur trame simultanément, provoquant une collision qui est détectée au bout d'un certain temps. Ce temps correspond au temps qu'il faut pour que le signal partant de B se propage jusqu'à C et réciproquement. Il est égal au temps de propagation du signal entre B et C. Après la détection de la collision, chaque station cesse son émission et attend un délai aléatoire avant de vérifier à nouveau que le médium est libre pour recommencer l'émission du message.

L'algorithme du CSMA/CD est très simple à mettre en oeuvre et efficace mais du fait du délai aléatoire il ne permet de garantir à une station qu'elle pourra émettre au bout d'un temps maximum car s'il y a tout le temps une autre station qui veut émettre et qu'elle perd le tirage aléatoire systématiquement, elle ne pourra pas émettre. Ce protocole n'est pas adapté si le nombre de stations est élevé et que les stations veulent émettre fréquemment.

Cet algorithme a un autre inconvénient : il impose une taille de trame minimale. En effet, si B et C émettent simultanément, pour que B détecte la collision avec C, il faut que B soit encore en train d'émettre quand le premier bit de B lui parvient. Dans le cas contraire, B va considérer qu'un autre signal lui parvient alors que son émission est terminée ce qui n'est pas une collision. Cela implique un temps d'émission minimal et donc une taille minimale de la trame Ethernet qui dépend du débit du réseau ainsi que de son diamètre (la distance maximale entre deux machines). Ce temps d'émission minimal doit permettre d'attendre la propagation du signal depuis la station la plus éloignée dans le réseau. Pour Ethernet, la taille de trame minimale a été fixée à 64 octets. Il faut donc ajuster le diamètre du réseau en fonction de ses caractéristiques : par exemple pour Ethernet 100Mbit/s, il faut un diamètre inférieur à 250m.

Format de la trame Ethernet

Nous pouvons maitenant décrire le format de la trame Ethernet.

Trame Ethernet

Avant d'envoyer chaque trame, la carte réseau envoie un préambule de 7 octets constitués de 10101010 (chacun pour la synchronisation binaire entre la carte réseau émettrice et celle réceptrice). Ce préambule est suivi d'un octet SFD (Start Frame Delimitor) de valeur 10101011 qui fait office de fanion pour signaler le début de la trame. Commence alors le début de la trame avec son en-tête qui contient : - l'adresse MAC destination sur 6 octets - l'adresse MAC source sur 6 octets - le champ Type sur 2 octets qui désigne le type des données contenues dans la trame c'est-à-dire le type du paquet encapsulé : par exemple 0x0800 pour un paquet IP ou 0x0806 pour un paquet ARP La trame contient alors un paquet IP ou ARP puis du bourrage, c'est-à-dire des octets ajoutés artificiellement dans la trame pour atteindre la taille de trame minimale si le paquet contenu a une longueur inférieure à 46 octets. Enfin, la trame se termine par la somme de contrôle de la couche MAC, le FCS sur 4 octets.

Il est important de noter que la norme 802.3 fixe également une taille maximale de 1518 octets à la trame Ethernet. Il est nécessaire de définir une taille maximale non seulement pour limiter les trames erronées (plus une trame est grande plus elle risque de contenir une erreur) mais aussi car la quantité de mémoire dans les cartes réseau n'est pas très importante. Ainsi, la Maximum Transfer Unit (MTU) est de 1500 octets pour Ethernet. Cela correspond à la taille maximale du paquet IP qui pourra être inséré dans la trame. Ainsi, si un paquet IP à une taille supérieure à 1500 octets, il sera nécessaire de le découper en plusieurs morceaux de 1500 octets afin qu'il soit transmis dans plusieurs trames. C'est le rôle de la fragmentation qui est réalisée par le protocole IP comme nous le verrons dans la la section 3-D.

Enfin, il est à noter que la taille de la trame n'est pas présente dans l'en-tête Ethernet. Cette taille devrait être présente pour distinguer les données utiles du bourrage. Pour y remédier, la taille des données utiles se trouve dans la couche supérieure. Par exemple, la taille du paquet IP est donnée explicitement par le champ LEN qui se trouve dans son en-tête.

Pour finir, examinons deux situations courantes qui nécessitent du bourrage dans la trame Ethernet :

  1. Le paquet ARP : il a une taille de 28 octets ce qui ne permet pas disposer des 46 octets de données utiles pour atteindre la taille de trame minimale de 64 octets. Il est donc nécessaire d'ajouter 18 octets de bourrage à chaque fois qu'un paquet ARP est transmis.

  2. Un paquet IP contenant un acquittement TCP : il s'agit d'un paquet uniquement l'en-tête IP suivie de l'en-tête TCP sans données provenant d'une application. L'en-tête IP et l'en-tête TCP ayant chacun une taille de 20 octets, le paquet IP a une taille de 40 octets auquel il faut ajouter 6 octets de bourrage pour atteindre la taille de trame minimale.

Vous pourrez constater que ces deux exemples de trames circulent très fréquemment dans les réseaux Ethernet.