Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

UDPヘッダ(ユーディーピーヘッダ)とは | 意味や読み方など丁寧でわかりやすい用語解説

UDPヘッダ(ユーディーピーヘッダ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

ユーディーピーヘッダ (ユーディーピーヘッダ)

英語表記

UDP header (ユーディーピーヘッダー)

用語解説

UDPヘッダは、インターネットプロトコルスイートにおけるトランスポート層プロトコルの一つであるUser Datagram Protocol (UDP) のデータグラムに付加される制御情報である。UDPは、Transmission Control Protocol (TCP) と並びトランスポート層の主要なプロトコルだが、TCPがコネクション指向で信頼性の高いデータ転送を提供するのに対し、UDPはコネクションレスで、信頼性よりも速度と効率性を重視したデータ転送を行う。UDPヘッダは、このUDPデータ転送において必要最低限の情報を提供し、データグラムが正しく目的地に到達し、適切なアプリケーションに渡されるための基本的な役割を担っている。システムエンジニアを目指す上で、このUDPヘッダがどのような構造を持ち、各フィールドがどのような意味を持つのかを理解することは、ネットワークアプリケーションの設計やトラブルシューティングにおいて非常に重要となる。

UDPヘッダの構造は非常にシンプルで、固定長の8バイトから構成される。この簡潔さがUDPの大きな特徴であり、データ転送におけるオーバーヘッドを最小限に抑えることに貢献している。UDPヘッダは以下の四つのフィールドで構成されている。

一つ目は「送信元ポート番号 (Source Port Number)」である。これは、データグラムを送信したアプリケーションを識別するための16ビット(2バイト)の番号である。TCP/IPネットワークにおいて、一つのホスト上で複数のアプリケーションが同時に通信を行う際に、どのアプリケーションがこのデータを作成し送信したのかを示す役割を持つ。例えば、ウェブブラウザやメールクライアント、ゲームアプリケーションなど、それぞれが異なるポート番号を使って通信する。この送信元ポート番号は、受信側が応答データを送る際に、どのアプリケーションにその応答を返せばよいかを判断するために利用される。

二つ目は「宛先ポート番号 (Destination Port Number)」である。これは、データグラムを受け取るべきアプリケーションを識別するための16ビット(2バイト)の番号である。送信元ポート番号と同様に、ホスト上で動作する多数のアプリケーションの中から、どの特定のアプリケーションがこのデータを受信すべきかを指定する。例えば、DNS (Domain Name System) サービスは通常ポート番号53番、NTP (Network Time Protocol) サービスはポート番号123番を使用するなど、特定のサービスには慣例的に決まったポート番号(ウェルノウンポート)が割り当てられていることが多い。受信側は、この宛先ポート番号を見て、適切なアプリケーションプロセスへデータグラムを配信する。

三つ目は「UDP長 (UDP Length)」である。これは、UDPヘッダそのものと、それに続くユーザーデータ(ペイロード)を含めたUDPデータグラム全体のバイト数を示す16ビット(2バイト)の値である。UDPヘッダは常に8バイトであるため、このUDP長は最低でも8バイトとなる。このフィールドがあることで、受信側はどこまでがこのUDPデータグラムの一部であるかを正確に把握でき、データグラムの終端を識別することが可能となる。もしこの値が実際のデータグラム長と異なっていれば、データに何らかの破損や欠損が発生したと判断される可能性がある。

四つ目は「チェックサム (Checksum)」である。これは、データが転送中に破損していないかを確認するためのエラー検出機構を提供する16ビット(2バイト)の値である。送信側で、UDPヘッダ、ユーザーデータ、そして特定の情報(IPヘッダの一部などを含む擬似ヘッダ)を基に特定のアルゴリズムでチェックサムが計算され、UDPヘッダに格納される。受信側では、同様の方法でチェックサムを再計算し、UDPヘッダに含まれるチェックサムの値と比較する。もし両方の値が一致しない場合、データグラムが転送中に何らかの形で変更された、つまり破損したと判断される。UDPプロトコル自体にはエラー訂正や再送の仕組みがないため、チェックサムの不一致が検出されたデータグラムは通常、破棄される。これは信頼性の確保がアプリケーション層に委ねられているUDPの特性を反映している。なお、IPv4環境ではチェックサムの計算と格納はオプションだが、IPv6環境では必須となっている。これは、IPv6ではネットワーク層でのヘッダチェックサムが廃止されたため、トランスポート層でデータ完全性を保証する必要性が高まったためである。

UDPヘッダのこれらのフィールドは、UDPが「高速」で「低オーバーヘッド」なデータ転送を実現するための最小限の機能を提供している。コネクション確立やフロー制御、輻輳制御、信頼性のためのシーケンス番号や確認応答、再送といった複雑なメカニズムを省くことで、リアルタイム性が求められる音声や動画のストリーミング、DNSクエリ、オンラインゲーム、ネットワーク時刻同期(NTP)など、特定の目的を持つアプリケーションでUDPは非常に有効に活用されている。UDPヘッダのシンプルな構造を理解することは、これらのアプリケーションがどのようにネットワーク上で動作しているかを深く理解するための第一歩となる。

関連コンテンツ