Aller au contenu principal
reseauCe qu'est un réseau, et le modèle en couches

Ce qu'est un réseau, et le modèle en couches

Ce que ce chapitre apporte

  • Nommer les principaux équipements d'un réseau et dire à quelle couche chacun travaille.
  • Distinguer les tailles de réseaux et ce que chaque frontière change.
  • Décrire le modèle OSI et le modèle TCP/IP, et dire pourquoi les deux coexistent.
  • Expliquer l'encapsulation et calculer ce qu'elle coûte.
  • Distinguer les supports physiques par leurs propriétés, et non par leur nom.
  • Dérouler une méthode de dépannage adossée aux couches.

Deux machines qui communiquent, c'est une trentaine de conventions empilées, depuis la tension sur un fil jusqu'au nom de domaine que l'utilisateur a tapé. Personne ne tient cet empilement en tête d'un seul bloc, et personne n'en a besoin : il est découpé en couches, chacune ignorant tout de celles qui l'entourent. Ce découpage n'est pas une commodité pédagogique. C'est ce qui permet de changer le câble sans changer le navigateur, et c'est aussi la méthode de dépannage la plus efficace du métier.

Un réseau qui ne marche pas produit toujours le même symptôme : « ça ne marche pas ». La question utile n'est jamais « qu'est-ce qui ne marche pas ? », à laquelle personne ne sait répondre, mais « jusqu'où ça marche ? ». Y répondre suppose de savoir de quoi le chemin est fait, et c'est l'objet de ce chapitre.

Les équipements, et la couche où chacun travaille

Définitions

Un hôte est une machine qui produit ou consomme des données : poste, serveur, imprimante, capteur.

Un commutateur relie des machines d'un même réseau local. Il décide où envoyer une trame en regardant l'adresse MAC de destination.

Un routeur relie des réseaux différents. Il décide où envoyer un paquet en regardant l'adresse IP de destination.

Un point d'accès est un commutateur dont le support est la radio plutôt que le cuivre.

La différence entre les deux équipements tient en une phrase
Un commutateur travaille à l'intérieur d'un réseau, sur des adresses qui n'ont de sens que localement. Un routeur travaille entre les réseaux, sur des adresses qui ont un sens partout.
Tout le reste en découle. Un commutateur ne sait pas ce qu'est Internet et n'en a pas besoin. Un routeur ne connaît pas les machines, seulement les réseaux où elles se trouvent, ce qui est précisément ce qui permet à Internet d'exister sans que personne ne tienne la liste de toutes les machines.
Un concentrateur n'est pas un commutateur, et c'est visible
Le concentrateur (hub) recopie tout ce qu'il reçoit sur tous ses ports. Il ne décide de rien, il ne lit aucune adresse, et tout le monde reçoit tout.
On ne le rencontre plus, et il vaut la peine de savoir ce qu'il faisait, parce que ses deux défauts expliquent deux notions du chapitre suivant. Toutes les machines partageaient un même domaine de collision, donc le débit se divisait entre elles. Et toute machine pouvait lire le trafic de toutes les autres, ce qui rendait l'écoute triviale.

Les tailles de réseaux

PortéeQui l'administreÉquipement central
LANun bâtiment, un étagel'organisationcommutateur
WLANla même portée, sans fill'organisationpoint d'accès
MANune agglomérationun opérateur ou l'organisationrouteur, fibre
WANentre villes, entre paysun opérateurrouteur
PANquelques mètresl'utilisateurBluetooth, USB

Ce qui distingue vraiment ces catégories n'est pas la distance mais qui possède le lien. Sur un LAN, la bande passante est abondante et gratuite, et la latence négligeable. Dès qu'un opérateur entre en jeu, la bande passante se paie, la latence se compte en dizaines de millisecondes, et la disponibilité devient contractuelle. C'est cette frontière, et non le nombre de kilomètres, qui change la façon de concevoir une application.

Le modèle en couches

Le problème que les couches résolvent

