UDP

読み:ゆーでぃーぴー / 英語表記:User Datagram Protocol

接続の確立を行わずに、データグラム単位でアプリケーション間のデータを運ぶコネクションレス型のトランスポート層プロトコルである。再送や到着順序の保証を備えず、ヘッダーは8バイトである。

イマシルちゃんの解説

UDPは、アプリケーション間でデータを運ぶトランスポート層のプロトコルだよ。
相手との接続を確立する手続きを省き、ひとまとまりのデータをデータグラムとして送るんだ。
受信の確認や再送、順番の並べ替えはUDP自身では行わないよ。
たとえば音声通話では、古い音声の再送を待たずに新しい音声の処理へ進む作りにできるんだ。
必要なら再送などの機能をアプリケーション側で補うこともできるよ。
UDPを使えば必ず速くなるのではなく、用途に合わせて必要な通信の仕組みを選べるところが特徴なんだ。

より深い解説

定義

UDP(User Datagram Protocol)は、RFC 768で定められたトランスポート層のプロトコルである。IPヘッダのプロトコル番号は17。コネクションレス型で、相手との接続を確立せずにデータ(データグラム)を送る。

TCPとの比較

UDPTCP
接続の確立しない3ウェイハンドシェイクで確立する
再送・順序の保証しないする
フロー制御・輻輳制御しないする
ヘッダの長さ8バイト20バイト以上
向いている用途速さや手軽さが大事なもの正確に届くことが大事なもの

UDPが「何もしない」のは欠点ではなく、必要な機能だけをアプリケーション側で作れるという長所でもある。CoAPやQUICのように、UDPの上に独自の再送や暗号化の仕組みを載せるプロトコルも多い。

ヘッダの構造

UDPのヘッダは、次の4つのフィールド(各2バイト)だけからなる。

フィールド長さ
送信元ポート番号2バイト
宛先ポート番号2バイト
長さ(ヘッダ+データ)2バイト
チェックサム2バイト

チェックサムは、IPv4では省略できる(0にすると「計算していない」の意味)が、IPv6では必須である。

UDPを使う主なプロトコル

プロトコルポート番号UDPを使う理由
DNS53問合せと応答が1往復で済み、速さが大事
DHCP67(サーバ)、68(クライアント)まだIPアドレスがない段階で、ブロードキャストを使うため
SNMP161、162監視の問合せを軽く行うため
NTP123時刻合わせは遅れて届くと意味がないため
RIP520経路情報を定期的に隣のルータへ送るため
syslog514ログを送りっぱなしにするため
TFTP69簡易なファイル転送
RTP可変音声や映像。遅れたデータは再送しても使えないため
QUIC(HTTP/3)443TCPの制約を避け、自前で再送と暗号化を行うため

DNSは、応答が大きい場合(ゾーン転送や、大きな応答を扱う場合)にはTCPも使う点に注意する。

実際の試験ではここに出る!全19問

ネットワークスペシャリスト

午前Ⅱ
午後Ⅰ
午後Ⅱ

この用語が出てくる記事

↑