Corrigé du TP 5 Réseaux

Ce TP porte sur la fragmentation et le réassemblage des datagrammes IP, ainsi que sur l’analyse et la production de trames réseau, notamment Ethernet, ARP et IP. Il permet de comprendre comment les datagrammes IP sont fragmentés pour traverser des réseaux avec des MTU différents, comment ils sont réassemblés, et comment analyser les trames capturées au niveau Ethernet et IP.

D'après le document Corrigé du TP 5 Réseaux

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Corrigé du TP 5 Réseaux

Document source

Corrigé du TP 5 Réseaux

Réseaux, Fragmentation, IP, VLANs · PDF · 12 pages · 2009

Afficher l'aperçu du document

Consulter le document original →

Ce TP porte sur la fragmentation et le réassemblage des datagrammes IP, ainsi que sur l’analyse et la production de trames réseau, notamment Ethernet, ARP et IP. Il permet de comprendre comment les datagrammes IP sont fragmentés pour traverser des réseaux avec des MTU différents, comment ils sont réassemblés, et comment analyser les trames capturées au niveau Ethernet et IP. Pour réaliser ce TP, il est nécessaire d’avoir des fichiers de fragments de datagrammes, un outil nommé dataglue pour le réassemblage, ainsi que des captures de trames Ethernet.

Objectifs

  • Comprendre la technique de fragmentation des datagrammes IP.
  • Apprendre à réassembler des fragments de datagrammes IP à partir de fichiers.
  • Analyser les champs d’une trame Ethernet et d’un datagramme ARP.
  • Analyser les champs d’une trame Ethernet et d’un datagramme IP non fragmenté.
  • Interpréter un message ICMP contenu dans un datagramme IP.

Prérequis et installation

  • Connaissances de base en réseaux IP et Ethernet.
  • Accès à un environnement Unix/Linux avec un outil dataglue disponible dans le répertoire ~cpb/public.
  • Fichiers de fragments de datagrammes IP situés dans ~cpb/public/tpres/tp5/datagrammes.
  • Captures de trames Ethernet fournies dans les fichiers d’exercice.

Fragmentation des datagrammes IP

La fragmentation est nécessaire lorsque la taille d’un datagramme IP dépasse la MTU (Maximum Transmission Unit) du réseau traversé. Le datagramme d’origine est alors découpé en plusieurs fragments, chacun avec ses propres champs d’en-tête IP, notamment le champ Déplacement (offset) et le bit More (M).

Dans l’exercice, un datagramme initial est fragmenté en trois fragments par l’hôte émetteur pour traverser un réseau avec une MTU de 1800 octets. Ensuite, certains fragments sont à nouveau fragmentés par des routeurs pour traverser des réseaux avec une MTU de 1000 octets.

Chaque fragment contient :

  • H : HLEN (longueur de l’en-tête IP)
  • L : Longueur totale du fragment
  • M : bit More (indique s’il y a un fragment suivant)
  • D : Déplacement (offset) du fragment dans le datagramme d’origine

Par exemple :

  • Fragment initial : H :L :M :D : 2221 1796 5 1776 octets
  • Fragment après fragmentation par routeur : H :L :M :D : 0117 965 1448 octets

La fragmentation permet ainsi d’adapter la taille des paquets aux contraintes du réseau.

Réassemblage des datagrammes IP

Le réassemblage consiste à regrouper les fragments qui appartiennent au même datagramme d’origine. Pour cela, on utilise le couple (Adresse IP Source, Identification) qui identifie un datagramme unique.

Les fragments sont ensuite ordonnés selon leur champ Déplacement. Il faut vérifier :

  • La présence du premier fragment (Déplacement = 0).
  • La présence du dernier fragment (bit More = 0).
  • L’absence de trous entre les fragments, en vérifiant que le Déplacement du fragment suivant correspond à la somme du Déplacement précédent et de la taille des données du fragment précédent.

Trois groupes de fragments sont identifiés :

  • Groupe 1 : datagramme_10.txt, datagramme_01.txt, datagramme_06.txt. Tous les fragments sont présents et ordonnés. Le réassemblage est possible.
  • Groupe 2 : datagramme_12.txt, datagramme_02.txt, datagramme_11.txt, datagramme_05.txt. Un ou plusieurs fragments manquent, empêchant le réassemblage complet.
  • Groupe 3 : datagramme_08.txt, datagramme_03.txt, datagramme_04.txt, datagramme_09.txt, datagramme_07.txt. Tous les fragments sont présents et ordonnés. Le réassemblage est possible.

