インターネットでは、用途に応じてさまざまな通信プロトコルが使い分けられています。その中でもUDP(User Datagram Protocol)は、通信のたびに接続を確立する手順を持たず、軽量にデータを送れる点が特徴です。そのため、遅延をできるだけ小さくしたい用途や、短いメッセージを素早くやり取りしたい場面で広く採用されています。

UDPは、インターネットプロトコルスイートのトランスポート層に属するプロトコルです。TCPと同じ層で動作しますが、TCPのような接続確立(ハンドシェイク)を前提としません。送信側は宛先に向けてデータを送るだけで、受信側がそれを受け取れたかどうか、途中で欠落がなかったかどうかを、UDP自身は保証しません。
この性質により、UDPは「確実さ」よりも「速さ」や「シンプルさ」を優先したい場面で利用されます。たとえば、音声や映像のように、多少の欠落よりも遅延の小ささが体験品質に直結するケースでは、UDPの設計思想が活きます。
UDPの代表的な特徴は、接続レス(connectionless)であることです。送信者と受信者の間でTCPのような接続確立を行わずにデータを送れるため、通信開始までの待ち時間を抑えられます。また、ヘッダーが比較的簡素で、プロトコルとしてのオーバーヘッドが小さい点も特徴です。
一方で、UDPはしばしば「信頼性が低い」と言われます。ただし、これは「危険だから使えない」という意味ではありません。到達保証・順序保証・再送制御などをUDP自身が提供しないという設計上の性質を指しています。そのため、ネットワーク状況によっては、パケットが失われたり、順番が入れ替わったり、重複して届いたりする可能性があります。
UDPを選ぶ際の実務的なポイントは、「信頼性が不要」かどうかではなく、信頼性をどこで担保するかです。用途によっては、アプリケーション側で再送や順序制御を実装する、上位プロトコルを利用する、あるいは「多少欠けても問題ない設計」にする、といった判断が求められます。
UDPは「軽量」と言われる一方で、最低限の配送単位としての仕組みは備えています。この章では、UDPがどのような情報を持って送受信されるのかを、TCPとの違いとあわせて整理します。
UDPヘッダーは、UDPデータグラム(UDPのパケット)の先頭に付与され、送受信に必要な情報を含みます。ヘッダーは8バイトの固定長で、主なフィールドは次の4つです。
チェックサムは、配送途中でデータが破損していないかを検出するための仕組みです。破損が検出された場合、受信側OSはデータグラムを破棄するのが一般的です。ただし、UDP自体はTCPのような再送制御を行いません。欠落時の扱いは、アプリケーションや上位プロトコルの設計に委ねられます。
なお、チェックサムの扱いはIPのバージョンによって異なります。IPv4ではチェックサムを省略できる場合がありますが、IPv6では必須とされています。
UDPとTCPはいずれもトランスポート層の代表的なプロトコルですが、設計思想は大きく異なります。ポイントは「通信の確実性をプロトコル自身が担保するかどうか」です。
| 観点 | UDP | TCP |
|---|---|---|
| 接続 | 接続レス(事前の接続確立なし) | 接続指向(ハンドシェイクで接続確立) |
| 到達保証 | なし(届かない可能性がある) | あり(再送・確認応答で担保) |
| 順序保証 | なし(順番が入れ替わる可能性) | あり(受信側で順序を整える) |
| オーバーヘッド | 小さい | 大きい |
| 向いている用途 | 遅延を抑えたい、軽量に送りたい | 確実に届けたい、順序通りに扱いたい |
「UDPは高速」「TCPは遅い」と単純化されがちですが、実際にはどの品質を優先するかによる選択です。欠けると困る用途ではTCPが基本となり、多少の欠落を許容できる場面ではUDPが合理的な選択になります。
UDPが採用される理由は、単に「速いから」ではありません。通信開始の軽さや制御の少なさといった特性が、用途設計と合致することで実務で選ばれています。
UDPの利点としてよく挙げられるのが、通信開始時の手順が少ないことによる低遅延です。接続確立のための往復が不要で、短いデータを素早く送る用途に向いています。
ただし、「高速」とは常に転送量が最大になるという意味ではありません。パケットロスが多い環境では、再送を行わないUDPはデータ欠落が増え、体験品質が低下することもあります。UDPの強みは、遅延を抑えやすい点にあります。
UDPは、リアルタイム性が求められる通信で多く使われます。VoIPやビデオ会議、ライブ配信などでは、多少の欠落よりも遅延の増加が体験を大きく損ねる場合があります。UDPは再送による遅延増加を避けやすいため、こうした用途と相性が良いとされています。
また、UDPを用いてブロードキャストやマルチキャストアドレス宛に送信する構成も一般的です。一度に多数の端末へ同じデータを配信する設計と相性が良い一方で、可否や挙動はネットワーク構成に依存するため、設計段階での検討が欠かせません。
UDPはリアルタイム系に限らず、インターネットの基盤に近い領域でも利用されています。
オンラインゲームでは、操作や位置情報が短い周期で更新されます。多少の欠落があっても次の更新で追いつける設計にすることで、遅延を抑えるためにUDPが採用されることがあります。
音声や映像の分野でも、リアルタイム性が重視される場合はUDPが選ばれやすくなります。近年は、UDP上で信頼性や暗号化などを補う設計も一般化しており、UDPはあくまで基盤として位置づけられています。
UDPは、DNSやDHCPといった基盤サービスでも利用されます。短い問い合わせと応答を軽量にやり取りできる点が、この用途に適しています。なお、条件によってはTCPが使われる場合もあります。
UDPは軽量である分、通信品質やセキュリティに関する責任が上位層に委ねられやすいという前提があります。
UDPはチェックサムによってデータ破損を検出しますが、再送制御は行いません。整合性を保証したい場合は、アプリケーション側で再送や順序制御などの仕組みを用意する必要があります。
UDPでは、パケットロスや順序の入れ替わり、重複といった事象が起こり得ます。これらに対しては、シーケンス番号の付与やタイムアウト設計など、要件に応じた対策が必要です。
また、通信元の偽装や反射・増幅攻撃への対策として、アクセス制御やレート制限、監視を含めた運用設計が求められます。
UDPは、低遅延と軽量さを重視したトランスポート層のプロトコルです。一方で、到達保証や順序保証を提供しないため、欠落を前提とした設計や上位層での補完が欠かせません。用途要件に応じてTCPと使い分け、どの層で品質と安全性を担保するかを明確にすることが重要です。
UDPはトランスポート層のプロトコルで、接続確立を行わずにデータを送受信する仕組みです。
接続確立の手順がなく、制御情報が少ないため、通信開始時の遅延を抑えやすいからです。
到達保証や再送制御をUDP自身が行わないという意味で、用途によっては注意が必要です。
UDPは接続レスで軽量、TCPは接続指向で確実性を重視します。
音声通話、動画配信、オンラインゲームなど、遅延を抑えたい用途で使われます。