ARP ( Address Resolution Protocol) e RARP ( Reverse Address Resolution Protocol) servono per definire in modo automatico le corrispondenze fra indirizzi di livello 2 ed indirizzi IP e viceversa. Più esattamente ARP, come specificato da RFC 826, è un protocollo che fornisce la "mappatura" tra l'indirizzo IP a 32bit (4byte) di un calcolatore e il suo MAC address, l'indirizzo fisico a 48bit (6 byte). ARP viene usato tutte le volte che un host vuole inviare un pacchetto ad un altro host sulla sottorete, di cui conosce solo l’indirizzo IP. RARP viene usato da host non dotati di memoria di massa ( diskless) per reperire il proprio indirizzo IP all’avvio ( bootstrap). Il formato del pacchetto ARP è il seguente:
Dato per scontato che all'interno della LAN le comunicazioni avvengono solo utilizzando MAC addresses, se la macchina A vuole comunicare con la macchina B di cui conosce solo l'indirizzo IP invia in broadcast a tutta la rete una richiesta ARP (ARP request) specificando il proprio indirizzo (MAC e IP) e l'indirizzo IP del destinatario della richiesta, B. La macchina B risponderà con un datagram ARP (ARP Reply) dello stesso formato in cui specifica per il proprio IP anche il giusto indirizzo MAC. A quel punto A conosce tutti i dati necessari per avviare la comunicazione. Normalmente la macchina A accetta pacchetti ARP Reply contenenti una coppia MAC/IP anche quando non aveva precedentemente fatto una richiesta ARP, questo per permettere ad una macchina nuova nella rete di comunicare agli altri host i propri dati o eventuali cambiamenti. L’ algoritmo di funzionamento del protocollo ARP potrebbe essere:
ARP controlla se la propria cache ARP locale contiene già la traduzione in indirizzo hardware dell'indirizzo IP di destinazione. Se è così, l'indirizzo hardware è aggiunto all'intestazione del frame, e il frame è inviato sulla rete per essere elaborato dal computer di destinazione.
Se nella cache non si trova alcuna traduzione, il servizio ARP scarta il pacchetto e invia un pacchetto broadcast ARP sulla rete locale. Il pacchetto di richiesta ARP include l'indirizzo IP del destinatario, l'indirizzo IP sorgente e l'indirizzo hardware del mittente. L'indirizzo IP di destinazione è l'indirizzo IP broadcast (di solito 255.255.255.255).
Ogni computer sulla rete locale riceve la richiesta ARP e controlla se nella propria cache ARP è presente l'indirizzo IP sorgente. Se l'indirizzo viene trovato, il computer aggiorna l'indirizzo IP nella cache locale di ARP, aggiungendo l'indirizzo hardware del mittente specificato nella richiesta di ARP. Questo controllo delle immissioni assicura che se una diversa scheda di rete sta usando quell'indirizzo IP, la cache ARP viene aggiornata con la traduzione corretta.
Il computer il cui indirizzo IP è la destinazione effettiva della richiesta di ARP invia una risposta ARP direttamente al computer sorgente. La risposta ARP contiene l'indirizzo IP del computer di destinazione e il corrispondente indirizzo hardware.
Quando il computer sorgente riceve la risposta, aggiunge la nuova traduzione alla propria cache ARP. Poi invia i pacchetti da trasmettere all'indirizzo hardware della destinazione richiesta.
Per saperne consulta i seguenti approfondimenti:
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.