UDPヘッダのフォーマット

UDPは前述の通り、クライアントのアプリケーションとサーバのアプリケーション間でのデータのやり取りを規定するだけの シンプルな構成のため、負荷が軽いですがやフロー制御や輻輳制御といった、信頼性や通信の効率性を提供する機能はありません

シーケンス番号なども無いため、パケットの到着の順番が入れ替わってもUDPレベルでは認識できません。

VoIP等のリアルタイムアプリケーションにおいては、順番が変わると影響があるため、UDPの上位のレイヤー(例えばRTP) で順番の確認をすることがあります。

スポンサーリンク
スポンサーリンク

UDPのフォーマット

UDPの通信データ単位はTCPと同様、"セグメント"と呼ぶことが多く、ここでもそれに倣うことにします。

以下にUDPセグメントのフォーマットを示します。UDPはIPv4の上位レイヤーとして使う場合、IPv4のプロトコルフィールドに Ox11(10進数:17)を指定します。

スポンサーリンク

送信元ポートField

16bit。送信元で利用するポート番号が入ります。送信元がクライアントの場合、多くのシーンで1024以上のHigher Portと呼ばれるポート群から適当なものが利用されます。

宛先ポートField

16bit。宛先で利用するポート番号が入ります。宛先がサーバの場合、サービスに応じたポート番号になります。 例えば、TFTPサーバへの通信であれば69、NTPサーバへの通信であれば123が入ります。

セグメント長Field

16bit。UDPヘッダとUDPデータ領域の長さをByte単位で示します。

チェックサムField

16bit。このFieldではUDPヘッダ、UDPデータだけでなく、送信元IPアドレス、宛先IPアドレス、プロトコル番号(Ox11)、 UDPセグメント長も検査されます。前述したTCPの信頼性のチェックサム と同じように、同じ擬似IPヘッダを使い、同じ方法で計算されます。

TCP/UDP の勉強については、以下の書籍がお薦めです。

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク