対象試験と出題頻度

ICMP(Internet Control Message Protocol)は、基本情報技術者・応用情報技術者で出題されるテーマです。

「pingが使用するプロトコルはどれか」という形式が定番で、SNMPSMTP・DHCPなどの類似略称プロトコルとの区別が問われます。

AP R5秋 午前問33、AP H29春 午前問32、FE H26春 午前問34、FE R5年度 科目A 問8など、複数の試験区分で繰り返し出題されています。

詳細をクリックして確認
対象試験:
基本情報技術者
応用情報技術者
出題頻度:
★★★☆☆
ランクB(標準)覚えておくと有利

用語の定義

情報処理試験を勉強していると、「ICMPって何?SNMPと何が違うの?」と略称の多さに混乱しがちです。

ICMP(Internet Control Message Protocol)とは、一言で言うと

 「IP通信のエラー通知や疎通確認など、ネットワークの制御メッセージをやり取りするためのプロトコル」

のことです。

イメージとしては、「郵便局の『配達不能通知』や『不在通知』のような仕組み」です。

 

手紙(IPパケット)が届かなかったとき、郵便局は差出人に「宛先不明で届けられませんでした」と通知を返します。ICMPは、ネットワーク上でこの「通知係」の役割を果たすプロトコルです。

📊 ICMPの基本情報

項目 内容
正式名称 Internet Control Message Protocol(インターネット制御メッセージプロトコル)
動作する層 OSI参照モデルネットワーク層(第3層)
代表的な用途 ping(疎通確認)、traceroute(経路追跡)
RFC RFC 792

解説

IP(Internet Protocol)はパケットを宛先に届けることに特化した「ベストエフォート型」のプロトコルです。

パケットの到達保証やエラー検知の機能を持っていません。

 

そのため、「パケットが途中で破棄された」「宛先ホストが存在しない」といったトラブルが発生しても、IPだけでは送信元に通知する手段がありません。この弱点を補うために設計されたのがICMPです。

▶ ICMPメッセージの種類と役割(クリックで展開)

ICMPメッセージはタイプ番号で分類されます。試験で押さえるべき主要なものは以下の通りです。

タイプ メッセージ名 役割
0 Echo Reply エコー応答。pingの応答として返される
3 Destination Unreachable 宛先到達不能。宛先ホストやネットワークに到達できなかった場合に通知
8 Echo Request エコー要求。pingコマンドが送信する
11 Time Exceeded TTL超過。tracerouteの仕組みに利用される

pingコマンドはタイプ8(Echo Request)を送信し、相手からタイプ0(Echo Reply)が返ってくれば「疎通あり」と判断します。

tracerouteはTTL(Time To Live)を意図的に1ずつ増やしながらパケットを送り、経由するルータからタイプ11(Time Exceeded)を受け取ることで経路を特定します。

▶ ICMPと混同しやすいプロトコルとの違い(クリックで展開)

ここだけは確実に押さえてください。ICMPは略称が似ているプロトコルが多く、試験ではこれらとの区別がそのまま出題されます。

略称 正式名称 役割
ICMP Internet Control Message Protocol IP通信のエラー通知・疎通確認(ping / traceroute)
SNMP Simple Network Management Protocol ネットワーク機器の監視・管理(MIBを使って情報収集)
SMTP Simple Mail Transfer Protocol 電子メールの送信・転送
DHCP Dynamic Host Configuration Protocol IPアドレスの動的割り当て

最大の区別ポイントは「何を目的としたプロトコルか」です。

ICMPは「通信状態の通知と確認」、

SNMPは「機器の監視・管理」、

SMTPは「メール送信」、

DHCPは「アドレス配布」です。

特にSNMPとICMPは「ネットワーク管理系」という印象で混同されやすいので注意が必要です。

では、この用語が試験でどのように出題されるか見ていきましょう。

💡 ICMPの核心を3行で

・IPの補助プロトコルとしてネットワーク層で動作し、エラー通知や疎通確認を担う
・pingはEcho Request / Echo Reply、tracerouteはTime Exceededメッセージを利用
・SNMPは「機器の監視・管理」、ICMPは「通信状態の確認・通知」と整理する


試験ではこう出る!

ICMPは、ネットワーク分野のプロトコル知識問題として基本情報・応用情報の両方で出題されています。

出題パターンは大きく2つに分かれます。

