IPデータグラム 【IP datagram】 IPパケット / IP packet

概要

IPデータグラム(IP datagram)とは、IP(Internet Protocol)で送受信されるデータの単位。送りたいデータ本体に、宛先などの制御情報を付加した一定の長さのデータのまとまり。

先頭部分は送信元アドレス宛先アドレスなどの制御情報を格納したヘッダ部IPヘッダ)となっており、続くペイロード部に送りたいデータ本体が格納される。

ペイロードの内部は上位のプロトコル(TCPやUDPなど)の送受信単位(UDPデータグラムTCPパケット)となっており、そのペイロードの内部には、さらに上位のプロトコル(HTTPなど)のデータが積載されている。入れ子構造で上位のプロトコルのデータを運んでいる。

ヘッダには発信元IPアドレスや宛先IPアドレス、データ長、優先順位などを示すフラグなどで構成される。IPv4IPv6では形式が異なるため、ネットワーク機器やソフトウェアはそれぞれに個別に対応している必要がある。アドレスの指定はIPv4では32ビットのIPv4アドレスで、IPv6では128ビットのIPv6アドレスで記載する。

サイズの制約とフラグメンテーション

IPの仕様上はデータグラム全体で最長65565バイトまでというサイズの制約があるが、イーサネット(Ethernet)やWi-FiなどIPデータグラムを伝送する下位の通信規格は1500バイトなどより短い制約が課されることが多い。

相手方までの通信経路上にある各機器が一度に送信できるサイズのうち、最も短いものを「パスMTU」という。長いデータを送りたいときは、その機器の送信できる上限もしくはパスMTUに合わせたサイズにデータを分割してIPデータグラムを構成する。

パケットとデータグラム

慣用的に「IPパケット」とも呼ばれるが、TCP/IPでは再送制御や受信順の保証などが行われる信頼性の高い通信プロトコルにおけるデータの送受信単位のことを「パケット」(packet)、そのような制御が行われない単純なプロトコルにおけるデータの送受信単位のことを「データグラム」(datagram)と呼ぶため、IPにおける送受信単位はIPデータグラムと呼ぶのが正式とされる。

(2024.9.6更新)

IPv4のデータグラム形式

0ビット 31ビット
バージョン
4ビット
データ長
4ビット
サービスタイプ(TOS)
8ビット
全データ長(バイト単位)
16ビット
分割された場合の識別子
16ビット
フラグ
3ビット
フラグメントオフセット
13ビット
生存時間(TTL)
8ビット
プロトコル
8ビット
ヘッダチェックサム
16ビット
発信元IPアドレス
32ビット
宛先IPアドレス
32ビット
オプション
不定長
パディング
32nビット-オプション長


データ


IPv6のデータグラム形式

0ビット 31ビット
バージョン
3ビット
優先順位
9ビット
フローラベル
20ビット
ペイロード長
16ビット
次のヘッダ
8ビット
ホップ制限
8ビット

発信元IPアドレス
128ビット


宛先IPアドレス
128ビット

拡張ヘッダ
可変長


データ