我看到一些奇怪的行为,内置的ping命令,我不明白。 (这是一个Windows 2012 R2的框 – 我还没有validation,如果这种行为是在其他的Windows版本中看到)
如果将超时(以毫秒为单位)设置为120,则在ping远程主机时(大约跳过10跳),我会一直发现间歇超时,
ping -t -w 120 myhost.domain.local Reply from (removed): bytes=32 time=21ms TTL=246 Reply from (removed): bytes=32 time=23ms TTL=246 Request timed out. Reply from (removed): bytes=32 time=25ms TTL=246 Reply from (removed): bytes=32 time=22ms TTL=246
这是好的,除非,如果我离开超时的默认值(这是我相信5000毫秒),我没有看到任何超时,并从来没有看到一个时间报告大于30毫秒。
实际上,我可以同时运行两个ping实例,一个使用-w 120,另一个使用默认超时,而带有-w 120的实例将始终有间歇性超时,而另一个实例则没有,并且两个实例均获胜没有显示任何超过30毫秒的反应。
有没有人有一个解释,为什么看起来ping是比我指定的更短的时间间隔超时?
编辑:
我开始认为-w参数根本不起作用,它当然不会做它应该做的事情。 来自ping命令的描述是:
-w timeout Timeout in milliseconds to wait for each reply.
那么为什么这个超时呢?
C:\Windows\System32>ping -w 10 google.com Pinging google.com [66.58.255.29] with 32 bytes of data: Reply from 66.58.255.29: bytes=32 time=46ms TTL=58
???
每个MS文档
“当超时指定非常小的数字时,即使经过超时毫秒,也可以接收到Ping答复。”
我只能根据我的testing和上面的说法得出结论:Ping中的超时值并不是非常准确,当设置为120ms时,你只会得到不可预知的结果。