読書：ネットワークはなぜつながるのか

## 第1章
重要ワード
URL: アクセスすべきWebサーバーとファイル名が埋め込まれたもの。

HTTP: 「何を」「どうして欲しいのか」という依頼を受けて、ブラウザに結果を返すプロトコル。

URI: 「何を」の部分に相当するもの。例えばファイル名などをURIに記入される。
メソッド：「どうして欲しいのか」に相当するもの。代表的なメソッドは、URLで指定した情報を取り出すGETやクライアントからサーバにデータを送信するPOST。

ステータス・コード：実行結果が正常か異常かを表すもの。

リクエスト・ライン：Webサーバに「どうして欲しいのか」を伝える部分。

メッセージ・ヘッダー：リクエスト・ラインに書き切れなかった細かい部分を伝えられる場所。

メッセージ・ボディ：クライアントからサーバに送信するデータを表す。POST使用時に利用される場所。

レスポンス・メッセージ：Webサーバから送り返されるデータ。

サブネット：色々な情報がつまったパケットを中継するハブに複数のPCが接続されたもの。

ルーター：色々な情報がつまったパケットを中継する装置の一種。

ネットワーク番号：○丁目に当たる部分。

ホスト番号：△番地に当たる部分。

IPアドレス：ネットワーク番号とホスト番号が組み合ってできたもの。○丁目△番地。
このアドレスでどこにメッセージを送信したら良いか判断できる。

TCP/IP：ブラウザからメッセージを送信したら、サブネットにあるハブがメッセージを送り、一番近くのルーターに届ける。そしてルーターがメッセージを届ける相手を見定め、次のルーターを判断し、そこに届けるように指示して送信動作を実行すると再びサブネット内のハブがそのルーターまでメッセージを届けてくれる。これを繰り返すことで最終的に相手に届く。これが基本的な考え方。

ネットマスク：IPアドレスの内訳を表すもの。

ブロードキャスト：サブネット上のすべての機器にパケットを送信すること。

DNS：ドメインでIPアドレスを調べ、見つけてくれる技術。

ドメイン：例）example.com

IPアドレス：例） 255.255.255.255

DNSリゾルバ：問い合わせたいドメインを投げると、最寄りのDNSサーバーを探して問い合わせて、その結果として得られたもの（例えば、IPアドレス）を返してくれる。

ネーム・リゾリューション：DNSの仕組みを使用して、IPアドレスを調べること。

ライブラリ：プログラムの部品集。

Socketライブラリ：TCP/IPの機能を呼び出すためのプログラム。

プロトコル・スタック：郵便物のラベル。人間で言う脳に相当するOS内部に組み込まれたネットワーク制御用ソフトウエア。

制御：一つの活動が終わり、別の活動に移ること。

リソース・コード：設定ファイルに登録した一件分の情報。

トップレベル・ドメイン：comやjpのドメイン

ルート・ドメイン・トップレベル・ドメインの上にあるドメイン。

キャッシュ：一度使用したデータを、データ利用する場所に近いところの高速な記憶装
置に保管し、2回目以降の利用を高速化する技術。

ソケット：データの出入り口

アプリケーション・プログラム：ブラウザ

ディスクリプタ：番号札のようなもの。ブラウザに2つのウインドウが開いていた時、2つのソケットが作られます。一つ一つのソケットを識別する必要があり、デイスクリプションはそれを可能にする技術。

ポート番号：どのソケットと接続するのか示すもの。

受信バッファ：受信したレスポンス・メッセージを格納するためのメモリー領域。アプリケーション・プログラム内部に存在する。

## 第2章
ネットワーク・アプリケーション：ブラウザ、メーラー、Webサーバー等のこと。

TCPプロトコル:　ブラウザやメールなどのデータ送受信。郵便物のラベルに記載されているもの。

UDPプロトコル:　短いデータ送受信

IPプロトコル：パケットを通信相手まで運ぶ技術。郵便物のラベルに記載されいるもの。

ICMP:IPプロトコルの中にあり、ICMPプロトコル　通信の際のエラー通知の役割

ARPプロトコル:IPプロトコルの中にあり、 IPアドレスに対応するMACアドレスを調べる

MACアドレス　IEEEで標準化されたアドレス。

LANアダプタ：ケーブルに対して信号を送受信する動作を実行する

LANドライバ：LANアダプタをコントロールするもの。

ヘッダー：パケットの先頭部分。

