ping -w 和 ping -W 有什么区别?

ping -w 和 ping -W 有什么区别?

-w(截止日期)标志有什么ping用?我在手册页中找不到它的描述ping;仅适用于-W,它需要秒作为参数。它们之间有什么区别,如何将 ping 超时(如果主机没有响应)设置为 200 毫秒?

答案1

man ping

-w 截止日期
指定 ping 退出之前的超时(以秒为单位),无论已发送或接收了多少数据包。在这种情况下,发送计数数据包后 ping 不会停止,它会等待截止时间到期或直到计数探测得到应答或等待来自网络的某些错误通知。

-W 超时
等待响应的时间(以秒为单位)。该选项仅影响没有任何响应的超时,否则 ping 会等待两个 RTT。

也就是-w设置超时时间整个节目会话。如果设置-w 30ping(程序)将在 30 秒后退出。

-W另一方面设置超时单次ping。如果您设置-W 1,则该特定 ping 尝试将超时。

至于如何设置单个 ping 超时为 200ms,我不相信这可以用iputils' 版本来完成ping。您可能想尝试直接使用 ICMP 库进行编程。

答案2

所有好的答案,但是如果(像我一样)您在平台之间移植代码,请注意这个怪癖。下面的文本来自相应的“man ping”文档。

在 Mac OS X 上:

-W waittime

    时间在毫秒等待发送的每个数据包的回复。

在树莓派上:

-W timeout

    等待响应的时间,在

我在 Mac 上编码为等待 1 秒(1,000 毫秒)-W 1000,但是当此代码移动到 Pi 时,它等待了长达 1,000 秒!

答案3

我的联机帮助页(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.

答案4

还有一个-em选项可以在特定的时间段内推送每个数据包,例如:

ping -i 5 <target>

相关内容