UDPの解説(基本情報技術者シラバス用語)

目次

UDPとは

UDP(User Datagram Protocol)とは、インターネット通信において、データの正確さよりも「速さとリアルタイム性」を最優先してデータを届けるための通信プロトコル(ルール)です。TCPのように事前の接続確認(3ウェイハンドシェイク)やデータの到着確認、再送処理などを行わず、データを一方的に送り続けるシンプルな仕組みになっています。

そのため、通信の信頼性は低い(データが途中で消えても気づかない)ですが、その代わりに無駄なやり取りがなく、非常に高速にデータを送信できます。データの一部が抜けても致命的な問題にならず、むしろ遅延(タイムラグ)が発生すると困るような用途で広く利用されています。

具体例

インターネットを通じた動画のリアルタイム配信や、オンラインゲーム、音声通話(電話)などでUDPが使われています。

  • スマホでビデオ通話をしている場面を考えてみましょう。
  • データが途中で少し消えてしまった場合、UDPは再送を待ちません。一瞬だけ画面にブロックノイズが入ったり、音声がプツッと途切れたりしますが、会話はリアルタイムに進み続けます。
  • もしここでTCPを使うと、消えたデータを再送して届くのを待つため、数秒間映像が完全にフリーズしてしまい、リアルタイムの会話が成り立たなくなってしまいます。

もう少し詳しく

UDPは、OSI基本参照モデルの第4層(トランスポート層)で動作するコネクションレス型のプロトコルです。コネクションレス型とは、相手と事前に通信路を確立せず、相手がデータを受け取れる状態であるかどうかも確認しないまま、一方的に「データグラム」と呼ばれる単位でデータを送り出す方式です。

UDPが高速で動作できる要因は、そのヘッダ構造のシンプルさにあります。TCPの制御情報(ヘッダ)は通常20バイトあり、通信状態の管理のために多くの情報が含まれています。それに対し、UDPのヘッダはわずか8バイトしかありません。含まれているのは送信元ポート番号、送信先ポート番号、データ長、および簡易的なエラーチェック用の「チェックサム」のみです。このヘッダの小ささによって、ネットワーク上のデータ転送に伴う無駄なデータ付加(オーバーヘッド)が非常に低く抑えられ、パケットの処理時間も短縮されます。

また、TCPは1対1の通信(ユニキャスト)しか行えませんが、UDPは同一ネットワーク内の全ての機器へ一斉にデータを送る「ブロードキャスト」や、特定の複数グループに送信する「マルチキャスト」が可能です。この特性を活かして、音声・動画ストリーミングなどの配信のほか、インターネットの基本機能である「DNS(ドメイン名とIPアドレスの変換)」の問い合わせ、ネットワーク機器に自動でIPアドレスを配る「DHCP」、時刻同期を行う「NTP」など、瞬時に軽量なやり取りを行いたいプロトコルで幅広く採用されています。

試験でのポイント

情報処理技術者試験におけるUDPの出題では、「コネクションレス型」であるという最大の特徴を答えさせる問題が基本です。TCPと比較した際の「ヘッダが小さくオーバーヘッドが少ない」「信頼性は低いが高速でリアルタイム性に優れる」といったメリット・デメリットの理解が欠かせません。

また、UDP上で動作する代表的な上位プロトコルを問う選択問題もよく出題されます。「DNS(特に512バイト以下の問い合わせ)」「DHCP」「NTP」「SNMP(ネットワーク管理)」などは、すべてトランスポート層でUDPを使用しています。これらのプロトコル名とUDPの結びつきは、午前問題などで得点しやすいため確実に覚えておきましょう。さらに、1対多の「ブロードキャスト」通信が可能なのはUDPであるという点もポイントです。

関連する用語

UDPに関連する概念には、信頼性第一の「TCP」、接続確認を行わない「コネクションレス型」、UDPが扱うパケットの単位「データグラム」、一斉送信機能「ブロードキャスト」、名前解決を行う「DNS」、時刻を合わせる「NTP」などがあり、それぞれ用途に応じた棲み分けがなされています。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