応用情報技術者 2011年 秋期 午前2 問37
問題文
IPの上位プロトコルとして、コネクションレスのデータグラム通信を実現し、信頼性のための確認応答や順序制御などの機能をもたないプロトコルはどれか。
選択肢
ア:ICMP
イ:PPP
ウ:TCP
エ:UDP(正解)
🔒 解説は解答すると表示されます
コネクションレスデータグラム通信【午前2解説】
正解の理由
IPの上位(トランスポート層)で、コネクションを張らずにデータグラム単位で送受信し、確認応答・順序制御・再送などの信頼性機能を持たないプロトコルはエのUDPです。UDPは軽量なトランスポート層プロトコルで、ヘッダは送受信ポート、長さ、チェックサムのみを含み、通信前の接続確立や信頼性保証の機構を持ちません。これに対しTCPは接続指向で信頼性機能を持ち、ICMPやPPPはUDPとは用途・層が異なります。
解法ステップ
- 問題が求める特徴を確認:コネクションレス、データグラム、信頼性機構(確認応答・順序制御等)がない。
- 各選択肢のプロトコルの層と機能を当てはめる。
- ICMP:ネットワーク層の制御・診断メッセージ(エラー報告やエコー)。
- PPP:データリンク層(OSI第2層)の点対点リンク用プロトコル(IPの上位ではない)。
- TCP:トランスポート層で接続指向・信頼性機能あり。
- UDP:トランスポート層でコネクションレス・信頼性機構なし。
- 条件に一致するものを選ぶ:UDP(エ)。
選択肢別の誤答解説
-
ア: ICMP
ICMPはネットワーク層(IPと同じ層)の制御・診断用プロトコルで、エラーメッセージや到達確認(ping)などを扱います。トランスポート層のデータグラム送受信を提供するものではありません。 -
イ: PPP
PPPはデータリンク層(OSI第2層)のプロトコルで、点対点のフレーミング、リンク制御(LCP)やネットワーク制御(NCP)、認証などを行います。PPPはデータリンク層のプロトコルで、IPの上位プロトコルではないため、この設問の条件に該当しません。 -
ウ: TCP
TCPはトランスポート層に属しますが、接続指向で3ウェイハンドシェイク、確認応答(ACK)、順序制御、再送、フロー制御や輻輳制御などの信頼性機能を持ちます。本問で求められる「信頼性機能がない」条件に合致しません。 -
エ: UDP
UDPはトランスポート層でコネクションレスのデータグラム通信を提供し、確認応答や順序制御、再送などの信頼性機能を持ちません。したがって本問の条件を満たします。
よくある誤解
-
PPPは物理層のプロトコルだと思い込む
→ PPPは物理層で使われることも多いが、プロトコル自体はデータリンク層の仕様です。フレーミングやLCP/NCPなどデータリンク層の機能を提供します。 -
ICMPをトランスポート層のプロトコルと混同する
→ ICMPはIPの補助的なプロトコルでネットワーク層に位置します。pingや経路制御情報のやり取りに使われますが、アプリのデータ運搬を担うトランスポート層ではありません。 -
UDPもTCPと同様に信頼性があると誤解する
→ UDP自体に再送・順序制御・フロー制御はありません。必要な場合はアプリケーション側で実装する必要があります。
補足コラム
- UDPヘッダ(簡略):送信元ポート(16)、宛先ポート(16)、長さ(16)、チェックサム(16)。非常に短いヘッダのため処理コストが低く、リアルタイム性や簡易な要求のある用途(音声・映像のストリーミング、DNS、DHCP、SNMPなど)で使われます。IPv4ではチェックサムを0にして省略することが許容される場合がありますが、IPv6ではチェックサムが必須です。
- プロトコル番号(参考): ICMP=1、TCP=6、UDP=17。試験で問われることがあるので覚えておくと有利です。
- PPPの主な機能:フレーミング、LCP(Link Control Protocol)によるリンク確立・設定、認証(PAP/CHAP)、NCPによる複数ネットワーク層プロトコルの多重化(IPCPなど)。
簡単なUDP送信の例(Python)
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(b'hello', ('192.0.2.1', 5000))
sock.close()
FAQ
Q1: UDPはまったく信頼性を提供しないのですか?
A1: UDP自体は再送や順序制御を行いません。「まったく」提供しないわけではなく、必要ならアプリケーション側が信頼性機能を実装できます(例:アプリ独自のACK/再送機構)。
A1: UDP自体は再送や順序制御を行いません。「まったく」提供しないわけではなく、必要ならアプリケーション側が信頼性機能を実装できます(例:アプリ独自のACK/再送機構)。
Q2: ICMPで「到達不能」などのメッセージを受け取った場合、アプリ側はどう扱うべきですか?
A2: ICMPはエラー通知や診断情報を伝えます。アプリケーションや上位プロトコル(TCPなど)がこれを受け取って適切に処理する必要があります。ICMPはデータ転送の実体を担うものではありません。
A2: ICMPはエラー通知や診断情報を伝えます。アプリケーションや上位プロトコル(TCPなど)がこれを受け取って適切に処理する必要があります。ICMPはデータ転送の実体を担うものではありません。
Q3: PPPはどんな場面で使われますか?
A3: かつての電話回線ダイヤルアップやシリアル接続、現在でもPPPoE(PPP over Ethernet)などでブロードバンド接続の認証やリンク管理に使われます。
A3: かつての電話回線ダイヤルアップやシリアル接続、現在でもPPPoE(PPP over Ethernet)などでブロードバンド接続の認証やリンク管理に使われます。
関連キーワード: UDP、TCP、ICMP、PPP、トランスポート層、データリンク層、コネクションレス、データグラム

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

