みなさん、こんにちは!
ブリュの公式ブログ.netにお越しいただきまして、ありがとうございます。
このサイトでは、ITについて特化したサイトを運営しています。
このカテゴリでは、情報処理技術試験とITの基礎知識として、様々な技術についての紹介を行っています。
今回は、ネットワークのすべての基礎部分となるOSI基本参照モデルについて紹介します。
OSI基本参照モデルはネットワークを構成する7階層のモデルであり、このモデルと対応させて物理的実体(エンティティ)の動作をすることで、ネットワークの理解が深まります。
また、逆に言えば、OSI基本階層モデルの概念的な部分を理解できなければ、ネットワークは理解不可能であるといえます。
本ページではOSI基本参照モデルの概要的説明を行います。
概念的な部分を分かりやっすく書いたつもりなので、少しずつ理解していってください。
細かい部分については記事内に貼ってある各種リンク先の記事をご覧ください。
情報処理技術者試験のシラバスにおいては、基本情報技術者試験(Lv.2)、応用情報技術者試験(Lv.3)のほかに、高度情報処理技術者試験として、
- ネットワークスペシャリスト試験(Lv.4)
- 情報処理安全確保支援士試験(Lv.4)
- エンベデットシステムスペシャリスト試験(Lv.3)
- システム監査技術者試験(Lv.3)
- システムアーキテクト試験(Lv.3)
- ITサービスマネージャ試験(Lv.3)
で出題範囲となっています。
目次
OSI基本参照モデルの存在意義
そもそもですが、OSI基本参照モデルという階層構造がなぜ存在するのかについて説明しておきます。
理由が理解できれば、すんなりと知識として身につくでしょう。
階層間インターフェースの共通化
OSI基本参照モデルは、ネットワークにおける機能別に7階層に分離しています。
このとき、第1層は第2層をサポート(サービス)し、第2層は第3層をサポート(サービス)し・・・と繋がって、最終的に第7層となるアプリケーション層まで積み上げて利用します。
OSI基本参照モデルの一番の狙いは、隣り合う階層同士のインターフェースの部分を共通化することにあります。
これによって、第1層~第7層まで、設計したメーカーが異なっていても互換性があり、ユーザの利便性が向上するメリットがあります。
みなさんも、パソコンとルーターの相性なんて考えたこともないでしょう。
パソコンはパソコン、ルーターはルーターと、市販品を別々に購入しても動作します。
これも、OSI基本参照モデルのおかげということになります。
階層構造の一部を高機能化できる
様々なメーカーで互換性のある状態になると、技術発展に伴い一部改装が高機能化した場合に、その部分だけの交換を行うことで、システム全体を高性能化できるメリットがあります。
もしもOSI基本参照モデルが存在しなかった場合を考えてみましょう。
例えば、あるメーカーA社が、OSI基本参照モデルの第1層から第7層に相当する部分をすべて独自の仕様で積み上げているネットワークがあったとします。
ある時、別のメーカーB社から、第1層に相当する部分で高性能モデルが登場したとします。
この場合、ユーザーがネットワーク性能を強化しようとすると、ネットワークすべてを好感しないと駄目になり、高コストになるほか、導入障壁も高くなります。
一方、OSI基本参照モデルが適用されていれば、隣り合う階層間でのインターフェースに互換性があります。
そのため、高性能化させたい階層だけを交換すればいいことになります。
上記の場合、もしもメーカーA社がOSI基本参照モデルに沿ったネットワークシステムを販売していた場合、第1層のみをメーカーB社のものに交換することができ、低コストで気軽に高性能化を図れるようになります。
一台のパソコンに対して、LANケーブルや光ファイバーなど、通信ケーブルは差込口さえ合えば使いまわせます。
これも、身近なOSI基本参照モデルということができるでしょう。
OSI基本参照モデルの7階層
では、OSI基本参照モデルの7階層を紹介します。
上位層 | 第7層 | アプリケーション層 |
第6層 | プレゼンテーション層 | |
第5層 | セッション層 | |
下位層 | 第4層 | トランスポート層 |
第3層 | ネットワーク層 | |
第2層 | データリンク層 | |
第1層 | 物理層 |
物理層
物理層は、OSI基本参照モデルの第1層になります。
物理層に該当するものは、通信を行う上での”物理的につなぐモノ”となります。
例えば、パソコンに挿し込むLANケーブルなら、差込口の形や電気的性質や各種規格が該当します。
無線LANであれば、電波で通信しますから、周波数などの規格が物理層に該当します。
LANケーブルを買い替えても、パソコンを買い替える必要がありません。
さらにLANケーブルが、
- ALIENWARE専用
- VAIO専用
- レッツノート専用
なんてこともありません。
これもOSI基本参照モデルの物理層がはたしている役割ということになります。
データリンク層
データリンク層は、同じネットワーク内での通信を行います。
同じネットワークということですから、ルーターを越えない範囲で通信ができることになります。
通信においては、MACアドレスを用います。
よくIPアドレスというワードを聞くことが多いと思いますが、IPアドレスは後述のネットワーク層に存在しており、ルーターを越える通信で利用します。
MACアドレスは、あくまでもルーターは越えない範囲内での通信ということになります。
データリンク層ではインターネットに接続できません。
ルーターを越えない範囲であることに注意してください。
ネットワーク層
ネットワーク層は、ルーターを越える通信を行います。
ネットワーク層においては、IPアドレスを用いたルーティングテーブルを作成し、回線速度やホップ数(ルーターの経由回数)を含め、総合判断によって効率的な通信が行えるようになっています。
ネットワーク層における代表的なプロトコルであるIPについては、下記記事をご覧ください。
ここでIPアドレスとMACアドレスの違いを説明しておきましょう。
通信中にルーターを経由するごとに、MACアドレスは常に次の宛先ルーターのMACアドレスを指し示します。
つまり、MACアドレスはルーターを経由するたびに変化します。
しかし、IPアドレスは通信完了まで変化しません。
これは、ルーターが宛先IPアドレスとルーティングテーブルを比較し、転送先ルーターを決定した場合、MACアドレスを宛先ルーターに書き換えるためです。
ルーターが転送するルーターはネットワーク的に隣り合うルーターであり、ルーターとルーターの間にルーターは存在しません。
つまり広義で考えれば、ルーターがルーターに転送するのはルーターを越えない通信です。
よって、トランスポート層であるMACアドレスの管理下にあることはご理解いただけるでしょう。
トランスポート層
トランスポート層は通信の品質やソフトウェアレベルでの通信を行う階層になります。
★通信品質の決定
例えば、ネットワーク層のプロトコルであるIPは、コネクションレス型通信であり、通信のたびに経路が変化します。
また、IPでは通信が確実に成功することまでは保証しません。
これに対して、トランスポート層にはTCP/UDPが存在します。
TCPは高品質な通信で、コネクション型通信になり、IPの「コネクションレス型通信」を補っています。
また、TCPでは通信データーのエラーチェックまで行うので、IPの「確実に到達することは保証しない」という部分を補っています。
UDPは、IPと同じくコネクションレス型通信でデータの到達も保証しませんが、TCPよりも高速通信が可能です。
こうした、通信の品質(正確性や速度)を決定するのが、トランスポート層の役目となります。
TCPは主にウェブサイトの閲覧などで利用されています。
これは、多少通信に時間がかかっても、データが確実に伝送されることが必須であるためです。
一方のUDPは動画配信などで利用されています。
動画の場合にはリアルタイムレベルでの速さが大事であり、正確性を気にしていると動作しません。
例えば、通信に失敗したとして、1秒前のコマを送ってきても、もはや動画データとしては意味を成しません。
この辺りが、TCPとUDPのい使い分けの部分となります。
★ソフトウェアレベルでの通信を行う
ネットワーク層までだと、機器間の通信は可能ですが、ソフトウェアレベルでの連携は行っていません。
仮にパソコンとサーバーが通信できても、パソコン側がどのソフトウェアで使用するデータであるかを認識できなければ、通信の意味を成しません。
そこで、コンピューターのポート番号を使って、ソフトウェア単位での識別を行い、通信をお紺合います。
例えば、ブラウザで複数のタブを開けるのも、タブごとに異なるポート番号が割り振られているからだと説明ができます。
セッション層
セッション層からは上位層に分類されます。
セッション層では、最終的な通信の目的に合わせた送受信管理をおこなうプロトコルになっています。
トランスポート層までが構築しているコネクションの管理や、データの転送タイミングなどを管理しています。
なお、後述しますが、実用化されているTCP/IPプロトコルスイートにおいては、上位層3つをまとめてアプリケーション層としています。
そのため、私自身の認識として、現実で運用されているネットワークにおいて、OSI基本参照モデルにおける上位層(アプリケーション層・プレゼンテーション層・セッション層)の定義&分類は、かなりあいまいな部分があるなと感じています。
プレゼンテーション層
プレゼンテーション層は、データの表現形式について定めるプロトコルです。
例えば、
- 文字コードは何か
- 圧縮されているのか
など。
新しいデータ形式にも対応するために必要な階層です。
アプリケーション
アプリケーション層は、アプリケーションソフトがやり取りする情報について定めています。
SMTPやHTTPなど、それぞれのアプリケーションに特化したプロトコルになります。
あと、面白い点としては、アプリケーション層はOSI基本参照モデルの最上階に位置する階層であり、ネットワークのすべてを理解できる部分になります。
ここで面白い話題として、サーバーセキュリティなどで頻出の、「ファイアーウォール」と「プロキシサーバー(リバースプロキシを含む)」について考えてみましょう。
ファイアーウォールはIPアドレスベースで許可・ブロックを行うネットワーク層レベルの機器です。
一方、プロキシサーバーはサーバーですから、アプリケーションを理解できる、すなわち通信内容の解析までを行って、許可・ブロックの判断を行えます。
ファイアーウォールは、良くも悪くも0か1かの判定であり、グレーゾーンという概念がありません。
一方、プロキシサーバーは内容の解析まで行えますから、許可とブロックに細かいチューニングを施せることになります。
こうしたセキュリティ装置を組み合わせることで、セキュアなシステムを構築しながらも、ユーザーの利便性を損なわない、優れたシステムを作ることができます。
このあたりが、ネットワークエンジニアに求められる技量なんだろうなと、私自身が学習する中で感じたことです。
OSI基本参照モデルとサービスの連携
OSI基本参照モデルの特徴として、上位層は階層を利用して機能することがあげられます。
例えば、
- LANケーブル(第1層:物理層)を使用し、
- 近隣のルーター(デフォルトゲートウェイ)まで転送(第2層:データリンク層)し、
- ルーターを越えた外部ネットワークの宛先までの最適な経路を選択(第3層:ネットワーク層)し、
- ルーター間での転送を繰り返し(第2層:データリンク層)、
- 通信品質やソフトウェアレベルでの送受信(第4層:トランスポート層)を行い、
- データそのものを取り扱う(第5~第7層)
となります。
上階層が動作するには下位層が必須であり、下位層は上位層の要求に対して動作を行い、上位プロトコルで必要な仕事を行います。
この、下位層が上位層のために動くことをサービスといいます。
下のイメージ図が分かりやすいでしょう。
この図で表現したいことは、アプリケーションレベルでの直接の通信は行っていないことです。
送信側では上位層は必ず下位層にサービスを要求し、最終的には第1層となる物理層にて物理的接続を行います。
そして受信側は第1層の物理層で通信を行い、必要に応じて上位層へとサービスを行います。
こうした動作の概要こそが、ネットワークの最も重要な概念となります。
TCP/IPにおけるOSI基本参照モデルの運用
OSI基本参照モデルは、細かく階層を分けすぎており、実際にはこの7階層はそのまま使われていません。
現在ネットワークの標準となるのはTCPやUDPとIPを中心として組み合わせたTCP/IPプロトコルスイートになります。
参考
同じ団体が作成したプロトコルをセットで利用することをプロトコルスイートと言います。
この場合、IPを中心として構築されたプロトコル群を使うので、TCP/IPプロトコルスイートと呼んでいます。
では、OSI基本参照モデルとTCP/IPプロトコルスイートおよび実装例を対応させて紹介しましょう。
OSI基本参照モデル | TCP/IPプロトコルスイート | 実装例 |
アプリケーション層 | アプリケーション層 | HTTP, SMTP, FTP, DHCP, DNS, SNMP, POP3, Ternet |
プレゼンテーション層 | ||
セッション層 | ||
トランスポート層 | トランスポート層 | TCP, UDP |
ネットワーク層 | ネットワーク層 | IP, ICMP |
データリンク層 | ネットワークインターフェース層 | イーサネット |
物理層 |
上記の表からも分かるように、OSI基本参照モデルにおいての上位層は、アプリケーション層としてまとめられています。
そのため、知識としては、アプリケーション層、プレゼンテーション層、セッション層の区別は必要ではあると思いますが、実際の実務においては、上位層はひとくくりに考えても問題ないと思います。
例えば、「HTTPのどこまでがセッション層で、プレゼンテーション層で、アプリケーション層は何か」なんて考えていると無駄に混乱します。
あと、情報処理技術者試験においても、現実に沿った問題が出題されるので、そこまでOSI基本参照モデルに厳密に沿った理解までは不要と思います。
まとめ
ここまで、ネットワークの基本中の基本となるOSI基本参照モデルと、TCP/IPプロトコルスイートについて紹介してきました。
ネットワークを理解する上では、このOSI基本参照モデル、特に階層となる物理層、データリンク層、ネットワーク層、トランスポート層の理解は必須です。
もしもネットワークに苦手意識をお持ちの場合には、しっかりとOSI基本参照モデルについて学ばれるといいでしょう。
そして、学習していく各分野において、このプロトコルはどの階層に対応しているのかを意識しながら進めてください。
そうすると、ネットワークが面白いぐらい理解できるようになりますし、試験本番での「珍回答」も防げると思います。
以上、OSI基本参照モデルとTCP/IPプロトコルスイートについて、参考になれば幸いです。