ネットワーク／インフラ開発の基礎

# 概要
- 1週目 ネットワークはなぜつながるのか？
<br>第1章 webブラウザがメッセージを作る
<br>第2章 TCP/IPのデータを電気信号にして送る
<br><br>
- 2週目 ネットワークはなぜつながるのか？
<br>第3章 ケーブルの先はLAN機器だった
<br>第4章 アクセス回線を通ってインターネットの内部へ
<br>第5章 サーバー側のLANには何がある
<br>第6章 webサーバーに到着し、応答データがwebブラウザに戻る 
<br><br>
- 3週目 絵で見てわかるITインフラの仕組み
<br>CHPTER1 インフラアーキテクチャを見てみよう
<br>CHAPTER2 サーバーを開けてみよう
<br>CHAPTER3 3階層型システムを見てみよう
<br>CHAPTER4 インフラを支える理論の基本
<br><br>
- 4週目 絵で見てわかるITインフラの仕組み
<br>CHAPTER5 インフラを支える理論の応用
<br>CHAPTER6 システムをつなぐネットワークの仕組み
<br>CHAPTER7 止めないためのインフラの仕組み
<br>CHAPTER8 性能を引き出すためのインフラの仕組み
<br><br>
- 5週目 絵で見てわかるITインフラの仕組み


# 1週目 ネットワークはなぜつながるのか？
■サーバーへアクセスする際、webサーバー⇒HTTPプロトコル、FTPサーバー⇒FTPプロトコルを使う。
■URLの見方
（例）http://www.lab.glasscom.com/dir1/file.html
     「http：」・・・プロトコル名
　   「//」・・・後に続く文字列がサーバーの名前であることを表す
　   「www.lab.glasscom.com」・・・webサーバー名
　   「dirl/file.html」・・・ファイルのパス名
■URLで末尾が「/」で終わっているものはフォルダ名を表すことが分かる。「/」がないものはファイル名orフォルダ名を表す
■HTTPには様々なメソッドがあり、各動作が割り振られている。
「GET」
　HTTPでwebサーバーにアクセスして情報を読み出すときなどに使うメソッド。
「POST」
応募フォームに入力したデータをサーバーに送る際などに使うメソッド。

etc...

■サーバー側にメッセージを送ると、レスポンスメッセージが返ってくる。その先頭部分には実行結果が正常に終わったかを表すステータスコードが記載されている。
「2xx」
正常終了。
「4xx」
クライアント側のエラー。
「5xx」
サーバー側のエラー。

etc...

■DNSサーバーへIPアドレスを問い合わせる時には、Socketライブラリの「リゾルバ」を利用する。

■各DNSサーバーは階層上になっており、最上位のルート・ドメインのDNSサーバーからドメインの階層を下にたどっていき目的のサーバーにたどり着く。

■データの送受信は下記の流れで行われる
1. ソケットを作る
2. サーバー側のソケットにパイプをつなぐ
3. データを送受信する
4. パイプを外してソケットを抹消する
※ソケットとはデータの出入口のようなもの

⇒ソケットの内容を一覧表示するコマンド
コマンドプロンプトで「netstat -ano」と入力。

■データの各パケットの先頭にはTCPヘッダーという制御情報が記載されている。この情報にポート番号や、データが何番目まで届いたのか？といったことが記載されている。

■データの送受信のやり取りについて
クライアント側からSYNビットの情報を送り、サーバー側からは応答としてACKビットの情報が送られてくる。これを繰り返すことでやり取りが行われる。

■ウインドウ制御方式は、パケットを１つ送った後ACK番号を待たずに連続してパケットを送る方式でACK番号を毎回待つ時と比べて無駄がなくやり取りが出来る。

■MACアドレスを調べる方法
コマンドプロンプトで「arp -a」と入力。

# 2週目 ネットワークはなぜつながるのか？
■LANケーブル（ツイストペア・ケーブル）には周囲の雑音を防ぐ工夫がされている。２本の信号線を撚り合わせることで、モーターやディスプレイ等の機器からの電磁波、隣り合う線からの電磁波などを軽減している。

