我尝试通过添加 -w 开关来模拟间歇性 ping 超时,但它似乎忽略了该开关。
我正在 ping 的主机*通常会在 108 毫秒左右回复,因此如果我将 /w 设置为低于该值的任何值,我本以为会看到超时,但无论我将它设置为多少,都不会出现超时。
C:\Windows\System32>ping www.google.com -w 5
Pinging www.google.com [216.58.198.228] with 32 bytes of data:
Reply from 216.58.198.228: bytes=32 time=10ms TTL=54
Reply from 216.58.198.228: bytes=32 time=10ms TTL=54
Reply from 216.58.198.228: bytes=32 time=10ms TTL=54
Reply from 216.58.198.228: bytes=32 time=10ms TTL=54
Ping statistics for 216.58.198.228:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 10ms, Average = 10ms
是我做错了什么,还是误解了情况?还是这个开关根本不起作用?
*在示例中替换为 www.google.com,以避免包含我正在使用的实际 IP 地址和主机名
答案1
这遵循文档状态:
当指定非常小的超时数字时,即使已经过了超时毫秒,仍可以收到 Ping 回复。
经过一些测试,这似乎可以解释您的问题。我测试了 ping example.com,对我来说,回复时间在 70-85 毫秒之间。当将超时设置为 80 毫秒时,有些 ping 会失败,有些则不会。因此,低于 80 毫秒的某个时间开始“非常小”。
答案2
如果我设置非常高的超时时间,例如 300000 毫秒(=5 分钟),这似乎可以按预期工作。但是,如果我设置较低的超时时间,例如 1-100 毫秒,它们似乎会被忽略。