59363


pingのオプションについて

[code]

    ping
    Usage: ping [-aAbBdDfhLnOqrRUvV64] [-c count] [-i interval] [-I interface]
                [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
                [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
                [-w deadline] [-W timeout] [hop1 ...] destination
    
[/code]

上記から `-W timeout` のオプションをつけることでpingのタイムアウトの時間を変更できると考えています。

[code]

    ping -c 1 -W 10 IPアドレス
    
[/code]

上記でpingが通る場合は以下の結果がすぐ戻ってくるので良いのですが、

[code]

    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    
[/code]

pingが通らない場合、以下の結果が10秒後に戻ってくる認識だったのですが、2秒～3秒で以下の結果が戻ってきます。  
Wコマンドはタイムアウトの値ではないのでしょうか？（使用方法が異なりますか？）

[code]

    1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
    
[/code]

また `-W` のオプションを10→3とすると、結果が異なるのですが、何か理由があるのでしょうか？

**`-W 10` の場合**

[code]

    1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
    
[/code]

**`-W 3` の場合**

[code]

    1 packets transmitted, 0 received, 100% packet loss, time 0ms
    
[/code]

■追記  
wakuwakuさまのコメントを受け以下を試してみました。  
●成功

[code]

    date;/bin/ping -c 1 -W 60 192.168.xxx.xxx;date★適当なIPアドレス
    2019年  9月 30日 月曜日 16:16:44 JST
    PING 192.168.xxx.xxx (192.168.xxx.xxx) 56(84) bytes of data.
    
    --- 192.168.xxx.xxx ping statistics ---
    1 packets transmitted, 0 received, 100% packet loss, time 0ms
    
    2019年  9月 30日 月曜日 16:17:44 JST★60秒後にタイムアウトしている
    
[/code]

●失敗

[code]

    date;/bin/ping -c 1 -W 60 172.16.yyy.yyy ;date★実際に存在する機器のケーブルを抜いた
    2019年  9月 30日 月曜日 16:17:53 JST
    PING 172.16.yyy.yyy (172.16.yyy.yyy) 56(84) bytes of data.
    From 172.16.zzz.zzz icmp_seq=1 Destination Host Unreachable★前者には出ていなかったログ
    
    --- 172.16.zzz.zzz ping statistics ---
    1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
    
    2019年  9月 30日 月曜日 16:17:56 JST★3秒後にタイムアウトとなっている
    
[/code]


CC BY-SA 4.0
2019-09-30T06:20:09.247
59352
2019-09-30T12:56:04.557
2019-09-30T07:13:30.813
12842
12842
question
linux network
pingのタイムアウトオプション


pingの送信先が同一セグメントにある場合、送信元マシンでarpリクエストのタイムアウトが先に検出されるため、送信エラーになる可能性があります。(※3秒だとこの可能性が高いと予想します)

＃この場合、ICMP ECHO Requestパケットは送出されないはずです。

また、pingの送信先が異なるセグメントにある場合でも、NW装置が「Destination Host
Unreachable」等のICMPエラーを返してきても、pingの応答タイムアウト前にエラー判定されると思います。

詳しく調べるのであれば、パケットキャプチャして、ICMP ECHO Requestが創出されているか、エラーが返ってきてないか調べるのがよいと思います。


CC BY-SA 4.0
2019-09-30T11:26:22.103
59363
2019-09-30T12:56:04.557
2019-09-30T12:56:04.557
20098
20098
59352
answer