OSI参照モデルの概要

OSI参照モデルは、ネットワーク通信に必要な機能を7つの階層に整理したモデルです。LANケーブルによる信号の伝送から、Webサイトの閲覧に使われる通信まで、各階層がどのような役割を担うのかを理解できます。

ネットワークの学習では、機器やプロトコルの名前を個別に覚えるだけでなく、それぞれが通信のどの部分を担当しているかを知ることが大切です。この記事では、OSI参照モデルの各レイヤーを、身近な機器や通信の例と併せて解説します。

OSI参照モデルとは

OSIは「Open Systems Interconnection」の略です。OSI参照モデルは、通信機能を階層ごとに分け、異なるシステム間の通信を共通の枠組みで理解するために定められました。

各層は、下位層の機能を利用しながら、上位層にサービスを提供します。例えば、アプリケーション側は、LANケーブル上の電気信号を直接制御することなく、下位層の機能を通じてデータを送受信できます。

階層名称主な役割
第7層アプリケーション層アプリケーションに通信機能を提供する
第6層プレゼンテーション層データの表現形式を扱う
第5層セッション層通信の対話を管理する
第4層トランスポート層通信する端末間のデータ転送を担う
第3層ネットワーク層異なるネットワーク間でデータを届ける
第2層データリンク層同じリンク上でフレームを転送する
第1層物理層電気・光・電波などで信号を伝送する

ここからは、実物をイメージしやすい第1層から順に見ていきます。

第1層:物理層|データを信号として伝える

物理層は、データを電気信号や光信号、電波などとして伝送するための層です。ケーブルやコネクタの形状、信号の扱い方など、通信の物理的な条件に関係します。

パソコン内部のデータは、そのままケーブルの中を移動するわけではありません。送信側で信号に変換され、伝送媒体を通じて受信側へ送られます。受信側は、その信号からビット列を読み取ります。

LANケーブルとRJ-45コネクタ

身近な例が、パソコンやスイッチを接続するLANケーブルです。一般にRJ-45と呼ばれるコネクタには8つの接点があり、対応するポートに差し込んで使用します。

コネクタの形が同じでも、利用できる通信速度はケーブルの規格や長さ、接続する機器などによって変わります。

物理層の問題を調べる際は、ケーブルの抜けや破損、機器の電源、ポートのリンク状態などを確認します。

第2層:データリンク層|同じリンク上でデータを転送する

データリンク層は、物理層を利用して、同じリンク上の機器間でデータをやり取りするための層です。Ethernetでは、データを「フレーム」という単位で扱います。

Ethernetフレームには、送信元と宛先のMACアドレスなどが含まれます。MACアドレスはネットワークインターフェースの識別に使われ、スイッチが転送先を判断するための情報になります。

スイッチとMACアドレス

レイヤー2スイッチは、受信したフレームの送信元MACアドレスを学習し、MACアドレスとポートの対応を管理します。その情報を使って、宛先へフレームを転送します。

また、VLANによるネットワークの論理的な分割や、STPによるループ防止も、第2層を理解するうえで重要な技術です。参考:Cisco「ネットワークの基礎・レイヤー2スイッチング」

Ethernetは、ケーブルや信号に関する第1層の規定と、フレームに関する第2層の規定を含みます。ひとつの技術が、複数の層に関係することもあります。

第3層:ネットワーク層|異なるネットワークへデータを届ける

ネットワーク層は、異なるネットワーク間でデータを届けるための層です。代表的なプロトコルがIPで、送信元や宛先をIPアドレスによって識別します。

例えば、社内のパソコンからインターネット上のサーバーへアクセスする場合、データは複数のネットワークを通過します。途中のルーターは、宛先のIPアドレスと経路情報をもとに、次の転送先を判断します。この処理をルーティングと呼びます。参考:RFC 791「Internet Protocol」

IPアドレスとデフォルトゲートウェイ

通信先が別のIPネットワークにある場合、端末は通常、デフォルトゲートウェイなどの経路設定に従ってデータを送ります。

第3層を学ぶ際は、IPアドレスだけでなく、サブネットマスクやプレフィックス、ルーティングテーブルも併せて理解することが大切です。

IP自体には、失われたデータを再送する仕組みや、到着順序を保証する仕組みはありません。必要な機能は、TCPなどの別のプロトコルが補います。

第4層:トランスポート層|端末間のデータ転送を担う

トランスポート層は、通信する端末間でデータを転送するための層です。代表的なプロトコルにはTCPとUDPがあります。

TCPやUDPはポート番号を使い、同じ端末で動く複数のサービスや通信を識別します。IPアドレスで通信先の端末を判断し、ポート番号でその端末上のサービスなどを識別する関係です。

