OSI参照モデルは、コンピュータネットワークで利用されている多数のプロトコルについて、それぞれの役割を分類し、明確化するためのモデルです。
しかしながら、7つの階層を自信をもって説明できる人は少ないのではないでしょうか。
この記事ではOSI参照モデルを図を用いてわかりやすく説明してますので、ぜひ参考にしてください!
・どのようにデータが宛先に届いているかの全体像を理解できるようになる。
・OSI参照モデルの各階層の役割
・OSI参照モデルの覚え方
どのようにデータが届けられているか知ることで、ネットワークの全体像を理解できるよ!!
目次
OSI参照モデルとは?
OSI参照モデルとは、Open System Interconnectionの略で、通信プロトコルを7つの階層に分けて定義しています。
一昔前までは異機種間のコンピュータ同士を接続することは非常に難しいことでした。
コンピュータのアーキテクチャが異なっていたためです。
そこでネットワークアーキテクチャを標準化するために、ISO(国際標準化機構 International Organization for Standardization)が7階層にまとめ機能定めました。これがOSI参照モデルといいます。
第1層から4層までを下位層、第5層から7層までを上位層と呼んでいます。
このモデルに従い、通信機器やソフトを開発すれば、異なるコンピュータ同士でも接続し、通信することができます。
また層のことは英語でレイヤーといいます。
レイヤー1は第1層を指しているので覚えておきましょう。
では1層から順番にそれぞれの役割を説明していきます。
各層の役割と覚え方
では、各層の役割と覚えるコツをまとめておきます。
階層 | 名称 | 役割 |
---|---|---|
第7層 | アプリケーション層 | ユーザーが使用するアプリケーションの動作を下位の層に渡したり、相手から受け取ったデータをアプリケーションに表示したりする役割を持ちます。 |
第6層 | プレゼンテーション層 | コンピューターで通信しやすいように通信したいデータの表現形式を変換します。 |
第5層 | セッション層 | 通信内容を区別し、アプリケーションプロトコルに沿った論理的な通信路を確率する。 |
第4層 | トランスポート層 | ポート情報を付与して、どのアプリケーションに渡すかの橋渡しを行っています。 また通信の信頼性の担保という重要な役割を担っています。 |
第3層 | ネットワーク層 | 異なるネットワーク同士を中継することを担ってます。パケットにヘッダーを付与し、このヘッダーに送信先IPアドレスを設定します。 |
第2層 | データリンク層 | ケーブルで直に接続されている統一ネットワーク内で、正確なデータ伝送を実現することです。 |
第1層 | 物理層 | コンピュータとケーブルを接続し、コンピュータが理解できる0101001001のようなビットデータを電気信号に変換することが役割です。 |
OSI参照モデルとくれば、ア・プ・セ・ト・ネ・デ・ブで覚えよう!
では、各層の役割をみていきましょう。
【ジャンルが豊富で学びたい講座がきっとみつかる】
習得したいスキルが明確で年収アップのために学習している方!
- ジャンルが豊富で学びたい講座がきっとみつかる
- お手頃な価格帯
- 学びやすい多彩な機能
オンライン完結で手軽に学べるプラットフォームです!
第1層 物理層
物理層の役割はコンピュータとケーブルを接続し、コンピュータが理解できる0101001001のようなビットデータを電気信号に変換することが役割です。
この図のようにLANケーブルで接続されたコンピュータ同士が通信するためには、「0」と「1」で表現されたビット単位のデータを電気信号に変換する必要があります。
このデータの送受信を可能とするために電気信号に変換するのが物理層の役割です。
物理層のネットワーク機器
では物理層で利用されてる機器について説明していきます。
この左上の機器です。
これはリピータもしくはリピータハブといいます。
電気信号は距離が長くなるにつれ弱まる傾向にあります。
そのため別のコンピュータがデータを受け取るころには、もともと送信したデータと中身が異なる。ということが発生してしまいます。
そのため、リピータを中継することで、弱まった電気信号を元の信号と同じ強さ、同じ形に戻すことができます。
ただし、リピータの役割は受け取った電気信号をそのまま流すことです。
そのため複数のPCが接続されている場合は、全てのコンピュータに電気信号を送ってしまいます。
図で言うと、PC1からPC2宛に電気信号を送る際、PC3,4にも送ります。ただし、PC3,4は自分宛ではないため電気信号を破棄します。
つまり接続されているPCが多ければ多いほどデータが衝突しネットワークの効率が悪くなってしまいます。
これが物理層の役割と機器の特徴になります。
物理層はビットデータを電気信号に変換することを覚えておこう!
第2層 データリンク層
データリンク層の役割は、ケーブルで直に接続されている統一ネットワーク内で、正確なデータ伝送を実現することです。
どういうことか、下の図をご覧ください。
データリンク層では、宛先(つまりmacアドレス情報)の書かれたヘッダーを付与します。(ここでは「11:22:33:44:55:66」がmacアドレス情報になる)
この宛先付きのデータをフレームといい、左下のPC2に送ります。
その際、第2層で登場する機器をスイッチハブ、L2スイッチなどといい、macアドレスを元に経路を決めることがきます。
このスイッチハブにデータが届いた際、電気信号をフレームに変換しヘッダーから宛先のmacアドレスを確認します。
今回だと「11:22:33:44:55:66」が宛先のmacアドレスとわかるので、PC2に対するLAN線のみデータを送るのです。
つまり、物理層のときと違い、全てのPCにデータを送るのではなく、宛先のPCにのみデータを届けるのが第2層の役割になります。
データリンク層は宛先のmacアドレスにデータを届けると覚えておこう!
第3層 ネットワーク層
ネットワーク層では
異なるネットワーク同士を中継することを担ってます。パケットにヘッダーを付与し、このヘッダーに送信先IPアドレスを設定します。
ひとことでいうならば、目的地までデータを届けることです。
レイヤー2、データリンク層では、隣接する機器間の通信を可能にすることでした。
ネットワーク層では、IPアドレスと呼ばれるインターネット上の住所と、ルーティングと呼ばれる最適経路を導き出す仕組みで、目的地までの経路を導き出します。
では次の図を見てみましょう。
①にPC1はデフォルトゲートウェイであるルータAにデータを送ります。
ちなみにデフォルトゲートウェイとは、英単語で玄関の意味を持ちますので、内部ネットワークと外部ネットワークを繋ぐためのネットワーク機器のことです。
日常生活に例えると、宅配するときの営業所がルータの役割と思っていただければイメージしやすいでしょう。
②にルータAはルーティングテーブルと呼ばれる経路情報を参照してPC3までの最適経路を確認します。
③に処理②の結果よりルータAはルータBにデータを転送。
④にルータCはPC6にデータを届けます。
このようにネットワーク層ではバケツリレー方式でデータを届けているのです。
ネットワーク層の主なプロトコル
ネットワーク層の主なプロトコルにIPとICMPがあります。
よくIPアドレスは建物住所で例えられることが多いです。
その住所経路を判別するためのプロトコルと覚えて貰えば良いと思います。
IP(Internet Protocol) | これまで学んだ経路を判別するためのプロトコル |
ICMP(Internet Control Message Protocol) | 主要プロトコルである「IP」 を補助する役割を持つ通信プロトコル。 コネクションレス型(一方的に送る)のプロトコルである「IP」を使った通信において、ICMPは発生した各種エラー情報の検知などを行う。 |
ネットワーク層はPCからPCへとデータを送るために、ルーティングや中継を行うことを覚えておこう!
第4層 トランスポート層
トランスポート層では、ポート情報を付与して、どのアプリケーションに渡すかの橋渡しを行っています。
また通信の信頼性の担保という重要な役割を担っています。
ポート情報を付与して、どのアプリケーションに渡すかの橋渡し
あるコンピュータとコンピュータがネットワーク通信をする際に、コンピュータに届けるまでの方法は第3層までに解説してきました。
しかしコンピュータに到着しただけでは、データは目的地にはたどり着きません。
これを現実世界で例えるなら、
住所はわかっているけど、部屋番号がない状態です。
部屋がどこかわからないと困りますよね。
この部屋番号を提供しているのが、第4層の役割とイメージしてください。
では、どのようにして部屋の番号を判断するのでしょうか。それはポート番号が重要になります。
ポート番号は0から65534までありますが、0~1023まではwell knownポートと呼び、よく知られているメールやwebサービスで使用されるアプリケーションプロトコルにポート番号が割り当てられています。
イメージしやすいのはwebページで使われるhttpだと思います。
これはブラウザが80のポート番号宛にアクセスしています。
そのため通信が成り立つのです。
ちなみに僕たちクライアント側は49152~65535の中からランダムで割り当てられたポート番号とIPアドレスを付与しているからブラウザを閲覧することができます。
通信の信頼性の担保
次に通信の信頼性の担保に関して説明していきます。
ネットワーク層では、Internet Protocolを使って目的地にデータを届けることが目的でした。
しかしこれは一方的に送るプロトコルであるため信頼性が低いです。
そこでトランスポート層では、データの送受信に関して信頼性の取り決めを行っています。
その信頼を担保するプロトコルはコネクション型のTCPとコネクションレス型のUDPがあります。
コネクション型 | TCP(Transmission Control Protocol) |
コネクションレス型 | UDP(User Datagram Protocol) |
TCP(Transmission Control Protocol)
TCPとは信頼性が担保されたプロトコルです。
具体的な動きとしては、データを受け取った際に、「受け取ったよ」と送信元に返信することです。
人間で言うコミュニュケーションを取っているイメージですね。
仮にデータの送信に失敗した場合は、一定時間後に再送する仕組みがあります。
声がとどかなっかたらもう一回話しますよね。同じイメージです。
これを確認応答といいます。
このようにTCPは一方通行のやり取りではなく、相互にデータを送り合うことで通信しています。
UDP(User Datagram Protocol)
次にUDPです。
User Datagram ProtocolといいTCPに比べ速度を優先したプロトコルです。
この図のように、相手にデータが届いたかの確認は行わず、一方的なデータを送ることで速度を優先した通信を実現しています。
もしデータが届かなかったら、再送するTCPに比べ、UDPは破棄します。
このように早くて雑なのが特徴です。
トランスポート層はポート番号宛にデータを送信し会話のようにやり取りすることを覚えておこう!
第5層 セッション層
セッション層とは通信内容を区別し、アプリケーションプロトコルに沿った論理的な通信路を確率する役割があります。
どういうことかというと、手紙のやり取りを例に挙げます。
こちらが書いた手紙が相手に届く前に、相手から手紙が届いてしまった場合、行き違いが生じて会話が成立しません。それと同じで、通信の一連の手順に行き違いがないように管理し、同期を取っているイメージです。
実際のwebページ閲覧時では、コンピューターとサーバーでコネクションによって通信を確立します。
これはトランスポート層で説明しました。
セッション層の役割はこのトンネルの中に細かい通信路を確立することです。
webページを閲覧する場合は、まずはテキストファイルを読み込んだあと、画像1つ1つに対してセッションを確立しページ全体をブラウザが読み込みます。
このときの論理的な通信の確立がセッション層の役割です。
ただし、近年ではセッション層のプロトコルが使われる場面は少なくなっており、実際はほとんど使用されていません。
セッション層は現在使われてないので、役割だけ覚えておこう!
第6層 プレゼンテーション層
プレゼンテーション層は、コンピューターで通信しやすいように通信したいデータの表現形式を変換します。
例えば異なる文字コードを使用すると文字化けが発生してしまいます。
もし文字化けしてしまったら要求に対して適切なレスポンスを返すことができません。
ここでプレゼンテーション層が存在することで、コンピュータ間の文字コードを統一するため適切なレスポンスを返すことができます。
文字に限らず画像や音楽などもデータ形式を統一する必要があります。このようにコンピュータ間のデータ形式を統一することがプレゼンテーション層の役割です。
第7層 アプリケーション層
アプリケーション層はユーザーが使用するアプリケーションの動作を下位の層に渡したり、相手から受け取ったデータをアプリケーションに表示したりする役割を持ちます。
例えばアプリケーション層のプロトコルでは、webの閲覧ではHTTP、電子メールはSMTPなどがあります。
HTTPプロトコル
例えばgoogleのURLを例に出すと頭にhttpsと表示がされてます。
これはHTTP通信を行います。という通信方法の記載です。
ちなみにhttpsはデータ暗号化機能を付与したセキュリティの内容になります。
このHTTPプロトコルによってwebサイトの閲覧やデータの受け渡しが行われています。
ちなみにポート番号は80。トランスポート層ではTCPを使用しています。
webブラウザはHTTP要求を使ってリクエストを送り、サーバー側はHTTP応答を使ってレスポンスを返します。
このときHTTP要求の中にGETメソッドを組み込むことによって、ブラウザの要求どおりに画像やファイルを送ることができます。
これらのやり取りがアプリケーション層の役割です。
ネットワークをもっと知りたい方はこちら!
ここまでOSI参照モデルに関して説明してきましたが、まだまだイメージしずらいところもあると思います。
またあくまでイメージを掴んでもらうため簡潔に説明しているので、より詳細にOSI参照モデルに関して学びたい方はハンズオン形式のUdemyで学ぶのがおすすめです!
こちらの教材は基本情報技術者を目指している方にぴったりなので、ぜひ参考にしてください。
【挫折した人へ】ITパスポート/基本情報技術者_ネットワーク+情報セキュリティ+データベース講座