Il protocollo ARP ha un ruolo chiave fra i protocolli di livello internet della serie TCP/IP, dato che permette di conoscere l'indirizzo fisico di una scheda di rete corrispondente ad un indirizzo IP, ed è per questo che si chiama Protocollo di risoluzione d'indirizzo (in inglese ARP significa Address Resolution Protocol).
Ogni terminale connesso alla rete possiede un numero di identificazione di 48 bit. Questo è un numero unico assegnato al momento della produzione della scheda in fabbrica. Tuttavia la comunicazione su internet non si fa direttamente partendo da questo numero (dato che bisognerebbe modificare l'indirizzamento dei computer ogni volta che si cambia una scheda di rete) ma partendo da un indirizzo detto logico attribuito da un ente: l'indirizzo IP.
Quindi, per far corrispondere gli indirizzi fisici a quelli logici, il protocollo ARP interroga i terminali di rete per conoscere i loro indirizzi fisici, poi crea una tabella di corrispondenza tra gli indirizzi logici e quelli fisici in una memoria cache.
Quando un terminale deve comunicare con un altro, consulta la tabella di corrispondenza. Se mai l'indirizzo richiesto non è nella tabella, il protocollo ARP emette una richiesta in rete. L'insieme dei terminali di rete paragona questo indirizzo logico al loro. Se uno fra questi si identifica con questo indirizzo, il terminale risponde all'ARP che immagazzina la coppia di indirizzi nella tabella di corrispondenza e la comunicazione può iniziare.
Il protocollo RARP (Reverse Address Resolution Protocol) è molto meno usato, esso significa Protocollo ARP inverso, si tratta quindi di una sorta di annuario inverso degli indirizzi logici e fisici. In realtà il protocollo RARP è essenzialmente usato per le workstation senza disco rigido e che desiderano conoscere il loro indirizzo fisico.
Il protocollo RARP permette ad una workstation di conoscere il proprio indirizzo IP partendo da una tabella di corrispondenza tra indirizzi MAC (indirizzi fisici) e indirizzi IP hosted su un gateway posto sulla stessa rete locale (LAN).
Per fare questo bisogna che l'amministratore parametri il gateway (router) con la tabella di corrispondenza degli indirizzi MAC/IP. In effetti, a differenza dell'ARP, questo protocollo è statico. Bisogna quindi che la tabella di corrispondenza sia sempre aggiornata per permettere la connessione di nuove schede di rete.
RARP soffre di numerose limitazioni. Ha bisogno di molto tempo d'amministrazione per mantenere delle tabelle importanti nei server. Questo è ancora più vero quanto la rete è più grande. Si pone quindi il problema delle risorse umane necessarie alla manutenzione delle tabelle di corrispondenza e delle capacità dell'hardware che ospita la parte server del protocollo RARP. In effetti, RARP permette a più server di rispondere a delle richieste, anche se non prevede dei meccanismi che garantiscano che tutti i server siano capaci di rispondere, ne che possano rispondere nello stesso modo.
Così, in questo tipo di architettura non si deve fare affidamento ad un server RARP per sapere se un indirizzo MAC può essere collegato ad un indirizzo IP perché altri server ARP possono avere una risposta diversa. Un altro limite di RARP è che un server non può servire una sola LAN.
Per attenuare i primi due problemi di amministrazione, il protocollo RARP può essere sostituito dal protocollo DRARP, una sua versione dinamica. Un altro approccio consiste nell'usare un server DHCP, che invece permette una risoluzione dinamica degli indirizzi. Inoltre, DHCP è compatibile con il protocollo BOOTP. E dato che quest'ultimo è routabile, può quindi servire più LAN. Ma funziona solo con IP.
La documentazione principale sui protocolli ARP e RARP è costituita dai RFCs:
RFC 826 - ARP (An Ethernet Address Resolution Protocol);
RFC 903 - RARP (Reverse Address Resolution Protocol).
Foto: © Pixabay.