El protocolo ARP ofrece dos funciones básicas:
- Resolución de direcciones IP a direcciones MAC
- Mantenimiento de una caché de las asignaciones.
Cuando un dispositivo quiere comunicar con otro, a nivel de aplicación se suelen manejar nombres (origen y destino) que, por el protocolo DNS, acaban traduciéndose en IPs. Este problema vuelve a aparecer cuando se pasa del nivel IP al acceso a la red, debemos traducir las IPs en MAC, aquí es donde aparece el protocolo ARP, que viene a ser el equivalente al protocolo DNS en un nivel inferior.
Cuando el paquete pasa al nivel de acceso a red, se consulta la tabla denominada tabla ARP o caché ARP. La tabla ARP almacena en la RAM del dispositivo una relación de IPs con sus MACs correspondientes (En Windows podemos ver esta tabla con arp –a). Si el destino se encuentra en la tabla ARP, los datos son enviados a la MAC destino indicada en la tabla, pero si no se encuentra se envía un broadcast (destino MAC: FF-FF-FF-FF-FF-FF) que llega a todos los dispositivos de la red y, al que responderá el dispositivo que tenga la IP que se busca.
La tabla ARP se mantiene dinámicamente, se aprende del tráfico que llega al dispositivo, de broadcast, o de entradas estáticas en la tabla ARP.
Para cada dispositivo, un temporizador de caché de ARP elimina las entradas ARP que no se hayan utilizado durante un período de tiempo especificado.
Con la opción -a se muestra la tabla ARP y con la opción -s se introduce una entrada estática.