OSIモデルとは?

開放型システム間相互接続(OSI)モデルではネットワーク通信を7つの層に分解しています。この層はネットワーク問題の特定に便利です。

Share facebook icon linkedin icon twitter icon email icon

OSIモデル

学習目的

この記事を読み終えると、以下のことができます。

  • OSIモデルの定義
  • OSIモデル第7層の特定
  • OSIモデルにおけるデータフローの確認

OSIモデルとは?

開放型システム間相互接続(OSI)モデルは、国際標準化機構(ISO)が作成した概念モデルであり、さまざまな通信システムが標準プロトコルを用いて通信できるようにしています。わかりやすく言えば、OSIが提供するのは異なるコンピューターシステムがお互いに通信できるようにするための基準です。


OSIモデルはコンピューターネットワーキングにおける共通言語と考えることもできるでしょう。通信システムを7つの抽象化した層に分割し、各層が前の層に積み重なるという概念に基づいています。

undefined

OSIモデルの各層は固有の任務に対応し、自分の上下の層と通信を行います。DDoS攻撃が狙うのはネットワーク接続の特定の層です。たとえばアプリケーション層攻撃では第7層、プロトコル層攻撃では第3、第4層が標的になります。

OSIモデルが重要な理由とは?

現代のインターネットは厳密にOSIモデルに従っているわけではありませんが(よりシンプルなインターネット・プロトコルスイートのほうに従っています)、それでもOSIモデルはネットワーク問題のトラブルシューティングにおいて非常に便利です。それがインターネットにノートPCを接続できない個人であろうと、数千のユーザーによってダウンしたWebサイトであろうと、OSIモデルを利用することで問題の分析や原因の特定に役立ちます。問題がモデルの特定の層に狭められるのであれば、多くの不要な作業をやらずにすむのです。

OSIモデルの第7層とは?

OSIの7つの抽象層は、上から順に次のように定義することができます。

アプリケーション層

7.アプリケーション層

これはユーザーからのデータを直接やり取りする唯一の層です。Webブラウザやメールクライアントといったソフトウェアアプリケーションはアプリケーション層に依存して通信を開始しています。しかし、クライアントのソフトウェアアプリケーションはアプリケーション層の一部ではないということは明確にしておかなければなりません。むしろ、アプリケーション層はソフトウェアがユーザーにとって意味のあるデータを表示するために使用するプロトコルやデータ生成を担当しています。アプリケーション層のプロトコルには、HTTPやSMTP(Simple Mail Transfer Protocol、メール通信ができるプロトコルの1つ)があります。

プレゼンテーション層

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

このレイヤーは主にアプリケーション層が使用するためのデータの準備を担っています。つまり、第6層はアプリケーションが消費できるようデータを表示可能にしています。プレゼンテーション層が担当するのはデータの変換、暗号化、圧縮です。


通信を行う2つの通信デバイスは異なるエンコーディング方法を用いている場合があります。そのため第6層は受信データを受信するデバイスのアプリケーション層が理解できるシンタックスに変換する責任があるのです。


デバイスが暗号化接続を介して通信している場合、第6層は送信者側での暗号化の付与および受信者側での暗号の復号化を担い、アプリケーション層に暗号化されていない読み取り可能なデータを表示できるようにします。


最後に、プレゼンテーション層はアプリケーション層から受け取ったデータを第5層に受け渡す前に圧縮する作業も行います。これによりやり取りするデータ量が最小化されることで、速度や効率の改善に繋がります。

セッション層

5.セッション層

セッション層は2つのデバイス間の通信を開いたり閉じたりする層です。通信が通信の開始から終了までの時間はセッションとして知られています。セッション層は、交換されるすべてのデータを転送するのに十分な長さのセッションを開いたままにし、リソースを無駄にしないようにセッションをすぐに閉じます。


また、セッション層はチェックポイントでデータ転送を同期します。たとえば100MBのファイルが転送される場合、セッション層は5MBごとにチェックポイントを設定します。そして52MB転送後に切断やクラッシュが発生した場合、セッションは最後のチェックポイントから再開することができます。つまり転送が必要なのは50MBのデータのみですむのです。チェックポイントがなければゼロからまた転送を始めなければなりません。

