next up previous contents
Next: Le protocole IP. Up: La couche liaison d'Internet. Previous: La liaison PPP

Les protocoles ARP et RARP

  Étant donné que le protocole IP, et ses adresses, peuvent être utilisés sur des architectures matérielles différentes (réseau Ethernet, Token-Ring, ...) possédant leur propres adresses physiques, il y a nécessité d'établir les correspondances biunivoques entre adresses IP et adresses matérielles des ordinateurs d'un réseau. Ceci est l'objet des protocoles ARP (Address Resolution Protocol ) et RARP (reverse Address Resolution Protocol ). ARP fournit une correspondance dynamique entre une adresse IP connue et l'adresse matérielle lui correspondant, RARP faisant l'inverse.

Nous nous plaçons dans le cas d'une correspondance à établir entre IP et Ethernet et la nécessité de la résolution d'adresse fournie par ARP apparaît dans l'exemple ci-dessous décrivant le début d'une connexion FTP.

1.
Le client FTP convertit l'adresse du serveur FTP (ex : vega.univ-angers.fr) en une adresse IP (193.49.162.1) à l'aide du fichiers /etc/hosts ou d'un serveur de noms (DNS).
2.
Le client FTP demande à la couche TCP d'établir une connexion avec cette adresse.
3.
TCP envoie une requête de connexion à ce serveur en émettant un datagramme IP contenant l'adresse IP
4.
En supposant que les machines client et serveur sont sur le même réseau local Ethernet, la machine émettrice doit convertir l'adresse IP sur 4 octets en une adresse Ethernet sur 6 octets avant d'émettre la trame Ethernet contenant le paquet IP. C'est ce que va faire ARP.
5.
Le module ARP envoie une requête ARP dans une trame Ethernet (donnée dans la figure 2.15) avec une adresse de destination multicast. Ainsi, toutes les machines du réseau local reçoivent cette requête contenant l'adresse IP à résoudre.
6.
La couche ARP de la machine visée (ici vega.univ-angers.fr) reconnaît que cette requête lui est destinée et répond par une réponse ARP contenant son adresse matérielle 00:20:AF:AB:42:43. Les autres machines du réseau ignorent la requête.
7.
La réponse ARP est reçue par l'émetteur de la requête. Pour ce retour, il n'y a pas de problème de résolution puisque l'adresse physique de l'émetteur étant envoyée dans la requête elle est connue de la machine qui répond.
8.
La réponse ARP est reçue par la couche ARP du client FTP, et le driver Ethernet peut alors émettre le paquet IP avec la bonne adresse Ethernet de destination.


  
Figure: Requête ou réponse ARP sur un réseau Ethernet.
\begin{figure}
 \begin{center}
 
\includegraphics 
*{figarp.eps} \end{center}\end{figure}

Les deux premiers champs d'une trame Ethernet (voir figure 2.15) émise par ARP sont conformes à l'en-tête d'une trame Ethernet habituelle et l'adresse de destination sera ff:ff:ff:ff:ff:ff, l'adresse multicast désignant toutes les machines du réseau à la fois. La valeur du champ type de trame est 0x0806 indiquant le protocole ARP. Le champ type de matériel est égal à 1 pour un réseau Ethernet et et celui type de protocole est égal est 0x800 pour IP. Les tailles en octets spécifiées ensuite sont 6 (6 octets pour une adresse Ethernet) et 4 (4 octets pour une adresse IP). Le champ op vaut 1 pour une requête ARP et 2 pour une réponse ARP. Les quatre champs suivants contiennent des adresse et sont redondants dans le cas de l'adresse Ethernet émetteur d'une requête ARP, et non renseignés dans le cas de l'adresse Ethernet cible d'une requête ARP.

La machine qui reconnaît son numéro IP à l'intérieur d'une requête ARP qu'elle reçoit la renvoie en y intervertissant les adresses IP cible et émetteur, ainsi que les adresses Ethernet cible (après l'avoir substituée à l'adresse de diffusion dans l'en-tête et renseignée dans le corps de la trame) et Ethernet émetteur. Pour éviter la multiplication des requêtes ARP, chaque machine gère un cache dans lequel elle mémorise les correspondances adresses IP/adresses Ethernet déjà résolues préalablement. Ainsi, le module ARP ne lancera une requête que lorsqu'il ne trouvera pas cette correspondance dans le cache, sinon il se contentera d'émettre les données qu'il reçoit d'IP en ayant fixer correctement l'adresse physique de destination. Cependant, les correspondances ne sont pas conservées indéfiniment car cela pourrait provoquer des erreurs lorsque l'on change un ordinateur (ou une carte réseau) sur le réseau en conservant un même numéro IP pour cet ordinateur mais évidemment pas la même adresse physique.

Quant à lui, le protocole RARP joue le rôle inverse de ARP en permettant de déterminer l'adresse IP d'un équipement dont on connaît l'adresse physique. Ceci est notamment utile pour amorcer une station sans disques, ou un TX, qui n'a pas en mémoire son adresse IP mais seulement son adresse matérielle. Le format d'une trame RARP est celui de la figure 2.15) où le champ type de trame vaut 0x0835 et le champ op vaut 3 pour une requête RARP et 4 pour une réponse. Une requête RARP est diffusée sous forme de broadcast, donc toutes les machines du réseau la reçoivent et la traitent. Mais la plupart des machines ignorent simplement cette demande, seuls, le ou les serveurs RARP du réseau vont traiter la requête grâce à un ou plusieurs fichiers et vont retourner une réponse contenant l'adresse IP demandée.


next up previous contents
Next: Le protocole IP. Up: La couche liaison d'Internet. Previous: La liaison PPP
Pascal Nicolas Université d'Angers
mardi, 2 novembre 1999, 09:20:50 MET