通信動作に用いる制御情報：2種類あり、1つはヘッダーに書き込まれるデータ。もう一つは、ソケットに記録し、プロトコル・スタックの動作をコントロールするための情報。

コントロール・ビット：TCPヘッダーのフォーマットの一つ。コントロール・ビット内の各ビットがそれぞれ通信制御上の意味を持つ。SYNは送信側と受信側で連番を確認しあう。これで接続動作を表す。ACKで、欲しいデータがきたかを確認できる。シーケンス番号は、パケットの先頭位置のデータが送信データの何バイト目にあたるのか送信側から受信側に伝えるもの。

コネクション：ブラウザ側とサーバ側のソケットが繋がっている状態。

MTU： １パケットで運べる最大長。1500バイト

MSS： ヘッダーを除く、１パケットで運べるTCPのデータの最大長

タイムアウト値：ACK番号が返ってくるのを待つ時間。

ウインド制御：パケットを1つ送った後、ACK番号を待たずに連続して複数のパケットを送る方法。

ウインド・サイズ：受信可能なデータ量の最大値。

パケット：宅配物のようなもの。パケットには、宛名に相当するヘッダーと贈り物に相当するデータで構成されている。

MACヘッダー：イーサネット用のヘッダーで、MACアドレスを記載する

IPヘッダー：IPプロトコル用のヘッダー、IPアドレスを記載する

デフォルト・ゲートウェイ：IP陽の表である経路表の一番上に位置する箇所には、目的地とネットマスクが登録されている。その部分がデフォルト・ゲートウェイを表している。

プロトコル番号：パケットがどこから来たのかを表す値

イーサ・タイプ：内容物が何かを表すもの

ARP:イーサネットのブロードキャストを利用し、繋がっている全員に「このIPアドレス
をもっていませんか」と問いかけ、MACアドレスを見つける仕組み。

ARPキャッシュ：一度調べた結果はメモリ領域に保存・利用される

イーサネット：トラックや船等に相当するもの。多数のコンピュータが様々な相手とやり取りする通信技術

PHY(MAU)回路：MAU回路が送信した信号の形式を変換し、ケーブルに送り出す場所

MAU回路：共通形式の信号を作成。

第3章
ツイストペア・ケーブル：LANケーブルの一種。信号を弱める雑音の影響を抑えるもの。通信障害を起きにくくする。

リピータ・ハブ： 一台のパソコンに送られたデータを繋がっている全てのパソコンに送信。

リピータ回路：入ってきた信号をリピート・ハブのコネクト部分に送信。

MDI/MDI-X：リピータ・ハブのコネクト部分に付けられた切り替えスイッチ。

スイッチング・ハブ： データの送り先を判断してからデータを送信。

ポート：コネクトとその内側にある回路部分。イーサネットやADSL等の規格に従って送受信を行う

MACアドレス・ケーブル：機器のMACアドレスとその機器がどのポートの先にあるのかといった情報が登録されている。

スイッチ経路：入力ポートと出力ポートを繋ぐ部分。

全2重モード：送受信が同時にできる性質。スイッチング・ハブには備わっている。

衝突：複数台のCPが同時に送信し、リピータ・ハブ内で信号が混ざり合い、信号が壊れる現象。

オート・ネゴシエーション：最適な伝達速度で送信する。

リンクパルス：相手にデータが流れていないことを伝える技術。

ルーター：郵便局の人みたい感じ。IPアドレスを調べる中継部分とパケットを送受信するポート部分で構成されている。

経路表：サブネット自体のIPアドレス、ネットマスクの値、ポート番号、IPアドレス、宛先IPアドレスに記載されている目的地が近いか遠いかを表すメトリックで構成されている。

TTL：パケットの生存期間を表す。

フラグメンテーション：パケットのサイズが出力側のパケット最大長を超える場合、パケットを分割し、長さを短くしてから送信する方法。

社内用のアドレス：プライベート・アドレス

グローバル・アドレス：プライベート・アドレス以外のアドレス。

アドレス変換：プライベート・アドレスをグローバル・アドレスに変換またポート番号も変換し、インターネットに公開できるようにする仕組み。

パケット・フィルタリング機能：MACヘッダー、IPヘッダー、TCPヘッダーに記載されているデータを調べ、事前に設定した条件を満たす場合のみパケットを中継し、それ以外は捨てるという動作を行うもの。

## 第４章　
アクセス回線: インターネットと家庭、会社のLAN(Local Area Network)を結ぶ通信回線のこと。

