Works by

Ren's blog

@rennnosuke_rk 技術ブログです

【NW】OSI基本参照モデル

OSI基本参照モデルとは

OSI基本参照モデルとは、コンピュータ通信に必要な機能を階層構造に分類したモデルです。国際標準化機構(International Organization for Standardization, 通称ISO)が策定しています。

rennnosukesann.hatenablog.com

前回の記事で、プロトコルとその階層性について紹介しました。
プロトコルは階層化することで、それぞれのプロトコルの機能が明確化され、また各機能間の関係が独立的になり実装時の保守が容易になるという特性を持ちます。

同様に、OSI基本参照モデルは「コンピュータ通信にとって必要な機能」を7つのレイヤに分類して階層化し、モデルとしています。このモデルに従うことで、プロトコルがどのレイヤに該当し、通信プロトコルとしてどのような役割を果たしているのかを明確にすることができます。

OSI基本参照モデルのレイヤ

OSI基本参照モデルで定義されるレイヤは下記の7つです。

f:id:rennnosukesann:20180712192410p:plain

アプリケーション層

アプリケーション層はメール転送やファイル転送など、アプリケーションレベルの通信内容を定義するプロトコルはこのレイヤに該当します。例えばメール転送のプロトコルであれば、タイトルや送信元・宛先メールアドレス、本文などの情報がやり取りされる・・といった具合です。逆に、通信の信頼性や通信データの送受信そのものに関する責務等はこのレイヤーには(通常)存在しません。これらの責務は後述するトランスポート層ネットワーク層に委譲されます。

プレゼンテーション層

データの表現形式・配布形式を定義します。例えば、アプリケーション層でやりとりされるコンテンツの文字コードや、暗号化の有無・圧縮するかどうかなど、コンテンツの内容自体は変化しないものの、その表現形式をどのようにするか定義します。

セッション層

一回の通信の接続・切断のタイミングや、アプリケーション層で定義した(複数の)コンテンツの送信順などをコントロールします。またコンテンツを直列に送信するのか、並列に送信するのかなどについても定義します。

トランスポート層

トランスポート層では、コンピュータ間の通信の信頼性について責務を持ちます。 具体的には、コンピュータ同士の通信における - 同じ送信元・送信先のデータでも、アプリケーションごとに通信を識別可能にするかどうか - データの送信に失敗したとき、再送制御を行うかどうか 等について定義を行います。 通信の信頼性について責務を持つ、と書きましたが、あえて「スピード重視で再送制御を行わない」という定義を行うプロトコルもあります(UDP)。トランスポート層に位置するプロトコルは必ずしも通信の信頼性を担保するものではなく、あくまで「通信の信頼性についてどうするか」を定義します。

ネットワーク層

コンピュータネットワーク上の送信元と送信先、2点間の通信そのものについて定義します。 送信元・送信先情報をどのように定義するか、どのような経路で送信先にパケットに届けるのかなど、ネットワーク上でデータ転送をどうやって行うかを決めるプロトコルがここに該当します。

データリンク層

隣接するコンピュータ間の通信について定義します。ネットワーク層で定義される通信の最小単位と解釈することもできます。ネットワーク層とは別の送信元・送信先情報を定義したり、送信するデータの整合性をチェックするための仕様等を定義します。

物理層

物理媒体の仕様を定義します。0/1のビット配列を電気や光といった物理媒体にどのような規則で変換するのか等を定義します。

レイヤ間の関係

先程も述べたとおり、各レイヤの機能は互いに独立した関係にあります。一方で、各レイヤが役割を分担しあうことで、ネットワーク上におけるコンピュータ間の通信が成立する用になっています。例えば、ネットワーク層ではネットワーク上の2点間の通信の方法を定義しますが、通信の信頼性については責任を持ちません。具体的に言うと、媒体障害などでデータが相手に届かないような状況でも、ネットワーク層はそれについて責任を持ちません。代わりに、トランスポート層がデータの再送制御について責任を持ってくれるので、データが届かなかった場合にどうすればよいのかの定義はトランスポート層が担ってくれます。

このように、各レイヤが相互に機能定義を補うことで、ネットワーク上の通信が成立するようなモデルとなっています。

参考

https://amzn.to/2m8XBV3amzn.to