Vous êtes sur la page 1sur 16

Université Cadi Ayyad

Ecole Nationale des Sciences Appliquées de Marrakech

Support de cours

Routage & Commutation 1

Séance N°

88 La couche réseau
IP & Autres protocoles

-1-
Couche 3 : La couche réseau (Suite)
Méthodes d’obtention d'adresses IP

On distingue 2 méthodes d’attribution d’adresses IP pour les hôtes :

• Statique : chaque équipement est configuré manuellement avec une adresse unique
• Dynamique : On utilise des protocoles qui attribuent des IP aux hôtes :

o RARP : Protocole associant les adresses MAC aux adresses IP. Il permet à des stations sans
disque dur local connaissant leur adresse MAC de se voir attribuer une IP.
o BOOTP : Ce protocole permet à un équipement de récupérer son adresse IP au démarrage.
L’émetteur envoi un message de broadcast (255.255.255.255) reçu par le serveur qui répond
lui aussi par un broadcast contenant l’adresse MAC de l’émetteur ainsi qu’une IP.
o DHCP : Remplaçant de BOOTP, il permet l’obtention dynamique d’IP. Lorsqu’un
ordinateur entre en ligne, il communique avec le serveur qui choisit une adresse et un
masque de sous réseau et l’attribue à l’hôte. Il permet de plus d’obtenir des serveurs DNS, la
passerelle par défaut ainsi qu’optionnellement les adresses des serveursWINS.

DHCP DISCOVER Envoi d'un message de broadcast par un


client (paquet UDP utilisant le port de
BOOTP) afin de contacter un serveur
DHCP, s’il en existe un sur le réseau.

Réponse d’un serveur DHCP si celui-ci a


des adresses IP libres.

DHCP REQUEST
Requête du client pour une adresse IP
auprès du serveur et négociation du bail

Renvoi par le serveur de l’adresse IP et du


bail accordé.

-2 -
Les équipements de la couche 3 :
Les équipements de la couche 3 sont tout équipement possédant une adresse logique (Exemple : IP) et utilisant le
mécanisme du routage.

Exemple : PC, LapTop, Imprimante, SmartPhone, Vidéo Projecteur, Routeur WiFi, Routeur, ...

Routeur : équipement de couche 3 permettant d’interconnecter 2 réseaux logiques différents (Exemple : 2 réseaux IP
différents), ou plus en se basant sur les adresses de couche 3 (logiques). Le routeur permet également une
segmentation des domaines de broadcasts (un domaine de brodcast = un réseau ip)

Règle : Ainsi on ne peut pas trouver dans le même routeur deux interfaces appartenant au même réseau IP!!

Comme son nom l'indique, le rôle d'un routeur est de réaliser le routage.

Le routage = rechercher dans la table de routage (une base de donnée) la meilleure route qui mène vers la destination
demandée.

Cette meilleure route aura comme résultat :

• Interface de sortie qui représentera la source physique dans la trame.

• Le Next-Hop (aussi appelé la passerelle ou Gateway) sui représentera la destination physique dans la trame.

Ainsi le routeur peut changer les deux adresses physiques dans la trame suivant le résultat de cette recherche,
contrairement au commutateur (switch) qui ne change pas la trame (transparence).

Par contre le routeur ne change pas au paquet (sauf la décrémentation du TTL)

Routeur Cisco 2600

Symbole logique de routeur

-3 -
Communication directe

La communication directe se fait entre deux équipements liés physiquement (par un lien ou un switch) :
• La machine A peut envoyer des données vers B si l'adresse de B et dans le réseau de A
• La source physique = la source logique (IP et MAC de la même interface de sortie de A)
• La destination physique=la destination logique (IP et MAC de la même interface de la destination B)

Exemple :

• La machine PC1 peut envoyer des données vers PC2 car 192.168.1.2 est dans le réseau de PC1 (192.168.1.1-
>192.168.1.255), dans ce cas les adresses de la trame et du paquet seront comme suivant :
o IP-SRC= IP de PC1
o IP-DST= IP de PC2
o MAC-SRC= MAC de PC1
o MAC-DST= MAC de PC2
• Aussi la machine PC2 peut envoyer des données vers PC1 car 192.168.1.1 est dans le réseau de PC2 (192.168.1.1-
>192.168.1.127)

