ICMP(Internet Control Message Protocol)プロトコルとはIPのパケット転送で発生したエラーを報告する時に使われるプロトコルになります。IPの一部としてICMPがエラー制御などを担当してるというイメージです。
第3層|ネットワーク層で動作する
ICMPはOSI参照モデルの第3層、ネットワーク層で動作します。
ICMPのメッセージ
ICMPでネットワークの診断に用いられてるメッセージの代表的なものは以下になります。
Type | メッセージ | 解説 |
0 | エコー応答 | エコー要求に対する応答です。 |
3 | 宛先到達不可能 | パケットが届けられない理由です。 |
4 | 送出抑制要求 | 受信能力以上のパケットが送られパケットが破棄されたということを通知します。 |
5 | リダイレクト | 最適な経路選択のため適切なゲートウェイを通知します。 |
8 | エコー要求 | エコー要求を指定ホストに行います。 |
11 | 時間切れ | パケットに設定されている生存時間を超え、破棄されたことを通知します。 |
12 | パラメータ問題 | IPヘッダフィールドの値などに誤りがあった場合にパケットを破棄します。その時発信元に破棄したことを通知するために送信されるのがこのメッセージです。 |
ICMPが使われるコマンド
ping
パケットが届くか確認する、ネットワークの疎通を確認するなどの用途でよく使われますね。
$ ping -c 4 8.8.8.8
これはGoogleのサーバに4回ピングを打つコマンドです。Linux系のOSであれば実行できるのでターミナルで試してみましょう。
traceroute
これはサーバに到達するまでにどのような経路、機器やアドレスを経由しているのかを調査するコマンドです。
$ traceroute -I 8.8.8.8
ここでIオプションをつけていますがまさにこれがICMPを使うという指定になります。このオプションをつけないとUDPで通信されるため結果がマスクされて見えなくなります。
コメントを残す