Vous êtes sur la page 1sur 49

Reseaux - Cours 5

Datagrammes IP, ARP et ICMP

Cyril Pain-Barre
IUT Informatique Aix-en-Provence

Semestre 1 - version du 13/11/2009

1/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

1/49

Datagrammes IP
(RFC 791)

2/50

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) :
Prambule

Adresse
Destination

Adresse
Source

type

donnes

08 00

Datagramme IP

CRC

(de)multiplexage Ethernet v2 :
ARP

RARP

IP

...

le protocole destinataire des donnes


est indiqu par le champ EtherType

0x0806

0x8035

0x0800

trame

Ethernet V2

donnes

3/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

3/49

Format du datagramme IP
en-tete : nombre variable doctets (multiple de 4)
donnees : nombre quelconque doctets (limite `a 65 315)

partie fixe (20 octets)


taille variable
taille variable

VER

HLEN

TOS

Longueur Totale

Identification
Time To Live

Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
Adresse IP Destination
Options IP (ventuelles)
Bourrage

65 535 octets max

entte

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

Donnes

4/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

4/49

HLEN

TOS

Identification

Longueur Totale
Flags

Protocole

Dplacement
Total de Contrle

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

entte

Champ Version

Donnes

code sur 4 bits


identifie la version du (format du) datagramme
actuellement, la version est 4 (codee 0100 en binaire)
dans le datagramme IPv6, ce champ est maintenu et vaut 6
permet de sassurer que le datagramme sera correctement interprete

5/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

5/49

HLEN

taille variable

adresse IP Source : (32 bits)


identifie lh
ote `
a lorigine du datagramme

TOS

Identification

taille variable

partie fixe (20 octets)

VER

Time To Live

Longueur Totale
Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
Adresse IP Destination
Options IP (ventuelles)
Bourrage

65 535 octets max

entte

Champs Adresses

Donnes

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 (translation dadresse), la NATbox peut les
modifier (voir second semestre).
6/50

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

Dplacement
Total de Contrle

Adresse IP Source
Adresse IP Destination
Options IP (ventuelles)
Bourrage

65 535 octets max

entte

Champ Longueur den-tete (HLEN)

Donnes

codee sur 4 bits


indique le nombre de mots de 32 bits de len-tete (comprenant les
options) :
en-tete de 20 `a 60 octets
5 HLEN 15

si HLEN > 5 alors il y a des options

7/50

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

Dplacement
Total de Contrle

Adresse IP Source
65 535 octets max

entte

Champ Longueur Totale

Adresse IP Destination
Options IP (ventuelles)
Bourrage

Donnes

codee sur 16 bits


indique le nombre de total doctets du datagramme (en-tete + donnees)
comprise entre 20 et 65 535

8/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

8/49

inutiliss

entte

TOS

Longueur Totale

Identification

Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
Adresse IP Destination

taille variable

1
Priorit

HLEN

65 535 octets max

VER

Time To Live

Options IP (ventuelles)
Bourrage

taille variable

code sur 8 bits :

partie fixe (20 octets)

Champ Type Of Service (TOS)

Donnes

Priorit
e : de 0 `a 7
distinction entre normal et controle
routeurs : infos trafic 6 et 7

bits D, T et R : type dacheminement d


esir
e:
D(elay) : delai dacheminement court
T(hroughput) : debit de transmission eleve
R(eliability) : grande fiabilite

le TOS constitue un souhait, souvent ignore

Priorit
val2

signification

000

routine

001

priority

010

immediate

011

flash

100

flash override

101

critic

110

internetwork control

111

network control

9/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

9/49

HLEN

taille variable

code sur 8 bits


indique par lemetteur pour limiter :

TOS

Longueur Totale

Identification

taille variable

partie fixe (20 octets)

VER

Time To Live

Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
65 535 octets max

entte

Champ Time To Live (TTL)

Adresse IP Destination
Options IP (ventuelles)
Bourrage

Donnes

la duree de vie du datagramme (en secondes)


le nombre de routeurs traverses par le datagramme

decremente par routeurs et stations traitant le datagramme :


de 1 `a chaque traversee dun routeur
du temps passe en file dattente

si atteint 0, le datagramme est detruit, et lemetteur est informe par un


message ICMP
evite quun datagramme ne circule indefiniment
evite que des fragments ne soient gardes inutilement
10/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

10/49

HLEN

TOS

Identification

taille variable

taille variable

partie fixe (20 octets)

VER

Time To Live

Longueur Totale
Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
65 535 octets max

entte

Champ Protocole

Adresse IP Destination
Options IP (ventuelles)
Bourrage

Donnes

code sur 8 bits


indique le protocole devant recevoir les donnees du datagramme
les valeurs de ce champ sont gerees par lautorite centrale et accessibles
sur le site www.iana.org

11/50

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

Dplacement
Total de Contrle

Adresse IP Source
Adresse IP Destination
Options IP (ventuelles)
Bourrage

65 535 octets max

val10
0
1
2
6
17
89

entte

quelques valeurs officielles :

partie fixe (20 octets)

Champ Protocole

Donnes

demultiplexage IP :
ICMP

UDP
1

IP

TCP
17

...

donnes
12/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

12/49

HLEN

taille variable

code sur 16 bits

TOS

Identification

taille variable

partie fixe (20 octets)

VER

Time To Live

Longueur Totale
Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
Adresse IP Destination
Options IP (ventuelles)
Bourrage

65 535 octets max

entte

Champ Total de Controle den-tete (checksum)

Donnes

controle lintegrite de len-tete uniquement


IP ne v
erifie pas si les donn
ees ont subi des erreurs de
transmission
calcule par lemetteur
verifie lors dela reception (routeurs et destinataire) :
stocker le checksum
calculer le checksum
si differents alors detruire le datagramme

recalcule et modifie par les routeurs (car modifient au moins le TTL)


13/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

13/49

HLEN

TOS

Longueur Totale

Identification

Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
Adresse IP Destination

taille variable

partie fixe (20 octets)

VER

Time To Live

65 535 octets max

entte

Champ Total de Controle den-tete : calcul

Options IP (ventuelles)

taille variable

Bourrage

Donnes

16 bits

2
VER

+
+
+
+
+
+
+
+
+
+
+
+
ret1

HLEN

TOS

Identification
Flags

ret1

Longueur Totale

val1

Dplacement

Time To Live

ret2

Protocole

00000000 00000000
Adresse IP
Source
Adresse IP
Destination

val2

1
4

ret2

mettre checksum 0

calculer somme des mots


de 16 bits de lentte

ajouter ret1 val1

ajouter ret2 val2

checksum = complment
1 de val3

val2

Options IP (ventuelles)

val3

Bourrage

=
val1

checksum

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

14/50

14/49

entte

TOS

Identification

Longueur Totale
Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
Adresse IP Destination

taille variable

Ethernet : 1 500 octets


Token Ring : 4 ou 16 Ko
X.25 : 128 octets recommandes (max 255)
SMDS : 9 188 octets
Frame Relay : 1 600 octets

HLEN

Options IP (ventuelles)
Bourrage

65 535 octets max

taille max des donnees (charge utile)


transportees sur un reseau physique

VER

Time To Live

taille variable

Maximum Transfer Unit (MTU) :

partie fixe (20 octets)

MTU et fragmentation

Donnes

. . . et donc des datagrammes

IP fragmente tout datagramme plus grand que le MTU du reseau qui


doit le transporter :
MTU = 4000

MTU = 1500

MTU = 1000

chaque fragment est un datagramme achemine independamment


(peut suivre une route differente des autres fragments) et peut etre `a
son tour fragmente
15/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

15/49

HLEN

taille variable

16 bits

3 bits

13 bits

identification

0 D M

dplacement

toujours 0

TOS

Identification

taille variable

partie fixe (20 octets)

VER

Time To Live

Longueur Totale
Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
65 535 octets max

entte

Champs Fragmentation

Adresse IP Destination
Options IP (ventuelles)
Bourrage

Donnes

flags

identification : valeur identifiant le datagramme dorigine relativement `a


ladresse IP Source
bit D(ont Fragment) : le datagramme ne doit pas etre fragmente
(detruit et message ICMP si impossible)
bit M(ore) : `a 0 si ce datagramme est le dernier (ou seul) fragment
deplacement (Offset) : indique la position du premier octet de donnees
dans le datagramme dorigine. Cette position est deplacement 8. Vaut
0 si pas de fragmentation
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

16/50

16/49

HLEN

TOS

Identification

taille variable

taille variable

partie fixe (20 octets)

VER

Time To Live

Longueur Totale
Flags

Protocole

Dplacement
Total de Contrle

Adresse IP Source
Adresse IP Destination
Options IP (ventuelles)
Bourrage

65 535 octets max

entte

Reassemblage

Donnes

realise par le destinataire final :


met en attente les fragments des datagrammes incomplets
les reordonne
detruit tous les fragments dun datagramme si le TTL de lun deux
passe `a 0 (et envoie un message ICMP `a lemetteur)

