本文へ移動

ユーザーデータグラムプロトコル(UDP)

UDPは、インターネット・プロトコル・スイートにおける単純なコネクションレス型トランスポート層プロトコルである。配信保証より低遅延や単純なメッセージ交換を優先する場合に、最小限のオーバーヘッドでデータグラムを送信する。

概要

ユーザーデータグラムプロトコル(UDP)は、インターネット・プロトコル・スイートにおける中核的なトランスポート層プロトコルの一つである。接続を確立することなく、IPネットワーク上のホスト間で、データグラムと呼ばれる独立したパケットをアプリケーションが送信できるようにする。UDPの設計は、組み込みの信頼性よりも、最小限のプロトコル機構と低いオーバーヘッドを重視している。

特性とヘッダー

UDPはコネクションレスかつステートレスである。各データグラムは独立しており、プロトコル自体はハンドシェイク、再送、輻輳制御を提供しない。UDPヘッダーは8バイトと小さく、多重分離と基本的な完全性検査に用いられる4つのフィールドを含む。

  • 送信元ポート — 送信者のポートを識別する(任意)。
  • 宛先ポート — 対象アプリケーションのポートを識別する。
  • 長さ — ヘッダーとペイロードを合わせたサイズ。
  • チェックサム — IPv4では任意であり、ゼロは未使用を意味する場合がある。IPv6では必須である。ヘッダーとペイロードを対象にし、破損を検出する。

歴史と開発

UDPは1980年にデビッド・P・リードによって規定され、RFC 768で正式に定義された。TCPが提供するような、信頼性があり順序付けられたバイトストリームの複雑さやコストを必要としないアプリケーション向けに、単純な多重化・多重分離サービスを提供するため作られた。

一般的な用途と例

低遅延でオーバーヘッドが小さいため、UDPは配信保証よりも速度や単純さが重要な場面で広く利用される。代表的な用途には次がある。

  • ドメインネームシステム(DNS)の問い合わせ(一般にポート53)など、短い応答を想定する検索。
  • リアルタイムメディアおよび電話通信(VoIP、音声・映像ストリーミング)。遅延を招くより多少のパケット損失を許容するため、UDP上のRTPがよく用いられる。
  • 再送による遅延よりも適時の更新を優先するオンライン対戦ゲームや対話型アプリケーション。
  • DHCPのようなブートストラッププロトコル、TFTPのような単純なファイル転送プロトコル、一部の監視用途(SNMP)。
  • QUICなどの最新プロトコルは、ユーザー空間でより高度な機能を実装する基盤としてUDPを利用する。

相違点と重要な注意事項

UDPはTCPと異なり、接続確立、配信保証、順序付け、輻輳制御を提供しない。これらの性質によりUDPは軽量で高速になる一方、信頼性や順序付けを必要とするアプリケーションは、それらの機能を自ら実装する必要がある。大きなUDPパケットでは、IP層でのフラグメンテーションが損失率と遅延を増加させる可能性があるため、注意も必要である。

その単純さにもかかわらず、UDPは柔軟な構成要素としてインターネット全体で不可欠である。最小限の遅延、明快な意味論、またはアプリケーション層で独自のトランスポート動作を構築する能力から恩恵を受ける幅広いサービスを支えている。

関連項目

著者

AlegsaOnline.com ユーザーデータグラムプロトコル(UDP)

URL: https://ja.alegsaonline.com/art/103667

共有

出典