ping(8) FreeBSD 一般コマンドマニュアル

ping

前のページ 上に戻る 次のページ

ping


          [-p pattern] [-s packetsize] [-S src_addr] [-t timeout] [host | [-L]
          [-I interface] [-T ttl] mcast-group]


解説

     ping は、 ICMP の ECHO_REQUEST データグラムを用いて、指定したホストやゲー
     トウェイからの ICMP ECHO_RESPONSE を引き出します。 ECHO_REQUEST データグ
     ラム ( (``ping'') ) には IP および ICMP ヘッダ、 ``struct timeval'' 、パ
     ケットの残りを埋める適当な数の ``pad'' バイトが順にあります。オプションは
     以下の通りです:

     -a      聴覚モード。パケットを受け取った時に、出力にベル (ASCII 0x07) 文
             字を含みます。このオプションは、別形式のオプションがある場合は無
             視されます。

     -c count
             ECHO_RESPONSE パケットを count 回送出 (そして受信) してから終了し
             ます。本オプションが指定されない場合、 ping は割り込まれるまで動
             作を継続します。

     -d      使用する socket に SO_DEBUG オプションを設定します。

     -f      ECHO_REQUEST ping を垂れ流します。パケットが返って来るとすぐ、も
             しくは 100 分の 1 秒に 1 回のいずれか多い回数だけパケットを出力し
             ます。 ECHO_REQUEST パケットを送るたびに ``.'' が表示され、
             ECHO_REPLY パケットを受信するたびにバックスペースが表示されます。
             これによりどれだけのパケットが欠落したのかをすばやく表示すること
             ができます。スーパユーザのみ使用可能です このオプションはネットワ
             ークに非常に負荷をかけるので、注意して使用する必要があります。

     -i wait
             wait で指定した秒数だけパケットの送出間隔を空けます。デフォルトで
             は送出間隔は 1 秒です。より小さい値を指定できますが、 1 より小さ
             い値を指定できるのはスーパユーザだけです。このオプションは -f オ
             プションとは同時に指定できません。

     -I interface
             与えられたインタフェースアドレスに対して、マルチキャストパケット
             を送ります。このフラグは、 ping の宛先アドレスがマルチキャストア
             ドレスの場合だけに適用できます。

     -l preload
             指定した preload 値だけ ECHO_REQUEST パケットを出来るだけ速く送信
             し、通常の動作に戻ります。スーパユーザのみがこのオプションを使用
             できます。

     -m ttl  出力パケットの IP Time To Live を設定します。指定しないと、カーネ
             ルは net.inet.ip.ttl MIB 変数の値を使用します。

     -L      マルチキャストパケットのループバックを抑制します。このフラグは、
             宛先アドレスがマルチキャストアドレスの場合だけ適用できます。

     -n      数値のみ出力します。ホストアドレスに対する名前を調べるようなこと
             -v オプションがそのようなエラーを表示するために必要でしたが、 -v
             オプションは全ての ICMP エラーメッセージを表示します。忙しい機械
             上では、この出力は更に負荷になるでしょう。 -Q オプションを指定し
             ないと、 ping は、自己の ECHO_REQUEST メッセージに起因する ICMP
             エラーメッセージを表示します。

     -q      出力を抑制します。開始時と終了時の要約行しか表示しません。

     -R      指定ホストまでの到達経路を記録します。 ECHO_REQUEST パケット中に
             RECORD_ROUTE オプションをつけ、返送パケット上の経路バッファを表示
             します。IP ヘッダには経路を 9 個収める大きさしかないことに注意し
             てください; 特定の宛先に対してパケットを経路づけるには、通常
             traceroute(8) コマンドを使う方が良いでしょう。不正に偽ったパケッ
             トによるなどしてしかるべき経路数よりも大くの経路が帰って来た場
             合、 ping は経路リストを表示し、正しい位置にまで縮めます。多くの
             ホストは RECORD_ROUTE オプションを無視するか捨てます。

     -r      通常のルーティングテーブルを無視し、直接接続されているネットワー
             ク上のホストに対して送信します。指定接続されたネットワーク上にホ
             ストが存在しない場合には、エラーが返されます。このオプションは経
             路情報を持たないインタフェースを経由してローカルホストに ping を
             かけるのに用いられます (たとえばインタフェースが routed(8) によっ
             てドロップされた後) 。

     -s packetsize
             送出するデータのバイト数を指定します。デフォルトでは 56 バイトで
             す。これは ICMP ヘッダデータの 8 バイトと合せて 64 ICMP バイトに
             なります。スーパユーザのみこのオプションを指定できます。

     -S src_addr
             引き続いて指定する IP アドレスを、出力パケットの送信元アドレスと
             して使用します。複数の IP アドレスを持つホストでは、このオプショ
             ンを使用することにより、プローブパケットを送信するインタフェース
             以外の送信アドレスを強制可能です。 IP アドレスがこのマシンのイン
             タフェースアドレスではない場合、エラーが返され、送信は行われませ
             ん。

     -t timeout
             タイムアウトを、秒単位で指定します。タイムアウトすると、受信パ
             ケット数にかかわらず ping が終了します。

     -T ttl  マルチキャストパケットの IP 寿命時間 (Time To Live) を設定しま
             す。このオプションは、宛先アドレスがマルチキャストアドレスの場合
             だけ適用できます。

     -v      冗長出力を有効にします。 ECHO_RESPONSE 以外の受信 ICMP パケットも
             表示されます。

     問題の切り分けのために ping を用いるにはローカルインタフェースが up かつ
     running であることを確認するため、まずローカルホスト上で実行します。その
     後により遠くのホストやゲートウェイに ``ping'' します。経路周回時間 (round
     trip time) と消失パケットの統計が計算されます。重複したパケットが受信され
     バイトです) 。このように受信した IP パケット内の ICMP ECHO_REPLY データ量
     は常に指定されたデータ (ICMP ヘッダ) の大きさよりも 8 バイト大きくなりま
     す。

     データ領域が少なくとも 8 バイトあるとき、 ping は最初の 8 バイトを経路周
     回時間の計算に用いるタイムスタンプを書くために用います。指定された pad の
     大きさが 8 バイトより小さい場合経路周回時間は得られません。