📊 過去問での出題実績(クリックして表示)
試験回 出題内容 問われたポイント
AP R5秋
午前 問33
pingによってホストの接続確認をするときに使用されるプロトコルを選ぶ問題。 ・「ping=ICMP」を直結できるか
・CHAP、SMTP、SNMPがひっかけ選択肢
AP H29春
午前 問32
コマンドpingが用いるプロトコルを選ぶ問題。R5秋 問33と同一構成の流用問題。 ・DHCP、SMTP、SNMPがひっかけ
・選択肢の顔ぶれが少し変わるだけで問い方は同一
FE H26春
午前 問34
ICMPのエコー要求・エコー応答・到達不能メッセージで接続性を確認するコマンドを選ぶ問題。 ・ICMPの動作から対応コマンド(ping)を答えさせる逆方向の出題
・arp、echo、ipconfigがひっかけ
FE R5年度
科目A 問8
IPv4ネットワークの疎通確認に使われるものを選ぶ問題。 ・直接「ICMP」が選択肢にはなく「ping」が正解
・BOOTP、DHCP、MIBがひっかけ

📝 IPA試験での出題パターン

パターン1:「pingが使用するプロトコルを選べ」
4つのプロトコル名が並び、pingの基盤となるプロトコルを選ぶ形式。ひっかけにはSNMP(ネットワーク管理)やSMTP(メール送信)が紛れ込む。「ping=ICMP」を一対一で覚えていれば即答できる。

 

パターン2:「ICMPのメッセージで接続確認するコマンドを選べ」
FE H26春のように、ICMPの動作内容(エコー要求・エコー応答・到達不能)が問題文に示され、それに該当するコマンド名を選ぶ逆方向の形式。arp・ipconfigなどの管理コマンドがひっかけになる。

 

試験ではここまででOKです。「ping=ICMP」「traceroute=ICMPのTime Exceeded」という対応を押さえれば得点できます。ICMPメッセージのタイプ番号の暗記は不要なので、深追いは不要です。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。


Q. TCP/IPネットワークにおけるICMPの説明として、最も適切なものはどれでしょうか?

  • A. ネットワーク上の機器の情報を収集し、監視や制御を行うためのプロトコルである。
  • B. ネットワーク内のクライアントにIPアドレスを動的に割り当てるためのプロトコルである。
  • C. IP通信におけるエラー通知や疎通確認など、制御メッセージをやり取りするためのプロトコルである。

正解と解説を見る

正解:C

解説:
ICMPはIPの補助プロトコルとして、エラー通知(宛先到達不能など)や疎通確認(Echo Request / Echo Reply)を行います。pingコマンドやtracerouteコマンドの基盤として動作するプロトコルです。

選択肢AはSNMP(Simple Network Management Protocol)の説明です。SNMPはMIB(Management Information Base)を使ってネットワーク機器の状態を収集・管理するプロトコルであり、通信状態の通知は行いません。選択肢BはDHCP(Dynamic Host Configuration Protocol)の説明です。DHCPはIPアドレスの動的割り当てを行うプロトコルであり、エラー通知や疎通確認の機能は持っていません。


よくある質問(FAQ)

Q. ICMPはTCPやUDPの上で動作しますか?

動作しません。ICMPはTCPやUDPと同じくIPの直上で動作するプロトコルです。IPヘッダのプロトコル番号フィールドで識別され、ICMPのプロトコル番号は「1」です(参考:TCPは6、UDPは17)。トランスポート層を経由しないため、ポート番号という概念を持たない点も大きな特徴です。

Q. ICMPを悪用した攻撃にはどのようなものがありますか?

代表的なものに「ICMP Flood(Ping Flood)」と「Smurf攻撃」があります。ICMP Floodは大量のEcho Requestを送りつけてターゲットのリソースを消費させるDoS攻撃です。Smurf攻撃は、送信元IPアドレスをターゲットに偽装したEcho Requestをブロードキャストアドレス宛に送り、ネットワーク内の全端末からターゲットへ一斉に応答させることで負荷を集中させます。対策として、ファイアウォールでICMPの不要なタイプをフィルタリングする方法が一般的です。

Q. tracerouteはICMPをどのように使っていますか?

tracerouteはIPヘッダのTTL(Time To Live)を1から順に増やしながらパケットを送信します。TTLが0になったルータはパケットを破棄し、ICMPのタイプ11(Time Exceeded)メッセージを送信元に返します。この応答元のIPアドレスを記録することで、送信元から宛先までの経路上のルータを1ホップずつ特定できます。なお、WindowsのtracertコマンドはICMP Echo Requestを使いますが、Linux/macOSのtracerouteはUDPパケットを使い、到達不能(タイプ3)の応答で宛先到達を判断する点が異なります。