Я наблюдаю странное поведение встроенной команды ping, которое я не понимаю. (это в окне Windows 2012 R2 - я не проверял, наблюдается ли такое поведение в других версиях Windows)
Если я устанавливаю тайм-аут (в мс) на значение, например 120, я постоянно вижу прерывистые тайм-ауты при пинге удаленного хоста (примерно в 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
это нормально, ИСКЛЮЧАЯ, если я оставлю значение тайм-аута ping по умолчанию (которое, я считаю, составляет 5000 мс), я не вижу никаких тайм-аутов И никогда не вижу время, превышающее 30 мс.
Фактически, я могу запустить 2 экземпляра 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 может быть получен, даже если время ожидания истекло в миллисекундах».
Я могу только сделать вывод, основываясь на моем тестировании и приведенном выше заявлении, что значение тайм-аута в Ping просто не очень точное, и при установке на 120 мс вы просто получите непредсказуемые результаты.