OSI参照モデル(Open Systems Interconnection Reference Model)は、コンピュータネットワークの通信を7つの階層に分けて考えるためのモデルです。
↑のように、ネットワーク通信を各階層ごとに分解することで、通信の複雑さを理解しやすくし、それぞれの階層で特定のタスクや機能を持つことができます。
このページではできるだけ初心者向けに初歩の初歩からOSI参照モデルについて解説していきます。最終的には「OSI参照モデルってこういうものだよ」というのを他の人に説明できるようになることを目指します!
OSI参照モデルの理解はネットワークを勉強する人にとっての登竜門。これを知らないとネットワークの理解が進みづらくなってしまうため、是非このページでしっかりと理解しておきましょう。
OSI参照モデルとは?
世界中に張り巡らされたネットワーク(インターネット)を通して、1つのコンピュータと1つのコンピュータが適切な通信を実現するためには、想像以上に複雑な仕組み・ルールが必要になります。アプリケーション間でのデータ転送方法、宛先コンピュータの特定方法、画像や動画ファイルのデータ形式の変換方法など例に挙げるときりがありません。
この複雑なネットワークの仕組みを7階層に分解し、各階層の機能・役割を分かりやすくモデル化したものがOSI参照モデル。
OSI参照モデルは、ネットワーク通信の複雑なプロセスを理解しやすくするためのツールです。7つの階層ごとに特定のタスクや機能が割り当てられ、各階層が連携して通信が行われます。このモデルを知ることで、ネットワークのトラブルシューティングや設計がより容易になります。
OSI参照モデルを理解することで、今あなたがこのWebページを読んでいる仕組みも、世界中の人にメールが届けられる仕組みもきちんと説明することができます。
このページでは、OSI参照モデルの7階層の説明を通して、OSI参照モデルって結局何者なのか?そして、インターネットはどういう仕組みで成立しているのか?各階層の役割は何なのか?をご説明していきます。
OSI参照モデルは、ISO(国際標準化機構:International Organization for Standardization)という団体によって策定されています。ややこしいですが、たまに各種資格試験で出題されている場合がありますので合わせて頭の隅に入れておきましょう。
OSI参照モデルの各階層の役割
OSI参照モデルの各階層・名称は以下の通り。微妙に色を分けてありますが、色の違いの説明はページ後半で。
名称の頭文字を取って上から「あぷせとねでぶ」で暗記するのがポピュラーです。
正直、ただ暗記するのはあまり意味がありません(それだけではネットワークの理解を深めることにはつながりません)。が、しかしIPAの基本情報技術者試験など各種資格試験などでは役に立つかもしれませんので、初心者の方は「あぷせとねでぶ」で覚えておきましょう。
各階層の役割・各階層が規定する内容を上の第1層から順に解説します。複雑なネットワーク通信の世界をどう分解し、切り分け、整理しているのか?という点を念頭に置きながら読み進めてみてください。
第7層のアプリケーション層から説明する場合も多いですが、ここでは理解しやすいようにあえて下から解説します。
OSI参照モデル(第1層):物理層
物理層は、OSI参照モデルの7つの階層の中で最も下に位置する階層です。この層の主な役割は、デバイス間での「ビット」の伝送を物理的な手段(ケーブルや無線)を用いて実現することです。
ポイント 物理層の主な役割
- ビットの送受信
- コンピュータやデバイスが互いにデータを交換する際、最も基本的な単位として「ビット」を使用します。物理層はこれらのビットを直接的に送受信します。
- 物理的な接続
- ケーブルの種類(例:Ethernetケーブル、光ファイバー)、コネクタの形状、ピンの配置など、物理的な接続の詳細を決定します。
- 信号化
- どのようにビットを物理的な信号に変換するか(例:電圧の高低、光の点滅)を定義します。
要するに、物理的な電気信号・光信号・電波を利用してコンピュータ同士を通信させる機能を提供するレイヤーだと理解しておけばOK。
コンピュータは全てのデータを「1」か「0」の2進数で保持しています。したがって、これら二進数のデータを実際にLANケーブルなどの伝送媒体を通して他のコンピュータに届けるためには、二進数のデータを電気信号に変換する必要があります。
二進数のビット列から電気信号・光信号・電波への変換方法や電気信号の電圧レベル、LANなどの伝送媒体など電気信号に関するもろもろの機能・役割を提供しているのが物理層。
物理層で規定される様々なルールを守ってハードウェアが製造されているので、異なるメーカーが作ったコンピュータ同士を異なるメーカーが作ったLANケーブルで繋いで通信することができるのです。
物理層で規定しているルールを無視した場合、インターネットを通じて通信を行うことはできません。
ポイント 物理層で使用される主な機器・技術
- ケーブル: Ethernetケーブル、光ファイバーなど。
- ハブ: データを受信し、接続されている全てのデバイスに同じデータを送信する機器。
- リピータ: 信号の強化を行う機器。
- 無線技術: Wi-FiやBluetoothなど、ケーブルを使わずにデータを伝送する技術。
OSI参照モデル(第2層):データリンク層
データリンク層は、OSI参照モデルの7つの階層の中で2番目に位置する層です。物理層で伝送される生のビット情報を、より扱いやすい「フレーム」という単位にまとめ、エラー検出や制御を行います。
ポイント データリンク層の主な役割
- フレームの生成: 生のビット情報をフレームという単位にまとめます。
- MACアドレスの管理: デバイスを識別するための固有のアドレス。このアドレスを用いて、ネットワーク上の特定のデバイスへデータを送信します。
- エラー検出・修正: 伝送中にデータにエラーが生じた場合、そのエラーを検出し、場合によっては修正します。
- フロー制御: 送信速度と受信速度のバランスをとることで、データの混雑を避けるための制御を行います。
データリンク層は、物理的な伝送をより効率的・確実に行うためのさまざまな機能を提供する層です。特に、デバイスの識別情報としてのMACアドレスや、エラー検出・修正の機能は、ネットワーク通信の基盤となっています。
電気信号がコンピュータに伝わるだけでは正しく通信ができません。(物理層の約束事を守るだけでは、適切な通信を行うことはできません。)
例えば、LANケーブルで4台のコンピュータがつながっている場合。接続先のコンピュータに電気信号が届いても、果たしてどのコンピュータに対して送信したデータであるかは判別できないのです。
データリンク層では、データ転送対象の機器の判別する役割を担います。伝えられた電気信号から二進数を復元し、自分あてのデータだけを受け取ることができるようにするのがデータリンク層の役割です。
また、データ転送時にエラーが発生した場合の対応方法などもこのレイヤーで規定します。データリンク層の規定に沿った通信を行うことで、狙った宛先にデータを適切に届けることが可能になります。
ポイント データリンク層で使用される主な機器・技術
- スイッチ: MACアドレスを用いて、データを特定のデバイスに送信する機器。
- ブリッジ: ネットワークのセグメント間でデータの転送を行う機器。
- エラー検出技術: CRC (Cyclic Redundancy Check) やパリティチェックなど。
データリンク層:MACアドレス
データリンク層で定められるプロトコルとして有名なのがMACアドレスです。
データリンク層で利用される仕組みの1つ。データの転送先を判別するために利用されるのがMACアドレスです。
MAC(Media Access Control address)アドレスは、ネットワークにつながるすべての機器に割り当てられており、データ通信を行う際にMACアドレスを参照してデータの受け渡し先を特定する働きをします。
MACアドレスがあることで、データをどのコンピュータに送れば良いのか?を判別することができるというわけです。
MACアドレスに関する初心者向けの解説は以下のページで行っておりますので、是非合わせてご覧ください。
OSI参照モデル(第3層):ネットワーク層
続いて、第3層:ネットワーク層の説明に移ります。
ネットワーク層は、OSI参照モデルの7つの階層の中で3番目に位置する層です。この層の主な役割は、データパケットの経路選択や転送を行い、異なるネットワーク間での通信を可能にすること。
より分かりやすい言い方をすれば、データを最終的な目的地まで送り届ける役割を担っていると言えます。
ポイント ネットワーク層の主な役割
- 経路選択(ルーティング): データが目的地に到達するための最適な経路を選択します。
- 論理的なアドレス付け: IPアドレスなどの論理アドレスを使用して、データの送信元と宛先を識別します。
- データパケットの転送: 送信元から宛先までデータパケットを転送します。
- フラグメント化: ネットワーク上で転送可能なデータのサイズに合わせて、大きなデータを小さなパケットに分割すること。
インターネットは、いくつもの「ネットワーク」が相互に接続しあうことで成立しています。
そのため、データを適切に送り届けるには、いくつもの通信機器・ネットワークを経由させる必要があります。
LANで直接接続されたコンピュータ同士であればMACアドレスを頼りに通信することが可能ですが、インターネットを通して地球の裏側にあるコンピュータにデータを届けようとすると、MACアドレスだけでは不可能。
ネットワーク層は、データの経路選択や転送を行い、全てのネットワーク間での通信を実現する重要な役割を果たしています。特に、IPアドレスの管理やルータを使用した経路選択は、インターネットの基盤となる技術です。
ポイント ネットワーク層で使用される主な機器・技術
- ルータ: 経路選択を行い、データを次の目的地に向けて転送する機器。
- IPアドレス: デバイスやネットワークの位置を示す論理的なアドレス。
- ICMP (Internet Control Message Protocol): エラーメッセージやネットワークの状態を報告するためのプロトコル。
ネットワーク層:IPアドレス
ネットワーク層で定める有名なプロトコルがIP(インターネットプロトコル)です。
ネットワーク層で用いられるデータの宛先を示す(インターネットの世界における住所のようなもの)のがIPアドレス(Internet Protocol Address)。IPアドレスという単語は耳にしたことがある方も多いことと思います。
IPアドレスは、インターネットに接続する全てのコンピュータ(スマートフォン)1つ1つに、IPアドレスが割り当てられており、その結果対象のデータを対象のコンピュータに転送することが可能になります。
IPアドレスに関する初心者向けの解説は以下のページで行っておりますので、是非合わせてご覧ください。
これまでの説明だけでは「データリンク層とネットワーク層の違いがよく分からない・・・。」という方もいるかもしれません。ここではその疑問を解消するためのヒントとなるパケット通信についての仕組みをご紹介します。
インターネットの通信方法:パケット通信
インターネット通信はパケット通信と呼ばれる仕組みで行われます。パケット通信では、届けたいデータをひとまとめにして届けるのではなく、届けたいデータを小さな単位で分割して送付します。
もともとは1つのデータを、ある一定の大きさに分割。この分割されたデータをパケットと呼び、インターネットではこのパケットがそれぞれ独立したデータとして宛先に届けられます。
パケットを受け取った側は、パケットを順番通りに再度つなぎ合わせて、データを復元。最終的に分割される前と同じデータが受け取り側で再構成される流れです。テキストだけでなく、画像も動画も音楽もパケットとしてネットワーク上を行き来します。
パケットは複数のネットワークを経由して届けられる
分割されたパケットは、MACアドレスとIPアドレスの情報を見ながら最終的な目的地まで届けられるのですが、いきなり目的地には届けられません。先ほどご説明した通り、途中いくつかのネットワークに中継されて目的地まで届けられます。
郵便物も相手の住所に届くまでには、まずは最寄りの郵便局に集荷され、その後地域の中央拠点⇒宛先の拠点⇒宛先の最寄り郵便局・・・と様々な郵便局を経由しますよね。パケット通信もこれと同じです。
このとき、経由地はどこか?をMACアドレスで、最終的な目的地はどこか?をIPアドレスで判別します。言い換えると、経由地(隣接する機器)までのデータ転送はデータリンク層、最終的な目的地までの道案内はネットワーク層の役割であると言えます。
データリンク層とネットワーク層のまとめを再掲します。
OSI参照モデル(第4層):トランスポート層
続いて、第4層:トランスポート層の説明に移ります。
OSI参照モデルの第4層:トランスポート層で提供する役割は、届いたデータが適切なものであるかどうか?(データがしっかり相手に届いているよね?)など、通信の品質担保を行うことです。
ポイント トランスポート層の主な役割
- セグメンテーションと再組立: 大きなデータを小さなセグメントに分割して送信し、受信側で再組立を行います。
- ポート番号の管理: アプリケーションを特定し、正確な宛先アプリケーションにデータを届けるための識別情報。
- フロー制御: 送受信のデータの流れを調節し、データの混雑や喪失を防ぐ。
- エラー制御: データの伝送中のエラーを検出し、必要に応じて再送を行います。
物理層・データリンク層・ネットワーク層での決まり事を順守しておけば、対象のデータを相手のコンピュータに届けることが可能になります。ですがそれだけでは、データを送る際に何らかのエラーが起きて、データに破損や欠落が起きてしまった場合には相手のコンピュータと適切な通信が行えません。
第4層ではデータの内容が適切に送られているかどうか?を判定し、もしデータ転送時に何らかのエラーがあれば再送するなどといった役割を提供しています。トランスポート層のおかげで、コンピュータどうしでの適切な通信が可能となるのです。
ポイント トランスポート層で使用される主なプロトコル
- TCP (Transmission Control Protocol): 信頼性の高いデータ転送を実現するプロトコル。エラーが発生した場合の再送や順序の正確な配信を保証します。
- UDP (User Datagram Protocol): 信頼性よりも速度を優先する場合に用いられるプロトコル。再送などの機能は提供しないが、軽量で速い。
トランスポート層は、アプリケーション間の信頼性のある通信を確立するための重要な役割を果たしています。特に、TCPやUDPのようなプロトコルは、ユーザーがインターネット上で情報を安全かつ迅速に共有するための基盤技術です。
トランスポート層:ポート番号
トランスポート層にはもう一つ重要な役割があります。それは、コンピュータのどのアプリケーションにデータを届ければ良いか?という判別をすることです。
あなたがメールをしながら動画を見て、同時にExcelなどのファイルを編集できるのは、コンピュータ内部では複数のアプリケーションが動いているためです。したがって、送られてくるデータも「どのアプリケーションのデータ」なのか?を判別する必要があります。
ネットワーク層以下の仕組みで、どのコンピュータにデータを届ければ良いか?という判定をすることは可能になりましたが、どのアプリケーションにデータを届ければ良いか?という点を判定することはできません。
アプリケーションどうしが適切に通信するための役割を担うのも、実はトランスポート層なのです。
アプリケーションの識別を行う際には、アプリケーションごとに決められたポート番号を参照しに行きます。IPアドレスが住所であるとするなら、ポート番号は部屋番号のようなもので、ポート番号があるからこそ、メールデータをきちんとメールサーバーに届けることができるのです。
種類 | 現実世界で例えると・・・ | 例 |
---|---|---|
IPアドレス | 住所 | 東京都千代田区永田町1−1−1 |
ポート番号 | 部屋番号 | 101号室 |
ポート番号に関する初心者向けの記事はこちら。ネットワークに関する理解をさらに深めることができるので是非ご覧ください。
OSI参照モデル(第5層):セッション層
OSI参照モデルの第5層:セッション層の主な役割は、アプリケーション間の通信セッションの確立、維持、終了などの管理を行うことです。
ざっくり言えば、通信の開始から終了までの一連のデータのやりとりを管理します。
ポイント セッション層の主な役割
- セッションの確立: 通信を始める前に、通信のためのセッションを確立する。
- セッションの維持: データの送受信や同期を継続的に行うためのセッションの維持。
- セッションの終了: 通信が完了した後、セッションを終了する。
- 通信の同期と復旧: 途中での通信の中断やエラー発生時に、セッションを再開または復旧する機能。
日常生活を例にすると、例えば誰かに電話をするときは挨拶から会話を始めますよね。その後に本題を話し、最後に「ありがとうございました!」で通話が終了するはずです。
第5層のセッション層では、このような電話でのやり取りのようにデータの通信が適切なお作法で正常に行えるように、通信の開始から終了までのルールを提供します。
もし、セッション層が会話の手順を決めていない場合相手にデータは届くのですが、一連の意味ある通信が行えなくなります。データを相手にいきなり送り付けても、相手がまだ受け取る準備をしていなかったり、何のデータが送られてきたのかを判別できなかったりします。
セッション層は、相手と会話する上でのルール・お作法を提供する役割を担います。
セッション層は、アプリケーション間の通信の流れや状態を管理し、安定した通信を確保する役割を持っています。特に、セッションの確立、維持、終了といったライフサイクルの管理は、ユーザーが中断なくサービスを利用するための基盤技術です。
ポイント セッション層で使用される主なプロトコル・機構
- NetBIOS (Network Basic Input/Output System): 旧来のローカルエリアネットワーク (LAN) 環境でのセッションサービスを提供。
- RPC (Remote Procedure Call): ネットワーク上の別のコンピュータに存在するプロセスをローカルにあるかのように呼び出す機構。
- PPTP (Point-to-Point Tunneling Protocol): VPN接続の際のセッション管理に使用されるプロトコルの一つ。
OSI参照モデル(第6層):プレゼンテーション層
プレゼンテーション層は、OSI参照モデルの7つの階層の中で6番目に位置する層です。この層の主要な役割は、データの変換、暗号化、圧縮などの処理を行い、アプリケーション層とネットワークの間の通信を翻訳・適応させることです。
ざっくり言えばコンピュータのデータ形式の違いを吸収し、コンピュータ上でデータを正しく表現する役割を提供します。
ポイント プレゼンテーション層の主な役割
- データの変換: 異なるシステムやアプリケーション間でのデータの表現方法の違いを吸収し、共通のフォーマットに変換します。
- 暗号化: データの内容を外部からの不正アクセスや盗聴から保護するため、暗号化や復号の処理を行います。
- データ圧縮: 通信量を減少させるために、データを圧縮する処理を行います。
コンピュータは世界各国のあらゆるメーカーによって製造されているため、同じ文字を表すデータでもコンピュータによって微妙に表現が異なります。
もし、このとき異なるメーカーのコンピュータどうしが通信してしまうと、相手にしっかりと内容を伝えることができません。
プレゼンテーション層の役割は、このデータ形式の差異を吸収する(つまり、お互いのコンピュータにとって理解できる共通言語に変えてあげる)役割を担います。
メールやWebブラウザでたまに発生する文字化け。まさにあれはプレゼンテーション層が正常に機能していない例です。データを「正しい順番で」「正しい宛先に」届けることができても、コンピュータが理解できなければ意味がありません。
プレゼンテーション層は、異なるシステムやアプリケーション間の通信で生じるデータの表現方法の違いを解決する役割を持っています。また、データの安全性や効率的な転送のための暗号化や圧縮といった処理もこの層で行われます。
ポイント プレゼンテーション層で使用される主な技術・標準
- SSL/TLS (Secure Socket Layer/Transport Layer Security): データの暗号化や認証を行うプロトコル。
- JPEG, GIF, PNGなどの画像フォーマット: それぞれ異なる圧縮や表現技術を持つ画像フォーマット。
- ASCII, EBCDICなどの文字コード: テキストデータの表現方法の標準。
OSI参照モデル(第7層):アプリケーション層
いよいよ最後の第7層です。
OSI参照モデルの第7層:アプリケーション層では、ユーザが実際に利用するソフトウェアの中でネットワーク通信に関わる部分の役割を担います。
ポイント アプリケーション層の主な役割
- 通信サービスの提供: メール送受信、ファイル転送、データベースアクセスなどのサービスを提供します。
- プロトコルの管理: HTTP、FTP、SMTPなどの通信プロトコルの管理と実行を行います。
- ユーザーインターフェースの提供: ソフトウェアやアプリケーションのユーザーインターフェースを通じて、エンドユーザーに通信サービスへのアクセスを提供します。
より具体的な例で説明すると、例えばメールを相手に届けるためには、メールの宛先やメール本文を書いた後に「メール送信ボタン」をクリックしますよね。この「メール送信ボタン」を押すまでは、ソフトウェアがその役割を担いますが、「メール送信ボタン」を押した後は第7層:アプリケーション層が実際のメールデータ送信の役割を担います。
アプリケーションごと(メール送受信 / ファイル転送 / Webブラウザなど)に、どういった仕組みでデータを送れば良いか?が異なります。これらの個々の規定を行うのがアプリケーション層の役割です。
アプリケーション層は、ユーザーやアプリケーションがネットワーク通信サービスを利用するための窓口の役割を果たしています。この層でのプロトコルやサービスは、私たちが日常的にインターネットを利用する際の基盤となっています。
OSI参照モデルはネットワークの「イメージ図」
それぞれ第1層~第7層までの役割を解説してきました。
OSI参照モデルはあくまでもネットワークのイメージ図にすぎません。
現在のインターネットはこのイメージ図をもとに、各階層で細かく様々な規定(プロトコル)を規定しています。実際に、ネットワークエンジニアとして活躍するには、それらプロトコルの中身を詳細に把握しておく必要があるので、OSI参照モデルを学んだだけではまだインターネットの実態をつかめたわけではないかもしれません。
しかし、OSI参照モデルの理解なしで、インターネットの仕組みを完全に把握することは困難であり、ほとんどのネットワークエンジニアもこのOSI参照モデルから勉強を始めているのは事実。
是非、このページの内容を理解できるように、何度も復習をしておきましょう。
ネットワーク学習の決定版(ネットワークエンジニアを目指すなら必見!)
↑ページ数が多く誰でも手軽に読める内容ではありませんが、ネットワークエンジニアであれば、ほぼ全員が一度は読んだことがある超・有料書籍。是非一度読破しておきたい1冊のご紹介です。
読者特典> 0から学ぶネットワーク入門