Ping es una utilidad de software de administración de red que se utiliza para probar la accesibilidad de un host en una red de protocolo de Internet (IP) . Está disponible en una amplia gama de sistemas operativos .
El ping mide el tiempo de ida y vuelta de los mensajes enviados desde el host de origen a un ordenador de destino, que luego son devueltos al origen. El nombre proviene de la terminología del sonar activo , que emite un pulso de sonido y escucha el eco para detectar objetos bajo el agua. [ 1 ]
El protocolo Ping funciona mediante paquetes del Protocolo de Mensajes de Control de Internet (ICMP). El proceso consiste en enviar una solicitud de eco ICMP al host de destino y esperar 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 los tiempos mínimo, máximo y medio de ida y vuelta, así como la desviación estándar de la media.
Las opciones de línea de comandos y la salida del terminal varían según la implementación. Las opciones pueden incluir el tamaño de la carga útil, el número de pruebas, los límites para el número 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 de protocolo de Internet versión 6 (IPv6), que utiliza ICMPv6 .
Historia

La utilidad ping fue escrita por Mike Muuss en diciembre de 1983 durante su empleo en el Laboratorio de Investigación Balística , ahora 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 la nombró en honor al sonido que hace el sonar , ya que su metodología es análoga a la ecolocalización del sonar. [ 1 ] [ 2 ] El acrónimo inverso Packet Internet Groper para ping se ha utilizado durante más de 30 años. Muuss dice que, desde su punto de vista, ping no fue concebido como un acrónimo, pero ha reconocido la expansión del nombre por parte de Mills. [ 1 ] [ 3 ] La primera versión publicada 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 las solicitudes de eco ICMP y emitir respuestas de eco a cambio. [ 7 ]
Ejemplo de invocación
A continuación se muestra el resultado de ejecutar ping en Linux para enviar cinco sondeos (intervalo de 1 segundo por defecto, configurable mediante la opción -i) al host de destino www.example.com :
$ ping -c 5 www.example.comPING www.example.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 tiempo de ida y vuelta mín./prom./máx./desv. estándar = 9.674/10.968/11.726/0.748 msLa salida muestra cada mensaje de sondeo y los resultados obtenidos. Finalmente, presenta 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 de 10,968 ms y el valor máximo de 11,726 ms. La medición tuvo una desviación estándar de 0,748 ms.
Indicaciones de error
En caso de que el host de destino no responda, la mayoría de las implementaciones no muestran nada o imprimen periódicamente notificaciones sobre el tiempo de espera agotado. Los posibles resultados de ping que indican un problema incluyen los siguientes:
- H, !N o !P – host, red o protocolo inalcanzable
- S – Falló la ruta de origen
- F – fragmentación necesaria
- U o !W – red/host de destino desconocido
- Yo – el host de origen está aislado
- A – Prohibida administrativamente la comunicación con la red de destino.
- Z – Prohibida administrativamente la comunicación con el anfitrión de destino.
- P : para esta condición de servicio, la red de destino es inaccesible.
- T – para esta condición de servicio, el host de destino es inaccesible.
- X – Comunicación prohibida administrativamente
- V – violación de precedencia del host
- C – Se aplica el límite de precedencia
En caso de error, el host de destino o un enrutador intermedio devuelve 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 quench), para que la utilidad ping pueda relacionar las respuestas con las consultas de origen. [ 8 ]
Formato del mensaje
Paquete ICMP transportado con IPv4
Un paquete ICMP transportado con IPv4 tiene este aspecto.
- Tipo : 8 bits
- Establecer en 8 para indicar 'Solicitud de eco'. [ 9 ]
- Suma de verificación : 16 bits
- La suma de verificación es el complemento a uno de 16 bits de la suma del complemento a uno del paquete ICMP, comenzando con el campo Tipo , [ 10 ] incluyendo la Carga útil . El encabezado IP no está incluido.
- Identificador : 16 bits
- El cliente puede utilizarlo para relacionar la respuesta con la solicitud que la originó.
- Número de secuencia : 16 bits
- El cliente puede utilizarlo para relacionar la respuesta con la solicitud que la originó.
- Carga útil : longitud variable
- Opcional. Carga útil para los diferentes tipos de respuestas; puede tener una longitud arbitraria, 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 reinicia al arrancar el sistema.
La respuesta de eco se devuelve como:
- Tipo : 8 bits
- Establecer en 0 para indicar 'Respuesta de eco'. [ 9 ]
- 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 : longitud 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 tiene este aspecto.
- Tipo : 8 bits
- Establézcalo en 128 para indicar 'Solicitud de eco'.
- Identificador : 16 bits
- El cliente puede utilizarlo para relacionar la respuesta con la solicitud que la originó.
- Número de secuencia : 16 bits
- El cliente puede utilizarlo para relacionar la respuesta con la solicitud que la originó.
- Suma de verificación : 16 bits
- La suma de verificación se calcula a partir del mensaje ICMP (que comienza con el campo Tipo ), antepuesto a una pseudo-encabezado IPv6 . [ 11 ]
- Carga útil : longitud variable
- Opcional. Carga útil para los diferentes tipos de respuestas; puede tener una longitud arbitraria, 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 reinicia al arrancar el sistema.
La respuesta de eco se devuelve como:
- Tipo : 8 bits
- Establézcalo 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 : longitud variable
- Opcional. La carga útil se copia de la solicitud de eco y se devuelve.
Carga útil
La carga útil del paquete generalmente está llena de caracteres ASCII , como 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, o off set 0, flags [ ninguno], proto: ICMP (1), longitud: 60 ) 19 2. 16 8. 14 6. 22 > 19 2. 16 8. 14 4.5: Solicitud de eco ICMP , id 1, seq 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 uvwabcdefghiLa carga útil puede incluir una marca de tiempo que indica la hora de transmisión y un número de secuencia, elementos que no se encuentran en este ejemplo. Esto permite que ping calcule el tiempo de ida y vuelta de forma independiente del estado , 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 mostrada. 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 ICMP Echo Request entrantes , la respuesta devuelta debería incluir la misma carga útil. Esto puede usarse para detectar que el host remoto se despertó efectivamente repitiendo una nueva solicitud después de un cierto retraso para permitir que el host reanude sus servicios de red. Si el host solo estaba en un estado activo de bajo consumo, una sola solicitud lo despierta lo suficiente como para permitir que su servicio Echo Reply responda instantáneamente si dicho 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 puede usarse para evitar que un host entre en estado de hibernación, con un retraso de activación mucho mayor, después de que haya transcurrido algún tiempo en el modo activo de bajo consumo.
Un paquete que incluya encabezados IP e ICMP no debe ser mayor que la unidad de transmisión máxima de la red, o 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 saturando a la víctima con solicitudes de eco ICMP. Esta técnica se denomina inundación de ping . [ 12 ]
Las solicitudes de ping a múltiples direcciones, o barridos de ping , pueden utilizarse para obtener una lista de todos los hosts de una red.
Véase también
Referencias
- 1 2 3 4 Mike Muuss . "La historia del programa PING" . Laboratorio de Investigación del Ejército de los EE. UU. Archivado del original el 25 de octubre de 2019. Recuperado el 8 de septiembre de 2010.
Mi impulso original para escribir PING para 4.2a BSD UNIX provino de un comentario casual en julio de 1983 del Dr. Dave Mills ... Lo nombré 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 signifique Packet InterNet Grouper, es una analogía del sonar. Sin embargo, he oído de segunda mano que Dave Mills ofreció esta expansión del nombre, así que tal vez ambos tengamos razón.
- ↑ Salus, Peter (1994). Un cuarto de siglo de UNIX . Addison-Wesley . ISBN 978-0-201-54777-1.
- ↑ Mills, DL (diciembre de 1983). Experimentos de retardo en Internet . IETF . doi : 10.17487/RFC0889 . RFC 889. Consultado el 26 de noviembre de 2019 .
- ↑ "página de manual ping sección 8" . www.manpagez.com .
- ↑ "ibiblio.org Paquete FreeDOS -- ping (Redes)" . www.ibiblio.org .
- ↑ "GitHub - reactos/reactos: Un sistema operativo gratuito compatible con Windows" . 8 de agosto de 2019 – vía GitHub.
- ↑ 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
. - ↑ "ICMP: Protocolo de mensajes de control de Internet" . repo.hackerzvoice.net . 13 de enero de 2000. Archivado del original el 4 de agosto de 2016. Consultado el 4 de diciembre de 2014 .
- 1 2 J. Postel (septiembre de 1981). PROTOCOLO DE MENSAJES DE CONTROL DE INTERNET - ESPECIFICACIÓN DEL PROTOCOLO DE PROGRAMA DE INTERNET DE DARPA . Grupo de Trabajo de Redes. doi : 10.17487/RFC0792 . STD 5. RFC 792 .Estándar de Internet 5. Actualiza RFC 760 , 777 , IEN 109, 128. Actualizado por RFC 950 , 4884 , 6633 y 6918 .
- ↑ "Página del RFC Sourcebook sobre ICMP" . Archivado del original el 6 de julio de 2018. Consultado el 20 de diciembre de 2010 .
- ↑ 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. Deja obsoleto el RFC 2463. Actualiza el RFC 2780. Actualizado por el RFC 4884 .
- ↑ "¿Qué es un Ping Flood | ICMP Flood | Glosario de ataques DDoS | Imperva?" . Centro de aprendizaje . Consultado el 26 de julio de 2021 .
Lecturas adicionales
- Dyson, Peter (1995). Dominando OS/2 Warp . Sybex . ISBN 978-0782116632.
- John Paul Mueller (2007). Administración de Windows mediante la línea de comandos para Windows Vista, Windows 2003, Windows XP y Windows 2000. John Wiley & Sons . ISBN 978-0470165799.
- McElhearn, Kirk (2006). La línea de comandos de Mac OS X: Unix bajo el capó . John Wiley & Sons . ISBN 978-0470113851.
Enlaces externos
- – Manual de referencia de Solaris 11.4
- – Manual del administrador del sistema FreeBSD
- – Manual del programador de Linux – Administración y comandos privilegiados de Manned.org
- Ping en Microsoft Docs
- Comandos de Windows
- Software gratuito de gestión de redes
- Software de red basado en el protocolo de Internet
- analizadores de red
- Comandos de OS/2
- Software relacionado con redes Unix
- Administración de Windows
- Comunicación y servicios de Windows