トランスポート層

4.トランスポート層

第4層は2つのデバイス間のエンドツーエンドの通信を担います。これにはセッション層からのデータの取得や第3層に送る前に行うセグメントと呼ばれる単位へのデータ分割が含まれます。受信デバイスのトランスポート層はセッション層が消費できるようセグメントに分けられたデータを再度組み合わせます。


また、トランスポート層はフロー制御やエラー制御も担当しています。フロー制御では、高速接続の送信者が低速接続の受信者を圧倒してしまわないように最適な転送速度を判断します。受信データが完全であることを確認したりそうでない場合は再送信を要求したりすることで、トランスポート層は受信者側でのエラー制御を行っています。

ネットワーク層

3.ネットワーク層

ネットワーク層は2つの異なるネットワーク間のデータ転送を円滑に進めます。通信する2つのデバイスが同じネットワーク上にある場合はネットワーク層は不要です。ネットワーク層は送信者側のデバイスではトランスポート層から受け取ったセグメントをより小さなパケットと呼ばれる単位に分割し、受信者側のデバイスではこのパケットを再度組み立てます。また、ネットワーク層はデータが目的にに達するまでの最適な物理パスを検出します。これをルーティングと呼びます。

データリンク層

2.データリンク層

データリンク層はネットワーク層と非常に類似していますが、この層は同じネットワーク上にある2つのデバイス間のデータ転送を円滑に進めます。データリンク層はネットワーク層からパケットを受け取ってさらに小さなフレームと呼ばれるかけらに分割します。ネットワーク層同様、データリンク層もイントラネット通信内のフロー制御やエラー制御を行います(トランスポート層が行うのは内部ネットワーク通信におけるフロー制御やエラー制御のみです)。

物理層

1.物理層

この層にはケーブルやスイッチなどデータ転送に関わる物理機器が含まれます。また、データがビットストリーム、つまり1か0の文字列に変換されるのもこの層です。双方のデバイスの物理層は、どちらのデバイスでも1と0の区別が付けられるよう、信号に関する協定に同意しなければなりません。

OSIモデルにおけるデータフロー

1デバイスから別のデバイスへネットワークを介して人間が読み取り可能な情報が転送されるためには、送信デバイスではOSIモデルの7つの層を上から下へ、受信デバイスでは下から上へとデータが移動しなければなりません。


例:Cooper氏はPalmer氏にメールを送ろうとしています。Cooper氏は自分のノートPCにあるメールアプリケーションにメッセージを入力し、「送信」をクリックします。このメールアプリケーションはメールをアプリケーション層に渡し、アプリケーション層がプロトコル(SMTP)を選択してプレゼンテーション層へデータを引き渡します。プレゼンテーション層ではデータを圧縮してセッション層に送ります。セッション層は通信セッションを開始します。


その後データはセグメント化を行う送信者のトランスポート層に行き着き、このセグメントがネットワーク層でパケットに分解されてデータリンク層でさらにフレームに分解されます。データリンク層はこのフレームを物理層に渡し、物理層がデータを1と0のビットストリームに変換してケーブルなどの物理媒体経由で送信します。


Palmer氏のコンピューターが物理媒体(Wi-Fiなど)を経由してこのビットストリームを受け取ると、データが同氏のデバイス上で同じように、しかし今度は逆の方向に流れていきます。まず物理層が1と0のビットストリームをデータリンク層に渡すためのフレームへ変換します。データリンク層はネットワーク層のためにフレームを再度組み合わせてパケットにします。その後ネットワーク層はトランスポート層のためにパケットからセグメントを作り、トランスポート層ではセグメントを組み立てて1つのデータにします。


データは受信者のセッション層に流れ、そこでプレゼンテーション層に引き渡されて通信セッションが終了します。プレゼンテーション層は圧縮を取り除いて未加工データをアプリケーション層に渡します。アプリケーション層は人間が読み取り可能なデータにしてPalmer氏のメールソフトに流し込み、メールソフトによってPalmer氏のノートPC上でCooper氏のメールが読み取れるようになります。