Avant de décrire le modèle, il faut voir ce qui arrive sans lui, sans quoi il ressemble à une classification arbitraire qu'on apprend par cœur.

Supposons qu'aucune couche n'existe et que chaque application parle directement au matériel. Un navigateur doit alors savoir piloter une carte Ethernet, une carte Wi-Fi, une liaison fibre, un modem mobile. Le logiciel de messagerie aussi. Le partage de fichiers aussi. Avec dix applications et six supports, il faut écrire soixante programmes, et chaque nouveau support en ajoute dix d'un coup.

Interposer une couche change l'arithmétique. Chaque application parle à une interface unique, et chaque support l'implémente une fois. Dix applications plus six supports font seize morceaux de code au lieu de soixante, et un support nouveau n'en ajoute qu'un.

Une couche transforme une multiplication en addition
C'est l'argument entier, et il se compte. Sans couche intermédiaire, le nombre de combinaisons à écrire est le produit du nombre d'applications par le nombre de supports. Avec elle, c'est leur somme.
Ce raisonnement n'a rien de propre aux réseaux. C'est celui qui justifie un pilote de périphérique, une interface dans un programme, un format d'échange entre deux logiciels. Le réseau l'applique quatre fois de suite, ce qui donne quatre couches.

Ce qu'une couche promet, et ce qu'elle cache

Le principe

Chaque couche rend un service à celle du dessus et s'appuie sur celle du dessous. Elle ignore comment les autres fonctionnent, et ne communique qu'avec la couche de même rang sur la machine d'en face.

C'est ce qui permet de remplacer le cuivre par de la fibre sans toucher au navigateur, et d'écrire une application sans savoir si elle passera par du Wi-Fi ou par un câble.

Une couche se définit donc par deux choses, et une seule des deux est visible. Elle promet un service : « je transporte des octets jusqu'à la machine d'en face, dans l'ordre, sans perte » est la promesse de TCP. Et elle cache la façon dont elle le tient : retransmissions, découpage, temporisations, dont l'application ne sait rien et n'a pas à savoir.

C'est pourquoi une couche se remplace. Passer de TCP à UDP change la promesse, donc l'application le remarque. Passer du cuivre à la fibre ne change aucune promesse, donc rien au-dessus ne s'en aperçoit.

Deux lectures de la même figure, et la seconde est une illusion utile
Il y a une lecture verticale, qui est ce qui se passe vraiment : sur la machine qui émet, les données descendent d'une couche à l'autre ; elles traversent le câble ; sur la machine qui reçoit, elles remontent.
Et il y a une lecture horizontale, qui est ce que chaque couche croit : le TCP de la machine A se comporte comme s'il parlait au TCP de la machine B. Il numérote ses segments, attend des acquittements, retransmet, exactement comme si un fil les reliait. Ce fil n'existe pas, et raisonner comme s'il existait est correct.
Cette illusion est le service que rendent les couches inférieures. La perdre de vue est la source des blocages devant une capture réseau : on cherche « où est le dialogue TCP » alors qu'il est fait de morceaux qui ont tous voyagé séparément.
Une lettre qu'il faut traduire
Une directrice française écrit à un homologue japonais. Elle rédige en français. Un traducteur met en japonais. Un transporteur achemine le pli.
Chaque niveau croit dialoguer avec son homologue : les deux dirigeants pensent correspondre, les deux traducteurs échangent des traductions, les transporteurs ne déplacent que du papier.
Et chaque niveau se remplace sans que les autres bougent. Passer de l'avion au train ne concerne pas les traducteurs. Passer du japonais à l'anglais ne concerne pas le transporteur. La directrice, elle, ne sait rien des deux.
Là s'arrête l'analogie : dans un réseau, chaque niveau ajoute son propre en-tête au message, et c'est ce que montre la section suivante.

Les deux modèles

7 couches OSI, 4 couches TCP/IPcliquer une couche pour voir la panne et son test
Application
Transport
Internet
Accès réseau

