0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (1) | (2) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (3) | (4) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | : : UDP Header Format http://www.ietf.org/rfc/rfc768.txtを参考に作成
UDPヘッダは必ず8バイト。
(1) Source Port(送信元ポート番号(16bit))
(2) Destination Port(宛先ポート番号(16bit))
(3) Length(UDPデータグラム長:UDPヘッダとUDPペイロードを合わせたUDPデータグラムの長さをオクテット単位で示す。(16bit→0〜65535バイト))
(4) Checksum(チェックサム:UDP疑似ヘッダを追加したUDPデータグラムのチェックサム。。計算方法などはhttp://www.mew.org/~kazu/bsdmag/cksum.htmlが詳しい。(16bit))
UDPデータグラム長は、TCPセグメント長とは異なり、計算しなくてもUDPヘッダにもともと入っている。
UDP疑似ヘッダ +--------+--------+--------+--------+ | 送信元IPアドレス | +--------+--------+--------+--------+ | 宛先IPアドレス | +--------+--------+--------+--------+ |00000000|00010001|UDPデータグラム長|←前は0パディングとプロトコル番号(UDPは17) +--------+--------+--------+--------+ | UDPデータグラム | : :