OSI参照モデル

OSI参照モデル

 OSI参照モデルは、コンピュータネットワークにおける通信のプロトコルを分類したモデルです。Open Systems Interconnection(OSI)という用語は、国際標準化機構(ISO)によって開発され、1984年に標準化されました。このモデルは、7つの階層に分けられており、それぞれが異なる役割を持ちます。

  1. 物理層(Physical layer)
     ネットワーク上でのビットストリームの送受信を担当します。具体的には、物理的な接続、送受信機、信号伝送などを扱います。
  2. データリンク層(Data link layer)
     ネットワーク上でのフレームの送受信を担当します。具体的には、フレームの作成、フレームの送信先の特定、誤り検出、再送要求などを扱います。
  3. ネットワーク層(Network layer)
     ネットワーク上でのパケットの送受信を担当します。具体的には、パケットのルーティング、ネットワークのトポロジーの管理、フロー制御などを扱います。
  4. トランスポート層(Transport layer)
     ネットワーク上でのデータの転送制御を担当します。具体的には、データのセグメンテーション、データの再送要求、フロー制御などを扱います。
  5. セッション層(Session layer)
     アプリケーション間のセッション管理を担当します。具体的には、通信するアプリケーションの識別、セッションの開始と終了、同期、再開などを扱います。
  6. プレゼンテーション層(Presentation layer)
     データの表現方法の変換を担当します。具体的には、データの圧縮、暗号化、形式変換などを扱います。
  7. アプリケーション層(Application layer)
     ユーザーが使用するアプリケーションとネットワークのインタフェースを担当します。具体的には、メール、ファイル転送、ウェブブラウジングなどのアプリケーションを扱います。

以下に、OSI参照モデルの各階層とその役割を表にまとめます。

階層名称役割
7アプリケーション層ユーザーが使用するアプリケーションとネットワークのインタフェース
6プレゼンテーション層データの表現方法の変換
5セッション層アプリケーション間のセッション管理
4トランスポート層データの転送制御
3ネットワーク層パケットの送受信
2データリンク層フレームの送受信
1物理層ビットストリームの送受信

 各階層は、下位階層から上位階層に向かって依存しており、下位階層の機能を利用して上位階層が機能することができます。例えば、アプリケーション層は、データの表現方法の変換を必要とする場合、プレゼンテーション層を利用します。また、トランスポート層は、ネットワーク層から受け取ったパケットをセグメンテーションしてデータを転送する際、下位層のデータリンク層を利用してフレームに変換します。

 各階層の役割を理解することによって、ネットワークにおける通信の仕組みや問題点を理解し、ネットワークのトラブルシューティングや最適化に役立ちます。また、プロトコルを開発する際にも、どの階層でどのような処理を行う必要があるかを把握することが重要です。

 ただし、現代のネットワークでは、OSI参照モデルを厳密に実装することは稀であり、実際のネットワークの実装はTCP/IPモデルに基づいています。TCP/IPモデルは、OSI参照モデルを簡略化したものであり、実際のネットワークにおける通信プロトコルの設計には、TCP/IPモデルを基にして行われます。

OSI参照モデルと対応するプロトコル

 OSI参照モデルは、コンピューターネットワークにおける通信プロトコルの設計を体系化するための参照モデルです。以下に、各レイヤーに対応する代表的なプロトコルを示します。

 下表は、上からアプリケーション層、プレゼンテーション層、セッション層、トランスポート層、ネットワーク層、データリンク層、物理層の順に、各層に対応する代表的なプロトコルを示しています。

OSI参照モデルプロトコルの例
アプリケーション層DNS, FTP, HTTP, IMAP, POP3, SMTP, SSHなど
プレゼンテーション層ASCII, JPEG, SSL, TLSなど
セッション層NetBIOS, NFS, PPTPなど
トランスポート層TCP, UDPなど
ネットワーク層IP, ICMP, ARP, OSPF, BGPなど
データリンク層Ethernet, Wi-Fi, HDLC, PPPなど
物理層RJ45, 光ファイバー, 802.11など
OSI参照モデルと対応するプロトコル
  1. 物理層(Physical Layer)
     物理層は、通信媒体を介してビット単位のデータを伝送することを担当します。具体的には、データをビットストリームに変換し、ネットワークケーブルや無線などの媒体を介して送信します。代表的なプロトコルには、Ethernet、Wi-Fi、Bluetooth、USBなどがあります。
  2. データリンク層(Data Link Layer)
     データリンク層は、物理層で送信されたビットストリームをフレームという単位にまとめ、誤り訂正や再送要求を行うことで、信頼性の高い通信を実現します。具体的には、MACアドレスを使用してネットワーク上の他のデバイスを識別し、フレームの作成、送信、受信、誤り検出、誤り訂正、フロー制御などを行います。代表的なプロトコルには、Ethernet、PPP、HDLC、ATMなどがあります。
  3. ネットワーク層(Network Layer)
     ネットワーク層は、複数のネットワークを跨いでパケットを転送することを担当します。具体的には、IPアドレスを使用して端末を識別し、ネットワークトポロジーを把握し、経路選択やフロー制御、転送制御、エラー制御などを行います。代表的なプロトコルには、IP、ICMP、ARP、OSPF、BGPなどがあります。
  4. トランスポート層(Transport Layer)
     トランスポート層は、アプリケーション層のプロセス間でデータの転送を行うことを担当します。具体的には、TCPやUDPを使用して、データの分割、転送制御、再送制御、フロー制御、エラー制御などを行います。代表的なプロトコルには、TCP、UDP、SCTPなどがあります。
  5. セッション層(Session Layer)
     セッション層は、アプリケーション間のセッションを確立し、管理することを担当します。具体的には、セッションの開始、終了、同期、復旧、再開などの制御を行います。また、データ転送の途中でセッションを一時停止したり、再開することができます。代表的なプロトコルには、NetBIOS、NFS、PPTPなどがあります。
  6. プレゼンテーション層(Presentation Layer)
     プレゼンテーション層は、データの表現方法を定義し、通信相手の仕様に合わせてデータを変換することを担当します。具体的には、文字コードの変換、データの圧縮、暗号化、復号化などを行います。代表的なプロトコルには、ASCII、JPEG、SSL、TLSなどがあります。
  7. アプリケーション層(Application Layer)
     アプリケーション層は、最終的なユーザーに提供されるサービスを提供するために必要なプロトコルを定義します。具体的には、メール、ファイル共有、Webブラウジング、ファイル転送など、多数のプロトコルが含まれます。代表的なプロトコルには、DNS、FTP、HTTP、IMAP、POP3、SMTP、SSHなどがあります。

 これらのプロトコルは、各階層の役割を分担することで、効率的かつ信頼性の高いネットワーク通信を実現します。ただし、現実のネットワークでは、OSI参照モデルに完全に準拠したネットワークは少なく、一部のプロトコルは複数の階層で使用されることがあります。