図解入門TCP/IPを読む (1章前半)

## 前書き
### 動機
+ 資格勉強を通じてネットワークに興味を持った
+ 知識を蓄えるだけではなく、活用したいと思うようになった

### 目的
+ 本を読んでいて印象に残った箇所をブログという形でアウトプットすることによって
定着を図る
+ 通読後、または途中でCisco Packet Tracenoを使用してネットワーク構築を行う予定

# 本編
## 1章　ネットワークの基礎
### 1-1 ネットワークとは
#### 1.1.1 ネットワークの歴史
ネットワークの原型は1960年代にアメリカで誕生し、TSS(Time Sharing Sytem)方式で使用
されていた。
複数のクライアント端末から大型コンピューターに命令が来た際は、クライアントAからの
命令を全て処理してからクライアントBの命令に取り掛かるという流れだろうか。
70年代からは現在のインターネットの元祖となる「**ARPANET**」が開発される。このネットワークでは**パケット交換方式**が採用された。

#### 1.1.2 回線交換方式とパケット交換方式
**回線交換方式**
メリット
+ 安定した通信品質
+ 仕組みがシンプル

デメリット
+ 通信効率が悪い
+ 通信中の際、他の機器は通信不可

**パケット交換方式**
メリット
+ 回線を共有するので通信効率が良い
+ パケットが壊れた場合でも、全てのデータを再送する必要がない

デメリット
+ 1つの回線を複数人で使用するため、通信速度が落ちる場合がある

### 1-2 通信する時のルールがプロトコル
#### 1.2.1 プロトコルで決まっていること
+ 物理的な仕様
有線LANのコネクタの形や無線LANの電波の周波数
+ 送信相手の特定
機器に割り振られたIPアドレスを基に送信相手を区別
+ パケットの転送
パケットを相手先に届ける。パケットに付与しているヘッダー情報の定義
+ 信頼性の確立
ネットワークの制御
+ セキュリティの確保
正式な通信相手であることを認証し、通信の暗号化の提供する

#### 1.2.2 プロトコルは階層で整理する
Google検索の場合、利用者は上の階層(単語を検索欄に入力)から処理を行い、パケットをGoogleサーバに送信する。Googleサーバは下の階層から処理し、利用者が入力した単語を受け取り、最終的に検索結果を返す。

#### 1.2.3 二つの階層モデル
TCP/IP参照モデルとOSI参照モデルについての紹介
**TCP/IP参照モデル** 
+ アプリケーション層
アプリケーションのルール
+ トランスポート層
アプリケーションの識別及び通信制御
+ インターネット層
異なるネットワークにある端末との接続性確保
+ ネットワークインターフェース層(リンク層)
同じネットワークにある端末との接続性確保

**OSI参照モデル** 
+ アプリケーション層
アプリケーションのルール
+ プレゼンテーション層
アプリケーションデータを通信できる方式に変換
+ セッション層
論理的な通信路の確保
+ トランスポート層
アプリケーションの識別及び通信制御
+ ネットワーク層
異なるネットワークにある端末との接続性確保
+ データリンク層
同じネットワークにある端末との接続性確保
+ 物理層
デジタルデータを電気・光信号、電波に変換し、ネットワーク層に渡す

この本では、OSI参照モデルのアプリケーション層とプレゼンテーション層、セッション層をまとめて1つにした5階層で説明する模様。

#### 1.2.4 標準化団体がプロトコルを決める
**IEEE**
電気技術や通信工学などの分野を専門に研究する「電気電子技術学会」の略称。
ハードウェア寄りのネットワーク技術(Ethernetや無線LAN)の標準化は「IEEE802委員会」で
研究・議論されている。

**IETF**
インターネットに関連する技術の標準化を推進する任意の組織。
ソフトウェア寄りのネットワーク技術のほとんどがをこの組織が策定している。IETFが標準化したルールはRFCという文書で公開される。更新があった場合は新しい番号が付与される。

#### 1.2.5 各階層が連携して動作する仕組み
下の階層を移動する際、ペイロードにヘッダーを付与してから渡す。この処理を**カプセル化**という。反対に相手側は上の階層を移動する際、ペイロードからヘッダーを削除してから渡す。この処理を**非カプセル化**という。

データ転送には**コネクション型**と**コネクションレス型**の二つがある。
**コネクション型**
メリット
+ 事前に相手に相通確認を行うので、確実にデータを転送できる

デメリット
+ 手順をきちんと行うため、若干時間がかかる

