Cours Réseaux Protocole ICMP en PDF


Télécharger Cours Réseaux Protocole ICMP en PDF
3.53.5 étoiles sur 5 a partir de 1 votes.
Votez ce document:

Télécharger aussi :


Réseaux

Protocole ICMP

Jean-Pierre Lips ()

(à partir du cours de Jean-Marie Munier)

Sources bibliographiques

?     Comer (D.E.) : TCP/IP architecture, protocoles, applications - 6ème édition - Dunod 2009/01

?     Comer (D.E.) : Réseaux et Internet - CampusPress 2000

?     Servin (C.) : Réseaux et télécoms - 3ème édition - Dunod 2009

?     Siyan (K.S.) : TCP/IP - 2ème édition - CampusPress 2001 

?     RFC 792

?     Cours UREC du CNRS ()   

Principes

? ICMP(Internet Control Message Protocol) ? IP et ICMP interdépendants :

–     IP utilise ICMP pour envoyer des messages d’erreur

–     ICMP utilise IP pour transporter ces messages

? ICMP doit être mis en œuvre dans toute implémentation de IP

(mais implémentations variées)

? Deux grands types de messages ICMP :

–     messages d’erreur, renvoyés à l’hôte source qui a émis le datagramme IP en erreur

–     messages de supervision

? ICMP signale les conditions d’erreur, sans rendre IP plus fiable

Encapsulation ICMP

? Message ICMP encapsulé dans un datagramme IP (champ Protocole de l’en-tête IP = 1)

? Datagramme IP encapsulé dans une trame, pour être transmis

Source : D. E. Comer - Computer Networks and Internets - Prentice Hall 1999

Structure générale

? Type (1 octet) : type de service ICMP

? Code (1 octet) : subdivision du type de service

? Total de contrôle (2 octets) : protection du contenu du message

ICMP (même algorithme que IP)

? Autres champs (4 octets), selon la valeur du champ Type

(numéro de séquence, identificateur, adresse IP…) ? Données ICMP :

–     données (Echo), adresse IP, masque d’adresse, date

–     en-tête IP et 8 premiers octets du datagramme en erreur (messages d’erreur)

Principaux types de messages ICMP

             Type                 Signification

             0                        Réponse à une requête d’écho

3                     Destination inaccessible

4                     Limitation de débit de la source (Source Quench)

5                     Reroutage (Redirect)

8                     Requête d’écho

9                     Annonce de routeur

10                  Sélection de routeur

11                  Expiration de délai

12                  Problème de paramètre

13                  Requête d’horodatage (Timestamp)

14                  Réponse à une requête d’horodatage



17                  Requête de masque d’adresse

18                  Réponse à une demande de masque d’adresse

Messages d’écho

? Requête d’écho / Réponse à une requête d’écho

? Permettent de tester l’accessibilité d’un hôte

? Utilitaire PING(Packet INternet Groper) de fonctionnalités très variées

? Exemple :

? PING : 56 data bytes

64 bytes from (204.146.164.194): seq=0 time=125. ms

64 bytes from (204.146.164.194): seq=0 time=123. ms

64 bytes from (204.146.164.194): seq=0 time=124. ms

64 bytes from (204.146.164.194): seq=0 time=121. ms

64 bytes from (204.146.164.194): seq=0 time=122. ms

- - - - PING Statistics - - - -

5 packets transmitted, 5 packets received, 0% packet loss

round-trip (ms) min/avg/max = 121/122/125 

Destination inaccessible

? Message ICMP renvoyé par un routeur ou par l’hôte destinataire si un datagramme ne peut pas être remis

? Champ Code permettant de distinguer plusieurs cas.

Exemples :

Code Signification

0                     Réseau inaccessible

1                     Hôte inaccessible

2                     Protocole inaccessible

3                     Port inaccessible

4                     Fragmentation nécessaire et flag DF (Don’t Fragment) activé

5                     Echec du routage par la source

Limitation de débit de la source

