El protocolo de resolución de direcciones (ARP, del inglés Address Resolution Protocol) es un protocolo de comunicaciones de la capa de enlace de datos, responsable de encontrar la dirección de hardware (Ethernet MAC) que corresponde a una determinada dirección IP.
El objetivo del protocolo ARP es permitir a un dispositivo conectado a una red LAN obtener la dirección MAC de otro dispositivo conectado a la misma red LAN cuya dirección IP es conocida.
¿Cómo funciona?
Caso 1:
Supongamos que tenemos dos equipos en nuestra red. Uno es el equipo A y otro es el equipo B. El equipo A quiere mandar una trama al equipo B. Para ello, mirará su tabla ARP con el fin de poner en la trama la dirección MAC del equipo B. De esta manera, los equipos a los que les llegue esa trama sabrán rápidamente si es para ellos o no.
Caso 2:
Supongamos de nuevo que tenemos dos equipos en distintas redes, llamados A y B. Si A quiere enviar un mensaje a C, este mensaje tendrá que salir de la red de A. Por lo tanto, al estar en distintas redes, A enviará la trama a la dirección física de salida del router. Esta dirección física se obtendrá a partir de la IP del router, mediante el uso de la tabla ARP. Pero, ¿Qué pasa si la entrada no está en la tabla? Mandaremos un mensaje ARP a esa IP con un broadcast (a todos).
Ahora el router consultará su tabla de encaminamiento para obtener el siguiente nodo al que mandará su mensaje y enviará el mensaje por la interfaz correspondiente. Esto se repetirá con todos los nodos intermedios hasta que llegue al router de la red en la que está C.
En este momento, el router tendrá que averiguar la dirección MAC del equipo C y, esto lo hará mirando su tabla ARP. En caso de que no la tenga en su tabla, hará un broadcast para que el equipo C conteste con su MAC.