[toc]
Introduzione
La comunicazione tra due host in una rete avviene anche grazie ad ARP (Address Resolution Protocol), un protocollo adibito alla conversione di un indirizzo IP (32 bit) al suo corrispettivo indirizzo fisico MAC (Media Access Control, 48 bit) che lavora a livello 2 (Data Link) del modello di riferimento OSI anche se, personalmente, ritengo ARP di diffiicile posizionamento tra il livello 2 e 3 (Network).
Funzionamento
Come funziona il protocollo ARP? E’ molto semplice. Portiamo un esempio classico: due host che chiameremo A e B devono comunicare. L’host A invia come broadcast una ARP Request. Tutti gli host della rete la riceveranno, compreso l’host B. A sua volta, l’host B, dopo aver riconosciuto nella request il suo indirizzo IP, provvederà ad inviare una ARP reply (ma questa volta in unicast) contenente il suo indirizzo MAC. Riassumendo, si hanno le seguenti fasi:
- 1) L’host A invia una ARP Request a tutti gli indirizzi di rete (broadcast) nella quale, oltre alla stessa richiesta ARP, vi è l’indirizzo IP e l’indirizzo MAC dell’host A.
- 2) L’ARP Request verrà scartata da tutti gli host tranne il vero destinatario, in questo caso l’host B.
- 3) L’host B inserisce nella cache ARP la corrispondenza tra IP-MAC dell’host A. Fatto ciò, genera un pacchetto ARP Reply contenente il proprio indirizzo MAC. Una volta ricevuto l’ARP Reply, l’host A inserisce nella propria cache ARP l’indirizzo IP e l’indirizzo MAC dell’host B. Il protocollo ARP conclude qui il suo compito poichè la comunicazione può avvenire.
La cache ARP
Ogni qual volta un host comunica con un altro, viene eseguita una ARP Request all’host destinatario. Questo però non avviene per ogni connessione bensì interviene la cache ARP che permette appunto di evitare le ARP Request ogni qual volta c’è un tentativo di connessione tenendo in archivio le ultime corrispondenze tra indirizzo IP e indirizzo MAC eseguite per un dato tempo. Questo dato tempo è definito come TTL (Time To Live) trascorso il quale la voce viene rimossa.