TCP/IP est ce que les machines font tourner ; la numérotation OSI sert à désigner un endroit sans ambiguïté. Les trois couches hautes d'OSI ne correspondent à rien de séparé en pratique, ce que la fusion des cellules rend visible : c'est pour cela qu'on dit « couche 4 » et non « couche transport », mais « applicatif » plutôt que « couche 6 ».

Les sept couches d'OSI et les quatre de TCP/IP. La colonne de gauche est fusionnée là où TCP/IP regroupe, ce qui est la seule information que la correspondance apporte. Cliquer une couche donne le symptôme d'une panne à cet endroit, et le test qui la confirme.

La colonne de gauche montre l'essentiel : TCP/IP regroupe. Ses quatre couches ne redécoupent pas le monde autrement, elles fondent les trois couches hautes d'OSI en une seule, et ses deux couches basses également. C'est ce que le tableau habituel cache en répétant « Application » sur trois lignes.

Lire la figure de bas en haut donne d'ailleurs une phrase qui résume tout le chapitre. Un signal devient une trame que le voisin sait lire, qui devient un paquet qui sait traverser des réseaux, qui devient un segment destiné à un programme précis, qui devient enfin des données qui veulent dire quelque chose. Chaque étage ajoute une capacité que le précédent n'avait pas, et aucune ne se déduit de celle du dessous.

C'est la raison pour laquelle l'ordre n'est pas arbitraire et ne se retient pas par un moyen mnémotechnique : on ne peut pas choisir un chemin entre réseaux avant de savoir parler à son voisin, ni viser un programme avant de savoir atteindre la machine.

Pourquoi deux modèles, et lequel employer
TCP/IP est ce qui est réellement implémenté et ce que font tourner les machines. OSI est un modèle de référence plus fin, dont les couches 5 à 7 ne correspondent à rien de séparé en pratique.
Le vocabulaire courant est pourtant celui d'OSI, et pour une raison utile : ses sept couches donnent des repères de diagnostic plus précis. Dire « c'est un problème de couche 2 » désigne le commutateur et les adresses MAC, sans ambiguïté. Dire « c'est un problème d'accès réseau » en désigne deux à la fois.
On emploie donc TCP/IP pour décrire ce qui existe, et la numérotation OSI pour désigner un endroit. C'est un usage bâtard, et c'est l'usage.
Le modèle sert à chercher, pas à réciter
Savoir réciter les sept couches dans l'ordre n'a jamais réparé un réseau. Ce que le modèle apporte, c'est une liste de questions ordonnées, chacune ayant une réponse observable et un test qui la donne.
C'est ce que la figure ci-dessus rend disponible : cliquer une couche affiche à quoi ressemble une panne à cet endroit et par quoi on la confirme. La dernière section du chapitre en fait une méthode complète, et tous les chapitres suivants ne font qu'approfondir une couche à la fois.

L'encapsulation, et ce qu'elle coûte

Chaque couche ajoute son en-tête devant les données qu'elle reçoit, et la couche d'en face le retire. Une donnée de l'application traverse ainsi quatre emballages avant de partir sur le câble.

La figure suivante dessine cet empilement à l'échelle : chaque barre occupe la portion de trame qui lui revient réellement. Cliquer une couche détaille son en-tête, champ par champ.

100 octets utiles158 o sur le câble58 o d'en-têtes63,3 % utile
HTTP : données de 100 octetsHTTPcouches 5 à 7données · 100 oTCP : segment de 120 octetsTCPcouche 4TCPsegment · 120 oIPv4 : paquet de 140 octetsIPv4couche 3IPpaquet · 140 oEthernet II : trame de 158 octetsEthernet IIcouches 1 et 2Ethtrame · 158 osur le câbleEth14IP20TCP20données1004
  • Le paquet remis au lien pèse 140 o pour une MTU de 1500 o. La MTU borne le paquet, pas la trame : les 18 octets de la couche liaison s'ajoutent par-dessus.
  • La charge utile pourrait aller jusqu'à 1460 o sans dépasser la MTU. Au-delà, il faut fragmenter, et c'est la cause classique des liaisons où tout marche sauf les gros transferts.
Une requête de 100 octets, et les quatre emballages qu'elle traverse. Les largeurs sont proportionnelles aux octets réellement transmis.

Trois choses se lisent sur cette figure et sur aucun schéma en rectangles égaux.

Les en-têtes ne sont pas petits. Sur cent octets de données, cinquante-huit octets d'emballage partent avec eux : plus du tiers de ce qui circule ne transporte rien.

Chaque couche ignore le contenu de celle du dessus. La couche réseau voit un bloc de 120 octets et n'a aucune idée qu'il commence par un en-tête TCP. C'est ce qui permet de remplacer TCP par UDP sans toucher au routeur.

Le support impose une limite. La MTU borne le paquet remis au lien, ici 1500 octets, et non la trame qui en fait 1518. La confusion entre les deux fausse tous les calculs de dix-huit octets.

Cet empilement a un prix, et ce prix se calcule.

main.py
Sortie
>_ Prêt à exécuter…
La taille des messages décide du débit utile
Sur un lien à un gigabit par seconde, transporter des messages d'un octet ne délivre que quelques mégabits utiles : tout le reste est de l'en-tête. La même liaison, avec des messages pleins, délivre plus de neuf cents mégabits.
C'est la raison technique derrière une règle qu'on croit esthétique : regrouper les échanges. Cent requêtes d'un octet coûtent cent fois le prix des en-têtes ; une requête de cent octets ne le coûte qu'une fois. Le même raisonnement gouverne les blocs d'un système de fichiers, les lots d'une base de données et les paquets d'une file de messages.

Les supports physiques

SupportDébit courantPortée typiqueCe qui le distingue vraiment
Paire torsadée1 à 10 Gbit/s100 mbon marché, sensible aux perturbations
Fibre optique10 à 400 Gbit/squelques km à des centainesinsensible aux perturbations, isole électriquement
Radiovariable, partagédizaines de mètrespartagé, donc le débit se divise
Les 100 mètres du cuivre ne sont pas une limite de débit
C'est une limite de temps. Les mécanismes de détection de collision d'Ethernet supposent qu'un signal fasse l'aller-retour avant la fin de l'émission de la plus petite trame. Au-delà d'une certaine longueur, ce n'est plus vrai, et deux machines peuvent entrer en collision sans le savoir.
Le chapitre suivant y revient. Retenir pour l'instant que cette limite est structurelle et qu'aucun câble de meilleure qualité ne la repousse.

L'atout décisif de la fibre est rarement le débit. C'est son immunité électrique : elle ne conduit pas, donc elle ne transporte ni foudre ni différence de potentiel entre deux bâtiments, et elle ne rayonne pas, donc elle ne s'écoute pas sans être coupée. C'est ce qui la rend obligatoire entre bâtiments, bien avant toute considération de vitesse.

Une topologie, et son point unique de défaillance

Graphe non orienté8 sommets, 7 arêteschemin mis en évidence
Poste_ACommutateur_1Poste_BPoste_CCommutateur_2ServeurRouteurInternet

Le chemin mis en évidence est celui qu'emprunte le poste A pour joindre le serveur. Il traverse deux commutateurs et un routeur, et chaque équipement traversé est un endroit où le diagnostic peut s'arrêter.

Il montre aussi ce qu'aucune liste d'équipements ne montre : le routeur porte tout le trafic entre les deux commutateurs, alors qu'il n'est là que pour l'accès à Internet. Sa panne coupe non seulement Internet, mais aussi la communication entre les deux moitiés du réseau local. Le remède est un lien direct entre les commutateurs, et le chapitre sur le réseau local segmenté montrera que ce lien pose à son tour un problème.

La méthode de dépannage

Monter les couches, une par une, et s'arrêter à la première qui échoue

