データグラムとは
データグラムは、ネットワーク上でデータを転送する際の基本的な単位であり、特に
パケット交換ネットワークにおいて使用されます。データグラムの特徴は、配送の成功、到達時間、到達順序がネットワークサービスによって保証されない点にあります。これは、信頼性よりも効率性を優先する通信モデルで利用されます。
データグラムの概要
データグラムは、フラグメンテーション(分割)が行われていない状態のデータの転送単位を指します。各データグラムは、ヘッダ部とペイロード部という2つの主要な部分から構成されます。
ヘッダ部: 送信元から宛先までのルーティングを決定するために必要な情報が格納されています。これには、送信元と宛先のアドレス、ペイロードの種類などが含まれます。事前に端末装置とネットワークの間でやり取りする必要はありません。
ペイロード部: 実際に転送されるデータそのものが含まれます。
ヘッダに情報を付加し、データ(ペイロード)を包むように構成することをカプセル化と呼びます。
「データグラム」と「パケット」の違い
「データグラム」と「
パケット」はしばしば同義語として扱われますが、ニュアンスには若干の違いがあります。
データグラム: 一般的に、宛先に届かない場合でもユーザーに通知しない、信頼できないサービスで送られるパケットを指します。
パケット: パケットとしてフォーマットされたメッセージ全般を指します。
例えば、IP(
Internet Protocol)は信頼性の低いサービスを提供し、その上で動作するUDP(User Datagram Protocol)も信頼性が低いプロトコルです。そのため、IPやUDPで転送される
パケットは一般にデータグラムと呼ばれます。
データグラムの歴史
「データグラム」という用語は、1970年代初頭の
パケット交換網であるCYCLADESプロジェクトで初めて使用されました。この用語は、ルイ・プザンによって「データ」と「テレグラム」を組み合わせて作られました。CYCLADESは、信頼性の低いデータグラムとエンドツーエンドプロトコルを組み合わせ、データの確実な配信責任をネットワークではなくホストに負わせた最初のネットワークの一つです。
データグラムの定義
RFC 1594では、データグラムは次のように定義されています。
データグラムは、以前の通信に依存せず、自己完結していなければならない。
これは、電話のように通信ポイント間に一定時間接続を維持するのではなく、各データグラムが独立して転送されることを意味します。
データグラムサービスは、郵便配達サービスによく例えられます。ユーザーは宛先アドレスを指定するだけで、配達が保証されるわけではありません。また、配達されたことを確認する手段もありません。したがって、データグラムサービスは「信頼できない」サービスと呼ばれます。また、データグラムは最初に経路を決定せずに転送されるため、「コネクションレス」なサービスとも呼ばれます。さらに、データグラムが宛先に届く順序は保証されません。同じグループに属する複数のデータグラムが、異なる経路をたどって同じ宛先に到着することがあります。
データグラムの構造
各データグラムは、ヘッダとペイロードの2つの部分で構成されます。
ヘッダ: データグラムを送信元から宛先に配送するために必要なすべての情報が含まれています。これには、送信元アドレス、宛先アドレス、データタイプなどが含まれます。
ペイロード: 実際に送信したいデータが含まれています。
データグラムの例
IPプロトコルは、データグラムを使用してネットワークを介してデータを転送します。UDPプロトコルは、IPプロトコル上で動作する別のプロトコルです。UDPは、信頼性や順序保証を提供しないため、データグラムに適したプロトコルです。
フラグメンテーション
データグラムが断片化(IPフラグメンテーション)された場合、各断片は「
パケット」と呼ばれ、「データグラム」とは呼ばれません。TCP(
Transmission Control Protocol)では、断片は「セグメント」と呼ばれます。これは、信頼性の低い断片と区別するためと考えられます。
データグラムのまとめ
データグラムは、ネットワークにおいて効率的なデータ転送を可能にする重要な概念です。信頼性の低いサービスに適しており、IPやUDPなどのプロトコルで使用されます。データグラムの理解は、ネットワーク通信の仕組みを理解する上で不可欠です。
関連項目
[パケット]]: OSI参照モデルの[[ネットワーク層]におけるデータ通信単位。
フレーム(ネットワーク): [OSI参照モデル]]の[[データリンク層]におけるデータ通信単位。