Règle : Si l'IP-DST=Adresse de brodcast (globale ou locale) alors MAC-DST=@MAC de diffusion


(FF:FF:FF:FF:FF:FF)

Communication indirecte (Passerelle)

Contrairement à la communication directe, celle indirecte se fait entre deux équipements si la d'adresse logique de la
destination n'est pas dans le réseau de la source, ainsi la source aura besoin d'un routeur (appelé dans ce cas passerelle ou
gateway) qui aura comme rôle de lier la source avec l'extérieur (routage).

Exemple :

Pour que PC1 envoie des données (logiquement) à PC2, il doit passer (physiquement) ces données vers le routeur1
qui est sa passerelle, ainsi :

+ La trame (Ethernet dans ce cas) construite dans PC1 aura comme adressage physique :
- @MAC source = @MAC de PC1 (l'interface physique qui va emmètre la trame)
- @MAC destination : @ MAC de l'interface du router 1 liée à PC1 (l'interface physique qui recevra la trame)

-4 -
+ Le paquet (IP dans ce cas) construit dans PC1 (Les données encapsulées dans la trame précédente) aura comme
adressage logique :

- @IP source = @IP de PC1 (l'émetteur logique : émetteur initial du paquet)


- @IP destination : @ IP de PC2 (le récepteur logique : le récepteur final du paquet)

Ainsi le Routeur 1 qui recevra ces données va :


• Diminuer le TTL du paquet par 1 (le reste du paquet n'est pas changé sauf dans le cas du NAT)
• Suivant la recherche dans la table de routage (Interface de sortie + Next -hop vu précédemment) le routeur
changera les adresses physique de la trame comme suivant :
o MAC-SRC = MAC de l'interface de sortie
o MAC-DST=MAC du Next-Hop

Et de même pour les deux autres routeurs......

-5 -
Le protocole IP
IP signifie « Internet Protocol », protocole Internet. Il représente le protocole réseau le plus répandu. Il permet de
découper l’information à transmettre en paquets, de les adresser, de les transporter indépendamment les uns des autres
et de recomposer le message initial à l’arrivée. Ce protocole utilise ainsi une technique dite de commutation de
paquets. Il apporte, en comparaison à Ipx/Spx et Netbeui, l’adressage en couche 3 qui permet, par exemple, la fonction
principale de routage.

La structure du paquet IP

Voici le complément de l’entête IP qui est optionnel basé sur 4 octets.

Le champ Vers

Le champ version est codé sur 4 bits. Il représente le numéro de version du protocole IP. Il permet aux piles IP
réceptionnant la trame de vérifier le format et d’interpréter correctement la suite du paquet. C’est d’ailleurs pour cette
raison qu’il est placé au début, une version inconnue par un équipement conduit au rejet direct :
• 00 – Réservé • 06 – IP V6 • 12 – Non assigné

• 01 – Non assigné • 07 – Non assigné • 13 – Non assigné

• 02 – Non assigné • 08 – Non assigné • 14 – Non assigné

• 03 – Non assigné • 09 – Non assigné • 15 – Réservé

• 04 – IP V4 • 10 – Non assigné

• 05 – ST Datagram Mode • 11 – Non assigné

IHL

IHL signifie « Internet header lengh ». ce champ est codé sur 4 bits et représente la longueur en mots de 32 bits de

-6 -
l’entête IP. Par défaut, il est égal à 5 (20 octets), cependant, avec les options de l’entête IP, il peut être compris entre 6
et 15.

Le fait que le codage soit sur 4 bits, la taille maximum de l’entête IP est donc de 15*32bits/8 = 60 octets

Service

Le champs service « Type Of Service » est codé sur 8 bits, il permet la gestion d’une qualité de service (QoS) traitée
directement en couche 3 du modèle OSI. Cependant, la plupart des équipements de Backbone, ne tiennent pas compte
de ce champ et même certain le réinitialise à 0.

Voici la composition du champ Service :

Vous trouverez tous les détails du champ Service TOS « Type Of Service » dans la RFC 1349.
Priorité

Le champ Priorité « Precedence » est codé sur 3 bits. Il indique la priorité que possède la paquet. Voici les
correspondances des différentes combinaisons :
• 0 – 000 – Routine • 3 – 011 – Urgent • 6 – 110 – Supervision

• 1 – 001 – Prioritaire • 4 – 100 – Très urgent interconnexion

• 2 – 010 – Immédiat • 5 – 101 – Critique • 7 – 111 – Supervision réseau

Délai

Le champ Délai « Delay » est codé sur 1 bit. Il indique l’importance du délai d’acheminement du paquet. Voici les
correspondances des différentes combinaisons :
• 0 – Normal • 1 – Bas
Débit

Le champ Débit « Throughput » est codé sur 1 bit. Il indique l’importance du débit acheminé. Voici les correspondances des différentes
combinaisons :

• 0 – Normal • 1 – Haut
Fiabilité

Le champ Fiabilité « Reliability » est codé sur 1 bit. Il indique l’importance de la qualité du paquet. Voici les correspondances des différentes
combinaisons :

• 0 – Normal • 1 – Haute
Coût

Le champ Coût « Cost » est codé sur 1 bit. Il indique le coût du paquet. Voici les correspondances des différentes combinaisons :

• 0 – Normal • 1 – Faible
MBZ

Le champ MBZ « Must Be Zero » est codé sur 1 bit. Comme son nom l’indique, il doit être mis à 0.

-7 -
Longueur totale

Le champ Longueur totale est codé sur 16 bits et représente la longueur du paquet incluant l’entête IP et les Data
associées. La longueur totale est exprimée en octets, ceci permettant de spécifier une taille maximum de 216 = 65535
octets. La longueur des Data est obtenu par la combinaison des champs IHL et Longueur totale :

• Longueur_des_data = Longueur_totale – ( IHL * 4 );

Identification

Le champ Identification est codé sur 16 bits et constitue l’identification utilisée pour reconstituer les différents fragments. Ainsi tous les
fragments du même fragment-parent possède le même numéro d’identification, les entêtes IP des fragments sont identiques à l’exception des
champs Longueur totale, Checksum et Position fragment.

Vous trouverez tous les détails des mécanismes de fragmentation et de réassemblage dans la RFC 815.

Flags

Le champ Flags est codé sur 3 bits et indique l’état de la fragmentation. Voici le détail des différents bits constituant ce champ.

Reserved

Le premier bit est réservé et positionné à 0.

DF

Appelé DF « Don’t Fragment », le second bit permet d’indiqué si la fragmentation est autorisée. Si un Datagramme devant être fragmenté
possède le flag DF à 1, alors, il sera alors détruit.

MF

Appelé MF « More Fragments », le troisième bit indique s’il est à 1 que le fragment n’est pas le dernier.

Position fragment (Offset)

Le champ Position fragment est codé sur 13 bits et indique la position du fragment par rapport au fragment-parent. Le premier fragment
possède donc le champ Position fragment à 0.

TTL

Le champ TTL (Time To Live) est codé sur 8 bits et indique la durée de vie maximale du paquet. Il représente la durée de vie en seconde du
paquet. Si le TTL arrive à 0, alors l’équipement qui possède le paquet, le détruira.

Attention, à chaque passage d’un routeur le paquet se verra décrémenté de une seconde. De plus, si le paquet reste en file d’attente d’un
routeur plus d’une seconde, alors la décrémentation sera plus élevée. Elle sera égale au nombre de seconde passé dans cette même file
d’attente. Par défaut, si les temps de réponse sont corrects, alors on peut, entre guillemet, en conclure que le Time To Live représente le
nombre de saut maximum du niveau.

Le but du champ TTL est d’éviter de faire circuler des trames en boucle infinie.

Protocole

Le champ Protocole est codé sur 8 bits et représente le type de Data qui se trouve derrière l’entête IP.

Vous trouverez tous les détails des types de protocole dans la RFC 1700 qui remplace désormais la RFC 1340.

Voici la liste des protocoles les plus connu :

• 01 – 00001 – ICMP • 06 – 00110 – TCP

• 02 – 00010 – IGMP • 17 – 10001 – UDP

Checksum

Le champ Checksum est codé sur 16 bits et représente la validité du paquet de la couche 3. Pour pouvoir calculer le Checksum, il faut
positionner le champ du checksum a 0 et ne considérer que l’entête IP. Donc par exemple, si deux trames ont la même entête IP (y compris le
champ length) et deux entêtes ICMP et Data différentes (mais de même longueur), le checksum IP sera alors le même.

-8 -
Tous les équipements de niveau 3, tel que les routeurs, devront recalculer le Checksum, car il décrémente le champs TTL. De plus, toutes les
fonctions de niveau 3 à 7, tel que la NAT, le PAT (NAT = Pour permettre à une adresse ip privée de sortir vers internet on la remplace par une
autre publique, on aura l'occasion de voir NAT après), modifiant le contenu de l’entête IP ou des Data, devront recalculer le Checksum.

Adresse IP source

Le champ IP source est codé sur 32 bits et représente l’adresse IP source ou de réponse. Il est codé sur 4 octets qui forme l’adresse A.B.C.D.

Adresse IP destination

Le champ IP destination est codé sur 32 bits et représente l’adresse IP destination. Il est codé sur 4 octets qui forme l’adresse A.B.C.D.

Options

Le champ Options est codé entre 0 et 40 octets. Il n’est pas obligatoire, mais permet le « Tuning de l’entête IP ». Afin de bien gérer les
Options, cela doit commencer par un octets de renseignement. Voici le détail de cette octet :

Copie

Le champ Copie est codé sur 1 bit et indique comment les options doivent être traitées lors de la fragmentation. Cela signifie que lorsqu’il est
positionné à 1, il faut recopier les options dans chaque paquet fragmenté.

Classe

Le champ Classe est codé sur 2 bits et indique les différentes catégorie d’options existantes. Voici la liste des différentes classe possible :

• 0 – 00 – • 1 – 01 – Non • 2 – 10 – Debug et • 3 – 11 – Non


Supervision de utilisé mesures utilisé
réseau
Numéro

Le champ Numéro est codé sur 5 bits et indique les différentes options existantes. Voici la liste des différents numéros possibles par Classe :

Classe 0,

• 0 – 00000 – Fin de liste d’option. Utilisé si les options ne • 3 – 00011 – Routage lâche défini par la source.
se terminent pas à la fin de l’entête (bourrage). • 7 – 00111 – Enregistrement de route.
• 1 – 00001 – Pas d’opération. Utilisé pour aligner les • 8 – 01000 – Identificateur de connexion.
octets dans une liste d’options.
• 9 – 01001 – Routage strict défini par la source.
• 2 – 00010 – Restriction de sécurité et de gestion. Destiné
aux applications militaires.

Classe 2,

• 4 – 00100 – Horodatage dans l’Internet.

Bourrage

Le champ Bourrage est de taille variable comprise entre 0 et 7 bits. Il permet de combler le champ option afin d’obtenir une entête IP
multiple de 32 bits. La valeur des bits de bourrage est 0.

-9 -
Résolution d’adresses (Physique-Logique)

• Le protocole ARP

Le protocole ARP permet d’identifier l’adresse physique d’un hôte (adresse MAC unique) à partir de
son adresse IP. ARP signifie Address Resolution Protocol.

Chaque machine connectée au réseau possède une adresse physique de 48 bits. Ce numéro unique est
en fait encodé dans chaque carte réseau dès la fabrication de celle-ci en usine (adresse MAC).
Toutefois, la communication sur un réseau ne se fait pas directement à partir de ce numéro car cette
adresse n’est pas hiérarchique. On ne peut donc pas déterminer l’appartenance d’un hôte à un réseau à
partir de cette adresse. Pour cela on utilise une adresse dite logique : l’adresse IP.

Ainsi, pour faire correspondre les adresses physiques aux adresses logiques, le protocole ARP
interroge les machines du réseau pour connaître leur adresse physique, puis crée une table de
correspondance entre les adresses logiques et les adresses physiques dans une mémoire cache.

Lorsqu'une machine doit communiquer avec une autre, elle consulte la table de correspondance. Si
jamais l'adresse demandée ne se trouve pas dans la table, le protocole ARP émet une requête sur le
réseau. L'ensemble des machines du réseau va comparer cette adresse logique à la leur.

Si l'une d'entre-elles s'identifie à cette adresse, la machine va répondre à l’émetteur qui va stocker le
couple d'adresses dans la table de correspondance et la communication sera possible.

Structure de l’entête ARP


Voici l’entête du protocole ARP dans le cadre spécifique d’Ip sur Ethernet.

Définition des différents champs

Hardware type

Ce champs est placé en premier afin d’indiquer quel est le format de l’entête Arp. Voici les différentes valeurs possibles.

• 01 – Ethernet (10Mb) [JBP] • 07 – ARCNET [JBP] • 15 – Frame Relay [AGM]

• 02 – Experimental Ethernet • 08 – Hyperchannel [JBP] • 16 – Asynchronous


(3Mb) [JBP] • 09 – Lanstar [TU] Transmission Mode (ATM)

• 03 – Amateur Radio AX.25 [JXB2]


• 10 – Autonet Short Address
[PXK] [MXB1] • 17 – HDLC [JBP]

• 04 – Proteon ProNET Token • 11 – LocalTalk [JKR1] • 18 – Fibre Channel [Yakov


Ring [Doria] Rekhter]
• 12 – LocalNet (IBM PCNet or
• 05 – Chaos [GXP] SYTEK LocalNET) [JXM] • 19 – Asynchronous

• 06 – IEEE 802 Networks Transmission Mode (ATM)


• 13 – Ultra link [RXD2]
[JBP] - 10 - [RFC2225]
• 14 – SMDS [GXC1]
• 20 – Serial Line [JBP] • 24 – IEEE 1394.1995 • 30 – ARPSec [Etienne]

• 21 – Asynchronous [Hattig] • 31 – IPsec tunnel [RFC3456]


Transmission Mode (ATM) • 25 – MAPOS [Maruyama] • 32 – InfiniBand (TM)
[MXB1] • 26 – Twinaxial [Pitts] [Kashyap]
• 22 – MIL-STD-188-220 • 27 – EUI-64 [Fujisawa] • 33 – TIA-102 Project 25
[Jensen] Common Air Interface (CAI)
• 28 – HIPARP [JMP]
• 23 – Metricom [Stone] [Anderson]
• 29 – IP and ARP over ISO
7816-3 [Guthery]

On remarquera tout particulièrement que le numéro 1 qui le plus fréquents. En effet ces architectures sont principalement utilisées dans
les réseaux d’entreprises, Wifi, et Metro.

Protocol type

Ce champs indique quel est le type de protocole couche 3 qui utilise Arp. Voici la valeur propre à Ip.

• 0x0800 – IP

Hardware Address Length

Ce champ correspond à la longueur de l’adresse physique. La longueur doit être prise en octets. Voici des exemples de valeurs
courantes.

• 01 – Token Ring • 06 – Ethernet

Protocol Address Length

Ce champ correspond à la longueur de l’adresse réseau. La longueur doit être prise en octets. Voici des exemples de valeurs courantes.

• 04 – IP v4 • 16 – IP v6

Operation

Ce champ permet de connaître la fonction du message et donc son objectif. Voici les différentes valeurs possibles.

• 01 – Request [ RFC 826] • 02 – Reply [ RFC 826]

Sender Hardware Address

Ce champ indique l’adresse physique de l’émetteur. Dans le cadre spécifique d’Ethernet, cela représente l’adresse Mac source.

Sender Internet Address

Ce champ indique l’adresse réseau de l’émetteur. Dans le cadre spécifique de TCP/IP, cela représente l’adresse Ip de source.

Target Hardware Address

Ce champ indique l’adresse physique du destinataire. Dans le cadre spécifique d’Ethernet, cela représente l’adresse Mac destination. Si
c’est une demande Arp, alors, ne connaissant justement pas cette adresse, le champs sera mis à 0.

Target Internet Address

Ce champ indique l’adresse réseau du destinataire. Dans le cadre spécifique de TCP/IP, cela représente l’adresse Ip de destination.

Fonctionnement ARP
Pour envisager une discussion entre deux Host se situant dans le même LAN, les deux hosts doivent avoir connaissance des adresses
physiques des machines avec lesquelles elles discutent. De ce mécanisme découle une table de conversion contenant à la fois les
adresses Ip et Mac. L’alimentation de cette table peut s’effectuer de deux manières, automatique via Arp ou manuelle via
l’administrateur. Considérons que ces deux hosts n’ont jamais discuté ensemble. Voici la réponse suite à la commande « arp -a »
correspondante à ces deux hosts montrant le contenu du cache local.
- 11 -
La machine source ne connaissant pas l’adresse physique de la machine destinatrice, celle-ci va émettre une trame Broadcast de niveau
2 s’adressant à toutes les hôtes du réseau, comportant sa propre adresse physique et la question demandée. Puis, l’hôte de destination
va se reconnaître et répondre en Unicast.

Arp Request

La question de type Arp Request se présente sous cette forme : « Je suis l’hôte « 00 08 54 0b 21 77», Est-ce que l’hôte possédant
l’adresse Ip 192.168.0.1 peut me retourner son adresse physique ? ». Voici la traduction de cette requête saisie grâce à Ethereal.

Arp Reply

L’hôte destinataire qui va se reconnaître va pouvoir d’un coté alimenter sa table de conversion et répondre à l’hôte source en envoyant
une trame comportant son adresse physique. Voici la traduction de cette réponse saisie grâce à Ethereal.

• Le protocole RARP

Le protocole RARP (Reverse Address Resolution Protocol) permet de connaître l'adresse IP d’un hôte,
à partir de son adresse physique.
Lorsqu'une machine ne connaît que l’adresse physique d’un dispositif, elle peut émettre une requête
RARP afin d’avoir son adresse IP.

- 12 -
Résolution d’adresses (IP-Nom de domaine)

• Le protocole DNS (voir la couche application)

Comme vu dans le paquet IP, seul l'adressage ip est utilisé comme adresse logique, alors le protocole DNS (Domain
Name Server) permet d’identifier l’adresse ip d’une machine à partir de son nom sur le réseau.

Le protocole IGMP
Le protocole IGMP (Internet Group Management Protocol) permet de gérer les déclarations d’appartenance à un ou
plusieurs groupes auprès des routeurs Multicast. Les inscriptions sont soit spontanées soit après requête du routeur.
Pour cela, l’hôte envoi une trame IGMP destinées à ce ou ces groupes. Il existe 2 version du protocole IGMP.
Vous trouverez tous les détails du protocole IGMP version 1 dans la RFC 1112.
Vous trouverez tous les détails du protocole IGMP version 2 dans la RFC 2236.
La multidiffusion est une technique intégrée au protocole IP multicast qui permet à plusieurs hôtes destinataires de
recevoir une même trame. Par rapport à du broadcast, qui s’adresse à tous les hôtes du réseau, le muticast ne
s’adresse qu’à un groupe d’hôtes ciblées au sein du réseau.

Le groupe d’ordinateur multicast est identifié par une adresse IP de groupe multicast « de classe D ». Le protocole
permet à un hôte de s’enregistrer dans ce groupe.
Rappel : la plage d’adresses de classe D va de 224.0.0.1 à 239.255.255.254. Les adresses 224.0.0.1 à 224.0.0.255
sont réservés à des fonctions spécifiques au réseau local (LAN). Les adresses 239.0.0.0 – 239.255.255.255 sont
réservées pour des usages privés.

- 13 -
Protocole ICMP
Le protocole ICMP (Internet Control Message Protocol) permet de gérer les informations relatives aux erreurs du protocole IP. Il ne
permet pas de corriger ces erreurs, mais d’en informer les différents émetteurs des Datagrammes en erreurs. Chaque pile IP, que ce
soit des routeurs ou des stations de travail, gèrent l’entête ICMP par défaut.

Ce protocole est considéré comme faisant partie de l’ensemble des protocoles TCP/IP. Cependant, contrairement à TCP et UDP, il se
situe en couche 3 et donc, il est encapsulé dans IP. Le mot « Encapsulation » relate clairement la confusion du placement d’ICMP dans
les 7 couches OSI.

Les messages d’erreur ICMP sont transportés sur le réseau sous forme de Datagramme, comme n’importe quelle donnée. Ainsi, les
messages d’erreurs peuvent eux-mêmes être sujet aux erreurs. Toutefois, en cas d’erreur sur un message ICMP, aucune trame d’erreur
n’est délivrée pour éviter un effet « boule de neige ».

Vous trouverez tous les détails du protocole ICMP dans la RFC 792.

Structure de l’entête ICMP


Voici la structure de l’entête ICMP basé sur 8 octets.

Les deux champs Identifiant et Numéro de séquence ne sont présent que dans le cas d’un paquet de type Ping sinon les champs reste
présent mais en tant que bourrage et donc non utilisés.

Définition des différents champs

Type et Code

Les champs Type et Code sont codés respectivement sur 8 bits ce qui donne un totale de 2 octets. Ils représentent la définition de
message d’erreur contenu. Voici la liste des principales combinaison entre les champs Type et Code :

• type=00 et code=00 : Réponse à une demande • type=03 et code=11 : Réseau inaccessible pour ce
d’écho type de service

• type=03 et code=00 : Réseau inaccessible • type=03 et code=12 : Hôte inaccessible pour ce type

• type=03 et code=01 : Hôte inaccessible de service

• type=03 et code=02 : Protocole inaccessible • type=03 et code=13 : Communication interdite par


un filtre
• type=03 et code=03 : Port inaccessible
• type=03 et code=14 : Host Precedence Violation
• type=03 et code=04 : Fragmentation nécessaire mais
interdite • type=03 et code=15 : Precedence cutoff in efect

• type=03 et code=05 : Echec de routage par la source • type=04 et code=00 : Volume de donnée trop
importante
• type=03 et code=06 : Réseau de destination inconnu
• type=05 et code=00 : Redirection pour un hôte
• type=03 et code=07 : Hôte de destination inconnue
• type=05 et code=01 : Redirection pour un hôte et
• type=03 et code=08 : Machine source isolée
pour un service donné
• type=03 et code=09 : Réseau de destination interdit
• type=05 et code=02 : Redirection pour un réseau
administrativement
• type=05 et code=03 : Redirection pour un réseau et
• type=03 et code=10 : Hôte de destination interdite
pour un service donné
administrativement - 14 -
• type=08 et code=00 : Demande d’écho
• type=09 et code=00 : Avertissement routeur • type=13 et code=00 : Requête pour un marqueur

• type=10 et code=00 : Sollicitation routeur temporel

• type=11 et code=00 : Durée de vie écoulée avant • type=14 et code=00 : Réponse pour un marqueur

d’arrivée à destination temporel

• type=11 et code=01 : Temps limite de réassemblage • type=15 et code=00 : Demande d’adresse réseau

du fragment dépassé • type=16 et code=00 : Réponse d’adresse réseau

• type=12 et code=00 : Entête IP invalide • type=17 et code=00 : Demande de masque de sous

• type=12 et code=01 : Manque d’une option réseau

obligatoire • type=18 et code=00 : Réponse de masque de sous

• type=12 et code=02 : Mauvaise longueur réseau

Type=0,8 – Le Ping

Le principe du Ping étant, à la base, de valider la présence d’un Hote IP. Pour cela, l’application Ping utilisera la séquence 8-0 afin
d’émettre une demande d’écho. Les données reçues dans un message d’écho doivent être réémises dans la réponse. Ainsi, si le
message de retour correspond à l’émission, on en déduit que l’Hote est présent. De plus, on peux en déduire d’autres services, tel que
le temps de réponse, la taille paquet maximum la durée de vie et etc.

L’ identificateur et le numéro de séquence peuvent être utilisés par l’émetteur du message d’écho afin d’associer facilement l’écho et sa
réponse. Par exemple, l’identificateur peut être utilisé comme l’est un port pour TCP ou UDP, identifiant ainsi une session. Et le numéro
de séquence peut être incrémenté pour chaque message d’écho envoyé. L’hôte de destination respectera ces deux valeurs pour le
retour.

Type=3 – Destination non valide

Ce type de message est émis dans le cas où un routeur ou un hôte ne puisse pas router un paquet.

Type=4 – Volume de donnée trop importante

Un routeur ou hôte peut être amené à détruire un Datagramme s’il manque de mémoire pour bufferiser. Dans ce cas, le routeur émettra
un message à destination de la source du Datagramme détruit, un paquet ICMP de type 4.

Cela peut ce produire dans un second cas. Quand le Datagramme arrive trop rapidement pour qu’il puisse être traité le message ICMP
peut donc constituer une demande de diminution de débit de transfert.

Type=5 – Redirection

Ces types de messages sont émis afin d’indiquer que le chemin emprunté n’est pas le bon pour la destination demandé. La réception de
ce type de message d’erreur peut être interprétée par la modification de la table de routage locale. C’est plus communément appelé
« ICMP Redirect ».

Type=9,10 – découverte de routeur

Au démarrage d’une station, plutôt que de configurer manuellement les routes statiques, surtout si elle sont susceptibles de changer et
que le nombre de stations est grands, il peut être intéressant de faire de la découverte automatique de routeurs. Pour cela, il y a deux
possibilités. La première est l’envoi régulier de messages ICMP de type 9 « Avertissement routeur » d’annonces de routes par les
routeurs. La seconde possibilité est qu’une station sollicite les routeurs avec un message de type 10 « Sollicitation routeur ».

La découverte de routeur n’est pas un protocole de routage, son objectif est bien moins ambitieux , juste obtenir une route par défaut.

Vous trouverez tous les détails du « découverte de routeur » dans la RFC 1256.

Type=11 – Temps excédé

Lorsqu’un routeur traitant un Datagramme est amené à mettre à jour le champ Durée de Vie de l’entête IP et que ce champ atteint une
valeur zéro, le Datagramme sera détruit. Le routeur peut alors envoyer un message d’erreur « Time To Live expiré ». Ce message ICMP
peux être émis aussi dans le cas où le temps de réassemblage expire et le Datagramme ne peux donc être reconstitué à temps.

Type=12 – Erreur d’entête

Si un routeur rencontre un problème avec un paramètre d’entête IP l’empêchant de finir son traitement, le datagramme sera alors
détruit. Un message d’erreur de type 12 sera donc alors émis.
- 15 -
Type=13,14 – Marqueur temporel
Le but de ce type de message est de s’échanger des données temporelles pour, par exemple, synchroniser les horloges.

Type=15,16,17,18 – Demande d’information

Ce type de message est envoyé vers une adresse constituée du numéro de réseau dans le champ source de l’entête IP et un champ
destinataire à 0. La pile IP qui répondra pourra alors envoyer une réponse avec les adresses entièrement renseignées.

Checksum

Le champ Checksum est codé sur 16 bits et représente la validité du paquet de la couche 3 ICMP. Pour pouvoir calculer le Checksum, il
faut positionner le champ du checksum a 0. Ce calcul est strictement le même que celui du protocole IP.

Identifiant

Le champ identifiant est codé sur 16 bits et définit l’identifiant de l’émetteur. Pour cela, il est conseillé d’assigner le numéro du
processus assigné (PID) à l’application lors de l’exécution. Cela permet de le rendre unique inter application. Cela ressemble beaucoup
aux numéros de port pour les protocole TCP et UDP.

3.4 – Numéro de séquence

Le champ Séquence est codé sur 16 bits et permet au récepteur, d’identifier si il manque un paquet. Le plus classique étant une
incrémentation linéaire de 1. Ainsi, si le récepteur reçoit la séquence 1 puis 3, il peut en déterminer une perte d’un paquet. Néanmoins,
ce n’est pas normalisé, donc personne n’à la garantie que l’émetteur utilisera cette méthode. Cela peut aussi permettre à l’émetteur
d’envoyer multiples paquets et de pouvoir distinguer les retours.

- 16 -

Vous aimerez peut-être aussi