ネットワーク超超超入門まとめ　〜1章〜

東南アジアに住むことを夢見て、カタカタやっているプログラマー♀です。

AWS等クラウドサービスの凄まじい進歩のおかげで、インフラについてあまりわかっていなくても支障が出ることは少なくなりました。

とはいえわかっておいた方がもちろん良いので、ネットワークについて超超超入門記事をいくつかに分けてリリースします。
かくいう私がネットワークアレルギーなので、自分に宛てた記事のようなものです。
繰り返しですが超超超入門なので、ネットワークにかなり自身がない方を対象にしています:shamrock:
間違っている部分はご指摘くださいませ！

# ネットワークって？:sunny:
## ネットワークって何やねん:writing_hand:
一言で言うと『繋げる技術』です。
繋げる技術では、Webサイトのデータも画像も文字も区別せずに、ぜーんぶ『データ』と考えます。
また、ネットワークは『双方向』のやりとりであることも意識しておきたいところです。
テレビやYoutubeは、基本的には一方通行での配信です。（Youtuberも1年後あたりやりたいな）
一方で、ネットワークはクライアントとサーバーの双方向でのやりとりでよって実現します。

## クライアントとサーバーって何やねん:writing_hand:
クライアント：ネットワークを通じてサービスを受ける側
サーバー：ネットワークを通じて」サービスを提供する側

Webサーバーとかメールサーバーとか聞いたことがあると思いますが、提供するデータの種類に応じて◯◯サーバーという風に呼ばれます。
サーバーには提供するサーバーに応じたソフトがインストールされており、そのソフトがインストールされていればサーバーの出来上がりです。
大きくても小さくてもサーバーです。
あ、ソフトだけじゃダメです、サーバー用のOSも必要です。

私たちが使うコンピューターにもWindowsやMacなどOSがありますよね、その上にChromeやEdgeがありますよね。
サーバーも同じです、サーバー用のOSが必要だし、提供するサービス用のソフトがあります。
そのサービスに応じて、メールサーバーやWebサーバーと呼ばれるんですね。

## プロトコルって何やねん:writing_hand:
### プロトコルとは
プロトコルって聞いたことありますでしょうか。この記事を見ている人の中には、聞いたことはあっても左から右に聞き流してきた人もいるのではないでしょうか。

ネットワークでは双方向通信であり、また、クライアンとサーバーでやりとりがあると説明しましたが、
共通の決まりごとをそれぞれ守っていないと、双方向で通信なんてできないです。
その共通の決まりごとのことをプロトコルと呼んでいます。
どのようにデータをやり取りするかとか決めていないと、『何わけわからんこと言ってるん？』ってなります。

ネットワークでは、ネットワークに参加している全ての機器が共通のプロトコルに対応している必要があります。
つまり同じチームなんやから共通ルールで行動してください、ってこと。
OSやソフトウェアもです。

###　標準的なプロトコル
:thinking:『プロトコルがルールなことはわかった。有名というか一般的なプロトコル（ルール）って何なん？』
現在のネットワークで標準的に使われているプロトコルはTCP/IPです。
TCP/IPは、世界中のネットワークを繋いだネットワークであるインターネットで使われているプロトコルで、いわば標準言語みたいなもんです。

### プロトコルのレイヤー構造
:thinking:『TCP/IPってどんなプロトコルなん？』
説明しますが、ちょっと待って。その前にプロトコルの構造について説明します。

データの中身に関する決まりごとや、データを正確に届けるための決まりごと、データをやり取りするための決まりごとなど。プロトコルはたくさんありまして、ジャンル分けされているんですね。
で、そのジャンル分けというのが、データをやり取りする順番に基づいたレイヤー構造（=階層構造）になっているんです。
第1階層、第２階層・・・となっていて、受け取る側は第１から始めていきます。

レイヤー構造の分け方も複数ありますが、よく知られているのがISOが定めたOSI参照モデルです。
![net-novice_004_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/337593/f7474e3f-f3d7-92b7-2b4c-a8cafcb65588.png)
主にネットワーク機器の機能を表現するときに使われます。
例えば、『レイヤー２スイッチ』という機器では、レイヤー1からレイヤー２までのプロトコルに対応した機器という表現をします。
『レイヤー4まで担ってほしいから、レイヤー４スイッチを買おう』とかね:shamrock:

### TCI/IPのレイヤー構造
:thinking:『ふーん、じゃあTCP/IPもOSI参照モデルのどれかの層に属しているってこと？』
はい、いづれかの層には属しています。TCP/IPというのは、プロトコルスタックと呼ばれ複数のプロトコルをセットにしているプロトコルなんです。

