Dans l'animation de la figure, le PC1 envoie un paquet au PC2. Le PC1 doit déterminer si l'adresse IPv4 de destination se trouve sur le même réseau. Le PC1 détermine son propre sous-réseau par le biais d'une opération AND sur sa propre adresse IPv4 et son propre masque de sous-réseau. Il obtient l'adresse réseau à laquelle le PC1 appartient. Le PC1 renouvelle ensuite cette opération AND en utilisant son masque de sous-réseau et l'adresse IPv4 de destination du paquet.

Si l'adresse du réseau de destination correspond au même réseau que celui du PC1, ce dernier n'utilise pas la passerelle par défaut. Le PC1 se réfère alors à son cache ARP pour obtenir l'adresse MAC du périphérique avec cette adresse IPv4 de destination. Si l'adresse MAC ne figure pas dans le cache, le PC1 génère une requête ARP pour obtenir l'adresse afin de compléter le paquet et de l'envoyer vers la destination. Si l'adresse du réseau de destination se trouve sur un autre réseau, le PC1 transmet le paquet à sa passerelle par défaut.

Pour déterminer l'adresse MAC de la passerelle par défaut, le PC1 recherche dans sa table ARP l'adresse IPv4 de la passerelle par défaut et son adresse MAC associée.

S'il n'existe pas d'entrée ARP dans la table ARP pour la passerelle par défaut, le PC1 envoie une requête ARP. Le routeur R1 renvoie une réponse ARP. Le PC1 peut alors transférer le paquet à l'adresse MAC de la passerelle par défaut, l'interface Fa0/0 du routeur R1.

Un processus similaire est utilisé pour les paquets IPv6. À la place du processus ARP, la résolution d'adresses IPv6 utilise des messages d'annonce de voisin et de sollicitation de voisin ICMPv6. Le mappage d'adresses IPv6/MAC est conservé dans une table identique au cache ARP, appelée cache des voisins.