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.