Aller au contenu principal

2. Vue d'ensemble

2.1. Relation avec les autres protocoles​

Le protocole internet s'interface d'un côté avec les protocoles hôte à hôte de niveau supérieur et de l'autre côté avec le protocole de réseau local. Dans ce contexte, un « réseau local » peut être un petit réseau dans un bâtiment ou un grand réseau tel qu'ARPANET.

Pile de protocoles​

+-------------+
|| Application |
+-------------+
|| TCP | TCP/UDP/ICMP
+-------------+
|| IP | Protocole Internet (ce document)
+-------------+
|| Local Net | Ethernet, WiFi, etc.
+-------------+

Diagramme de relations​

+------+ +-----+ +-----+     +-----+
||Telnet| | FTP | | ... | |Voice|
+------+ +-----+ +-----+ +-----+
| | | |
+-----+ +-----+ +-----+
| TCP | | UDP | | ... |
+-----+ +-----+ +-----+
| | |
+-------------------------------+
| Protocole Internet & ICMP |
+-------------------------------+
|
+-------------------------------+
| Protocole de réseau local |
+-------------------------------+

Protocoles clés​

  • TCP (Transmission Control Protocol) : Fournit une livraison fiable, ordonnée et vérifiée des données
  • UDP (User Datagram Protocol) : Fournit un service de datagramme sans connexion
  • ICMP (Internet Control Message Protocol) : Utilisé pour le signalement d'erreurs et les diagnostics
  • Protocoles de réseau local : Ethernet, Token Ring, ARPANET, etc.

2.2. Modèle de fonctionnement​

Le modèle de fonctionnement pour transmettre un datagramme d'un programme applicatif à un autre est illustré par le scénario suivant :

Scénario de transmission​

Application A (Hôte 1) → Module IP → Passerelle → Module IP → Application B (Hôte 2)

Flux détaillé​

  1. L'application envoie des données

    • L'application A prépare les données à envoyer
    • Passe les données à TCP ou UDP
  2. Traitement TCP/UDP

    • Ajoute l'en-tête de couche transport
    • Passe le segment/datagramme à IP
  3. Module IP (Hôte source)

    • Ajoute l'en-tête IP avec les adresses
    • Détermine le routage (direct ou via passerelle)
    • Fragmente si nécessaire
    • Passe au réseau local
  4. Transmission sur réseau local

    • Encapsule dans une trame réseau
    • Transmet au prochain saut
  5. Traitement de la passerelle (si nécessaire)

    • Reçoit le datagramme IP
    • Vérifie l'adresse de destination
    • Détermine le prochain saut
    • Décrémente le TTL
    • Peut fragmenter davantage (may)
    • Transmet au prochain réseau
  6. Module IP (Hôte de destination)

    • Reçoit le datagramme IP
    • Vérifie si la destination correspond
    • Réassemble si fragmenté
    • Passe au protocole de couche supérieure
  7. Traitement TCP/UDP

    • Traite l'en-tête de transport
    • Livre les données à l'application
  8. L'application reçoit les données

    • L'application B reçoit les données

Exemple de voyage d'un datagramme​

Hôte A            Passerelle 1        Passerelle 2        Hôte B
| | | |
| 1. Envoyer datagramme | | |
|------------------->| | |
| | 2. Router & transmettre | |
| |------------------->| |
| | | 3. Router & transmettre |
| | |------------------->|
| | | | 4. Livrer
| | | |

2.3. Description des fonctions​

L'objectif du protocole internet est de déplacer les datagrammes à travers un ensemble interconnecté de réseaux. Cela se fait en passant les datagrammes d'un module internet à un autre jusqu'à ce que la destination soit atteinte.

Fonctions principales​

1. Adressage (Addressing)

  • Chaque datagramme contient les adresses source et destination
  • Les adresses de 32 bits identifient les hôtes de manière unique
  • Les portions réseau et hôte permettent un routage hiérarchique

2. Routage (Routing)

  • Sélection du chemin à travers les réseaux interconnectés
  • Basée sur l'adresse de destination et les tables de routage
  • Peut être une livraison directe ou indirecte via des passerelles (can)

3. Fragmentation et réassemblage (Fragmentation and Reassembly)

  • Les grands datagrammes sont divisés en fragments plus petits
  • Nécessaire quand le MTU (Maximum Transmission Unit) varie
  • Les fragments sont réassemblés uniquement à la destination finale

4. Type de service (Type of Service)

  • Indique la qualité de service souhaitée
  • Paramètres : priorité (precedence), délai (delay), débit (throughput), fiabilité (reliability)
  • Utilisé par les passerelles pour les décisions de routage

5. Durée de vie (Time to Live)

  • Limite la durée de vie du datagramme dans l'internet
  • Empêche les boucles infinies
  • Décrémenté à chaque saut

6. Options

  • Paramètres de sécurité
  • Routage source (Source Routing)
  • Enregistrement de route (Route Recording)
  • Horodatages (Timestamps)

7. Somme de contrôle d'en-tête (Header Checksum)

  • Protège l'intégrité de l'en-tête
  • Recalculée à chaque saut (en raison des changements de TTL)
  • Ne protège pas la charge utile de données

