UDPとは?TCPとの違いから分かるネットワーク通信の基礎知識

「UDPって何?TCPとどう違うの?」

インターネットやネットワークの話題で「UDP」という言葉を聞いたことがある方も多いのではないでしょうか。

UDPは、インターネット通信を支える重要なプロトコル(通信規約)の1つで、動画配信やオンラインゲームなど、私たちが日常的に使うサービスの裏側で活躍しています。

この記事では、UDPの基本からTCPとの違い、実際の使われ方まで、分かりやすく解説していきます。


スポンサーリンク

UDP(User Datagram Protocol)とは

まず、UDPの基本的な定義から理解していきましょう。

UDPの正式名称

UDPは、User Datagram Protocol(ユーザー・データグラム・プロトコル)の略称です。

日本語では「ユーザー・データグラム通信規約」などと訳されますが、通常は「UDP」とそのまま呼ばれます。

簡単に言うと

UDPは、インターネット上でデータを送受信するための方式の1つです。

身近な例え:

郵便に例えるなら、UDPは「簡易書留なしの普通郵便」のようなもの。

  • 送ったら送りっぱなし
  • 相手に届いたか確認しない
  • 速いけど、たまに届かないこともある

インターネット通信の階層

UDPは、インターネット通信の「トランスポート層」という階層で動作するプロトコルです。

通信の階層(簡略版):

  1. アプリケーション層:Webブラウザやメールソフトなど
  2. トランスポート層:TCP、UDP ← ここ
  3. インターネット層:IP(インターネットプロトコル)
  4. ネットワークインターフェース層:物理的な通信

UDPは、アプリケーション(ソフトウェア)とネットワークの間で、データのやり取りを管理する役割を担っています。


UDPとTCPの違い

UDPとよく比較されるTCP(Transmission Control Protocol)との違いを理解しましょう。

基本的な違い

UDP(簡易・高速型):

  • データを送りっぱなし
  • 相手に届いたか確認しない
  • エラー訂正なし
  • 速い

TCP(信頼性重視型):

  • データが届いたか確認する
  • 届かなかったら再送する
  • エラー訂正あり
  • 確実だが、やや遅い

比較表

項目UDPTCP
接続確立不要(コネクションレス)必要(コネクション型)
信頼性低い高い
速度速いやや遅い
データの順序保証なしあり
エラー訂正最小限充実
再送機能なしあり
用途例動画配信、ゲーム、DNSWebサイト、メール、ファイル転送

宅配便の例えで理解する

UDP(メール便):

  • 投函したら終わり
  • 相手が受け取ったか分からない
  • 速いけど、たまに紛失することも
  • 安い(オーバーヘッドが少ない)

TCP(宅配便の対面受け取り):

  • 相手が受け取るまで追跡
  • サインをもらって確実に届ける
  • 届かなかったら再配達
  • 確実だけど時間とコストがかかる

UDPの特徴とメリット・デメリット

UDPの長所と短所を詳しく見ていきましょう。

メリット1:通信速度が速い

理由:

接続確立の手順(ハンドシェイク)がないため、すぐにデータ送信を開始できます。

例え:

電話で「もしもし、聞こえますか?」と確認せずに、いきなり本題を話し始めるイメージ。

メリット2:オーバーヘッドが小さい

オーバーヘッドとは、データ本体以外の余計な情報(ヘッダーなど)のこと。

UDPは、TCPに比べてヘッダー情報が小さいため、効率的にデータを送れます。

UDPヘッダー:8バイト(シンプル)
TCPヘッダー:20バイト以上(詳細な制御情報)

メリット3:ブロードキャスト・マルチキャストに対応

ブロードキャスト:1対多数への同時配信
マルチキャスト:特定の複数相手への同時配信

UDPは、1つのデータを複数の相手に同時に送ることができます。

例:

ライブ配信で、1つの映像を数千人に同時配信する場合など。

デメリット1:信頼性が低い

データが届いたか確認しないため、以下の問題が起こる可能性があります。

  • パケットロス(データの損失):データが途中で消える
  • 順序入れ替わり:送った順番と違う順序で届く
  • 重複:同じデータが2回届く

デメリット2:通信制御がない

フロー制御輻輳制御(ネットワークの混雑を避ける仕組み)がありません。

そのため、ネットワークに負荷をかけすぎる可能性があります。

デメリット3:セキュリティ機能が最小限

UDPそのものには、暗号化や認証の機能がありません。

セキュリティが必要な場合は、アプリケーション側で対策する必要があります。


UDPが使われる場面

UDPは、どのようなサービスや用途で活用されているのでしょうか。

用途1:動画・音声のストリーミング配信

YouTube、Netflix、Zoomなどのリアルタイム配信

理由:

  • リアルタイム性が重要
  • 少しくらいデータが欠けても気にならない(画質が一瞬荒くなる程度)
  • 速度優先

動画や音声は、多少のデータ欠損があっても、人間の目や耳では気づきにくいため、UDPの特性と相性が良いです。

用途2:オンラインゲーム

FPS、格闘ゲーム、MMOなどのリアルタイムゲーム

理由:

  • 瞬間の操作が重要
  • わずかな遅延が致命的
  • 古い情報は不要(最新の状態だけが必要)

例えば、0.1秒前のキャラクターの位置情報が遅れて届いても意味がないため、再送するより最新情報を優先します。

用途3:DNS(ドメインネームシステム)

Webサイトのアドレス変換

インターネットで「example.com」と入力した時、それをIPアドレスに変換するDNSの問い合わせにはUDPが使われます。

理由:

  • 問い合わせは小さなデータ
  • 速度が重要
  • 失敗したら再度問い合わせればいい

用途4:VoIP(インターネット電話)

Skype、LINE通話、Discordなどの音声通話

理由:

  • リアルタイム性が最優先
  • 音声の一部が欠けても会話は成立
  • 遅延を最小限に抑えたい

用途5:IoT機器のセンサーデータ送信

スマートホーム、気象観測、産業用センサーなど

理由:

  • 大量の小さなデータを頻繁に送信
  • 1つや2つのデータが欠けても問題ない
  • 効率性が重要

用途6:ネットワーク管理プロトコル

SNMP(Simple Network Management Protocol)など

ネットワーク機器の状態監視や設定に使われます。


UDPの仕組みと構造

UDPがどのように動作しているか、もう少し詳しく見ていきましょう。

UDPヘッダーの構造

UDPは、データ本体の前に小さなヘッダー(8バイト)を付けて送信します。

ヘッダーに含まれる情報:

  1. 送信元ポート番号(2バイト):送信側のアプリケーションを識別
  2. 宛先ポート番号(2バイト):受信側のアプリケーションを識別
  3. パケット長(2バイト):データ全体の長さ
  4. チェックサム(2バイト):エラー検出用の簡単な検証値

これだけのシンプルな情報で通信が行われます。

データグラムとは

UDPで送られるデータの単位をデータグラムと呼びます。

特徴:

  • 独立したデータの塊
  • 他のデータグラムとの関連性なし
  • それぞれが個別に送信される

手紙を1通ずつ別々に送るイメージです。

コネクションレス通信

UDPはコネクションレス型の通信です。

意味:

事前に接続を確立せず、いきなりデータを送り始める。

TCPとの違い(3ウェイハンドシェイク):

TCPでは、通信を始める前に「準備OK?」「OK」「じゃあ始めるね」という3回のやり取り(ハンドシェイク)が必要です。

UDPはこの手順を省略するため、速いのです。


ポート番号とUDP

UDPでは、ポート番号を使ってアプリケーションを識別します。

ポート番号とは

ポート番号は、1つのコンピュータ内で動作している複数のアプリケーションを区別するための番号です。

例え:

マンションの部屋番号のようなもの。

IPアドレスが「住所」なら、ポート番号は「部屋番号」です。

主要なUDPポート番号

ポート番号用途
53DNS(ドメインネーム解決)
67/68DHCP(IPアドレス自動割り当て)
123NTP(時刻同期)
161/162SNMP(ネットワーク管理)
514Syslog(ログ送信)
5353mDNS(ローカルネットワークの名前解決)

ゲームやVoIP:

多くのゲームやVoIPアプリは、独自のポート番号を使用します(例:Minecraftは25565など)。


UDPのセキュリティ

UDPを使う際のセキュリティ上の注意点です。

UDPの脆弱性

問題点:

  • 送信元の偽装が容易(なりすまし)
  • 増幅攻撃に悪用される(DDoS攻撃など)
  • 暗号化なし(平文で送信)

