Datagrammes IP, ARP et ICMP - DEPARTEMENT INFORMATIQUE
Transcription
Datagrammes IP, ARP et ICMP - DEPARTEMENT INFORMATIQUE
Réseaux - Cours 6 Datagrammes IP, ARP et ICMP Cyril Pain-Barre IUT Informatique Aix-en-Provence version du 18/3/2013 Cyril Pain-Barre Datagrammes IP, ARP et ICMP 1 / 49 Datagrammes IP (RFC 791) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 2 / 49 Datagramme IP sur Ethernet V2 trame Ethernet v2 contenant un datagramme IP (EtherType en Hexa) : Préambule Adresse Destination Adresse Source type données 08 00 Datagramme IP CRC (dé)multiplexage Ethernet v2 : ARP RARP IP ... le protocole destinataire des données est indiqué par le champ EtherType 0x0806 0x8035 0x0800 trame Ethernet V2 Cyril Pain-Barre données Datagrammes IP, ARP et ICMP 3 / 49 Format du datagramme IP en-tête : nombre variable d’octets (multiple de 4) données : nombre quelconque d’octets (limité à 65 315) partie fixe (20 octets) taille variable taille variable VER HLEN TOS Longueur Totale Identification Time To Live Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max en−tête 0 1 1 2 2 3 3 bits : 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Données Cyril Pain-Barre Datagrammes IP, ARP et ICMP 4 / 49 HLEN TOS Identification Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) taille variable taille variable partie fixe (20 octets) VER Time To Live Bourrage 65 535 octets max en−tête Champ Version Données codé sur 4 bits identifie la version du (format du) datagramme actuellement, la version est 4 (codée 0100 en binaire) dans le datagramme IPv6, ce champ est maintenu et vaut 6 permet de s’assurer que le datagramme sera correctement interprété Cyril Pain-Barre Datagrammes IP, ARP et ICMP 5 / 49 HLEN taille variable adresse IP Source : (32 bits) identifie l’hôte à l’origine du datagramme TOS Identification taille variable partie fixe (20 octets) VER Time To Live Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max en−tête Champs Adresses Données adresse IP Destination : (32 bits) identifie le destinataire final du datagramme IP Destination IP Source Ces adresses ne sont pas modifiées par les routeurs. Toutefois, en cas de NAT/NAPT (traduction d’adresse), nous verrons qu’une NATbox peut les modifier. Cyril Pain-Barre Datagrammes IP, ARP et ICMP 6 / 49 HLEN taille variable (internet) Header LENgth TOS Identification taille variable partie fixe (20 octets) VER Time To Live Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max en−tête Champ Longueur d’en-tête (HLEN) Données codée sur 4 bits indique le nombre de mots de 32 bits de l’en-tête (comprenant les options) : en-tête de 20 à 60 octets 5 ≤ HLEN ≤ 15 si HLEN > 5 alors il y a des options Cyril Pain-Barre Datagrammes IP, ARP et ICMP 7 / 49 HLEN TOS Identification taille variable taille variable partie fixe (20 octets) VER Time To Live Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max en−tête Champ Longueur Totale Données codée sur 16 bits indique le nombre de total d’octets du datagramme (en-tête + données) comprise entre 20 et 65 535 Cyril Pain-Barre Datagrammes IP, ARP et ICMP 8 / 49 3 4 5 6 7 D T R 0 0 inutilisés en−tête 2 TOS Identification taille variable 1 Priorité HLEN Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max 0 VER Time To Live taille variable codé sur 8 bits : partie fixe (20 octets) Champ Type Of Service (TOS) Données Priorité : de 0 à 7 Priorité distinction entre ”normal” et ”contrôle” routeurs : infos trafic 6 et 7 bits D, T et R : type d’acheminement désiré : D(elay) : délai d’acheminement court T(hroughput) : débit de transmission élevé R(eliability) : grande fiabilité le TOS est un souhait que les routeurs peuvent ignorer val2 signification 000 routine 001 priority 010 immediate 011 flash 100 flash override 101 critic 110 internetwork control 111 network control À la fin des années 1990, remplacé par le champ Differentiated Services, offrant plus de finesse pour exprimer une qualité de service (QoS) désirée. Cyril Pain-Barre Datagrammes IP, ARP et ICMP 9 / 49 TOS Longueur Totale Identification taille variable en−tête HLEN Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max la ”durée de vie” du datagramme en secondes (plus vraiment d’actualité) le nombre de routeurs traversés par le datagramme (nombre de sauts) VER Time To Live taille variable codé sur 8 bits indiqué par l’émetteur pour limiter : partie fixe (20 octets) Champ Time To Live (TTL) Données décrémenté par routeurs et stations traitant le datagramme : de 1 à chaque traversée d’un routeur (saut) du temps passé en file d’attente si atteint 0, le datagramme est détruit, et l’émetteur est informé par un message ICMP évite qu’un datagramme ne circule indéfiniment évite que des fragments d’un datagramme ne soient gardés inutilement Souvent fixé bien en deçà de la valeur maximale. Par défaut, sur Linux : $ cat /proc/sys/net/ipv4/ip_default_ttl 64 Cyril Pain-Barre Datagrammes IP, ARP et ICMP 10 / 49 HLEN TOS Longueur Totale Identification taille variable taille variable partie fixe (20 octets) VER Time To Live Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max en−tête Champ Protocole Données codé sur 8 bits joue le même rôle pour IP que le champ Type pour Ethernet indique le protocole devant recevoir les données du datagramme (démultiplexage) les valeurs de ce champ sont gérées par l’autorité centrale et sont accessibles sur www.iana.org Cyril Pain-Barre Datagrammes IP, ARP et ICMP 11 / 49 HLEN TOS Identification taille variable taille variable protocole IP ICMP IGMP TCP UDP OSPF VER Time To Live Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max val10 0 1 2 6 17 89 en−tête quelques valeurs officielles : partie fixe (20 octets) Champ Protocole Données démultiplexage IP : ICMP UDP 1 IP TCP 17 ... 6 données Cyril Pain-Barre Datagrammes IP, ARP et ICMP 12 / 49 HLEN taille variable codé sur 16 bits TOS Identification taille variable partie fixe (20 octets) VER Time To Live Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max en−tête Champ Total de Contrôle d’en-tête (checksum) Données contrôle l’intégrité de l’en-tête uniquement IP ne vérifie pas si les données ont subi des erreurs de transmission : cette vérification est laissée aux couches supérieures calculé par l’émetteur vérifié lors de la réception (routeurs et destinataire) : stocker le checksum calculer le checksum si différents alors détruire le datagramme recalculé et modifié par les routeurs (car modifient au moins le TTL) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 13 / 49 HLEN TOS Longueur Totale Identification Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination taille variable partie fixe (20 octets) VER Time To Live Options IP (éventuelles) taille variable Bourrage 65 535 octets max en−tête Champ Total de Contrôle d’en-tête : calcul Données 16 bits 2 VER + + + + + + + + + + + + ret1 HLEN 3 TOS Identification Flags ret1 + Longueur Totale val1 = Déplacement Time To Live ret2 Protocole 00000000 00000000 Adresse IP Source Adresse IP Destination val2 1 4 ret2 + 1 mettre checksum à 0 2 calculer somme des mots de 16 bits de l’en−tête 3 ajouter ret1 à val1 4 ajouter ret2 à val2 5 checksum = complément à 1 de val3 val2 = Options IP (éventuelles) val3 Bourrage 5 = val1 checksum Cyril Pain-Barre Datagrammes IP, ARP et ICMP 14 / 49 Ethernet : 1 500 octets Token Ring : 4 ou 16 Ko X.25 : 128 octets recommandés (max 255) SMDS : 9 188 octets Frame Relay : 1 600 octets TOS Identification Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination taille variable en−tête HLEN Options IP (éventuelles) Bourrage 65 535 octets max taille maximale des données transportées sur un réseau physique, appelée aussi charge utile (payload) VER Time To Live taille variable Maximum Transfer Unit (MTU) : partie fixe (20 octets) MTU et fragmentation Données . . . et donc des datagrammes IP fragmente tout datagramme plus grand que le MTU du réseau qui doit le transporter : MTU = 4000 MTU = 1500 MTU = 1000 chaque fragment est un datagramme acheminé indépendamment (peut suivre une route différente des autres fragments) et peut être à son tour fragmenté Cyril Pain-Barre Datagrammes IP, ARP et ICMP 15 / 49 toujours à 0 flags partie fixe (20 octets) TOS Identification taille variable 13 bits déplacement HLEN taille variable 3 bits 0 D M VER Time To Live Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max 16 bits identification en−tête Champs pour la fragmentation Données identification : valeur identifiant le datagramme d’origine. Les fragments d’un datagramme ont les mêmes identification, IP Source, IP Destination et Protocole bit D(on’t Fragment) : le datagramme ne doit pas être fragmenté (détruit et message ICMP si impossible) bit M(ore) : à 0 si datagramme non fragmenté ou si c’est le dernier fragment ; sinon vaut 1 déplacement (Offset) : déplacement × 8 est la position absolue (ou numéro) du premier octet de données de ce datagramme dans le datagramme d’origine. Vaut 0 si pas de fragmentation Cyril Pain-Barre Datagrammes IP, ARP et ICMP 16 / 49 HLEN TOS Identification taille variable taille variable partie fixe (20 octets) VER Time To Live Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max en−tête Réassemblage Données réalisé par le destinataire final : met en attente les fragments des datagrammes incomplets les réordonne détruit tous les fragments d’un datagramme si le TTL de l’un d’eux passe à 0 (et envoie un message ICMP à l’émetteur) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 17 / 49 Résolution d’adresse Cyril Pain-Barre Datagrammes IP, ARP et ICMP 18 / 49 Nécessité de la résolution d’adresse situation : une station/routeur S a un datagramme à transmettre à une station/routeur D du même réseau. D est l’adresse IP de la destination finale du datagramme (remise directe) ou celle d’un routeur obtenue par consultation de la table de routage (remise indirecte) (adresses IP) Datag. IP IP IP résolution d’adresse Hôte−Réseau (adresses physiques) commutation/routage paquet,trame,cellule... Hôte−Réseau la transmission doit se faire en utilisant le service de la couche hôte-réseau (réseau physique) la couche hôte-réseau (niveau trame) n’utilise pas les adresses IP (niveau réseau) mais des adresses physiques (adresses MAC) la résolution d’adresse est le mécanisme permettant à une station d’obtenir l’adresse physique (de l’interface/carte réseau) d’une station possédant une certaine adresse IP dans le même réseau Cyril Pain-Barre Datagrammes IP, ARP et ICMP 19 / 49 Méthodes possibles pour la résolution d’adresse résolution directe l’adresse physique est déterminée comme une fonction de l’adresse IP méthode simple à mettre en œuvre si les adresses physiques sont configurables interrogation d’un serveur un serveur est chargé de collecter les adresses physiques et IP des hôtes du réseau les stations interrogent le serveur pour résoudre les adresses méthode souvent utilisée lorsque le réseau ne permet pas la diffusion mais la résolution n’est plus possible si le serveur devient injoignable. . . Cyril Pain-Barre Datagrammes IP, ARP et ICMP 20 / 49 Résolution dynamique par ARP Pour les réseaux permettant la diffusion, la méthode privilégiée est ARP (Address Resolution Protocol), défini dans la RFC 826. ARP a l’avantage d’être à la fois dynamique et décentralisé : les changements d’association adresse IP/adresse MAC sont automatiquement et rapidement pris en compte aucun serveur n’est nécessaire et une panne d’une station n’a aucun impact global ARP a été originellement défini pour IP et Ethernet. Mais il est plus général et peut être utilisé sur tout type de réseau permettant la diffusion, pour le compte de différents protocoles réseau (dont IP) IP sur Ethernet utilise systématiquement ARP Cyril Pain-Barre Datagrammes IP, ARP et ICMP 21 / 49 Principe de la résolution par ARP S S 194.199.116.115 194.199.116.115 194.199.116.5 194.199.116.22 194.199.116.5 réseau 194.199.116.0 1 194.199.116.22 requête (broadcast) : qui est 194.199.116.2 ? (permettant la diffusion) 194.199.116.39 194.199.116.2 194.199.116.39 194.199.116.10 194.199.116.2 194.199.116.10 D D 2 S 2 S 194.199.116.115 194.199.116.115 194.199.116.5 194.199.116.22 194.199.116.5 requête (broadcast) : qui est 194.199.116.2 ? 194.199.116.39 réponse (unicast) : moi, voilà mon adresse MAC 194.199.116.2 194.199.116.10 2 2 194.199.116.22 194.199.116.39 194.199.116.2 194.199.116.10 2 3 D D 1 S envoie en broadcast une requête ARP signifiant qu’il souhaite obtenir l’adresse physique correspondant à D 2 la requête est reçue et traitée par toutes les stations du réseau 3 seule la station d’adresse D répond en envoyant en unicast à S une réponse ARP contenant l’adresse physique demandée Cyril Pain-Barre Datagrammes IP, ARP et ICMP 22 / 49 Format du datagramme ARP bits : 0 8 16 Type de réseau L. @phy L. @pro 31 Protocole Opération (1 ou 2) taille variable adresse physique source adresse protocole source adresse physique destination adresse protocole destination la taille du datagramme ARP dépend des protocoles concernés : la taille (en octets) des adresses physiques (comme Ethernet) est indiquée par le champ Longueur adresses physiques (L. @phy) la taille (en octets) des adresses protocole (comme IP) est indiquée par le champ Longueur adresses protocole (L. @pro) les requêtes et les réponses ont le même format ; le champ Opération indique s’il s’agit d’une requête (Opération vaut 1) ou d’une réponse (Opération vaut 2) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 23 / 49 Datagramme ARP : type de réseau et protocole bits : 0 8 16 Type de réseau L. @phy L. @pro 31 Protocole Opération (1 ou 2) taille variable adresse physique source adresse protocole source adresse physique destination adresse protocole destination Type de réseau précise le réseau physique utilisé et donc le type d’adresse recherchée Protocole précise la couche réseau utilisée et donc le type d’adresse à partir duquel la résolution doit être opérée les valeurs que peuvent prendre ces champs sont définies par l’IANA (www.iana.org) : Type de réseau vaut 0x0001 pour Ethernet Protocole vaut 0x0800 pour IP Cyril Pain-Barre Datagrammes IP, ARP et ICMP 24 / 49 Datagramme ARP : adresses bits : 0 8 16 Type de réseau taille variable L. @phy 31 Protocole L. @pro Opération (1 ou 2) adresse physique source adresse protocole source adresse physique destination adresse protocole destination qu’il s’agisse d’une requête ou d’une réponse : adresse physique source contient l’adresse physique (MAC) de l’émetteur du datagramme adresse protocole source contient son adresse réseau (IP) adresse physique destination : dans requête : inconnue (à 0, soit 00:00:00:00:00:00 pour Ethernet) dans réponse : adresse MAC du destinataire adresse protocole destination contient l’adresse réseau (IP) du destinataire (dans une requête, c’est l’adresse à résoudre) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 25 / 49 Requête ARP pour IP sur Ethernet V2 adresses de l’émetteur IP : 194.199.116.5 ethernet : 08:00:05:0e:ab:51 adresses de la cible IP : 194.199.116.2 ethernet (recherchée) : 08:00:07:5c:10:0a Trame Ethernet V2 (en hexadécimal) : destination préambule ff:ff:ff:ff:ff:ff source type 08:00:05:0e:ab:51 08 06 données Datagramme ARP (requête) CRC (broadcast) Requête ARP (en binaire) : Type réseau : Ethernet (1) Protocole : IP (0x0800) L. @ phy : 6 L. @ pro : 4 Opération : requête (1) 0000000000000001000010000000000000000110000001000000000000000001 000010000000000000000101000011101010101101010001 Ethernet source (08:00:05:0e:ab:51) 11000010110001110111010000000101 IP source (194.199.116.5) 000000000000000000000000000000000000000000000000 Ethernet destination (inconnue) 11000010110001110111010000000010 IP destination (194.199.116.2) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 26 / 49 Réponse ARP pour IP sur Ethernet v2 émetteur de la réponse IP : 194.199.116.2 ethernet : 08:00:07:5c:10:0a destinataire de la réponse IP : 194.199.116.5 ethernet : 08:00:05:0e:ab:51 Trame Ethernet V2 (en hexadécimal) : destination préambule source 08:00:05:0e:ab:51 type 08:00:07:5c:10:0a 08 06 données Datagramme ARP (réponse) CRC (unicast) Réponse ARP (en hexadécimal) : Protocole : IP (0x0800) Type réseau : Ethernet (1) L. @ phy : 6 L. @ pro : 4 0001080006040002 Opération : réponse (2) 0800075c100a Ethernet source (08:00:07:5c:10:0a) IP source (194.199.116.2) c2c77402 0800050eab51 Ethernet destination (08:00:05:0e:ab:51) c2c77405 IP destination (194.199.116.5) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 27 / 49 Optimisations d’ARP cache (mémoire temporaire) ARP obligatoire stocké sur les hôtes : contient une liste d’associations ≺ adresse MAC, adresse IP évite d’émettre une nouvelle requête lorsque l’association a déjà été obtenue une association a une durée de vie (TTL) limitée, variable selon les systèmes (1 min, 20 min, . . . ) chaque fois qu’une association est confirmée, sa durée de vie est remise à son max les associations dont la durée de vie expire sont supprimées traitement de la requête : les requêtes étant envoyées en broadcast, toutes les stations les traitent or elles incluent l’adresse MAC et l’adresse IP de l’émetteur en recevant une requête, les stations peuvent mettre à jour leur cache avec les infos sur l’émetteur possibilité d’émission d’une requête ARP fictive si changement de carte (et donc d’adresse MAC) : en plaçant sa propre adresse IP comme celle recherchée personne ne répondra, mais en recevant la requête les stations peuvent mettre à jour leur cache Cyril Pain-Barre Datagrammes IP, ARP et ICMP 28 / 49 ICMP : Internet Control and Error Message Protocol (RFC 792, 1122, 950, 1256) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 29 / 49 Statut et rôle d’ICMP ICMP est un module obligatoire d’IP qui assure deux fonctions principales : rendre compte d’un problème réseau tester l’accessibilité d’une machine les messages ICMP sont de deux natures : les messages d’erreur : suite à une erreur constatée sur un datagramme (qui entraı̂ne le plus souvent sa destruction) les messages d’interrogation/information : messages divers contribuant au (ou informant sur le) bon fonctionnement des équipements Cyril Pain-Barre Datagrammes IP, ARP et ICMP 30 / 49 Transport des messages ICMP Les messages ICMP sont encapsulés dans des datagrammes IP (champ Protocole vaut 1) : Message ICMP Datagramme IP Trame (ou PDU hôte−réseau) en−tête ICMP données ICMP en−tête IP en−tête données IP données trame mais IP utilisant ICMP pour envoyer ses messages d’erreur, les deux se situent au même niveau ! les protocoles de transport (TCP et UDP) utilisent aussi ICMP pour certaines erreurs (sur la station destinataire) Cyril Pain-Barre en−queue Transport (TCP et UDP) IP & ICMP Hôte−Réseau Datagrammes IP, ARP et ICMP 31 / 49 IP : un service non fiable les causes rendant impossible la remise d’un datagramme peuvent être nombreuses : panne de ligne de transmission, ou d’un processeur destinataire déconnecté TTL insuffisant congestion des routeurs intermédiaires checksum erroné mauvaises tables de routage ... néanmoins, les erreurs ne sont pas toutes détectables ! ! lorsqu’une erreur (dans la remise d’un datagramme) est détectée par un routeur ou la station destinataire, un rapport d’erreur (message ICMP) est envoyé à l’émetteur (d’origine) du datagramme Cyril Pain-Barre Datagrammes IP, ARP et ICMP 32 / 49 Les messages d’erreur ICMP Internet destinataire émetteur erreur !! message ICMP le message inclut au moins 28 octets (l’en-tête et les 64 premiers bits) du datagramme ayant causé l’erreur, contenant une partie de l’en-tête du protocole de niveau supérieur, notamment afin de déterminer le processus émetteur pour l’informer il n’est envoyé qu’à l’émetteur du datagramme qui, parfois, n’y peut rien (exemple d’une mauvaise table de routage d’un routeur intermédiaire) aucun message d’erreur n’est envoyé si le datagramme en cause contient un message d’erreur ICMP ! Cyril Pain-Barre Datagrammes IP, ARP et ICMP 33 / 49 Messages ICMP destinés au module ICMP du logiciel IP pas de précaution particulière pour acheminement : possibilité de perte, duplication, etc. certains messages d’erreur sont envoyés avec une priorité 6 ou 7 tous les messages ICMP commencent par les 3 champs : Type Code Total de Contrôle (8 bits) (8 bits) (16 bits) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 34 / 49 Messages ICMP : Type et Code le champ Type (codé sur 8 bits) indique la nature du message : Type valeur (décimal) Total de Contrôle signification 0 réponse à une demande d’echo 3 destination inacessible 4 limitation de production à la source 5 redirection (changement de route) 8 demande d’echo 9 annonce de routeur 10 sollicitation de routeur 11 TTL de datagramme expiré 12 problème de paramètre d’un datagramme 13 demande d’horodatage 14 réponse à une demande d’horodatage 17 demande de masque de sous−réseau 18 réponse à une demande de masque de sous−réseau le champ Code (8 bits) est utilisé pour préciser le message pour le Type donné Cyril Pain-Barre Code Type Code Datagrammes IP, ARP et ICMP Total de Contrôle 35 / 49 Messages ICMP : Total de Contrôle le champ Total de Contrôle (ou checksum) : est codé sur 16 bits porte sur (contrôle) la totalité du message ICMP calculé de la même manière que le checksum IP Type Code Total de Contrôle suite du message ICMP Cyril Pain-Barre Datagrammes IP, ARP et ICMP 36 / 49 Test d’accessibilité (PING) permet de s’assurer qu’un hôte est joignable et en état de communiquer exploité par la commande ping échange de messages ”ECHO” différenciés par le Type : Type (0 ou 8) Code (0) Total de Contrôle Identificateur (16 bits) Numéro de séquence (16 bits) Données optionnelles ... Type = 8 : demande d’echo (ECHO REQUEST) Type = 0 : réponse à une demande d’echo (ECHO REPLY) le Code est toujours à 0 Identitificateur permet d’associer la réponse à la demande Numéro de Séquence incrémenté à chaque demande Cyril Pain-Barre Datagrammes IP, ARP et ICMP 37 / 49 Exemple de ping (sous Linux) $ ping www.free.fr PING www.free.fr(212.27.48.10) 56(84) bytes of data. 64 bytes from www.free.fr(212.27.48.10): icmp_seq=1 ttl=107 time=17.6 64 bytes from www.free.fr(212.27.48.10): icmp_seq=2 ttl=107 time=16.6 64 bytes from www.free.fr(212.27.48.10): icmp_seq=3 ttl=107 time=17.2 64 bytes from www.free.fr(212.27.48.10): icmp_seq=4 ttl=107 time=16.7 ---www.free.fr ping statistics--4 packets transmitted, 4 received, 0% packet loss, time 3012ms rttmin/avg/max/mdev= 16.619/17.094/17.662/0.441 ms Cyril Pain-Barre Datagrammes IP, ARP et ICMP ms ms ms ms 38 / 49 Compte rendu de destination inaccessible envoyé à l’Adresse Source d’un datagramme IP lorsqu’une station/routeur se rend compte qu’il ne peut pas atteindre sa destination (ordinateur ou processus) messages avec Type = 3 Type (3) Code (0 à 12) Total de Contrôle au moins 28 octets Inutilisé (32 bits à 0) En−tête et 64 premiers bits du datagramme IP le Code précise la nature du problème comme les autres messages d’erreur, contient le début du datagramme ayant provoqué l’erreur Cyril Pain-Barre Datagrammes IP, ARP et ICMP 39 / 49 Codes de compte rendu de destination inaccessible Type (3) Code (0 à 12) Total de Contrôle Inutilisé (32 bits à 0) En−tête et 64 premiers bits du datagramme IP plusieurs codes ont été définis : valeur (décimal) signification 0 réseau inaccessible 1 ordinateur inaccessible 2 protocole inaccessible 3 port inacessible 4 fragmentation nécessaire mais bit Don’t Fragment positionné 5 échec de routage à la source 6 réseau de destination inconnu 7 ordinateur de destination inconnu 8 ordinateur source isolé 9 communication avec le réseau de destination interdite par l’administrateur réseau 10 communication avec l’ordinateur destinataire interdite par l’administrateur réseau 11 réseau inacessible pour le service demandé 12 ordinateur inaccessible pour le service demandé Cyril Pain-Barre Datagrammes IP, ARP et ICMP 40 / 49 Message de contrôle de la congestion appelé aussi message de limitation de production de la source (Source Quench) envoyé par un routeur à l’émetteur d’un datagramme détruit pour cause de saturation (congestion) un message par datagramme détruit le message contient le début du datagramme le récepteur doit alors réduire ses envois pour cette destination format (Type = 4, Code = 0) : Type (4) Code (0) Total de Contrôle au moins 28 octets Inutilisé (32 bits à 0) En−tête et 64 premiers bits du datagramme IP Cyril Pain-Barre Datagrammes IP, ARP et ICMP 41 / 49 Message de redirection appelé aussi message de modification de la route envoyé par un routeur à l’émetteur (source) d’un datagramme, situé sur le même réseau, si ce routeur n’était pas le meilleur choix format (Type = 5) : Type (5) Code (0 à 3) Total de Contrôle au moins 28 octets Adresse IP d’un routeur En−tête et 64 premiers bits du datagramme IP le Code précise pourquoi il faut changer de route : 0 1 2 3 : : : : changer changer changer changer de de de de route route route route pour pour pour pour atteindre le réseau atteindre l’ordinateur le type de service et le réseau le type de service et l’ordinateur Adresse IP d’un routeur est l’adresse du routeur qui aurait dû être utilisé l’émetteur devrait en tenir compte et modifier sa table de routage Cyril Pain-Barre Datagrammes IP, ARP et ICMP 42 / 49 Message de durée de vie expirée format (Type = 11) : Type (11) Code (0 ou 1) Total de Contrôle au moins 28 octets Inutilisé (32 bits à 0) En−tête et 64 premiers bits du datagramme IP envoyé à l’émetteur (source) d’un datagramme dans l’un des deux cas suivants : Code = 0 : le TTL a expiré sur un routeur Code = 1 : le délai de réassemblage des fragments a expiré sur l’hôte destinataire Cyril Pain-Barre Datagrammes IP, ARP et ICMP 43 / 49 Message d’obtention du masque de sous-réseau permet à une station de demander son masque de sous-réseau. La demande est adressée (par ordre de préférence) en unicast à un routeur, en multicast 224.0.0.2 (All Routers) ou en broadcast 255.255.255.255 un routeur du réseau répondra en unicast en indiquant le masque format : Type (17 ou 18) Code (0) Identificateur Total de Contrôle Numéro de séquence Masque de sous−réseau où : Type indique s’il s’agit d’une demande (17) ou d’une réponse (18) Code est à 0 Identificateur et Numéro de séquence sont utilisés pour associer les réponses aux demandes Masque contient le masque dans une réponse (à 0 dans une demande) Peu utilisé car généralement des protocoles de configuration automatique sont employés, tels que BOOTP et DHCP. Cyril Pain-Barre Datagrammes IP, ARP et ICMP 44 / 49 Message d’annonce d’un routeur envoyé par les routeurs toutes les 10 minutes et destiné aux stations de leurs réseaux (224.0.0.1 ou à défaut en broadcast) format (Type = 9, Code = 0) : Type (9) Nombre d’adresses Code (0) Total de Contrôle Taille adresse Durée de vie selon le nombre d’adresses Adresse IP du routeur 1 Priorité du routeur 1 Adresse IP du routeur 2 Priorité du routeur 2 ... Nombre d’adresses indique le nombre d’adresses de routeurs Taille adresse ×4 donne la taille en octets des adresses Durée de vie indique le temps en secondes de validité des infos (généralement 30 min) à chaque adresse est associée une priorité ; à utiliser par ordre de priorité croissante Cyril Pain-Barre Datagrammes IP, ARP et ICMP 45 / 49 Message de sollicitation d’un routeur permet à un ordinateur venant de démarrer de demander aux routeurs d’envoyer immédiatement un message d’annonce de routeur ce message est envoyé en multicast 224.0.0.2 (All Routers) ou, à défaut, en broadcast les routeurs recevant ce message sont censés y répondre dès que possible format (Type = 10, Code = 0) : Type (10) Code (0) Total de Contrôle Réservé (32 bits à 0) Cyril Pain-Barre Datagrammes IP, ARP et ICMP 46 / 49 Message de problème de paramètre envoyé par un routeur ou l’ordinateur destinataire à l’émetteur (source) d’un datagramme, lorsque celui-ci comporte une erreur dans un champ format (Type = 12) : Type (12) Code (0 ou 1) au moins 28 octets Pointeur Total de Contrôle Inutilisé (24 bits à 0) En−tête et 64 premiers bits du datagramme IP le Code précise s’il faut tenir compte du champ Pointeur : 0 : tenir compte du Pointeur 1 : ignorer Pointeur (qui devrait être à 0). Dans ce cas, il s’agit d’un paramètre manquant (comme une option qui aurait dû être présente) Pointeur, si utilisé, indique le numéro de l’octet du datagramme reçu qui comporte l’erreur Cyril Pain-Barre Datagrammes IP, ARP et ICMP 47 / 49 Synchronisation horloges/Estimation temps de transit messages échangés entre 2 ordinateurs pour synchroniser leur horloge ou estimer le temps de transit format : Type (13 ou 14) Code (0) Identificateur Total de Contrôle Numéro de séquence Horodatage de l’émission Horodatage de la réception Horodatage de la transmission où Type indique la nature du message : 13 pour une demande d’horodatage, et 14 pour une réponse à une demande d’horodatage le Code est toujours à 0 Identificateur et Numéro de séquence sont utilisés pour associer les réponses aux demandes Cyril Pain-Barre Datagrammes IP, ARP et ICMP 48 / 49 Synchronisation horloges/Estimation temps de transit les 3 champs horodatage contiennent les dates, exprimées en millisecondes écoulées depuis le 1er janvier 1970 à 0h00 : d’émission de la demande Type (13 ou 14) Code (0) Identificateur de réception de la demande d’envoi de la réponse Total de Contrôle Numéro de séquence Horodatage de l’émission Horodatage de la réception Horodatage de la transmission plusieurs échanges sont nécessaires pour une synchronisation correcte Le protocole NTP (Network Time Protocol) a spécifiquement été développé pour synchroniser son horloge avec des serveurs de référence (et des horloges atomiques). Sa version actuelle (version 3) est définie par la RFC 1305. Cyril Pain-Barre Datagrammes IP, ARP et ICMP 49 / 49