Archi IP

Identification

Infoforall

6 - Protocole IP


Nous allons voir aujourd'hui la couche RESEAU dont le rôle est de permettre le transport de messages entre tous les ordinateurs (en utilisant les adresses IP).

Evaluation ✎ : questions 4-7-10-13-15-16.

Documents de cours : open document ou pdf

1 - Qu'est-ce qu'un paquet IP ?

Commençons par un rapide rappel global.

Une application fait appel à

sa couche APPLICATION qui met la communication en forme puis fait appel à

la couche TRANSPORT pour identifier les programmes (PORT) puis fait appel à

la couche RESEAU pour identifier les ordinateurs (adresses IP).

Couche TRANSPORT Protocole : TCP (et +) Adresse : PORT Message : SEGMENT Sous-message d'un programme SEGMENT TCP SRC 443 DST 2050 SEQ 4 SUI 2 Flags dont ACK CS : 15241 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 Couche RESEAU 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

Couche APPLICATION :

  • Mission : permettre à deux programmes de communiquer sans ambigüité en partageant un même protocole.
  • Nom du message transportable : communication, requête, réponse...
  • Pour transporter le message, elle fait appel à la couche TRANSPORT.

Couche TRANSPORT :

  • Mission : identifier les programmes et permettre le transport simultané des messages de tous les programmes.
  • Identification d'un programme : PORT.
  • Nom du message transportable : SEGMENT.
  • >
  • Ne sachant pas transporter un SEGMENT vers une autre couche TRANSPORT, elle fait appel à la couche RESEAU.

Nous allons voir aujourd'hui ce que doit faire la couche RESEAU des SEGMENTS qu'on lui demande de gérer.

Commencons par une animation montrant l'évolution progressive des en-têtes :

  • Encapsulation lorsqu'on rajoute un en-tête
  • Transport du paquet
  • Désencapsulation lorsqu'on enlève un en-tête
  • Vous pouvez cliquer sur la requête initiale Req pour voir le rajout progressif des en-têtes.

Un PAQUET IP est donc simplement un SEGMENT devant lequel on a rajouté un en-tête IP basé sur l'adressage et le protocole IP.

Couche RESEAU :

  • Mission : identifier les ordinateurs et permettre le transport des messages entre tous les ordinateurs.
  • Identification d'un ordinateur et de son réseau : ADRESSE IP lorsqu'on utilise le protocole IP.
  • Nom du message transportable : PAQUET.
  • >

Pour assurer sa mission, la couche RESEAU doit déjà pouvoir :

  1. Identifier les ordinateurs
  2. Identifier les réseaux sur lequels sont ces ordinateurs
  3. Déterminer le chemin à suivre

Voyez cette couche comme un aiguilleur. Elle se charge de savoir à qui le PAQUET est destiné.

Animation sur IP
CLIQUER SUR L'IMAGE pour ANIMER ou STOPPER

Globalement, il n'y a donc que trois possibilités.

    Bonne machine
  1. nous sommes sur la machine de destination
    • Ici A9 à un message pour A9
    • Destinataire réel = Destinataire final
    • Destination suivante : on doit envoyer le message vers la couche APPLICATION de la machine actuel
    Bon réseau
  2. nous sommes sur une machine qui appartient au même réseau que la machine-destination
    • Communication entre deux machines du même réseau
      Illustration de deux machines communiquant via le réseau interne
    • Ici A9 à un message pour A2
    • Destination suivante : on doit envoyer le message à la couche RESEAU de A2 via sur le réseau interne. Le commutateur (switch en anglais) est le nom de l'appareil reliant localement les appareils entre eux.
    Mauvais réseau
  3. nous sommes sur une machine qui n'appartient pas au même réseau que la machine-destination
    • La communication entre deux réseaux distincts passe par un routeur
    • Ici A9 à un message pour B7
    • Destination suivante : on doit envoyer le message au routeur défini comme passerelle vers le réseau de destination

Comme vous avez dû le voir l'en-tête IP contient notamment des adresses IP. Il est donc temps de voir ce qu'elles sont.

2 - Principe de l'adresse IP

1 - Adresses IP

Les adresses IP sont des adresses identifiant les machines mais pouvant en réalité contenir deux informations :

  1. une partie contient l'adresse du réseau auquel la machine appartient
  2. une partie est propre à l'adresse de la machine sur le réseau

Nous allons voir 3 systèmes de gestion d'adresses.

2 - Système fictif lettre + nombre

On prendra

  1. une lettre pour symboliser le réseau
  2. un numéro pour symboliser la machine sur ce réseau

Exemple  HOTE LOCAL veut dire que cet ordinateur est sur le réseau A et que son adresse sur le réseau est 2.

Nous rajouterons une adresse particulière : HOTE LOCAL ou LOCALHOST en anglais. Il s'agit de la machine sur laquelle on se trouve, quelque soit son adresse IP réelle.

01° Nous sommes sur T4. T4 veut communiquer avec T12. A qui transmettre le PAQUET IP ?

  1. On délivre à la machine actuelle.
  2. On délivre à l'une des autres machines du réseau actuel
  3. On doit quitter le réseau actuel

