M2102 - Architecture des r´eseaux 6 - Datagrammes IP, ARP et ICMP Cyril Pain-Barre IUT Aix-Marseille - Dept INFO Aix version du 9/3/2014 Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 1 / 50 Datagrammes IP (RFC 791) Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 2 / 50 Datagramme IP sur Ethernet V2 trame Ethernet v2 contenant un datagramme IP (EtherType en Hexa) : Préambule Adresse Destination Adresse Source EtherType données 08 00 Datagramme IP CRC (d´e)multiplexage Ethernet v2 selon valeur de l’EtherType : 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 6 - Datagrammes IP, ARP et ICMP 3 / 50 Format du datagramme IP en-tˆete : nombre variable d’octets (multiple de 4) donn´ees : nombre quelconque d’octets (limit´e `a 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 6 - Datagrammes IP, ARP et ICMP 4 / 50 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´e sur 4 bits identifie la version du (format du) datagramme actuellement, la version est 4 (cod´ee 0100 en binaire) dans le datagramme IPv6, ce champ est maintenu et vaut 6 permet de s’assurer que le datagramme sera correctement interpr´et´e Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 5 / 50 HLEN TOS Identification taille variable adresse IP Source : (32 bits) identifie l’hˆ ote ` a l’origine du datagramme Longueur Totale Flags Protocole taille variable partie fixe (20 octets) VER Time To Live 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´ ees par les routeurs. Toutefois, en cas de NAT/NAPT (traduction d’adresse), nous verrons qu’une NATbox peut les modifier. Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 6 / 50 HLEN TOS Identification taille variable (internet) Header LENgth Longueur Totale Flags Protocole taille variable partie fixe (20 octets) VER Time To Live 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ˆete (HLEN) Données cod´ee sur 4 bits indique le nombre de mots de 32 bits de l’en-tˆete (comprenant les options) : en-tˆete de 20 `a 60 octets 5 ≤ HLEN ≤ 15 si HLEN > 5 alors il y a des options Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 7 / 50 HLEN TOS Identification Longueur Totale Flags Protocole taille variable taille variable partie fixe (20 octets) VER Time To Live 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´ee sur 16 bits indique le nombre de total d’octets du datagramme (en-tˆete + donn´ees) comprise entre 20 et 65 535 Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 8 / 50 3 4 5 6 7 D T R 0 0 inutilisés en−tête 2 TOS Identification Longueur Totale Flags Protocole Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination taille variable 1 Priorité HLEN Options IP (éventuelles) Bourrage 65 535 octets max 0 VER Time To Live taille variable cod´e sur 8 bits : partie fixe (20 octets) Champ Type Of Service (TOS) Données Priorit´ e : de 0 `a 7 Priorité distinction entre ”normal” et ”contrˆ ole” routeurs : infos trafic 6 et 7 bits D, T et R : type d’acheminement d´ esir´ e: D(elay) : d´elai d’acheminement court T(hroughput) : d´ebit de transmission ´elev´e R(eliability) : grande fiabilit´e 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´ees 1990, remplac´e par le champ Differentiated Services, A offrant plus de finesse pour exprimer une qualit´e de service (QoS) d´esir´ee. Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 9 / 50 TOS Longueur Totale Identification Flags Protocole taille variable en−tête HLEN Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max la ”dur´ee de vie” du datagramme en secondes (plus vraiment d’actualit´e) le nombre de routeurs travers´es par le datagramme (nombre de sauts) VER Time To Live taille variable cod´e sur 8 bits indiqu´e par l’´emetteur pour limiter : partie fixe (20 octets) Champ Time To Live (TTL) Données d´ecr´ement´e par routeurs et stations traitant le datagramme : de 1 `a chaque travers´ee d’un routeur (saut) du temps pass´e en file d’attente si atteint 0, le datagramme est d´etruit, et l’´emetteur est inform´e par un message ICMP ´evite qu’un datagramme ne circule ind´efiniment ´evite que des fragments d’un datagramme ne soient gard´es inutilement Souvent fix´e bien en de¸c`a de la valeur maximale. Par d´efaut, sur Linux : $ cat /proc/sys/net/ipv4/ip_default_ttl 64 Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 10 / 50 HLEN TOS Longueur Totale Identification Flags Protocole taille variable taille variable partie fixe (20 octets) VER Time To Live 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´e sur 8 bits joue le mˆeme rˆole pour IP que le champ Type pour Ethernet indique le protocole devant recevoir les donn´ees du datagramme (d´emultiplexage) les valeurs de ce champ sont g´er´ees par l’autorit´e centrale et sont accessibles sur www.iana.org Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 11 / 50 HLEN TOS Identification Longueur Totale Flags Protocole taille variable taille variable protocole IP ICMP IGMP TCP UDP OSPF VER Time To Live 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´emultiplexage IP selon valeur du champ Protocole : ICMP UDP 1 IP TCP 17 ... 6 données Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 12 / 50 HLEN TOS Identification taille variable cod´e sur 16 bits Longueur Totale Flags Protocole taille variable partie fixe (20 octets) VER Time To Live 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ˆole d’en-tˆete (checksum) Données contrˆole l’int´egrit´e de l’en-tˆete uniquement IP ne v´ erifie pas si les donn´ ees ont subi des erreurs de transmission : cette v´ erification est laiss´ ee aux couches sup´ erieures calcul´e par l’´emetteur v´erifi´e lors de la r´eception (routeurs et destinataire) : stocker le checksum calculer le checksum si diff´erents alors d´etruire le datagramme recalcul´e et modifi´e par les routeurs (car modifient au moins le TTL) Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 13 / 50 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ˆole d’en-tˆete : 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 6 - Datagrammes IP, ARP et ICMP 14 / 50 Ethernet : 1 500 octets Token Ring : 4 ou 16 Ko X.25 : 128 octets recommand´es (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´ees transport´ees sur un r´eseau physique, appel´ee 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´eseau qui doit le transporter : MTU = 4000 MTU = 1500 MTU = 1000 chaque fragment est un datagramme achemin´e ind´ependamment (peut suivre une route diff´erente des autres fragments) et peut ˆetre `a son tour fragment´e Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 15 / 50 toujours à 0 flags partie fixe (20 octets) TOS Identification Longueur Totale Flags Protocole taille variable 13 bits déplacement HLEN taille variable 3 bits 0 D M VER Time To Live 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ˆemes identification, IP Source, IP Destination et Protocole bit D(on’t Fragment) : le datagramme ne doit pas ˆetre fragment´e (d´etruit et message ICMP si impossible) bit M(ore) : `a 0 si datagramme non fragment´e ou si c’est le dernier fragment ; sinon vaut 1 d´eplacement (Offset) : d´eplacement × 8 est la position absolue (ou num´ero) du premier octet de donn´ees de ce datagramme dans le datagramme d’origine. Vaut 0 si pas de fragmentation Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 16 / 50 HLEN TOS Identification Longueur Totale Flags Protocole taille variable taille variable partie fixe (20 octets) VER Time To Live Déplacement Total de Contrôle Adresse IP Source Adresse IP Destination Options IP (éventuelles) Bourrage 65 535 octets max en−tête R´eassemblage Données r´ealis´e par le destinataire final : met en attente les fragments des datagrammes incomplets les r´eordonne d´etruit tous les fragments d’un datagramme si le TTL de l’un d’eux passe `a 0 (et envoie un message ICMP `a l’´emetteur) Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 17 / 50 R´esolution d’adresse Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 18 / 50 N´ecessit´e de la r´esolution d’adresse situation : une station/routeur S a un datagramme `a transmettre `a une station/routeur D du mˆ eme r´ eseau. 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ˆote-r´eseau (r´eseau physique) la couche hˆ ote-r´ eseau (niveau trame) n’utilise pas les adresses IP (niveau r´ eseau) mais des adresses physiques (adresses MAC) la r´ esolution d’adresse est le m´ecanisme permettant `a une station d’obtenir l’adresse physique (de l’interface/carte r´eseau) d’une station poss´edant une certaine adresse IP dans le mˆeme r´eseau Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 19 / 50 M´ethodes possibles pour la r´esolution d’adresse r´esolution directe l’adresse physique est d´etermin´ee comme une fonction de l’adresse IP m´ethode simple `a mettre en œuvre si les adresses physiques sont configurables interrogation d’un serveur un serveur est charg´e de collecter les adresses physiques et IP des hˆotes du r´eseau les stations interrogent le serveur pour r´esoudre les adresses m´ethode souvent utilis´ee lorsque le r´eseau ne permet pas la diffusion mais la r´esolution n’est plus possible si le serveur devient injoignable. . . Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 20 / 50 Le protocole ARP (Address Resolution Protocol) Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 21 / 50 R´esolution dynamique par ARP Pour les r´ eseaux permettant la diffusion, la m´ ethode privil´ egi´ ee est ARP (Address Resolution Protocol), d´efini dans la RFC 826. ARP a l’avantage d’ˆetre `a la fois dynamique et d´ecentralis´e : les changements d’association adresse IP/adresse MAC sont automatiquement et rapidement pris en compte aucun serveur n’est n´ecessaire et une panne d’une station n’a aucun impact global ARP a ´et´e originellement d´efini pour IP et Ethernet. Mais il est plus g´en´eral et peut ˆetre utilis´e sur tout type de r´eseau permettant la diffusion, pour le compte de diff´erents protocoles r´eseau (dont IP) IP sur Ethernet utilise syst´ ematiquement ARP Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 22 / 50 Principe de la r´esolution 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ˆ ete ARP signifiant qu’il souhaite obtenir l’adresse physique correspondant `a D 2 la requˆete est re¸cue et trait´ee par toutes les stations du r´eseau 3 seule la station d’adresse D r´epond en envoyant en unicast `a S une r´ eponse ARP contenant l’adresse physique demand´ee Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 23 / 50 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´epend des protocoles concern´es : la taille (en octets) des adresses physiques (comme Ethernet) est indiqu´ee par le champ Longueur adresses physiques (L. @phy) la taille (en octets) des adresses protocole (comme IP) est indiqu´ee par le champ Longueur adresses protocole (L. @pro) les requˆetes et les r´eponses ont le mˆeme format ; le champ Op´eration indique s’il s’agit d’une requˆete (Op´eration vaut 1) ou d’une r´eponse (Op´eration vaut 2) Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 24 / 50 Datagramme ARP : type de r´eseau 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´eseau pr´ecise le r´eseau physique utilis´e et donc le type d’adresse recherch´ee Protocole pr´ecise la couche r´eseau utilis´ee et donc le type d’adresse `a partir duquel la r´esolution doit ˆetre op´er´ee les valeurs que peuvent prendre ces champs sont d´efinies par l’IANA (www.iana.org) : Type de r´eseau vaut 0x0001 pour Ethernet Protocole vaut 0x0800 pour IP Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 25 / 50 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ˆete ou d’une r´eponse : adresse physique source contient l’adresse physique (MAC) de l’´emetteur du datagramme adresse protocole source contient son adresse r´eseau (IP) adresse physique destination : dans requˆete : inconnue (`a 0, soit 00:00:00:00:00:00 pour Ethernet) dans r´eponse : adresse MAC du destinataire adresse protocole destination contient l’adresse r´eseau (IP) du destinataire (dans une requˆete, c’est l’adresse `a r´esoudre) Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 26 / 50 Requˆete ARP pour IP sur Ethernet V2 adresses de l’´emetteur IP : 194.199.116.5 ethernet : 08:00:05:0e:ab:51 adresses de la cible IP : 194.199.116.2 ethernet (recherch´ee) : 08:00:07:5c:10:0a Trame Ethernet V2 (en hexad´ecimal) : 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ˆete 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 6 - Datagrammes IP, ARP et ICMP 27 / 50 R´eponse ARP pour IP sur Ethernet v2 ´emetteur de la r´eponse IP : 194.199.116.2 ethernet : 08:00:07:5c:10:0a destinataire de la r´eponse IP : 194.199.116.5 ethernet : 08:00:05:0e:ab:51 Trame Ethernet V2 (en hexad´ecimal) : 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´eponse ARP (en hexad´ecimal) : 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 6 - Datagrammes IP, ARP et ICMP 28 / 50 Optimisations d’ARP cache (m´emoire temporaire) ARP obligatoire stock´e sur les hˆotes : contient une liste d’associations ≺ adresse MAC, adresse IP, TTL ´evite d’´emettre une nouvelle requˆete lorsque l’association a d´ej`a ´et´e obtenue une association a une dur´ee de vie (TTL) limit´ee, variable selon les syst`emes (1 min, 20 min, . . . ) chaque fois qu’une association est confirm´ee, sa dur´ee de vie est remise `a son max les associations dont le TTL expire sont supprim´ees traitement de la requˆ ete : les requˆetes ´etant envoy´ees en broadcast, toutes les stations les traitent or elles incluent l’adresse MAC et l’adresse IP de l’´emetteur en recevant une requˆete, les stations peuvent mettre `a jour leur cache avec les infos sur l’´emetteur possibilit´e d’´emission d’une requˆ ete ARP fictive si changement de carte (et donc d’adresse MAC) : en pla¸cant sa propre adresse IP comme celle recherch´ee personne ne r´epondra, mais en recevant la requˆete les stations peuvent mettre `a jour leur cache Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 29 / 50 ICMP : Internet Control and Error Message Protocol (RFC 792, 1122, 950, 1256) Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 30 / 50 Statut et rˆole d’ICMP ICMP est un module obligatoire d’IP qui assure deux fonctions principales : rendre compte d’un probl`eme r´eseau tester l’accessibilit´e d’une machine les messages ICMP sont de deux natures : les messages d’erreur : suite `a une erreur constat´ee 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 ´equipements Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 31 / 50 Transport des messages ICMP Les messages ICMP sont encapsul´es 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ˆeme 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 6 - Datagrammes IP, ARP et ICMP 32 / 50 IP : un service non fiable les causes rendant impossible la remise d’un datagramme peuvent ˆetre nombreuses : panne de ligne de transmission, ou d’un processeur destinataire d´econnect´e TTL insuffisant congestion des routeurs interm´ediaires checksum erron´e mauvaises tables de routage ... n´eanmoins, les erreurs ne sont pas toutes d´etectables ! ! lorsqu’une erreur (dans la remise d’un datagramme) est d´ etect´ ee par un routeur ou la station destinataire, un rapport d’erreur (message ICMP) est envoy´ e` a l’´ emetteur (d’origine) du datagramme Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 33 / 50 Les messages d’erreur ICMP Internet destinataire émetteur erreur !! message ICMP le message inclut au moins 28 octets (l’en-tˆete et les 64 premiers bits) du datagramme ayant caus´e l’erreur, contenant une partie de l’en-tˆete du protocole de niveau sup´erieur, notamment afin de d´eterminer le processus ´emetteur pour l’informer il n’est envoy´e qu’`a l’´emetteur du datagramme qui, parfois, n’y peut rien (exemple d’une mauvaise table de routage d’un routeur interm´ediaire) aucun message d’erreur n’est envoy´e si le datagramme en cause contient un message d’erreur ICMP ! Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 34 / 50 Messages ICMP destin´es au module ICMP du logiciel IP pas de pr´ecaution particuli`ere pour acheminement : possibilit´e de perte, duplication, etc. certains messages d’erreur sont envoy´es avec une priorit´e 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 6 - Datagrammes IP, ARP et ICMP 35 / 50 Messages ICMP : Type et Code le champ Type (cod´e 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´e pour pr´eciser le message pour le Type donn´e Cyril Pain-Barre Code Type Code 6 - Datagrammes IP, ARP et ICMP Total de Contrôle 36 / 50 Messages ICMP : Total de Contrˆole le champ Total de Contrˆ ole (ou checksum) : est cod´e sur 16 bits porte sur (contrˆ ole) la totalit´e du message ICMP calcul´e de la mˆeme mani`ere que le checksum IP Type Code Total de Contrôle suite du message ICMP Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 37 / 50 Test d’accessibilit´e (PING) permet de s’assurer qu’un hˆ ote est joignable et en ´etat de communiquer exploit´e par la commande ping ´echange de messages ”ECHO” diff´erenci´es 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´eponse `a une demande d’echo (ECHO REPLY) le Code est toujours `a 0 Identitificateur permet d’associer la r´eponse `a la demande Num´ero de S´equence incr´ement´e `a chaque demande Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 38 / 50 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 6 - Datagrammes IP, ARP et ICMP ms ms ms ms 39 / 50 Compte rendu de destination inaccessible envoy´e `a 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´ecise la nature du probl`eme comme les autres messages d’erreur, contient le d´ebut du datagramme ayant provoqu´e l’erreur Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 40 / 50 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 ´et´e d´efinis : 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 6 - Datagrammes IP, ARP et ICMP 41 / 50 Message de contrˆole de la congestion appel´e aussi message de limitation de production de la source (Source Quench) envoy´e par un routeur `a l’´emetteur d’un datagramme d´etruit pour cause de saturation (congestion) un message par datagramme d´etruit le message contient le d´ebut du datagramme le r´ecepteur doit alors r´eduire 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 6 - Datagrammes IP, ARP et ICMP 42 / 50 Message de redirection appel´e aussi message de modification de la route envoy´e par un routeur `a l’´emetteur (source) d’un datagramme, situ´ e sur le mˆ eme r´ eseau, si ce routeur n’´etait 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´ecise 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´eseau atteindre l’ordinateur le type de service et le r´eseau le type de service et l’ordinateur Adresse IP d’un routeur est l’adresse du routeur qui aurait dˆ u ˆetre utilis´e l’´emetteur devrait en tenir compte et modifier sa table de routage Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 43 / 50 Message de dur´ee de vie expir´ee 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´e `a l’´emetteur (source) d’un datagramme dans l’un des deux cas suivants : Code = 0 : le TTL a expir´e sur un routeur Code = 1 : le d´elai de r´eassemblage des fragments a expir´e sur l’hˆote destinataire Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 44 / 50 Message d’obtention du masque de sous-r´eseau permet `a une station de demander son masque de sous-r´eseau. La demande est adress´ee (par ordre de pr´ef´erence) en unicast `a un routeur, en multicast 224.0.0.2 (All Routers) ou en broadcast 255.255.255.255 un routeur du r´eseau r´epondra 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` u: Type indique s’il s’agit d’une demande (17) ou d’une r´eponse (18) Code est `a 0 Identificateur et Num´ero de s´equence sont utilis´es pour associer les r´eponses aux demandes Masque contient le masque dans une r´eponse (`a 0 dans une demande) Peu utilis´e car g´en´eralement des protocoles de configuration automatique sont employ´es, tels que BOOTP et DHCP. Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 45 / 50 Message d’annonce d’un routeur envoy´e par les routeurs toutes les 10 minutes et destin´e aux stations de leurs r´eseaux (224.0.0.1 ou `a d´efaut 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´ee de vie indique le temps en secondes de validit´e des infos (g´en´eralement 30 min) `a chaque adresse est associ´ee une priorit´e ; `a utiliser par ordre de priorit´e croissante Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 46 / 50 Message de sollicitation d’un routeur permet `a un ordinateur venant de d´emarrer de demander aux routeurs d’envoyer imm´ediatement un message d’annonce de routeur ce message est envoy´e en multicast 224.0.0.2 (All Routers) ou, `a d´efaut, en broadcast les routeurs recevant ce message sont cens´es y r´epondre d`es que possible format (Type = 10, Code = 0) : Type (10) Code (0) Total de Contrôle Réservé (32 bits à 0) Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 47 / 50 Message de probl`eme de param`etre envoy´e par un routeur ou l’ordinateur destinataire `a l’´emetteur (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´ecise s’il faut tenir compte du champ Pointeur : 0 : tenir compte du Pointeur 1 : ignorer Pointeur (qui devrait ˆetre `a 0). Dans ce cas, il s’agit d’un param`etre manquant (comme une option qui aurait dˆ u ˆetre pr´esente) Pointeur, si utilis´e, indique le num´ero de l’octet du datagramme re¸cu qui comporte l’erreur Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 48 / 50 Synchronisation horloges/Estimation temps de transit messages ´echang´es 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` u Type indique la nature du message : 13 pour une demande d’horodatage, et 14 pour une r´eponse `a une demande d’horodatage le Code est toujours `a 0 Identificateur et Num´ero de s´equence sont utilis´es pour associer les r´eponses aux demandes Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 49 / 50 Synchronisation horloges/Estimation temps de transit les 3 champs horodatage contiennent les dates, exprim´ees en millisecondes ´ecoul´ees depuis le 1er janvier 1970 `a 0h00 : d’´emission de la demande Type (13 ou 14) Code (0) Identificateur de r´eception de la demande d’envoi de la r´eponse Total de Contrôle Numéro de séquence Horodatage de l’émission Horodatage de la réception Horodatage de la transmission plusieurs ´echanges sont n´ecessaires pour une synchronisation correcte Le protocole NTP (Network Time Protocol) a sp´ecifiquement ´et´e d´evelopp´e pour synchroniser son horloge avec des serveurs de r´ef´erence (et des horloges atomiques). Sa version actuelle (version 3) est d´efinie par la RFC 1305. Cyril Pain-Barre 6 - Datagrammes IP, ARP et ICMP 50 / 50
© Copyright 2025 ExpyDoc