M2102 - Architecture des réseaux - 6

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