【ネットワーク】UDPのヘッダー

概要

ここではUDPで使用されているヘッダー情報について解説していきます。ヘッダー情報は下記の内容で構成されています。

送信元ポート番号(Source Port)

16ビットで構成された送信元のポート番号を表します。返事を必要としない通信ではこの値を指定せず「0」とすることも可能です。

宛先ポート番号(Destination Port)

16ビットで構成された宛先のポート番号を表します。

パケット長(Length)

UDPヘッダとデータの長さの和が格納され、チェックサムを計算する部分を示しています。単位はオクテットです。

チェックサム(Checksum)

ヘッダーとデータの信頼性を示すために利用され、「0」を入力する事で使用せずにオーバーヘッドを小さくすることも可能だが、使用が奨励されている。

送信側での計算は下記のように行われる。

  1. UDP疑似ヘッダーをデータグラムの前につける。
  2. 全長が16ビットの倍数になるようにデータの最後に「0」をつける。
  3. チェックサムフィールドに「0」を入力する。
  4. 16ビット単位で1の補数の和を求める。
  5. 求まった和の1の補数をチェックサムフィールドに入力する。

受信側では同様に疑似ヘッダーを作成して計算を行います。ただし、№3のチェックサムフィールドの値を「0」にせず計算を行います。送信側で計算で求めたチェックサムの値はチェックサムフィールドを「0」にしている事から「チェックサム部分以外の和の補数」が入っているといえます。そのため、受信側で計算したチェックサムを含むすべての和の補数を計算すれば16Bitすべてが「1」になり、ヘッダーやデータの破損が無いといえます。

疑似ヘッダー

チェックサムを計算する際にチェックサムを利用する理由としてはTCPは送信元/宛先のIPアドレス、送信元/宛先のポート番号、プロトコルの5つで判断を行うため、IPアドレスのチェックも出来るようにこのようなヘッダーを付加しています。

コメント

タイトルとURLをコピーしました