ICMP 利用のコマンド

 ping

ping [-l テストデータバイト数][-i TTL値] 宛先IPアドレス

ホスト間の接続を確認するコマンドです。
これは、ICMP(インターネット制御メッセージプロトコル)の type0のエコー応答と、type8のエコー要求を利用して行われます。
任意の宛先へエコー要求を送りつけ、応答にかかる時間やTTLを表示するコマンドです。
TTLは応答パケット内の値で、これをパケットを送る時にTTLから引くことで、 途中で通過したルータの数が得られます。 これを4回行って、その結果、失ったパケット数や 最小・最大・平均時間を表示します。

Z:\>ping -l 100 219.101.42.114

Pinging 219.101.42.114 with 100 bytes of data:

Reply from 219.101.42.114: bytes=100 time=17ms TTL=116
Reply from 219.101.42.114: bytes=100 time=19ms TTL=116
Reply from 219.101.42.114: bytes=100 time=18ms TTL=116
Reply from 219.101.42.114: bytes=100 time=18ms TTL=116

Ping statistics for 219.101.42.114:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 17ms, Maximum = 19ms, Average = 18ms

Z:\>

パケットがたどり着かない場合の例も示します。

Z:\>ping 192.168.0.10

Pinging 192.168.0.10 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.0.10:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Z:\>

 tracert (Linuxではtracerout)

tracert [-h 最大ホップ数] 宛先IPアドレス

windowsのtracertコマンドは、指定したホストまで経路を表示します。 (宛先に届くまでに経由するルータを調べるコマンドです。)
これは、ICMPのtype11の時間超過を利用しています。
パケット内のTTL(Time To Live)は、ルータを経由するごとに1を引いた値にして、 この値が0になった段階にそのパケットを破棄し、 パケット送信元へtype11の時間超過パケットとして送り返す規則でした。 この時の送り返す時間超過のICMPには、 送信ルータのIPアドレスが送信元アドレスとして記憶されます。
 よってTTLを1にした要求信号送信で、最初のルータが時間超過パケットを返します。
次にTTLを2にした要求信号送信で、次のルータが時間超過パケットを返します。
このように、TTLを1ずつ増やして送信すれば、それで辿り付くルータまでの時間超過パケットが 得られて、それより経路が分かるという仕組みです。以下で例を示します。

Z:\>tracert 219.101.42.114

Tracing route to dns1.sundaidenshi.ac.jp [219.101.42.114]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.0.1
  2    16 ms    16 ms    19 ms  r002.tkyoac00.ap.so-net.ne.jp [219.98.208.1]
  3    16 ms    15 ms    15 ms  61.211.9.177
  4    15 ms    15 ms    15 ms  note-19Gi2-3.net.so-net.ne.jp [61.211.9.137]
  5    15 ms    15 ms    15 ms  note-gw8Vl54.net.so-net.ne.jp [211.10.63.113]
  6    15 ms    23 ms    15 ms  202.213.197.46
  7    17 ms    15 ms    15 ms  211.9.55.141
  8    16 ms    15 ms    15 ms  202.94.142.173
  9    16 ms    15 ms    15 ms  211.9.32.98
 10    15 ms    15 ms    15 ms  202.94.141.94
 11    16 ms    15 ms    15 ms  202.94.141.142
 12    18 ms    18 ms    20 ms  219.101.42.113
 13    20 ms    18 ms    16 ms  dns1.sundaidenshi.ac.jp [219.101.42.114]

Trace complete.


Z:\>

3つの時間が表示されますが、3回のEcho要求に対する時間です。 これより、どの部分が遅くなる要因になっているかという ネットワークの状態も判断できます。

なお、これらで得られる情報は、クラッカーのアタックにも役に立ち、 悪用される危険が多いことから、 Time Exceeded(時間超過)を返さない設定にしてあるルータや、 ICMPをルーティングしない設定にしてあるルータも多い状況になっています。

 pathping

使い方:
pathping 宛先IPアドレス

tracerouteとpingを組み合わせたようなコマンドで、Windows2000以降のウインドウ(XPなど)でのみ 使えるコマンドです。
宛て先までの経路とパケット損失の統計情報などが表示されます。 実行例を示します。

Z:\>pathping  30 219.101.42.114

Tracing route to dns1.sundaidenshi.ac.jp [219.101.42.114]
over a maximum of 30 hops:
  0  vista [192.168.0.33]
  1  192.168.0.1
  2  r002.tkyoac00.ap.so-net.ne.jp [219.98.208.1]
  3  61.211.9.177
  4  note-19Gi2-3.net.so-net.ne.jp [61.211.9.137]
  5  note-gw7Vl52.net.so-net.ne.jp [211.10.63.33]
  6  202.213.197.38
  7  211.9.55.141
  8  202.94.142.173
  9  211.9.33.58
 10  202.94.141.98
 11  202.94.141.158
 12  219.101.42.113
 13     *        *        *
Computing statistics for 325 seconds...
            Source to Here   This Node/Link
Hop  RTT    Lost/Sent = Pct  Lost/Sent = Pct  Address
  0                                           vista [192.168.0.33]
                                0/ 100 =  0%   |
  1    0ms     0/ 100 =  0%     0/ 100 =  0%  192.168.0.1
                                0/ 100 =  0%   |
  2   17ms     0/ 100 =  0%     0/ 100 =  0%  r002.tkyoac00.ap.so-net.ne.jp [219.98.208.1]
                                0/ 100 =  0%   |
  3   15ms     0/ 100 =  0%     0/ 100 =  0%  61.211.9.177
                                0/ 100 =  0%   |
  4   16ms     0/ 100 =  0%     0/ 100 =  0%  note-19Gi2-3.net.so-net.ne.jp [61.211.9.137]
                                0/ 100 =  0%   |
  5   20ms     0/ 100 =  0%     0/ 100 =  0%  note-gw7Vl52.net.so-net.ne.jp [211.10.63.33]
                                0/ 100 =  0%   |
  6   28ms     0/ 100 =  0%     0/ 100 =  0%  202.213.197.38
                                0/ 100 =  0%   |
  7   19ms     0/ 100 =  0%     0/ 100 =  0%  211.9.55.141
                                0/ 100 =  0%   |
  8   16ms     0/ 100 =  0%     0/ 100 =  0%  202.94.142.173
                                0/ 100 =  0%   |
  9   25ms     0/ 100 =  0%     0/ 100 =  0%  211.9.33.58
                                0/ 100 =  0%   |
 10   16ms     0/ 100 =  0%     0/ 100 =  0%  202.94.141.98
                                0/ 100 =  0%   |
 11   17ms     0/ 100 =  0%     0/ 100 =  0%  202.94.141.158
                                0/ 100 =  0%   |
 12   17ms     0/ 100 =  0%     0/ 100 =  0%  219.101.42.113
                              100/ 100 =100%   |
 13  ---     100/ 100 =100%     0/ 100 =  0%  vista [0.0.0.0]

Trace complete.

Z:\>

各ルータに対してpingを行うような仕組みより、 途中のルータ間での情報が表示できます。