**コネクションレス型**
メリット
+ 手順を省いているため、転送時間が早い

デメリット
+ 相手の疎通確認をしないので、データが届いていないことがある

### 1-3 ネットワークを構築する危機
#### 1.3.1 物理層で動作する機器
ケーブルやコネクタの形状など物理的な仕様についてを定義されている。
+ NIC(Network Interface Card)
PCやサーバなどをネットワーク接続するための必要な部品。すべてのネットワーク端末はNICを使用して、LANケーブルや無線にパケットを載せる。

+ リピーター
電気信号の伝送距離を超えて崩れた波形を増幅して整える機器。最近は光ファイバーケーブルの普及によって使用されなくなっている。

+ リピータハブ
受け取ったパケットのコピーを接続している全ての機器に転送する機器。別名バカハブ。レイヤ2スイッチの台頭によって見る機会が少なくなった。

+ メディアコンバータ
電気信号と光信号を相互変換する機器。電気信号を100m以上延伸したい時に使用する。接続する機器と機器の間にメディアコンバータを挟む。

+ アクセスポイント
パケットを電波に変調・復調する機器。

#### 1.3.2 データリンク層で動作する機器
+ ブリッジ
端末から受け取ったMACアドレスを「MACアドレステーブル」という表で管理し、転送処理を行う。この処理を「ブリッチング」という。
現在はL2スイッチに置き換えられている。

+ L2スイッチ
スイッチングハブやスイッチと呼ばれることがある。ブリッジと同じように、端末から受け取ったMACアドレスを「MACアドレステーブル」という表で管理し、転送処理を行う。この処理を「L2スイッチング」という。
ポートの数が多い(数十から数百)ので汎用性が高く、ほぼ全ての有線接続機器はL2スイッチを介してネットワークに接続しているといっても過言ではない。

#### 1.3.3 ネットワーク層で動作する機器
+ ルーター
端末から受け取ったIPパケットのIPアドレスを見て、自分が所属しているネットワークとは異なるネットワークに属する端末へ情報を届ける。その際、最適な経路を選択することを**ルーティング**という。
ルータは**ルーティングテーブル**という表に記載された経路情報を基にパケットの受け渡し先を管理している。
　他にも、プライベートIPアドレスとグローバルIPアドレスを書き換えるNAT(IPマスカレード)やインターネット上に仮想的な専用線を構築するIPsec VPN、NTT社のフレッツ網と接続するときに使用するPPPoEなどの機能がある。
 + L3スイッチ
 L2スイッチに機能を追加したような機器。伝送媒体やアクセス制御方式が異なるLAN同士を接続できる。

 #### 1.3.4 トランスポート層で動作する機器
 + ファイアウォール
 ネットワークの安全を守る機器。パケットのIPアドレスやポート番号を見て、通信を許可・遮断を行う。この通信制御機能を「ステートフルインスペクション」という。

 #### 1.3.5 アプリケーション層で動作する機器
 + 次世代ファイアウォール
 ファイアウォールの進化版。ステートフルインスペクションに加え、IDSやIPS、VPNなどのセキュリティ機能を統合している。様々な情報をアプリケーションレベルで解析することにより、高次元のセキュリティ、運用管理性を実現している。
 + WAF
 Webアプリケーションに対する攻撃を監視し、安全を守るための機器。クライアントとサーバー間でやり取りされる情報を検査し、SQLインジェクションやクロスサイトスクリプティングで入力された不正な操作やコマンドを遮断する。

 + 負荷分散装置(L7スイッチ)
 サーバの負荷を分散する装置。クライアントからのパケットを「負荷分散方式」に基づき、複数のサーバーに振り分けることで、システムの全体の処理能力の拡張を図る。
 また、「ヘルスチェック」と呼ばれる、定期的な監視によって障害が発生したサーバを負荷分散対象から切り離し、サービスの可用性向上も図れる。

 # 所感
 + 今から60年ほど前にインターネットの原型が確立されていたのは驚いた。「ARPANET」の仕組みについても調べていきたい
 + TCP/IP、OSI参照モデルの各層の役割の違いについて曖昧なところがある。この分野は重要なので人に説明できるレベルまで持っていきたい
 + この書籍では「ハブ」は物理層で使用する機器を定義しているが、現場ではデータリンク層で使用されるスイッチングハブを略して「ハブ」と呼ぶことがある。各機器の意味の違いも情報収集を行っていきたい