Que es y cómo funciona el Protocolo ARP

Para poder enviar paquetes de datos en redes TCP/IP, un servidor necesita, sobre todo, tres datos de dirección sobre el host al que se dirige: la máscara de subred, la dirección IP y la dirección MAC (también conocida como dirección de hardware o dirección física). Los dispositivos reciben la máscara de red y la dirección IP de manera automática y flexible cuando se establece la conexión con una red.

Con este objetivo, los dispositivos de comunicación mediadores como routers o concentradores (hubs) recurren al protocolo DHCP. En las redes locales se pueden introducir ambos datos manualmente. El fabricante del dispositivo correspondiente otorga la dirección de hardware, que queda vinculada a una dirección IP con ayuda del llamado Address Resolution Protocol (ARP).

El Address Resolution Protocol (protocolo de resolución de direcciones) fue especificado en 1982 en el estándar RFC 826 para llevar a cabo la resolución de direcciones IPv4 en direcciones MAC. ARP es imprescindible para la transmisión de datos en redes Ethernet por dos razones: por un lado, las tramas de datos (también tramas Ethernet) de los paquetes IP solo pueden enviarse con ayuda de una dirección de hardware a los hosts de destino, pero el protocolo de Internet no puede obtener estas direcciones físicas por sí mismo. Por el otro, y debido a su limitada longitud, el protocolo IPv4 carece de la posibilidad de almacenar las direcciones de los dispositivos. Con un mecanismo de caché propio, el protocolo ARP también es, aquí, la solución más adecuada. IPv6, por su parte, adopta las funciones del Neighbor Discovery Protocol (NDP).

A la hora de asignar direcciones por medio del Address Resolution Protocol hay que distinguir si la dirección IP del host de destino se encuentra en la misma red local o en otra subred. Así, en caso de asignar una dirección MAC a una determinada dirección IP, antes de nada se lleva a cabo una revisión de la máscara de subred. Si la IP se encuentra en la red local, el primer paso es controlar si ya existe una entrada para ella en la caché del ARP.

Si una dirección IP ya tiene asignada una dirección física, es esta la que se utiliza para el direccionamiento. En caso contrario, el remitente envía una solicitud ARP (ARP Request) con la dirección IP de destino a todos los hosts de la red. Para tal fin, el emisor utiliza la dirección de broadcast de ARP FF:FF:FF:FF:FF:FF como dirección del destinatario.

Cada una de las estaciones compara la dirección IP indicada en la petición con las suyas propias y rechaza la solicitud si no hay coincidencia. Si una estación percibe que se trata de la dirección propia, reacciona con una respuesta ARP (ARP Reply) en la que, entre otros datos, también transmite la dirección MAC. Ambas partes pueden incorporar la dirección MAC y la IP de la otra parte en la memoria caché, sentando las bases para el intercambio de datos.  

Si el host de destino no se encuentra en la misma subred, el remitente se dirige a la puerta de enlace estándar (en la mayoría de los casos un router). Puede acceder a ella mediante la combinación de dirección MAC e IP, por lo que aquí también se necesita el Address Resolution Protocol. Una vez resueltas las direcciones, la puerta de enlace recibe el paquete de datos y a continuación lo envía al host de destino.

Para ello esta pasarela de enlace analiza la cabecera IP para obtener los datos necesarios. A continuación, sirviéndose de las posibilidades del protocolo ARP, resuelve la dirección física directamente cuando esta se encuentra en una subred adyacente, o resuelve la dirección de hardware de otra puerta de enlace cuando el ordenador de destino se encuentra en una subred remota y no se puede determinar la trayectoria del paquete con ayuda de la tabla de enrutamiento.

En el último caso, el proceso se repite tantas veces como sea necesario hasta que el paquete de datos llegue a su destino o hasta que el campo TTL (Time to Live) haya adoptado el valor 0 en la cabecera IP.

ARP Flux | Redes Telemáticas

Entradas relacionadas

Dejar un Comentario