戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報処理安全確保支援士 2018年 春期 午前218


問題文

IPv4 において,IPパケットで送られているデータが ICMP メッセージであることを識別できるヘッダ情報はどれか。

選択肢

IPヘッダのプロトコル番号(正解)
MAC ヘッダのイーサタイプ値
TCP ヘッダのコントロールフラグ
UDP ヘッダの宛先ポート番号

🔒 解説は解答すると表示されます

IPヘッダのプロトコル番号【午前2解説】

正解の理由

IPパケットのヘッダ内にある「Protocol」フィールドが、上位プロトコル(IPのペイロードで何が運ばれているか)を識別します。したがって ICMP を識別する情報は IP ヘッダ側にあり、選択肢の中では が正解です。IPv4 ヘッダではこの Protocol フィールドは1バイト長で、ヘッダ先頭から数えて10バイト目(オフセット9)に格納されます。ICMP のプロトコル番号は 1 です(TCPは6、UDPは17)。

解法ステップ

  1. ICMP が OSI モデルのどの層に属するか確認する(ICMP は IP によって運ばれるネットワーク層の制御プロトコル)。
  2. 上位プロトコルを示す情報がどのヘッダにあるかを考える(物理/データリンク層のヘッダは「フレームの中身が IP かどうか」程度しかわからない)。
  3. IPv4 ヘッダの Protocol フィールド(10バイト目、オフセット9)の値を見て、値が 1 なら ICMP と判定する。

選択肢別の誤答解説

  • IPヘッダのプロトコル番号
    正しい。Protocol フィールド(10バイト目=オフセット9)により、IP のペイロードが ICMP/TCP/UDP 等のどれかを判別できる。ICMP はプロトコル番号 1。
  • イ MACヘッダのイーサタイプ値
    Ethernet の EtherType(フレーム内のフィールド)は「ペイロードが IPv4 か IPv6 か ARP か」を示す(例:0x0800 = IPv4)が、IPv4 の内部で何が運ばれているか(ICMPかTCPか)は分からない。
  • ウ TCPヘッダのコントロールフラグ
    TCP ヘッダはそもそも TCP セグメントにのみ存在する。データが ICMP であれば TCP ヘッダ自体が存在しないため参照できない。
  • エ UDPヘッダの宛先ポート番号
    UDP ヘッダは UDP ペイロードにのみ意味を持つ。ICMP は UDP ではないため、宛先ポート番号で判別することはできない。

よくある誤解

  • 「EtherType で ICMP を判別できる」
    EtherType はネットワーク層プロトコル(IPv4/IPv6/ARP 等)を示すだけで、IP 内部の上位プロトコルは識別できません。
  • 「Protocol フィールドの位置はヘッダ先頭付近だが詳細なオフセットを知らなくても良い」
    試験やトラブルシューティングでは具体的なオフセット(IPv4では10バイト目=オフセット9)が問われることがあるので、代表的なフィールド位置は覚えておくと有利です。

補足コラム

IPv4 ヘッダの前半フィールド配置(バイト単位、0始まりのオフセットを併記)例:
オフセット 0: Version(4) + IHL(4)
オフセット 1: Type of Service
オフセット 2-3: Total Length
オフセット 4-5: Identification
オフセット 6-7: Flags + Fragment Offset
オフセット 8: Time To Live (TTL)
オフセット 9: Protocol    ここ(1バイト)
オフセット10-11: Header Checksum
オフセット12-15: Source IP
オフセット16-19: Destination IP
主要プロトコル番号(抜粋):ICMP = 1、TCP = 6、UDP = 17。IPv6 では同等の役割を持つフィールドは「Next Header」です。
簡単な実用コマンド例(パケット解析):
  • tcpdump で ICMP を直接表示: sudo tcpdump -n icmp
  • 生ダンプで IP ヘッダのバイトを確認: sudo tcpdump -n -s 0 -X icmp

FAQ

Q. IPv6 ではどのフィールドで上位プロトコルを識別するのですか?
A. IPv6 では「Next Header」フィールドが同じ役割を果たします(位置はヘッダ仕様に依存します)。
Q. EtherType が 0x0800 のフレームなら必ず ICMP を含むのですか?
A. いいえ。0x0800 は IPv4 を示すだけで、ペイロードが ICMP、TCP、UDP のいずれかを判断するには IPv4 ヘッダの Protocol フィールドを参照する必要があります。
Q. IP ヘッダ以外で ICMP を識別できる方法は?
A. パケット解析ツール(Wireshark 等)や OS のログは上位プロトコルを解析して表示しますが、プロトコル自体の識別は最終的に IP ヘッダの Protocol(または IPv6 の Next Header)に依存します。

関連キーワード: IPヘッダ、Protocolフィールド、オフセット9、ICMP、EtherType、Next Header、プロトコル番号、パケット解析
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

情報処理安全確保支援士
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について