OSI参照モデルとTCP/IPについて
初めに
ネットワーク関係について学んでいる時にOSI参照モデルとTCP/IPとで、混乱することがあるので、本を読みまとめてみました。
ネットワークアーキテクチャの種類
今日、私達が使用しているコンピュータネットワークの通信機能を説明する際に用いられるネットワークアーキテクチャは、
- OSI参照モデル
- TCP/IP(インターネットプロトコルセット)
- DECnet
- SNA
- AppleTalk
- XNS
- IPX/SPX
の7種類が種類が挙げられる。
このようにいくつかのネットワークアーキテクチャが存在するのは、コンピュータ同士がネットワークを利用して通信するために必要とされるプロトコルという約束ごとを設定するために様々な団体や、企業が開発を行ったからである。
ここでは、先述した7種類のネットワークアーキテクチャの中から代表的に使われている「OSI参照モデル」と「TCP/IP」の2つの差異の特徴を調査し、その結果を提示する。
「OSI参照モデル」と「TCP/IP」の導入までの流れ
コンピュータの通信が始まった当初に、各コンピューターメーカーが、各々に独自のネットワーク製品を開発し、コンピュータ通信を実現していたが、コンピュータ通信が普及していくにつれ、各メーカーのネットワーク製品の互換性の問題が拡大していき、開発を行う生産者とネットワーク通信を使いたい利用者の両方が不便を感じ始めるという問題が起きていた。
その問題を解決し、ネットワークの「オープン化」と「マルチベンダ化」にする為に、1978年頃に「国際標準化機構(ISO)」と「国際電信電話諮問委員会(CCITT)」の2つの団体がおよそ6年間共同作業を行い、1984年に導入されたネットワークアーキテクチャが「OSI参照モデル」である。OSI参照モデルは、問題を机上の理論で解決する為に作られたモデルなので、プロトコルの設計や勉強をする時のガイドラインとして使われている。
「TCP/IP」は、1960年代に「アメリカ国防総省(DoD)」が中心となり、新しい通信技術の研究から始まり、1969年にパケット交換技術の実用性を試験する為のネットワークが構築され、そのネットワークが一般の人々にも使われるようになり「ARPANET」と呼ばれるインターネットの起源が誕生し、ARPANET内の研究グループにより、1970年代前半に「TCP/IP」が開発された。
「OSI参照モデル」と「TCP/IP」の普及率
OSI参照モデルは、TCP/IPが開発された後の10年後に導入が行われたが、現在使用されているネットワークアーキテクチャはTCP/IPが主流とされている。
OSI参照モデルの開発の方向性を決める指針
- ネットワークの「オープン化」
- ネットワークの「マルチベンダ化」
TCP/IPが開発される際の指針
TCP/IPは指針の通りに、「仕様を考えるよりも先にプログラムが開発された」や、「プログラムを作った後に仕様書を書く」などと言われるほど、実装を重視に開発が行われていた。さらに、TCP/IPのプロトコルの仕様を決定する際には、そのプロトコルが実装されている装置が存在し、限定された形であるにせよ実際に通信ができることが可能な状態になっている必要があるとされている。
このようなことから、TCP/IPに比べて、OSI参照モデルが普及しなかったのは、動作するプロトコルを開発することと、急速な技術革新に対応できるようなプロトコルの決定や改良を行える仕組みがなかったことが原因の1つとされている。
さらに、TCP/IPは先に述べた理由以外にも、広く普及した理由がある。
それは、1980年前後の大学や研究所などのコンピュータのOSとして、米国カリフォルニア大学バークレー校で開発され、無料で配布された「BSD UNIX」が広い範囲で利用され、このOSの内部にTCP/IPが実装さていた事である。これにより、限られた世界の中でしか使用されていなかったTCP/IPは、世界中のコンピューターネットワークに普及した。
「OSI参照モデル」と「TCP/IP」のプロトコルの階層化の違い
OSI参照モデルは、通信に必要な機能を7つの階層に分け、機能を分割し、複雑になりそうなネットワークプロトコルを単純化する為のモデルとされている。
これらの層は、ハードウェアに近い下位層から、特定のサービスを受け、ソフトウェアよりの上位層に特定のサービスを提供する役割をもっている。これは、TCP/IPも同様である。
この7階層のOSI参照モデルは、ハードウェアに近い一番下の層から順に、物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層となっている。
各階層の機能は、階層間のインターフェースが一貫性を持っていることを前提として、各階層の機能を分割することにより、特定の場所の機能を変更しても、モデル全体の動作には支障がないように設計されている。
OSI参照モデルの各階層
- 物理層では、データのビット列の0や1を電圧の高低や、光の点滅に変換したり、逆に、電圧の高低や、光の点滅をビット列に変換を行うことで、物理的な通信媒体に流し込んでいる。このようにして、接続の両端にある2つのデータリンク層の実体の間に、目に見えない通信パスが提供する役割を持つ。
- データリンク層では、0と1の数字の列を意味のあるフレームに分けて、複数のシステムを経由した先にある宛先のシステムまでのパスのうちの隣接するシステムとの間の情報の流れを制御を行なったり、簡単なエラー検出機器を提供することにより、データが失われたり、破損したりすることを防ぐ役割を持っている。また、OSI参照モデルの設計が行われたのが、LANが普及する以前だったこともあり、LANに含まれる多様な技術を利用できるようにする為に、データリンク層に、メディアアクセス制御層(MAC)と論理リンク制御層(LLC)の2つの副層に分割されている。
- ネットワーク層では、ネットワーク層が提供する手段により、システム間のコネクションが確立できるようになっており、宛先までデータを届ける役割を持つ。そのため、相手が異なるネットワーク上に存在しても、どの経路を使うかなどの経路選択も行う。
- トランスポート層では、宛先のアプリケーションにデータを確実に届ける役割を持つ。そして、データを確実に届けることの信頼性を保証するために、送り出すデータを識別する印などの情報を含むヘッダがデータに付加される。
- セッション層では、データの流れる論理的な通信路の確立や、切断、転送するデータの分割場所の設定などのデータ転送に関する処理を行う役割を持つ。例えば、どのようにデータを送信すれば効率良くやりとりできるかや、データの送信方法はどうするかなどのことを考えてくれる。
- プレゼンテーション層では、転送される情報を通信に適したデータ形式にしたり、下位層からきたデータを上位層が処理できるデータ形式にするなどの、データ形式に関する役割を持つ。この役割のおかげで、データを共通な表現形式に変換してやりとりを行うことにより、異なるメーカーの各ネットワーク製品でもデータの表現形式の整合性をとることが可能になる。
- アプリケーション層では、利用されるアプリケーションの中で通信に関係する部分を定めている。このアプリケーションのサービスの中には、ファイル転送サービスや、電子メール、遠隔ログインなどが含まれている。メールの送受信のエラーメッセージなどの、アプリケーション固有のエラー処理も、アプリケーション層が担っている。
これらの7つの階層を学ぶことにより、通信機能の全体の中における、そのプロトコルの位置付けや、おおまかな役割を理解することが可能となる。
(TCP/IPについては後ほどまとめます。)
参考文献
- 竹下 隆史・村山 公保・荒井 透・苅田 幸雄共著(2019)「マスタリングTCP/IP 入門編」、株式会社オーム社
- Philip Miller著 苅田 幸雄監訳(2016)「マスタリングTCP/IP 応用編」、株式会社オーム社