Il protocollo di risoluzione degli indirizzi è un mezzo per un’applicazione di rete o un dispositivo per determinare l’indirizzo Ethernet di un altro dispositivo. Conosciuto anche con l’acronimo ARP, tenta di far corrispondere un indirizzo IP (Internet Protocol) con un indirizzo hardware. ARP viene utilizzato da ciascun dispositivo su una rete locale la prima volta che comunica con un altro dispositivo sulla stessa rete.
Le applicazioni e i dispositivi di rete comunicano ad alto livello utilizzando pacchetti sul livello di rete dello stack di protocollo. Questi pacchetti sono diretti a indirizzi IP. Quando ogni pacchetto viene inviato sulla rete locale (LAN) utilizzando il livello di collegamento dati, è necessario conoscere anche l’indirizzo Ethernet del destinatario. Gli indirizzi IP possono essere assegnati dinamicamente e cambiare nel tempo, mentre gli indirizzi Ethernet generalmente rimangono gli stessi. Un’applicazione o un dispositivo ha bisogno di un modo per determinare l’indirizzo hardware attualmente associato a un determinato indirizzo IP.
Il protocollo di risoluzione degli indirizzi definisce un metodo standard per rilevare questi indirizzi. ARP è stato documentato dall’Internet Engineering Task Force (IETF) nel 1982 come Request For Comments (RFC) 826. Quando un sistema è pronto per inviare un pacchetto IP, consulta la sua cache degli indirizzi risolti di recente. Se l’indirizzo IP di destinazione non è nella cache, trasmette un messaggio all’intera LAN utilizzando ARP. Questo messaggio richiede al dispositivo con l’indirizzo IP di destinazione di rispondere con il suo indirizzo hardware Ethernet.
Questo pacchetto di richiesta del protocollo di risoluzione degli indirizzi include gli indirizzi IP e hardware del richiedente, nonché l’indirizzo IP cercato. Ogni dispositivo sulla LAN ascolta un pacchetto di richiesta ARP contenente il suo indirizzo IP. Se ne viene sentito uno, il dispositivo corrispondente compone un pacchetto di risposta ARP contenente il suo indirizzo hardware Ethernet. Questo pacchetto di risposta viene quindi inviato direttamente al richiedente, che memorizza gli indirizzi nella sua cache ARP per un successivo riutilizzo. Il risponditore può anche memorizzare gli indirizzi nella sua cache, poiché è probabile che comunichi ulteriormente con il richiedente.
Gli indirizzi IP versione 4 (IPv4) e Ethernet sono i tipi più comuni di indirizzi risolti dall’Address Resolution Protocol. Tuttavia, il pacchetto di richiesta supporta altri tipi tramite i campi Tipo di protocollo e Lunghezza indirizzo. Gli indirizzi IP versione 6 (IPv6) vengono risolti con il protocollo Neighbor Discovery Protocol (NDP) anziché con ARP.
Il protocollo RARP (Reverse Address Resolution Protocol) richiede un indirizzo IP per l’indirizzo hardware del richiedente. Un server RARP risponde a una di queste richieste assegnando un nuovo indirizzo IP e associandolo all’indirizzo hardware del richiedente. L’ARP inverso è considerato obsoleto: la sua funzionalità è incorporata nel protocollo DHCP (Dynamic Host Configuration Protocol). Inverse Address Resolution Protocol richiede l’indirizzo IP esistente associato all’indirizzo hardware specificato. In questo caso l’indirizzo hardware può essere quello di un qualsiasi nodo della stessa LAN.