Couche 1. Le câble est-il branché, la LED du port est-elle allumée, l'interface est-elle active ? Une interface down ne se diagnostique pas plus haut.

Couche 2. La machine voit-elle ses voisins immédiats ? L'adresse MAC de la passerelle est-elle connue ?

Couche 3. La machine a-t-elle une adresse IP cohérente, un masque juste, une passerelle joignable ? Le ping de la passerelle réussit-il ?

Couche 4. Le port visé répond-il ? Un pare-feu se manifeste presque toujours ici, et presque jamais plus bas.

Couches 5 à 7. Le service applicatif tourne-t-il, le nom se résout-il, le certificat est-il valide ?

La question qui remplace « ça ne marche pas »
Demander jusqu'où ça marche transforme un symptôme en mesure. « Le ping vers la passerelle passe, le ping vers 8.8.8.8 passe, le nom ne se résout pas » désigne le DNS en trois phrases, sans rien connaître de l'application.
La méthode a un corollaire : ne jamais sauter une couche. Chercher un problème de résolution de noms alors que l'interface est down fait perdre une demi-journée, et cela arrive à tout le monde.

Lire un équipement sans y toucher

Trois commandes suffisent à établir un état des lieux, et ce qui compte est de savoir ce que chacune prouve.

Terminal3 commandes
$show running-config
# La configuration active, en mémoire. Ce que l'équipement fait
# vraiment, et non ce que la documentation prétend.
$show interfaces
# Pour chaque port : actif ou non, débit négocié, erreurs, collisions.
# C'est la couche 1 et le début de la couche 2.
$show ip route
# La table de routage : vers quel voisin part un paquet, selon sa
# destination. C'est la couche 3, et le chapitre 6 lui est consacré.
Une configuration active n'est pas une configuration enregistrée
La configuration en mémoire disparaît au redémarrage si elle n'a pas été écrite en mémoire permanente. Un équipement qui fonctionne parfaitement peut donc revenir à une configuration vieille de six mois après une coupure de courant.
C'est une panne classique, et déroutante : rien n'a été modifié, et pourtant tout a changé. La comparaison entre configuration active et configuration enregistrée fait partie de tout diagnostic après redémarrage.

Exercices type

Exercice 1 : un poste ne joint plus le serveur de fichiers. Le ping vers la passerelle réussit, le ping vers l'adresse IP du serveur réussit, l'accès au partage échoue. Quelle couche ?

Afficher la solution

Les couches 1 à 3 fonctionnent, puisque des paquets IP font l'aller-retour jusqu'au serveur. Le problème est donc en couche 4 ou au-dessus.

Deux causes dominent. Un filtrage sur le port du partage, sur le serveur ou sur un pare-feu du chemin : c'est de la couche 4. Ou un service arrêté, un droit d'accès refusé, une authentification qui échoue : c'est applicatif.

Le test qui tranche est une tentative de connexion sur le port visé. Si la connexion s'établit puis échoue, le réseau est hors de cause et la suite se cherche dans les droits. Si elle ne s'établit pas, un filtrage est en jeu.

Ce raisonnement n'a demandé aucune connaissance du serveur de fichiers, seulement la méthode.

Exercice 2 : pourquoi un commutateur ne suffit-il pas à joindre Internet ?

Afficher la solution

Parce qu'un commutateur ne connaît que des adresses MAC, qui n'ont de sens que sur le lien local. Il n'existe aucune adresse MAC pour « un serveur quelque part sur Internet », et aucun moyen d'en obtenir une.

Joindre une machine d'un autre réseau demande de raisonner sur des adresses qui ont un sens partout, donc des adresses IP, donc un équipement de couche 3 : un routeur.

Le mécanisme concret est celui du chapitre 6. La machine constate que la destination n'est pas dans son propre réseau, et envoie alors la trame à l'adresse MAC de sa passerelle, à charge pour celle-ci de faire suivre. Une machine sans passerelle configurée peut donc parler à ses voisins immédiats et à personne d'autre, ce qui est un symptôme très reconnaissable.

