В чем разница между ping -w и ping -W?

15

Для чего -wустановлен флаг (крайний срок) ping? Я не могу найти описание этого на pingстранице руководства ; только для -W, который занимает секунды в качестве параметра. В чем разница между ними, и как я могу установить время ожидания пинга (если хост не отвечает) до 200 мс?

Рафаэль Т
источник
1
В какой операционной системе и в каком дистрибутиве Linux и в каком пакете находится pingисполняемый файл? Есть несколько разных версий ping вокруг, с разными опциями.
Жиль "ТАК ... перестать быть злым"

Ответы:

20

От 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.

То есть -wустанавливает тайм-аут на весь сеанс программы . Если вы установите -w 30, ping(программа) выйдет через 30 секунд.

-Wс другой стороны устанавливает время ожидания для одного пинга . Если вы установите -W 1, эта конкретная попытка проверки связи истечет время ожидания.

Что касается того, как установить индивидуальный таймаут пинга в 200 мс, я не верю, что это можно сделать с помощью iputils«версии» ping. Возможно, вы захотите попробовать напрямую программировать с помощью библиотеки ICMP.

Крис Даун
источник
2
о, на моей странице руководства (archlinux) отсутствует -wфлаг, но есть описание. Я просто верил, что это принадлежит -W. Так нет способа определить тайм-аут меньше, чем 1 с?
Рафаэль Т
@RafaelT Не настолько, насколько я знаю.
Крис Даун
Чтобы было понятно: если вы используете -w, -cбудут игнорироваться. Если вам нужен только один пинг, вы можете использовать -c 1 -W 4любой подходящий для вас тайм-аут.
Джон
1

Моя страница руководства (Fedora 18, iputils-20121221-1.fc18) говорит

   -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
источник
1

Все хорошие ответы, но следите за этой причудой, если (как и я) вы переносите код между платформами. Текст ниже взят из соответствующей документации «man ping».

В Mac OS X:

-W waittime

    Время в миллисекундах для ожидания ответа на каждый отправленный пакет.

На Raspberry Pi:

-W timeout

    Время ожидания ответа в секундах .

Я запрограммировал на Mac ждать 1 секунду (1000 мс) -W 1000, но когда этот код переместился на Pi, он ждал до 1000 секунд!

Yutenji
источник