Address Resolution Protocol
ARP
Lo scopo principale del protocollo ARP è quello di effettuare una corretta mappatura tra indirizzi del protocollo logico (ad esempio indirizzo IP) e indirizzi hardware locali (ad esempio indirizzo MAC Ethernet delle schede di rete). Sebbene questo protocollo sia stato originariamente progettato per lavorare con reti di tipo Ethernet a 10 Mb, esso è stato successivamente generalizzato per consentirne l’utilizzo anche con altri tipi di rete.
La struttura di un pacchetto ARP è illustrata in figura [21].

Vediamo di seguito il significato dei campi:
Hardware Type: questo campo viene utilizzato per indicare lo standard hardware utilizzato. Ethernet utilizza il numero 01.
Protocol Type: indica per l’appunto il tipo di protocollo. Il protocollo IP utilizza il numero 80.
Hardware Address Lenght: specifica il numero di byte utilizzati per l’indirizzo hardware. Per il protocollo Ethernet, la lunghezza dell’indirizzo hardware è di 6 byte (o 48 bit).
Protocol Address Lenght: indica la lunghezza dell’indirizzo del protocollo in byte. Il protocollo IP, come abbiamo visto, ha un indirizzo a 4 byte (o 32 bit).
Operation: indica se questo pacchetto è una richiesta o una risposta. La richiesta è identificata dal valore 1, mentre la risposta utilizza il valore 2.
Source Hardware Address: viene utilizzato per contenere l’indirizzo hardware dell’origine. La lunghezza di questo campo è solitamente di 6 byte per l’indirizzo MAC Ethernet associato alle schede di rete.
Source Protocol Address: contiene l’indirizzo del protocollo logico, solitamente l’indirizzo IP, dell’origine. Se il protocollo è IP, la lunghezza di questo campo è di 4 byte.
Destination Hardware Address: contiene l’indirizzo hardware della destinazione. Per il protocollo Ethernet, la lunghezza del campo è di 6 byte e dovrebbe contenere l’indirizzo MAC di destinazione.
Destination Protocol Address: contiene l’indirizzo del protocollo logico di destinazione. Quando viene utilizzato il protocollo IP, la lunghezza di questo campo è di 4 byte e dovrebbe contenere l’indirizzo IP di destinazione.
Lo scenario tipico dell’utilizzo di ARP è il seguente:
- Il nodo sorgente contiene l’indirizzo IP di una destinazione e desidera conoscere l’indirizzo hardware in modo da poter inviare i frame Ethernet alla destinazione.
- La fonte invia una richiesta ARP. Poiché la sorgente non conosce l’indirizzo hardware di destinazione, l’indirizzo hardware di destinazione è impostato sull’indirizzo di trasmissione. In questo modo, tutti i nodi della rete locale ricevono una copia della richiesta ARP.
- Il nodo di destinazione con l’indirizzo IP contenuto nel campo dell’indirizzo del protocollo di destinazione risponde con il proprio indirizzo hardware.
- Il pacchetto ARP di risposta contiene l’hardware e gli indirizzi IP del nodo che ha inviato la richiesta ARP vengono utilizzati qui come indirizzi di destinazione, mentre l’hardware e gli indirizzi IP del nodo di risposta vengono utilizzati nella risposta come indirizzi di origine.
L’effettivo compito del protocollo ARP è la mediazione tra il livello Internet e il livello Network Access. Pertanto, a volte il protocollo ARP è considerato un protocollo di supporto del livello Network Access e altre volte è considerato un protocollo di supporto del livello Internet.
Il protocollo RARP funziona in modo simile a quello di ARP. La differenza principale è che RARP viene utilizzato per fornire gli indirizzi del protocollo logico ai nodi che hanno solo indirizzi hardware.
L’anatomia dei pacchetti RARP è molto simile a quella dei pacchetti ARP. La differenza principale si verifica nel campo operativo. Il protocollo RARP utilizza i valori 3 e 4 rispettivamente per la richiesta e la risposta come indicato nell’IETF RCF 903.
L’utilizzo principale del protocollo RARP è fornire indirizzi IP agli host che non conoscono il proprio indirizzo IP. L’host invia una richiesta RARP al gateway e il gateway cerca nella cache ARP l’indirizzo IP correlato all’indirizzo hardware di questo host e quando viene trovata una corrispondenza l’indirizzo IP viene inviato all’host.
RARP viene quindi utilizzato principalmente per assegnare indirizzi IP a terminali solo tastiera e monitor che devono essere collegati alla rete ma non hanno la capacità di farlo da soli.
Reverse Address Resolution Protocol (RARP) – ARP Inverso
ARP inverso, spesso indicato come InARP, è un altro protocollo di supporto che non è ampiamente utilizzato come ARP e RARP. InARP viene utilizzato prevalentemente con le reti Frame-Relay per fornire il lavoro di ARP nelle interfacce Frame Relay. InARP funziona in modo del tutto simile ad ARP, con l’eccezione che InARP non trasmette le richieste.
Frame Relay è una tecnologia WAN che utilizza un identificatore di circuito virtuale, o Data Link Connection Identifier (DLCI), invece di utilizzare l’indirizzo di origine e di destinazione. Questo numero DLCI identifica il circuito virtuale che collega la sorgente alla destinazione. Il compito principale di InARP è fornire la mappatura tra indirizzi di protocollo logico e circuiti virtuali per la rete Frame-Relay.