TCPとUDPの違い

TCPは、データの順序管理や再送などを行い、アプリケーションに信頼性のあるデータ転送を提供します。受信側が処理できる量やネットワークの混雑も考慮しながら通信します。参考:RFC 9293「TCP」

UDPは、TCPのような接続の確立や、再送・順序保証を行わないプロトコルです。こうした制御が必要な場合は、上位のプロトコルやアプリケーション側で対応します。参考:RFC 768「UDP」

そのため、第4層の通信がすべてデータの到達を保証するわけではありません。利用するプロトコルによって、提供する機能が異なります。

第5層:セッション層|通信の対話を管理する

セッション層は、通信する相手との対話を開始・維持・終了したり、対話の進行を調整したりする役割を持ちます。同期点を設けて処理の進み具合を管理する機能も、この層の考え方に含まれます。

第4層がデータ転送を担うのに対し、第5層は、その転送を使って行う対話の管理に注目した層です。参考:IBM「OSIモデルのセッション層」

ただし、実際のTCP/IP通信では、セッション管理に関係する機能がアプリケーションなどに組み込まれています。TCP接続やWebサイトのログイン状態を、そのまま第5層と一対一で対応させると理解しにくくなるため、まずは役割の区分として捉えましょう。

第6層:プレゼンテーション層|データの表現形式を扱う

プレゼンテーション層は、送信側と受信側がデータを適切に解釈できるよう、表現形式を扱う層です。データ形式の変換や符号化、圧縮、暗号化などが、この層に関連する機能として説明されます。参考:IBM「OSIモデルのプレゼンテーション層」

例えば、文字を送信する場合は、どの文字コードで表現しているかを双方が理解する必要があります。バイト列が正しく届いていても、解釈する形式が違えば、期待した文字を表示できません。

第6層は、「データが届くこと」と「届いたデータを正しく解釈できること」の違いを考えると理解しやすくなります。実際のシステムでは、これらの処理がライブラリやアプリケーションなどに実装されます。

第7層:アプリケーション層|アプリケーションに通信機能を提供する

アプリケーション層は、Web閲覧やメール送信などの処理に必要な、通信サービスやプロトコルを扱います。

例えば、HTTPはWebブラウザーとサーバーの間でリクエストとレスポンスをやり取りするために使われます。ページの取得を要求し、サーバーがステータスコードやコンテンツを返す、といった通信の意味や形式を定めています。参考:RFC 9110「HTTP Semantics」

ほかにも、名前解決に使われるDNSや、メールの送信・配送に使われるSMTPなどがあります。

ここでいうアプリケーション層は、ブラウザーの画面や操作ボタンそのものではありません。ソフトウェアがネットワークを利用するための通信機能に注目した層です。

データを送受信する流れとカプセル化

送信側では、上位層のデータを下位層へ渡しながら、通信に必要な制御情報を付けていきます。これをカプセル化と呼びます。

例えば、HTTPのデータをTCPで運ぶ場合、TCPのヘッダー、IPのヘッダー、Ethernetのヘッダーなどが付けられ、最終的に物理層で信号として送られます。受信側では、対応する制御情報を処理しながら、上位の処理へデータを渡します。参考:RFC 791「プロトコル間の関係」

なお、途中にあるすべての機器が、第7層まで処理するわけではありません。スイッチやルーターは、担当する転送処理に必要な情報を参照します。

OSI参照モデルとTCP/IPモデルの違い

OSI参照モデルは通信機能を7層で整理しますが、実際のインターネット通信を説明するTCP/IPモデルは、一般に4層で整理されます。

OSI参照モデルTCP/IPモデルでの一般的な対応
第5〜7層アプリケーション層
第4層トランスポート層
第3層インターネット層
第1〜2層ネットワークインターフェース層

この対応は、役割を比較するための目安です。実際のプロトコルやソフトウェアが、OSIの各層と厳密に一対一で対応するとは限りません。参考:Cisco「TCP/IPとOSIモデル」

OSI参照モデルをトラブルシューティングに活用する

OSI参照モデルは、通信できない原因を整理するときにも役立ちます。

例えば、ケーブルの接続やリンク状態は第1層、VLANやMACアドレスによる転送は第2層、IPアドレスやルーティングは第3層に関係します。下位層から確認すると、調べる範囲を段階的に絞り込めます。

また、サーバーまで到達できても、目的のサービスが利用できるとは限りません。ポートへの接続、通信プロトコルの応答、認証やアプリケーションのログなども確認する必要があります。層の名前を暗記するだけでなく、「どの機能を確認しているのか」を考えることが実践につながります。


新規報告

閉じる