17/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

17/49

Resolution dadresse

18/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

18/49

Necessite de la resolution dadresse


situation : une station/routeur S a un datagramme `a transmettre `a une
station/routeur D du meme reseau. D est ladresse IP de la destination
finale du datagramme (remise directe) ou celle dun routeur obtenue par
consultation de la table de routage (remise indirecte)
(adresses IP)

Datag. IP

IP

IP
rsolution
dadresse

HteRseau

(adresses physiques)

commutation/routage
paquet,trame,cellule...

HteRseau

la transmission doit se faire en utilisant le service de la couche


hote-reseau (reseau physique)
la couche hote-reseau nutilise pas les adresses IP mais des adresses
physiques (adresses MAC)
la r
esolution dadresse est le mecanisme permettant dobtenir
ladresse physique (de linterface/carte reseau) de la station possedant
une certaine adresse IP
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

19/50

19/49

Methodes possibles pour la resolution dadresse


resolution directe
ladresse physique est determinee comme une fonction de
ladresse IP
methode simple `a mettre en uvre si les adresses physiques
sont configurables

interrogation dun serveur


un serveur est charge de collecter les adresses physiques et IP
des hotes du reseau
les stations interrogent le serveur pour resoudre les adresses
methode souvent utilisee lorsque le reseau ne permet pas la
diffusion
mais la resolution nest plus possible si le serveur devient
injoignable. . .
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

20/50

20/49

Resolution dynamique par ARP


Pour les reseaux permettant la diffusion, la methode privilegiee est
ARP (Address Resolution Protocol), definie dans la RFC 826.
ARP a lavantage detre `a la fois dynamique et decentralisee :
les changements dassociation adresse IP/adresse MAC sont
automatiquement et rapidement pris en compte
aucun serveur nest necessaire et une panne dune station na
aucun impact global

