Vous êtes sur la page 1sur 11

Master : SSI

M1 : ARIN Chap. III Le protocole TCP/IP

Chap.III Les protocoles TCP et UDP

Les deux protocoles de la suite de protocoles TCP/IP les plus couramment employés sont le protocole
TCP (Transmission Control Protocol) et le protocole UDP (User Datagram Protocol). Ces deux
protocoles gèrent les communications de nombreuses applications. Ce sont les fonctions spécifiques
implémentées par chaque protocole qui les différencient.

4. Le protocole TCP

TCP (Transmission Control Protocol ou Protocole de Contrôle de Transmission) est un des


principaux protocoles de la couche transport du modèle TCP/IP. Lorsque les données sont fournies au
protocole IP, celui-ci les encapsule dans des datagrammes IP, en fixant le champ protocole à 6 (Pour
savoir que le protocole en amont est TCP).
Les caractéristiques principales du protocole TCP sont les suivantes :
• TCP permet de remettre en ordre les datagrammes en provenance du protocole IP.
• TCP permet de vérifier le flot de données afin d'éviter une saturation du réseau (contrôle du
flux).
• TCP permet de formater les données en segments de longueur variable afin de les "remettre"
au protocole IP.
• TCP permet de multiplexer les données, c'est-à-dire de faire circuler simultanément des
informations provenant de sources (applications) distinctes sur une même ligne.
• TCP permet l'initialisation et la fin d'une communication (protocole orienté connexion).
• TCP est un protocole fiable (possède un système d’accusé de réception).

5. Format des Données sous TCP ou en-tête du segment TCP

Au niveau de la couche transport, chaque ensemble de blocs (segment) transitant entre une
application source et une application de destination est appelé une conversation. Pour identifier chaque
segment de données, la couche transport ajoute un en-tête contenant des données. Ce sont les valeurs
contenues dans ces champs qui permettent aux différents protocoles de la couche transport d’exécuter
des fonctions diverses.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Port Source Port Destination

Numéro d'ordre

Numéro d'accusé de réception

Décalage
Réservé URG ACK PSH RST SYN FIN Fenêtre
données

Somme de contrôle Pointeur d'urgence

Options Remplissage

Données

Figure III.2 Un segment TCP

5
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

Avec

1. Port Source (16 bits): Port relatif à l'application en cours sur la machine source.
2. Port Destination (16 bits): Port relatif à l'application en cours sur la machine de destination.
Ces champs servent à identifier les extrémités de la connexion. L’affectation des numéros de port
s’effectue de différentes façons selon que le message est une requête ou une réponse. Les processus
serveur se voient attribuer des numéros de port statiques, les clients, quand a eux, choisissent
dynamiquement un numéro de port pour chaque conversation.

Il existe différents types de numéros de port :

Ports réservés (numéros 0 à 1023) : Ces numéros sont réservés à des services et applications. Ils sont
généralement réservés à des applications de type HTTP (serveur Web), POP3/SMTP (serveur de
messagerie) et Telnet.

http : 80 ; FTP : 21 ; Telnet : 23 ; SMTP : 25.

Ports inscrits (numéros 1024 à 49151) : Ces numéros de port sont affectés à des processus ou
applications d’utilisateurs.

Ports privés ou dynamiques (numéros 49152 à 65535) : Également appelés ports éphémères, ces
ports sont généralement affectés de façon dynamique à des applications clientes lorsqu’une connexion
est initiée. Il est relativement rare pour un client de se connecter à un service par le biais d’un port
dynamique ou privé.

Remarque : il est parfois nécessaire de savoir quelles connexions TCP actives sont ouvertes et
s’exécutent sur un hôte en réseau. Netstat est un important utilitaire réseau permettant de vérifier ces
connexions. Netstat répertorie le protocole utilisé, l’adresse et le numéro de port locaux, l’adresse et le
numéro de port distants ainsi que l’état de la connexion.

3. Numéro d'ordre (ou numéro de séquence) et Numéro d'accusé de réception (32 bits):

Le principe consiste à attribuer un numéro à chaque octet de donnée. Le numéro du premier octet de
donnée du segment de message est le numéro de séquence du segment. Lorsque le récepteur envoie un
segment de message, il envoie en même temps un numéro d’acquittement qui doit correspondre au
numéro de séquence de l’octet de donnée suivant attendu. Un même acquittement peut servir à
acquitter plusieurs segments de message TCP.

