ICMP(Internet Contro lMessage Protocol)は、IPの通信が正しく動作するようにサポートするプロトコルである。例えばIP自体には、IPパケットが宛先に正しく届いているかを確認したり、その結果を送信元に知らせたりする仕組みがない。そうした仕組みを実現し、IPネットワークで正常に通信できるようにするためのプロトコルがICMPだ。
ICMPにはIPv4版とIPv6版の2種類がある。それぞれICMPv4、ICMPv6などと呼ばれる。IPの通信を支えるという目的は共通しているが、役割は大きく異なる。
IPの通信エラーを通知
ネットワークでトラブルが発生したとき、まず試みるのがpingコマンド。これを実現しているのが実はICMPv4だ。IPネットワークの経路の状況を調べるのに使うtracert(UNIXやLinux、macOSではtraceroute)というコマンドにもICMPv4が使われている(PICT1)。
ICMPv4はこうしたエラー通知や障害に関する情報収集のほか、サイバー攻撃に悪用されるケースがあるので注意が必要だ。例えば細工を施したICMPv4パケットをコンピューターに送り付けて動作不能にする「Ping of Death」という攻撃が知られている。こうした攻撃を防ぐため、ルーターやファイアウオールでICMPパケットを遮断するポリシーを採用する企業が一般的である。