Exercice 3 : une application envoie 200 messages de 40 octets par seconde. Quel débit occupe-t-elle réellement sur un lien Ethernet ?

Afficher la solution

Chaque message porte 58 octets d'en-têtes, soit 98 octets sur le câble. À 200 messages par seconde, cela fait 19 600 octets par seconde, soit environ 157 kilobits par seconde.

Les données utiles ne représentent que 8 000 octets, soit 64 kilobits par seconde. Moins de la moitié du trafic transporte de l'information.

Le débit occupé reste minuscule et l'exercice n'est pas là : il est dans la comparaison. La même application regroupant ses messages par dix enverrait 20 trames de 458 octets, soit 73 kilobits par seconde au lieu de 157, pour exactement la même information transmise.

Exercice 4 : pourquoi relier deux bâtiments en fibre plutôt qu'en cuivre, alors que 200 mètres de cuivre coûteraient moins cher ?

Afficher la solution

Trois raisons, dont deux n'ont rien à voir avec le débit.

La distance : le cuivre Ethernet s'arrête à 100 mètres, et 200 mètres n'est pas une option, quelle que soit la qualité du câble.

L'isolation électrique : deux bâtiments n'ont pas la même terre. Un câble conducteur entre eux transporte cette différence de potentiel, et transporte la foudre. Les cartes réseau des deux côtés en meurent, régulièrement, et pas toujours le même jour que l'orage.

Le rayonnement : un câble de cuivre qui traverse un espace non contrôlé se dérive sans qu'on s'en aperçoive. Une fibre doit être coupée pour être écoutée, ce qui interrompt la liaison et se voit.

La première raison suffit à trancher, et les deux autres expliquent pourquoi on emploie la fibre entre bâtiments même sur 40 mètres.

Vérification rapideon peut se reprendre

1.Quelle est la différence de fond entre un commutateur et un routeur ?

2.Pourquoi employer la numérotation OSI alors que les machines font tourner TCP/IP ?

3.Sur un lien à 1 Gbit/s, des messages d'un octet délivrent…

4.Que limite réellement la longueur maximale d'un câble Ethernet en cuivre ?

5.Quel est l'atout décisif de la fibre entre deux bâtiments ?

6.Face à « ça ne marche pas », quelle question poser ?

La méthode

  1. Situer l'équipement avant de le soupçonner : à quelle couche travaille-t-il ?
  2. Poser la question « jusqu'où ça marche », jamais « qu'est-ce qui ne marche pas ».
  3. Monter les couches une par une, et ne jamais en sauter.
  4. Vérifier la couche 1 en premier, y compris quand le symptôme semble applicatif.
  5. Comparer configuration active et configuration enregistrée après tout redémarrage.
  6. Compter les en-têtes dès qu'un flux est fait de petits messages.
  7. Employer la fibre entre bâtiments, pour l'isolation avant le débit.

Synthèse

  • Un commutateur travaille sur des adresses locales, un routeur sur des adresses valables partout.
  • Un concentrateur ne décide de rien : il explique le domaine de collision et la facilité d'écoute.
  • Ce qui sépare un LAN d'un WAN n'est pas la distance mais qui possède le lien.
  • Une couche rend service à celle du dessus et ignore les autres : c'est ce qui rend le réseau modifiable.
  • TCP/IP décrit ce qui existe, la numérotation OSI sert à désigner un endroit.
  • L'encapsulation ajoute 58 octets par trame, quelle que soit la charge utile.
  • Des petits messages gaspillent l'essentiel du débit : c'est la raison de regrouper.
  • Les 100 mètres du cuivre sont une limite de temps, pas de débit.
  • L'atout de la fibre est l'immunité électrique, avant le débit.
  • Un point unique de défaillance se voit sur une topologie, jamais sur une liste d'équipements.
  • Le dépannage monte les couches et s'arrête à la première qui échoue.
  • Une configuration active n'est pas une configuration enregistrée.