En général, un service sur l’hôte de destination utilisant le protocole TCP ne génère d’accusé de
réception que pour les séquences contiguës d’octets. Si un ou plusieurs segments sont manquants,
seules les données des segments qui complètent le flux donnent lieu à l’émission d’accusés de
réception.

Quand le protocole TCP sur l’hôte source n’a pas reçu d’accusé de réception après un délai
prédéterminé, il revient au dernier numéro d’accusé de réception et retransmet les données depuis ce
point.

Remarque : Aujourd’hui, les hôtes utilisent également une fonction facultative appelée accusés de
réception sélectifs. Si les deux hôtes prennent en charge les accusés de réception sélectifs, la
destination peut accuser réception des octets de segments ne se suivant pas et l’hôte ne retransmettra
que les données manquantes.

6
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

4. Décalage des données (4 bits): indique le nombre de mots de 32 bits qui se trouve dans l’en-tête
TCP. Cette information est nécessaire car le champ d'options est de taille variable.
5. Réservé (6 bits): Champ inutilisé actuellement mais prévu pour l'avenir.
6. Drapeaux (flags) (6x1 bit): Les drapeaux représentent des informations supplémentaires :
o URG: si ce drapeau est à 1 le paquet doit être traité de façon urgente. Le champ pointeur
d’urgence est valide, il pointe vers le numéro de séquence des données urgentes.
o ACK: si ce drapeau est à 1 le paquet est un accusé de réception et le numéro d’accusé de réception
est valide.
o PSH (PUSH): l’activation de ce drapeau indique la remise immédiate des données à la couche
supérieure. (utiliser lors de l’ouverture d’une connexion ou pour des applications temps réel).
o RST: si ce drapeau est à 1, la connexion est réinitialisée pour cause d’erreurs irrécupérables. A la
réception de RST le récepteur doit immédiatement terminer la connexion.
o SYN: Le flag ou drapeau SYN indique une demande d'établissement de connexion.
o FIN: indique la fermeture d’une connexion.
o
7. Fenêtre (16 bits): Ce champ implémente un contrôle de flux. C’est le récepteur qui fixe la taille de
la fenêtre pour l’émetteur. Une fenêtre spécifie le nombre d’octets que le récepteur est en mesure
d’accepter.

La taille de fenêtre initiale est déterminée lors du démarrage de la session par l’intermédiaire de la
connexion en trois étapes. Une fenêtre de taille nulle indique à l’émetteur d’interrompre la
transmission jusqu'à ce qu’il reçoive une valeur de fenêtre non nulle.

8. Somme de contrôle (Checksum ou CRC): vérifier l'intégrité de l'en-tête et des données.


9. Pointeur d'urgence (16 bits): Indique le numéro d'ordre à partir duquel l'information devient
urgente
10. Options : rajoute des possibilités non offertes dans l’en-tête de base. L’option la plus importante
est celle qui permet à chaque machine de spécifier la charge utile TCP (longueur du segment) la
plus grande qu’il est prêt à accepter. Si une machine n’utilise pas cette option, sa charge utile par
défaut est de 536 octets.
11. Remplissage: On remplit l'espace restant après les options avec des zéros pour avoir une longueur
multiple de 32 bits

6. Gestion d’une connexion TCP

TCP est un protocole orienté connexion. Une information de contrôle est échangée entre les deux
extrémités de manière à établir un dialogue avant de procéder à la transmission des données.

Les deux machines doivent donc synchroniser leurs séquences grâce à un mécanisme communément
appelé three ways handshake (poignée de main en trois temps), que l'on retrouve aussi lors de la
clôture de session.

• Etablissement d’une connexion

Ce dialogue permet d'initialiser la communication, il se déroule en trois temps :

