ping (utilidad de red)

Utilidad de red utilizada para probar la accesibilidad de un host

Silbido
Autor(es) original(es)Mike Muuss
Desarrollador(es)Varios desarrolladores comerciales y de código abierto
Lanzamiento inicial1983 ; hace 41 años ( 1983 )
PlataformaMultiplataforma
TipoDominio
LicenciaDominio público , BSD , GPL , MIT

pinges una utilidad de software de administración de redes informáticas que se utiliza para probar la accesibilidad de un host en una red de Protocolo de Internet (IP). Está disponible para prácticamente todos los sistemas operativos que tienen capacidad de red, incluido la mayoría del software de administración de redes integrado.

Ping mide el tiempo de ida y vuelta de los mensajes enviados desde el host de origen a un ordenador de destino que se reflejan en el origen. El nombre proviene de la terminología del sonar activo que envía un pulso de sonido y escucha el eco para detectar objetos bajo el agua. [1]

Ping funciona mediante paquetes del Protocolo de mensajes de control de Internet (ICMP) . Para hacer ping, se envía una solicitud de eco ICMP al host de destino y se espera una respuesta de eco ICMP . El programa informa sobre errores, pérdida de paquetes y un resumen estadístico de los resultados, que normalmente incluye el mínimo, el máximo, los tiempos de ida y vuelta medios y la desviación estándar de la media.

Las opciones de línea de comandos de la utilidad ping y su salida varían entre las numerosas implementaciones. Las opciones pueden incluir el tamaño de la carga útil, el número de pruebas, los límites para la cantidad de saltos de red ( TTL ) que atraviesan las sondas, el intervalo entre las solicitudes y el tiempo de espera para una respuesta. Muchos sistemas proporcionan una utilidad complementaria, ping6, para realizar pruebas en redes IPv6 ( Protocolo de Internet versión 6 ), que implementan ICMPv6 .

Historia

Versión DOS de ping

La utilidad ping fue escrita por Mike Muuss en diciembre de 1983 durante su empleo en el Laboratorio de Investigación Balística , ahora el Laboratorio de Investigación del Ejército de los EE. UU . Un comentario de David Mills sobre el uso de paquetes de eco ICMP para el diagnóstico y las mediciones de redes IP impulsó a Muuss a crear la utilidad para solucionar problemas de red. [1] El autor lo nombró así por el sonido que hace el sonar , ya que su metodología es análoga a la ecolocalización del sonar. [1] [2] El acrónimo Packet InterNet Groper para PING se ha utilizado durante más de 30 años, y aunque Muuss dice que, desde su punto de vista, PING no fue pensado como un acrónimo, ha reconocido la expansión del nombre por parte de Mills. [1] [3] La primera versión lanzada fue software de dominio público ; todas las versiones posteriores han sido licenciadas bajo la licencia BSD . Ping se incluyó por primera vez en 4.3BSD . [4] La versión FreeDOS fue desarrollada por Erick Engelke y está licenciada bajo la GPL . [5] Tim Crawford desarrolló la versión de ReactOS . Está licenciada bajo la Licencia MIT . [6]

Cualquier host debe procesar solicitudes de eco ICMP y emitir respuestas de eco a cambio. [7]

Ejemplo de invocación

El siguiente es el resultado de ejecutar ping en Linux para enviar cinco sondas (intervalo de 1 segundo por defecto, configurable mediante la opción -i) al host de destino www.example.com :

$ ping  -c 5 www.ejemplo.com  PING www.ejemplo.com (93.184.216.34): 56 bytes de datos 64 bytes desde 93.184.216.34: icmp_seq=0 ttl=56 tiempo=11,632 ms 64 bytes desde 93.184.216.34: icmp_seq=1 ttl=56 tiempo=11,726 ms 64 bytes desde 93.184.216.34: icmp_seq=2 ttl=56 tiempo=10,683 ms 64 bytes desde 93.184.216.34: icmp_seq=3 ttl=56 tiempo=9,674 ms 64 bytes desde 93.184.216.34: icmp_seq=4 ttl=56 tiempo=11,127 ms--- Estadísticas de ping de www.example.com --- 5 paquetes transmitidos, 5 paquetes recibidos, 0,0 % de pérdida de paquetes en el viaje de ida y vuelta, mín./promedio/máx./desviación estándar = 9,674/10,968/11,726/0,748 ms

