ユーザー データグラム プロトコル (UDP) は RFC 768『ユーザー データグラム プロトコル (UDP)』で定義されている TCP/IP 規格です。UDP は TCP/IP ホスト間で、高速・低負荷で信頼性をあまり必要としないデータ通信を実現するために、一部のプログラムによって TCP の代わりに使用されます。
UDP はコネクションレスなデータグラム サービスを提供し、配信には最善の努力をします。つまり、UDP は確実にデータが届くことを保証しませんし、データグラムの順序の検証も行いません。信頼性のある通信を必要とする送信元ホストは、TCP を使用するか、順序確認と受信確認のサービスを独自に用意したプログラムを使用する必要があります。
UDP メッセージは、次の図のように、IP データグラムにカプセル化されて送信されます。
UDP ポートは、UDP メッセージの送信と受信を行う場所を提供します。UDP ポートは、プロトコルのポート番号で指定されるプログラムが送信先となるすべてのデータグラムを受信する単一のメッセージ キューとして機能します。このため、UDP ベースのプログラムは一度に複数のメッセージを受信できます。
UDP を使用する各プログラムのサーバー側は、使用している既知のポート番号に到着するメッセージをリッスンします。1024 未満のすべての UDP サーバー ポート番号および 1024 以上の一部のポート番号は、IANA (Internet Assigned Numbers Authority) によって予約および登録されています。
UDP サーバー ポートは、予約されたポート番号または既知のポート番号で識別されます。次の表は、標準的な UDP ベースのプログラムが使用する既知の UDP サーバー ポート番号の一部です。
| UDP ポート番号 | 説明 |
|---|---|
| 53 | DNS 名クエリ |
| 69 | 簡易ファイル転送プロトコル (TFTP) |
| 137 | NetBIOS ネーム サービス |
| 138 | NetBIOS データグラム サービス |
| 161 | 簡易ネットワーク管理プロトコル (SNMP) |
| 520 | 通信経路選択情報プロトコル (RIP) |
現在登録されているすべての既知の UDP ポートの最新で完全な一覧については、ポート番号の Web サイトを参照してください。
注
一般に、UDP と TCP によるデータ配信の違いは、電話とはがきの違いに似ています。TCP は、送信先が利用可能で通信の準備が整っていることを確認するので、電話に似ています。UDP は、メッセージ量も少なく、配信のされ方も確実に届くことが保証されない点ではがきに似ています。
通常、UDP は、データを少しずつ送信するプログラムや、リアルタイムを要件とするプログラムによって使用されます。これらの場合は、UDP の処理負荷の軽さと、1 つのデータグラムを多数の宛先に送信できる UDP のマルチキャスト機能の方が、TCP よりも適しています。
UDP が提供するサービスと機能は、TCP と対照的です。次の表は、データの転送に UDP と TCP のどちらを使用するかによって TCP/IP 通信の処理にどのような違いがあるかを比較したものです。
| UDP | TCP |
|---|---|
| コネクションレス サービス。ホスト間にセッションは確立されません。 | コネクション指向サービス。ホスト間にセッションが確立されます。 |
| UDP は、配信の保証も確認も行わず、データのシーケンス化も行いません。 | TCP は、受信確認の使用と、データのシーケンシャルな配信により、配信を保証します。 |
| UDP を使用するプログラムは、データの転送に信頼性が必要な場合、独自に実現する必要があります。 | TCP を使用するプログラムは、信頼性のあるデータ転送を保証されます。 |
| UDP は高速であり、処理負荷が小さく、Point-to-Point 通信とポイント ツー マルチポイント通信のどちらもサポートできます。 | TCP は UDP よりも低速で、処理負荷が大きく、Point-to-Point 通信だけをサポートしています。 |
UDP と TCP のどちらも、各 TCP/IP プログラムの通信の識別にポートを使用します。