PR

【ネット初心者向け】OSI参照モデルをわかりやすく解説!おすすめの覚え方も! 〜ネットワークの基礎知識を添えて〜

Rintaが書いた

どうもみなさんこんにちは。
今回はOSI参照モデルを勉強していこうと思います。
また、自分が使った語呂合わせも紹介していきます。
できるだけ簡単にわかりやすく伝えていくのでお願いします!

スポンサーリンク
スポンサーリンク

最初に

私たちの生活はネットワークなしでは成り立たちません。
毎日youtubeを見たり、オンラインで買い物したり、SNSで友達とつながったりしています。
しかし、電気や電波は目に見えないので仕組みがわかっていない人が大半だと思います。
そこで、今回はネットワークの仕組みについて教えていきます。
「仕組み」と言ってもルーターとかHTTPとかいろいろありますが、今回は「データをネットワーク経由で投げるときの手順」について話していこうと思います。
これを勉強しておくと、なにかネット関係のトラブルが合った時に対処しやすかったり、なにかブロッカー(学校タブレットなど)を解除したいときに様々な選択肢を用意したり、自慢したり(?)できます!

最初に行っておくと、実際に使用する際には「TCP/IPという方法で主に通信されていて、今回使用する「OSI参照モデル」はほぼ使用されていません。
理由は、細かく定めすぎてめんどくさいからです。
ですが、ネットワークを勉強する上で、OSI参照モデルは細かく分けられてて逆に勉強しやすいのでよく教材に使用されます。
OSI参照モデルを勉強し、ネットワークの世界に興味を持って貰えれば幸いです!

私が勉強する際に主にお世話になった本やサイト様(普通に面白いので両方見てみてください):
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
図解入門TCP/IP 仕組み・動作が見てわかる \ みやた ひろし \ SBクリエイティブ

ここで書かれている図はすべて分かりやすくするために大雑把なので正確でない場合がほとんどです。
そこはよろしくおねがいします。

1.ネットワークの基礎!

ネットワークの基礎知識編です。OSI参照モデルを学習する上での事前知識となります。
ここで学習する概念や単語はパソコンを使用する方なら(多分)いつかは使うと思うので学習しておいて損はないと思います。
「もう知っている」という方は読み飛ばしてください。
とりあえず、私が偏見で選んだ使うやつTop10を書いていきます。



LAN

LAN(ローカルエリアネットワーク)は、限定された地理的範囲(例えば、家やオフィス内)で複数のコンピューターやデバイスを接続するネットワークのことです。LANを使えば、デバイス同士でファイルの共有やプリンターの共有、インターネットアクセスの共有が簡単にできます。
また、その一つのLANに接続していることを「LAN内にいる」と表現します

IPアドレス

デバイスをネットワーク上で一意に識別するための番号。インターネットに接続するすべてのデバイスには、必ずIPアドレスが必要です。
また、一言でIPアドレスと言っても「プライベート(≒ローカル)IPアドレス」と「パブリック(≒グローバル)IPアドレス」があり、
ローカルIPアドレスは主にローカルネットワーク内で使用されるIPアドレスで外部のインターネットからは直接アクセスできません。
パブリックIPアドレスはインターネット上で一意のIPアドレスで、外部から直接アクセス可能なアドレスです。
プライベートIPは家庭や企業の内部ネットワークで使用され、パブリックIPはインターネット全体で使用されます。

例えを使って簡単に言うと、
パブリック:
僕in自宅「東京都千代田区有楽町1丁目11−1 読売会館ビルディング B1Fのビッグカメラ行こや」
プライベート:
僕in読売会館ビルディング「地下一階にあるビッグカメラ行こや」

です。自宅で「地下一階にある」と言ってもわかりませんよね。それがプライベートIPアドレスです。

ちなみに私の今のプライベートIPアドレスは192.168.0.77でした。

サブネットマスク

IPアドレスをネットワーク部分とホスト部分に分けるためのマスク。これによって、どのデバイスが同じネットワークに属しているかを判別できます。
実はIPアドレスは、「ネットワーク部」と「ホスト部」の情報があり、「どのネットワークなのか」と「そのネットワークのなかのどこなのか」という情報が含まれています。

例えば、もし自分が配達員だとして、次のような配達先の住所を渡されたとします。
「東京都千代田区 。 有楽町1丁目11−1。 読売会館ビルディング 。B1Fビッグカメラ」
この場合、
「東京都千代田区 。 有楽町1丁目11−1。 読売会館ビルディング」という建物の中の、
「B1Fビッグカメラ」という場所に行けばいいですよね。
「読売会館ビルディング」 の住所だけや、「地下1階のビッグカメラ」などと言われてもど、こか具体的にはわかりません。

