IPのエラーメッセージや制御メッセージを転送するプロトコル。
TCP/IPで接続されたコンピュータやネットワーク機器間で、互いの状態を確認するために用いられる。ネットワーク診断プログラム 「ping」を使う。
TCP/IPプロトコルにおいて、その機能を補助するために用意された制御用のプロトコル。RFC792で定義されている。 パケットの構造としては、IPヘッダの直後に、ICMPのデータ部が置かれている。
ICMPは、TCP/IPパケットの転送中において発生した各種のエラーの通知や、動作の確認などを行なうために利用される。 TCP/IPの通信中にエラーが発生した場合、エラーが発生した場所(相手先ノードや中継のルータ)から、 パケットの送信元のノードに対して、逆向きに、ICMPによってエラーなどの情報が伝えられる。これにより、 中間のルータやパケット送信元ノードはエラーが発生したことを知り、適切な処理を行なう。

それでは実際にWindowsを使ってpingを使ってみよう。
「スタート」⇒「アクセサリー」⇒「コマンドプロンプト」

「ping yahoo.co.jp」と入力後[enter]するとこのように表示される。
・目的のホストやネットワーク、ポート(サービスを待ち受けているポートの番号)などが見つからないというエラーの通知
・TTLが尽きた(パケットが宛先ノードに着く前にTTLが0になった)というエラーの通知
・エコー検査(pingコマンドで使用している、相手先ノードがアクティブかどうかの検査)