¿Cuál es la diferencia entre ping -w y ping -W?

15

¿Para qué sirve la -wbandera (fecha límite) ping? No puedo encontrar una descripción en la pingpágina del manual; solo para -W, que toma segundos como parámetro. ¿Cuál es la diferencia entre ellos y cómo puedo establecer un tiempo de espera de ping (si el host no responde) a 200 ms?

Rafael T
fuente
1
¿En qué sistema operativo, y si Linux, distribución y en qué paquete es el pingejecutable? Hay varias versiones diferentes de ping alrededor, con diferentes opciones.
Gilles 'SO- deja de ser malvado'

Respuestas:

20

De man ping:

   -w deadline
          Specify a timeout, in seconds, before ping exits regardless of how many packets have been sent or received. In this case ping does not stop after count packet are sent, it waits either for deadline expire or until count probes are answered or for some error
          notification from network.

   -W timeout
          Time to wait for a response, in seconds. The option affects only timeout in absense of any responses, otherwise ping waits for two RTTs.

Es decir, -westablece el tiempo de espera para toda la sesión del programa . Si configura -w 30, ping(el programa) saldrá después de 30 segundos.

-WPor otro lado, establece el tiempo de espera para un solo ping . Si lo configura -W 1, ese intento de ping en particular expirará.

En cuanto a cómo establecer un tiempo de espera de ping individual de 200 ms, no creo que esto se pueda hacer con iputils'versión de ping. Es posible que desee probar directamente la programación con una biblioteca ICMP.

Chris Down
fuente
2
oh, mi página de manual (archlinux) no tiene la -wbandera, pero tiene la descripción. Simplemente creí que pertenecía a -W. Entonces, ¿no hay forma de definir un tiempo de espera menor que 1s?
Rafael T
@RafaelT No que yo sepa.
Chris Down
Para que quede claro: si lo usa -w, -cserá ignorado. Si solo necesita un solo ping, puede usar -c 1 -W 4o lo que sea un tiempo de espera adecuado para usted.
John
1

Mi página de manual (Fedora 18, iputils-20121221-1.fc18) dice

   -w deadline
          Specify  a  timeout, in seconds, before ping exits regardless of
          how many packets have been sent or received. In this  case  ping
          does  not  stop after count packet are sent, it waits either for
          deadline expire or until count probes are answered or  for  some
          error notification from network.

   -W timeout
          Time to wait for a response, in seconds. The option affects only
          timeout in absence of any responses, otherwise  ping  waits  for
          two RTTs.
vonbrand
fuente
1

Todas son buenas respuestas, pero ten cuidado con este capricho si (como yo) estás portando código entre plataformas. El texto a continuación es de la respectiva documentación 'man ping'.

En Mac OS X:

-W waittime

    Tiempo en milisegundos para esperar una respuesta para cada paquete enviado.

En Raspberry Pi:

-W timeout

    Tiempo para esperar una respuesta, en segundos .

Codifiqué en la Mac para esperar 1 segundo (1,000 ms) como -W 1000, pero cuando este código se movió al Pi, ¡esperó hasta 1,000 segundos!

Yutenji
fuente