2016年4月24日日曜日

OSI参照モデル

OSI参照モデル

プロトコル=約束事
約束事を7階層に分けて定義したもの=OSI参照モデル

OSI参照モデルを策定したところ=ISO (International Organization for Standardization : 国際標準化機構)

階層 名前 役割 キーワード
第7層 アプリケーション層 アプリ・ソフトのルールを決める ユーザインターフェース・メール・WEB
第6層 プレゼンテーション層 データの表現形式を決める(文字コードとか) 文字コード(ASCII・ABCDIC)
画像(JPEG・GIF
)
動画(MPEG)
第5層 セッション層 通信路の確立から終了までの管理 WEB閲覧開始から終了まで
メール受信開始から終了まで
第4層 トランスポート層 信頼性のある通信の提供(データが正しく届いたか) コネクション確立から終了
フロー制御
順序制御
確認応答
再送制御
第3層 ネットワーク層 最適経路を決定し、エンドツーエンドの通信を行う 経路選択(ルーティング)の方法
IPアドレス(論理アドレス)の割り当て方法
データ(パケット)の構造
選択した経路上にデータを送出する方法
第2層 データリンク層 隣接するノード(サブネット内)の通信を行う データ(フレーム)の構造
データ送出タイミング
送信元と宛先の識別(MACアドレス)方法
エラー検出と対処方法
第1層 物理層 電気信号や光信号を正しく伝送するための機器・電気信号のルールを決め、ビットを伝送する コネクタ形状・ピンの配置
ケーブルの種類や長さ
電圧レベル・電圧変化タイミング
通信速度・符号化形式

第7層 アプリケーション層


例えばメールを送る場合、送信元メールアドレス(From)、宛先メールアドレス(To・Cc・Bcc)、件名(Subject)、本文はメールソフトに必ず設けられるようルール化されています。これにより送信側と受信側が違うメールソフトを使用していても、正しくメールの送受信が行えるようになっています。また、WEBを閲覧する時はどのブラウザを使ってもURLの最初に”http:”や”https:”のような文字列が入りますが、これもアプリケーション層での決まり(WEBを見に行くと宣言する)です。このようにインターネットを利用するアプリケーションには、世界共通の規則があります。

第6層 プレゼンテーション層

現在は適切なメールソフトを利用すれば海外と日本でそれぞれの言葉を使い、メールをやり取りすることができますが、そうなる前の電子メールは英語しか使えませんでした。
英語以外の言語を使うための取り決めがなかったからです。その後各言語で独自の取り決めにより日本語(ISO-2022-JP)同士、その他の言語同士のやり取りを行うことができるようになりましたが、これはあくまでも同じ言語同士のやり取りに限られたものでした。ここまでのメールはテキスト・メールと呼ばれ、それを現在のように利用しやすく拡張した規格がMIME(Multipurpose Internet Mail Extension 多目的インターネットメール拡張)です。現在MIMEに対応したメールソフトでは、受信したメールのソースに次のような部分があります。
ーーーーーーーーーーーーーーーーーーーーーーーーーー
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
ーーーーーーーーーーーーーーーーーーーーーーーーーー
上記は全てMIMEで追加されたヘッダです。MIMEのバージョン、日本語のプレーンテキストメールであること、エンコードが7bitであることが宣言されています。
「Content-Type:」では、様々なデータタイプを表現するための符号化方式を指定することができ、続く「Content-Transfer-Encoding」でデータの変換形式が何であるかを指定しています。インターネットの中を流れる時は、このメールは標準の形式に直され、相手先で表示するときに上記の「日本語」「7bit」に従って異なる環境で読めるように変換されます。



第5層 セッション層

セッション層は、プログラム同士の論理的な通信路(セッション)の確立・維持・終了などを定義しています。
例えば、WEBページを参照するとき、WEBブラウザを起動しURLを入力して実行すると通信が開始され、ページがすべて表示されると通信が終了します。この一連の通信がセッッションに相当します。

第4層 トランスポート層



トランスポート層は、データを確実に届けるための信頼性を提供する役割を担います。
トランスポート層で定義されるものは主に以下です。
  • 仮想回線(コネクション)の確立・維持・終了
  • フロー制御(受信側の状態に合わせて送信量を調整する)
  • 順序制御(分割されたデータを受信側で元の順番に再構成する)
  • 確認応答(データが正しく相手に届いたかどうか確認する)
  • 再送制御(データが届かなかった場合に再送信する)

第3層 ネットワーク層

ネットワーク層では、異なるネットワークを相互接続し、エンドツーエンドで通信するための経路選択(ルーティング)を行います。
データの転送先を決定するための情報としてIPアドレスなどの論理アドレスを使用します。
ネットワーク層で定義されるものは主に以下です。
  • データの送信元及び宛先を識別するアドレスの割り当て方法
  • データ(パケット)の構造
  • 経路選択(ルーティング)の方法
  • 選択した経路上にデータを送出する方法

第2層 データリンク層

データリンク層は、直接接続された隣接機器と正しく通信する役割を担っています。通信相手を特定するための情報としてMACアドレスなどの物理アドレスを使用します。
データリンク層で定義されるものは主に以下です。
  • 通信媒体にデータを送り出すときのタイミング
  • 伝送中に発生したエラーの検出と対処方法
  • データ(フレーム)の構造
  • データの送信元及び宛先の識別方法

第1層 物理層

物理層では、電気的・機械的なハードウェアの物理仕様が定義されています。

  • コネクタの形状、ピンの数や配置
  • ケーブルの種類や長さ
  • 電圧レベル、電圧変化のタイミング
  • 通信速度、符号化の方式

カプセル化と非カプセル化



カプセル化:データの先頭にヘッダと呼ばれる制御情報を付加すること
送信側:カプセル化
受信側:非カプセル化
カプセル化されたデータは下位層のプロトコルに渡され、下位層でも同様にカプセル化を行い、さらに下位層に渡されます。
なおデータリンク層ではデータの後ろにもトレーラと呼ばれるエラーチェック用の情報を付加します。最終的に、データは信号としてケーブル上に創出されます。

PDU

PDU(Protocol Data Unit)・・データにヘッダが追加されて扱われるデータの単位

OSI参照モデルのPDU名称
トランスポート層・・・セグメント・・TCPから受け取った場合(UDPでカプセル化されたPDUはデータグラム)
ネットワーク層・・・・パケット
データリンク層・・・・フレーム