Responsabilités du module internet​

Les modules internet (en particulier dans les passerelles) déterminent que les datagrammes sont correctement formatés, ont des adresses valides et sont routés vers leurs destinations. Les responsabilités clés incluent :

  • Détection d'erreur (Error Detection) : Valider la somme de contrôle d'en-tête
  • Gestion du TTL : Décrémenter et vérifier le TTL
  • Fragmentation : Diviser les datagrammes si nécessaire
  • Réassemblage (Reassembly) : Reconstruire le datagramme original à la destination
  • Traitement des options : Gérer les options IP
  • Génération ICMP : Signaler les erreurs via ICMP

Schéma d'adressage​

Classe A : 0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH
- 0.0.0.0 à 127.255.255.255
- 128 réseaux, 16 777 216 hôtes chacun

Classe B : 10NNNNNN.NNNNNNNN.HHHHHHHH.HHHHHHHH
- 128.0.0.0 à 191.255.255.255
- 16 384 réseaux, 65 536 hôtes chacun

Classe C : 110NNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH
- 192.0.0.0 à 223.255.255.255
- 2 097 152 réseaux, 256 hôtes chacun

Classe D : 1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
- 224.0.0.0 à 239.255.255.255
- Multidiffusion (Multicast)

Classe E : 1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
- 240.0.0.0 à 255.255.255.255
- Réservé pour usage futur

2.4. Passerelles​

Les passerelles implémentent le protocole internet pour transmettre les datagrammes entre les réseaux. Une passerelle est attachée à deux ou plusieurs réseaux, et reçoit des datagrammes d'un réseau et les transmet à un autre réseau.

Fonctions de passerelle​

1. Routage

  • Maintenir les tables de routage
  • Déterminer le prochain saut pour chaque datagramme
  • Peut utiliser des protocoles de routage (RIP, OSPF, etc.) (may)

2. Fragmentation

  • Peut avoir besoin de fragmenter les datagrammes (may)
  • Se produit quand le prochain réseau a un MTU plus petit
  • Ne réassemble PAS (seule la destination le fait)

3. Gestion du TTL

  • Décrémenter le TTL d'au moins 1
  • Rejeter le datagramme si le TTL atteint 0
  • Envoyer un message ICMP Time Exceeded à la source

4. Gestion des erreurs (Error Handling)

  • Détecter diverses conditions d'erreur
  • Générer des messages d'erreur ICMP
  • Transmettre les erreurs à la source

5. Traitement des options (Option Processing)

  • Traiter les options IP
  • Ajouter des horodatages si demandé
  • Gérer le routage source

Architecture de passerelle​

Réseau A            Passerelle            Réseau B
+---------+ +----------+ +---------+
|| | | | | |
|| Hôte A |---------| Routeur |---------| Hôte B |
|| | | | | |
+---------+ +----------+ +---------+
| | |
| | |
Module IP Module IP Module IP
Réseau local A Les deux réseaux Réseau local B

Étapes de traitement de passerelle​

1. Recevoir le datagramme de l'interface réseau
2. Vérifier la somme de contrôle d'en-tête
3. Vérifier si la destination est locale
- Oui : Livrer à l'hôte
- Non : Procéder à la transmission
4. Décrémenter le TTL
- Si TTL = 0 : Rejeter, envoyer ICMP
5. Consulter la table de routage pour le prochain saut
6. Vérifier si la fragmentation est nécessaire
- Si le drapeau DF est défini et la fragmentation nécessaire :
Rejeter, envoyer ICMP
- Sinon : Fragmenter si nécessaire
7. Recalculer la somme de contrôle d'en-tête
8. Transmettre à la prochaine interface réseau

Exemple de table de routage​

|| Réseau de destination | Prochain saut | Interface | Métrique | ||----------------------|---------------|-----------|----------| || 10.0.0.0/8 | Direct | eth0 | 0 | || 192.168.1.0/24 | Direct | eth1 | 0 | || 0.0.0.0/0 | 10.0.0.1 | eth0 | 10 |

Responsabilités de passerelle​

  • Ne doit PAS (must not) réassembler les fragments (seule la destination finale le fait)
  • Doit (must) fragmenter si nécessaire
  • Doit (must) décrémenter le TTL
  • Doit (must) recalculer la somme de contrôle d'en-tête après toute modification
  • Devrait (should) implémenter ICMP pour le signalement d'erreurs
  • Peut (may) utiliser le Type de service pour les décisions de routage

Résumé​

Le Protocole Internet fournit un service de livraison de datagrammes sans connexion au meilleur effort. Il opère entre les protocoles hôte à hôte de niveau supérieur (comme TCP) et les protocoles de réseau sous-jacents. Les caractéristiques clés incluent :

  • Adressage universel à travers les réseaux interconnectés
  • Routage à travers les passerelles
  • Fragmentation pour différents MTU de réseau
  • Fonctionnement simple et sans état
  • Aucune garantie de fiabilité (gérée par les couches supérieures)

Cette conception permet à l'Internet d'être scalable, flexible et robuste, supportant divers réseaux et applications.