:thinking:『わけわからん』
TCP/IPは複数のプロトコルがセットになっているプロトコルで、TCP/IP自体がOSI参照モデルとは別にレイヤー構造を取っています。TCP/IPの各プロトコルはOSI参照モデルのいずれかには分けられますが、ややこしいのでTCP/IPは独自のレイヤー構造を定義しています。
TCP/IPのレイヤー構造については以下の図のように4階層になっています。
![TCPIP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/337593/d24fd969-d71e-32ae-a869-957387b258a1.png)

対比するとこんな感じ。

![tcpip1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/337593/68c01ece-839b-ac05-bed3-f44fb3470270.gif)

:thinking:『ふーん、じゃあISO様が定義したOSI参照モデルがあるけど、TCP/IPっていう手下プロトコルをひっさげているプロトコルの王様みたいなのが、手下プロトコルについてはこっち独自でレイヤー決めさせろ！って感じで決まったのがTCP/IPっていう同名のレイヤー構造ってわけね』
まあざっくりそんな感じでしょうか・・・。
私もちゃんと説明できていないことも悪いし、言い訳をすると、このあたりについてはざっくりの理解で良いのではないかと・・・:pray:

## ネットワークの住所:writing_hand:
:thinking:『プロトコルについてはざっくり理解できたよ。共通ルールね。』
その共通ルールに基づいて、ネットワーク中でデータをお届けするのですが、私たちが住んでいるところに住所があるように、ネットワーク内にも住所があります。
その住所にデータをお届けします。
その届け方・考え方は、荷物の宅配ととても似ています。

まず、マンションに住むAさんに荷物を宅配するとすると、Aさんのマンションの住所（部屋番号まで）を送り状に記載して荷物にペタッと貼り付けますよね。
同じように、Aさんにデータを送るとなると、Aさんのネットワークの住所（部屋番号=ソフトウェアの住所）をデータに貼り付けて送られます。

また、沖縄から北海道に荷物を送るとき、複数の配送センターを経由して送られますよね。
データも同じ。送り主から送り先まで複数のコンピューターや機器を経由して送られます。
ですので、最終的に受け取るコンピューターの住所プラス、直近で次に持っていくところの住所も必要になってくるのです。この次に持っていくところの住所は、機器を経由するごとに変わっていきますね。

このように、以下のような住所があるわけですが、各プロトコルで担当する仕事内容が変わるので、使う住所も変わってきます。

- ソフトウェアの住所（部屋番号）
- 最終の送り先住所
- 直近の送り先住所

## そもそもインターネットって何やねん:writing_hand:
ネットワーク内でのデータの送り方について、宅配に例えて説明しましたが、そもそもインターネットとは何か説明します。
一言で言うと『管理されていない超巨大WAN』です。

### LANとWAN
:thinking:『LANじゃなくてWANなん？』
そもそもLANとWANの違いって説明できそうですか？
:thinking:『LANの方が馴染みがあるってことぐらいかな・・・』

LAN：企業や学校内など同じ建物や敷地内にあるネットワークのこと（狭いネットワーク）
WAN：企業の支社間や家庭と企業といったネットワークのこと（広いネットワーク）

LANとWANは、範囲の大小はあれど、ある範囲で閉じられたネットワークです。
なので、ネットワーク全体を管理することができます。
企業でしたら、システム部の方々が頑張っていることですね。
どのコンピューターや機器がネットワーク参加しているか、各サーバーや機器の状況など・・・
ではインターネットはどうでしょう。

### インターネット
インターネットは世界中のネットワーク同士を繋いで地球規模のネットワークとして作り上げたものです。
参加する条件さえ整えれば誰でも参加できる、『開かれた』ネットワークなのです。
インターネットは全体を管理している団体もありません。

### インターネットとは
インターネットのことを、一言で言うと『管理されていない超巨大WAN』と表現しましたが、
範囲で言うと大きいと言う意味でWANですが、管理されていないと言う意味ではWANやLANではありません。
まあ超巨大なネットワークですね。

### インターネットとイントラネット
インターネットとよく似た言葉に、イントラネットというものがあります。
要は、インターネットと同じTCP/IPを採用したLAN・WANのことをイントラネットと呼んでいます。
主には企業が社内ネットワークとして採用しています。

### LANとインターネット
:thinking:『LAN・WAN・インターネットの違いはわかったけど、LANを使ったらインターネットに接続できるやん、なんで？LANは閉じられたネットワークじゃないの？』
確かにLANは閉じられたネットワークです。
LAN内部にインターネットを利用するためのサービスを提供するサーバーや機器があり、各PCの代わりにインターネット接続の役割を担っているんですね。
ですので、LANに繋いだだけだと本当の意味ではインターネットに接続することはできないんです。


---

1章については以上です。
かなり噛み砕いている分、特にインフラ系の方にとっては語弊がある表現をしているかもしれません。
2章に関してはまた投稿します〜:tulip: