Imaginate que acabas de entrar a tu primera chamba en tecnología, y como parte de tu rol tienes que dar soporte a redes de computadores y multiples problemas del día a día. ¿Sabías que existe un protocolo fundamental que te puede ayudar a resolver mil problemas en redes de computadores?, ¿Sabías que muchos problemas básicos los puedes resolver si lo conoces?, en este post te voy a explicar de manera muy sencilla como se comican dos maquinas en una red y el protocolo llamado ARP que permite que esta comunicación sea una realidad.
¿Como hablan dos PCs?
Imaginate que eres un PC y tu nombre es 10.10.10.10.100 y quieres enviarle un paquete ICMP (Ping) a otro PC de nombre 10.10.10.101, dentro de tu mismo vecindario (En este caso la red 10.10.10.x/24). Ahora tal cual, como lo ves en la siguiente imagen, si entras en la terminal (Windows cmd) y colocas el comando Ping 10.10.10.101 es equivalente a lo que ves en la gráfica a continuacion:

Ahora, adivina qué, cuando enciendes un computador por primera vez este no posee toda la información requerida a nivel de TCP/IP para comunicarse con otras maquinas en una red.
Entonces, ¿que información debe conocer el PC para enviar tráfico a otro PC?, como lo ves en la gráfica a continuación, el cerebro del PC debe completar la siguiente información antes de enviar el tráfico de ICMP al otro PC:

Entonces, hasta este momento, ¿Qué información crees que conoce el PC?, a ver repasemos un poco:

MAC Origen (Capa 2): Corresponde a la dirección física asociada a la tarjeta de red del PC de origen. En unica por fabricante. Como es la tarjeta del PC enviando el tráfico es un parámetro conocido.
IP Origen (Capa 3): Corresponde a la dirección lógica configurada en el PC de origen. Como la tenemos configurada en el PC es un parámetro conocido.
MAC Destino (Capa 2): Corresponde a la dirección física asociada a la tarjeta de red del PC de destino. eh, ¿Como lo conocemos?, ¿Que piensas?
IP Destino (Capa 3): Corresponde a la dirección lógica configurada en el PC de destino del tráfico. Lo conocemos por que en la terminal del PC estamos ejecutando el comando Ping 10.10.10.101
Entonces, a este punto el parametro faltante para enviar este tráfico es la MAC Destino, imagina que fueras a llamar a un amigo por teléfono y sabes como se llama tu amigo pero no conoces su número telefónico. ¿Que harías?.
¿Como completas la información pendiente de capa 2?
En este caso existe un protocolo conocido como ARP (Address Resolution Protocol por sus siglas en inglés) que nos ayuda a obtener esta información.

Este protocolo mágico y fundamental en la comunicación de una red nos ayuda a completar ese pedazito de información que nos falta para enviar el paquete ICMP que tenemos pendiente. Ten presente que si no completas todos los campos en el paquete, este paquete inicial se pone en Espera hasta que ARP nos ayude a conseguir la MAC del PC destino. Una vez completado ya el PC puede enviar el tráfico:

A medida que un computador se comunica con otros en su red, va obteniendo información de sus direcciones MAC por ARP y va creando una tabla con las respectivas entradas de IP y MAC, para no tener que consultarlas de manera permanente. Esta tabla tiene una duración finita, luego de la cual se tiene que volver a hacer la consulta de ARP para obtener la MAC asociada a una IP determinada. En Windows se ve algo así:

Troubleshooting TIP
No hay que ser un mago para resolver problemas en redes de computadores, tampoco tener 1000 certificaciones y demás, pero si entender los protocolos básicos en la comunicación entre maquinas en una red. Ten en cuenta que dispositivos como PCs, Telefonos IPs, Camaras, Servidores, y prácticamente cualquier cosa que se conecte a una red usa ARP (Address Resolution Protocol) para obtener la información MAC de otros dispositivos dentro de su red. Entonces un primer paso para resolver incidentes de red es revisar la información de ARP de los dispositivos.
No olvides dejarnos tus comentarios e inquietudes, y si quieres saber algo en detalles, dejanos saber y con gusto responderemos a tus solicitudes. Un abrazo y !hasta la próxima!