ARP a ete originellement defini pour IP et Ethernet. Mais il


est plus general et peut etre utilise sur tout type de reseau
permettant la diffusion, pour le compte de differents
protocoles reseau (dont IP)
IP sur Ethernet utilise systematiquement ARP
21/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

21/49

Principe de la resolution par ARP


S

S
194.199.116.115

194.199.116.115

194.199.116.5

194.199.116.22

194.199.116.5

rseau 194.199.116.0

194.199.116.22

requte (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

194.199.116.115

194.199.116.115

194.199.116.5

194.199.116.22

194.199.116.5

requte (broadcast) : qui est 194.199.116.2 ?


194.199.116.39

rponse (unicast) : moi, voil mon adresse MAC


194.199.116.2

194.199.116.10

194.199.116.22

194.199.116.39

194.199.116.2
194.199.116.10

S envoie en broadcast une requ


ete ARP signifiant quil
souhaite obtenir ladresse physique correspondant `a D

la requete est recue et traitee par toutes les stations du reseau

seule la station dadresse D repond en envoyant en unicast `a


S une r
eponse ARP contenant ladresse physique demandee
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

23/50

22/49

Format du datagramme ARP


bits :

16

Type de rseau
L. @phy

L. @pro

31
Protocole

Opration (1 ou 2)

taille variable

adresse physique source


adresse protocole source
adresse physique destination
adresse protocole destination

la taille du datagramme ARP depend des protocoles en jeu


la taille (en octets) des adresses physiques (comme Ethernet) est
indiquee par le champ Longueur adresses physiques (L. @phy)
la taille (en octets) des adresses protocole (comme IP) est indiquee par le
champ Longueur adresses protocole (L. @pro)

les requetes et les reponses ont le meme format ; le champ Operation


indique sil sagit dune requete (Operation vaut 1) ou dune reponse
(Operation vaut 2)
24/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

23/49

Datagramme ARP : type de reseau et protocole


bits :

16

Type de rseau
L. @phy

L. @pro

31
Protocole

Opration (1 ou 2)

taille variable

adresse physique source


adresse protocole source
adresse physique destination
adresse protocole destination

Type de reseau precise le reseau physique utilise et donc le type


dadresse recherchee
Protocole precise la couche reseau utilisee et donc le type dadresse `a
partir duquel la resolution doit etre operee
les valeurs que peuvent prendre ces champs sont definies par lIANA
(www.iana.org) :
Type de reseau vaut 0x0001 pour Ethernet
Protocole vaut 0x0800 pour IP
25/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

24/49

Datagramme ARP : adresses


bits :

16

Type de rseau

taille variable

L. @phy

31
Protocole

L. @pro

Opration (1 ou 2)

adresse physique source


adresse protocole source
adresse physique destination
adresse protocole destination

quil sagisse dune requete ou dune reponse :


adresse physique source contient ladresse physique de lemetteur du
datagramme
adresse protocole source contient son adresse reseau

adresse physique destination est inconnue pour une requete


(00:00:00:00:00:00 pour Ethernet), et celle du destinataire pour une
reponse
adresse protocole destination contient ladresse reseau du destinataire
(dans une requete, cest ladresse `a resoudre)
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

