TCP/IP 4階層モデルとは?
TCP/IP 4階層モデル
インターネットで使われているTCP/IPプロトコルは、OSIモデルに沿っていません。OSIモデルが構築される以前から、実用的なネットワークとして稼働していたということもありますし、ネットワークの普及期に、多くの機種、OS、ネットワーク方式、アプリケーションが登場したから、OSIモデルのような詳細な階層分けが必要になったとも考えられます。
TCP/IPの実用化はOSIモデルよりも古いのですが、OSIモデルとは異なるものの、ちゃんと階層化されています。OSIモデルの7階層に対し、TCP/IPモデルは4階層で、かなり少なくなっています。TCP/IPが設計されたころの通信/ハードウェア/ソフトウェアの環境は、今と比べれば格段に簡素なものであり、アプリケーションの数、データの種類や表現方法などが限られていたため、OSIモデルより単純な構成で十分だったのでしょう。
各階層は、次に示すような機能を規定しています。
4 | アプリケーション層 | アプリケーション間のやり取り |
---|---|---|
3 | トランスポート層 | プログラム間の通信、通信の制御 |
2 | インターネット層 | インターネットワークでの通信 |
1 | ネットワークインターフェイス層 | 同一ネットワーク上での通信、ハードウェア仕様など |
アプリケーション層
OSIモデルのセッション層からアプリケーション層に相当します。個々のプログラムの間で、どのような形式や手順でデータをやり取りするかを定めます。文字コードや画像などの形式、暗号化など、データの表現形式などもこの層で扱います。Webや電子メールなどのアプリケーションプロトコルはこの層に属します。
トランスポート層
OSIモデルのトランスポート層に相当します。通信を行うプログラムの間でのデータ伝送を実現します。必要に応じて、エラーの検出と回復や、双方向の通信路の確立なども行います。単にデータを伝送するだけのUDP(User Datagram Protocol)、信頼性のある双方向の通信を実現するTCP(Transmission Control Protocol)はこの層のプロトコルです。
インターネット層
OSIモデルのネットワーク層に相当します。複数のネットワークを相互に接続した環境(インターネットワーク)で、機器間のデータ伝送を実現します。IP(Internet Protocol)はこの層のプロトコルです。
ネットワークインターフェイス層
OSIモデルの物理層とデータリンク層に相当します。実際のネットワークハードウェアが通信を実現するための層で、各種イーサネット、無線LANなどがこの層に属します。また、モデムや光回線などを使って特定の相手と接続し、TCP/IPで通信するためのPPP(Point To Point)プロトコルなども、この層のプロトコルとなります。
プロトコルスタックとソフトウェアの階層化
ネットワークで実際にやり取りされるデータは、プロトコルの規約に従って形式化され、適切な手順で伝送されます。このような詳細を定めるプロトコルも、このネットワーク階層に準じて階層化されています。TCP/IPモデルでは、アプリケーションの機能を実現するためのアプリケーションプロトコル、プログラム間でデータを伝送するためのUDPとTCP、インターネットワークで機器間の通信を実現するIPといったプロトコルが使われています。そしてこれらのプロトコルの下位には、イーサネットや無線LANなど、物理的なネットワークシステムがあり、それに固有のプロトコルがあります。
これらのプロトコルに従ってデータ伝送を実現するためには、各プロトコルに従ってデータを扱うソフトウェアが必要になります。これらのソフトウェアもプロトコルの階層に従って階層化されています。アプリケーションプロトコルのためのソフトウェアは個々のネットワークアプリケーションの内部に実装され、各種のネットワークインターフェイスの制御やプロトコルの実装はドライバソフトウェアが担当します。そしてその間をつなぐTCP/IPは、すべてのアプリケーションとネットワークハードウェアに対して共通のものなので、オペレーティングシステムの内部に存在しています。IP、TCP、UDPなど、プロトコルごとにソフトウェアはモジュール化されています。
階層 | 担当するソフトウェア | プロトコルの例 |
---|---|---|
アプリケーション層 | アプリケーション | HTTP(Web)、SMTP(メール)など |
トランスポート層 | オペレーティングシステム | TCP、UDP |
インターネット層 | IP、ルーティングなど | |
ネットワークインターフェイス層 | ドライバ | イーサネット、WiFi、PPPなど |
例えば昔のようにモデムを使ってプロバイダに接続した時でも、イーサネットと光ファイバサービスを使って接続した時でも、同じWebブラウザや電子メールソフトが使えるのは、ネットワークシステムがこのように階層化されているおかげです。
このように、必要な機能を分類してプロトコルを定義し、階層関係をつけて各プロトコルとそのためのソフトウェアを配置することを、「プロトコルの階層化」や「プロトコルスタック」といいます。機能ごとにモジュールを分割し、複数のモジュールを組み合わせることで、多くの部分を共通的に使いながら、物理的なネットワーク方式やアプリケーションごとの機能の違いをうまく吸収することができます。
この記事のもとになった書籍 | |
---|---|
榊 正憲 著 |
完全マスターしたい人のためのイーサネット&TCP/IP入門世の中で広く知られているイーサネットとTCP/IP、つまりインターネットや社内LANなどで、標準的に使われているネットワーク方式とプロトコルについて詳しく解説。 各項目については初歩的なレベルから解説し、中級レベルまで掘り下げています。 その過程で、仕組みや原理についてなるべく詳しく、そしてなぜそのような仕組みになっているのか、といったことを説明しています。 「これはこうなっている」という知識だけではなく、「これは何をするために、どのような原理でそうなっているのか」まで、きちんと体系立てて理解できる、ネットワーク初心者必携の1冊です。 連載期間中、電子書籍版を20%オフでご提供します!本連載の掲載に合わせて、本書籍の電子版を特別に20%オフでご提供します。興味のある方は是非ご検討ください。 クーポンコード:get3gerc※クリックすると購入ページに移動します。あらかじめクーポンコードをお控えください。 |