住所だと私達は慣れているので別に「建物と店」で分ける必要はありませんが、
192.168.0.77
だったらどうでしょう。何一つわかりませんよね。
そこで登場するのがサブネットマスクです。
「255」と「0」で構成されており
これは、255に値する部分がネットーワーク部という意味です。
なぜ255なのかというと二進数にしたときに11111111になってそれっぽいからです。

TCP(Transmission Control Protocol)

TCP(Transmission Control Protocol)は、データ通信を信頼性と順序保証するためのプロトコルです。具体的には、インターネット上でデータが正しく、順序通りに送受信されるように設計されています。
中身としては、「データを送ったらその都度相手から「送られましたよ」と返事が来る」といった感じですね。

↓ それいけTCPくん!第1話、付き合ったら毎回返信くれるタイプの彼女だった

今回の場合、きちんと送信できたことを確認してから送信していますね。こうすることで文脈(データ)がキチンと確実に送信できます。
しかし、いちいち確認しないといけないため会話が終わるまでに時間がかかっています(今回は9分)。それがデメリットです。

UDP(User Datagram Protocol)

データを迅速に送信するためのプロトコルで、TCPよりも軽量ですが、データの信頼性や順序は保証されません。リアルタイムアプリケーションに多く使われます。
中身としては、「とりあえず届かなくてもいいからデータを送りつける」方法です。

↓ それいけUDPくん!第1話、彼女に嫌われる

今回は、会話が終わるのが早かったですね。ですが、送信に失敗していても気が付きませんでした
このように、確認を取らずにとにかく送りまくるのがUDPです。

オンラインゲームなどのms単位のゲームなどはUDPです。1個ぐらいなくても、とにかく送りまくってるのでなくなってもいいやといった感じです。

DNS(Domain Name System)

ユーザーが覚えやすいドメイン名(例:example.com)を、コンピュータが理解できるIPアドレスに変換するシステム。これにより、ウェブサイトへのアクセスが可能になります。

MACアドレス

ネットワーク機器の物理的なアドレスで、各デバイスに固有の番号が付与されています。
MACアドレスは(基本)かぶらないので、主にローカルネットワーク内での識別に使用されます。

MACアドレスは通常、6つのペアの16進数で構成され、各ペアはコロンやハイフンで区切られます(例:00:1A:2B:3C:4D:5E または 00-1A-2B-3C-4D-5E)。

パケット

インターネットでデータを送信する際、データを小さな単位に分割したもの。これにより、効率的にデータを転送し、最適な経路を選ぶことができます。

NAT(Network Address Translation)

プライベートIPアドレスをパブリックIPアドレスに変換する技術。これにより、内部ネットワークのデバイスがインターネットにアクセスできるようになります。

IEEE(Institute of Electrical and Electronics Engineers)

電気工学や電子工学の標準化を行う国際的な団体。特にWi-Fiやイーサネットなどの通信規格の策定において重要な役割を果たしています。
読み方は「いえーーー」ではなく、「あいとりぷるいー」です。
よく「IEEE 802.11」とかの規格名でよく見ますね。

  • WiFi: IEEE 802.11
  • Bluetooth: IEEE 802.15.1
  • Zigbee: IEEE 802.15.4

すべて802.xxなのは、802.xxがネットワーク系(LANやPAN,MAN)を指定しているからです。

ちなみに私は中学校のときに学生としてIEEEに登録したのですが、学校のタブレットにのパスワードマネージャーにしか保存しておらずログインできない状況です;;

本題:OSI参照モデル

本題の、OSI参照モデルについての解説に入っていきます。
先程の知識でお腹いっぱいの方は胸を張ってお帰りください。十分役に立つ知識が手に入ったと思います。

概要!

OSI参照モデルは、次の順序で通信しています。

物理層(Physical Layer)・L1
データリンク層(Data Link Layer)・L2
ネットワーク層(Network Layer)・L3
トランスポート層(Transport Layer)・L4
セッション層(Session Layer)・L5
プレゼンテーション層(Presentation Layer)・L6
アプリケーション層(Application Layer)・L7

上の表の、上から順にパケットは送信され、上から順に受け取り側は受け取ります。
物理,データリンク…〜層 または レイヤー123… または L123… と表記されることが多いです。


また「いくつかの層に分かれている」感じですが、実際は層ごとにどんどんと梱包していく感じです。


