ICMP(Internet Control Message Protocol)プロトコルとは

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で通信されるため結果がマスクされて見えなくなります。


投稿日

カテゴリー:

,

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)