Section: Maintenance Commands (8)
Index Return to Main
Contents
- envía paquetes ICMP ECHO_REQUEST a servidores de red
[-dfnqrvR ] [-c count ] [-i wait ] [-l preload ] [-p pattern ] [-s packetsize ]
utiliza el datagrama obligatorio ICMP del protocolo ECHO_REQUEST para solicitar una ICMP ECHO_RESPONSE por parte de un servidor o una puerta de acceso. Los datagramas ECHO_REQUEST ("pings") tienen una IP y cabecera ICMP, seguidos por un ``struct timeval'' y un número arbitrario de bytes "pad" usados para completar el paquete. Las opciones son las siguientes:
Al usar ping para la detección de errores, debe de probarse primero en el ordenador local, para verificar que el interfaz de red local funciona correctamente. Luego, deben probarse otros ordenadores y puertas de acceso cada vez más lejos. Al hacerlo, se computan tanto el tiempo invertido por los paquetes en su viaje de ida y vuelta como las estadísticas de pérdida de paquetes. Si se reciben paquetes duplicados, no se incluyen en la estadística de pérdida de paquetes, aunque el tiempo invertido en su viaje de ida y vuelta se usa para calcular las cantidades de tiempo de viaje mínimas, medias y máximas. Una vez que se ha enviado (y recibido) la cantidad de paquetes especificada o si el programa se cierra con un SIGNIT, se muestra un pequeño resumen en pantalla.
Si ping no recibe ningún paquete de respuesta en absoluto, se cerrará con un código 1. Si ocurre un error, mostrará el código 2. En cualquier otro caso, el programa terminará con un código 0. Esto hace posible utilizar los códigos de terminación del programa para comprobar si el ordenador al que se dirige el ping da señales de vida o no.
La finalidad de este programa es el de ser utilizado en la comprobación, medición y mantenimiento de redes. Debido a la sobrecarga de la red que supone su uso, no resulta muy adecuado usar ping durante las operaciones normales o en scripts automáticos.
Una cabecera IP sin opciones tiene un tamaño de 20 bytes. Un paquete ICMP ECHO_REQUEST contiene una cantidad adicional de 8 bytes de cabecera ICMP seguida por una cantidad arbitraria de datos. Cuando se especifica un packetsize, éste indica el tamaño de esta porción extra de datos (por defecto es 56). Por lo tanto, la cantidad de datos recibidos dentro de un paquete IP del tipo ICMP ECHO_REPLY será siempre 8 bytes mayor que el espacio de datos requerido (la cabecera ICMP).
Si el espacio de datos tiene un tamaño de al menos 8 bytes, ping usa los primeros 8 bytes de este espacio para incluir un registro de tiempo que utiliza en el cómputo de los tiempos de los viajes de ida y vuelta de los paquetes. Si se especifican menos de 8 bytes, el programa no proporcionará estos tiempos.
informará de los paquetes duplicados y dañados. Nunca debe de aparecer ningún paquete duplicado. Éstos parecen ocurrir por retrasmisiones inapropiadas a nivel de conexión. Los paquetes duplicados pueden aparecer en muchas situaciones y rara vez (por no decir nunca) son buena señal, aunque la aparición de niveles bajos de duplicados no ha de ser siempre una señal de alarma.
Los paquetes dañados constituyen obviamente una causa seria de alarma y normalmente indican que en alguna lugar del camino seguido por el paquete ping (en la red o en los ordenadores) hay hardware dañado.
La red no debería tratar a los paquetes de manera diferente en función de los datos contenidos en la porción de datos. Por desgracia, se sabe que ha habido problemas relaccionados con los datos en algunas redes, que han permanecido ocultos durante largos períodos de tiempo. En muchas ocasiones, el patrón problemático será aquel que no tiene suficientes "transiciones", tales como todo unos o todo ceros. No es necesario especificar un patrón de datos con todo ceros (por ejemplo) en la línea de comandos porque el patrón que interesa está al nivel de la unión de los datos, y la relación entre lo que tú escribes y lo que transmiten los controladores puede ser complicada.
Esto quiere decir que si tienes un problema relacionado con datos probablemente tendrás que hacer muchas pruebas para detectarlo. Si tienes suerte, es posible que consigas encontrar un archivo que, o bien no se puede transmitir por tu red, o que tarda mucho más en enviarse que otros archivos de tamaño similar. En ese caso, puedes examinar este archivo en busca de patrones repetidos que puedes comprobar usando la opción -p de ping.
El valor TTL de un paquete IP representa el número máximo de routers IP que un paquete puede atravesar antes de ser deshechado. En el trabajo diario, lo normal es que cada router en internet reste exactamente uno del campo TTL
La especificación TCP/IP dice que el valor del campo TTL para los paquetes TCP debe ser de 60, pero muchos sistemas usan valores más pequeños (4.3 BSD usa 30, el 4.2 usaba 15).
El valor máximo posible para este campo es de 255, y la mayoría de los sistemas Unix configuran el campo TTL de los paquetes ICMP ECHO_REQUEST para un valor de 255. Por eso notarás que puedes hacer "ping" a algunos ordenadores, aunque no puedas alcanzarlos con telnet(1) o ftp(1).
En una operación normal, ping muestra el valor ttl de los paquetes que recibe. Cuando un sistema remoto recibe un paquete ping, puede hacer cualquiera de estas tres cosas con el campo TTL en su respuesta:
Muchos ordenadores y puertas de acceso ignoran la opción RECORD_ROUTE.
La longitud máxima de la cabecera IP resulta demasiado pequeña para opciones como RECORD_ROUTE puedan resultar completamente útiles. Sin embargo, no hay mucho que se pueda hacer sobre esto.
El ping masivo no se recomienda generalmente y sólo se debería hacer este tipo de ping a una dirección en condiciones muy controladas.
El comando apareció en BSD 4.3
This document was created by man2html, using
the manual pages.
Time: 20:28:08 GMT, January 21, 2005