とりあえずもうちょっと詳しく見ておきましょう。

1. 物理層(Physical Layer)
  • 技術例: イーサネットケーブル、光ファイバー、無線信号
  • 役割: データの電気的・光学的な伝送
2. データリンク層(Data Link Layer)
  • 技術例: Ethernet(イーサネット)、Wi-Fi(IEEE 802.11)、MACアドレス
  • 役割: 隣接デバイス間でのデータ転送とエラー検出・修正
3. ネットワーク層(Network Layer)
  • 技術例: IP(インターネットプロトコル)、ルーティングプロトコル(OSPF、BGP)
  • 役割: ネットワーク間のデータ転送とルーティング
4. トランスポート層(Transport Layer)
  • 技術例: TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)
  • 役割: エンドツーエンドのデータ転送と信頼性の提供
5. セッション層(Session Layer)
  • 技術例: NetBIOS、RPC(Remote Procedure Call)
  • 役割: 通信セッションの確立、維持、終了
6. プレゼンテーション層(Presentation Layer)
  • 技術例: SSL/TLS(暗号化プロトコル)、JPEG(画像圧縮)、MPEG(動画圧縮)
  • 役割: データの形式変換、暗号化、圧縮
7. アプリケーション層(Application Layer)
  • 技術例: HTTP、FTP、SMTP(メール)、DNS(ドメイン名システム)
  • 役割: エンドユーザーが使用するアプリケーションと直接やり取り

語呂合わせ

各層を覚えるには、私は「アップ セット ネぇ、デブ」で覚えまし

アッ=アプリケーション層
プ=プレゼンテーション層
セッ=セッション層
ト=トランスポート層
ねぇ=ネットワーク層
デ=データリンク層
ブ=物理層

しょーもない語呂合わせですね。覚えたらいいんですよ。覚えたら。




では、次で細かく見ていきましょう。

物理層・レイヤー1・L1

まずは、物理層です。
イーサネット(IEEE802.3)やWI-FI(802.11)、bluetooth(802.15.1)あたりの「通信方法」です。

例えば、手紙を郵送することを考えてみましょう。物理層は、実際の紙、封筒、郵便箱に相当します。これらの物理的なアイテムがなければ、手紙の中のメッセージを送ったり受け取ったりすることはできませんよね

同様に、ネットワークでは、物理層がケーブルやスイッチなどのハードウェアを含み、データがデバイス間で移動するのを可能にします。これは、すべての高層レイヤー(手紙の内容や意味のようなもの)が機能するための基礎となる部分です。

データーリンク層・レイヤー2・L2

そしてややこしいのが「データリンク層」です。
イーサネット(IEEE802.3)やWI-FI(802.11)、bluetooth(802.15.1)あたりの「通信方法」に沿ってデータ(パケット)を包みます。

「物理層」との違いは、
「物理層」では「電波や光」に形式に沿って変換して
「データリンク層」では「MACアドレス」を指定したり、「きちんと電波や光信号に変換したときに正しく変換できているか・データが消えていないか」をチェックしたりしています。

例えば、あなたが友達に手紙を送るとします。物理層は実際の紙、封筒、郵便箱に相当しますが、データリンク層は郵便局の役割を果たします。郵便局は、手紙が確実に宛先に届くように、手紙の住所を確認し、必要ならスタンプを押し、配達経路を調整します。もし手紙が途中で紛失したり、破損したりした場合、郵便局がそれを発見し、修正します。

同じように、データリンク層は、データパケットにアドレスを付け、正しく送信されるようにし、エラーが発生した場合は再送信を行います。この層があることで、データ通信が確実に行われるのです。

例では郵便局に例えましたが、まだLAN内のモデムとデバイス間の通信しか指定していません。

ネットワーク層・レイヤー3・L3

ここから3つは「ネットワークの概念」なので、イメージがしにくくなります。

ネットワーク層は、その名の通りネットワーク(世界中のコンピューターをつなぐもの)関連です。
今まででやっと、ルーターまでたたどり着いた状態なので、「自宅の玄関のドアを開けた」くらいの感覚です。

とにかくイメージして理解していきましょう。

流れ↓

  1. あなたが送る荷物(データパケット)に送り先住所(宛先IPアドレス)と自分の住所(送信元IPアドレス)を付けます。
  2. 荷物は最寄りの配送センター(ルータ)に届きます。
  3. 配送センターのスタッフ(ルータ)は、荷物の住所ラベル(IPアドレス)を見て、最適なルートを決めます。
  4. 荷物が各配送センター(ルータ)を経由しながら、最終的に送り先の住所に届きます。

