18 - Tables de routage
Les seules connaissances exigibles pour la-NSI sont
- le fait que le protocole IP permet d'identifier le réseau et la machine sur lequel il tourne, et
- de savoir utiliser une table de routage pour déterminer la prochaine destination d'un paquet IP
Cette activité contient donc surtout des éléments de culture générale sur les réseaux qui pourraient être réinvestis lors du Grand Oral, ou dans le supérieur.
Elle va surtout permettre de remettre en place vos souvenirs de 1er : nous allons travailler cette année sur les algortihmes de routage : les techniques permettant la gestion automaisée du transit des paquet IP via les routeurs de façon à parvenir à faire communiquer deux machines distantes.
Revoir un peu le vocabulaire pour savoir de quoi on parle vraiment pourra surement vous servir !
Prérequis : -
Evaluation ✎ : questions -
Documents de cours : open document ou pdf
1 - Couche APPLICATION
Nous allons voir que la couche APPLICATION se charge de permettre la communication entre deux programmes.
Elle utilise pour cela des règles qui forment des protocoles.
L'un des protocoles de cette couche est le protocole HTTP.
Remarque
Le langage HTML n'est pas un protocole de communication mais un langage de description permettant l'encodage des informations à transmettre, au même titre que l'encodage PNG pour les images ou MP3 pour les vidéos par exemple. Nous allons ainsi voir que les données à transmettre (HTML, PNG, JPG, CSS, ZIP..) sont encapsulées dans des messages HTTP.
Nous avions vu qu'Internet était constitué notamment de routeurs qui permettent à l'information de circuler sous la forme de paquets IP.
Commençons par revoir rapidement comment cela fonctionne.
Nous partirons de l'application Web qui utilise Internet pour faire transiter ses données.
Le modèle TCP / IP est un modèle en couches. Chaque couche ne peut communiquer qu'avec la couche immédiatement inférieure ou supérieure.
Mais pourquoi faire cela ?
Les informaticiens aiment bien se compliquer la vie ou quoi ?
Non, au contraire.
On retrouve deux notions très importantes pour obtenir un système stable et solide :
- Encapsulation : chaque tâche est uniquement encapsulée dans la couche qui la gère.
- Interface : chaque couche communique avec ses voisines directes uniquement en utilisant l'interface disponible. Une couche doit juste savoir quoi envoyer et comprendre ce qu'elle reçoit d'une autre couche.
Les couches sont donc indépendantes tant que l'interface reste la même : on peut changer le code interne d'une couche sans risquer de voir le système s'écrouler
Nous allons illustrer les couches en expliquant le principe de la communication entre navigateur Web et serveur via Internet (et son modèle TCP/IP).
Couche APPLICATION
Pour expliquer le Web tel qu'il a été créé initialement (en 1991) par Tim Berners Lee, nous avons besoin de deux programmes :
- un client HTTP, un navigateur Web par exemple (comme Firefox)
- un serveur HTTP tournant sur une machine distante
Pour parvenir à se comprendre, ces deux programmes respectent un langage commun : le HTTP.
Imaginons un navigateur Web qui veut communiquer avec le serveur servant www.infoforall.fr.

