応用情報技術者 2022年 秋期 午前2 問34
問題文
IPの上位階層のプロトコルとして、コネクションレスのデータグラム通信を実現し、信頼性のための確認応答や順序制御などの機能をもたないプロトコルはどれか。
選択肢
ア:ICMP
イ:PPP
ウ:TCP
エ:UDP(正解)
🔒 解説は解答すると表示されます
ユーザデータグラムプロトコル【午前2解説】
正解の理由
IPの上位で動作するトランスポート層プロトコルのうち、コネクションを張らずに各パケットを独立したデータグラムとして扱い、確認応答(ACK)や順序制御といった信頼性機能を持たないのは エ(UDP)です。UDPはコネクションレスで軽量な送受信を行うため、オーバーヘッドを抑えた短い通信やリアルタイム性を重視する用途に適しています。
解法ステップ
- 問題文のキーワードを抽出する:コネクションレス、データグラム、確認応答や順序制御を持たない。
- 各選択肢がどの階層・機能かを確認する:
- トランスポート層でコネクション志向か否か(TCPはコネクション型、UDPはコネクションレス)。
- ネットワーク制御やデータリンク層のプロトコルなら除外する(ICMPやPPP)。
- 条件と一致するプロトコルを選ぶ:コネクションレスかつデータグラム=UDP(エ)。
選択肢別の誤答解説
-
ア: ICMP
ICMPはエラーメッセージや診断(pingなど)を扱うプロトコルで、IPと密接に動作するネットワーク層の制御プロトコルです。トランスポート層の「データグラム通信(用途としてのUDP/TCP)」とは役割が異なり、本問の条件(上位トランスポートでコネクションレスのデータグラム)に該当しません。 -
イ: PPP
PPPは物理層の上で動作するデータリンク層(第2層)のプロトコルで、点対点接続上でフレームの送受信、認証、リンク制御などを行います。トランスポート層のプロトコルではないため、本問の条件には当てはまりません。 -
ウ: TCP
TCPはトランスポート層のコネクション型プロトコルで、確認応答(ACK)、再送、順序制御、輻輳制御など信頼性を提供します。よって「確認応答や順序制御などの機能を持たない」という条件に反します。
よくある誤解
-
ICMPをUDPやTCPと同じ「上位トランスポート層のプロトコル」と誤認する
実務や試験でICMPは「IPの付随する制御メッセージ」を扱うプロトコルとして扱うため、トランスポート層の代表例(UDP/TCP)とは用途が異なります。 -
PPPを物理層だと考える
PPPは物理回線の上で動くデータリンク層のプロトコルです。物理層そのものではなく、物理層の上でフレームを扱う役割を持ちます。 -
「コネクションレス=全く信頼性ゼロ」と断定する
UDPは再送や順序制御を持ちませんが、ヘッダにチェックサムを持ち(IPv6では必須、IPv4では原則必須だがゼロ許容の実装もある)、アプリケーション層で独自の信頼化を実装することが可能です。
補足コラム
- UDPヘッダの主なフィールド:送信ポート、宛先ポート、長さ、チェックサム。ヘッダは固定長で8バイトとシンプルです。
- 主な利用例:DNS問い合わせ(短い問答)、DHCP、SNMP、RTP(VoIP/ストリーミング)、リアルタイムゲームなど、低遅延や低オーバーヘッドを重視する用途。
- 実践例(Pythonで簡単なUDP送信):
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(b'hello', ('192.0.2.1', 12345))
sock.close()
- チェックサムの扱い:IPv4ではチェックサムがオプション実装となる場合がある一方、IPv6ではUDPチェックサムが必須です(例外なし)。
FAQ
Q. ICMPは「IPの上位」で扱えるのではないですか?
A. ICMPはIPプロトコル内でエラーや制御メッセージをやり取りするため、ネットワーク層に属する機能と考えます。トランスポート層のような「アプリケーションのための信頼/非信頼なデータ転送」を担うものではありません。
A. ICMPはIPプロトコル内でエラーや制御メッセージをやり取りするため、ネットワーク層に属する機能と考えます。トランスポート層のような「アプリケーションのための信頼/非信頼なデータ転送」を担うものではありません。
Q. UDPにポートはあるのですか?
A. あります。UDPはポート番号でアプリケーションを識別しますが、コネクション状態(ソケット間の持続的な接続管理)は行いません。
A. あります。UDPはポート番号でアプリケーションを識別しますが、コネクション状態(ソケット間の持続的な接続管理)は行いません。
Q. 「コネクションレス=送信順序が保証されない」ことは本当に致命的ですか?
A. アプリケーションの要件次第です。順序や到達保証が必要ならTCPやアプリケーション層での再送制御を採用します。リアルタイム性重視ならUDPのほうが適する場合があります。
A. アプリケーションの要件次第です。順序や到達保証が必要ならTCPやアプリケーション層での再送制御を採用します。リアルタイム性重視ならUDPのほうが適する場合があります。
関連キーワード: UDP、コネクションレス、データグラム、TCP、ICMP、PPP、トランスポート層、データリンク層、チェックサム、DNS、RTP

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