La salida muestra cada mensaje de sondeo y los resultados obtenidos. Por último, se muestran las estadísticas de toda la prueba. En este ejemplo, el tiempo de ida y vuelta más corto fue de 9,674 ms, el promedio fue de 10,968 ms y el valor máximo fue de 11,726 ms. La medición tuvo una desviación estándar de 0,748 ms.

Indicaciones de error

En caso de que no haya respuesta del host de destino, la mayoría de las implementaciones no muestran nada o imprimen notificaciones periódicas sobre el tiempo de espera. Los posibles resultados de ping que indican un problema incluyen los siguientes:

  • H, !N o !P  : host, red o protocolo inalcanzable
  • S  – la ruta de origen falló
  • F  – fragmentación necesaria
  • U o !W  – red de destino/host desconocido
  • I  – el host de origen está aislado
  • A  – comunicación con la red de destino prohibida administrativamente
  • Z  – comunicación con el host de destino prohibida administrativamente
  • P  – para este ToS la red de destino es inalcanzable
  • T  – para este ToS el host de destino es inalcanzable
  • X  – comunicación prohibida administrativamente
  • V  – violación de precedencia del host
  • C  – límite de precedencia vigente

En caso de error, el host de destino o un enrutador intermedio envía un mensaje de error ICMP, por ejemplo, host inalcanzable o TTL excedido en tránsito . Además, estos mensajes incluyen los primeros ocho bytes del mensaje original (en este caso, el encabezado de la solicitud de eco ICMP, incluido el valor de extinción), de modo que la utilidad ping pueda hacer coincidir las respuestas con las consultas originales. [8]

Formato del mensaje

Paquete ICMP transportado con IPv4

Un paquete ICMP transportado con IPv4 se ve así.

Datagrama IPv4
CompensarOcteto0123
OctetoPoco012345678910111213141516171819202122232425262728293031
00Versión  (4)DIH  (5)DSCPP  (0)ECN  (0)Longitud total
432IdentificaciónBanderasDesplazamiento de fragmento
864Tiempo de vivirProtocolo  (1)Suma de comprobación del encabezado
1296Dirección de origen
16128Dirección de destino
Paquete de solicitud de eco ICMP
20160Tipo  (0)Código  (0)Suma de comprobación
24192IdentificadorNúmero de secuencia
28224(Carga útil)
32256
Tipo: 8 bits
Establezca en 0 para indicar 'Solicitud de eco'.
Suma de comprobación: 16 bits
La suma de comprobación es el complemento a uno de 16 bits de la suma del complemento a uno del paquete ICMP, comenzando con el campo Tipo , [9] incluida la Carga útil . El encabezado IP no está incluido.
Identificador: 16 bits
El cliente puede utilizarlo para hacer coincidir la respuesta con la solicitud que provocó la respuesta.
Número de secuencia: 16 bits
El cliente puede utilizarlo para hacer coincidir la respuesta con la solicitud que provocó la respuesta.
Carga útil: variable
Opcional. Carga útil para los diferentes tipos de respuestas; puede tener una longitud arbitraria, que queda a criterio de la implementación.

La mayoría de los sistemas Linux utilizan un identificador único para cada proceso de ping, y el número de secuencia es un número creciente dentro de ese proceso. Windows utiliza un identificador fijo , que varía entre las versiones de Windows, y un número de secuencia que solo se restablece en el momento del arranque.

La respuesta de eco se devuelve como:

Paquete de respuesta de eco ICMP
20160Tipo  (8)Código  (0)Suma de comprobación
24192IdentificadorNúmero de secuencia
28224(Carga útil)
32256
Tipo: 8 bits
Establezca en 8 para indicar 'Respuesta de eco'.
Identificador: 16 bits
Copiado de la solicitud de eco y devuelto.
Número de secuencia: 16 bits
Copiado de la solicitud de eco y devuelto.
Carga útil: variable
Opcional. La carga útil se copia de la solicitud de eco y se devuelve.

Paquete ICMPv6 transportado con IPv6

