OSI参照モデルについて(まとめ)
この記事ではOSI参照モデルについてまとめます。ネットワーク通信をするために必要な機能を7つの階層に分けた最も基本的なモデルです。
前提の知識
プロトコルとは?
コンピュータ同士が通信をする際の約束事のことです。 インターネットは世界中のコンピュータが情報をやり取りするための仕組みです。それぞれの国で勝手に通信方法を定めたらやり取りできません。そこで世界で共通する決まりを設けました。
生まれた背景
それまでネットワークの通信方式は世界中でバラバラでした。1982年、ISOとITUによりOSIと呼ばれるネットワーク標準規格の策定がスタートしました。策定自体はできましたが規格の内容が複雑過ぎてあまり普及しませんでした。一方TCP/IPはそのシンプルさから広く使われ、現在に至っています。(OSI参照モデルは「通信に必要な機能は何か?」を中心にモデル化されているのに対し、TCP?IPは「プロトコルを現実に使っていくにはどうしたら良いか?」ということを中心にモデル化されています。)
絶対ではないけれども..
「モデル」という言葉が付いているように、あくまで捉え方/整理の仕方の1つに過ぎません。現実におけるデータの転送方法はアプリケーションによっても異なります。また現在ではTCP/IPによる通信が行われていることがほとんどです。しかし通信に必要な機能が細かく階層化されているため、OSIのモデルを土台に現場でも仕事をする場面は多々あります。
OSI参照モデルとは?
OSI参照モデルとはネットワーク通信に必要な機能を7つの階層に分けて分類したモデルのことです。 Open System Intetconnectionの略であり、日本語では開放型システム化相互接続を意味します。ISO(国際標準化機構)という国際団体によって定められました。「相互接続」という言葉があるように、異なる種類のコンピュータ間での通信を可能とすることを目的としています。
7つの層の役割
OSI参照モデルは以下の7つの層から構成されます。
階層 | 階層名 | 機能 |
---|---|---|
第7層 | アプリケーション層 | アプリ同士がやり取りする約束事を定義 |
第6層 | プレゼンテーション層 | データの表現形式を管理 |
第5層 | セッション層 | 通信の開始~終了を管理 |
第4層 | トランスポート層 | 通信の信頼性を確保 |
第3層 | ネットワーク層 | ネットワーク同士を中継 |
第2層 | データリンク層 | 隣接ノードとの通信を実現 |
第1層 | 物理層 | 物理的な接続を実現 |
物理層
(1)ビット列と電気信号の変換
(2)ネットワークに関する物理的な要素(ケーブル/Wi-fi)を定義
物理的な接続を実現する層です。(コンピュータは0と1によって情報を表しており、0と1の2つの数字をビット、ビットが連続したデータをビット列といいます。)データリンク層から受け取ったビット列(0と1の情報)を電気信号へ変換したり、電気信号をビット列に戻します。またケーブルの材質やコネクタの形状、ピン配列や無線の周波数帯域など、ネットワークに関する物理的な要素を全て定義しています。
データリンク層
(1)ビット列の整合性チェック・エラー修正
(2)MACアドレスによる隣接ノードとの通信
同一ネットワーク内で通信を実現し、物理層上でビット列の正確な伝送を実現する層です。物理層で起こったエラーをチェック・修正し、デジタルデータとしての信頼性を実現します。またMACアドレスを利用して隣接ノードとの通信を実現します。
ネットワーク層
IPアドレスを使用してネットワーク同士の通信を実現
ネットワーク同士を中継する層です。IPアドレスを使って目的地までの通信を実現します。インターネットはたくさんのネットワークが集まることで構成されています。イーサネットや無線LANでできたネットワークをつなぎ合わせ
、別のネットワークにいる端末との通信を実現します。
トランスポート層
(1)ポート番号を利用してパケットを渡すアプリケーションを識別
(2)パケットの送受信量の制御、消失したパケットの再送
(1)アプリケーションの識別,(2)要件に応じた通信制御 を行うことで、ネットワークとアプリケーションを繋ぐ階層です。(通信制御を実現する方法として)TCP,UDPの2つのプロトコルが使われています。
セッション層
通信の開始~終了を管理する層です。 セッションを適切に管理することで、複数のサービスを起動してもエラーなく処理ができます。TCP/IPの4階層モデルでは個々のアプリケーションが必要に応じてセッションの管理をしており、近年ではセッション層のプロトコルが使われる場面は少なくなっています(実際はほとんど使用されていません。)
プレゼンテーション層
データの表現形式を管理する層です。 文字,画像,音楽など、異なるデータ形式を使うコンピュータ同士で、正しくデータを表示するための機能を担います。データの暗号や復号も担当することがあります。(TCP/IPの4階層モデルでは、個々のアプリケーションが必要に応じてデータ形式の規定や変換方法などの管理を行っています。)
アプリケーション層
利用者が使うアプリケーションが通信するための約束事を定義する層です。 メール,ブラウジング,チャットなどができるよう、HTTP,HTTPS,DNSなどのプロトコルが使われています。
通信の流れ
階層 | 階層名 | 機能 |
---|---|---|
第7層 | アプリケーション層 | アプリが通信するための約束事を定義 |
第6層 | プレゼンテーション層 | データの表現形式を管理 |
第5層 | セッション層 | 通信の開始~終了を管理 |
第4層 | トランスポート層 | 通信の信頼性を確保 |
第3層 | ネットワーク層 | ネットワーク同士を中継 |
第2層 | データリンク層 | 隣接ノードとの通信を実現 |
第1層 | 物理層 | 物理的な接続を実現 |
データは上の層(もしくは下の層)から順番に処理されていきます。1つの階層で処理が終わったら、隣の階層に引き渡すことになります。例えばGmailを送信する場合を考えてみます。(厳密に言えば実際にこのような流れになっているわけではないので注意して下さい。)
メールの送信する側となるコンピュータは、上の階層から(第7層:アプリケーション層から)順にデータを処理(解体)していき、最後にパケットとして伝送媒体に流します。受信側のコンピュータは先ほどの逆で、下の階層から順番にデータを処理(復元)していき、最後にブラウザへメールの内容を表示します。
ヘッダ(カプセル化/非カプセル化)
コンピュータがデータを送信する際、送られるのはデータそのものだけではありません。物理的な仕様,送信相手の特定,パケットの転送,信頼性の確立,セキュリティの確保など、色々な情報がプラスで必要になります。
ヘッダとは正しい通信を実現するため、プラスで付加される情報のことを指します。送信側では正しい通信を実現するため、各層でヘッダを付与していきます(物理層でヘッダは付与されないので注意して下さい)。逆に受信側ではそれぞれの層で付与されたヘッダを外して情報を読み取っていきます。送信側でヘッダを付加することをカプセル化と呼び、受信側でヘッダを外すことを非カプセル化と呼びます。
PDU(Protocol Data Unit)
カプセル化(通信に必要な機能がプラスで付加される)ことによって、データの構成は各層で異なります。各階層で処理される一まとまりのデータ(データの単位)のことを、PDU(Protocol Data Unit)と言います。PDUは制御情報を含むヘッダーと、データそのものであるペイロードで構成されています。PDUの名称は各階層によって異なっています。
階層 | 階層名 | 機能 |
---|---|---|
第7層 | アプリケーション層 | メッセージ |
第4層 | トランスポート層 | セグメント(TCP)、データグラム(UDP) |
第3層 | ネットワーク層 | パケット |
第2層 | データリンク層 | フレーム |
第1層 | 物理層 | ビット |
各層で使用されるプロトコル
OSI参照モデル、TCP/IPモデルなどにおいて、各層で使用されるプロトコルは異なります。ネットワークにはたくさんのプロトコルが存在していますが、実際に使用されるモノはごくわずかです。各階層で「ほとんどの場合でコレを使う」といった定番プロトコルが存在します。
物理的な使用,送信相手の特定,パケットの転送,信頼性の確立,セキュリティの確保など、これらのプロトコルにはインターネット上で通信をするために必要な情報が含まれています。これらプロトコルの中身を理解することが、OSI参照モデル,TCP/IPを勉強する上で1番のテーマとなっていきます。
Discussion