データグラムは、パケット交換ネットワークに関連付けられた基本的な転送単位です。データグラムは通常、ヘッダー部とペイロード部で構成されます。データグラムは、パケット交換ネットワーク上でコネクションレス型の通信サービスを提供します。データグラムの配信、到着時刻、および到着順序は、ネットワークによって保証される必要はありません。
1970年代初頭、パケット交換に関するCCITT報告者[1] Halvor Bothner-By氏[ 2]により、データとテレグラムを組み合わせたデータグラムという用語が作成されました。[ 3 ]言葉は新しいものでしたが、その概念にはすでに長い歴史がありました。
1964年、ポール・バランはランド研究所の報告書の中で、核攻撃に耐えなければならない仮想的な軍事ネットワークについて説明しました。送信元アドレスと宛先アドレスを持つ小さな標準化されたメッセージブロックは、高度に冗長化されたメッシュ型コンピュータネットワークのコンピュータノードに保存・転送されました。バランは次のように述べています。「エンドステーションへの仮想接続を確立し、メッセージを送信したネットワーク利用者は、システムを見かけ上の回線接続を提供するブラックボックスと見なす可能性があります」[4] 。現在仮想回線と呼ばれている概念は、この設計に登場していますが[5]、実際にはネットワークは構築されていませんでした。
1967年、ドナルド・デイヴィスはパケットとパケット交換を紹介した画期的な論文を発表しました。彼が提案したコアネットワークは、ポール・バランが提案したものと似ていますが、独自に開発されました。彼は「ネットワークのすべてのユーザーが何らかのエラー制御を自ら用意する」ことを前提としています。彼が目指したのは「共通通信事業者による通信ネットワーク」です。当時、文字単位で伝送されていたユーザー端末によるコンピュータサービスへのリモートアクセスをサポートするため、彼はネットワークの周辺に、文字フローをパケットフローに変換し、その逆も行うインターフェースコンピュータを組み込みました。[6]デイヴィスは次のように記しています。「我々は仮想回線にかなり反対でした。通信ネットワークはパケットのみを扱うべきであり、これらのパケットを組み立てるプロトコルはエンドツーエンド、つまり顧客同士の間で行われるべきだと考えていたからです。」[5]
1970年、ローレンス・ロバーツとバリー・D・ウェスラーは、世界初のマルチノード・パケット交換ネットワークであるARPANETに関する論文を発表しました。 [7]付随論文では、その交換ノード(IMP)とパケットフォーマットについて説明しました。[8]ネットワークコアは、バランとデイヴィスのモデルと同様にデータグラム交換を実行しましたが、ネットワークがホストに提供するサービスはコネクション指向でした。[9] [10]こうして、信頼性の高いメッセージ転送サービスがユーザーコンピュータに提供され、ネットワーク設計が大幅に簡素化されました。これにより、ARPANETは後に仮想回線ネットワークと呼ばれるようになりました。[11]
ロバーツは通信専門家たちにパケット交換のアイデアを提示したが、怒りと敵意に直面した。ARPANETが稼働する前は、ルーターのバッファがすぐに枯渇すると主張した。ARPANETが稼働した後は、政府の補助金なしではパケット交換は経済的に成り立たないと主張した。バランも同様の拒絶に直面し、軍にパケット交換ネットワークの構築を説得することはできなかった。[12]
1973年、ルイ・プーザンは、純粋なデイヴィス・データグラム・モデルを実装した最初の大規模ネットワークであるCYCLADESの設計を発表しました。 [13] CYCLADESチームは、データグラムの損失や順序変更が無視できない可能性があるネットワークサービスにおいて、エンドツーエンド原理を用いながら、ユーザーアプリケーションに信頼性の高い仮想回線サービスを提供するという非常に複雑な問題に初めて取り組みました。[ 14 ]プーザンの関心は「第一段階として、パケット交換技術の飛躍的な進歩ではなく、Cycladesのための信頼性の高い通信ツールを構築すること」でした。[13]しかし、彼のチームメンバーであるヒューバート・ジマーマンとジェラール・ル・ランの2人は、インターネットのTCP設計に大きく貢献し、その主任設計者であるヴィント・サーフもその功績を認めています。[16]
1981年、国防高等研究計画局(DARPA )はインターネットプロトコル(IP)の最初の仕様を発表しました。これは、データグラムの概念に大きな進化をもたらし、フラグメンテーションを導入しました。[17]フラグメンテーションにより、グローバルネットワークの一部では大きなパケットサイズが使用される一方で(通常、処理オーバーヘッドを最小限に抑えるため、ローカルエリアネットワーク)、他の部分ではより小さなパケットサイズが使用される可能性があります(通常、応答時間を最小限にするため、ワイドエリアネットワーク)。ネットワークノードは、データグラムを複数の小さなパケットに分割することができます。
1999年、インターネット技術特別調査委員会(IETF)は、既に広く普及していたネットワークアドレス変換(NAT)の使用を承認しました。NATは、パブリックアドレスを複数のプライベートデバイスで共有するものです。[18]これにより、迫り来るインターネットアドレス枯渇が延期され、より長いアドレスをサポートする新世代のインターネットプロトコルであるIPv6の導入に十分な時間が確保されました。データグラムに対する完全なエンドツーエンドのネットワーク透過性という当初の原則は、このため緩和されました。NATノードは接続ごとに状態を管理する必要があり、部分的に接続指向となりました。
2015年、IETFは、データグラムスイッチングノードがアクティブキュー管理を実行するという1998年の情報提供RFC 2309 [19]を、より強力で詳細なベストプラクティス勧告へと改訂し、RFC 7567として公開しました。初期のデータグラムキューイングモデルは実装が簡単で、キューの長さを調整するだけで済みましたが、「インターネットのパフォーマンスを向上・維持するため」( RED、ECNなど)には、より洗練されたパラメータ化されたメカニズムのサポートが必要であることが判明しました。このテーマに関する更なる研究も求められ、特定された項目のリストも提示されました。[20]
データグラムという用語は次のように定義される。[21]
「送信元コンピュータと宛先コンピュータおよび転送ネットワーク間の以前の交換に依存せずに、送信元コンピュータから宛先コンピュータにルーティングするのに十分な情報を運ぶ、自己完結型の独立したデータエンティティ。」
— RFC 1594
データグラムは、例えばほとんどの音声電話での会話のように、2つの通信ポイント間で固定された期間の接続が存在しないため、以前の交換に依存せずに自己完結的である必要があります。[22]
データグラムサービスはしばしばメール配信サービスと比較されます。ユーザーは宛先アドレスを提供するだけで、配信の保証はなく、受信成功の確認も得られません。そのため、データグラムサービスは信頼性が低いと考えられています。データグラムサービスは、事前に定められたパスを作成せずにデータグラムをルーティングします。したがって、データグラムサービスはコネクションレス型と考えられています。また、データグラムと他のデータグラムの送受信順序も考慮されません。実際、同じグループ内の多くのデータグラムは、異なる順序で同じ宛先に到達する前に、異なるパスを通ることがあります。[23]
各データグラムは、ヘッダーとデータ ペイロードという2つの要素から構成されます。ヘッダーには、機器とネットワーク間の事前のやり取りに依存せずに、送信元機器から宛先へのルーティングに必要なすべての情報が含まれています。ヘッダーには、送信元アドレスと宛先アドレス、タイプフィールド、長さフィールドが含まれる場合があります。ペイロードは、転送されるデータです。タグ付きヘッダー内にデータペイロードをネストするこのプロセスは、カプセル化と呼ばれます。
インターネットプロトコル(IP)は、複数の種類のデータグラムの標準規格を定義しています。インターネット層は、IPによって提供されるデータグラムサービスです。例えば、UDPはインターネット層のデータグラムサービスによって実行されます。IPは完全にコネクションレス型で、ベストエフォート型の信頼性の低いメッセージ配信サービスです。TCPは、IP上で動作する高水準プロトコルであり、信頼性の高いコネクション指向のサービスを提供します。
つのパラメータによって、送信元ホストと宛先ホスト間の接続が一意に指定されます。宛先IMPは、メッセージの受信確認を送信元IMPに返し、送信元IMPはこの確認を送信元ホストに渡します。各リンクは単方向であり、ネットワークによって制御されるため、一度に複数のメッセージが送信されることはありません。
しかしながら、Arpanet には欠点があり、真のデータグラムネットワークではなく、エンドツーエンドのエラー訂正も提供していませんでした。
アーパネットは仮想回線だった。「本質的には内部データグラムを使った仮想回線サービスだった。