“Address Resolution Protocol”, o ARP, è un protocollo di
rete in IPv4 che fornisce la corrispondenza tra l’indirizzo IP e l’indirizzo
MAC di un dispositivo in una LAN ethernet.
In IPv6, il protocollo analogo è “Neighbor Discovery
Protocol” o NDP.
Nella pila ISO/OSI il
livello 3 per funzionare ha bisogno del livello 2. Se andiamo a generare un
pacchetto di livello 3 con un IP sorgente ed un IP destinazione, questo
pacchetto viene passato al livello 2 e genera un frame ethernet che
avrà un MAC sorgente ed un MAC destinazione.
Se proviamo ad eseguire il
comando ping* l’indirizzo IP di destinazione è noto, quindi il livello 3
funziona correttamente per cui chiedo a livello 2 di generare un frame. Successivamente
il livello 2 prende il pacchetto e ne costruisce l’intestazione e la coda;
nell’intestazione deve inserire il MAC sorgente ed il MAC destinazione. Ma il
MAC di destinazione non lo conosciamo. A questo punto interviene il
protocollo ARP che ci permette di conoscere il MAC di destinazione noto l’IP di
destinazione.
*ping è una funzione che serve per misurare il tempo in millisecondi (ms) che impiega un pacchetto dati per raggiungere un apparato di rete e tornare indietro. Su Windows si può usare la funzione "ping" aprendo il prompt dei comandi ("cmd" nella barra di ricerca Windows) e lanciando il comando "ping" seguito dall'IP del dispositivo che si vuole raggiungere.
Per inviare un pacchetto dati a dispositivi della stessa
subnet, quel pacchetto dovrà avere come indirizzo di destinazione il MAC
address del dispositivo a cui lo si vuole inviare.
Se invece si vuole inviare il pacchetto dati a un dispositivo di un’altra
subnet, ARP è utilizzato per trovare il MAC address del gateway o del router.
In ogni dispositivo il protocollo ARP conserva una traccia
delle risposte ottenute in una memoria cache, che vengono eliminate solitamente
dopo 5 minuti. Questa memoria serve per evitare di utilizzare ARP ogni volta
che si invia un pacchetto dati al destinatario.
Il protocollo ARP funziona così:
L’host che vuole conoscere il MAC address di un altro host,
di cui conosce solo l’IP, invia in broadcast una richiesta, chiamata “ARP
Request”, che contiene il proprio MAC address e l’IP del destinatario di cui si
vuole conoscere il MAC address. Tutti i dispositivi appartenenti a quella
subnet confrontano l’IP inviato con il proprio per verificare se viene
richiesto il proprio MAC address. Il dispositivo che riconosce il proprio
indirizzo IP pel pacchetto “ARP Request” invierà una risposta, chiamata “ARP
Reply” contenente il proprio MAC address al mittente.
Nessun commento:
Posta un commento