OSI(Open Systems Interconnection)モデル(別名、OSI参照モデル)は、ネットワーク通信と相互運用性を7つの抽象層に分割する概念モデルで、さまざまなアプリケーション、コンピューター・システム、ネットワーク間の通信を可能にする標準化されたモデルを提供します。
OSIモデルは、世紀の変わり目頃に使用されていたさまざまなネットワーク・プロトコル間の通信の非互換性を解決するために登場しました。OSIの各層は、ネットワーキングに対するカテゴリー別アプローチを提供することで、開発者とエンジニアにネットワーク間で相互運用可能なハードウェアとソフトウェアを構築するためのフレームワークを提供しました。
スタックの各層(通常は、データがネットワークをどのように移動するかを示すために逆の順序で表示されます)において、OSIモデルは、ネットワーク・コンポーネントとその固有のコンピューティング機能に関するガイドラインと基準を提供します。
各層の説明は以下のとおりです。
OSIモデルは、層間の通信用のプロトコルを指定するのではなく、ネットワーク・アーキテクチャーの各層の構築においてエンジニアが完了する必要があるタスク・リストを提供することに重点を置いています。その理論的アプローチにより、開発者はネットワーク・システム自体に関する前知識がなくても、非常に複雑なコンピューティング・ネットワークを視覚化して構築できます。また、チームがデータがどのようにネットワークを通過するかをより深く理解し、層固有のコーディングを使用してネットワーク機能をカスタマイズするのにも役立ちます。
OSIモデルは現代のコンピューター・ネットワーク・テクノロジーの直接的な基盤ではありませんが、コンピューティング標準の開発に大きな影響を与え、ネットワーク・アーキテクチャーに関する現代的な理解の形成に貢献しています。
1970年代後半から1980年代前半にかけて、コンピューター・システムの相互接続は着実に進みましたが、メーカーが独自のネットワーク・ソリューションを開発することが多く、独自仕様で相互運用性のないシステムが混在していました。
初期のネットワーク化の取り組みの中には、(現代のインターネットの基盤を築いた)ARPANETと(国防総省の委託による)TCP/IPプロトコル・スイートとの互換性の問題に対処しようとするものもいくつかありました。どちらも大きな進歩がありましたが、より包括的で普遍的に受け入れられるアプローチの必要性も浮き彫りにしました。
ネットワークの重要性の高まりと普遍的なフレームワークの必要性を認識し、国際標準化機構(ISO)と国際電信電話諮問委員会(CCITT)は、標準化されたネットワーク・モデルの開発を開始しました。
ISOは、相互運用可能なネットワーク・ソリューションを開発するための重要なフレームワークとして、OSIモデルを1984年に正式に公開しました。これまでの標準化の試みとは異なり、OSIの階層化構成により、基盤となるアーキテクチャーやプロトコルが異なっていても、異なるシステム間で通信が可能になりました。
テクノロジーが進化し、新しいモデルが登場しても、OSIモデルはネットワーク・アーキテクチャーを理解する上で不可欠な要素であり続けます。チームが単純なローカル・エリア・ネットワーク・(LAN)を設計する場合でも、複雑なグローバル・ネットワークを管理する場合でも、OSIモデルの原則は、ネットワークに対する明確で構造化されたアプローチを提供します。
OSIモデルは次の7つの異なる層で構成されます。アプリケーション層(第7層)、プレゼンテーション層(第6層)、セッション層(第5層)は、OSIのソフトウェア層を構成し、ソフトウェア・アプリ(オペレーティング・システム、WebブラウザーやEメール・クライアントなどのユーティリティーを含む)との間のすべての転送がここで発生します。
トランスポート層(第4層)はOSIの「中心」で、ネットワークとシステム間のすべてのデータ通信を処理します。最後に、ネットワーク層(第3層)、データ層(第2層)、物理層(第1層)はOSIのハードウェア層を構成し、データは処理される際にネットワークの物理コンポーネントを通過します。
データはOSIモデルを通じて双方向に移動し、各層はスタック内の下位層および上位層と通信します。さらに、送信デバイスと受信デバイスの両方がデータ層を介してデータを送信し、送信者と受信者はプロセス中に役割を切り替えることがよくあります。
例えば、ユーザーが他の人にEメールを送信したい場合、まずEメールを作成して送信します。ユーザーが「送信」を押すと、メールはアプリケーション層に送られ、適切なプロトコル(通常はSMTP)が選択され、メールはプレゼンテーション層に送信されます。次に、プレゼンテーション層はメッセージ・データを圧縮してセッション層に送信します。セッション層は通信セッションを開始し、データをセグメント化のためにトランスポート層に送信します。
Eメールは別のネットワークに送信されるため、Eメール・データはネットワーク層に送られ、そこでパケットに分割され、その後データ・リンク層に送られ、そこでさらにフレームに分割されます。その後、これらのフレームは物理層(受信者のWi-Fi)を介して送信され、その時点で受信者のデバイスはビット・ストリームを受信し、Eメール・データは同じ層を逆順に通過します。プロセスの最後に、Eメール・データは受信者のデバイスのアプリケーション層に到達し、人間が読める形式で受信者の受信トレイに配信されます。
OSIモデルはプロトコル開発の基盤であり、フレームワークの各層が特定のネットワーク・プロセスを管理します。
アプリケーション層は、エンド・ユーザーに最も近いOSI層です。これは、ユーザー・アプリケーションに直接ネットワーク・サービスを提供し、APIエンドポイントとOSIモデルの下位層間の通信を容易にします。つまり、ソフトウェア・アプリケーションはアプリケーション層を使用してネットワークとの通信を開始し、プレゼンテーション層にデータを送信します。
アプリケーション自体はこの層の一部ではありません。むしろ、アプリケーション層は、ソフトウェアがデータを送受信できるようにするプロトコル(HTTP、FTP、DNS、SMTPなど)を提供します。具体的には、次のようなプロセスを担当します。
ディレクトリー・サービス。アプリケーション層は、ネットワーク・リソースの管理を容易にするために、ディレクトリー・サービス(ネットワーク・デバイスとユーザーに関する情報の共有データベース)を提供します。
プレゼンテーション層は、データをアプリケーション層がネットワーク経由で送信するために受け入れ可能な形式に変換します(例えば、EBCDICコードのテキスト・ファイルからASCIIコードのファイルへの変換)。データとグラフィックをアプリケーション層で表示可能な形式に変換する役割があるため、構文層と呼ばれることもあります。
SSL/TLS(セキュア・ソケット層/トランスポート層セキュリティー)プロトコル、JPEGプロトコル(画像圧縮用)、およびMPEGプロトコル(動画圧縮用)をサポートしています。プレゼンテーション層は、データをアプリケーション層がネットワーク経由での送信に受け入れ可能な形式(例えば、EBCDICコードのテキスト・ファイルからASCIIコードのファイルへの)に変換します。データとグラフィックをアプリケーション層で表示可能な形式に変換する役割があるため、構文層と呼ばれることもあります。
SSL/TLS(セキュア・ソケット層/トランスポート層セキュリティー)プロトコル、JPEGプロトコル(画像圧縮用)、およびMPEGプロトコル(動画圧縮用)をサポートしています。プレゼンテーション層は次のことを行います。
データ変換。プレゼンテーション層は、カプセル化プロセス中に、送信メッセージがプロトコル・スタックを介して送信者から受信者に移動するときに、データを正しい形式(アプリケーション層で指定される)に変換します。
データ圧縮。プレゼンテーション層を回答して、送信用のデータ・ストリームのサイズを縮小し、使用します。
受信メッセージがプロトコル・スタックを上方に移動すると、カプセル化解除プロセス中にフォーマットと変換が逆転することがあります。このような場合、送信メッセージはカプセル化中に指定された形式に変換され、受信メッセージはカプセル化解除中に逆の変換が行われます。
セッション層は、2台以上のコンピューター間で「セッション」と呼ばれる接続を確立、管理、終了するプロセスである「セッション」を管理します。ローカル・アプリケーションとリモート・アプリケーション間の接続を開始し、必要なデータを送信できるまでセッションを開いたままにして、完了したらセッションを閉じてネットワーク・リソースを保護します。
セッション層の主な機能は次のとおりです。
セッションのインタラクション。セッション層は、クライアント・ソフトウェアに統合された認証プロトコルを含め、ユーザーのログオン(接続確立)とログオフ(接続終了)を管理します。
セッションの回復。セッション層はセッションの失敗を管理し、ネットワークの問題が発生した場合に接続を再確立します。
また、Web会議の音声と動画など、関連するデータ・ストリーム間のセッションを接続および切断するためのプロトコルも確立します。したがって、セッション層は、リモート・プロシージャー・コールを利用するネットワーク環境では明示的に実装されることがよくあります。
トランスポート層は、伝送制御プロトコル(TCP)やユーザー・データグラム・プロトコル(UDP)などのプロトコルを使用して、メッセージ全体のエンドツーエンドの配信を管理します。さらに、セッション層からメッセージを受け取り、それぞれに関連付けられたヘッダーを持つ小さな単位(「セグメント」と呼ばれる)に分割します。送信先では、トランスポート層がセグメントを正しい順序で再構成し、元のメッセージを再構築します。
トランスポート層は、次の処理も行います。
サービス・ポイントの所在地。トランスポート層は、トランスポート層ヘッダー(サービス・ポイントまたはポート・アドレスを含む)を添付することで、メッセージが正しいプロセスに配信されることを保証します。
マルチプレクシング。トランスポート層により、複数のネットワーク・アプリケーションが同じ接続を同時に使用できるようになります。
送信側では、トランスポート層が上位層からフォーマットされたデータを受信し、セグメンテーションを実行し、フローおよびエラー制御を実行して、正確なデータ転送を保証します。送信元ポート番号と送信先ポート番号をヘッダーに追加し、セグメント化されたデータをネットワーク層に転送します。
受信側では、トランスポート層がヘッダーからポート番号を読み取り、受信したデータを適切なアプリケーションに転送します。また、セグメント化されたデータの順序付けと再構成も処理し、エラーが検出された場合にはデータを再送信します。
トランスポート層は2種類のサービスを提供します。
コネクション指向サービスでは、接続の確立、データ転送、終了(または切断)の3つのプロセスから成り、データ・パケットが配信されると、データ受信者は送信者に受信確認を返します。ただし、コネクションレス・サービスではデータ転送のみが行われます。受信側は受信を確認しないため、通信は高速化されますが、接続指向のサービスよりも信頼性が低くなる可能性があります。
OSIモデルのネットワーク層は、異なるネットワーク間における1つのノードから別のノードへのデータ転送を容易にする役割を担います。ネットワーク層は、ノード間でデータを移動するための最適なパス(ルーティング)を決定します。セグメントが大きすぎる場合、ネットワーク層はそれらを転送用に小さな「パケット」に分割し、受信側で再構成します。
ネットワークは、複数のノード(それぞれ固有のアドレスを持つ)が接続できる媒体として機能します。ネットワーク層では、メッセージの内容と送信先アドレスを提供することで、ノードが他のネットワーク上のノードにメッセージを送信でき、ネットワークが最適な配信パスを決定します(中間ノードを経由するルーティングが含まれる場合があります)。
ネットワーク層は主にインターネット・・プロトコル v4(IPv4)とIPv6を使用し、次の作業を行います。
パケットの断片化と再構成ネットワーク層は、大きなパケット(データリンク層のサイズ制限を超えるパケット)を小さなパケットに分割して送信し、送信先で再構成します。
ネットワーク層では信頼性が保証されません。多くのネットワーク層プロトコルは信頼性の高いメッセージ配信を提供しますが、そうでないプロトコルもあります。さらに、このOSI層ではエラー報告は必須ではないため、データ送信者は配信確認を受信する場合と受信しない場合があります。
データリンク層の主な機能は、同じネットワーク上で相互作用する複数のデバイス間でエラーのないデータ転送を管理することです。
DLLは2つの下位層に分かれています。
メディア・アクセス制御(MAC)層とネットワーク層の間のインターフェースとして機能する論理リンク制御(LLC)層は、フロー制御、同期、および多重化(2つ以上のデータ・ストリームがホストへの単一の接続を共有する)を処理します。MAC層は、デバイスがネットワーク・メディアにアクセスしてデータを送信する方法を制御します。
DLLはネットワーク層からパケットを受信すると、ネットワーク・インターフェース・カード(NIC)のフレーム・サイズに応じてパケットをデータ「フレーム」に分割し、MACアドレスを使用してホストに送信します。
DLL関数には次のものが含まれます。
フレーミング。DLLを使用すると、送信者はフレームの先頭と末尾に特殊なビット・パターンを付加することで、受信側にとって意味のあるビット・セット(データ)を送信できます。
エラー管理。DLLは、破損または失われたフレームを検出し、データの整合性を確保するために再送信(必要な場合)を管理します。
アクセス制御。複数のデバイスが単一の通信チャネルを共有する場合、MAC位層は、特定の時点でどのデバイスがチャネルを制御するかを決定します。
物理層は、デバイス(コネクタ、ルーター、リピーター、光ファイバーケーブルなど)と物理メディア(Wi-Fiなど)間で生データ(「ビット」または1と0の文字列)を送信する役割を担う物理ネットワーク・コンポーネントで構成されます。
物理層は次の役割を果たします。
ビットレート制御。物理層は、データ転送速度(多くの場合、1秒あたりのビット数)を定義します。
送信モード。物理層は、接続されたデバイス間でデータがどのように流れるか(単方向、半二重、全二重伝送)を定義します。
物理層は、物理信号(例えば、電圧、無線、光パルスなど)を介してエンコードが行われる方法も定義します。
OSI参照モデルは、エンジニアや開発者がネットワーク通信の複雑さを理解するのに役立つ理論的基礎を提供します。ただし、別のネットワーク・モデルである、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)モデルと比較されることがあります。
OSIモデルとは異なり、TCP/IPモデルは、広く直接実装され、実際のネットワークで使用されている標準化されたプロトコルに基づいています。これは7層ではなく4層で構成されますが、各層はOSIモデルの1つ以上の層に対応します。
ネットワーク・アクセス層。データ・リンク層または物理層とも呼ばれるTCP/IPネットワークのネットワーク・アクセス層には、OSIモデルの物理層とデータ・リンク層を組み合わせた、ネットワーク・メディアとのインターフェースに必要なハードウェア・コンポーネントとソフトウェア・コンポーネントの両方が含まれています。イーサネット(LANの場合)とARPプロトコルを使用して、同じネットワーク上のデバイス間の物理的なデータ転送を処理します。
トランスポート層。TCP/IPトランスポート層は、OSIモデルのトランスポート層と同じ機能を果たし、上位層と下位層の間で信頼性の高いデータ転送を可能にします。TCPおよびUDPプロトコルを使用して、エラー・チェックとフロー制御のメカニズムも提供します。
OSIモデルの主な価値は、教育上の有用性と、新しいプロトコルを設計し、既存のシステムやテクノロジーと相互運用できるようにする概念フレームワークとしての役割にあります。
しかし、TCP/IPモデルは実用性を重視し、現実世界に適用できるため、現代のネットワークの基盤となっています。堅牢でスケーラブルな設計と水平階層化アプローチにより、インターネットは爆発的に成長し、数十億台のデバイスと膨大な量のデータ・トラフィックに対応できるようになりました。
抽象化された垂直階層型のネットワーク・アプローチにより、各層を個別に開発および更新できるモジュール型プロトコル設計が可能になります。
OSIモデルのモジュール性により、ソフトウェア・エンジニアはネットワーク・スタック全体をオーバーホールすることなく新しいテクノロジーを統合できるため、プロトコル開発におけるイノベーションが加速します。
また、開発者はモデルの下位層を抽象化して開発を簡素化することもできます。
ソフトウェア・エンジニアは、各ネットワーク・コンポーネントの動作層を分離し、ネットワーク内での主な役割に応じて整理できます。この分解可能性により、開発者はネットワークを概念化し、開発チーム間で簡略化されたモデルを共有しやすくなります。
ネットワーク上のデバイスに障害が発生したり、アプリの接続が失われたりした場合、OSIモデルを使用することで、チームは問題のある層を特定して分離し、フレームワーク全体を中断することなく、セキュリティーの問題やネットワークの脆弱性に対処できます。
IBM Cloud Infrastructure Centerは、IBM zSystemsおよびIBM LinuxONE上のプライベートクラウドのインフラストラクチャーを管理するためのOpenStack互換ソフトウェア・プラットフォームです。
企業のハイブリッドクラウドとAI戦略のために設計された、サーバー、ストレージ、ソフトウェアを紹介します。
安全性と柔軟性を備えたクラウドで、ビジネスの成長に合わせてリソースを無理なく拡張できます。