IPデータグラム 【IP datagram】 IPパケット / IP packet
概要
IPデータグラム(IP datagram)とは、IP(Internet Protocol)で送受信されるデータの単位。送りたいデータ本体に、宛先などの制御情報を付加した一定の長さのデータのまとまり。先頭部分は送信元アドレスや宛先アドレスなどの制御情報を格納したヘッダ部(IPヘッダ)となっており、続くペイロード部に送りたいデータ本体が格納される。
ペイロードの内部は上位のプロトコル(TCPやUDPなど)の送受信単位(UDPデータグラムやTCPパケット)となっており、そのペイロードの内部には、さらに上位のプロトコル(HTTPなど)のデータが積載されている。入れ子構造で上位のプロトコルのデータを運んでいる。
ヘッダには発信元IPアドレスや宛先IPアドレス、データ長、優先順位などを示すフラグなどで構成される。IPv4とIPv6では形式が異なるため、ネットワーク機器やソフトウェアはそれぞれに個別に対応している必要がある。アドレスの指定はIPv4では32ビットのIPv4アドレスで、IPv6では128ビットのIPv6アドレスで記載する。
サイズの制約とフラグメンテーション
IPの仕様上はデータグラム全体で最長65565バイトまでというサイズの制約があるが、イーサネット(Ethernet)やWi-FiなどIPデータグラムを伝送する下位の通信規格は1500バイトなどより短い制約が課されることが多い。
相手方までの通信経路上にある各機器が一度に送信できるサイズのうち、最も短いものを「パスMTU」という。長いデータを送りたいときは、その機器の送信できる上限もしくはパスMTUに合わせたサイズにデータを分割してIPデータグラムを構成する。
パケットとデータグラム
慣用的に「IPパケット」とも呼ばれるが、TCP/IPでは再送制御や受信順の保証などが行われる信頼性の高い通信プロトコルにおけるデータの送受信単位のことを「パケット」(packet)、そのような制御が行われない単純なプロトコルにおけるデータの送受信単位のことを「データグラム」(datagram)と呼ぶため、IPにおける送受信単位はIPデータグラムと呼ぶのが正式とされる。