Processus de recherche de l'adresse physique

Pour accélérer la transmission des paquets et réduire le nombre de requêtes de diffusion ARP, chaque noeud dispose d'un cache ARP de résolution d'adresse. Chaque fois que le noeud diffuse une requête ARP et reçoit une réponse, il crée une entrée dans une table de correspondance stockée en mémoire cache (@ip / @ Ethernet).

Lorsque le noeud envoie un autre paquet IP, il cherche d'abord l'adresse IP dans son cache. S'il la trouve, il utilise alors l'adresse physique correspondante pour son paquet.

Quand un poste cherche l'adresse physique correspondant à une adresse IP qu'il connaît, le protocole ARP se met en oeuvre et réalise donc les tâches suivantes :

  1. recherche dans le cache ARP de la machine si l'adresse IP du destinataire y figure, s'il la trouve, il ajoute alors l'adresse physique correspondante dans l'en-tête de la trame à émettre.

  2. réalisation d'un broadcast (ARP request) sur le réseau en demandant à qui correspond l'adresse IP à résoudre : il diffuse un paquet ARP qui contient l'adresse IP du destinataire

  3. les machines du réseau comparent l'adresse demandée à leur adresse et le noeud correspondant renvoie son adresse physique au noeud qui a émis la requête (ARP reply) .

  4. stockage de l'adresse physique lorsque le destinataire répond dans le cache ARP de la machine

Remarque : chaque entrée de la table à une durée de vie limitée (2 minutes mini sous Windows).

Voici pour exemple ce que donne le programme tcpdump avec la commande ping 192.168.1.2 à partir de la machine uranus alors que la table ARP de l'hôte uranus est vide :

13:17:14.490500 arp who-has 192.168.1.2 tell uranus.planete.net
13:17:14.490500 arp reply 192.168.1.2 is-at 0:40:33:2d:b5:dd
13:17:14.490500 uranus.planete.net > 192.168.1.2: icmp: echo request
13:17:14.490500 192.168.1.2 > uranus.planete.net: icmp: echo reply
13:17:15.500500 uranus.planete.net > 192.168.1.2: icmp: echo request
13:17:15.500500 192.168.1.2 > uranus.planete.net: icmp: echo reply

Explications :

Ligne 1, uranus demande qui est 192.168.1.2 (requête ARP) Le paquet est diffusé à tous les hôtes du réseau.

Ligne 2 réponse ARP : je suis à l'adresse Ethernet 00:40:33:2d:b5:dd

Lignes 3 à 6 : échanges de paquets ICMP entre les 2 hôtes.