Pour visualiser les données réassemblées, utiliser la commande :

$ dataglue datagramme_10.txt datagramme_01.txt datagramme_06.txt
$ dataglue datagramme_08.txt datagramme_03.txt datagramme_04.txt datagramme_09.txt datagramme_07.txt

Dans le cas du groupe 2, la commande :

$ dataglue datagramme_12.txt datagramme_02.txt datagramme_11.txt datagramme_05.txt

montre une visualisation incomplète, confirmant l’absence de fragments.

Analyse d’une trame Ethernet ARP

On analyse une trame Ethernet capturée contenant un datagramme ARP :

  • Adresse Ethernet Destination : ff:ff:ff:ff:ff:ff (diffusion Ethernet)
  • Adresse Ethernet Source : 09:ab:14:d8:05:48
  • EtherType : 0x0806 (indique un datagramme ARP)

Les données ARP contiennent :

  • Type de réseau : 1 (Ethernet)
  • Protocole : 0x0800 (IP)
  • Longueur adresse physique : 6 octets
  • Longueur adresse protocole : 4 octets
  • Opération : 1 (requête ARP)
  • Adresse physique source : 09:ab:14:d8:05:48
  • Adresse IP source : 125.5.48.10
  • Adresse physique destination : 00:00:00:00:00:00 (inconnue)
  • Adresse IP destination : 125.18.110.3

Cette trame est une requête ARP demandant l’adresse Ethernet correspondant à l’IP 125.18.110.3. La trame est correcte car tous les champs sont cohérents et la diffusion Ethernet permet à toutes les machines du réseau de la recevoir.

Analyse d’une trame Ethernet IP non fragmentée

On analyse une trame Ethernet contenant un datagramme IP :

  • Adresse Ethernet Destination : 00:0f:1f:13:34:9a (unicast)
  • Adresse Ethernet Source : 00:01:30:4a:38:00
  • EtherType : 0x0800 (indique un datagramme IP)

Le datagramme IP présente les champs suivants :

  • Version : 4
  • IHL : 0x5 (20 octets d’en-tête, pas d’options)
  • Type of Service (TOS) : 0x00 (priorité routine, pas de traitement spécial)
  • Longueur totale : 0x0054 (84 octets, dont 64 octets de données)
  • Identification : 0x9c1e (39966)
  • Flags et Déplacement : 0x0000 (pas de fragmentation)
  • Protocole : 0x01 (ICMP)
  • Checksum : 0x2d8c (correct)
  • Adresse IP source : 139.124.187.4 (0x8b7cbb04)
  • Adresse IP destination : 172.16.203.109 (0xac10cb6d)

Le datagramme n’est pas fragmenté et le checksum est correct, donc les données sont transmises au module ICMP de la machine destination.

Analyse du message ICMP

Le message ICMP contenu dans le datagramme IP présente :

  • Type : 0x00 (réponse à une demande d’ECHO)
  • Code : 0x00
  • Checksum : 0xf72b (correct)
  • Identificateur
  • Numéro de séquence : 0x0002 (2)
  • Données : 0xea30 (59952) suivi d’une séquence d’octets

C’est donc une réponse ICMP à une requête ECHO (ping), avec un checksum valide, confirmant l’intégrité du message.

Résultats attendus

  • Fragmentation correcte des datagrammes IP selon la MTU des réseaux traversés.
  • Réassemblage réussi des groupes 1 et 3, avec visualisation des données reconstituées via dataglue.
  • Identification d’un groupe 2 incomplet, empêchant le réassemblage complet.
  • Analyse correcte des trames Ethernet ARP et IP, avec extraction précise des champs.
  • Validation des checksums et reconnaissance des messages ICMP de type réponse ECHO.

Pièges courants

  • Ne pas vérifier la présence du premier et du dernier fragment lors du réassemblage, ce qui peut conduire à une reconstruction erronée.
  • Ignorer les trous dans la séquence des fragments, détectables par des décalages incohérents dans le champ Déplacement.
  • Confondre les adresses Ethernet de destination en diffusion (ff:ff:ff:ff:ff:ff) et unicast, ce qui change la portée de la trame.
  • Omettre de vérifier le checksum des datagrammes IP et ICMP, ce qui peut masquer des erreurs de transmission.
  • Ne pas respecter la syntaxe exacte des commandes dataglue et l’ordre des fichiers à concaténer.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions