はじめに
今回は、ネットワークの基本構造を知る上で欠かせない『OSI参照モデル』というものについて解説していきます。
では、『OSI参照モデル』とは何なのでしょう?
結論から言えば、OSI参照モデルとは『ネットワーク上で、データがどうやり取りをおこなうのかという概念』というものになります。
『OSI参照モデル』が必要になった背景
根本的な解釈として、ネットワークは異なる機器であっても相互にデータを通信し合えることが重要です。
また、テクノロジーの進歩は留まることがないため、技術革新による機能拡張やサービスを組み込むことが必然になります。
現代では、このようなネットワークに於ける重要性とテクノロジーに対する柔軟性を重視することが当たり前になっているので、それに合わせたサービスを提供者は作ろうとします。
しかし、過去を遡ると、その時代のネットワークシステムにはメーカー独自のルールを使っていたこともあり、このような重要性や柔軟性の対応がまだまだ足りていませんでした。
これがどういうことかを表すと、各メーカーのシステムは自社製品としか通信できず、異なったメーカー間での通信はできなかったというものです。
これでは、ネットワークの根幹というものを抜きに考えても、非常に不便だということが誰の目にも明らかです。
そこで、国際標準化機構であるISO(International Organization for Standardization)が、汎用的なネットワークシステムに対し、どんなデータでも問題なくやり取りがおこなえる『プロトコル』のモデルを定めました。
その結果作られたものが、『OSI参照モデル(Open Systems Interconnection Reference Model)』(OSI階層モデルとも呼ぶ)と言う概念(考え方や表現形式)です。
このOSI参照モデルは、データをやり取りする際に『階層(レイヤー)』という概念を用いており、それを7つに分けています。
実際には、OSI参照モデルより以前にTCP/IPという階層を分けたプロトコルスイートが生まれため、OSI参照モデル自体が普及するまでには至りませんでした。
しかし、7つの階層の概念自体はネットワークの基本構造としてとても理解しやすく、また管理しやすいものとして受け入れられるものになりました。
その理由は、ネットワークの機器やシステムを理解するのに役立ちますし、また、サーバーやシステムに於いてトラブルが発生した際に、どの階層に問題があるかなどの特定や目安にもなってくれるからです。
こうした過程を経ると、ネットワーク機器やそれに準ずるハードウェア、ソフトウェアには、OSI参照モデルの概念に沿うように作られるものも多くなりました。
ただ、OSI参照モデル自体は概念という存在でしかないので、特にこうしなければならないという制約や決まり事があるわけではありません。
従って、階層を複数またがっている考え方や、階層の境界を飛び越えて使われていたりするのが現状です。
OSI参照モデルは7階層(レイヤー)に分けて定義されている
ネットワーク上でのデータのやり取りというと、ただデータが飛び交いあっていると考えがちですががそれだけではありません。
PCやルーターなどにつなぐための物理的な要素として、ケーブルや端子、ピン、コネクターの種類や形式、そして電気信号自体が存在しています。
つまり、それらに対してもプロトコルが必要になるわけです。
そこでOSI参照モデルは、メーカー独自の画一的なシステムにならないようにと、データのやり取りを階層(レイヤー)で分け、下から順に第1層から始まり、第7層までの階層を施しています。
以下は説明しやすいように第1層から第7層という順番で記載しています。(本来の見方は上の図のようになります)
階層 | 階層名 | 役割 |
---|---|---|
第1層 | 『物理層』 | 物理的や電気的な階層であり、データの電気的変換をおこなう 電気信号、ピンの数、ケーブルやコネクターの種類や端子の形状などを定めている |
第2層 | 『データリンク層』 | コンピューターに直接接続された機器間の通信路の確保や管理 エラーの訂正や再送要求などもおこなう |
第3層 | 『ネットワーク層』 | コンピューターや機器と直接接続されていない機器間との通信路の決定やデータの中継など 機器のアドレスの管理もおこなっている IPアドレスはこの層になる |
第4層 | 『トランスポート層』 | データの送受信の管理として受信側に確実にデータを届けるための信頼性の確保 データの分割と復元、エラー制御をおこなっている TCPやUDPがこの層になる |
第5層 | 『セッション層』 | データ通信の開始から終了までの手順を管理し、 クライアントからサーバー間などの通信経路の確立をおこなう |
第6層 | 『プレゼンテーション層』 | 通信に適した形式にデータを変換したり文字コードの変換などをおこなう また反対にアプリケーションが処理できる形式に変換する アプリケーションとネットワークの仲介役 |
第7層 | 『アプリケーション層』 | 通信を利用するユーザーに対してサービスをおこなう階層 アプリケーションによりデータ処理が決められて提供される |
データを送信すると、第7層から第1層までの間に制御情報であるヘッダをパケットに追加し、受信すると第1層から第7層へと上がりつつ、ヘッダの解析をおこないながらパケットからヘッダの除去をしていくようになります。
OSI参照モデルと概念とした場合のデータの流れ
OSI参照モデルを使った場合のデータの流れを簡単にまとめてみました。
データを送信しようとすると、まずは第7層から始まり第1層までを経て、受信側は第1層から第7層へという道のりになっています。
そしてその中で、通信経路の確定やデータの加工、分割などがおこなわれていくことになります。
流れ | 送信側 | 階層 | 受信側 | 流れ |
---|---|---|---|---|
↓ | アプリケーションがデータを送る | 第7層 『アプリケーション層』 | アプリケーションにデータが届く | ↑ |
↓ | 通信に適したデータの加工が行われる | 第6層 『プレゼンテーション層』 | アプリケーションで処理できる形に加工する | ↑ |
↓ | 通信の開始から終了までの流れの管理をおこなう | 第5層 『セッション層』 | 通信の開始から終了までの流れの管理をおこなう | ↑ |
↓ | データの分割をおこなう | 第4層 『トランスポート層』 | データの復元をおこなう エラーがあれば再送信手続き | ↑ |
↓ | データ通信の経路を決定する | 第3層 『ネットワーク層』 | IPアドレス(宛名)の確認 | ↑ |
↓ | データ通信路の確保や管理をおこなう | 第2層 『データリンク層』 | 物理層でデータ通信のエラーがないか確認する | ↑ |
→ | データを電気信号に変えて出発 | 第1層 『物理層』 | データ到着 電気信号を変換 | → |
だいたい、このようなイメージで捉えてもらえれば分かりやすいと思います。
まとめ
OSI参照モデルは、ネットワークの基本構造を知る上でとても分かりやすくなっています。
表面的に、データがどう動いて、どのように通信されるかが想像しやすいですよね。
このような標準化されたモデルがない時代の頃を考えると、OSI参照モデルが必要だったことも頷けます。