IT用語集

UDPとは? わかりやすく10分で解説

水色の背景に六角形が2つあるイラスト 水色の背景に六角形が2つあるイラスト
アイキャッチ
目次

UDPの概要

UDP(User Datagram Protocol)は、接続確立を行わずにデータを送る接続レス型のトランスポート層プロトコルです。TCPのような到達保証や順序保証は持たない一方、通信開始までの手順が少なく、遅延を抑えやすいという特徴があります。そのため、リアルタイム通信や短い問い合わせなど、「多少の欠落より応答の早さを優先したい場面」で広く使われています。

UDPの概要イメージ

UDPとは何か?

UDPは、インターネットプロトコルスイートのトランスポート層に属するプロトコルです。TCPと同じ層で動作しますが、TCPのような接続確立(ハンドシェイク)を前提としません。送信側は宛先に向けてデータを送るだけで、受信側がそれを受け取れたかどうか、途中で欠落がなかったかどうかを、UDP自身は保証しません。

この性質から、UDPは「確実さ」よりも「速さ」や「シンプルさ」を優先したい場面で使われます。たとえば、音声や映像のように、多少の欠落よりも遅延の小ささが体感に直結するケースでは、UDPの設計が合いやすくなります。

UDPの特徴

UDPの代表的な特徴は、接続レス(connectionless)であることです。送信者と受信者の間でTCPのような接続確立を行わずにデータを送れるため、通信開始までの待ち時間を抑えられます。また、ヘッダーが比較的簡素で、プロトコルとしてのオーバーヘッドが小さい点も特徴です。

一方で、UDPはしばしば「信頼性が低い」と言われます。ただし、これは「危険だから使えない」という意味ではありません。到達保証・順序保証・再送制御などをUDP自身が提供しないという設計上の性質を指しています。そのため、ネットワーク状況によっては、パケットが失われたり、順番が入れ替わったり、重複して届いたりする可能性があります。

UDPを選ぶときに見るべきなのは、「信頼性が不要か」ではなく、信頼性をどこで担保するかです。用途によっては、アプリケーション側で再送や順序制御を実装する、上位プロトコルを利用する、あるいは「多少欠けても問題ない設計」にする、といった考え方が必要になります。

UDPの動作原理

UDPは軽いプロトコルですが、配送のために必要な最小限の仕組みは備えています。ここでは、UDPがどのような情報を持って送受信されるのかを、TCPとの違いとあわせて見ていきます。

UDPヘッダーの詳細

UDPヘッダーは、UDPデータグラム(UDPのパケット)の先頭に付与され、送受信に必要な情報を含みます。ヘッダーは8バイトの固定長で、主なフィールドは次の4つです。

  • 送信元ポート番号:送信元アプリケーションを識別するための番号
  • 宛先ポート番号:受信先アプリケーションを識別するための番号
  • 長さ:UDPヘッダーとデータを合わせた全体のバイト数
  • チェックサム:データの破損を検出するための値

チェックサムは、配送途中でデータが破損していないかを検出するための仕組みです。破損が検出された場合、受信側OSはデータグラムを破棄するのが一般的です。ただし、UDP自体はTCPのような再送制御を行いません。欠落時の扱いは、アプリケーションや上位プロトコルの設計に委ねられます。

なお、チェックサムの扱いはIPのバージョンによって異なります。IPv4では送信時にゼロを設定して省略する運用が可能ですが、IPv6では原則として必須です。ただし、特定のトンネル用途では例外が定義されています。

UDPとTCPの違い

UDPとTCPはいずれもトランスポート層の代表的なプロトコルですが、設計思想は大きく異なります。違いの中心にあるのは、通信の確実性をプロトコル自身が担保するかどうかです。

観点UDPTCP
接続接続レス(事前の接続確立なし)接続指向(ハンドシェイクで接続確立)
到達保証なし(届かない可能性がある)あり(再送・確認応答で担保)
順序保証なし(順番が入れ替わる可能性)あり(受信側で順序を整える)
オーバーヘッド小さい大きい
向いている用途遅延を抑えたい、軽量に送りたい確実に届けたい、順序通りに扱いたい

「UDPは高速」「TCPは遅い」と単純化されがちですが、実際にはどの品質を優先するかによる選択です。欠けると困る用途ではTCPが基本となり、多少の欠落を許容できる場面ではUDPが合理的な選択になります。

UDPの利点と用途

UDPが採用されるのは、単に「速いから」ではありません。通信開始の軽さや制御の少なさが用途設計と合うときに、実際のシステムで選ばれます。

UDPが向く場面/向かない場面

UDPが向くのは、多少の欠落があっても次のデータで追いつける通信や、短いメッセージを素早くやり取りしたい通信です。たとえば、音声・映像・ゲームの更新情報、DNSの問い合わせのように、遅延の小ささが重要になる場面では選択肢になります。

一方で、欠落や順序の乱れをそのままでは許容できない通信では、TCPを選ぶか、UDPの上で再送や順序制御を補う設計が必要です。重要なのは「UDPは軽い」ではなく、どの品質を捨て、どこで補うかを先に決めることです。

高速なデータ転送のメリット

UDPの利点としてよく挙げられるのが、通信開始時の手順が少ないことによる低遅延です。接続確立のための往復が不要で、短いデータを素早く送る用途に向いています。

ただし、「高速」とは常に転送量が最大になるという意味ではありません。パケットロスが多い環境では、再送を行わないUDPはデータ欠落が増え、体験品質が下がることもあります。UDPの強みは、遅延を抑えやすい点にあります。

リアルタイムサービスでのUDPの役割

UDPは、リアルタイム性が求められる通信で多く使われます。VoIPやビデオ会議、ライブ配信などでは、多少の欠落よりも遅延の増加が体験を大きく損ねる場合があります。UDPは再送による遅延増加を避けやすいため、こうした用途と相性が良いとされています。

また、UDPを用いてブロードキャストやマルチキャストアドレス宛に送信する構成も一般的です。一度に多数の端末へ同じデータを配信する設計と相性が良い一方で、可否や挙動はネットワーク構成に依存するため、設計段階での検討が欠かせません。

UDPのアプリケーション例

UDPはリアルタイム系に限らず、インターネットの基盤に近い領域でも利用されています。

ゲーム、音声、ビデオ

オンラインゲームでは、操作や位置情報が短い周期で更新されます。多少の欠落があっても次の更新で追いつける設計にすることで、遅延を抑えるためにUDPが採用されることがあります。

音声や映像の分野でも、リアルタイム性が重視される場合はUDPが選ばれやすくなります。近年は、UDP上で信頼性や暗号化などを補う設計も一般化しており、UDPはあくまで基盤として位置づけられています。

DNS、DHCPなどの基盤サービス

UDPは、DNSやDHCPといった基盤サービスでも利用されます。DNSでは通常UDPで問い合わせますが、応答が大きい場合や切り詰めが起きた場合などにはTCPも使われます。DHCPはUDPを使ってクライアントとサーバーが設定情報をやり取りします。

UDPの安全性と信頼性

UDPは軽量なぶん、通信品質やセキュリティをどこで補うかを、上位層も含めて設計する前提があります。

エラーチェックと整合性

UDPはチェックサムによってデータ破損を検出しますが、再送制御は行いません。整合性を保証したい場合は、アプリケーション側で再送や順序制御などの仕組みを用意する必要があります。

UDPのリスクと対策

UDPでは、パケットロスや順序の入れ替わり、重複といった事象が起こり得ます。これらに対しては、シーケンス番号の付与やタイムアウト設計など、要件に応じた対策が必要です。

また、通信元の偽装や反射・増幅攻撃への対策として、アクセス制御やレート制限、監視を含めた運用設計が求められます。

まとめ

UDPは、低遅延と軽量さを重視したトランスポート層のプロトコルです。一方で、到達保証や順序保証は提供しないため、欠落を前提とした設計や上位層での補完が欠かせません。用途要件に応じてTCPと使い分け、どの層で品質と安全性を担保するかを先に決めておく必要があります。

Q.UDPとは何ですか?

UDPはトランスポート層のプロトコルで、接続確立を行わずにデータを送受信する仕組みです。

Q.UDPはなぜ高速と言われるのですか?

接続確立の手順がなく、制御情報が少ないため、通信開始時の遅延を抑えやすいからです。

Q.UDPは信頼性が低いのですか?

到達保証や再送制御をUDP自身が行わないという意味で、用途によっては注意が必要です。

Q.UDPとTCPの違いは何ですか?

UDPは接続確立なしで軽く送れる一方、TCPは接続を確立したうえで到達や順序を保証します。

Q.UDPはどんな用途で使われますか?

音声通話、動画配信、オンラインゲームなど、遅延を抑えたい用途で使われるほか、DNSやDHCPのような基盤サービスでも利用されます。

Q.UDPでもポート番号は使いますか?

使います。送信元ポート番号と宛先ポート番号によって、どのアプリケーションに届けるかを識別します。

Q.UDPはDNSやDHCPでも使われますか?

使われます。短い問い合わせや設定情報のやり取りを軽量に行いやすいため、基盤サービスでも広く使われています。

Q.UDPは安全ではないのですか?

UDP自体は暗号化や相手認証を提供しないため、必要に応じて上位プロトコルやアプリケーション側で補う必要があります。

Q.UDPでも再送や順序制御はできますか?

UDP自身は提供しませんが、アプリケーションや上位プロトコル側で実装することは可能です。

Q.UDPはTCPより常に高速ですか?

常に高速とは限りません。接続確立や再送による遅延を減らしたい場面で有利になりやすい、という理解が適切です。

記事を書いた人

ソリトンシステムズ・マーケティングチーム