...CORRECTION...

  • On délivre à l'une des autres machines du réseau actuel
  • 02° Nous sommes sur T4. T4 veut communiquer avec LOCALHOST. A qui transmettre le PAQUET IP ?

    1. On délivre à la machine actuelle.
    2. On délivre à l'une des autres machines du réseau actuel
    3. On doit quitter le réseau actuel

    ...CORRECTION...

  • On délivre à la machine actuelle.
  • 03° Nous sommes sur T4. T4 veut communiquer avec X42. A qui transmettre le PAQUET IP ?

    1. On délivre à la machine actuelle.
    2. On délivre à l'une des autres machines du réseau actuel
    3. On doit quitter le réseau actuel

    ...CORRECTION...

  • On doit quitter le réseau actuel
  • Voici un exemple de transport de paquet IP de routeur en routeur :

    04° Cliquer sur le PAQUET IP pour voir son déplacement de la machine émettrice à la machine réceptrice.

    La machine A4 du réseau A veut envoyer un PAQUET IP à la machine D3 du réseau D.

    Le chemin visualisé est : A4-A1-G1-H1-D1-D3

    Transport de paquets IP

    ✎ 05° Proposer un autre chemin qu'on aurait pu faire suivre à ce paquet.

    06° Un réseau local est un ensemble d'ordinateurs pouvant communiquer entre eux sans passer par un réseau extérieur, comme Internet. Quelles sont les machines du réseau A ?

    ...CORRECTION...

    A1 (le routeur vers l'extérieur), A2, A3 et A4.

    07° Quelle est la particularité des appareils comme A1, B1, C1 en F1 en terme d'appartenance aux réseaux ?

    ...CORRECTION...

    Ces appareils appartiennent à deux réseaux à la fois !

    Par exemple, A1 appartient à la fois au réseau A (en vert) et au réseau G.

    08° Quelle est la zone qui se rapproche de ce qu'on pourrait nommer Internet ?

    ...CORRECTION...

    La zone centrale en jaune : elle permet de relier les réseaux entre eux.

    On notera que les routeurs G1, K1, H1, I1 et J1 permettent certainement également de joindre un réseau interne en plus de participer à l'acheminement des paquets IP des autres réseaux.

    En réalité, les routeurs doivent donc disposer d'une adresse IP propre à chaque réseau sur lequel il dispose d'une carte réseau connectée :

    09° Si A2 veut transférer un paquet IP vers un réseau extérieur, à quel "côté" de A doit-il transmettre le paquet IP ?

    • Du côté interne (la carte réseau qui pointe vers le commutateur)
    • Du côté externe (la carte réseau qui pointe vers le routeur G)

    ...CORRECTION...

    Un humain aurait tendance à répondre le côté externe vers G mais cela n'est pas possible : il n'existe pas de liaison directe entre la carte réseau de A2 et la carte réseau de A1 en liaison avec G.

    La machine A2 doit donc transférer son paquet IP à A1-côté réseau interne. Le routeur A va alors transférer le paquet IP entre ces deux cartes réseau pour la faire sortir du côté externe.

    10° Combien d'adresses réelles a le routeur qu'on pourrait nommer G ?

    ...CORRECTION...

    Puisqu'il est connecté à 6 routeurs, il peut avoir 6 adresses IP caractérisant chacune l'une des cartes réseaux qu'il possède.

    3 - Routeur et table de routage

    Un routeur est un ordinateur qui possède plusieurs particularités.

    Sa première particularité est de possèder plusieurs cartes réseaux lui permettant d'appartenir à plusieurs réseaux.

    Sa deuxième particularité est d'accepter de traiter les paquets IP reçus qui ne lui sont pas destinés car l'adresse de destination n'est pas la sienne : un ordinateur normal met simplement un tel paquet IP à la poubelle.

    Pour savoir à qui transmettre, chaque routeur possède table de routage : il s'agit d'une table lui indiquant où envoyer un paquet IP en fonction du réseau de destination.

    Exemple avec la table de routage du routeur nommé G :

    Pour envoyer un paquet à une machine du réseau Transfère le paquet VERS la machine nommée
    A routeur A
    B routeur B
    C routeur C
    D ou H routeur D
    E, F, K ou J routeur K
    I routeur I

    Pour le "routeur A1" 

    Pour envoyer un paquet à une machine du réseau Transfère le paquet VERS la machine nommée
    A la bonne machine (nous sommes sur le bon réseau)
    les autres routeur G

    Route par défaut

    Comme un routeur ne peut pas connaître tous les routeurs du monde, il existe toujours ce qu'on nomme une route par défaut. Cette ligne dans la table est donc une sorte de else, donnant le chemin à suivre si aucun des choix précédents n'a fourni de réponse.

    ✎ 11° Compléter au mieux la table de routage du routeur K sans possibilité de rajouter de lignes.

    Pour envoyer un paquet à une machine du réseau Transfère le paquet VERS la machine nommée
    F routeur F
    I,J,E ?
    Route par défaut ?
    6 -Couche RESEAU : bilan

    La couche RESEAU est également nommée couche INTERNET lorsqu'on l'utilise avec le protocole IP qui utilise l'adressage IP.

    D'ailleurs, IP veut dire... Internet Protocol.

    Nous ne parlerons que de cette version ici.

    Couche RESEAU (version IP) :

    • Mission : identifier et permettre le transport des messages entre tous les ordinateurs.
    • Identification d'un ordinateur et de son réseau : ADRESSE IP lorsqu'on utilise le protocole IP.
    • Nom du message transportable : PAQUET IP.
    • >

    Elle doit donc

    • identifier et localiser les ordinateurs : utilisation de l'adresse IP.
    • distinguer les communications : les messages à transmettre sont encapsulés dans des PAQUET IP : l'IP de destination est clairement indiquée dans l'en-tête IP.
    • savoir à qui transmettre le paquet : le protocole IP permet de distinguer trois cas :
      1. nous sommes déjà sur le bon ordinateur :
        • on transfère à la couche TRANSPORT (contenant TCP)
      2. nous sommes dans le bon réseau de destination :
        • on transfère à la bonne machine
      3. nous devons trouver le réseau de destination.
        • on transfère à la bonne passerelle
    • émettre les PAQUETS IP : ne sait pas faire seule
      • INTERNET (ou RESEAU) fait appel à ACCES RESEAU, la couche qui est en interaction avec les cartes réseaux.

    3 - Adresses IP réelles : version 4

    Nous allons regarder rapidement comment sont structurées les adresses IP, que ce soient en version 4 ou en version 6.

    Vous devez juste savoir qu'elles contiennent des mécanismes permettant d'identifier

    • l'adresse du réseau et
    • l'adresse de la machine

    Les connaissances spécifiques sur ces adresses ne sont PAS au programme.

    Un petit rappel de l'histoire d'Internet :

    lien youtube vers la vidéo Histoire d'Internet par Mister Flèche

    Commençons par voir qui attribue les adresses.

    Attribution des adresses IP

    A l'origine, une seule personne était chargée de donner des adresses sur le réseau ARPANET, l'ancêtre militaire d'INTERNET. Nous sommes alors dans les années 1970 et ARPANET est encore limité.

    Sa tâche consistait à attribuer des numéros IP et PORTS de façon à ce qu'aucune association (IP, PORT) ne soit attribuer à deux choses différentes. Ce couple (IP, PORT) se nomme un SOCKET. C'est un tuple que vous aurez à fournir lorsque nous créerons un serveur Python dans l'une des activités suivantes.

    C'est vers la fin des années 1980 que le terme IANA apparait pour la première fois (Internet Assigned Numbers Authority).

    Logo IANA
    Logo IANA (Fair Use)

    Cette autorité était financée à la fois

    • par la DARPA (Defense Advanced Research Projects Agency) et
    • par l'ISI (Information Sciences Institute, université de Californie).

    Depuis 1998, elle est une composante de l'ICANN (Internet Corporation for Assigned Names and Numbers), l'autorité suprême de régulation de l'Internet.

    Logo ICANN
    Logo ICANN (Image sans copyright)

    L'ICANN est une société de droit californien à but non lucratif ayant pour principales missions d'administrer les ressources numériques d'Internet, telles que l'adressage IP et les noms de domaines de premier niveau (TLD) (Citation Wikipedia).

    Et que fait l'IANA ?

    Elle attribue des blocs d'adresses IP à d'autres structures plus régionales, les RIR ( pour Registre Internet régional).

    Ceux-ci vont, à leur tour, distribuer des blocs d'IP aux différents acteurs d'Internet, notamment les fournisseurs d'accès.

    RIRs dans le monde
    RIRs dans le monde (Rir.gif: DorkBlankMap-World6,_compact.svg: Canuckguy et al.derivative work: Sémhur / CC BY-SA)

    ✎ 12° Regardez la carte : comment se nomme le RIR qui gère l'Europe ?

    Pourquoi passer des adresses IP version 4 à une adresse IP version 6 ?

    Nous allons voir que c'est une question de nombre d'adresses disponibles.

    Mais pourquoi l'Asie est-elle passée plus vite que l'Europe à l'IP v6 ?

    C'est une question historique : la répartition initiale des blocs IP n'a pas été réalisée de façon équitable en fonction des continents. La représentation des répartitions des adresses IPv4 est présentée sur l'image suivante sous forme d'une diagramme circulaire (camembert).

    Répartition des adresses
    RIRs dans le monde (Rir.gif: DorkBlankMap-World6,_compact.svg: Canuckguy et al.derivative work: Sémhur / CC BY-SA)

    On voit que l'Afrique et l'Amérique du Sud ont eu très peu d'adresses IP4 attribuées. En violet, on trouve les adresses historiquement déjà distribuées. Vous vous doutez bien que la plupart sont américaines.

    Voyons pourquoi on a fini par épuiser le nombre d'adresses IPv4 disponibles.

    Adresse IP4

    Ces adresses comportent 32 bits repartis sous forme de 4 octets.

    On la représente en décimal en séparant chaque octet par un point.

    Exemples :

    • Adresse au hasard :  82.25.12.15 
    • Localhost :  127.0.0.1 

    Toutes les machines joinables sur Internet possédent une adresse IP propre.

    13° Sachant qu'une adresse IPv4 comporte 32 bits, combien peut-on avoir d'adresses différentes ?

    ...CORRECTION...

    On calcule 232, soit 4294967296 numéros différents.

    Cela donne en gros plus 4 milliards de numéros.

    Pour pallier au manque d'adresses, un système de réseaux privés a été élaboré. Les machines de ces réseaux ne possèdent pas d'adresse IP propres : elles utilisent l'adresse IP de leur routeur-passerelle.

    Conséquence : si 5 ordinateurs et smartphones utilisent la connexion d'une Box Internet, les 5 appareils ont la même adresse depuis l'extérieur.

    Si vous voulez plus de détails sur cela, voir la partie FAQ.

    Distinguer Adresse réseau - Adresse machine en IPv4 (notation 1)

    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 des blocs de 8 bits à la fois.

    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.

    Notation  200.2.100.42 /8   200.2.100.42 /16   200.2.100.42 /24 
    Nbr bits pour réseau 8 bits (1 octet) 16 bits (2 octets) 24 bits (3 octets)
    Adresse réseau  200.0.0.0   200.2.0.0   200.2.100.0 
    Adresse machine  0.2.100.42   0.0.100.42   0.0.0.42 

    14° Une machine possède cette adresse IPv4  100.12.50.32 /24 

    1. Combien d'octets pour la partie réseau ?
    2. Quelle est l'adresse réseau ?
    3. Combien d'octets pour la partie machine ?
    4. Quelle est l'adresse machine ?
    5. Combien de machines peut-on placer sur ce réseau au total ?

    ...CORRECTION...

    1. Combien d'octets pour la partie réseau ?
    2. 3 octets puisque 24 bits pour le réseau.

    3. Quelle est l'adresse réseau ?
    4.  100.12.50.0 

    5. Combien d'octets pour la partie machine ?
    6. Il n'en reste qu'un seul sur les 4 du coup.

    7. Quelle est l'adresse machine ?
    8.  0.0.0.32 

    9. Combien de machines peut-on placer sur ce réseau au total ?
    10. Comme nous avons 1 octet, nous avons 256 valeurs différentes.

      Attention néanmoins :

      • 0 caractérise ici le réseau
      • 255 est une valeur dite de broadcast ("diffusion large") : c'est l'adresse qu'on fournit lorsqu'on veut envoyer un message à tous les appareils du réseau.

      Il n'y a donc que 254 vrais places.

    15° Voici la situation :

    • la machine  100.12.50.32 /24  veut envoyer un PAQUET IP à
    • la machine  100.12.51.33 .

    Que doit-on faire du PAQUET IP d'après le protocole IP ?

    1. Nous sommes sur la bonne machine
    2. Nous sommes sur le bon réseau : on transfère à la bonne machine
    3. Nous sommes sur le mauvais réseau : on transfère à la passerelle suivante

    ...CORRECTION...

    L'adresse réseau de la première machine est composée de 3 octets.

    Réseau de la machine 1 :  100.12.50.0 

    Réseau de la machine 2 :  100.12.51.0  si elle est sur 3 octets.

    Moralité : les deux ordinateurs ne sont pas sur le même réseau.

    Il faut transférer au routeur gérant ce réseau pour qu'il transfère à un autre routeur.

    16° Voici la situation :

    • la machine  100.12.50.32 /16  veut envoyer un PAQUET IP à
    • la machine  100.12.51.33 .

    Que doit-on faire du PAQUET IP d'après le protocole IP ?

    1. Nous sommes sur la bonne machine
    2. Nous sommes sur le bon réseau : on transfère à la bonne machine
    3. Nous sommes sur le mauvais réseau : on transfère à la passerelle suivante

    ...CORRECTION...

    L'adresse réseau de la première machine est composée de 2 octets.

    Réseau de la machine 1 :  100.12.0.0 

    Réseau de la machine 2 :  100.12.0.0  si elle est sur 2 octets.

    Moralité : les deux ordinateurs sont sur le même réseau.

    Il faut transférer le paquet à la bonne machine puisqu'on peut la joindre directement.

    Distinguer Adresse réseau - Adresse machine en IPv4 (notation 2)

    On trouve également une autre notation où on donne l'adresse IP et un deuxième adresse nommée MASQUE permettant de comprendre la première. Dans le cas d'une séparation 8 bits à la fois, c'est facile : 255, c'est le réseau, 0 c'est la machine.

    Adresse IP  200.2.100.42   200.2.100.42   200.2.100.42 
    Masque  255.0.0.0   255.255.0.0   255.255.255.0 
    Adresse réseau  200.0.0.0   200.2.0.0   200.2.100.0 
    Adresse machine  0.2.100.42   0.0.100.42   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 alors lire les bits du masque valant 1 comme voulant dire : ce bit appartient au réseau.

    4 - IP version 6

    Comme les adresses IPv4 ne sont plus assez nombreuses, une nouvelle version du protocole a vu le jour et co-existe pour l'instant avec la version 4.

    Adresse IP6

    Une adresse IP v6 plus lourde qu'une adresse IP v4 : elle est constituée de 16 octets séparés par un point.

    16 octets, cela donne 128 bits (16*8).

    On la représente habituellement en hexadécimal en séparant chaque octet par un double point. Chaque valeur varie donc entre 0000 et FFFF.

    Exemples :

    • Adresse au hasard :  2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 
    • Local host :  0:0:0:0:0:0:0:1  ou en plus concis  ::1/128 

    Toutes les machines joinables sur Internet peuvent possèder une adresse IP propre au vu du nombre d'adresses disponibles.

    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.

    17° Sachant qu'une adresse IPv6 comporte 128 bits, combien peut-on avoir d'adresses différentes ?

    ...CORRECTION...

    On calcule 2128, soit 340282366920938463463374607431768211456 numéros différents.

    Ca devrait aller pour un moment...

    Distinguer Adresse réseau - Adresse machine en IPv6

    On identifie les réseaux de façon plus simple qu'en IPv4. Une manière de faire :

    • la partie-réseau est identifiée par les 64 premiers bits et
    • la partie-machine est identifiée par les 64 autres bits.

    Les adresses sont créées de différentes manières. L'une d'entre elles consiste simplement à prendre les 64 bits du réseau et de prendre les 64 bits de l'adresse MAC de la carte réseau de la machine pour compléter les derniers 64 bits.

    En général, on peut en réalité diviser un réseau en plusieurs petit réseaux et, du coup, décomposer l'adresse IP v6 en trois parties :

    •  2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4  : les trois premiers couples d'octets (48 bits) est propre à l'un des fournisseurs d'accès ou un autre opérateur de ce type. Un gros provider (fournisseur d'accès) peut se voir attribuer plusieurs adresses de ce type
    •  2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4  : le couple d'octets suivant (+16 bits, 64 bits au total) définit un sous-réseau. En règle générale, c'est donc votre provideur qui vous fournit un sous-réseau dans son propre réseau.
    •  2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4  : les 64 derniers bits (4 octets) permettent de définir les parties adresses-machines. Cela peut être directement l'adresse MAC de la carte réseau utilisée.

    18° Que faire si la première adresse veut envoyer un message à la seconde ?

    1. C'est le même ordinateur : on donne à TRANSPORT pour trouver le bon programme
    2. C'est le même réseau : on peut donner à la bonne machine directement
    3. Ce n'est pas le même réseau : on doit passer par un routeur
    •  2a01:cb0c:96ac:d400:63ba:f65c:3616:15d4 
    •  2b01:cb0c:96ac:d400:63ba:f65c:3616:15d4 

    ...CORRECTION...

    Il y a une différence sur les octets de la partie violette : le a est un b dans la deuxième adresse.

    Les deux machines n'appartiennent pas au même réseau : il va falloir faire du routage.

    5 - Protocole IP

    Protocole IP (1/2) - le bilan jusqu'à présent

    IP veut dire Internet Protocol.

    Le protocole IP

    • identifie les machines et assure le transport des messages entre tous les ordinateurs,
    • au mieux des capacités du réseau (on dira best-effort delivery en anglais).

    Cela veut dire qu'IP ne garantit et ne contrôle absolument pas l'arrivée du paquet à destination.

    Cette fonction de garantie de transport est assurée par TCP si on l'utilise.

    Le protocole IP

    • lit l'en-tête du PAQUET IP car celui-ci contient l'adresse IP de la destination
    • détermine à qui transmettre le PAQUET IP
    • demande à la couche ACCES RESEAU de transmettre le PAQUET IP à la passerelle suivante
    Animation sur IP
    CLIQUER SUR L'IMAGE pour ANIMER ou STOPPER

    IP ne s'occupe donc que du choix de la prochaine destination.

    Comme vous l'avez vu sur l'animation, le PAQUET IP est inchangé lorsqu'il passe d'une machine à une autre.

    C'est en partie faux, nous allons voir qu'une petite indication change à chaque fois que le paquet change de routeur.

    Paquet IP et en-tête IP

    L'en-tête IP est un ensemble d'information qu'on va placer devant le SEGMENT TCP composé lui-même de l'en-tête TCP et d'un sous-message.

    Le contenu réel de l'en-tête va dépendre du système d'adressage utilisé : IPv4 ou IPv6 par exemple.

    Que rajoute-on dans cet en-tête IP ? (vous pouvez cliquer sur l'en-tête pour obtenir un zoom si nécessaire)

    • DST : l'adresse IP de la destination (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 source ayant émis le message (4 octets en IPv4, 16 octets en IPV6). Sans cela, on ne pourrait pas répondre au message.
    • TTL : un 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é à un autre routeur. Arrivé à 1, le paquet n'est plus déplacé et part juste à la poubelle.

    Il existe bien entendu encore d'autres données dans cet en-tête mais nous allons nous limiter à ceux-ci.

    Ils permettent de comprendre l'essentiel du protocole.

    >

    19° A quoi sert concrétement le système de Time To Live ou de Hop Limit ?

    ...CORRECTION...

    Cela sert à faire disparaître les paquets qui ne parviennent pas à atteindre la destination. Si on ne le faisait pas disparaître au bout d'un moment, les routeurs devraient continuer à les gérer jusqu'à la fin des temps. Et les paquets "fantomes" seraient plus nombreux que les nouveaux paquets à traiter.

    Passons à quelques manipulations permettant de voir le trajet du PAQUET.

    20° Ouvrir un terminal :

    LINUX : menu application ou  CTRL+ALT+T 

    WINDOWS : menu puis applications puis invite de commande.

    ✎ 21° Trouver votre adresse IP locale en utilisant l'une des commandes proposées : vous allez pouvoir la lire dans les indications de votre carte réseau.

    Question : votre adresse locale sur votre réseau est-elle une adresse IPv4 ou IPv6. Justifiez. Attention, il est possible que vous ayez les deux.

    Système d'exploitation Windows : vous devriez obtenir une réponse de ce type :

    h:\>ipconfig/all
    Configuration IP de Windows Nom de l'hôte : e301-poste12 Carte Ethernet Connexion au réseau local : Suffixe DNS propre à la connexion : lycee.home Description : Broadcom NetXtreme Gigabit Ethernet Adresse physique : 25-CE-55-XX-XX-XX DHCP activé : Oui Configuration automatique activée : Oui Adresse IPv6 de liaison locale : ad41::fe80:b1b1:fe80:fe80%13(préféré) Adresse IPv4 : 192.168.2.78(préféré) Masque de sous-réseau : 255.255.0.0 Bail obtenu : jeudi 4 mai 2017 10:58:30 Bail expirant : vendredi 5 mai 2017 10:58:29 Passerelle par défaut : 192.168.0.250 Serveur DHCP : 192.168.0.250 IAID DHCPv6 : 270843397 DUID de client DHCPv6 : 00-01-00-01-17-BD-7B-ED-24-BE-05-10-C2-C2 Serveurs DNS : 192.168.0.253 Serveur WINS principal : 192.168.0.253 NetBIOS sur Tcpip : Activé

    Linux ou MAC (systèmes Unix) : vous devriez obtenir une réponse de ce type :

    rv@rv-HP2:~$ ifconfig enp2s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 30:e1:71:XXX:XX:XX txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Boucle locale) RX packets 11492 bytes 4538277 (4.5 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 11492 bytes 4538277 (4.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlo1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::bed3:c7ad:XXXX:XXXX prefixlen 64 scopeid 0x20<link> inet6 2a01:cb0c:96ac:d400:f995:XXXX:XXXX:XXXX prefixlen 64 scopeid 0x0<global> inet6 2a01:cb0c:96ac:d400:a38b:XXXX:XXXX:XXXX prefixlen 64 scopeid 0x0<global> ether 3c:a0:67:XX:XX:XX txqueuelen 1000 (Ethernet) RX packets 219822 bytes 225401269 (225.4 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 160066 bytes 32570855 (32.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    ✎ 22° Ouvrir un onglet vers une page permettant de faire une recherche d'IP. Par exemple http://www.mon-ip.com/. Comparer votre IP4 ou IP6 locale à votre IP externe : le serveur du site distant a-t-il eu accès à l'adresse IP de votre Box ou à celle de votre ordinateur ?

    23° Taper la commande suivante (qui risque de ne pas fonctionner depuis un PC d'un lycée).

    ping www.infoforall.fr

    Elle permet de voir qu'une communication peut s'établir (ou non) entre deux ordinateurs. La commande va vous donner le temps moyen de retour du PAQUET IP contenant la demande de ping : le signal part de la machine A (la votre), arrive à la machine B (celle faisant tourner le serveur du site) et revient à la machine A. Comme ping-pong.

    Trouver le temps minimum que met le signal pour faire l'aller-retour.

    Sur Linux : il faut faire cesser les pings à l'aide de  CTRL+C .

    ...CORRECTION...

    PING www.infoforall.fr(http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1)) 56 data bytes 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=1 ttl=54 time=21.6 ms 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=2 ttl=54 time=21.1 ms 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=3 ttl=54 time=22.0 ms 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=4 ttl=54 time=67.9 ms 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=5 ttl=54 time=295 ms 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=6 ttl=54 time=215 ms 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=7 ttl=54 time=21.1 ms 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=8 ttl=54 time=21.9 ms 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=9 ttl=54 time=22.7 ms ^C --- www.infoforall.fr ping statistics --- 9 packets transmitted, 9 received, 0% packet loss, time 8009ms rtt min/avg/max/mdev = 21.140/78.773/295.278/97.216 ms

    On voit donc que le signal met au minimum 21 ms (milliseconde).

    24° Dans quelle ville semble se situer le dernier routeur qui est parvenu à joindre le serveur du site ? Quel semble être le nom de l'hébergeur de ce site ?

    PING www.infoforall.fr(http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1)) 56 data bytes 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=1 ttl=54 time=306 ms

    ...CORRECTION...

    PING www.infoforall.fr(http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1)) 56 data bytes 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=1 ttl=54 time=306 ms

    On voit donc que le serveur est à Paris et qu'il est reliée à une société nommée alwaysdata.

    ✎ 25° Pour observer le chemin suivi par le PAQUET IP, on peut utiliser une commande permettant de voir les différents routeurs traversés.
    LINUX : taper ceci dans un terminal

    traceroute www.infoforall.fr

    WINDOWS : taper ceci dans une console

    tracert www.infoforall.fr

    Fournir le résultat de votre commande. Combien de sauts avez-vous fait pour atteindre le bon réseau ?

    Voici un résultat possible :

    $ traceroute www.infoforall.fr traceroute to www.infoforall.fr (185.31.40.11), 30 hops max, 60 byte packets 1 livebox.home (192.168.1.1) 1.552 ms 1.487 ms 1.626 ms 2 80.10.249.149 (80.10.249.149) 14.597 ms 15.406 ms 15.876 ms 3 lag-123.nclil201.Villeneuve-dascq.francetelecom.net (193.253.89.170) 18.280 ms 18.654 ms 19.564 ms 4 193.252.100.113 (193.252.100.113) 20.365 ms 21.310 ms 21.573 ms 5 ae42-0.nrlil101.Villeneuve-dascq.francetelecom.net (193.252.160.197) 22.246 ms 22.654 ms 23.566 ms 6 ae45-0.nridf201.Aubervilliers.francetelecom.net (193.252.160.218) 28.700 ms 26.297 ms 26.668 ms 7 ae43-0.noidf001.Paris3eArrondissement.francetelecom.net (193.252.98.234) 27.067 ms 19.161 ms 18.475 ms 8 193.253.13.206 (193.253.13.206) 19.813 ms 20.195 ms 23.194 ms 9 alwaysdata.th2.hopus.net (37.77.34.59) 23.503 ms 23.774 ms 23.741 ms 10 http1.paris1.alwaysdata.com (185.31.40.11) 24.183 ms 24.616 ms 25.558 ms

    Comme vous le voyez, les routeurs vont donc faire transiter les PAQUETS IP à l'aide de leurs tables de routage : ils le transfèrent à un autre routeur qui pourra continuer le travail.

    Mais ils vont un peu plus : ils décrémentent la valeur du compteur TTL ou HOP de 1 à chaque transfert. Ils agissent donc de façon très limitée sur le PAQUET IP. C'est pour cela qu'on considère que le paquet IP est inchangé lors du transfert.

    6 - Historique

    Ce n'est pas au programme de NSI, mais vous l'avez peut-être vu en SNT.

    26° Si vous avez un peu de temps et que la vidéo vous a donné envie d'en savoir plus, suivre le lien suivant et lire uniquement la partie 2 de l'activité SNT proposée.

    Vers la partie 2 de l'activité Internet de SNT.

    7 - Bilan

    On retiendra le fonctionnement global de la communication :

    • Un programme structure son message à l'aide d'un protocole de la couche APPLICATION (comme HTTP par exemple).
    • Sa resuête HTTP va alors être segmenter et encapsuler dans des SEGMENTS TCP puis des PAQUETS IP.

      Ce fonctionnement correspond à la première colonne du HAUT vers le BAS.

      Routeur 1 Routeur 2

      Le PAQUET IP va alors transiter de routeur en routeur jusqu'à atteindre la bonne machine.

      On va alors remonter dans les couches (c'est le désencapsulation progressive du message).

      L'association des deux protocoles TCP/IP forme l'ossature logicielle d'INTERNET, totalement indépendante du matériel réel permettant le transport des PAQUETS IP : changer le matériel n'impose pas de changer ces deux protocoles et leurs couches.

      • Le protocole IP est chargé de gérer le transport des PAQUETS IP sans garantie de réussite.
      • Le protocole TCP est chargé de garantir la bonne transmission des SEGMENTS (et gère donc la surveillance des erreurs, des accusés de réception et les envois successifs)
      Animation sur TCP
      CLIQUER SUR L'IMAGE pour ANIMER ou STOPPER

    8 - Vue d'ensemble de la communication

    Communication prog A A A TCP IP Trame

    Comme dans l'activité précédente. Juste pour faire le point.

    Un programme CLIENT veut envoyer une REQUETE.

    Il ne sait pas faire cela seul :

    • Il fait appel à la couche APPLICATION.

    Couche APPLICATION

    • Mission : permettre une communication sans ambigüité entre deux programmes partageant un même protocole.

    Elle doit donc

    • formuler la communication en respectant le protocole demandé : ok
    • envoyer le message à l'autre programme : ne sait pas faire seule
      • APPLICATION fait appel à TRANSPORT.

    Couche TRANSPORT

    • Mission : permettre le transport simultané de messages entre tous les programmes (identifiés avec les PORTS).

    Elle doit donc

    • identifier les programmes : utilisation du PORT.
    • segmenter le message : alternance en divisant le message en sous-messages.
    • distinguer les communications : encapsulation dans un SEGMENT.
    • si TCP : garantir la bonne transmission en gérant les accusés de réception notamment : ok.
    • émettre les SEGMENTS : ne sait pas faire seule
      • TRANSPORT fait appel à INTERNET.

    Couche RESEAU

    Il existe de nombreux protocoles possibles sur cette couche. Si cette couche utilise le protocole IP pour identifier les ordinateurs, on la nomme souvent également couche INTERNET.

    • Mission : permettre le transport de messages entre tous les ordinateurs.

    Elle doit donc (ici en version protocole IP)

    • identifier et localiser les ordinateurs : utilisation de l'adresse IP.
    • choisir vers qui transmettre : le protocole IP permet justement de distinguer trois cas :
      1. nous sommes déjà sur le bon ordinateur ou
      2. nous sommes dans le bon réseau de destination ou
      3. nous devons trouver le réseau de destination.
    • distinguer les communications : encapsulation dans un PAQUET IP.
    • émettre les PAQUETS IP : ne sait pas faire seule
      • INTERNET (ou RESEAU) fait appel à ACCES RESEAU.

    Couche ACCES RESEAU

    • Mission : transporter les messages entre deux cartes réseaux utilisant le même protocole et système physique.

    Elle doit donc

    • identifier les cartes réseaux : utilisation de l'adresse MAC.
    • distinguer les communications : encapsulation dans une TRAME.
    • émettre les TRAMES : elle sait faire seule. Ouf !

    9 - FAQ

    Quel est l'intérêt de ne pas permettre à la couche TRANSPORT de savoir gérer toute seule le transport de ses SEGMENTS ?

    Réponse : Rendre les couches (et donc leurs missions) indépendantes l'une de l'autre.

    De cette façon, si on décide d'utiliser IP version 6 dans la couche RESEAU plutôt qu'IP version 6, nous n'avons pas besoin de changer le protocole TCP situé dans la couche TRANSPORT. De la même façon, une modification de HTTP/1.0 à HTTP/1.1 n'a pas eu de conséquence sur la façon dont la couche RESEAU gère le transport des PAQUETS.

    Des détails sur les adresses IP4 privées ?

    Les adresses privées sont les suivantes :

    • Si vous voulez créer un petit réseau privé de moins de 255 machines :
      • Il faut choisir un numéro de réseau compris entre 0 et 255.
      • Vous pouvez alors attribuer un numéro X à chaque machine de 0 à 254.
      • Exemple avec un réseau 1 :  192.168.1.X  donc  192.168.1.1  à  192.168.1.254 .
      • Exemple avec un réseau 18 :  192.168.18.X  donc  192.168.18.1  à  192.168.18.254 .
    • Si vous voulez créer un réseau privé moyen avec les 2 derniers octets pour identifier une machine :
      • De  172.16.1.0 
      • à  172.31.255.255 
    • Si vous voulez créer un gros réseau privé avec les 3 derniers octets pour identifier une machine :
      • De  10.0.0.0 
      • à  10.255.255.255 

      Quel est l'intérêt ?

      Votre provider vous a attribué UNE adresse IPv4 : celle de votre Box. C'est avec cette "vraie" adresse que votre Box est reliée à Internet. A l'interne, votre Box a une adresse locale privé. On peut ainsi connecté plusieurs machines à Internet à l'aide d'une seule machine passerelle.

      Un réseau privé
      Un réseau privé

      Quand la machine  192.168.0.10  se connecte à un site, elle passe par la passerelle (sa Box) qui, elle, possède une adresse externe. C'est la Box qui va lancer la requête en plaçant sa propre adresse  80.80.80.20  dans le paquet IP.

      La Box garde en mémoire dans un tableau la demande (IPs, PORTs). Au retour de la réponse, elle regarde le tableau, retransforme le paquet IP en plaçant la bonne adresse privée locale et transmet au bon PC !

      Si vous voulez un peu plus de détails avec une connexion vers un serveur d'adresse 200.200.10.80 :

      Le paquet part de l'ordinateur du haut vers la Box. L'en-tête IP contient donc

      • DST  200.200.10.80 
      • SRC  192.168.0.10 
      • TTL  64 

      La Box est un routeur : elle détecte que l'adresse DST n'est pas pour elle mais elle accepte de gérer. Néanmoins comme l'adresse SRC est une adresse privée de son réseau privée, elle fait plus que juste router : elle change le paquet IP en 

      • DST  200.200.10.80 
      • SRC  80.80.80.20 , sa propre adresse publique
      • TTL  63 
      Un réseau privé
      Un réseau privé

      Ensuite, le paquet IP va transiter de routeur en routeur sans jamais que les adresses SRC et DST ne soient modifiées. Seul le TTL va décroitre de 1 à chaque transfert. En espérant qu'il atteigne la destination avant le TTL final de 1 !

      Au retour de la réponse vers  80.80.80.20 , la Box fera le transfert d'adresses dans l'autre sens.

      Ce processus de traduction se nomme le NAT (Network Adress Translation).

      On ne regardera pas le mécanisme en détails. Ca fonctionne mais IPv4 est destiné à disparaitre. Et c'est un peu lourd à gérer. Ca n'existe plus de cette façon avec IPv6.

    10 - QCM de fin de 1er

    En cours de réalisation

    Voilà, nous en avons terminé avec Internet et les protocoles TCP/IP.

    Sur le même thème, il nous restera à utiliser un logiciel de simulation Réseau et à voir un peu comment communique concrétement les machines à travers les cartes réseau.

    Activité publiée le 29 03 2020
    Dernière modification : 15 05 2021
    Auteur : ows. h.