動機
基本情報技術者試験の受験勉強も兼ねてOSI参照モデルについて学習したので、整理するために書きました。
OSI参照モデルとは
コンピュータネットワークにおける通信プロトコルを役割によって7階層に分けたものです。
ただし分割されたそれぞれのネットワーク機能の説明に使用されますが、あくまで概念に過ぎず、実際に使用されているのはTCP/IPです。
OSI参照モデル
階層 | 階層名 |
---|---|
第7層 | アプリケーション層 |
第6層 | プレゼンテーション層 |
第5層 | セッション層 |
第4層 | トランスポート層 |
第3層 | ネットワーク層 |
第2層 | データリンク層 |
第1層 | 物理層 |
下の階層から整理します。
物理層
上位層から送られたデータのビットを物理的な信号に変換して転送する層です。0と1だけで構成されたデジタルデータを電気信号や電波に変換して転送し、受け取った側が複合することで元の形式に戻ります。
代表的なものでイーサネット(有線LANを含む)、無線LANなどが該当します。
データリンク層
物理層で受け取ったデータ、ネットワーク層から要求を受けたデータの転送を行う層です。正しいデータを正しい送り先に届ける役割を持ちます。
正しいデータを送るために、データの衝突を回避するための制御や、データの破損、エラーを検出する機能を備えています。また、正しい送り先(端末)を特定するために、我々の端末が持つMACアドレスという一意な値を使用します。
ネットワーク層
データリンク層までの層では、LANの外へ通信することができません。つまりはインターネットにアクセスできません。LANの外にある任意の端末とのやり取りを実現するのがネットワーク層です。
ネットワーク層はデータを目的の端末までの経路を選択して転送します。転送を中継するのがルータです。転送先を特定するために使用するのがIPアドレスで、これはIPというプロトコルに基づいています。
トランスポート層
トランスポート層は通信品質を管理するための層です。代表的なプロトコルにTCPとUDPがあります。
TCPは機器間の通信開始、終了を管理しつつ、欠損したデータの再送要求を行うなどデータの確実性の高さを重視しています。ウェブサーバとの通信のような、確実性が重要な通信で選ばれます。
UDPはTCPと異なり高速性を重視しています。TCPのように通信の確実性を高めることをしないことによって、データの伝送速度を向上させることができます。ストリーミング配信のような、リアルタイム性が重要な通信で選ばれます。
セッション層
セッションとは、開始から終了までの一連の通信のまとまりです。これを維持するためのレイヤーがセッション層です。
(現在ほとんどのネットワークで採用されるTCP/IPをレイヤーに分けたTCP/IP階層モデルには、OSI参照モデルのセッション層に該当する層は存在しません。アプリケーション層がセッション管理の役割を巻き取っていることが多いです。)
プレゼンテーション層
画像の形式や文字コードなど、データの表現形式を定義する層です。データの形式が送信側、受信側で異なると人間が理解できる形式に戻すことができません。例えば「文字化け」は文字コードが不適切な場合に起きる不具合です。
アプリケーション層
我々が普段使用しているアプリケーション、ウェブブラウザなどのソフトウェアが提供する機能についてのプロトコルが属します。ウェブブラウザでウェブサイトを閲覧するときはHTTP、サーバにファイルを転送するときはSMTPなど、処理に応じて適切なプロトコルが存在します。
実際には使われていない
OSI参照モデルは実際には使われていません。現在の世界標準はTCP/IPであり、これを階層化したTCP/IP階層モデルは、OSI参照モデルより3層も少ない、4層で構成されています。基本情報技術者試験に限らずこの2つのモデルを比較している場合がありますが、2つは別物です。OSI参照モデルはあくまで、ネットワークの基本的な原則や概念を理解するための説明用のような立ち位置であることに注意する必要があります。