Vous voulez par exemple envoyer votre devoir-maison en utilisant le formulaire et en cliquant sur le bouton UPDATE du site.
Lors du clic, Firefox va lire les données stockés dans le formulaire et voir qu'il faut envoyer le message en utilisant la méthode POST du protocole HTTP.
Firefox va mettre en forme les données que vous voulez envoyer en respectant le protocole HTTP et il va envoyer ce texte formaté d'une façon précise.
- On commence par envoyer l'en-tête HTTP composé de deux parties :
- une première ligne (en violet ci-dessous contenant la méthode d'envoi, la ressource voulue et le protocole utilisé)
- plusieurs autres lignes constituant une sorte de dictionnaire (en bleu ci-dessous) de la formule : nom de l'information, deux points, valeurs de l'information.
- On finit par le message en lui-même (en marron ci-dessous). Lorsque c'est le serveur qui répond, il peut s'agir d'un code HTML justement.
Exemple de faux message POST qu'envoie Firefox tourant sous Linux pour se connecter :
POST /login/ HTTP/1.1↲
Host: www.infoforall.fr↲
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0↲
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8↲
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3↲
Accept-Encoding: gzip, deflate, br↲
Content-Type: application/x-www-form-urlencoded↲
Content-Length: 118↲
Origin: https://www.infoforall.fr↲
Connection: keep-alive↲
Referer: https://www.infoforall.fr/act/archi/communication-client-serveur/↲
Upgrade-Insecure-Requests: 1↲
X-Real-Ip: 2a01:cb0c:902:ae00:414b:2c22:4edf:3b17↲
Via: 1.1 alproxy↲
X-Forwarded-Proto: https↲
↲
alias=bob_eponge&mdp=1234!
FIN DE LA REQUETE
Le protocole HTTP fait partie de la couche APPLICATION : il définit comment deux applications peuvent discuter entre elle en respectant les règles de communications communes contenues dans le protocole qu'elles utilisent.
Si vous ne vous souvenez plus de la différence entre la méthode GET et la méthode POST, voici deux formulaires : le premier est en GET, le second en POST.
Formulaire en GET
Vous devriez constater que vos paramètres sont envoyés dans l'URL demandée et que votre message est vide sous l'en-tête.
Formulaire en POST
Cette fois, les paramètres sont transmis en tant que message sous l'en-tête.
Nous avons maintenant un message bien formaté en HTTP. Mais comment l'envoyer au bon programme (le serveur voulu) ?
C'est simple : la couche APPLICATION ne sait pas faire.
Alors elle délégue.
A qui ?
A la couche TRANSPORT.
2 - Couche TRANSPORT
Nous allons voir que la couche TRANSPORT se charge de permettre la communication entre tous les programmes en même temps.
Cette couche utilise un ensemble de règles cohérentes entre elles, regroupées pour former des protocoles.
On identifie les programmes en utilisant des adresses nommées PORT.
Le protocole TCP fait partie de la couche TRANSPORT.
Sur notre exemple, Firefox envoie donc un message à ... la couche TRANSPORT de l'ordinateur sur lequel tourne Firefox.
2.1 Missions de la couche TRANSPORT
Voyez la couche TRANSPORT comme le bureau de poste accueillant les applications de votre ordinateur. Elle reçoit les messages que vos applications veulent envoyer et leur transmet les communications qui leur sont personnelement destinées. Et tout cela, pour toutes les applications en même temps.
Que va faire la couche TRANSPORT du message que lui envoie Firefox ?
Plusieurs choses :
- Premièrement, elle découpe le message en plusieurs sous-messages (qu'on nommera DATA) si le message du base est trop gros.
- Ensuite, elle identifie le programme émetteur et le programme récepteur.
L'identifiant de la couche TRANSPORT est le PORT, un numéro encodé sur 2 octets (donc entre 1 et 65535).
Pourquoi identifier ? Tout simplement car ce programme-couche-TCP s'occupe de plusieurs programmes à la fois. - Les programmes-serveurs ont des numéros de PORT prédéfinis. Nous avions vu l'année dernière :
- le PORT 80 pour les serveurs HTTP et
- le PORT 443 pour les serveurs HTTPS.
- A l'aide des sous-messages et des informations sur les PORTS, la couche crée des segments TCP .
2.2 Qu'est-ce qu'un segment TCP ?
Un segment TCP est un des sous-messages DATA précédé d'informations supplémentaires qu'on nomme l'en-tête TCP. Notamment (mais pas que)
- SRC le PORT de l'application Source du message [encodé sur les deux premiers octets]
- DST : le PORT de l'application Destinataire du message [encodé sur les deux octets suivants]
- SEQ : un moyen d'identifier le numéro du segment par rapport aux autres [encodé via les octets suivants]
- et d'autres choses encore ...
Comprennez qu'on connaît la structure de l'en-tête bit par bit et qu'on peut donc récupérer facilement les données à l'intérieur puisqu'on peut déterminer leurs adresses facilement (un peu comme dans un tableau statique).
Nous allons simplement noter cet en-tête TCP par un rectangle jaune.
Nous avons maintenant plein de segments numérotés avec SEQ dont on connaît le programme-expéditeur SRC et le programme-destinataire DST. Mais comment trouver la bonne machine ?
C'est simple : la couche TRANSPORT ne sait pas faire.
Alors elle délégue.
A qui ?
A la couche RESEAU qu'on appelle également couche INTERNET lorsqu'on utilise le réseau... Internet.
3 - Couche RESEAU ou INTERNET
Nous allons voir que la couche RESEAU se charge de transmettre les communications entre tous les ordinateurs en même temps.
Cette couche utilise un ensemble de règles cohérentes entre elles, regroupées pour former des protocoles.
On identifie les ordinateurs en utilisant des adresses nommées ADRESSE IP lorsqu'on utilise un réseau IP.
Le protocole IP fait partie de la couche RESEAU.
Lorsque cette couche est liée à un réseau IP, on parle souvent plutôt de couche INTERNET.
Le but de cette couche ?
3.1 Missions de la couche RESEAU
La couche RESEAU se charge de savoir si le message est arrivé à destination, ou pas. Elle permet de séparer trois cas :
- Le message est arrivé sur la machine de destination
- Le message est arrivé sur un machine qui appartient au réseau que la machine de destination
- Le message n'est pas encore parvenu à atteindre le réseau de la machine de destination
Ce couche doit donc disposer d'un mécanisme lui permettant de distinguer ces trois cas. Le message géré par cette couche se nomme un PAQUET.
Voyons cela en images.
- nous sommes sur la bonne machine
- nous sommes sur une machine qui appartient au même réseau que la machine de destination
- nous sommes sur une machine qui n'appartient pas au même réseau
Ici la couche RESEAU de A9 à un paquet pour A9.
Il suffit alors de transmettre le paquet à la couche APPLICATION de A9

Ici la couche RESEAU de A9 à un paquet pour A2.
Il suffit d'envoyer le paquet à la couche RESEAU de A2 via le réseau interne

Ici couche RESEAU de A9 à un paquet pour B7.
Il suffit d'envoyer lepaquet à la couche RESEAU du routeur A qui se chargera de sortir du réseau actuel.

Particularité de la communication entre ordinateurs
Une machine ne peut communiquer DIRECTEMENT qu'avec une machine de son propre réseau.
Si elle veut communiquer avec une machine situé sur un autre réseau, la machine a donc besoin de connaitre l'adresse d'une machine du réseau qui appartient à son réseau ET à un autre réseau. Pour ce qui nous concerne, nous le nommerons ROUTEUR. Ce routeur particulier qui permet de sortir du réseau est souvent nommé également PASSERELLE.
Ici le routeur A appartient à la fois au réseau nommé A et au réseau d'une des machines cachés sous le nuage "INTERNET".
Pour simplifier, vous pouvez donc considérer que votre Box appartient à deux réseaux :
- votre réseau local personnel, celui de votre maison
- le réseau de votre opérateur Internet
Relier plus de deux machines
On notera qu'il existe de nombreuses façons de faire communiquer les machines à l'intérieur d'un réseau. Le plus courant est le commutateur mais ce n'est pas l'unique moyen.
Relier deux machines uniquement
Par contre, on peut relier directement deux machines en créant une liaison directe entre leurs cartes réseaux, sans passer par un dispositif supplémentaire comme le commutateur.

Et comment fait cette couche pour savoir si le destinataire est sur le réseau interne ou s'il faut sortir du réseau actuel ?
3.2 Adressage IP
Adresse IP = Adresse réseau + Adresse machine
La couche RESEAU ou INTERNET peut identifier les machines à l'aide de la fameuse adresse IP.
Il est totalement impossible qu'une machine connaisse les adresses de TOUTES les autres machines branchées sur INTERNET. Si ? Non.
Du coup, cette adresse IP est en réalité composée de deux parties.
- Une adresse réseau qui identifie le réseau auquel appartient la machine
- Une adresse machine qui identifie la machine elle même sur ce réseau
Quelque soit la version utilisée pour l'adressage, il doit exister un moyen permettant de savoir si l'adresse de destination est
- sur le même réseau que l'ordinateur actuel ou
- en dehors du réseau de l'ordinateur actuel.
Pour le début de ce cours, nous prendrons une notation pédagogique très simple :
- on identifie le réseau par une LETTRE (c'est l'adresse réseau)
- on identifie la machine par un NUMERO (c'est l'adresse machine)

Cette notation n'a aucune existence sur les réseaux réels mais permettra de se passer des notations complexes d'IPv4 ou d'IPv6.
01° Quelle est la partie réseau et la partie machine de l'adresse A3 ?

...CORRECTION...
Adresse réseau : A
Adresse machine : 3
02° Quelles sont les machines qui possèdent plusieurs adresses IP car elles appartiennent à plusieurs réseaux ?
...CORRECTION...
Il s'agit des routeurs.
03° A quels réseaux appartient le routeur qui permet de joindre le réseau A ?
Quelles sont ses adresses ?
Pour chaque adresse, trouver l'adresse réseau et l'adresse machine.
...CORRECTION...
Il appartient à la fois au réseau A, au réseau Y et au réseau Z.
Adresse sur le réseau A : A1 - Adresse réseau A - Adresse machine 1
Adresse sur le réseau Y : Y1 - Adresse réseau Y - Adresse machine 1
Adresse sur le réseau Z : Z1 - Adresse réseau Z - Adresse machine 1
04° Une machine d'adresse IP A5 vers joindre la machine d'adresse IP A12. Comment sait-on s'il faut envoyer le paquet IP vers le réseau local ou s'il faut transmettre le paquet IP en dehors du réseau local ?
...CORRECTION...
L'adresse réseau des deux machines est A.
Il faut donc chercher la machine sur le réseau local.
05° La machine d'adresse IP A5 vers joindre la machine d'adresse IP C12. Comment sait-on s'il faut rester dans le réseau local ou quitter le réseau ?
...CORRECTION...
L'une des machines est sur le réseau A.
L'autre machine est sur le réseau C.
Il faut donc quitter le réseau.
Nous venons donc de voir qu'il existe un mécanisme permettant aux machines de savoir si le destinataire appartient à leur réseau ou pas.
Nous savons vers où envoyer le message. Mais quel message ?
3.3 Paquet IP
Paquet IP
La couche RESEAU reçoit les segments que la couche TRANSPORT lui a fourni mais ne peut pas les transmettre directement car les segments ne contiennent pas l'adresse IP du destinataire !
La couche INTERNET va donc rajouter un en-tête IP au segment TCP, ce qui va le transformer en paquet IP.
Que contient l'en-tête IP ?
Un en-tête IP n'est qu'un ensemble d'informations qu'on rajoute devant un segment TCP.
Comme l'en-tête TCP, les informations sont encodées sur un nombre spécifique d'octets et donc décodables facilement puisqu'on connaît précisement leurs emplacements.
Le contenu exact de l'en-tête IP va dépendre du système d'adressage utilisé : IPv4 ou IPv6 par exemple. Nous n'allons pas regarder l'un ou l'autre dans le détail mais allons aller à l'essentiel.
Que rajoute-on dans cet en-tête ? (vous pouvez cliquer sur l'en-tête pour obtenir un zoom si nécessaire)
- DST : l'adresse IP de la machine de destination pour ce paquet [4 octets en IPv4, 16 octets en IPV6].
On la place en premier car c'est la première chose qu'un routeur doit lire. - SRC : l'adresse IP de la machine à la source du paquet [4 octets en IPv4, 16 octets en IPV6]
Sans cela, on ne pourrait pas répondre au message. Comprennez bien qu'il s'agit bien de l'adresse de la toute première machine qui a généré le paquet. - TTL : un compteur nommé Time to Live en IPv4 ou Hop Limit en IPv6 [1 octet dans les deux cas]
C'est un compteur qui décroit de 1 à chaque fois que le paquet est transféré par un routeur. Arrivé à 1, le paquet n'est plus déplacé et part juste à la poubelle. Cela évite les paquets fantômes dont l'adresse de destination n'est pas trouvables.
Il existe bien entendu d'autres données dans cet en-tête IP mais nous allons nous limiter à ceux-ci.
Ils permettent de comprendre l'essentiel du protocole.
On symbolisera donc le paquet IP à l'aide d'un symbole plus concis. Par exemple :
La partie FAQ donne quelques explications sur la décomposition en deux sous-adresses réseau et machine en IPv4 et IPv6. Les exercices suivants résument le fonctionnement en vous montrant comment cela fonctionne.
06 (IPv4)° Comment sait-on s'il faut rester dans le réseau local actuel ou quitter le réseau dans le cas suivant ?
- La machine d'adresse IPv4 70.30.20.145 /16 veut transmettre un paquet à
- la machine d'adresse DST 70.30.21.5 .
...CORRECTION...
Le 16 derrière le slash veut dire que l'adresse réseau est caractérisée par les 16 premiers bits, donc les deux premiers octets :
Donc l'adresse IPv4 70.30.20.145 /16 veut dire que :
- La partie adresse-réseau est 70.30.0.0 
- La partie adresse-machine est 0.0.20.145 
L'adresse de l'autre machine étant 70.30.21.5 , on peut dire que les deux machines sont sur le même réseau : l'adresse commence par 70.30
Il faut donc rester et chercher sur le réseau local.
07 (IPv4)° Comment sait-on s'il faut rester dans le réseau local actuel ou quitter le réseau dans le cas suivant ?
- La machine d'adresse IPv4 70.30.20.145 /24 veut transmettre un paquet à
- la machine DST 70.30.21.5 .
...CORRECTION...
Le 24 derrière le slash veut dire que l'adresse réseau est caractérisée par les 24 premiers bits, donc les trois premiers octets :
Donc l'adresse IPv4 70.30.20.145 /24 veut dire que :
- La partie adresse-réseau est 70.30.20.0
- La partie adresse-machine est 0.0.0.145 
L'adresse de l'autre machine étant 70.30.21.5 , on peut dire que les deux machines ne sont pas sur le même réseau : l'adresse ne commence pas par 70.30.20, il y a un 21 à la fin.
Il faut donc sortir du réseau pour trouver cette machine.
08 (IPv4)° Comment sait-on s'il faut rester dans le réseau local actuel ou quitter le réseau dans le cas suivant ?
- La machine d'adresse 20.30.40.50 et de masque 255.0.0.0 veut transmettre un paquet à
- la machine DST 20.200.100.5 .
...CORRECTION...
Les 255 du masque signale les octets portant l'adresse du réseau. On ne tient donc compte que d'un seul octet.
Donc l'adresse IPv4 20.30.40.50
et de masque 255.0.0.0
veut dire que :
- La partie adresse-réseau est
20.0.0.0 
- La partie adresse-machine est
0.30.40.50 
L'adresse de l'autre machine étant 20.200.100.5
, on peut dire que les deux machines sont sur le même réseau : l'adresse commence par 20
Il faut donc rester sur le réseau.
09 (IPv4)° Comment sait-on s'il faut rester dans le réseau local actuel ou quitter le réseau dans le cas suivant ?
- La machine d'adresse IPv4 90.80.20.120 et de masque 255.255.255.0 veut transmettre un paquet à
- la machine DST 90.80.20.5 .
...CORRECTION...
Les 255 du masque signale les octets portant l'adresse du réseau. On tient donc compte des trois premiers octets.
Donc l'adresse IPv4 90.80.20.12
et de masque 255.255.255.0
veut dire que :
- La partie adresse-réseau est
90.80.20.0 
- La partie adresse-machine est
0.0.0.12 
L'adresse de l'autre machine étant 90.80.20.5
, on peut dire que les deux machines sont sur le même réseau : l'adresse commence par 90.80.20
Il faut donc rester sur le réseau.
10 (IPv6)° Comment sait-on s'il faut rester dans le réseau local actuel ou quitter le réseau dans le cas suivant ?
- La machine d'adresse IPv6
2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 /64 veut transmettre un paquet à - la machine d'adresse
2a01:cb0c:96ac:d400:73ba:12e3:3616:45a1 .
...CORRECTION...
Les 4 premiers couples hexadécimaux caractérisent le réseau et le sous-réseau.
On voit qu'ils sont identiques : on reste sur le même réseau.
11 (IPv6)° Comment sait-on s'il faut rester dans le réseau local actuel ou quitter le réseau dans le cas suivant ?
- La machine d'adresse IP v6
2a01:cb0c:96ac:d400:4545:f65c:3616:15d4 /64 veut transmettre un paquet à - la machine d'adresse IP
aabb:9b0c:96ac:045d:73ba:12e3:3616:45a1 .
...CORRECTION...
Les 4 premiers champs hexadécimaux (en jaune) caractérisent le réseau et le sous-réseau.
On voit qu'ils ne sont pas identiques : on doit changer de réseau.
4 - Tables de routage
On a donc un beau paquet IP qui contient l'adresse IP de la machine-destinataire DST (et l'adresse de la machine-expéditeur SRC, c'est plus pratique pour répondre).
Il n'y a plus qu'à envoyer le message.
Deux difficultés :
- A qui envoyer le message ?
- Comment envoyer le message ?
A qui envoyer le message ? C'est le PROTOCOLE IP qui nous aide.
La difficulté est de savoir à qui transmettre le paquet pour gérer au mieux l'acheminement du paquet IP.
- Si on est déjà sur la bonne machine : c'est la machine actuelle (localhost) qui pourra transmettre le message à sa couche TRANSPORT.
- Si on est déjà sur le bon réseau : c'est la machine actuelle (en transmettant sur son réseau local), qui pourra transmettre le message à la couche RESEAU de la cible.
- Si nous ne sommes pas sur le bon réseau : il va falloir trouver un routeur capable de nous rapprocher du réseau de la cible (on dit aussi une passerelle).
Comment envoyer le message ? C'est la table de ROUTAGE qui nous aide.
On utilise une table de routage qui comporte plusieurs informations et qui se lit de haut en bas comme une structure IF-ELIF-ELSE : dès qu'on trouve un cas valide, on l'applique et on sort.
- Une colonne IP DESTINATION qui permet de sélectionner le cas qui nous intéresse.
- Une colonne IP PASSERELLE qui permet d'identifier la prochaine machine qui va permettre d'acheminer le paquet et l'amener un peu plus près de la cible.
- Une colonne INTERFACE qui permet de sélectionner la carte réseau à utiliser pour établir une communication directe depuis la machine actuelle avec la passerelle voulue : la machine actuelle peut avoir plusieurs cartes réseaux, et il faut savoir laquelle utiliser pour joindre notre passerelle.
Voyons les trois cas possibles :
- La machine-destinataire DST est l'ordinateur actuel lui même :
- L'ordinateur actuel (localhost) est le plus à même de transmettre le paquet IP. Il n'y a donc pas vraiment de passerelle.
- La couche RESEAU de A9 peut donc transmettre à la couche TRANSPORT de A9 pour trouver le bon programme maintenant. C'est TCP qui va pouvoir agir maintenant.
- La machine-destinataire DST appartient au réseau de l'ordinateur actuel :
- C'est encore la machine actuelle (A9) qui est la plus à même de transmettre le paquet IP puisqu'elle connait A2 via le RESEAU LOCAL et son commutateur. Il n'y a donc pas vraiment de passerelle non plus.
- La couche RESEAU de A9 peut transmettre le paquet IP à la couche RESEAU de A2 en utilisant son unique sortie reliée à sa carte réseau. On passera par le réseau local (et le commutateur)
- Le destinataire est sur un autre réseau :
- C'est le routeur A1 du réseau A qui sera le plus à même de raprocher le paquet de sa cible puisqu'il peut sortir du réseau.
- La couche RESEAU de A9 envoie donc le paquet IP à la couche RESEAU du routeur A1 en utilisant son unique carte-réseau.

Si l'IP de Destination est | donner à IP PASSERELLE | en transmettant avec l'INTERFACE indiquée |
---|---|---|
A9 | Localhost | Localhost |
Traduction : on reste à l'interne puisqu'on est arrivé : c'est l'ordinateur actuel qui va jouer le rôle de "passerelle" pour transmettre le message à son propre couche TRANSPORT/TCP en utilisant son interface LOCALHOST.
Il s'agit donc d'un transport du paquet IP de la couche RESEAU vers la couche TRANSPORT.

Si l'IP de Destination est | donner à IP PASSERELLE | en transmettant avec l'INTERFACE indiquée |
---|---|---|
A9 | Localhost | Localhost |
N'importe quelle autre adresse du réseau A | A9 via le réseau local | On utilise l'unique carte-réseau de A9 |
Traduction : c'est le vrai ordinateur de destination qui est la prochaine passerelle et on peut le joindre en utilisant la carte réseau de l'ordinateur actuel.
Il s'agit donc d'un transport du paquet IP d'une couche RESEAU vers une autre couche RESEAU.

Si l'IP de Destination est | donner à IP PASSERELLE | en transmettant avec l'INTERFACE indiquée |
---|---|---|
A9 | Localhost | Localhost |
N'importe quelle autre adresse du réseau A | A9 via le réseau local | on utilise l'unique carte-réseau de A9 |
N'importe quelle adresse du réseau B | A1 | on utilise l'unique carte-réseau de A9 |
N'importe quelle adresse du réseau C | A1 | on utilise l'unique carte-réseau de A9 |
N'importe quelle adresse du réseau Y | A1 | on utilise l'unique carte-réseau de A9 |
N'importe quelle adresse du réseau Z | A1 | on utilise l'unique carte-réseau de A9 |
REMARQUE 1 : quelque soit les machines qui transporteront ensuite le paquet IP, celui-ci indiquera toujours que la source est A9. C'est ça qui permettra au vrai destinataire final de répondre.
REMARQUE 2 : A9 ne peut communiquer directement qu'avec l'adresse A1 du routeur dont les cartes réseaux sont A1-Y1-Z1.
Sur les exercices "papier", on peut avoir l'impression que la colonne INTERFACE ne sert à rien car notre cerveau identifie facilement la liaison à utiliser. Mais n'oubliez pas que c'est l'ordinateur qui fait le travail. Et lui a besoin de cette information.
INTERFACE
Dans la colonne DESTINATION et PASSERELLE, on trouve toujours des indications d'adresses IP.
Dans la colonne INTERFACE, on peut trouver plusieurs façons de localiser la bonne carte :
- On trouve parfois l'adresse IP de la carte (adresse logique).
- On trouve parfois l'adresse MAC de la carte (adresse physique).
- On trouve parfois le nom du port matériel (broche) à utiliser.
- Pour les cartes Ethernet (avec prises RJ-45), l'interface apparaît souvent sous le nom eth0, eth1...
- Pour les cartes Wifi, on note souvent wlo1...
Dans le cadre de ce cours, je choisis le plus souvent de mettre dans la colonne INTERFACE, l'adresse IP de la carte à utiliser pour sortir de l'ordinateur actuel car cela évite d'introduire les adresses MAC ou de parler de la technologie employée sur la ligne. Mais sachez que le tout est de savoir identifier la carte de sortie.
On remarquera également qu'on a souvent les mêmes lignes qui apparaissent dans la table de routage de A9. On peut alors comme avec un IF-ELIF-ELSE utiliser le ELSE final comme valeur par défaut.
Table de routage de l'ordinateur A9
DESTINATION | PASSERELLE | INTERFACE |
---|---|---|
A9 | Localhost | Localhost |
Réseau A | A9 via le réseau local | A9 |
Réseau B | A1 | A9 |
Réseau C | A1 | A9 |
Réseau Y | A1 | A9 |
Réseau Z | A1 | A9 |
Devient.
DESTINATION | PASSERELLE | INTERFACE |
---|---|---|
A9 | Localhost | Localhost |
Réseau A | A9 via le réseau local | A9 |
Par défaut | A1 | A9 |
Retour à l'exemple A9 pour C2 : on voit ici que le paquet IP va devoir être géré par le routeur A1 en étant émis par la carte réseau de la machine A9.
Table de routage du routeur du réseau A
Ce routeur est l'unique porte d'entrée et de sortie vers le réseau A. C'est pour cela qu'on le nommera "routeur A" mais notez bien qu'il appartient aussi au réseau Z et Y !
DESTINATION | PASSERELLE | INTERFACE |
---|---|---|
A1 ou Y1 ou Z1 | Localhost | Localhost |
Réseau A | A1 via le réseau local | A1 |
Réseau Y | Y1 via le réseau local | Y1 |
Réseau Z | Z1 via le réseau local | Z1 |
Réseau B | Y2 | Y1 |
Réseau C | Z2 | Z1 |
On remarquera bien que toutes les passerelles proposées font bien partie des réseaux auxquels le routeur est directement relié.

Retour à l'exemple A9 pour C2 : le paquet IP est arrivé sur ce routeur A1. Il est alors transmis au routeur Y2 en utilisant la carte réseau dont l'adresse est Y1.
Importance de l'interface de sortiie
Comme un routeur possède plusieurs adresses et donc plusieurs cartes-réseaux, il est indispensable de lui préciser de quel côté sortir du routeur. C'est à ça que sert l'information "interface".
Table de routage du routeur relié au réseau C
DESTINATION | PASSERELLE | INTERFACE |
---|---|---|
C1 ou X1 ou Z2 | Localhost | Localhost |
Réseau C | C1 via le réseau local | C1 |
Réseau X | X1-même via le réseau local | X1 |
Réseau Z | Z2 via le réseau local | Z2 |
Défaut | X2 | X1 |
On remarquera bien que toutes les passerelles proposées font bien partie des réseaux auxquels le routeur est directement relié.

Retour à l'exemple A9 pour C2 : le paquet IP arrive donc sur le routeur C1. Il est alors transmis à l'ordinateur C2 en utilisant la carte réseau identifiée par C1.
12° La machine C2 veut répondre et renvoyer sa réponse à A9. Quelle va être l'adresse SRC de l'expéditeur lors de cette réponse ? Quelle va être l'adresse DST du destinataire ? Quel devrait être le premier routeur que va rencontrer ce messsage de retour ?
...CORRECTION...
C'est l'inverse : la SOURCE SRC va être C2 et la DESTINATION DST est A9.
Comme le seul routeur pour sortir du réseau C est le routeur C1/X1/Z2, on va certainement y arriver.
13° En analysant la table de routage du routeur C ("C1/X1/Z2"), déterminer la passerelle qui va recevoir le paquet IP lors du transfert C2 vers A9.
...CORRECTION...
Il n'y a que la présence de la passerelle par défaut : on part donc vers la passerelle X2.
14° Proposer une table de routage pour le routeur B ("X2/Y2/B1") qui permettent aux paquets IP de pouvoir circuler correctement.
...CORRECTION...
DESTINATION | PASSERELLE | INTERFACE |
---|---|---|
B1 ou X2 ou Y2 | Localhost | Localhost |
Réseau B | B1 via le réseau local | B1 |
Réseau X | X2 via le réseau local | X2 |
Réseau Y | Y2 via le réseau local | Y2 |
Défaut | Y1 | Y2 |
15° Que pourrait-il se passer si la table de routage du routeur B indiquait de router les paquets IP à destination du réseau A vers le routeur X1 ?
...CORRECTION...
N'importe quel paquet à destination de A émis depuis les réseaux B ou C vont alors faire des allers-retours entre les deux routeurs du réseau B et C. Aucun ne pourra arriver à destination !
16° Quel mécanisme permet aux paquets de ne pas errer jusqu'à la fin des temps sur Internet ?
...CORRECTION...
Il s'agit du compteur nommé TTL (Time to Live) en IPv4 ou Hop Limit en IPv6 (1 octet dans les deux cas) : c'est un compteur qui décroit de 1 à chaque fois que le paquet est transféré par un routeur. Arrivé à 1, le paquet n'est plus déplacé et part juste à la poubelle.
Passerelle "Réseau Local" sur une 'vraie' table
Il existe plusieurs façons d'indiquer qu'on peut transmettre le paquet IP directement sur le réseau local.
Sous Linux, cela apparaît via une indication "0.0.0.0" dans la colonne Passerelle/Gateway. Cela veut dire qu'il n'y a pas de passerelle (0 partout dans l'adresse). Il faut donc passer par le réseau local.
Sous Windows, cela apparaît via une indication "OnLink" dans la colonne passerelle. Cela veut dire qu'on est déjà en lien avec la cible. Il faut donc passer par le réseau local.
Route par défaut sur une 'vraie' table
La plupart du temps, on indique la destination par défaut avec "0.0.0.0" dans la colonne Destination. En effet, rien ne peut être plus imprécis que cela, et c'est donc cette ligne qui sera sélectionnée si aucune autre ne correspond.
Routage statique
Ce que nous venons de voir se nomme le routage statique : quelqu'un configure les routes à la main.
Avec l'augmentation de nombre de routeurs, les risques de faire un mauvais réglage augmentent de façon évidente. C'est pour cela que nous verrons deux techniques de routages dynamiques la fois prochaine.
De la même façon, même avec des routes bien configurées, la moindre panne réseau va obliger le responsable à redéfinir manuellement celles-ci. C'est bien entendu totalement inenvisageable sur Internet ou n'importe quel gros réseau !
Si on résume, ce qui se passe lorsqu'un programme veut communiquer :
- Sa couche APPLICATION formate son message pour que l'autre programme puisse le comprendre.
- Mais elle ne sait pas transférer le message à l'autre programme. Alors...
- Elle transmet la communication à la couche TRANSPORT
- La couche TRANSPORT va alors couper le message et rajouter les PORTS et ainsi créer des segments.
- Mais elle ne sait pas transférer le message à un autre ordinateur. Alors...
- Elle transmet la communication à la couche RESEAU/INTERNET
- La couche RESEAU/INTERNET va rajouter les ADRESSES IP et ainsi créer des paquets.
- A l'aide du protocole IP, elle va déterminer où transférer ce paquet IP et avec quelle carte réseau il va faire cela.
- Mais elle ne sait pas gérer concrétement le transport du paquet. Alors...
- Elle transmet la communication à la couche ACCES RESEAU

Il est temps de passer le paquet IP à la couche ACCES RESEAU pour voir comment transférer cela à la passerelle suivante !
Attention : sauf cas exeptionnel, on ne changera plus le contenu du paquet IP (à part le compteur de sauts).
5 - Couche ACCES RESEAU : culture générale - rien d'exigible
Pourquoi rajouter encore une couche ?
Nous allons rajouter encore un nouvel en-tête devant le paquet IP pour créer ce qu'on nomme une trame. Mais on va aussi rajouter des choses à la fin cette fois, de façon à entourer le paquet IP.
Le paquet IP contient les informations qu'un ordinateur initial veut transmettre à un ordinateur final. Il s'agit du contenu du colis que vous vouliez envoyer initialement.
La trame est le carton d'emballage, mais avec un principe un peu étange : à chaque fois qu'on change de main lors du transport, on change l'emballage.
Sur cette couche, l'identifiant est l'adresse MAC (pour Media Access Control) et elle permet d'identifer la carte réseau utilisée.
Il s'agit d'adresses sur 6 octets (48 bits, 6*8).
Un ordinateur n'accepte les messages que si l'adresse MAC du destinataire ACCES RESEAU est bien la sienne.
Détection du début et de la fin
Le but de la trame est d'abord de permettre le transport concret du paquet IP : celui-ci ne contient que des informations. C'est dans l'ACCES RESEAU qu'on va transformer ces informations en signaux physiques (électriques, optiques...) pour les transporter physiquement.
On entoure alors les octets du paquet IP d'une séquence signalant le début et la fin du signal envoyé. Comme cela, le récepteur sait qu'il reçoit bien un vrai signal et pas juste du bruit.
On commence donc à placer en début de trame une séquence bien précise de bits (elle dépend du type de réseau physique) qui permet de dire "Arrivée d'un nouveau message". Idem à la fin.
Anonymisation des machines
L'adresse IP joue le rôle d'adresse logique. Cela permet d'identifier un rôle dans le réseau et de l'anonymiser.
A l'extérieur du réseau, personne ne sait quelle machine joue réellement ce rôle. Lorsqu'on veut la joindre, on donne simplement son adresse IP.
C'est un peu le principe des forces de police dont on ne peut identifier les membres qu'à l'aide d'un numéro d'agent. On ne connait pas leurs noms. Depuis l'extérieur du réseau, l'adresse IP suffit à joindre la bonne machine. C'est une fois dans le réseau qu'on tente de localiser réellement la bonne machine pour lui délivrer le paquet IPP.
Comment ? C'est le rôle de l'adresse MAC des cartes réseaux. On parle d'adresse physique : connaître cette adresse permet de localiser un ordinateur particulier (enfin, la carte réseau et donc l'ordinateur sur lequel elle est branchée).
Chaque machine d'un réseau possède une table dite ARP (Adress Resolution Protocol) qui peut contenir les correspondances adresse IP <-> adresse MAC pour les machines de ce réseau.
Lorsqu'une machine veut communiquer avec une autre machine de son propre réseau, il va voir l'adresse MAC correspondante et rajoute sa propre adresse MAC et celle qu'elle vient de trouver dans l'en-tête de la TRAME.
Imaginons qu'on doive joindre le routeur d'adresse IP A1. Si on appartient au réseau A, on peut avoir une entrée de la table ARP qui signale que
IP A1 <--> MAC 45:54:f5:4e:28:3d.
On peut alors envoyer le message sur le réseau interne et il ne sera lu que par la machine qui porte bien cette adresse MAC.
La couche ACCES RESEAU se charge donc d'utiliser les cartes réseaux pour réaliser la connection physique entre deux ordinateurs qui sont en connexion directe sur un même réseau.
6 - Destination atteinte
Une fois qu'on parvient à joindre la bonne machine de destination, on remonte dans les couches en lisant et supprimant un par un les en-têtes.
De la couche ACCES RESEAU à la couche RESEAU, on remonte à la couche TRANSPORT puis à la couche APPLICATION.

7 - FAQ
Adresse IP v4 - culture générale
Pourquoi culture générale ? Depuis le temps qu'on dit que cette version va disparaître, ça va bien finir par arriver d'ici à ce que vous soyez employable après votre passage dans le supérieur...
Une adresse IP v4 est constituée de 4 octets (représentables chacun par un entier entre 0 et 255) séparés par un point.
Exemple : 200.2.100.42
.
L'adresse IP est à découper en deux parties :
- La partie de gauche caractérise l'adresse du réseau auquel appartient la machine
- La partie de droite caractérise l'adresse de la machine sur ce réseau
On se limitera ici aux cas simples où ces parties occupent intégralement un des octets.
Pour distinguer les deux parties, on donne le nombre de bits servant à cette adresse réseau. Pour cela, on rajoute un slash derrière l'adresse et on place le nombre de bits (1 octet = 8 bits) propres au réseau dans l'adresse.
Exemples avec la notation adresse IP suivie d'un /x
Cette notation se nomme CIDR (Classless Inter-Domain Routing).
Quelques exemples :
200.2.100.42 /8
veut dire que seul le premier octet (car /8 veut dire 8 bits) caractérise le réseau.- Adresse réseau :
200.0.0.0
- Adresse machine :
0.2.100.42
200.2.100.42 /16
veut dire que leurs deux premiers octets (car /16 veut dire 16 bits) caractérisent le réseau.- Adresse réseau :
200.2.0.0
- Adresse machine :
0.0.100.42
200.2.100.42 /24
veut dire que leurs trois premiers octets (car /24 veut dire 24 bits) caractérisent le réseau.- Adresse réseau :
200.2.100.0
- Adresse machine :
0.0.0.42
Exemples avec la notation ADRESSE IP + MASQUE
On donne l'adresse IP et une deuxième adresse nommée MASQUE permettant de comprendre la première. Si on utilise uniquement 8 bits à la fois avec le MASQUE, c'est facile :
- 255, c'est le réseau,
- 0 c'est la machine.
Quelques exemples :
- Adresse
200.2.100.42
et masque255.0.0.0
veut dire : - Adresse réseau :
200.0.0.0
- Adresse machine :
0.2.100.42
- Adresse
200.2.100.42
et masque255.255.0.0
veut dire : - Adresse réseau :
200.2.0.0
- Adresse machine :
0.0.100.42
- Adresse
200.2.100.42
et masque255.255.255.0
veut dire : - Adresse réseau :
200.2.100.0
- Adresse machine :
0.0.0.42
On peut en réalité mettre d'autres choses que 0 ou 255, mais cela complique fortement la lecture (il faut revenir à la lecture des bits). Je n'en parle pas ici.
Trois types d'adresses :
- Les adresses publiques sont les adresses qu'on peut joindre directement depuis Internet. Chaque adresse de ce type doit donc être unique sur Internet.
- Les adresses privées sont des adresses qu'on ne peut utiliser qu'à l'intérieur du réseau local. On ne peut pas joindre depuis l'extérieur une machine à l'aide d'une telle adresse. Les messages entre ces machines et Internet passent par un dispositif nommé la passerelle. La passerelle possède deux cartes réseaux : elle possède une adresse sur le réseau local et une adresse sur un réseau permettant d'accéder à Internet. C'est le cas de votre Box (si votre Box fonctionne en IPv4)
- L'adresse particulière localhost : l'ordinateur actuel est identifié par
127.0.0.1


Les adresses des petits réseaux privés (comme votre réseau domestique, derrière votre Box) sont toutes 192.168.1.xxx /24
. Plusieurs machines dans le monde peuvent avoir ce type d'adresses. C'est l'adresse externe de la passerelle qui est utilisée pour parvenir à communiquer sur Internet.
Les adresses des réseaux privés moyens : de 172.16.1.0
à 172.31.255.255
.
Les adresses des gros réseaux privés (comme un réseau d'entreprise): 10.xxx.xxx.xxx
.
Plusieurs machines dans le monde peuvent avoir ce type d'adresses. C'est la passerelle de l'entreprise vers l'extérieur qui fera la traduction privée/publique.
Bref, c'est à l'aide d'un mécanisme de ce type que la couche RESEAU peut connaitre l'adresse réseau de la machine sur laquelle elle se trouve actuellement et savoir vers où envoyer le paquet en regardant l'adresse stockée dans DST : le réseau local ou vers l'extérieur.
Adresse IP v6 - culture générale
Une adresse IP v6 plus lourde qu'une adresse IP v4 : elle est constituée de 16 octets (128 bits, 16*8).
On la représente en hexadécimal en séparant chaque couple d'octets par un double point.
Exemples
- Adresse au hasard : 2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 /64
- Local host : 0:0:0:0:0:0:0:1 ou en plus concis ::1/128
Précisions sur la lecture des adresses
- Chaque valeur entre deux : varie donc entre 0000 et FFFF.
- L'adresse réseau est à gauche et se nomme Préfixe en IPv6.
- L'adresse machine est à droite et se nomme Interface en IPv6.
- L'adresse-réseau est précisée en fournissant le nombre de bits la caractérisant avec la notation /x.
- /16 veut dire dire que le premier couple d'octets caractérise le réseau
2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 /16 - /32 veut dire dire que les deux premiers couples d'octets caractérise le réseau
2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 /32 - /48 veut dire dire que les trois premiers couples d'octets caractérise le réseau
2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 /48 - /64 veut dire dire que les quatre premiers couples d'octets caractérise le réseau
2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 /64
Toutes les machines joignables sur Internet peuvent possèder une adresse IP propre au vu du nombre d'adresses disponibles (2128).
De façon optionnelle, il existe néanmoins un système d'adressage derrière lequel on peut cacher les machines derrière leur passerelle.
Les adresses IPv6 sont créées de différentes manières. L'une d'entre elles consiste simplement à prendre 64 bits pour l'adresse du réseau et à obtenir une adresse-machine de 64 bits à partir des 48 bits de l'adresse MAC de la carte réseau de la machine. D'autres méthodes existent bien entendu.
En suivant cette technique de 64 bits pour l'adresse-réseau et 64 bits pour l'adresse-machine, les fournisseurs d'accès à Internet utilisent souvent la méthode suivante :
- Les 3 premiers couples (48 bits) sont propres à tous les clients du fournisseur.
- le 4e couple (16 bits) forme l'un des sous-réseaux du fournisseur (deux clients peuvent donc avoir une valeur différente)
- les 4 derniers couples (64 bits) forme l'adresse-machine (obtenue à partir des 48 bits de l'adresse MAC, ou pas).
2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 /64 : les trois premiers couples d'octets (en rouge) définissent la topologie publique donnée par les RIR aux fournisseurs d'accès (providers). Un gros fournisseur peut se voir attribuer plusieurs adresses de ce type.
2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 /64 : le couple d'octets suivant définit le sous-réseau. En règle générale, c'est donc votre fournisseur qui vous fournit un sous-réseau dans son propre réseau.
2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 /64 : les quatre derniers couples permettent de séparer les différentes machines du sous-réseau.
Et le modèle OSI c'est quoi ?
Internet et son modèle TCP / IP est plus ancien que le modèle OSI.
Mais après la création et l'utilisation effective de TCP / IP, beaucoup de chercheurs ont théorisé sur les réseaux. Il existe maintenant une norme (OSI, à gauche) plus précise encore qu'on tente de respecter sur les nouveaux réseaux.

lien direct
Passerelle réseau - culture générale
Le mot passerelle est utilisé pour désigner tout dispositif qui permet de faire la liaison entre deux réseaux.
En anglais, on dit gateway.
Au niveau PHYSIQUE, la passerelle qui permet de relier deux parties physiques se nomme un répéteur : un dispositif qui recçoit un signal physique, qui l'amplifie et l'émet à nouveau dans l'autre direction. Un répéteur WIFI permet par exemple d'étendre la zone d'utilisation d'une BOX.
On trouve aussi le HUB USB par exemple, qui permet connecter plusieurs appareils à un port USB unique sur l'ordinateur.
Au niveau LIAISON / ACCES RESEAU, la passerelle permettant d'émettre à nouveau le message à l'intérieur d'un réseau sera nommée un pont.
Dans un bon nombre de réseaux, la communication se fait souvent par commutation au niveau LIAISON. Ce pont se nomme donc un commutateur. Mais attention, tous les ponts ne sont pas des ponts-commutateurs. Il existe également des ponts-routeurs qui routent les paquets IP sans repasser par le niveau RESEAU / INTERNET ce qui augmente la vitesse de transmission puisqu'il y a moins de traitement à faire.
Au niveau RESEAU, la passerelle permettant de transmettre un message est un relais. Dans un bon nombre de réseaux, ce relais utilise la technique du routage. On parle donc de routeur. Mais on trouve également de la commutation.
Néanmoins, dans l'usage usuel, passerelle désigne plutôt l'appareil faisant cette liaison en remontant jusqu'au niveau APPLICATION au moins (comme votre Box). Cet appareil peut surveiller les communications et faire office de firewall par exemple. Chez vous, il s'agit donc de votre Box.
Activité publiée le 26 10 2020
Dernière modification : 02 12 2020
Auteur : ows. h.