【Webエンジニアの求人なのに】Day3.OSI参照モデル


##OSI参照モデルを知らない
今週末もWebエンジニアの求人なのにシリーズです。
何回も引用していますがこちらのツイートをもとにテーマを決めて毎週アップしています。
![3551F8E9-7F7E-4375-B809-9ACF4302652D[373].png](https://qiita-image-store.s3.amazonaws.com/0/256858/f6c5809c-2b57-3967-ce2e-b213c9f86247.png)

今週は【OSI参照モデルを知らない】についてまとめたいと思います。
基本的に私自身が初心者なので自分の考え方を述べるというやり方ではなく、いろいろな参考サイトをもとに回答をつくるという流れです。


前回までの記事はこちら↓

[【Webエンジニアの求人なのに】Day1.GETとPOSTの違い](https://qiita.com/_ayk_study/items/b2537c5f0fcaaa7ddf08)
[【Webエンジニアの求人なのに】Day2. 公開鍵暗号を知らない](https://qiita.com/_ayk_study/items/bdce50ff05546db4a9e4)


##OSI参照モデルとは
[OSI参照モデルまとめ](https://qiita.com/tatsuya4150/items/474b60beed0c04d5d999)から引用すると、

>OSI（Open System Interconnection）参照モデルとはISO（国際標準化機構）が決めた異なるベンダ感で相互通信するための「ネットワーク・モデル」と言われる統一規格のこと。
OSI参照モデルは、コンピュータなどの通信機器の通信機能を階層構造を分割したモデルで、実際には以下の画像にあるように通信プロトコルを7つの階層に分けて定義している。



ポイントごとに簡潔にまとめると

**・異なるベンダ間で相互通信するために「ネットワーク・モデル」という統一規格がある。
・現在つかわれているのは「OSI参照モデル」。
・OSI参照モデルには７階層の名前と順番がある
・それぞれのレイヤは独立しており、他のレイヤに影響を及ぼさない
・レイヤ７～５まではデータ、その後、レイヤ４～レイヤ１の順に、セグメント、パケット、フレーム、ビットの順番でカプセル化されて送信される。そして非カプセル化を行い、相手にデータを届ける**

【出てきた語句】
※ベンダ…販売会社もしくは売り手のこと（引用元：[「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典](https://wa3.i-3-i.info/word1349.html)）
※レイヤ…レイヤーとは層の事でネットワークを階層構造と考えたもの（引用元：[ネットワーク入門サイト - 接続・速度・通信の基礎](https://beginners-network.com/layer.html)）


**OSI参照モデルについては以下のサイトを読むと非常に詳細なところまで理解できると思います！**
転記しようと思うと莫大な時間がかかるので省略します。
・[3分間ネットワーキング](http://www5e.biglobe.ne.jp/aji/3min/)
・[OSI参照モデルまとめ](https://qiita.com/tatsuya4150/items/474b60beed0c04d5d999)


##なぜOSI参照モデルが必要になったのか
[ネットワークエンジニアとして](https://www.infraexpert.com/study/networking3.html)から引用すると、

>OSI参照モデルの歴史
　OSI参照モデルの策定される以前では、コンピュータネットワークは、単一のベンダー（メーカー）の
　製品だけで構成されており、異なるベンダーのコンピュータ同士の通信を行うことは難しい状況でした。
　ネットワークが普及するにつれ、特定のベンダーに依存することなく異なるベンダーの機器との接続
　の要望が増えたため、異機種間の通信を実現するための設計方針（OSI）が1984年に策定されました。
　当初、OSI参照モデルに準拠したコンピュータやソフトウェアが開発されていくのを想定していましたが
　1990年代にTCP/IPが急速に普及したことでOSI準拠製品は普及しませんでした。つまり、各メーカーの
　機器はOSI準拠製品ではなくTCP/IPを実装させた製品としてリリースされていきました。現在、OSI参照
　モデルはネットワーク通信の基本的な考え方として使用されており、理解しておくことはとても大切です。

インターネットが普及するにつれ、各会社の機械が乱立。異なる会社間でのコンピューターの通信を行うのは機能が異なり、難しい。
↓
それらをコントロールするため標準的なネットワークの開発が必要となる。
↓
開発に先立って必要な機能を階層ごとに分け、整理。それが**OSI標準モデル**。



##OSI参照モデルの詳細
ついにウィキさんから引用してしまうのですが・・・
[OSI参照モデル:wikipedia](https://ja.wikipedia.org/wiki/OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB)

国際標準化機構 (ISO) によって制定された、異機種間のデータ通信を実現するためのネットワーク構造の設計方針「開放型システム間相互接続 (Open Systems Interconnection、OSI)」に基づいて通信機能を以下の7階層（レイヤ）に分割する。


####第７層  アプリケーション層
>具体的な通信サービス（例えばファイル・メールの転送、遠隔データベースアクセスなど）を提供。HTTPやFTP等の通信サービス。 

【私の理解】
例えばユーザーがサイト上のボタンを押す、サイトを開く、などユーザーに直結するレイヤー。


####第6層 - プレゼンテーション層
>データの表現方法（例えばEBCDICコードのテキストファイルをASCIIコードのファイルへ変換する）。

【私の理解】
例えば異なるベンダー間で送りあう文字が違う場合、お互いが理解できる表現に変換して伝える。

####第5層 - セッション層
>通信プログラム間の通信の開始から終了までの手順（接続が途切れた場合、接続の回復を試みる）。

【私の理解】
ネットから情報が送られているときに正常に通信が行われているか管理する機能。

####第4層 - トランスポート層
>ネットワークの端から端までの通信管理（エラー訂正、再送制御等）。（wikiより）
ノード間のデータ転送の信頼性を確保するための規定を定めている。 
具体的には、 確認応答（ACK：Acknowledgeの略、SYN、FIN）、フロー制御（溢れないようにバッファに保留するなど）を行い、信頼性の高いデータ転送 を行っている。[OSI参照モデルまとめ](https://qiita.com/tatsuya4150/items/474b60beed0c04d5d999)より


【私の理解】
送られてきたデータを正しい送信先へ送れるように応答作業を行い、確認後、セグメントを分割して適切に送信する機能（ほかのと違って少し理解するのが難しい）

####第3層 - ネットワーク層
>ネットワークにおける通信経路の選択（ルーティング）。データ中継。

【私の理解】
異なるネットワーク同士で、通信する際、ルーターを用いて正しいIPアドレスへ適切にルーティングを行い、通信する機能をもつ。

####第2層 - データリンク層
>直接的（隣接的）に接続されている通信機器間の信号の受け渡し。

【私の理解】パケットがどの宛先に対してなのかを明確にするため、LLC制御層とMAC制御層の２つの層を通る。その作業により制御情報が付け加えられ、パケットがフレームになる。また、宛先がかぶり衝突が起きてしまうのを防ぐため、ブリッジやスイッチというネットワーキングデバイスがある。（wikiの説明にある、「直接的に接続」というイメージがわきにくい。何か線のようなもので接続されている機器という意味か？）

####第1層 - 物理層
>物理的な接続。コネクタのピンの数、コネクタ形状の規定等。銅線-光ファイバ間の電気信号の変換等。

【私の理解】
送られてきたビット列を実際に回線を通してアナログ信号やデジタル信号に変換しする役割。その際、抵抗などによる減衰、ノイズ、衝突を防ぐため、リピータ、ハブなどのネットワーキングデバイスがある。


##「OSI参照モデル」とはに対する回答（案）

**異機種間の通信を実現するための通信モデルに関する設計。それぞれ異なる役割を持つ７つのレイヤがあり、それぞれは独立している。**

##最後に
いかがでしたでしょうか。

今回の記事はかなり文字数が多く見にくいところもあるかもしれません。
今回のテーマはかなり詳細に学ばなければ各レイヤーの役割やデバイスについて理解できないように思えます。
何かテストがあるわけではないので、今回はざっくりとしたまとめ方でしたが、非常に学ぶことが多かったです。
Webエンジニアになるなら基本的な知識だと思います。

**【私の理解】**に記載してあるところで間違っている認識がありましたら、ご指摘いただけると嬉しいです。
今週末の「Webエンジニアの求人なのにシリーズ」は以上です！
次回は「TCP/IPを知らない」をテーマに進めたいと思います。今回のOSI参照モデルにも出てきましたね！

ではまた来週 ^^) _旦~~