ユーザーデータグラムプロトコル(UDP)

UDP(User Datagram Protocol)とは

UDP(User Datagram Protocol)は、インターネットで広く使用されているトランスポート層プロトコル(レイヤー4)の1つです。TCPと同様に、IPの上位層プロトコルとして動作します。

UDPヘッダーには送信元と宛先のポート番号が含まれており、ポートを指定した通信が可能です。TCPとは異なり、UDPはコネクションレス型のプロトコルであるため、ハンドシェイクによるセッションの確立や終了を必要としません。フロー制御、エラー制御、輻輳制御などの機能はなく、メッセージを一方向に送信するメッセージ指向プロトコルとして動作します。

信頼性を確保する仕組みがないため、UDPは通信エラーへの耐性が低く、TCPほど高い信頼性はありません。一方で、速度やリアルタイム性が求められる通信に適しています。また、コネクションレス型であることから、複数の受信先にデータを同時送信できるマルチキャスト通信やブロードキャスト通信にも適しています。UDPの一般的な用途は次のとおりです。

  • ドメインネームサーバーへの問い合わせに使用されるDNS
  • IPアドレスの自動割り当てに使用するDHCP
  • ネットワークデバイス管理用のSNMP
  • UPnP対応デバイス向けのSSDP
  • 時刻同期用のNTP

ただし、UDPはパケットを一方向に送信できるため、DoS/DDoS攻撃に悪用されるおそれがあります。たとえばUDPフラッド攻撃では、複数のコンピューターから大量のUDPパケットを送信し、ネットワークを過負荷状態にします。また、UDP経由でクエリを送信した場合、応答時に送信元が検証されないため、送信元IPアドレスを詐称し、被害者を標的とするリフレクション攻撃が可能になります。