～豆知識～ UTPケーブルとSTPケーブル
一般的に、LANケーブルとして代表的な通信用電線として、UTPケーブルとSTPケーブルがあります。UTPケーブルは非シールド対撚り線、STPケーブルはシールド対撚り線と呼ばれています。
UTPケーブル、STPケーブルのどちらも、構内LANを構築するために使用される通信用ケーブルであり、インターネットを基本とした通信インフラにおいて、無くてはならない通信用ケーブルのひとつとなっています。

-UTPケーブルとは
構内LANで広く使用されているUTPケーブルは、ツイストペアケーブルとも呼ばれ、2対の電線をペアにした4組で構成されているケーブルです。単純にLANケーブルとも呼ばれています。シールド保護されていないLAN用の通信用ケーブルで、家庭用・事務所など、一般的な構内LAN用ケーブルとして広く使用されています。
-STPケーブルとは
STPケーブルは、シールドが施されたUTPケーブルであり、特にノイズ発生源の多い工場など特殊用途で採用されることがあります。UTPケーブルほど普及しておらず、採用範囲は限定されています。

■ルーターについて
-ルーターは「中継部分」「ポート部分」の２つで構成され、中継部分がパケットの中継先を判断し、ポート部分がパケットを送受信する操作を担当する。
-ルーターの各ポートにはMACアドレスとIPアドレスが割り当てられている。
-ルーターは「IPアドレス」で中継先を判断する。（経路表にしたがってパケットを中継する）

■パケットについて
パケットには有効期限があり、期限が切れるとルーターが破棄する。
-仕組み
TTL（Time To Live：生存期限）というIPヘッダーの情報を利用する。ルーターを経由するたびにこの値を1減らしていき、0になるとパケットを破棄する。
-なぜこんな仕組みが必要？
ルーターを経由している間に何らかの理由で上手く送信原にたどり着けないパケット（ループしてしまうなど）が出てきてしまった場合にパケットが溜まり続けてしまうため

■アドレス変換
全ての機器に固有なグローバルアドレスを割り当てると、将来アドレスを使い切ってしまう可能性があるため、プライベートアドレスが使われている。
プライベートアドレスは、ローカルネットワーク（会社の場合は社内）のネットワークで使うアドレス。下記が割り当てられている。
 10.0.0.0～10.255.255.255
 172.16.0.0～172.31.255.255
 192.168.0.0～192.168.255.255

上記の範囲はプライベートアドレスのルールを作るまで未使用だったグローバルアドレスの中から選んだもの。

-アドレス変換の仕組み
パケットを中継するときにIPヘッダーに記載されているIPアドレスとポート番号を書き換えるというもの。

■ルーターのパケットフィルタリング機能
パケットを中継する際にMACヘッダー、IPヘッダー、TCPヘッダーに記載されている情報を調べて中継するor棄てるの動作を行うというシンプルな仕組み。
この機能により、インターネットから入ってくるパケットをフィルタリングすることが出来る。

■アクセス回線とは？
インターネットと家庭や会社のLANを結ぶ通信回線のこと。
一般家庭だとADSL、FTTH、CATV、電話回線など

■パソコンからインターネットへのパケットの流れ
PC
↓
インターネット接続用ルーター
↓
ADSLモデム　※パケットをATMセルに分割し電気信号に変換
↓
DSLAM ※電気信号をATMセルに戻して送信
（電話局用集合モデム）
↓
BAS ※ATMセルをパケットの形に戻す
（ブロードバンド・アクセス・サーバー）
↓
ルーター
（トンネリング用）
↓
インターネット

■スプリッタについて
ADSLモデムで電気信号に変換したセルはスプリッタという装置に入ります。スプリッタでは電話回線の信号とADSLの信号を分ける役割をする。

■光ファイバについて
シングルモードとマルチモードの違い。
-シングルモード
シングルモードはモードフィールド径9.2μmの極細径であり、光信号の伝播をひとつのモードにすることで、減衰を極力抑えています。MMFのように多くのモードを使用する伝送方法と違い、信号の到達時間がひとつしかないため、モード損失の発生がありません。よって長距離・高速伝送に適しています。
長距離LANに使用されることも多く、伝送距離は1～10km以上という超長距離の敷設が可能とされていますが、ファイバ接続が困難であることや、ネットワーク機器に制限があり高価となりがちという欠点があります。
-マルチモード
マルチモードはコア径50μm・62.5μmが採用されており、光信号を複数のモードで伝送するため、信号の到達時間にズレが生じ、モード分散が発生します。モード分散によってデータ損失が発生するために、SMFほどの長距離・高速伝送は不向きです。
伝送距離は550m以下となるため、構内用光ケーブルとして利用されるのが一般的です。光ファイバーの接続が容易で、ネットワーク機器が安価に揃えられるという特徴があるため、構内用としての利点を数多く備えています。