1- Dans un premier temps la machine émettrice (le client) transmet un segment dont le drapeau
SYN est à 1 (pour signaler qu'il s'agit d'un segment de synchronisation), avec un numéro d'ordre N,
que l'on appelle numéro d'ordre initial de l’émetteur.

7
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

2- Dans un second temps la machine réceptrice reçoit le segment initial provenant de


l’émetteur, puis lui envoie un accusé de réception, c'est-à-dire un segment dont le drapeau ACK est à 1
et le drapeau SYN est à 1 (car il s'agit là encore d'une synchronisation). Ce segment contient le numéro
d'ordre de cette machine (du serveur). Le champ le plus important de ce segment est le champ accusé
de réception qui contient le numéro d'ordre initial du client, incrémenté de 1.

3- Enfin, le client transmet au serveur un accusé de réception, c'est-à-dire un segment dont le


drapeau ACK est à 1, dont le drapeau SYN est à zéro (il ne s'agit plus d'un segment de
synchronisation). Son numéro d'ordre est incrémenté et le numéro d'accusé de réception représente le
numéro d'ordre initial du serveur incrémenté de 1.

SYN=1
Séquence = E

Machine Emettrice SYN=1 Machine Réceptrice


ACK=E+1
Séquence =R

SYN=0
ACK=R+1
Séquence=E+1

Figure III.3 Etablissement d’une connexion (three ways handshake)

Suite à cette séquence comportant trois échanges les deux machines sont synchronisées et la
communication peut commencer.

• Fin d’une connexion

Le client peut demander à mettre fin à une connexion au même titre que le serveur.

1. Quand le client n’a plus de données à envoyer dans le flux, il envoie un segment dont l’indicateur
FIN est à 1.

2. Le serveur envoie un segment ACK pour informer de la bonne réception du segment FIN afin de
fermer la session du client au serveur.

3. Le serveur envoie un segment FIN au client pour mettre fin à la session du serveur au client.

4. Le client répond à l’aide d’un segment ACK pour accuser réception du segment FIN envoyé par le
serveur.

Quand l’extrémité cliente de la session n’a plus aucune donnée à transférer, elle définit l’indicateur
FIN dans l’en-tête d’un segment. Ensuite, l’extrémité serveur de la connexion envoie un segment
normal contenant des données dont l’indicateur ACK est défini en utilisant le numéro d’accusé de
réception, confirmant ainsi que tous les octets de données ont été reçus. Quand la réception de tous les
segments a été confirmée, la session est fermée.

8
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

La session dans l’autre sens est fermée selon le même processus. Le récepteur indique qu’il n’y a plus
de données à envoyer en définissant l’indicateur FIN dans l’en-tête d’un segment envoyé à la source.
Un accusé de réception confirme que tous les octets de données ont été reçus et que cette session, à
son tour, se ferme.

Remarque : Le protocole TCP est utilisé par les applications telles que navigateurs Web, Courriel,
Transferts de fichiers

7. Le protocole UDP

Le protocole UDP (User Datagram Protocol) est un protocole non orienté connexion de la
couche transport du modèle TCP/IP.

Le protocole UDP est un protocole simple offrant des fonctions de couche transport de base.
Il crée beaucoup moins de surcharge que le protocole TCP car il est sans connexion et ne
propose pas de mécanismes sophistiqués de retransmission, de séquençage et de contrôle de
flux. L'en-tête du segment UDP est donc très simple :

Port Source (16 bits) Port Destination (16 bits)

Longueur (16 bits) Somme de contrôle (16 bits)

Données

Figure III.4 Datagramme UDP

• Port Source: il s'agit du numéro de port correspondant à l'application émettrice du


segment UDP. Ce champ représente une adresse de réponse pour le destinataire. Ainsi, ce
champ est optionnel, cela signifie que si l'on ne précise pas le port source, les 16 bits de ce
champ seront mis à zéro, auquel cas le destinataire ne pourra pas répondre (cela n'est pas
forcément nécessaire, notamment pour des messages unidirectionnels.
• Port Destination: Ce champ contient le port correspondant à l'application de la machine
destinataire à laquelle on s'adresse.
• Longueur: Ce champ précise la longueur totale du segment, en-tête comprise.
• Somme de contrôle: utilisé pour le contrôle de l'intégrité du segment UDP.

Le protocole UDP est connu pour être un protocole basé sur les transactions. En d’autres
termes, quand une application doit envoyer des données, elle les envoie tout simplement.

De nombreuses applications utilisant le protocole UDP envoient de petites quantités de


données pouvant tenir dans un seul segment. Cependant, certaines applications envoient des
volumes de données plus importants qui doivent être découpés en plusieurs segments
(datagrammes). Quand plusieurs datagrammes sont envoyés vers une destination, ils peuvent
emprunter des chemins différents et arriver dans le désordre. Le protocole UDP n’effectue pas
de suivi des numéros d’ordre comme le fait le protocole TCP. Il n’a en effet aucun moyen de
réordonnancer les datagrammes pour leur faire retrouver leur ordre de transmission d’origine.
Le protocole UDP se contente donc de réassembler les données dans l’ordre dans lequel elles
ont été reçues, puis de les transmettre à l’application. Si l’application attache une grande
9
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

importance à l’ordre des données, elle devra identifier l’ordre correct des données et
déterminer leur mode de traitement.

Remarque : Des protocoles importants de la couche application utilisent le protocole UDP,


notamment : Système de noms de domaine (DNS) ; SNMP (Simple Network Management
Protocol) ; DHCP (Dynamic Host Configuration Protocol) ; RIP (Routing Information
Protocol) ; TFTP (Trivial File Transfer Protocol) et les jeux en ligne.

8. Le protocole ICMP (Internet Control Messaging Protocol)

Bien que le protocole IPv4 ne soit pas un protocole fiable, il permet l’envoi de messages,
même en présence de certaines erreurs. Ces messages sont envoyés par le biais des services
du protocole ICMPv4 (Internet Control Messaging Protocol). Ces messages ont pour objectif
de fournir des commentaires sur les problèmes liés au traitement de paquets IP dans certaines
circonstances.
Le protocole ICMP est très utile lors du dépannage de problèmes de connectivité réseau. Sans
messages ICMP, un expéditeur est dans l’incapacité d’expliquer l’échec de la connexion de la
destination.
ICMP est le protocole de messagerie de la suite TCP/IP. Il existe différents types de messages
ICMP, et les raisons pour lesquelles ils sont envoyés sont très diverses.

1. Format des paquets ICMP

Figure III.5 En-tête de message ICMP

Chaque message ICMP commence par un champ Type (8 bits), un champ Code (8 bits) et
une somme de contrôle (16 bits) calculée.

Le tableau dans la figure III.6 illustre les types de message :


Valeur Signification
0 Réponse d’écho
3 Destination inaccessible
4 Épuisement de la source
5 Redirection
8 Écho
11 Dépassement du délai
12 Problème de paramètre
13 Horodatage
14 Réponse d’horodatage
15 Demande d’informations
16 Réponse à la demande d’informations

Figure III.6 Types de message ICMP

10
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

Les codes offrent des informations complémentaires au champ Type. Par exemple, si le
champ Type est 3 (la destination inaccessible), d’autres informations sur le problème sont
retournées dans le champ Code. Le tableau dans la figure III.7 indique les codes pour le
message Type 3 ICMP. Les codes 2 et 3 (protocole inaccessible et port inaccessible) sont
utilisés par un hôte final pour indiquer que le segment TCP ou le datagramme UDP contenu
dans un paquet n’a pas pu être acheminé jusqu’au service de la couche supérieure.

Code Valeur Signification

0 Réseau inaccessible
1 Hôte inaccessible
2 Protocole inaccessible
3 Port inaccessible
4 Fragmentation requise et l’option Don't Fragment a été définie
5 Échec de la route source
6 Réseau de destination inconnu
7 Hôte de destination inconnu
8 Hôte source isolé
9 Communication avec réseau de destination interdit par l’administration
10 Communication avec hôte de destination Interdit par l’administration
11 Réseau de destination inaccessible pour le type de service
12 Hôte de destination inaccessible pour le type de service

Figure III.7 Codes de messages type 3 ICMP

Parmi les messages ICMP qui peuvent être envoyés, citons :

Host confirmation (Confirmation de l’hôte) : Un message ICMP Echo (Écho ICMP : ping)
permet de déterminer si un hôte est fonctionnel. L’hôte local envoie un message ICMP Echo
Request (Demande d’écho) à un autre hôte. L’hôte qui reçoit le message d’écho répond par un
message ICMP Echo Reply (Réponse d’écho).

Time exceeded (Délai dépassé) : Un message ICMP Time Exceeded (Délai dépassé) est
envoyé par un routeur pour indiquer qu’il ne peut pas acheminer un paquet car le champ TTL
du paquet a expiré. Si le routeur reçoit un paquet et décrémente le champ TTL du paquet
jusqu’à zéro, il abandonne le paquet.

Route redirection (Redirection de la route) : Un routeur peut envoyer un message de


redirection ICMP Redirect pour notifier l’hôte sur un réseau, qu’une meilleure route est
disponible jusqu’à une destination particulière. Ce message ne peut être utilisé que si l’hôte
source appartient au même réseau physique que les deux passerelles.

Source quench (Épuisement de la source) : Le message ICMP Source Quench (Épuisement


de la source) permet de demander à l’hôte source de cesser temporairement d’envoyer des
paquets. Si un routeur ne dispose pas de suffisamment d’espace tampon pour recevoir les
paquets entrants, il rejette les paquets. Si le routeur doit agir de la sorte, il peut également
envoyer un message ICMP Source Quench (Épuisement de la source) aux hôtes source pour
chaque message qu’il rejette.
Un hôte de destination peut également envoyer un message d’épuisement de la source si des
datagrammes arrivent trop vite pour être traités.
Lorsqu’un hôte reçoit un message ICMP Source Quench (Épuisement de la source), il le
signale à la couche de transport. L’hôte source peut ensuite utiliser les mécanismes de
contrôle de flux TCP pour ajuster la transmission.

11
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

Remarque : Les messages d'erreur ICMP sont transportés sur le réseau sous forme de
datagramme, comme n'importe quelle donnée. Les messages d'erreur peuvent eux-mêmes être
sujet d'erreurs.

9. Le protocole ARP

Le protocole ARP a un rôle très important parmi les protocoles de la couche Internet
de la suite TCP/IP, car il permet de connaître l'adresse physique d'une carte réseau
correspondant à une adresse IP, c'est pour cela qu'il s'appelle Protocole de résolution
d'adresse (ou ARP : Address Resolution Protocol).
Chaque machine connectée au réseau possède un numéro d'identification de 48 bits.
Ce numéro est un numéro unique qui est fixé dès la fabrication de la carte en usine (adresse
MAC). Toutefois la communication sur Internet ne se fait pas directement à partir de ce
numéro, mais à partir d'une adresse dite logique attribuée par un organisme: 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.

Le protocole ARP assure deux fonctions de base :


• La résolution des adresses IPv4 en adresses MAC
• La conservation en mémoire cache des mappages.

a. Résolution des adresses IPv4 en adresses MAC

À chaque trame placée sur un support LAN doit correspondre une adresse MAC de
destination. Quand un paquet est envoyé à la couche liaison de données pour être encapsulé
dans une trame, le nœud désigne une table dans sa mémoire pour y trouver l’adresse de
couche liaison de données qui est mappée à l’adresse IPv4 de destination. Cette table est
appelée tableau ARP ou cache ARP. Le tableau ARP est stocké dans la mémoire vive (RAM)
du périphérique.
Chaque entrée ou ligne du tableau ARP comporte deux valeurs : une adresse IP et une adresse
MAC. La relation entre les deux valeurs s’appelle une mise en correspondance : ce qui
signifie simplement que si vous choisissez une adresse IP dans la table vous y trouverez
l’adresse MAC correspondante. Le tableau ARP garde en mémoire cache le mappage des
périphériques du réseau local (LAN).
Pour lancer la procédure, un nœud émetteur tente de trouver l’adresse MAC associée à une
adresse IPv4 de destination, dans le tableau ARP. Si ce mappage est dans la mémoire cache
de la table, le nœud utilise l’adresse MAC comme destination MAC dans la trame qui
encapsule le paquet IPv4. La trame est ensuite codée sur le support réseau.

b. Mise à jour du tableau ARP

Le tableau ARP est mis à jour de manière dynamique. Un périphérique dispose de deux
méthodes pour obtenir des adresses MAC. La première consiste à surveiller le trafic sur le
segment du réseau local. Quand un nœud reçoit des trames en provenance du support, il
enregistre les adresses IP source et MAC dans le tableau ARP sous forme de mappage. Au fur

12
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

et à mesure que les trames sont transmises sur le réseau, le périphérique remplit le tableau
ARP de paires d’adresses.
La seconde méthode permettant à un périphérique d’obtenir une paire d’adresse consiste à
diffuser une requête ARP. Le protocole ARP envoie un message de diffusion de couche 2 à
tous les périphériques du LAN Ethernet. La trame contient un paquet de requête ARP
comportant l’adresse IP de l’hôte de destination. Lorsqu’un nœud reçoit la trame et identifie
sa propre adresse IP, il répond en envoyant un paquet réponse ARP à l’expéditeur, sous la
forme d’une trame monodiffusion (à une seule adresse MAC). Cette réponse permet de créer
une nouvelle entrée dans le tableau ARP.
Ces entrées dynamiques de la table MAC sont horodatées de la même façon que les entrées de
la table MAC sur les commutateurs. Si le périphérique ne reçoit pas de trame d’un
périphérique précis avant expiration de l’horodatage, l’entrée correspondant à ce périphérique
précis est supprimée du tableau ARP.

Remarque : Des entrées statiques de mappage peuvent également être ajoutées dans une table
ARP, mais ceci ne se produit que rarement. Les entrées statiques du tableau ARP n’expirent
pas avec le temps et elles doivent être supprimées manuellement.

c. Création de la trame

Quand le protocole ARP reçoit une requête de mappage entre une adresse IPv4 et une adresse
MAC, il recherche le mappage stocké en mémoire cache dans son tableau ARP. S’il ne trouve
pas d’entrée, l’encapsulation du paquet IPv4 échoue, et les processus de la couche 2 informent
le protocole ARP qu’un mappage est nécessaire.
Les processus ARP envoient alors un paquet de requête ARP pour trouver l’adresse MAC du
périphérique de destination sur le réseau local. Si le périphérique qui reçoit la requête possède
l’adresse IP de destination, il répond à l’aide d’une réponse ARP. Une entrée est créée dans le
tableau ARP. Les paquets à destination de cette adresse IPv4 peuvent à présent être
encapsulés dans des trames.
Si aucun périphérique ne répond à la requête ARP, le paquet est abandonné car il est
impossible de créer une trame. L’échec de l’encapsulation est signalé aux couches supérieures
du périphérique. Dans le cas d’un périphérique intermédiaire, comme un routeur, les couches
supérieures peuvent choisir de répondre à l’hôte source en générant une erreur dans un paquet
ICMPv4.

d. Destinations externes au réseau local

Toutes les trames doivent être remises à un nœud sur un segment du réseau local. Si l’hôte
IPv4 de destination se trouve sur le réseau local, la trame utilise l’adresse MAC de ce
périphérique comme adresse MAC de destination.
Si l’hôte IPv4 de destination ne se trouve pas sur le réseau local, le nœud source doit livrer la
trame à l’interface du routeur qui sert de passerelle pour atteindre cette destination. Le nœud
source utilise l’adresse MAC de la passerelle comme adresse de destination, pour les trames
contenant un paquet IPv4 adressé à des hôtes situés sur d’autres réseaux.
L’adresse de passerelle de l’interface du routeur est stockée dans la configuration IPv4 des
hôtes. Lorsqu’un hôte crée un paquet pour une destination, il compare l’adresse IP de
destination à sa propre adresse IP pour déterminer si les deux adresses IP se situent sur le
même réseau de la couche 3. Si l’hôte destinataire ne se situe pas sur le même réseau, l’hôte
source fait appel au processus ARP pour déterminer l’adresse MAC de l’interface du routeur
qui sert de passerelle.

13
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

Si l’entrée de la passerelle n’est pas dans la table, le processus ARP normal envoie une
requête ARP pour retrouver l’adresse MAC associée à l’adresse IP de l’interface du routeur.

e. Suppression de mappages d’adresses

Pour chaque périphérique, un compteur de cache ARP supprime les entrées ARP qui n’ont pas
été utilisées pendant une période donnée. Cette période varie en fonction des périphériques et
des systèmes d’exploitation. Par exemple, certains systèmes d’exploitation Windows stockent
les entrées du cache ARP pendant 2 minutes. Si l’entrée est réutilisée pendant ce laps de
temps, le compteur ARP de cette entrée passe à 10 minutes.
Des commandes permettent aussi de supprimer manuellement les entrées de la table ARP
totalement ou partiellement. Lorsqu’une entrée est supprimée, le processus d’envoi d’une
requête ARP et de réception d’une réponse ARP doit être répété pour entrer le mappage dans
le tableau ARP.

f. Diffusion ARP et problèmes

• Surcharge des supports

Comme les trames de diffusion, les requêtes ARP sont reçues et traitées par chaque
périphérique du réseau local. Sur un réseau d’entreprise type, ces diffusions auraient
probablement une incidence minime sur les performances du réseau. Toutefois, si un grand
nombre de périphériques sont mis sous tension et accèdent aux services du réseau au même
moment, les performances du réseau peuvent s’en trouver réduites, sur un court laps de temps.
En revanche, si les périphériques envoient les messages de diffusion ARP initiaux et
disposent des adresses MAC nécessaires, l’impact sur le réseau sera minime.

• Sécurité

Dans certains cas, l’utilisation du protocole ARP peut porter atteinte à la sécurité du réseau.
L’usurpation ARP ou empoisonnement ARP, est une technique d’attaque qui consiste à
injecter un faux mappage d’adresse MAC dans un réseau en émettant de fausses requêtes
ARP. Si un pirate informatique usurpe l’adresse MAC d’un périphérique, les trames risquent
d’être envoyées à la mauvaise destination.
La configuration manuelle des associations ARP statiques permet d’éviter l’usurpation ARP.
Les adresses MAC autorisées peuvent être configurées sur certains périphériques du réseau
pour limiter l’accès réseau aux seuls périphériques listés.

Remarque : Le protocole ARP est bien un protocole de niveau 3 car il permet au niveau
réseau de savoir avec qui il veut communiquer sur le lien Ethernet. ARP est en fait
indépendant d’Ethernet et fonctionne avec n’importe quel type de réseau de niveau 2. Les
requêtes ARP sont véhiculées dans des trames de niveau 2.

g. Format de la trame ARP

Un paquet ARP (ou RARP) est encapsulé dans une trame Ethernet. Dans l'entête de la trame,
le champ type de protocole permet de préciser quel est le protocole encapsulé.

- type de protocole = 0x0806 pour ARP (type de protocole = 0x8035 pour RARP)

14
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP

Les paquets ARP (et RARP) ont le format suivant:

0 16 31
Type de matériel (réseau) Type de protocole
Long. @Physique Long. @Protocole Opération
Adresse Ethernet Emetteur (0 – 3)
Adresse Ethernet Emetteur (4 - 5) Adresse IP Emetteur (0 – 1)
Adresse IP Emetteur (2 – 3) Adresse Ethernet Récepteur (0 – 1)
Adresse Ethernet Récepteur (2 – 5)
Adresse IP Récepteur (0 – 3)

Figure III.8 Trame ARP

- Type de matériel = 1 pour Ethernet


- Type de protocole = 0x0800 pour IP
- Lg. Adr. Phys. = 6 octets pour Ethernet
- Lg. Adr. Prot. = 4 octets pour IP
- Opération = 1 (requête ARP), 2 (réponse ARP), 3 (requête RARP), 4 (réponse RARP)
- Adresses Physiques et IP: adresses Ethernet sur 48 bits et IP sur 32 bits de l'émetteur et du
récepteur remplies selon l'opération en cours.

Une requête/réponse ARP est véhiculée par une trame Ethernet. La machine émettrice envoie
une requête en broadcast (FF:FF:FF:FF:FF:FF) afin de contacter toutes les machines du
réseau local au niveau Ethernet. La machine qui reconnaît son adresse IP peut renvoyer une
réponse ARP en utilisant l’adresse Ethernet inscrite dans la requête comme adresse de
destination.

10. Le protocole RARP

Le protocole RARP (Reverse Address Resolution Protocol) est beaucoup moins


utilisé, il signifie Protocole ARP inversé, il s'agit donc d'une sorte d'annuaire inversé des
adresses logiques et physiques.
En réalité le protocole RARP est essentiellement utilisé pour les stations de travail
n'ayant pas de disque dur et souhaitant connaître leur adresse IP.
Le protocole RARP permet à une station de connaître son adresse IP à partir d'une table de
correspondance entre adresse MAC (adresse physique) et adresses IP hébergée par une
passerelle (gateway) située sur le même réseau local (LAN).

15

Vous aimerez peut-être aussi