Un paquete ICMP transportado con IPv6 se ve así.

Datagrama IPv6
CompensarOcteto0123
OctetoPoco012345678910111213141516171819202122232425262728293031
00Versión  (6)Clase de tráficoEtiqueta de flujo
432Longitud de carga útilSiguiente encabezado  (58)Límite de salto
864Dirección de origen
1296
16128
20160
24192Dirección de destino
28224
32256
36288
Paquete de solicitud de eco ICMPv6
40320Tipo  (128)Código  (0)Suma de comprobación
44352IdentificadorNúmero de secuencia
48384(Carga útil)
52416
Tipo: 8 bits
Establezca en 128 para indicar 'Solicitud de eco'.
Identificador: 16 bits
El cliente puede utilizarlo para hacer coincidir la respuesta con la solicitud que provocó la respuesta.
Número de secuencia: 16 bits
El cliente puede utilizarlo para hacer coincidir la respuesta con la solicitud que provocó la respuesta.
Suma de comprobación: 16 bits
La suma de comprobación se calcula a partir del mensaje ICMP (comenzando con el campo Tipo ), precedido por un pseudoencabezado IPv6 . [10]
Carga útil: variable
Opcional. Carga útil para los diferentes tipos de respuestas; puede tener una longitud arbitraria, que queda a criterio de la implementación.

La mayoría de los sistemas Linux utilizan un identificador único para cada proceso de ping, y el número de secuencia es un número creciente dentro de ese proceso. Windows utiliza un identificador fijo , que varía entre las versiones de Windows, y un número de secuencia que solo se restablece en el momento del arranque.

La respuesta de eco se devuelve como:

Paquete de respuesta de eco ICMPv6
40320Tipo  (129)Código  (0)Suma de comprobación
44352IdentificadorNúmero de secuencia
48384(Carga útil)
52416
Tipo: 8 bits
Establezca en 129 para indicar 'Respuesta de eco'.
Identificador: 16 bits
Copiado de la solicitud de eco y devuelto.
Número de secuencia: 16 bits
Copiado de la solicitud de eco y devuelto.
Carga útil: variable
Opcional. La carga útil se copia de la solicitud de eco y se devuelve.

Carga útil

La carga útil del paquete generalmente se llena con caracteres ASCII , como lo muestra la salida de la utilidad tcpdump en los últimos 32 bytes del siguiente ejemplo (después del encabezado ICMP de ocho bytes que comienza con 0x0800 ):

16:24:47 .966461 IP (tos 0x0, ttl 12 8, id 1510 3, desactivado 0 , indicadores [ninguno], protocolo : ICMP ( 1), longitud : 60 ) 19 2. 16 8. 14 6. 22 > 19 2. 16 8. 14 4.5: solicitud de eco ICMP , id 1, secuencia 38 , longitud 40 0x 0000 : 4500 003c 3aff 0000 8001 5c55 c0a8 9216 E..<:.....\U.... 0x 0010 : c0a8 9005 0800 4d35 0001 0026 6162 6364 ......M5...&abcd 0x 0020 : 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst 0x 0030 : 7576 7761 6263 6465 6667 6869  uvwabcdefghi                                                                

La carga útil puede incluir una marca de tiempo que indique la hora de transmisión y un número de secuencia, que no se encuentran en este ejemplo. Esto permite que ping calcule el tiempo de ida y vuelta de manera apátrida sin necesidad de registrar la hora de transmisión de cada paquete.

La carga útil también puede incluir un paquete mágico para el protocolo Wake-on-LAN , pero la carga útil mínima, en ese caso, es más larga que la que se muestra. La solicitud de eco normalmente no recibe ninguna respuesta si el host estaba en estado de hibernación, pero el host aún se despierta del estado de suspensión si su interfaz está configurada para aceptar solicitudes de activación. Si el host ya está activo y configurado para permitir respuestas a los paquetes de solicitud de eco ICMP entrantes , la respuesta devuelta debe incluir la misma carga útil. Esto se puede utilizar para detectar que el host remoto se despertó efectivamente, repitiendo una nueva solicitud después de un retraso para permitir que el host reanude sus servicios de red. Si el host estaba simplemente en estado de hibernación en estado activo de bajo consumo, una sola solicitud despierta ese host lo suficiente para permitir que su servicio de respuesta de eco responda instantáneamente si ese servicio estaba habilitado. El host no necesita despertar todos los dispositivos por completo y puede volver al modo de bajo consumo después de un breve retraso. Dicha configuración se puede utilizar para evitar que un host entre en estado de hibernación, con un retraso de activación mucho más largo, después de que haya pasado algún tiempo en el modo activo de bajo consumo. [ cita requerida ]