そして具体的な用語でいうと、「OSPF, BGP」「NAT」「DHCP」「IPv4/IPv6」などがあり、有名なネットワークっぽいプロトコルはだいたいここです。

あ、言い忘れてましたがインター「ネット」はがちで網みたいにルーター同士を経由して通信しています。
大雑把に言うと下の図みたいに、「行き先」と「ルート」を主に決めています。

トランスポート層・レイヤー4・L4

ここは、結構有名な技術が主に使われているので想像しやすいかもしれません。
一言でいうと↓

目的地に到着した後の処理をしてくれます。
UDPの場合はそのまま指定のポート番号に直撃ですが、
TCPの場合は、自分の荷物(データ)を確認して、忘れ物や落とし物がないか確認します。
もし、なくなっているものがあれば再送します。


最近ではSCTPというプロトコルもあり、TCPとUDPの中間に位置するプロトコルで信頼性の高いデータ転送を提供します。主にVoIPやメッセージングシステムで使用されます。SCTPは、複数のストリームをサポートし、データの順序保持や再送信、フロー制御などの機能を持っています。

もっと詳しくL4を説明すると、

  1. 小包の分割とラベル付け:
    トランスポート層は、大きなデータを小さな部分(セグメント)に分割し、それぞれにラベル(ヘッダー情報)を付けます。このヘッダーには、送信元と宛先ポート番号やプロトコル情報も含まれており、データが正しいアプリケーションに渡されるようにしています。これは、宅配サービスが大きな荷物を複数の小包に分けて、各小包に送り先や送り元のラベルを付けるのと似ています。
  2. 信頼性の確保:
    TCPでは、信頼性を確保するために、各データセグメントにシーケンス番号を付け、受信側がデータを正しい順序で再構成できるようにします。また、データが正しく届いたかを確認するために確認応答(ACK)を使います。もしデータが届かなかった場合は、再送信を行います。一方、UDPは再送信や順序制御の機能を提供せず、信頼性の確保はアプリケーション層に委ねられています。
  3. フロー制御:
    トランスポート層は、送信側と受信側のデータ処理能力を調整して、データの流れを制御します。例えば、TCPでは受信側のバッファサイズを考慮し、送信側が送信速度を調整します。これは、宅配サービスが受け取り手の状況を確認し、必要に応じて配達のタイミングを調整するのに似ています。
  4. エラー検出と修正:
    トランスポート層では、データのエラーを検出し、正しく受信されなかったデータがあれば再送信を行います。ただし、エラーそのものを修正する機能はトランスポート層にはなく、この役割は主にデータリンク層や物理層が担います。宅配サービスで例えるなら、荷物が破損していた場合に再送を手配するが、その場で修理するわけではないのと似ています。

セッション層・レイヤー5・L5

通信セッションの確立、管理、終了を担当します。

セッションの確立:

  1. あなたが友人に電話をかける。
  2. 友人が電話に出る。
  3. これで会話が始まります。

セッションの管理:

  1. 会話中に、互いに話す順番を守ってコミュニケーション。
  2. 途中で話が途切れないように、しっかりと会話の流れを維持。

セッションの終了:

  1. 会話が終わったら、「さようなら」と言って電話を切る。
  2. これで会話のセッションが終了します。

トランスポート層 (L4) は、データの送受信が確実に行われるように管理し、セッション層 (L5) はそのデータ通信の「会話」をスムーズに行うための環境を整えます。
つまり、トランスポート層がデータの信頼性を担保し、セッション層がそのデータ通信の全体的な流れを管理する役割を果たします。
具体的に言うとNetBIOSとかですが、TCP/IPではNBT(NetBIOS over TCP/IP)が使用されてるらしいです。

具体的にすると、
通信セッションの管理:
セッション層は、通信の始まりから終わりまでの「セッション」を管理します。セッションの確立、維持、終了を行い、通信の途中でエラーが発生した場合にも、再開できるようにする役割を持っています。

同期の提供:
セッション層は、通信データにチェックポイント(同期点)を挿入することで、途中でエラーが発生した場合に、そのチェックポイントから再開できるようにします。例えば、ファイルのダウンロード中にエラーが発生した場合、最初からやり直すのではなく、エラー発生箇所から続行することが可能です。これは、章ごとにしおりを挟みながら本を読むようなものです。

双方向通信の制御:
セッション層は、データのやり取りをスムーズにするために、どちらのデバイスが送信または受信を行うかを調整します。例えば、無線機で話すときに「送信側が話し終わったら次は受信側が話す」といった手順を決める役割を果たします。

