目 次
目 次/関連項目

4.4 UDP

4.4.1 UDPについて

 UDP(User Datagram Protocol)はトランスポート層に位置するプロトコルで、通信に信頼性がないコネクションレス(データグラム)型のプロトコルである。TCPと違い、送信先にデータが届いたかどうか確認をとらず、処理が簡単である。そのため、通信速度はTCPよりも早い。
 UDPは信頼性はないが、高速な通信が行えるので、以下のような目的に利用される。
  • 音声や動画などのマルチメディア通信
  • データ量の小さい通信
  • ブロードキャスト、マルチキャスト

4.4.2 UDPヘッダフォーマット

 UDPパケットはUDPヘッダとUDPデータから構成されている(図4.4.1)。UDPヘッダについては図4.4.2に詳細を示す。各フィールドの説明は4.4.3で行う。UDPデータの部分には各アプリケーションのデータが入っている。

UDPHeader
(UDPヘッダ)
UDPData
(UDPデータ)
図:4.4.1UDP パケット


0  
1
6
31
Source Port
(送信元ポート番号)
Destination Port
(宛先ポート番号)
Length
(パケット長)
Checksum
(チェックサム)
図4.4.2 UDPヘッダ

4.4.3 フィールドごとの説明

■Source Port (送信元ポート番号)
 送信元のポート番号が16ビットで格納される。相手からの返事を必要としない通信なので送信元のポート番号はなくてもよい。その場合は値を0とする。
■Destination Port (宛先ポート番号)
 送信先のポート番号が16ビットで格納される。
■Length(パケット長)
 16ビットのフィールドで、UDPヘッダの長さと、UDPデータの長さをあわせた値がオクテット単位で格納される。
■Checksum (チェックサム)

送信元IPアドレス
宛先IPアドレス
パディング
0
プロトコル番号
17
UDPパケット長
図4.4.3 UDP疑似ヘッダ

 チェックサムは送信されたデータが壊れていないか確かめるために用いられるものである。
 チェックサムは16ビットで構成され、UDPのヘッダとデータの信頼性を保証するものである。チェックサムの計算には図4.4.3のUDP疑似ヘッダを一時的にUDPパケットの先頭に付加する。そして、疑似ヘッダとUDPパケットの合計が16ビットの倍数になるようにデータの最後に0を追加する。また、UDPヘッダのチェックサムフィールドは0にしておく。そして、16ビットごとに1の補数を求めてさらにその合計の1の補数を求めたものをチェックサムフィールドに入れる。
 受信側では、UDPパケットを受け取るとIPヘッダからIPアドレスの情報を得てUDP疑似ヘッダを作成し、チェックサムを再計算する。チェックサムフィールドにはチェックサム以外の全てのヘッダとデータの和の補数が入っているので、チェックサムを含む全てのデータを足した値が0になればこのUDPパケットの中身は正しく受信されたことになる。