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 :
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.
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
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) .
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.