プレゼンテーション層・レイヤー6・L6

プレゼンテーション層ではデータの表現形式を管理します。この層の主な役割は、アプリケーション層とセッション層の間でデータを変換し、互換性を持たせることです。

例えば、あなたが日本語を話し、友人が英語を話す場合、直接コミュニケーションを取ることは難しいですよね。このとき、翻訳者が間に入ることで、あなたの言葉を友人に正確に伝え、友人の言葉をあなたに理解できるように変換します。

プレゼンテーション層では、以下のようなものを管理します。

  1. データ圧縮:データのサイズを小さくするための圧縮技術(例:JPEG、MPEG)。
  2. データ暗号化:セキュリティのためにデータを暗号化し、保護します(例:SSL/TLS)。
  3. エンコーディング:データの符号化方式を決定します(例:UTF-8、ASCII)。

急に見慣れた単語が出てきましたね。

詳しくすると、
データの変換:
プレゼンテーション層は、送信側と受信側で異なるデータ形式を使用している場合に、データの形式を互いに理解できるように変換します。例えば、エンコードやデコード、暗号化や復号化を行います。

データの圧縮:
通信を効率的にするために、データを圧縮してサイズを小さくする役割を担います。圧縮されたデータは受信側で解凍され、元の形に戻されます。これは、引っ越しの際に荷物を小さく梱包して運び、目的地で再び広げるような作業に例えられます。

暗号化と復号化:
プレゼンテーション層は、セキュリティを確保するために、送信されるデータを暗号化し、受信側で復号化します。これは、重要な手紙を送る際に、第三者に読まれないように暗号化して送付し、受信者が鍵を使って内容を解読するのと似ています。

上記のような動作をするとに、例で出したプロトコルが使われていたりします。

アプリケーション層・レイヤー7・L7

いよいよここで最後です。
アプリケーション層は、エンドユーザーと直接やり取りするアプリケーションの機能を提供します。つまり、ユーザーが使うソフトウェアやサービスが通信プロトコルを使ってネットワーク上でデータをやり取りする層です。
具体的なプロトコルとしては:

  • HTTP(HyperText Transfer Protocol): ウェブページを表示するためのプロトコル。ブラウザとウェブサーバー間の通信に使用されます。
  • FTP(File Transfer Protocol): ファイルの転送を行うためのプロトコル。リモートサーバーとの間でファイルをアップロードやダウンロードします。
  • SMTP(Simple Mail Transfer Protocol): 電子メールを送信するためのプロトコル。メールサーバー間でメールを転送します。
  • POP3(Post Office Protocol 3): 電子メールを受信するためのプロトコル。メールサーバーからメールをダウンロードします。
  • IMAP(Internet Message Access Protocol): メールをサーバー上で管理しつつ、複数のデバイスからアクセスできるプロトコル。

こんな感じですね。
また、L7の「HTTP」とL6の「SSL」が合体すると、「HTTPS」になるように、よく使われている用語で合わせ技も存在します。

役割的には、
ユーザーとネットワークのインターフェース:
アプリケーション層は、ユーザーがネットワークサービスを利用できるようにする層です。電子メール、ウェブブラウジング、ファイル転送などの具体的なアプリケーションプロトコル(HTTP、FTP、SMTPなど)がこの層で動作します。

データの意味付け:
アプリケーション層では、ユーザーがネットワークでやり取りするデータに具体的な意味を与えます。たとえば、ウェブブラウザでHTMLを表示したり、メールクライアントで電子メールを読み取ったりする作業が行われます。

サービスの提供:
この層は、通信そのものというよりは、その上で動作するサービスを提供します。たとえば、ウェブページを閲覧する(HTTP)、ファイルを転送する(FTP)、メールを送受信する(SMTP/IMAP)といった具体的な作業が該当します。

まとめ

今回はざっくりと流れを確認するだけだったので簡単でしたが、実際に勉強していく時は各層のプロトコルごとの詳細も勉強しなくてはならないので大変です。
しかし、ネットワークの世界は現実世界とはちょっとちがい、魔法の世界みたいなので勉強していくととても面白いです。

なにか単純なネットワーク接続不良だったら再起動などで治りますが、とても複雑なものになるとどこから手を付けていけばわからなくなります。ですが、今回の知識を活かすと、どこでネットが死んでいるかを見つけやすくなるのでとても便利です。

なにか間違っているところや意見があればコメントかdiscordまで教えてください。ご覧いただきありがとうございました!









コメント

タイトルとURLをコピーしました