シオラボのネットワーク技術コラム第18回 「TCP/IPモデル(1)」

1. はじめに

前回までの「シオラボのネットワーク技術コラム」では、通信機能を7つの階層構造に分割した「OSI基本参照モデル」について説明してきました。OSI基本参照モデルは、「通信プロトコルに必要な機能」という点でモデル化された概念モデルです。

現在、インターネットが広く普及し、さらにそれが商用化されていく過程では、TCP/IPが事実上の標準プロトコルとして利用されるようになっています。「インターネットの持つべき通信機能をコンピュータに実装するにはどのようにしたらよいか」という点において、OSI基本参照モデルのような単なる概念モデルだけでは実装することはできません。そこで、現実的な問題解決を図るためのモデルが考えられます。それが「TCP/IPモデル」です。今回からは、このTCP/IPモデルについて説明していきましょう。

2. TCP/IPモデル登場の背景

OSI基本参照モデルが策定される以前から、遠隔地のコンピュータ同士を接続してネットワーク通信をおこなう技術は存在していました。例えば、「回線交換方式」は、電話網を使って接続相手ごとに回線を切り替え、接続している端末間の回線を占有して通信をおこなう方法です。回線交換方式は、回線を占有するので通信品質は良いものの、利用効率が下がるといった欠点がありました。

(回線交換方式)

また、「パケット交換方式」は、データをパケットと呼ばれる単位に分割してから宛先情報を付加してネットワーク回線に流し、パケット交換機が判断することによって、正しい宛先へとデータを配送していくバケツリレーのような方式です。最終的に端末に到着したパケットは、端末でそのすべてが集められて元のデータに復元されます。この方法は、1つの回線を複数の端末で共有できるといった利点があります。

(パケット交換方式)

インターネットの起源と言われるARPANETは、世界ではじめて運用されたパケット交換方式によるネットワークで、公開実験を開始したのは1969年のことでした。このころ、ARPANETで採用されていたプロトコルはNCP(Network Control Program)ですが、すでにプロトコルの階層化という概念が取り入れられていました。NCPは、ARPANETホストコンピュータ上で動作するプロトコルスタックの共通要素を提供するもので、遠隔に存在するホストコンピュータ同士でプロセス間接続とフロー制御をおこなうものです。アプリケーションは、他のホストコンピュータへの接続を制御するためにNCPのインターフェイスを使用しますが、さらにそれより低レベルのプロトコルである物理層・データリンク層・ネットワーク層は、ホストコンピュータとは別のIMPに実装され提供されていました。つまり、すでに通信機能を階層化するといった概念が取り入れられていたのです。これが功を奏して、1983年には、ARPANETのプロトコルをNCPからTCP/IPに切り替えることに成功します。このTCP/IPこそが、「インターネットプロトコルスイート」とも呼ばれる、インターネットを含むネットワークを構築する上で必要となるプロトコルスタックです。OSI基本参照モデルと同様に複数の階層構造で構成されているので、「TCP/IPモデル」と呼ばれています。ちなみに、ARPANETでプロトコル開発の資金援助をおこなっていたDARPA(アメリカ国防高等研究計画局)に由来し、TCP/IPモデルは、DARPAモデルとも呼ばれることがあります。

3. TCP/IPモデルの階層構造

TCP/IPモデルは、ネットワークインターフェイス層、インターネット層、トランスポート層、アプリケーション層の4つの階層からなります。OSI基本参照モデルの7つの階層と似通った名称ではあるのですが、双方の階層をそれぞれ一致するように対応づけすることはできません。対応づけようとすると、整合が取れないところも出てきます。そもそも、TCP/IPモデルにおけるプロトコルスタックは、OSI基本参照モデルに準拠させるということも意図していないようです。

さて、このTCP/IPモデルの4つの階層の詳細については、次回、説明することにしましょう。

今回は、「TCP/IPモデル」が登場した背景を紹介してきました。次回は、TCP/IPモデルのそれぞれの階層について、説明していくことにしましょう。次回もぜひお楽しみに。