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].

Figura 21: Pacchetto Address Resolution Protocol (ARP)
Figura 21: Pacchetto Address Resolution Protocol (ARP)

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.