¿Cómo funciona realmente el comando 'ping'?

24

¿Cómo funciona realmente el comando ping? Específicamente, ¿dónde aparece el ARP (Protocolo de resolución de direcciones)?

Me hicieron esta pregunta en una entrevista y no pude encontrar un escenario en el que se pudiera usar ARP.

liv2hak
fuente
Mira en ICMP.
3
ARP se utiliza para obtener la dirección MAC de una dirección IP específica. Cuando necesita enviar un paquete en Ethernet, necesita la dirección MAC del destino.

Respuestas:

16

Si realmente quiere entender, aquí hay un excelente libro blanco (muy bien escrito):

http://images.globalknowledge.com/wwwimages/whitepaperpdf/WP_Mays_Ping.pdf

Aquí está el resumen ->

Ping (Program on the application layer) ------->
Opens a 'raw' socket to IP Layer ------>
IP layer (Layer 2 on OSI) packages ICMP packet and sends it

Como no hay una capa TCP en el medio, Ping (program)tiene que monitorear todos los paquetes ICMP entrantes y filtrar solo los del destino.

Espero que ayude.

Planeta Desconocido
fuente
9

Suponiendo que el ping implica que un paquete se envíe a través de una red Ethernet o WiFi, ARP se utiliza para encontrar la dirección de hardware Ethernet del dispositivo que recibe el paquete saliente. Por lo general, este será el enrutador para la LAN en la que se encuentra la máquina que origina el ping.

El proceso típico es:

  1. Ingresa un comando para hacer ping a un destino.

  2. DNS se utiliza para determinar la dirección IP (si es necesario).

  3. La tabla de enrutamiento se consulta para encontrar el próximo salto hacia ese destino.

  4. ARP se utiliza para encontrar la dirección de hardware del próximo salto.

  5. El paquete IP se envía al siguiente salto, encapsulado en una trama Ethernet o WiFi.

David Schwartz
fuente
3
¡La única respuesta aquí que realmente responde la pregunta!
jmiserez
2

Ping es en realidad dos paquetes diferentes de ICMP (Protocolo de mensajes de control de Internet).

Para hacer ping a un host, primero envíe un paquete de solicitud de eco ICMP, el host luego responderá con una respuesta de eco ICMP.

Para obtener más información, consulte: https://en.wikipedia.org/wiki/Ping_(networking_utility)

Matthias Braun
fuente
1

Ping y ARP son cosas diferentes ubicadas en diferentes capas en la pila de protocolos de red.

Ping está en la capa de red (o en la capa de Internet: eche un vistazo al protocolo ICMP como señaló @ServerMonkey).

El protocolo Arp está en el nivel de enlace (un nivel inferior). El protocolo Arp está diseñado para permitir la conexión física entre el hardware de red, que está conectado directamente.

En la pila de red TCP / IP, cada capa usa la siguiente capa para reenviar sus datos, encapsulándolos dentro del protocolo de bajo nivel. Cada capa es independiente de la otra y posiblemente ignora los detalles e implementaciones específicas de los otros niveles (esto no siempre es cierto: vea la función de capa cruzada ).

Heisenbug
fuente
yes.but aplicación de ping requeriría un cierto código en L2 viene ARP en juego en el nivel 2. (capa de enlace.).
@ liv2hak. no. la implementación de ping se encuentra en la capa de enlace a continuación.
A menudo se dice que @liv arp es la capa 2.5. A menudo se dice que ICMP es la capa 3.5. Las capas tienen más que ver con los campos que con el código. Y si quiere decir que la implementación de ping requiere código en la capa 2, bueno, con cualquier implementación de cualquier cosa, por definición, no puede tener una capa sin capas debajo de ella.
barlop
1

ARP proporciona una dirección MAC, pero a veces si no hay una dirección DMAC, se usa la dirección de difusión.

Este marco que usa la transmisión DMAC se llama marco de transmisión ARP, con esto obtenemos la dirección DMAC.

Sagar Vardekar
fuente