データグラム()は、配送成功・到達時間・到達順序がネットワークサービスによって保証されることがないパケット交換網における基本転送単位である。

概要 大まかに言えばフラグメンテーションが行われていない状態のデータの転送単位を指す。

個々のデータグラムは、ヘッダ部とペイロード部という2つの部分から構成される。ヘッダには送信元から宛先までルーティングを決定するのに十分な情報が格納されており、事前に端末装置とネットワークの間でやり取りする必要はない。

ヘッダには、送信元と宛先のアドレスやペイロードの種類を示す情報などがある。ペイロードは転送すべきデータである。タグ付きヘッダでこの構造を入れ子にすることをカプセル化と呼ぶ。

Internet Protocol (IP) 標準では何種類かのデータグラムが規定されている。

「データグラム」は「パケット」と同義語として扱われることが多いが、ニュアンスは若干異なる。「データグラム」は一般に、宛先に届かない場合でもユーザに通知しない、信頼できないサービスでのパケットを意味する。一方、「パケット」はパケットとしてフォーマットされたメッセージ一般を指す。例えば、IPは信頼できないサービスを提供し、その上のUDPも信頼できない。そのため、IPおよびUDPのパケットは一般にデータグラムと呼ばれるKurose, James F. & Ross, Keith W. (2007), "Computer Networking: A Top-Down Approach" 。

歴史 「データグラム」という用語は、1970年代初期に作られたパケット交換網であるCYCLADESプロジェクトで最初に使われた。ルイ・プザンによって「データ」と「テレグラム」を組み合わせて作られた単語である"Postel and Pouzin: 1997 SIGCOMM Award Winners", ACM SIGCOMM web site。CYCLADESは信頼できないデータグラムとエンドツーエンド・プロトコルを結びつけ、確実にデータを届ける責任をネットワーク自体ではなくホストに負わせた最初のネットワークである。

これらのコンセプトは、後にIPなどでも採用された。

定義 ではデータグラムは次のように定義されている:

電話などとは違い、2つのコミュニケーションポイント間に一定時間持続する接続が存在しないため、データグラムは以前の通信に依存せず自己完結していなければならない。

データグラムのサービスはよくメール配送サービスに例えられる。利用者は宛先アドレスを指定するだけで、確実に配送される保証は受け取らない。そして配送されたことを確認する手段はない。そのため、データグラムのサービスは信頼できないと言われる。データグラムのサービスは最初に経路を決定することなしにデータグラムを転送することから、データグラムのサービスはコネクションレスであると言われる。また、データグラムが届けられる順番も保証されない。実際、同じグループに属する複数のデータグラムが異なる経路をたどって同じ宛先に届くこともある。

構造 各データグラムは、ヘッダとペイロードの2つの部分から構成される。

ヘッダは以前の通信に依存せず、送信元から送信先に配送するために十分な情報をすべて含んでいる。ヘッダは送信元アドレス、送信先アドレス、そしてタイプを含んでいることもある。ペイロードは送信したいデータのことである。このように、ペイロードに対してヘッダをつける処理のことをカプセル化という。

例 OSIレイヤー データグラムの名前 Layer 4 データセグメント Layer 3 データパケット Layer 2 フレーム (IEEE 802.3) フレーム (IEEE 802.11) セル (ATM) Layer 1

フラグメンテーション データグラムが断片化(IPフラグメンテーション)された場合、個々の断片はパケットと呼び、データグラムとは呼ばない, 2.3. Function Description: "… to traverse a network whose maximum packet size is smaller than the size of the datagram."。

TCPでは、その断片のことを「セグメント」と呼び、パケットとは呼ばない。これは、信頼できない断片と区別するためと見られる。

脚注

関連項目 パケット - OSI参照モデルのネットワーク層 (Layer 3) におけるデータ通信単位。 フレーム (ネットワーク) - OSI参照モデルのデータリンク層 (Layer 2) におけるデータ通信単位。