Un paquete que incluye encabezados IP e ICMP no debe ser mayor que la unidad máxima de transmisión de la red, ya que corre el riesgo de fragmentarse .

Lagunas de seguridad

Para llevar a cabo un ataque de denegación de servicio , un atacante puede enviar solicitudes de ping lo más rápido posible, posiblemente abrumando a la víctima con solicitudes de eco ICMP. Esta técnica se denomina inundación de ping . [11]

Las solicitudes de ping a múltiples direcciones, o barridos de ping , se pueden utilizar para obtener una lista de todos los hosts de una red.

Véase también

Referencias

  1. ^ abcd Mike Muuss . "La historia del programa PING". Laboratorio de investigación del ejército de EE. UU. Archivado desde el original el 25 de octubre de 2019 . Consultado el 8 de septiembre de 2010 . Mi impulso original para escribir PING para 4.2a BSD UNIX surgió de un comentario casual en julio de 1983 del Dr. Dave Mills ... Lo llamé así por el sonido que hace un sonar, inspirado por todo el principio de ecolocalización ... Desde mi punto de vista, PING no es un acrónimo que significa Packet InterNet Grouper, es una analogía de sonar. Sin embargo, he escuchado de segunda mano que Dave Mills ofreció esta expansión del nombre, así que tal vez ambos tengamos razón.
  2. ^ Salus, Peter (1994). Un cuarto de siglo de UNIX . Addison-Wesley . ISBN 978-0-201-54777-1.
  3. ^ Mills, DL (diciembre de 1983). Internet Delay Experiments. IETF . doi : 10.17487/RFC0889 . RFC 889. Consultado el 26 de noviembre de 2019 .
  4. ^ "página del manual ping sección 8". www.manpagez.com .
  5. ^ "Paquete FreeDOS de ibiblio.org -- ping (redes)". www.ibiblio.org .
  6. ^ "GitHub - reactos/reactos: Un sistema operativo gratuito compatible con Windows". 8 de agosto de 2019 – vía GitHub.
  7. ^ R. Braden , ed. (octubre de 1989). Requisitos para hosts de Internet: capas de comunicación. Grupo de trabajo de redes. doi : 10.17487/RFC1122 . STD 3. RFC 1122. Estándar de Internet 3. Actualizado por RFC 1349, 4379, 5884, 6093, 6298, 6633, 6864, 8029 y 9293. Cada host DEBE implementar una función de servidor de eco ICMP que reciba solicitudes de eco y envíe respuestas de eco correspondientes.
  8. ^ "ICMP: Protocolo de mensajes de control de Internet". repo.hackerzvoice.net . 13 de enero de 2000. Archivado desde el original el 4 de agosto de 2016 . Consultado el 4 de diciembre de 2014 .
  9. ^ "Página del RFC Sourcebook sobre ICMP". Archivado desde el original el 6 de julio de 2018. Consultado el 20 de diciembre de 2010 .
  10. ^ A. Conta; S. Deering (marzo de 2006). M. Gupta (ed.). Protocolo de mensajes de control de Internet (ICMPv6) para la especificación del protocolo de Internet versión 6 (IPv6). Grupo de trabajo de redes. doi : 10.17487/RFC4443 . STD 89. RFC 4443. Estándar de Internet 89. Obsoleto RFC 2463. Actualiza RFC 2780. Actualizado por RFC 4884.
  11. ^ "¿Qué es una inundación de ping? | Inundación de ICMP | Glosario de ataques DDoS | Imperva". Centro de aprendizaje . Consultado el 26 de julio de 2021 .

Lectura adicional

Obtenido de "https://es.wikipedia.org/w/index.php?title=Ping_(utilidad_de_redes)&oldid=1256583671#ECHO-REPLY"