はじめに
開発したアプリをサーバーにデプロイする際に、ネットワークの知識が必要だと思い、学習した内容を記録します。
ネットワークとは?
コンピューターー(パソコンなど)同士がつながって情報のやり取りができるようになった状態。
家庭内や社内など、近くのコンピューターをつなげたネットワークをLAN
、遠くにあるコンピューターをつなげたネットワークをWAN
という。
サーバーとクライアント
ネットワークに属するコンピューターのうち、何らかのサービスを提供する側をサーバー、サービスを受け取る側をクライアントと呼ぶ。
Webサービスの場合、サーバー側の仕事はクライアントからリクエストを受け取り、Webページのデータを送る。
クライアント側の仕事はサーバーにリクエストを送り、返事として送信されたデータをWebページに表示する。
コンピューターネットワークの階層
階層名 | 役割 | プロトコル |
---|---|---|
アプリケーション層 | Webや電子メールなどのサービスをクライアントに提供する | サーバ、クライアント、HTTP、SMTP、POP3、FTP、SSHなど |
トランスポート層 | アプリケーション層とインターネット層を仲介し、データを正しく届けるための手配をする | TCP、UDP |
インターネット層 | IPアドレス(コンピューターの住所)を手掛かりにデータを届ける | IPアドレス、IPv4、IPv6、ICMP、ルーティング |
ネットワークインターフェース層 | 通信用のハードウェアを制御して、実際にデータを伝達する(ネットワークカード、LANケーブルなど) | イーサネット、無線LAN、PPPなど |
上記の4つの階層のうちアプリケーション層はサービスを提供し、他の3つは通信機能を担当している。
通信ルールを決めているプロトコル
プロトコルとは、通信ルールをまとめた仕様書みたいなものでそれ自体が仕事をするわけではない。
ネットワークの階層ごとにプロトコルが定められており、それらが組み合わさって動くことで通信が成り立っている
例
・アプリケーション層 HTTPというプロトコルに従って動くように作られているWebブラウザ
・トランスポート層、インターネット層 TCP/IPというプロトコルに従って動くように作られたOS内(Win, Mac)の通信プログラムなど
おわり
さらに深堀していくとさまざまなネットワークの階層、プロトコルなどがあるので次回以降さらに階層ごとの詳細、プロトコルについてまとめていきたいと思います。
参考文献
第2版 スラスラわかるネットワーク&TCP/IPのきほん
https://www.amazon.co.jp/スラスラわかるネットワーク-TCP-IPのきほん-第2版-リブロワークス/dp/4797396075/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=&sr=