? Message ICMP (Source Quench) renvoyé par un routeur en congestion (plus assez de mémoire tampon disponible pour les datagrammes entrants), à l’hôte source du datagramme écarté

? La source doit alors réduire son rythme de transmission

? Pas de moyen explicite pour signaler à la source la fin de l ’état de congestion

Expiration de délai (Time exceeded)

? Message envoyé par un routeur lorsque après avoir décrémenté le champ TTL d’un datagramme, la durée de vie est nulle et le datagramme est écarté

– rappel : un routeur décrémente (d’au moins 1) le champ TTL chaque fois qu’il traite un datagramme. Cela évite que, s’il existe des chemins en boucle, du fait de tables de routage erronées, ou modifiées suite à des pannes de liens, un datagramme circule sans fin

? Autre cas : message envoyé par l’hôte de destination dont le temporisateur de réassemblage expire avant réception de tous les fragments d’un datagramme

Autres messages ICMP

–     Reroutage (Redirect)

?    message envoyé par un routeur lorsqu’il constate qu’il a reçu un datagramme qui aurait dû arriver sur un autre routeur (le routeur réachemine néanmoins le datagramme). Permet à l’hôte de modifier sa table de routage



–     Sélection de routeur / Annonce de routeur

?    permettent à un hôte de découvrir tous les routeurs existant sur le réseau auquel il est directement connecté – Problème de paramètre

?    exemples : valeur invalide du champ Type de Service, paramètres d’une option incorrects

–     Requête / Réponse d’horodatage

?    requête permettant d’obtenir l’information de date d’un hôte distant, à des fins de synchronisation

–     Requête / Réponse de masque d’adresse

?    requête envoyée par un hôte à un routeur (éventuellement en diffusion) pour obtenir le masque de sous-réseau à utiliser

Trace d’une route

? Utilitaire TRACEROUTE ? Première étape :

?     envoi d’un message dans un datagramme de durée de vie = 1

?     décrémentation de TTL et élimination du datagramme par le premier routeur, qui renvoie un message ICMP d’expiration de délai

?     utilisation, par TRACEROUTE,  de l’adresse de source de ce message ICMP

? Etapes suivantes : idem, avec TTL=2, 3, 4…

? Le message envoyé par TRACEROUTE est un message UDP vers une

application inexistante de l’hôte cible. Lorsque la valeur de TTL permet d’atteindre l’hôte, ce dernier renvoie un message ICMP de destination inaccessible.

? Hypothèse : routes relativement stables

Trace d’une route (exemple)

traceroute to (18.181.0.31), 40 byte packets

1  cisco1 (128.10.2.250)  3 ms  2 ms  2 ms

2  (128.210.252.22)  2 ms  2 ms  2 ms

3  (207.24.177.73) 18 ms  18 ms  18 ms

4  (140.222.27.221)  20 ms  20 ms  20 ms

5  (140.223.25.30)  32 ms  28 ms  32 ms

6  (140.223.37.9)  45 ms  46 ms  46 ms

7  (207.25.133.18)  48 ms  46 ms  49 ms

8  (4.0.1.122)  54 ms  58 ms  55 ms

9  (4.0.1.202)  62 ms  55 ms  55 ms

10   (192.233.33.3)  59 ms  54 ms  57 ms

11   (18.168.0.8)  58 ms  56 ms  54 ms

12   (18.181.0.31)  59 ms  *  56 ms

Détermination de la MTU de chemin

? Objectif : éviter la fragmentation des datagrammes (impact sur les performances), en limitant au mieux leur taille 

? MTU de chemin : valeur de MTU la plus faible le long du chemin entre une source et une destination

? Test de la MTU de chemin par envoi de datagrammes avec flag DF(Don’t Fragment) activé :

?    si datagramme trop grand, réception d’un message ICMP de destination inaccessible

?    nouveau test avec message plus court, etc.

? Remarques :

?    routes relativement stables

?    amélioration de cette technique avec IPv6 : recherche de MTU de chemin obligatoire (pas de fragmentation dans les routeurs)



2181