Archi Trajet Paquet IP

Identification

Infoforall

18 - Tables de routage


Les connaissances exigibles pour la NSI sont :

  • Le protocole IP permet d'identifier le réseau et la machine sur lequel il tourne;
  • Le protocole TCP permet de garantir que les messages sont bien transmis;
  • Une table de routage est utilisée pour déterminer la prochaine destination d'un paquet IP

Cette activité va surtout permettre de remettre en place vos souvenirs de 1er : nous allons travailler cette année sur les algorithmes de routage : les techniques permettant la gestion automatisé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 sûrement vous servir !

Prérequis : -

Evaluation ✎ : questions -

Documents de cours : open document ou pdf

1 - Couche APPLICATION

Nous allons voir que la couche APPLICATION permet la tranmission d'informations 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 qui permet la communication entre un client HTTP et un serveur HTTP.

Internet est, notamment, constitué de routeurs qui permettent à l'information de circuler sous la forme de paquets IP.

Commençons par revoir comment cela fonctionne.

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.

Couche TRANSPORT Protocole : TCP (et +) Adresse : PORT Message : SEGMENT DATA d'un programme SEGMENT TCP Port SRC 443 Port DST 2050 Seq 4 Suiv 2 Flags : ACK CS : 15241 PAQUET IP IP DST 25.25.25.5 IP SRC 45.45.45.2 TRAME (Ethernet ou Wifi) SEQUENCE INTIALE MAC DST MAC SRC CheckSum selon le type de trame Couche RESEAU Protocole : IP (et +) Adresse : IP Message : PAQUET Couche ACCES réseau Protocole : WLAN ... Adresse : MAC Message : TRAME Couche Application Firefox Couche Application Couche Application Serveur HTTP Communication Firefox Comm. prog B A B Rq TCP Rp1 TCP Rp2 TCP vide TCP ? A TCP IP Trame B TCP IP Trame data SRC 2050 DST 443 Seq data SRC 24945 DST 443 Seq data SRC DST CS data Seq Suiv F vide Seq Suiv F SRC 2050 DST 443 F ACK Suiv 0 Seq 1 CS XXXXX Data TCP IP DST IP SRC TTL / HL

Pour rappel :

  • Application gère la mise en forme d'une communication entre deux programmes
  • Transport gère le transport des communications entre tous les programmes
  • Réseau/Internet gère le transport des communications entre tous les ordinateurs
  • Accès gère la communication entre deux ordinateurs (c'est à dire gère leurs cartes réseaux)
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 :

  1. Encapsulation : chaque tâche est encapsulée dans l'unique couche qui la gère.
  2. Interface : chaque couche communique avec ses voisines directes uniquement en utilisant les fonctions d'interface disponibles. Une couche a juste besoin de savoir comment faire appel à ses deux voisines.

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 prendrons l'exemple de l'application Web qui utilise Internet pour faire transiter ses données.

(Rappel) 1.1 Protocole HTTP

A - Principe

Le protocole HTTP est destiné à faire communiquer deux programmes :

  • Un programme client HTTP qui se connecte à
  • un programme serveur HTTP.

Le protocole HTTP est basé sur une communication en 3 étapes :

1 Requête - 2 - Traitement - 3 - Réponse
Requête - Traitement - Réponse
  1. Le client envoie sa requête (nous verrons qu'il utilise une URL).
  2. Le serveur reçoit et analyse la requête
  3. Le serveur renvoie sa réponse (nous verrons qu'elle contient parfois un texte nommé code-source HTML)
B - Une notion connue : le code de réponse

La réponse HTTP contient un nombre, le code de réponse. Vous connaissez certainement le 404. Les voici :

  • Code 200 : le serveur dit que tout s'est bien passé.
  • Code 404 : le serveur ne trouve aucune ressource correspondant à la requête.
  • Code 300 : le serveur dit que la ressource n'a pas été modifiée depuis la dernière fois que le client lui a demandé. Le client doit juste aller voir dans sa mémoire-cache.
  • Code 500 : le serveur rencontre une erreur de programmation en tentant de résoudre la requête....
C - Le programme client usuel : le navigateur Web
  • Firefox de la fondation Mozilla,
  • le moteur libre Chromium, produit par Google
  • Chrome, une surcouche propriétaire de Chromium, produit par Google.
  • Safari pour Apple
  • Brave, une surcouche libre de Chromium, produit par Brave Software.
  • Safari pour Apple
  • ...
(Rappel) 1.2 La couche APPLICATION
graph LR subgraph Programme A I(("Code\ninterne")) <-. communication .-> D["APPLICATION\nformatage\nou\nextraction"] end subgraph Programme B A["APPLICATION\nformatage\nou\nextraction"] <-. communication .-> S(("Code\ninterne")) end D <--> Mystere["..."] <--> A style A fill:#6ff,stroke:#880,stroke-width:2px style D fill:#6ff,stroke:#880,stroke-width:2px style Mystere fill:#99f,stroke:#333,stroke-width:2px

Qu'est que la couche APPLICATION ?

C'est un programme chargé de mettre en forme les informations sous un format précis connus de tous.

Deux cas se présentent :

  • Envoi : mise en forme codifié des informations que veut transmettre un programme.
  • Réception : extraction des informations contenus dans le message codifié réçu.

Cette couche fait donc office d'INTERFACE entre un programme et le monde extérieur.

Exemple : le format HTTP
  • On commence par écrire l'en-tête HTTP qui est composé de deux parties :
    1. une première ligne contenant 3 informations : la méthode d'envoi, la ressource voulue et le protocole utilisé. L'espace (octet de valeur 32) est le caractère délimiteur.
    2. plusieurs autres lignes constituant une sorte de dictionnaire : la clé (nom de l'information), le caractère : et la valeur de cette information.
  • On finit par le message en lui-même. Lorsque le serveur HTTP répond, c'est là qu'il place les octets d'un code HTML ou les octets d'une image par exemple.
Exemple de requête POST

Voici une requête POST qu'envoie un client (Firefox tournant sous Linux) pour tenter de connecter l'utilisateur bob dont le mot de passe est 1234! :

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

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.

(Rappel) 1.3 Requête issue d'un formulaire utilisant la méthode GET

Que faut-il observer ?

Vous constaterez que vos paramètres sont transmis dans l'URL demandée et qu'il n'y a rien sous l'en-tête : la partie "message" est vide.

Lire l'URL, éventuellement simplement dans la barre d'espace permettrait de connaître le mot de passe de l'utilisateur. Ce n'est pas sécurisé.

(Rappel) 1.4 Requête issue d'un formulaire utilisant la méthode POST

Que faut-il observer ?

Vous constaterez que vos paramètres sont transmis dans la partie "message".

Voir l'URL dans le navigateur ne permet pas de connaître le mot de passe de l'utilisateur.

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

La couche TRANSPORT se charge de transporter les communications entre tous les programmes en même temps.

Cette couche utilise des protocoles pour permettre ce transport.

Elle identifie les programmes en utilisant des adresses nommées PORT.

Le protocole TCP fait partie de la couche TRANSPORT : il est chargé, notamment, de la gestion des accusés de réception.

Sur notre exemple, Firefox envoie donc un message à ... la couche TRANSPORT de l'ordinateur sur lequel tourne Firefox.

(Rappel) 2.1 Missions de la couche TRANSPORT
graph LR subgraph O1[Ordinateur 1] subgraph Programme A CIA("...") <--> PA["APPLICATION\nformatage\nou\nextraction"] end subgraph Programme B CIB("...") <--> PB["APPLICATION\nformatage\nou\nextraction"] end T1["TRANSPORT\n1"] end subgraph O2[Ordinateur 2] subgraph Programme C PC["APPLICATION\nformatage\nou\nextraction"] <--> CIC("...") end subgraph Programme D PD["APPLICATION\nformatage\nou\nextraction"] <--> CID("...") end T2["TRANSPORT\n2"] end PA <--> T1 <--> Mystere["..."] <--> T2 <--> PC PB <--> T1 T2 <--> PD style PA fill:#6ff,stroke:#880,stroke-width:2px style PB fill:#6ff,stroke:#880,stroke-width:2px style PC fill:#6ff,stroke:#880,stroke-width:2px style PD fill:#6ff,stroke:#880,stroke-width:2px style Mystere fill:#99f,stroke:#333,stroke-width:2px style T1 fill:#dd6,stroke:#333,stroke-width:2px style T2 fill:#dd6,stroke:#333,stroke-width:2px style O2 fill:#aaaa,stroke:#333,stroke-width:2px style O1 fill:#aaaa,stroke:#333,stroke-width:2px

Principe général

La couche TRANSPORT est un peu le bureau de poste des applications de votre ordinateur. Elle reçoit :

  • les messages que vos applications veulent envoyer
  • les messages que vos applications reçoivent personnellement

Et, tout cela, pour toutes les applications en même temps.

Que va faire la couche TRANSPORT du message que lui envoie Firefox ?

1 - Segmentation du message initial

TRANSPORT découpe le message en plusieurs sous-messages (qu'on nommera DATA) si le message du base est important.

7 6 5 4 3 2 1
2 - Identification des programmes avec le PORT
  • Ensuite, TRANSPORT 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 0 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 :
      • le PORT 80 pour les serveurs HTTP
      • le PORT 443 pour les serveurs HTTPS
    3 - Création et gestion des segments

    TRANSPORT numérote et rajoute différentes informations (dont les PORTS) à chacun des sous-messages. Les sous-messages obtenus se nomment des segments TCP .

    (Rappel) 2.2 Description d'un SEGMENT

    Un segment TCP est un des sous-messages DATA précédé d'informations supplémentaires qu'on nomme l'en-tête TCP. Parmi les informations, on trouve notamment :

    • 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 ...

    On connaît la structure de l'en-tête bit par bit et on peut donc récupérer facilement les données contenues.

    Nous allons simplement noter cet en-tête TCP par un rectangle jaune.

    Nous avons maintenant des segments numérotés, et on peut identifier le programme-expéditeur et le programme-destinataire DST.

    1

    On parle de programmes. Mais ils tournent sur des machines réelles. 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

    La couche RESEAU se charge de transmettre les communications entre tous les ordinateurs en même temps.

    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.

    (Rappel) 3.1 Adressage des machines

    Adresse IP : réseau + machine

    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
    Adressage pédagogique

    Imaginons un système basique :

    • 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)

    Ainsi A9 veut dire qu'il s'agit de la machine 9 appartenant au réseau A.

    Exemple de réseaux avec des réseaux ABCZ et les machines associées
    Illustration des réseaux réalisée avec Filius

    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.

    (Rappel) 3.2 Missions de la couche RESEAU ou INTERNET
    graph LR subgraph O1[Ordinateur 1] subgraph Programme A CIA("...") <--> PA["APPLI\nA"] end subgraph Programme B CIB("...") <--> PB["APPLI\nB"] end T1["TRANSPORT\n1"] <--> R1["RESEAU\n1"] end subgraph O2[Ordinateur 2] subgraph Programme C PC["APPLI\nC"] <--> CIC("...") end subgraph Programme D PD["APPLI\nD"] <--> CID("...") end R2["RESEAU\n2"] <--> T2["TRANSPORT\n2"] end R1 <--> Mystere["..."] <--> R2 PA <--> T1 PB <--> T1 T2 <--> PD T2 <--> PC style PA fill:#6ff,stroke:#880,stroke-width:2px style PB fill:#6ff,stroke:#880,stroke-width:2px style PC fill:#6ff,stroke:#880,stroke-width:2px style PD fill:#6ff,stroke:#880,stroke-width:2px style Mystere fill:#99f,stroke:#333,stroke-width:2px style T1 fill:#dd6,stroke:#333,stroke-width:2px style T2 fill:#dd6,stroke:#333,stroke-width:2px style O2 fill:#aaaa,stroke:#333,stroke-width:2px style O1 fill:#aaaa,stroke:#333,stroke-width:2px style R1 fill:#6d6,stroke:#333,stroke-width:2px style R2 fill:#6d6,stroke:#333,stroke-width:2px

    Mission n°1 : savoir à qui transmettre !

    La couche RESEAU se charge de savoir si le message est arrivé à destination, ou pas. On distingue trois cas :

    1. Le message est arrivé sur la machine de destination.
    2. Le message est arrivé sur le bon réseau : la machine qui reçoit le message appartient au réseau de la machine de destination.
    3. Le message n'est pas encore parvenu à atteindre le réseau de la machine de destination.

    Pour réaliser cette mission, il faut donc pouvoir identifier le réseau ET identifier la machine.

    Paquet IP

    Lorsque la couche RESEAU reçoit un segment en provenance de la couche TRANSPORT, elle va rajouter un en-tête IP devant le segment. Que contient cet en-tête ? Des informations supplémentaires, notamment :

    • L'adresse IP de la destination DST
    • L'adresse IP de la source SRC

    L'ensemble formé par ce nouvel en-tête et le SEGMENT précédé se nomme un PAQUET IP.

    Protocole : TCP (et +) Adresse : PORT DATA d'un programme SEGMENT TCP Port SRC 443 Port DST 2050 Seq 4 Suiv 2 PAQUET IP IP DST 25.25.25.5 IP SRC 45.45.45.2 TTL 50 TRAME (Ethernet ou Wifi) SEQUENCE INTIALE MAC DST MAC SRC CheckSum selon le type de trame Protocole : IP (et +) Adresse : IP Message : PAQUET Couche LIAISON Protocole : WLAN ... Adresse : MAC Message : TRAME Couche Application Firefox (client) Protocole : HTTP Couche Application Serveur HTTP Protocole : HTTP Rep http Requete Rep TCP IP Req TCP IP Data TCP IP IP DST IP SRC TTL / HL ACK TCP IP
    Exemples en images

    Voyons cela en images.

    1. nous avons atteint la bonne machine
    2. La couche RESEAU de A9 à un paquet pour A9.RESEAU va alors transmettre le paquet à la couche APPLICATION de A9

      Destinataire réel = Destinataire final
    3. nous avons atteint une machine qui appartient au même réseau que la machine de destination
    4. La couche RESEAU de A9 à un paquet IP pour A2.
      Il suffit d'envoyer le paquet IP à la couche RESEAU de A2 via le réseau local

      Communication entre deux machines du même réseau
      Illustration de deux machines communiquant via le réseau local
    5. nous sommes sur une machine qui n'appartient pas au même réseau
    6. La couche RESEAU de A9 à un paquet pour B7.
      Il suffit d'envoyer le paquet IP à la couche RESEAU du routeur A qui se chargera de sortir du réseau actuel.

      La communication entre deux réseaux distincts passe par un routeur
    (Rappel) 3.3 Particularité des communications 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ée 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.

    Le routeur particulier qui permet de sortir du réseau est souvent nommé également PASSERELLE.

    Exemple

    La communication entre deux réseaux distincts passe par un routeur

    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 :

    1. votre réseau local personnel, celui de votre maison
    2. le réseau de votre opérateur Internet
    Relier deux machines uniquement

    Oon 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.

    Communication entre deux réseaux

    01° Quelle est la partie réseau et la partie machine de l'adresse A3 ?

    Exemple de réseaux avec des réseaux ABCZ et les machines associées
    Illustration des réseaux réalisée avec Filius

    ...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 ?

    (Rappel) 3.4 Description des paquets 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 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.

    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 trouvable.

    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 :

    (Rappel) 3.5 Description de l'adressage IP v4

    A - Généralités

    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.

    Il existe donc 232 adresses différentes possibles puisque cette adresse possède 32 bits.

    Cela donne un peu plus de 4 milliards. Ca paraissait beaucoup à l'époque, mais ce n'est plus suffisant...

    Exemple :  200.2.100.42 .

    B - Réseau à gauche, machine à droite

    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, et jamais un nombre de bits non mutiples de 8.

    Exemple :  200.2.100.42 .

    Réseau : 200.0.0.0

    Machine : 0.2.100.42

    Comme on ne peut pas mettre de couleurs sur les octets, il a bien fallu trouver un autre moyen de distinguer les deux parties.

    C - Notation avec un slash : CIDR

    Oon 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 propres au réseau lui-même (8 bits pour un octet, 16 bits pour 2 octets...).

    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 
    D - 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 masque  255.0.0.0  veut dire :
      • Adresse réseau :  200.0.0.0 
      • Adresse machine :  0.2.100.42 
    • Adresse  200.2.100.42  et masque  255.255.0.0  veut dire :
      • Adresse réseau :  200.2.0.0 
      • Adresse machine :  0.0.100.42 
    • Adresse  200.2.100.42  et masque  255.255.255.0  veut dire :
      • Adresse réseau :  200.2.100.0 
      • Adresse machine :  0.0.0.42 
    E - Trois types d'adresses IP v4
    1. Les adresses publiques sont les adresses qu'on peut joindre directement depuis Internet. Chaque adresse de ce type doit donc être unique sur Internet.
    2. Adresses publiques : accessibles directement
      Illustration adresses publiques réalisée avec Filius
    3. 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 est un routeur qui se fait passer pour la machine du réseau interne et qui lui retransmettra le message une fois que la réponse sera arrivée. Toutes les machines possèdant une adresse privées ont donc l'air d'avoir la même adresse IP depuis l'extérieur puisqu'elles utilisent l'adresse IP externe de la passerelle.
    4. Adresses privées : accessibles uniquement via la passerelle
      Illustration adresses privées réalisée avec Filius

        Les adresses des petits réseaux privés (comme votre réseau domestique) sont toutes  192.168.1.xxx /24 .

        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 .

    5. L'adresse particulière localhost : l'ordinateur actuel est identifié par  127.0.0.1 

    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.

    (Rappel) 3.6 Description de l'adressage IP v6

    A - Principe

    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 
    B - Précisions sur la lecture des adresses
    • Chaque valeur entre deux : varie donc entre 0000 et FFFF et correspond à deux octets.
    • 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 
    C - Nombre d'adresses disponibles

    Toutes les machines joignables sur Internet peuvent possèder une adresse IP propre au vu du nombre d'adresses disponibles (2128), soit 340282366920938463463374607431768211456.

    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. Cela permet d'éviter de donner la vraie adresse IP d'une machine et ainsi de l'exposer directement à Internet.

    Conception d'une adresse IP v6

    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-48 de la carte réseau de la machine. D'autres méthodes existent.

    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 :

    1. Les 3 premiers couples (48 bits) sont propres à tous les clients du fournisseur.
    2.  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.

    3. le 4e couple (16 bits) forme l'un des sous-réseaux du fournisseur (deux clients peuvent donc avoir une valeur différente)
    4.  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.

    5. les 4 derniers couples (64 bits) forme l'adresse-machine (obtenue à partir des 48 bits de l'adresse MAC, ou pas).
    6.  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.

    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 :

    1. A qui envoyer le message ?
    2. 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.

    1. Si on est déjà sur la bonne machine : c'est la machine actuelle (localhost) qui pourra transmettre le message à sa couche TRANSPORT.
    2. 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.
    3. 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.

    1. Une colonne IP DESTINATION qui permet de sélectionner le cas qui nous intéresse.
    2. 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.
    3. 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 :

    1. La machine-destinataire DST est l'ordinateur actuel lui même :
      • Destinataire réel = Destinataire final
        Exemple : A9 doit transmettre un paquet IP à A9.
      • 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.
      Si l'IP de Destination estdonner à IP PASSERELLEen transmettant avec l'INTERFACE indiquée
      A9LocalhostLocalhost

      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.

    2. La machine-destinataire DST appartient au réseau de l'ordinateur actuel :
      • Destinataire réel = Destinataire final
        Exemple : A9 doit transmettre un paquet IP à A2 qui est sur le même réseau local
      • 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)
      • Si l'IP de Destination estdonner à IP PASSERELLEen transmettant avec l'INTERFACE indiquée
        A9LocalhostLocalhost
        N'importe quelle autre adresse du réseau AA9 via le réseau localOn 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.

    3. Le destinataire est sur un autre réseau :
      • Destinataire réel = Destinataire final
        Exemple : A9 doit envoyer un paquet IP pour C2.
      • 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 estdonner à IP PASSERELLEen transmettant avec l'INTERFACE indiquée
      A9LocalhostLocalhost
      N'importe quelle autre adresse du réseau AA9 via le réseau localon utilise l'unique carte-réseau de A9
      N'importe quelle adresse du réseau BA1on utilise l'unique carte-réseau de A9
      N'importe quelle adresse du réseau CA1on utilise l'unique carte-réseau de A9
      N'importe quelle adresse du réseau YA1on utilise l'unique carte-réseau de A9
      N'importe quelle adresse du réseau ZA1on 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 :

    1. On trouve parfois l'adresse IP de la carte (adresse logique).
    2. On trouve parfois l'adresse MAC de la carte (adresse physique).
    3. 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

    DESTINATIONPASSERELLEINTERFACE
    A9LocalhostLocalhost
    Réseau AA9 via le réseau localA9
    Réseau BA1A9
    Réseau CA1A9
    Réseau YA1A9
    Réseau ZA1A9

    Devient.

    DESTINATIONPASSERELLEINTERFACE
    A9LocalhostLocalhost
    Réseau AA9 via le réseau localA9
    Par défautA1A9

    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 !

    DESTINATIONPASSERELLEINTERFACE
    A1 ou Y1 ou Z1LocalhostLocalhost
    Réseau AA1 via le réseau localA1
    Réseau YY1 via le réseau localY1
    Réseau ZZ1 via le réseau localZ1
    Réseau BY2Y1
    Réseau CZ2Z1

    On remarquera bien que toutes les passerelles proposées font bien partie des réseaux auxquels le routeur est directement relié.

    Exemple de réseaux avec des réseaux ABCZ et les machines associées

    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

    DESTINATIONPASSERELLEINTERFACE
    C1 ou X1 ou Z2LocalhostLocalhost
    Réseau CC1 via le réseau localC1
    Réseau XX1-même via le réseau localX1
    Réseau ZZ2 via le réseau localZ2
    DéfautX2X1

    On remarquera bien que toutes les passerelles proposées font bien partie des réseaux auxquels le routeur est directement relié.

    Exemple de réseaux avec des réseaux ABCZ et les machines associées

    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...

    DESTINATIONPASSERELLEINTERFACE
    B1 ou X2 ou Y2LocalhostLocalhost
    Réseau BB1 via le réseau localB1
    Réseau XX2 via le réseau localX2
    Réseau YY2 via le réseau localY2
    DéfautY1Y2

    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
    Transfert d'un paquet IP
    CLIQUER SUR L'IMAGE pour ANIMER ou STOPPER

    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

    Rien d'exigible ici : toute ce qui suit dépend énormément de la nature du réseau (Wifi, Ethernet, Fibre optique, réseau très grand débit...) et des technologies et des normes. Tout cela évolue vite. Trop vite pour qu'il y ai un quelconque intérêt à en connaître les détails à moins de déjà travailler dans ce domaine. C'est pour cela que le programme n'en parle pas.

    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.

    Transfert d'un paquet IP
    Le trajet du paquet IP à travers juste 2 routeurs

    7 - FAQ

    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.

    Comparaison des couches du modèle ISO et du modèle TCP / IP
    Image CC BY-SA 3.0 par tomsgued sur Wikipedia
    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.