OSI基本参照モデルについて

基本技術者試験の勉強がてら、まとめてみます。

##1. OSI基本参照モデルとは
・ネットワークは、様々な機能と一緒に__複数のプロトコル__が使われている。
　`=> 土台となるプロトコルの上に、それを利用するプロトコルが乗っている階層のイメージ。`

・この階層の世界規格が、「__OSI(Open System Interconnection)基本参照モデル__』と呼ばれる。



##2. OSI基本参照モデルの7つの階層
・OSI基本参照モデルは、ネットワーク機能やプロトコルを7つの階層に分ける。

| 階層 | レイヤ |
|:--|:--|
| 第7層  | アプリケーション層  |
| 第6層  | プレゼンテーション層  |
| 第5層  | セッション層  |
| 第4層  | トランスポート層  |
| 第3層  | ネットワーク層  |
| 第2層  | データリンク層  |
| 第1層  | 物理層  |


・下の階層にあるほど、基本的な機能やプロトコル（取り決め）を提供する。

__第1層：物理層__
電線、光ケーブル、電波のどれかを使ってデータを物理的に伝送するかを取り決める。

__第2層：データリンク層__
直接つながっている相手と通信を行うための取り決め。

__第3層：ネットワーク層__
データを中継して最終的な目的地まで届けるための取り決め。
（例）
![IMG_4579.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/366833/20b9bb9a-f778-7261-3c7e-8cb9cf515e76.jpeg)


__第4層：トランスポート層__
データの分割と復元、および到達確認を行う。
インターネットで伝達される大きなデータは、いくつかの小さなデータに分割されて送信され、受信先で元のデータに復元される。

__第5層：セッション層__
複数のデータのやりとりによる一連の通信手段の取り決め。

__第6層：プレゼンテーション層__
文字、画像、圧縮などのデータ表現の取り決め。

__第7層：アプリケーション層__
ユーザから見た操作方法の取り決め。


##3. OSI基本参照モデルとプロトコル
OSI基本参照モデルに対応付けて、ネットワークで使われている様々なプロトコルを分類できる。

| 階層 | レイヤ | プロトコル |
|:--|:--|:--|
| 第7層  | アプリケーション層  | HTTP、SMTP、POP3、FTP、NTP、Telnet、SSHなど  |
| 第6層  | プレゼンテーション層  | HTTP、SMTP、POP3、FTP、NTP、Telnet、SSHなど  |
| 第5層  | セッション層  | HTTP、SMTP、POP3、FTP、NTP、Telnet、SSHなど  |
| 第4層  | トランスポート層  | TCP、UDP  |
| 第3層  | ネットワーク層  | IP  |
| 第2層  | データリンク層  | イーサネット  |
| 第1層  | 物理層  | イーサネット  |


1, __イーサネット：__第1層の物理層と、第2層のデータリング層の機能を提供する。データリング層までは、社外のインターネットに出ていけないので、イーサネットは社内LANのプロトコル。

 ★インターネットでは、TCP/IPが基本プロトコルになる。
2, __IP：__第3層のネットワーク層で使うプロトコル。
　Internet Protocolの略。

3, __TCP：__第4層のトランスポート層で使うプロトコル。
　Transmission Control Protocolの略。

4, __UDP：__第4層のトランスポート層で使うプロトコル。
　User Datagram Protocolの略。TCPの代わりに使うこともある。
　UDPは、品質より速度を重視したプロトコル。目的地にデータが到達しなかった場合、TCPはデータの再送を行うが、UDPは再送を行わない。
　（例）：品質より速度が重視される音楽や動画の配信、時刻を合わせる__NTP（Network Time Protocol）__などで行われる。

5, __HTTP、SMTP、POP3(※)など：__第5層のセッション層、第6層のプレゼンテーション層、第7層のアプリケーション層の機能をまとめて提供してくれるもの。
　※ HTTP：WEBサーバを閲覧、SMTP、POP3：メールを送受信するもの。
　`==> これらのプロトコルは、どれも基本プロトコルとしてTCPとIPを使う。`

(その他) __DNSサーバ、DHCPサーバは？__
・DNSサーバ => __DNS__というプロトコルを使う
・DHCPサーバ => 　__DHCP__というプロトコルを使う
　`==> これらのプロトコルは、速度を優先するために、基本プロトコルとしてUDPとIPを使う（DNSでは、TCPを使うことがある）。`


##4. アプリケーションデータに付加されていくヘッダ

▼データが送られていくイメージは、こちらです。
![IMG_4581.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/366833/4e4b2dac-d09b-b78a-195c-b8f6eb71440a.jpeg)
7つの階層を上から順番にたどりながら送信し、下からたどりながら受信されるイメージ。

・データ送信時に、上から下に階層をたどるときに、宛先や差出人など情報がデータ付加される。このデータのことを__ヘッダ（header）__と呼ぶ。

・プロトコルごとにヘッダの形式がちがうので、階層を上から下にたどることで、それぞれのヘッダが追加されていく。逆に、データ受信の際に、下から上に階層をたどる時はヘッダが除去されていき、データだけがユーザに渡される。
==> このデータのことを、__アプリケーションデータ__と呼ぶ。

・ヘッダ ＋ アプリケーションデータ = それぞれの階層に置けるデータのまとまり。

▼追加されていくヘッダのイメージ
![IMG_4582.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/366833/ca35dcc1-4233-5de5-6751-67efcc87d81f.jpeg)

・アプリケーションヘッダ + TCPヘッダ = __TCPセグメント__
・アプリケーションヘッダ + TCPヘッダ + IPヘッダ = __IPパケット__
・アプリケーションヘッダ + TCPヘッダ + IPヘッダ + イーサネットヘッダ = __イーサネットフレーム__

##5. LAN間接続装置
・__ルータ__のようにLANとLANの間を接続する装置を、__LAN間接続装置__と呼ぶ。
・ルータのほかにも、__ブリッジ__と__リピータ__がある。

| 階層 | レイヤ | LAN間接続装置 |
|:--|:--|:--|
| 第7層  | アプリケーション層  |   |
| 第6層  | プレゼンテーション層  |   |
| 第5層  | セッション層  |   |
| 第4層  | トランスポート層  |   |
| 第3層  | ネットワーク層  | __ルータ__  |
| 第2層  | データリンク層  | __ブリッジ__  |
| 第1層  | 物理層  | __リピータ__  |

__ルータ：__ルータは、IPアドレスを見て適切なネットワークにデータを中継する。

__ブリッジ：__ブリッジは、2つのLANをつないで、1つのLANにする。宛先MACアドレスを見てデータを中継する。1つのLANになれば、データリング層までの機能で通信できる。

__リピータ：__リピータは、長い通信ケーブルを通って弱くなった電気信号を回復させる（= 信号を増幅することによって伝送距離を延長する）。データの内容に関わらず、物理的に回復しているだけ。

（その他）__ゲートウェイ：__複数の階層のプロトコルをまとめて変換する装置。OSI基本参照モデルの特定の階層に対応付けられない。