Tp r4.3 ip réseaux informatiques - réseaux informatiques

Réseaux Informatiques : Tp r4.3 ip réseaux informatiques

Télécharger PDF

Le paquet IP

Le format unique du paquet IP, ou datagramme IP, est organisé en champs de 32 bits :

Version (4 bits) : identifie la version du protocole IP, actuellement fixée à 4.

Internet Header Length (IHL, 4 bits) : spécifie la longueur de l’en-tête en mots de 32 bits. Cette longueur varie de 5 à 15, avec 5 comme valeur normale lorsque aucune option n’est utilisée.

Type de service (TOS, 8 bits) : définit la priorité du paquet et le type de routage souhaité, permettant de demander différentes performances comme un délai court, un haut débit ou une haute fiabilité.

Total Length (16 bits) : indique le nombre total d’octets contenus dans le paquet, incluant l’en-tête. La taille maximale d’un paquet IP est de 65 535 octets (64 Ko).

Identification (16 bits) : contient une valeur entière unique pour identifier chaque datagramme et ses fragments.

Flags (3 bits) : contrôle la fragmentation des paquets. Le bit de poids faible à zéro (MF) indique si c’est le dernier fragment. Le bit central (DF) signifie que le paquet ne doit pas être fragmenté. Le bit de poids fort n’est pas utilisé.

Fragment Offset (13 bits) : indique la position des données du fragment dans le datagramme original, en multiples de 8 octets.

TTL (Time To Live, 8 bits) : exprime la durée maximale de séjour du paquet dans le réseau. Il est décrémenté à chaque saut (routeur) ou chaque seconde. Si le TTL atteint 0, le paquet est rejeté, souvent signe d’une boucle.

Protocole (8 bits) : identifie la couche de transport associée (par exemple, 17 pour UDP, 6 pour TCP, 1 pour ICMP).

Header Checksum (16 bits) : permet de vérifier l’intégrité de l’en-tête en utilisant un complément à un.

Adresses source et destination (32 bits chacune) : indiquent les adresses IP du paquet.

Options + padding : contient des demandes spécifiques pour le routage ou des zéros pour aligner le début des données sur un multiple de 32 bits.

Le protocole ICMP (Internet Control Message Protocol)

Le protocole ICMP utilise les datagrammes IP pour transporter ses messages et permet notamment :

  • Le contrôle de flux via un message Source Quench pour ralentir temporairement un émetteur trop rapide.
  • La détection de destinations inaccessibles avec un message Destination Unreachable.
  • La redirection de routes pour informer une machine d’utiliser un autre gateway.

ICMP fournit des données essentielles pour le diagnostic des réseaux. Il génère des messages d’erreur ICMP lorsqu’un problème de transmission est détecté, renvoyés à l’adresse source du datagramme concerné.

Ce protocole est utilisé par la commande ping qui envoie une requête ICMP Echo Request (type = 8, code = 0) et attend une réponse ICMP Echo Reply (type = 0, code = 0) si la machine distante est active.

Format du paquet ICMP

Le paquet ICMP, encapsulé dans un paquet IP (champ protocole = 1), a une structure composée de :

  • Type (1 octet) : identifie le type de message (exemples : 0 pour Echo Reply, 3 pour Destination Unreachable, 8 pour Echo Request).
  • Code (1 octet) : précise la sous-catégorie du message (exemple : pour le type 3, code 0 = réseau inaccessible, code 1 = hôte inaccessible).
  • Checksum (2 octets) : valide les données du paquet.
  • Données complémentaires (4 octets) : contient un numéro d’identification et un numéro de séquence pour distinguer les pings simultanés et mesurer les délais.
  • L’en-tête du datagramme IP original (20 à 60 octets) et des données supplémentaires.

La fragmentation

La fragmentation d’un datagramme IP se produit lorsque sa taille dépasse la MTU (Maximum Transfer Unit) du réseau physique. Chaque fragment contient :

  • Identification : un entier sur 16 bits unique pour le datagramme original.
  • Fragment Offset : un décalage sur 13 bits indiquant la position des données dans le datagramme initial.
  • Flags : 3 bits dont le DF (Don’t Fragment) et le MF (More Fragments) pour gérer la fragmentation.

Remarques importantes :

  • La taille des fragments est un multiple de 8 octets.
  • Si un seul fragment est perdu, le datagramme initial est considéré comme perdu.
  • Les fragments peuvent emprunter des chemins différents vers la destination.

Séquence 1 - MTU et Analyse de trames Ethernet

1. La valeur par défaut du MTU pour une interface Ethernet (eth0) est généralement de 1500 octets. Ce paramètre définit la taille maximale des données transportées dans une trame Ethernet.

2. Pour modifier le MTU de l’interface eth0 à 100 octets, utilisez la commande :

sudo ifconfig eth0 mtu 100

3. Un paquet ICMP de 300 octets ne peut pas être envoyé dans une seule trame Ethernet si le MTU est fixé à 100 octets, car la taille maximale des données (MTU) est dépassée.

4. Avec un MTU de 100 octets, un paquet ICMP de 300 octets sera fragmenté en 3 trames Ethernet (272 octets de données + 28 octets d’en-tête IP et ICMP).

5. Un MTU plus petit augmente le nombre de fragments, ce qui peut ralentir le transfert de données (exemple : 100 Mo). Chaque fragment nécessite un en-tête IP supplémentaire, augmentant la charge réseau.

6. Un fournisseur Internet peut diminuer le MTU de ses routeurs pour éviter la fragmentation, réduisant ainsi les pertes de paquets et optimisant les performances.

Séquence 2 - Fragmentation et Analyse de paquets IP et ICMP

1. La valeur 300 affichée lors de l’envoi de paquets ICMP de 272 octets inclut les 28 octets de l’en-tête IP et ICMP (272 + 28 = 300).

2. Lancer une capture avec un outil comme Wireshark ou tcpdump pour analyser les trames générées.

3. Les fragments auront des longueurs différentes selon leur position dans le datagramme original.

4. Chaque fragment encapsulé dans une trame Ethernet inclut :

  • L’en-tête Ethernet (14 octets).
  • L’en-tête IP (20 octets).
  • Les données du fragment (taille variable).

5. La commande ping utilise les messages Echo Request (type 8) et Echo Reply (type 0).

6. Non, il n’y aurait pas de fragmentation avec un MTU de 1500 octets, car la taille du paquet (272 + 28 = 300) est inférieure à la MTU.

Séquence 3 - Champ TTL (Time To Live)

1. Le nombre de routeurs traversés peut être déduit en soustrayant la valeur TTL reçue de 255 (valeur initiale).

2. Utilisez la commande traceroute -nI pour vérifier le nombre de sauts (routeurs) entre deux machines.

3. En modifiant le TTL :

  • a. Si le TTL est égal au nombre de routeurs traversés, le paquet atteint la destination sans être rejeté.
  • b. Si le TTL est inférieur de 1 au nombre de routeurs traversés, le paquet est rejeté par le dernier routeur avant la destination.

FAQ

1. Pourquoi le champ TTL est-il important dans le protocole IP ?

Le TTL évite les boucles infinies dans le réseau en limitant le nombre de sauts qu’un paquet peut effectuer. Il est aussi utilisé pour tracer les routes avec des outils comme traceroute.

2. Quels sont les types de messages ICMP les plus courants ?

Les messages les plus courants sont Echo Request (type 8) et Echo Reply (type 0), utilisés par la commande ping pour tester la connectivité.

3. Comment fonctionne la fragmentation des paquets IP ?

La fragmentation divise un datagramme trop grand en fragments transportés séparément. Chaque fragment contient un identifiant et un décalage pour être réassemblé à la destination. Si un fragment est perdu, tout le datagramme est considéré comme perdu.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne