ICMPとは「Internet Control Message Protocol」の略で、インターネット プロトコル(IP)による通信で発生したエラーの通知や、通信相手の動作確認、通信制御用メッセージのやり取りに使用されるプロトコルです。インターネット技術の標準化推進団体であるIETFが、IPv4用のICMPを「RFC 792」、IPv6用のICMPを「RFC 4443」として定義しています。
ICMPはTCPやUDPと同様に、IPの上位レイヤに位置するプロトコルですが、実際にはIPの拡張として扱われます。ICMPで行える通知には、エコー応答、宛先不達、ソース クエンチ(送信元抑制)、リダイレクト要求、エコー要求等が定義されています。これらのうちエコー要求とエコー応答は、通信相手のTCP/IPプロトコル スタックが稼動状態にあることを確認するためのもので、pingコマンドで利用されています。
なおICMPエコー要求は「ICMPフラッド」というDoS/DDoS攻撃で使用されることがあります。これは、ICMPパケットの送信元IPアドレスを攻撃対象となるサーバのIPアドレスに偽装し、攻撃相手のネットワークのブロードキャスト アドレスに大量に送りつけるという手法です。このICMPエコー要求を受けたホストは、一斉に攻撃対象となるサーバにエコー応答を送るため、ネットワーク内の通信速度が低下し、攻撃対象のサーバにも過剰な負荷がかかります。このような攻撃は「Smurf(送信元を偽るという意味)攻撃」とも呼ばれています。
F5が提供する「F5 BIG-IP」は標準でICMPフラッド対策が施されており、設定を変更することなくこの攻撃を防止できます。