Ogni dispositivo che invia o riceve pacchetti IP ha una tabella ARP (voglio dire, inviare una richiesta ARP per ogni pacchetto IP che si invia a un host sarebbe uno spreco, giusto?)
Per ogni pacchetto IP il dispositivo che lo emette sulla rete DEVE conoscere l'indirizzo MAC del prossimo hop (che per gli IP nella stessa LAN è la destinazione, mentre per gli altri il prossimo hop è il router). Quell'indirizzo MAC è memorizzato nella tabella ARP, conosciuta anche come cache ARP.
Gli switch normalmente non hanno tabelle ARP perché non gestiscono il pacchetto IP stesso (ignoriamo gli switch Layer 3 per ora). Tuttavia terranno un altro tipo di cache che mette in relazione l'indirizzo MAC dei dispositivi non switch collegati a questa LAN e la porta dove i pacchetti dovrebbero andare per arrivare a quel dispositivo. Gli switch invieranno il pacchetto su tutte le porte abilitate se non hanno l'indirizzo MAC di destinazione nella cache, e useranno il MAC di origine per aggiornare la cache. Gli switch usano anche una comunicazione L2 separata per stabilire uno spanning tree in modo che i pacchetti non vadano in giro in un ciclo anche se ce n'è fisicamente uno (le connessioni che formerebbero il ciclo sono disabilitate fino a quando una delle connessioni abilitate è interrotta)
Il router ha una tabella ARP per ogni interfaccia, solitamente una per la LAN e una per la WAN per i router domestici. Forse una tabella aggiuntiva per le LAN generata da una connessione PPPoE? O questo è point to point e non richiede davvero intestazioni Ethernet di livello 2? Voglio dire, la tabella ARP è legata al protocollo Ethernet (e la variante wireless, 802.11 utilizzata in pratica in tutti i router Wi-Fi) e l'indirizzo MAC. Ma esistono altri protocolli di livello 2 (HDLC per le porte seriali) che sono punto a punto (non esistono gli switch) e come tali non richiedono alcun identificatore nell'intestazione L2. In questo caso, l'IP può effettivamente non avere alcuna mappatura nella tabella ARP per la ragione che non è necessaria.