ADSL:　電話用の金属製ケーブルを使った高速通信技術
FTTH:　Fiber To The Home　光ファイバー
CATV:　ケーブルテレビ回線
ISDN:　公衆交換電話網等

ADSLモデル:　パケット受信し、更に細かく分解（ATMセル）
ADSLモデル:　電気信号に変換し、送信

DSLAM（電話局用集合モデム）　電気信号を受信し、ATMセルに戻して送信。
BAS（ブロードバンドアクセスサーバー）　ATMを受信、パケットに戻し、IPアドレスやら情報を取り出す。
ルーター（トンネリング用）:　インターネットに向けて送信

セル　ヘッダー情報５バイト、デジタルデータ48バイトの塊
ATM　電話回線を用いる通信技術のこと

FTTHの場合
光ファイバはADSLの電気信号に変換するところが、光の信号に変換するという部分が違います。

電気の速度より光の速度が早い。こっちは繋がってしまえばADSLよりうんと早い。さすが光。

トンネリング: クライアントとサーバーのソケットをつなぎパケットを運ぶ機能のこと。

本人確認と設定値通知: インターネットに接続するためにはユーザー情報とパスワードが欠かせない。

BASはそのログインのための窓口としての役割を担っている。

PPPoE : Point-to-Point Protocol over Ethernet。PPPという電話回線を用いた接続の発展系の仕組み。

PPPはシンプルに、プロパイダのアクセスポイントに電話をかけて、ユーザー名とパスワードを確認。
PPPoA: イーサネットのパケットに入れてセルにしていたところ、直接セルに突っ込んでやり取りする方式。

DHCP: PPPの代わりに使える仕組み。DHCPサーバーにクライアントが設定情報を要求して、DHCPサーバーが設定を返す。シンプル。その代わりユーザー情報やパスワードが無いため、プロパイダの変更ができない。

POP:POP Point of Presence
アクセス回線を通過したパケットはユーザーが契約しているプロパイダの設備にたどり着く。このルーターのことをPOPという。

NOC: Network Operation Center
POPから入ってきたパケットが集まってくる場所。ここから他のPOPへ流れ、目的のサーバーのある他のプロパイダへとパケットが流れていく。

## 第５章　
ファイアウォール: Webサーバーを悪意あるメッセージ送信やアクセスから守る仕組み。

パケット・フィルタリング: 要はパケットに含まれた情報をみて、AllowしたりDenyしたりするあれです。

フィルタする情報は下記の通り。

MACヘッダー　送信元、中継元のMACアドレスをチェック
IPヘッダー　IP制限するとかていうのは多分ここの情報を見てる
TCP，UDPヘッダー　送信元のポート番号や、宛先のポート番号など
ICMPのメッセージの中身　パケット送信中に発生したエラーのこと。このエラーを見て遮断したりできる

フォワード・プロキシ: クライアント側にプロキシ・サーバーを置く方式のこと。プロキシ自体はサーバーとクライアントの間を仲介する仕組み。それがクライアント側にあるのをフォワードプロキシというようです。

フォワードプロキシは出て行くリクエストを一度集約（キャッシュ)して、プロキシサーバーが代理でリクエストを出す仕組み。

この仕組を採用するとプロキシサーバーを一度経由しないとクライアントはサーバーにリクエストを投げれないです。

これで管理者が危険なサイトへのアクセスを制限したり、データの流出を止めたりできます。

ただ、ブラウザの設定画面からプロキシサーバーという項目の設定をすることが必須になります。面倒くさい。

リバース・プロキシ：フォワードプロキシの面倒から開放された仕組み。フォワードがクライアント側ならリバースはサーバー側にあるプロキシサーバーだと思えばOKです。

ブラウザは一度必ずプロキシサーバーを通るので

URIの解析　リダイレクトの設定
IPアドレスのフィルダリング
などをサーバー管理者側が挟ませることができる。便利。
リダイレクト　別のWebサーバーにアクセスするように仕向けること

## 第６章　
レスポンスを返す
リクエストがWebサーバに届く。リクエストに中身に書いてある要求に答えるべく、処理を進める

然るべき処理を終えると、通って来た道（サーバー側のプロトコル・スタック）に対して、レスポンス・メッセージを返す。パイプを通ってクライアントのもとへデータが送られる。

参考記事
https://qiita.com/mmusasabi/items/3527e31e1c5a9bc4101d