UDPヘッダ

  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データグラム         |
 :                                   :