■webサーバーの設置について
一般的にwebサーバーとネットワークの間にファイアウォールを設置する。
または、サーバーを通信事業者などが所有するデーターセンターに設置する場合もある。

■ファイアウォールについて
一般的にパケットフィルタリング型が主流となっている。
IPアドレス、ポート番号、コントロールビットなどでパケットを通すか棄てるかを判断する。

■サーバーの負荷分散
サーバーの前にロードバランサー（負荷分散装置）を設置し、複数のwebサーバーにアクセスを振り分ける。
webサーバーの代わりにロードバランサーをDNSサーバーに登録しておき、DNSサーバーからのリクエストをロードバランサーで振り分ける。

# 3週目 絵で見てわかるITインフラの仕組み
■集約型アーキテクチャと分散型アーキテクチャ
-集約型
メリット：１台の大型コンピュータで済むため、構成がシンプル。大型コンピュータのリソース管理や冗長化により信頼性が高く、かつ高性能。
デメリット：大型コンピュータの導入コストと維持コストが高い。また、拡張性に限界がある。

-分散型
メリット：安価にシステムを構築できる。また、拡張性が高い。
デメリット：台数が増えることで管理の仕組みが複雑になる。また、１台が壊れた場合の管理の仕組みの検討が必要。

■垂直分散型アーキテクチャ
-クライアントサーバー型アーキテクチャ
業務アプリケーションやミドルウェアなどのソフトウェアを物理サーバーにて動かし、それらのソフトウェアに対して「クライアント」または「端末」からアクセスし利用するもの。特徴としてはクライアント側に専用ソフトウェアを用意する必要があること。

-3階層型アーキテクチャ
クライアントサーバー方を発展させたもの。下記の3つの層に分割されている。

「プレゼンテーション層」
　ユーザーからの入力を受け取り、webブラウザへの画面表示を行う。
「アプリケーション層」
　ユーザーからのリクエストに応じて業務処理行う。
「データ層」
　アプリケーション層からのリクエストに応じて、データの入出力を行う。

■サーバーの設置時に重要な情報は？
-サーバーのサイズ（U）
-消費電力(A)
-重量(Kg)

■CPUとは？
コンピュータの制御や演算や情報転送をつかさどる中枢部分。中央処理装置。各装置の制御やデータの計算・加工を行う装置。メモリに記憶されたプログラムを実行する装置で、入力装置や記憶装置からデータを受け取り、演算・加工した上で、出力装置や記憶装置に出力する。

■メモリとは？
コンピュータを構成する装置の一つで、CPUなどから直接読み書きすることができる記憶装置のこと。

■帯域とは？
本来は周波数帯域のことを指すが、ITインフラではデータ転送能力を指す。

■3階層システムについて
3階層システムとは、クライアントサーバシステムを「プレゼンテーション層」「アプリケーション層」「データ層」の3層に分割して構築したシステム。クライアントおよびサーバの処理を複数の階層に分離して配置することで、ある階層へ変更を加える必要が生じた際にも柔軟に対応できるようなっている。

■OSカーネルとは？
カーネルとは、OS（オペレーティングシステム）の中核を構成するソフトウェア。動作中のプログラムの実行状態を管理したり、ハードウェア資源を管理してアプリケーションソフトがハードウェアの機能を利用する手段を提供したりする。

■直列と並列について
直列処理のスピードを上げるには限界がある。
並列化することで、スピードは上がらないが、単位時間当たりの仕事量を増やすことができる。

■同期と非同期
-同期
依頼した仕事が終わったかの確認が容易なためシンプルで実装しやすい。一方で依頼した処理が終わるまで待つため待っている時間を有効活用できない。
-非同期
依頼した処理を待っている時間を効率的に使って並列処理ができる。一方で依頼した処理が終わっているか確認しないと分からないため、やりとりが増える。仕組みが複雑になり実装の難易度が高い。

