応用情報技術者 2024年 秋期 午前2 問34
問題文
IPv4ネットワークにおける ICMPの機能として、適切なものはどれか。
選択肢
ア:MACアドレスだけが分かっているときにIPアドレスの解決を可能にする。
イ:グローバルIPアドレスとプライベートIPアドレスとを相互に変換する。
ウ:送信元ホストへ、IP パケットの送信エラー報告などの制御メッセージを通知する。(正解)
エ:ネットワーク内の IPアドレスを一元管理し、クライアントに動的に割り当てる。
🔒 解説は解答すると表示されます
ICMPの制御メッセージ【午前2解説】
正解の理由
ICMP(Internet Control Message Protocol)は、IP 層で動作する制御メッセージ用プロトコルで、送信元ホストへエラー報告や到達不能通知、経路制御などのメッセージを返す役割を持ちます。代表的なメッセージには、宛先到達不能(Destination Unreachable)、TTL 超過(Time Exceeded)、リダイレクト(Redirect)、エコー要求/応答(Echo Request/Reply)などがあり、ネットワーク障害や経路情報を送信元に通知するために用いられます。したがって、送信元ホストへIPパケットの送信エラー報告などの制御メッセージを通知する選択肢(ウ)が正解です。
解法ステップ
- 「ICMP」がどの階層でどんな目的かを思い出す(IP 層の制御・管理用プロトコル)。
- 各選択肢の機能をプロトコル名と照らし合わせる(ARP、NAT、DHCPなど)。
- ICMP の具体的なメッセージ例(Destination Unreachable、Time Exceeded、Echo)と選択肢の記述を対応させ、最も合致するものを選ぶ。
選択肢別の誤答解説
- ア: 「MACアドレスだけが分かっているときにIPアドレスの解決を可能にする。」
- 誤りです。ARP(Address Resolution Protocol)は「IPアドレスから対応するMACアドレスを解決する」ためのプロトコルであり、MACアドレスからIPアドレスを解決するものではありません。MAC→IP の逆方向の解決は伝統的には RARP(Reverse ARP)が担当しましたが、現在は DHCP などの仕組み(ブートプロトコル)が一般的に使われます。ICMP はこれらのアドレス解決機能を提供しません。
- イ: 「グローバルIPアドレスとプライベートIPアドレスとを相互に変換する。」
- 誤りです。これは NAT(Network Address Translation)の機能であり、ルータやゲートウェイで行われます。ICMP はアドレス変換を行いません。
- ウ: 「送信元ホストへ、IP パケットの送信エラー報告などの制御メッセージを通知する。」
- 正しいです。ICMP は IP 層の制御・エラーメッセージ用プロトコルで、エラー通知と診断(例:ping の Echo、経路上の TTL 切れ通知)を行います。
- エ: 「ネットワーク内の IPアドレスを一元管理し、クライアントに動的に割り当てる。」
- 誤りです。これは DHCP(Dynamic Host Configuration Protocol)の機能です。ICMP はアドレス割当を行いません。
よくある誤解
- ICMP と ARP を混同する
- 両者ともネットワーク管理に関係するため混乱しやすいですが、ARP は同一リンク内で IP⇄MAC の対応を扱い、ICMP は IP 層での到達不能やエラー通知などを行います。目的と動作階層が異なります。
- ICMP は「通信を再送する」などの信頼性機構だと考える
- ICMP は通知・診断のためのメッセージを送るだけで、再送やセッション管理などの信頼性制御は上位(例:TCP)が担当します。
- ICMP は常に通ると思い込む
- セキュリティや帯域制限のために ICMP を遮断・制限するネットワークがあり、それによって ping や traceroute の結果が変わることがあります。
補足コラム
- 代表的な ICMP メッセージタイプ(例)
- Type 0: Echo Reply、Type 8: Echo Request(ping)、Type 3: Destination Unreachable、Type 5: Redirect、Type 11: Time Exceeded。
- 実務での利用例
- ping は ICMP Echo を使って到達性を確認する。traceroute は TTL を操作して途中のルータからの TTL 超過(ICMP Type 11)を利用して経路を特定します。
- セキュリティ面
- ICMP はネットワーク診断に便利ですが、悪用(ICMP フラッド、情報収集)を防ぐためにファイアウォールで制御されることがあります。
FAQ
Q1: ping は ICMP を使うのですか?
A1: はい。ping は ICMP Echo Request/Reply を利用して、相手ホストの到達性と応答時間を確認します。
A1: はい。ping は ICMP Echo Request/Reply を利用して、相手ホストの到達性と応答時間を確認します。
Q2: ICMP は TCP や UDP と同じようにポート番号を使いますか?
A2: いいえ。ICMP は IP プロトコルの一部(プロトコル番号 1)で、TCP/UDP のようなポート番号は使いません。メッセージタイプとコードで識別します。
A2: いいえ。ICMP は IP プロトコルの一部(プロトコル番号 1)で、TCP/UDP のようなポート番号は使いません。メッセージタイプとコードで識別します。
Q3: パケットが MTU を超えて送れないときの通知は ICMP が行いますか?
A3: はい。フラグメント不可で送れない場合は「Destination Unreachable(Fragmentation Needed)」などの ICMP メッセージで通知され、PMTUD(Path MTU Discovery)に使われます。
A3: はい。フラグメント不可で送れない場合は「Destination Unreachable(Fragmentation Needed)」などの ICMP メッセージで通知され、PMTUD(Path MTU Discovery)に使われます。
関連キーワード: ICMP、ARP、RARP、NAT、DHCP、TTL、ping、traceroute、PMTUD、IPプロトコル番号1

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