重複パケットと障害パケット

     ping は重複パケットと障害パケットを報告します。重複パケットはユニキャスト
     アドレスに対しては起こるはずのないものですが、リンク層での不適切な再送信
     によって引き起こされるようです。重複は様々な状況で起こる可能性がありま
     す。低いレベルの重複の存在は必ずしも警告にならないかもしれませんが、よい
     兆候ではありません。ブロードキャストもしくはマルチキャストアドレスに ping
     する時には、重複が起こることが期待されます。実際に重複するのではなく、
     異ったホストから同じ要求に対して応答が行われからです。

     障害を受けたパケットは明らかに重大な警告です。多くの場合、 ping パケット
     の経路のどこか(ネットワーク内かホスト内)のハードウェアの故障が考えられま
     す。


異なったデータパターンの試行

     (インター)ネットワーク層はデータ部分に含まれるデータによってパケットの扱
     いを変えません。不幸にもデータ依存性の問題がネットワークに侵入し長い間検
     知されないままとなる可能性が知られています。多くの場合、問題を引き起こす
     特殊なパターンはたとえば全部 1 や全部 0 のようなもの、あるいは右端以外が
     0 であるような十分な ``遷移'' を持たないものです。コマンドラインで(たとえ
     ば) 全部 0 のデータパターンを指定するだけでは不十分かもしれません。なぜな
     ら問題のパターンはデータリンク層にあり、コマンドラインで指定したものとコ
     ントローラが送信するものとの間の関係は複雑だからです。

     このことはデータ依存性が問題となるとき、それを見付けるために多くのテスト
     をしなければならないということを意味します。運がよければ、あるネットワー
     クを通して送れない、あるいは同じような長さのファイルよりもずっと長時間か
     かるファイルを見付けることができるかもしれません。この場合、そのファイル
     を調べ繰り返し現われるパターンを ping-p オプションを使ってテストでき
     ます。


TTL の詳細

     IP パケットの TTL 値はパケットが捨てられずに通過できる IP ルータの最大数
     を表わします。今のところインターネット上の各ルータは TTL フィールドをちょ
     うど 1 だけ減らすと期待できます。

     TCP/IP の仕様では TCP パケットの TTL フィールドを 60 にすべきだとなってい
     ますが、多くのシステムはもっと小さい値を用いています (4.3BSD では 30、
     4.2BSD では 15 を用いています) 。

     このフィールドに許される最大値は 255 です。そして多くの UNIX システムでは
     ICMP ECHO_REQUEST パケットの TTL フィールドを 255 にしています。これが
     (ping) は出来るのに telnet(1)ftp(1) で入れないホストが発生する理由で
     す。

         パケットで用いるのと同じ値を ICMP パケットに使います。また全く異なる
         値を用いるマシンもあるかもしれません。


戻り値

     ping コマンドは、指定した host から少なくとも 1 回の応答を受信した場合、
     終了値 0 を返します; 送出は成功したものの応答を受信できない場合は 2 を返
     します; エラーが発生した場合は、他の値 (<sysexits.h>) が返されます。


関連項目

     netstat(1), ifconfig(8), routed(8), traceroute(8)


歴史

     ping コマンドは 4.3BSD から登場しました。


作者

     オリジナルの ping コマンドは、 Mike Muuss が US Army Ballistics Research
     Laboratory にて記述しました。


バグ

     多くのホストやゲートウェイは、 RECORD_ROUTE オプションを無視します。

     最大IPヘッダ長は、 RECORD_ROUTE オプションを付加するには小さ過ぎます。し
     かしながら、これについては出来ることは多くありません。

     ping を垂れ流しにするのは、一般に勧められません。特にブロードキャストアド
     レスに対して ping の垂れ流しを行なうのは、きちんと条件を整えた場合におい
     てのみにとどめるべきです。

4.3 Berkeley Distribution        March 1, 1997       4.3 Berkeley Distribution

ABELNET VPSサービス