目次
UDPとは
UDP(User Datagram Protocol)は、TCPと同じくトランスポート層で動作するプロトコルです。
TCPは信頼性を重視しますが、UDPは「速さ」や「リアルタイム性」を重視しています。
TCPは通信を始める前に相手とコネクションを確立します(コネクション型通信)。
一方、UDPはコネクションを確立せずにいきなりデータを送ります(コネクションレス型通信)。
そのため、TCPのような再送制御や順序制御はありません。
データが失われたり順番が入れ替わる可能性はありますが、動作がシンプルなので非常に高速です。
UDPヘッダのフォーマット
UDPのヘッダはシンプルで、以下の4つのフィールドだけで構成されています。
| 各フィールド | ビット数 | 説明 |
|---|---|---|
| 送信元ポート番号 | 16 bit | データを送ったアプリケーションを識別 |
| 宛先ポート番号 | 16 bit | データを受け取るアプリケーションを識別 |
| パケット長 | 16 bit | ヘッダ+データ全体の長さ |
| チェックサム | 16 bit | エラーチェック用の値 |
UDPの特徴
UDPは以下のような特徴を持ちます。
- コネクションレス型の通信方式
- 信頼性は低い(データが欠けても再送しない)
- 転送速度が速い
- ヘッダが小さい(8バイト)ので効率的
初心者向けイメージ
TCP=宅配便(必ず届くように確認して届けるが時間がかかる)
UDP=新聞配達(ポストに入れるだけ。確認はしないので早いが、なくなる可能性もある)
UDPの用途
- 音声・映像などリアルタイム通信
通話や動画配信は少しの遅延が致命的になるため、信頼性よりスピード重視でUDPが使われます。 - 複数宛先への同時配信
マルチキャストやブロードキャスト通信では、コネクションレスのUDPが適しています。 - 少量データのやり取り
DNSの名前解決など、1回の問い合わせと1回の応答で完了する通信に使われます。
TCPとUDPの比較
| 項目 | TCP | UDP |
|---|---|---|
| 通信方式 | コネクション型 | コネクションレス型 |
| 信頼性 | 高い | 低い |
| 転送速度 | 遅い | 速い |
| 上位プロトコル | HTTP, FTP, SMTP, POP など | DNS, NTP, DHCP, SNMP など |
| 主な用途 | Web閲覧、メール、ファイル転送 | 音声通話、動画配信、マルチキャスト通信、ブロードキャスト通信 |
TCPは「必ず正しく届けたい通信」、UDPは「速さを優先したい通信」で使い分けられます。