UDP増幅攻撃(DDoS)

攻撃者が小さなリクエストを送ると、大量のデータが返ってくる特性を悪用した攻撃。

例:

DNSサーバーに小さな問い合わせを送ると、大きなレスポンスが返ってくる。

この仕組みを使い、攻撃対象に大量のトラフィックを送りつけます。

セキュリティ対策

DTLS(Datagram Transport Layer Security):

UDPに暗号化機能を追加したプロトコル。

WebRTC(ビデオ通話など)で使われています。

ファイアウォール設定:

必要なポートだけを開放し、不要なUDP通信をブロックします。

アプリケーション側での対策:

認証、暗号化、整合性チェックなどをアプリケーション層で実装します。


UDPとTCPの使い分け

どちらを使うべきか判断するポイントです。

UDPを選ぶべき場合

以下の条件に当てはまる場合、UDPが適しています:

  • リアルタイム性が最優先
  • 少しのデータ損失は許容できる
  • 大量のデータを効率的に送りたい
  • 低遅延が重要

具体例:

動画配信、音声通話、オンラインゲーム、センサーデータ

TCPを選ぶべき場合

以下の条件に当てはまる場合、TCPが適しています:

  • データの完全性が重要
  • 順序通りに届く必要がある
  • エラーがあってはならない
  • 多少の遅延は許容できる

具体例:

Webサイト閲覧、メール送受信、ファイルダウンロード、データベースアクセス


よくある質問

Q. UDPは信頼性が低いのに、なぜ使われるの?

A. 速度とリアルタイム性を優先する場合に適しているからです。

動画配信やゲームでは、古い情報を正確に受け取るより、最新の情報を素早く受け取る方が重要です。

多少データが欠けても、人間の目や耳では気づかない程度なら問題ありません。

Q. UDPで送ったデータは必ず届かない?

A. いいえ、多くの場合は正常に届きます。

UDPは確認しないだけで、実際にはほとんどのデータが正しく届きます。

ただし、ネットワークが混雑している場合や、通信経路に問題がある場合は、データが欠落する可能性があります。

Q. UDPとTCPは同時に使える?

A. はい、使えます。

1つのアプリケーションが、UDPとTCPの両方を同時に使うことも可能です。

例えば、オンラインゲームでは:

  • ゲームプレイのリアルタイムデータ → UDP
  • チャットメッセージやアカウント情報 → TCP

このように使い分けることがあります。

Q. 家庭用Wi-Fiルーターで、UDPをブロックすべき?

A. 基本的にはブロックしない方が良いです。

多くの一般的なサービス(DNS、動画配信、ゲームなど)がUDPを使っているため、ブロックすると不便になります。

ただし、セキュリティ上必要な場合は、特定のポートだけをブロックする設定が可能です。

Q. UDPは古い技術?

A. いいえ、現在も広く使われている現役の技術です。

インターネットの初期から存在する技術ですが、リアルタイム通信の需要が高まる現代において、むしろ重要性が増しています。

5G通信やIoT、リアルタイムAI処理など、最新技術でもUDPは活用されています。


まとめ:UDPは速度重視のシンプルなプロトコル

UDPは、インターネット通信を支える重要なプロトコルの1つです。

UDPの特徴:

  • コネクションレス:接続確立なしで送信開始
  • 高速:オーバーヘッドが小さく、遅延が少ない
  • 信頼性は低い:データが届いたか確認しない
  • シンプル:最小限の機能だけを持つ

TCPとの違い:

  • UDP:速いが確実性は低い(速達便)
  • TCP:確実だがやや遅い(書留郵便)

主な用途:

  • 動画・音声のストリーミング配信
  • オンラインゲーム
  • DNS、DHCP、NTPなどの基本サービス
  • VoIP(インターネット電話)
  • IoTセンサーデータ送信

セキュリティ:

  • 暗号化機能なし(DTLSなどで補完)
  • DDoS攻撃に悪用される可能性
  • ファイアウォールでの適切な管理が重要

UDPは、リアルタイム性が求められる現代のインターネットサービスに欠かせない技術です。

この記事を参考に、ネットワーク通信の基礎知識を深めてくださいね!

コメント

タイトルとURLをコピーしました