# 5週目 絵で見てわかるITインフラの仕組み
■キャッシュとは？
キャッシュ（cache/キャッシング/caching）とは、使用頻度の高いデータを高速な記憶装置に蓄えておくことにより、いちいち低速な装置から読み出す無駄を省いて高速化すること。また、その際に使われる高速な記憶装置や、複製されたデータそのもののこと。

-特徴-
・データの一部が出力先に近い地点に一時的に格納される
・データが再利用されることが前提

■割り込みとは？
何か別の処理を中断し、急遽別の処理をすること。
具体的にはパソコンのキーボードで文字入力をするのも、割り込みの処理。
定期的にポーリングを行うよりも割り込みの方が効率が良いため、使われている。

■ポーリング
定期的な問い合わせのようなイメージ。

-特徴-
・問いかけが一方的
・問いかけは定期的であり、一定間隔に行われる

-メリット-
・ループするだけなのでプログラミングが容易
・相手が応答するか確認に使える
・まとめて一括処理ができる

■ピンポン
データを運ぶ際に、一回に運べる量が適切であれば一度で送ることが出来るが、運べる量が少ない場合何度かに分けて運ばなければならない。このようにデータを運ぶ際に必要以上の往復をしてしまっていることをピンポンと呼ぶ。

■ジャーナリング
ジャーナリングとはトランザクションや日歩更新されるデータの変更履歴のことを指す。ジャーナルを残すことをジャーナリングという。

-特徴-
・データ自身ではなく、処理の内容が記録される
・データの一貫性や整合性取れた時点で不要になる
・データ復旧時のロールバック＆ロールフォワードに利用される

■レプリケーションとは？
データベース管理システムが持つ機能の一つで、あるデータベースとまったく同じ内容の複製（レプリカ）を別のコンピュータ上に作成し、常に内容を同期させる機能。 負荷分散や耐障害性の向上などを目的に行われる。

-特徴-
・障害時のデータ損失を予防する
・複製による負荷分散を行うこと

■マスター・スレーブ
複数の機器が協調動作する際に、複数機器の制御・操作を司る「マスター」機と、マスター機の一方的な制御下で動作する「スレーブ」機に役割を分担する方式のこと。

-特徴-
・一人が管理者になり、そのほか全てを制御するということ
・逆はピアツーピア

■圧縮
データ圧縮の基本は、重複の認識とその置き換え。

<br><br><br>








# 参照書籍
「ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識」
[リンク](https://www.amazon.co.jp/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%AA%E3%81%8C%E3%82%8B%E3%81%AE%E3%81%8B-%E7%AC%AC2%E7%89%88-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84TCP-IP%E3%80%81LAN%E3%80%81%E5%85%89%E3%83%95%E3%82%A1%E3%82%A4%E3%83%90%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E6%88%B8%E6%A0%B9/dp/4822283119)
「絵で見てわかるITインフラの仕組み」
[リンク](https://www.amazon.co.jp/dp/B00ESXY9HK/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)

# 個人課題
ページ上での動画のストリーミング配信一連を行う。
（簡易再生ページ作成、エンコーダー使用）
　⇒個人でリアルタイム動画配信、エンコード等の一連を行えるようになる
進捗：80%

■エンコードから配信まで一連
Akamaiの管理画面より、動画のエントリーポイントを作成
↓
エンコーダー（Elemental）にて新規イベントを作成
↓
エンコーダーにAkamaiのエントリーポイントURLを設定
↓
エンコーダーへの入力ソースとしてSDIの映像信号、またはNASのmp4ファイルを指定
※3つのレンディション（low,mid,high）で再生されるようにプレイリストを作成しておく
↓
エンコーダーより、HLS形式にて出力
↓
VLCプレイヤーへ再生URLを入力して再生確認。

■AWSを使ってみる
Amazon S3でバケット作成
↓
Amazon Elastic Transcoderで動画ファイルをトランスコード
↓
Amazon S3のバケットにトランスコードファイルが出来る
※今回はwmv形式のファイルを⇒HLSに変換
↓
Amazon S3上に簡易の再生ページを作成
↓
再生確認