UDP通信の速度特性とリアルタイム通信

UDP通信の速度

UDP通信の速度特性とリアルタイム通信への適用|低遅延・高スループットの仕組み

ネットワーク通信には大きく分けてTCPとUDPという2つの主要プロトコルがあります。 TCPは信頼性重視の通信方式であるのに対し、 UDP(User Datagram Protocol)は「低遅延・軽量・高速」を特徴とする通信方式です。

特にリアルタイム通信(音声通話・動画配信・オンラインゲームなど)では、 UDPが広く利用されています。 これは、多少のデータ損失よりも「遅延の少なさ」が重要になるためです。

本記事では、UDP通信の速度特性とTCPとの違い、 なぜリアルタイム通信に適しているのか、 そして実務での適用ポイントについてエンジニア向けに詳しく解説します。

UDPとは

UDPはトランスポート層(L4)で動作するプロトコルで、 接続確立や再送制御を行わないシンプルな通信方式です。

TCPとは異なり、以下のような特徴があります。

  • コネクションレス(接続確立なし)
  • 再送制御なし
  • 順序保証なし
  • 輻輳制御なし
  • ヘッダが軽量(8バイト)

その代わりに、非常に低いオーバーヘッドと高速な処理が可能です。

UDPの速度特性

UDPはTCPと比較して、以下の点で高速です。

1. 接続確立が不要

TCPでは3ウェイハンドシェイクが必要ですが、 UDPでは即座にデータ送信が可能です。


TCP:SYN → SYN/ACK → ACK → 通信開始
UDP:即送信

2. 再送制御がない

TCPではパケットロスが発生すると再送が行われますが、 UDPでは再送しません。

これにより、スループット低下を防ぐことができます。

3. ヘッダが軽量


TCPヘッダ:約20バイト以上
UDPヘッダ:8バイト

オーバーヘッドが小さいため、帯域効率が向上します。

4. 輻輳制御がない

TCPはネットワーク状況に応じて速度を制限しますが、 UDPは制御しません。

そのため、理論的には回線の限界まで送信可能です。

UDPのデメリット

UDPは高速ですが、以下のような問題もあります。

  • パケットロスが発生する
  • 順序が保証されない
  • データ欠損が発生する可能性
  • アプリケーション側で制御が必要

つまり、UDPは「速いが不安定」な通信方式です。

リアルタイム通信にUDPが適している理由

リアルタイム通信では、 データの完全性よりも「遅延」が重要です。

例:音声通話

  • 多少の音切れ → 許容される
  • 遅延(1秒以上) → 会話成立しない

TCPでは再送により遅延が増加するため、 リアルタイム用途には不向きです。

UDPではロスがあっても即次のデータを送るため、 低遅延を維持できます。

主なUDP利用アプリケーション

  • VoIP(音声通話)
  • 動画ストリーミング(低遅延)
  • オンラインゲーム
  • DNS
  • DHCP
  • NTP

RTPとUDP

リアルタイム通信では、UDP単体ではなくRTP(Real-time Transport Protocol)が使用されます。

RTPはUDP上で動作し、 以下の機能を提供します。

  • シーケンス番号
  • タイムスタンプ
  • ジッタ補正

これにより、UDPの弱点を補いつつリアルタイム通信を実現します。

ジッタとバッファリング

UDP通信では、パケット到着時間のばらつき(ジッタ)が問題になります。

これを補正するために、 受信側ではジッタバッファが使用されます。


ジッタバッファ
→ 一時的に蓄積
→ 再生タイミング調整

ただし、バッファが大きいと遅延が増加するため、 トレードオフがあります。

UDPと帯域制御

UDPには輻輳制御がないため、 アプリケーション側で帯域制御を行う必要があります。

例:

  • ビットレート制御(動画配信)
  • フレームレート調整
  • パケット送信間隔の制御

適切に制御しないと、ネットワークを圧迫する可能性があります。

QUICとUDP

近年では、UDP上で動作する新しいプロトコル「QUIC」が注目されています。

QUICはUDPの低遅延性を活かしつつ、 TCPのような信頼性制御を実装しています。

  • HTTP/3で使用
  • 低遅延接続
  • 再接続高速化

これにより、Web通信でもUDPが活用されるようになっています。

実務での注意点

  • パケットロス対策(FECなど)
  • 帯域制御の実装
  • QoS設定
  • ファイアウォールの許可設定
  • NAT越え(STUN/TURN)

よくある誤解

UDPは常に速い

→ ロスや再送がないため速いが、品質は保証されない。

TCPは遅い

→ 信頼性を確保するための制御があるため。

UDPは不安定で使えない

→ リアルタイム用途では最適。

まとめ

UDPは、接続確立・再送制御・輻輳制御を省略することで、 非常に低遅延かつ高速な通信を実現します。

その代わり、信頼性は保証されないため、 アプリケーション側で補完する必要があります。

リアルタイム通信では、 「多少のロスより低遅延」が重要なため、 UDPが最適な選択となります。

また、QUICの登場により、 UDPは今後さらに重要な役割を担うプロトコルとなっています。

UDPの特性を正しく理解することで、 用途に応じた最適な通信設計が可能になります。