26/50

25/49

Requete ARP pour IP sur Ethernet V2


adresses de lemetteur
IP : 194.199.116.5
ethernet : 08:00:05:0e:ab:51

adresses de la cible
IP : 194.199.116.2
ethernet (recherchee) : 08:00:07:5c:10:0a

Trame Ethernet V2 (en hexadecimal) :


destination
prambule

ff:ff:ff:ff:ff:ff

source

type

08:00:05:0e:ab:51 08 06

donnes
Datagramme ARP (requte)

CRC

(broadcast)

Requete ARP (en binaire) :


Type rseau :
Ethernet (1)

Protocole :
IP (0x0800)

L. @ phy :
6

L. @ pro :
4

Opration :
requte (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)
27/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

26/49

Reponse ARP pour IP sur Ethernet v2


emetteur de la reponse
IP : 194.199.116.2
ethernet : 08:00:07:5c:10:0a

destinataire de la reponse
IP : 194.199.116.5
ethernet : 08:00:05:0e:ab:51

Trame Ethernet V2 (en hexadecimal) :


destination
prambule

source

08:00:05:0e:ab:51

type

08:00:07:5c:10:0a 08 06

donnes
Datagramme ARP (rponse)

CRC

(unicast)

Reponse ARP (en hexadecimal) :


Protocole :
IP (0x0800)
Type rseau :
Ethernet (1)

L. @ phy : 6
L. @ pro : 4

0001080006040002
Opration : rponse (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

28/50

27/49

Optimisations dARP
cache (memoire temporaire) ARP obligatoire stocke sur les hotes :
contient une liste dassociations adresse MAC, adresse IP 
evite demettre une nouvelle requete lorsque lassociation a dej`a ete
obtenue
une association a une duree de vie limitee (environ 20 minutes)
chaque fois quune association est confirmee, sa duree de vie est remise `a
20 min
les associations dont la duree de vie expire sont supprimees

traitement de la requ
ete :
les requetes etant envoyees en broadcast, toutes les stations les traitent
or elles incluent ladresse MAC et ladresse IP de lemetteur
en recevant une requete, les stations mettent `a jour leur cache avec les
infos sur lemetteur

emission dune requ


ete ARP fictive si changement de carte (et donc
dadresse MAC) :
en placant sa propre adresse IP comme celle recherchee
personne ne repondra mais tout le monde aura mis `a jour son cache avec
la nouvelle adresse MAC
29/50
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

28/49

ICMP :
Internet Control and Error Message Protocol
(RFC 792, 1122, 950, 1256)

30/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

29/49

Statut et role dICMP

ICMP est un module obligatoire dIP


qui assure deux fonctions principales :
rendre compte dun probl`eme reseau
tester laccessibilite dune machine

les messages ICMP sont de deux natures :


les messages derreurs : suite `a une erreur constatee sur un datagramme
(qui entrane le plus souvent sa destruction)
les messages dinterrogation/information : messages divers contribuant
au (ou informant sur le) bon fonctionnement des equipements

31/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

30/49

Transport des messages ICMP


Les messages ICMP sont encapsules dans des datagrammes IP (champ
Protocole vaut 1) :
Message ICMP

Datagramme IP

Trame
(ou PDU hterseau)

entte
ICMP

donnes ICMP

entte
IP

entte

donnes IP

donnes trame

mais IP utilisant ICMP, les deux se


situent au meme niveau

enqueue

Transport (TCP et UDP)

les protocoles de transport (TCP et


UDP) utilisent aussi ICMP pour certaines
erreurs (sur la station destinataire)

IP & ICMP
HteRseau
32/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

31/49

IP : un service non fiable


les causes rendant impossible la remise dun datagramme peuvent etre
nombreuses :
panne de ligne de transmission, ou dun processeur
destinataire deconnecte
TTL insuffisant
congestion des routeurs intermediaires
checksum errone
mauvaises tables de routage
...

neanmoins, les erreurs ne sont pas toutes detectables


lorsquune erreur (dans la remise dun datagramme) est d
etect
ee
par un routeur ou la station destinataire, un rapport derreur
(message ICMP) est envoy
e`
a l
emetteur (dorigine) du
datagramme
33/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

32/49

Les messages derreur ICMP


Internet
destinataire

metteur

erreur !!

message ICMP

le message inclut au moins 28 octets (len-tete et les 64 premiers bits)


du datagramme ayant cause lerreur, contenant les en-tetes des
protocoles de niveau superieur, ce qui permet notamment de determiner
le processus emetteur pour linformer
il nest envoye qu`a lemetteur du datagramme qui, parfois, ny peut rien
(exemple dune mauvaise table de routage dun routeur intermediaire)
aucun message derreur nest envoye si le datagramme en cause
contient un message ICMP
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

34/50

33/49

Messages ICMP

destines au module ICMP du logiciel IP


pas de precaution (securite, priorite) particuli`ere pour acheminement :
possibilite de perte, duplication, etc.
tous les messages ICMP commencent par les 3 champs :
Type

Code

Total de Contrle

(8 bits)

(8 bits)

(16 bits)

35/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

34/49

Messages ICMP : Type et Code


le champ Type
(code sur 8 bits)
indique la nature du
message :

Type

valeur (dcimal)

Code

Total de Contrle

signification

rponse une demande decho

destination inacessible

limitation de production la source

redirection (changement de route)

demande decho

annonnce de routeur

10

sollicitation de routeur

11

TTL de datagramme expir

12

problme de paramte dun datagramme

13

demande dhorodatage

14

rponse une demande dhorodatage

17

demande de masque de sousrseau

18

rponse une demande de masque de sousrseau

le champ Code (8 bits) est utilise pour


preciser le message

Type

Code

Total de Contrle

36/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

35/49

Messages ICMP : Total de Controle

le champ Total de Contr


ole (ou checksum) :
est code sur 16 bits
porte sur (contr
ole) la totalite du message ICMP
calcule de la meme mani`ere que le checksum IP
Type

Code

Total de Contrle

suite du message ICMP

37/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

36/49

Test daccessibilite
permet de sassurer quune station est joignable et en etat de
communiquer
exploite par la commande ping
echange de messages ECHO :
Type (0 ou 8)

Code (0)

Total de Contrle

Identificateur (16 bits)

Numro de squence (16 bits)

Donnes optionnelles

...

demande decho (Type = 8)


reponse `a une demande decho (Type = 0)

le Code est toujours `a 0


Identitificateur permet dassocier la reponse `a la demande
Numero de Sequence incremente `a chaque demande
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

38/50

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

ms
ms
ms
ms

39/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

38/49

Compte rendu de destination inaccessible


envoye `a lAdresse Source dun datagramme IP lorsquune
station/routeur se rend compte quil ne peut pas atteindre sa
destination (ordinateur ou processus)
messages avec Type = 3
Type (3)

Code (0 12)

Total de Contrle

au moins
28 octets

Inutilis (32 bits 0)

Entte et 64 premiers bits du datagramme IP

le Code precise la nature du probl`eme


commes les autres messages derreur, contient le debut du datagramme
ayant provoque lerreur
40/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

39/49

Codes de compte rendu de destination inaccessible


Type (3)

Code (0 12)

Total de Contrle

Inutilis (32 bits 0)

Entte et 64 premiers bits du datagramme IP

plusieurs codes ont ete definis :


valeur
(dcimal)

signification

rseau inaccessible

ordinateur inaccessible

protocole inaccessible

port inacessible

fragmentation ncessaire mais bit Dont Fragment positionn

chec de routage la source

rseau de destination inconnu

ordinateur de destination inconnu

ordinateur source isol

communication avec le rseau de destination interdite par ladministrateur rseau

10

communication avec lordinateur destinataire interdite par ladministrateur rseau

11

rseau inacessible pour le service demand

12

ordinateur inaccessible pour le service demand

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

41/50

40/49

Message de controle de la congestion


appele aussi message de limitation de production de la source
(Source Quench)
envoye par un routeur `a lemetteur dun datagramme detruit pour cause
de saturation (congestion)
un message par datagramme detruit
le message contient le debut du datagramme
le recepteur doit alors reduire ses envois pour cette destination
format (Type = 4, Code = 0) :
Type (4)

Code (0)

Total de Contrle

au moins
28 octets

Inutilis (32 bits 0)

Entte et 64 premiers bits du datagramme IP

42/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

41/49

Message de redirection
appele aussi message de modification de la route
envoye par un routeur `a lemetteur (source) dun datagramme, situ
e
sur le m
eme r
eseau, si le routeur nest pas le meilleur choix
format (Type = 5) :
Type (5)

Code (0 3)

Total de Contrle

au moins
28 octets

Adresse IP dun routeur

Entte et 64 premiers bits du datagramme IP

le Code precise 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 reseau
atteindre lordinateur
le type de service et le reseau
le type de service et lordinateur

Adresse IP dun routeur est ladresse du routeur qui aurait d


u etre utilise
lemetteur doit en tenir compte et modifier sa table de routage
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

43/50

42/49

Message de duree de vie expiree

envoye `a lemetteur (source) dun datagramme dans lun des deux cas
suivants :
le TTL a expire sur un routeur (Code = 0)
le delai de reassemblage des fragments a expire sur lordinataire
destinataire (Code = 1)

format (Type = 11) :


Type (11)

Code (0 ou 1)

Total de Contrle

au moins
28 octets

Inutilis (32 bits 0)

Entte et 64 premiers bits du datagramme IP

44/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

43/49

Message de probl`eme de param`etre


envoye par un routeur ou lordinataire destinataire `a lemetteur (source)
dun 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 Contrle
Inutilis (24 bits 0)

Entte et 64 premiers bits du datagramme IP

le Code precise sil faut tenir compte du champ Pointeur :


0 : tenir compte du Pointeur
1 : ignorer Pointeur (qui devrait etre `a 0). Dans ce cas, il sagit dun
param`etre manquant (comme une option qui aurait d
u etre presente)

Pointeur, si utilise, indique le numero de loctet du datagramme recu


qui comporte lerreur
45/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

44/49

Synchronisation horloges/Estimation temps de transit


messages echanges entre 2 ordinateurs pour synchroniser leur horloge
ou estimer le temps de transit
format :
Type (13 ou 14)

Code (0)

Identificateur

Total de Contrle
Numro de squence

Horodatage de lmission
Horodatage de la rception
Horodatage de la transmission

o`
u Type indique la nature du message : 13 pour une demande
dhorodatage, et 14 pour une reponse `a une demande dhorodatage
le Code est toujours `a 0
Identificateur et Numero de sequence sont utilises pour associer les
reponses aux demandes
46/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

45/49

Synchronisation horloges/Estimation temps de transit


les 3 champs horodatage contiennent les dates, exprimees en
millisecondes ecoulees depuis le 1er janvier 1970 `a 0h00 :
demission de la demande

Type (13 ou 14)

Code (0)

Identificateur

de reception de la demande
denvoi de la reponse

Total de Contrle
Numro de squence

Horodatage de lmission
Horodatage de la rception
Horodatage de la transmission

plusieurs echanges sont necessaires pour une synchronisation correcte

Le protocole NTP (Network Time Protocol) a specifiquement ete


developpe pour synchroniser son horloge avec des serveurs de
reference (et des horloges atomiques).
Sa version actuelle (version 3) est definie par la RFC 1305.
47/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

46/49

Message dobtention du masque de sous-reseau


permet `a une station de demander son masque de sous-reseau. La
demande est adressee (par ordre de preference) en unicast `a un routeur,
en multicast 224.0.0.2 (All Routers) ou en broadcast 255.255.255.255
un routeur du reseau repondra en unicast en indiquant le masque
format :

Type (17 ou 18)

Code (0)

Identificateur

Total de Contrle
Numro de squence

Masque de sousrseau

o`
u:
Type indique sil sagit dune demande (17) ou dune reponse (18)
Code est `a 0
Identificateur et Numero de sequence sont utilises pour associer les
reponses aux demandes
Masque contient le masque dans une reponse (`a 0 dans une demande)

Peu utilise car generalement des protocoles de configuration automatiques


sont employes, tels que BOOTP et DHCP (etudies au second semestre).
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

48/50

47/49

Message dannonce dun routeur


envoye par les routeurs toutes les 10 minutes et destine aux stations de
leurs reseaux (224.0.0.1 ou `a defaut en broadcast)
format (Type = 9, Code = 0) :
Type (9)
Nombre dadresses

Code (0)

Total de Contrle

Taille adresse

Dure de vie

selon le nombre dadresses

Adresse IP du routeur 1
Priorit du routeur 1
Adresse IP du routeur 2
Priorit du routeur 2

...

Nombre dadresses indique le nombre dadresses de routeurs


Taille adresse 4 donne la taille en octets des adresses
Duree de vie indique le temps en secondes de validite des infos
(generalement 30 min)
`a chaque adresse est associee une priorite ; `a utiliser par ordre de priorite
croissante
Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

49/50

48/49

Message de sollicitation dun routeur

permet `a un ordinateur venant de demarrer de demander aux routeurs


denvoyer immediatement un message dannonce de routeur
ce message est envoye en multicast 224.0.0.2 (All Routers) ou, `a
defaut, en broadcast
les routeurs recevant ce message sont censes y repondre d`es que
possible
format (Type = 10, Code = 0) :
Type (10)

Code (0)

Total de Contrle

Rserv (32 bits 0)

50/50

Cyril Pain-Barre

Datagrammes IP, ARP et ICMP

49/49