ネットワークの基礎について勉強した内容をまとめてみた

## きっかけ
なんとなく関連用語は基本情報技術者試験で見たことがあるけれど、いまいちわかっていないな...とずっと苦手意識を持っていたネットワーク。
そんな自分をちょっと成長させるべく先日数冊ネットワーク関連の本を読んでみて、初めて知ったことも多くありました。
本記事ではよくわかっていなかった基礎の部分について備忘録にまとめておこうと思います。

## 読んだ書籍・参考になったサイト
中にはさらっと目を通しただけのものもありますが、参考として書いておきます。
- 図解 いちばんやさしく丁寧に書いた ネットワークの本 / 岡田庄司 (2018 年 9 月 20 日発行)
- 本当にやさしく学びたい人の！絵解き ネットワーク超入門 / 増田若奈 (2019 年 8 月 6 日発行)
- TCP/IP の絵本 第 2 版 / 株式会社アンク (2020 年 6 月 25 日発行)
- TCP/IP のツボとコツがゼッタイにわかる本 / 豊沢聡 (2023 年 2 月 21 日発行)
- 日経 XTECH 図を見て学ぶネットワークの基礎 https://xtech.nikkei.com/atcl/nxt/column/18/00780/
- 3 分間 NetWorking http://www5e.biglobe.ne.jp/%257Eaji/3min/

## 1. 有線 LAN ケーブルと規格について
### ツイストペアケーブル
「ツイストペアケーブル」という用語は聞いたことがありましたが、具体的にどう使われているのかは知りませんでした (なんか適当にねじねじしてるのだろうなという浅すぎる理解)。

有線 LAN のツイストペアは、ノイズを防ぐために銅線をねじっているそうです。
それも、適当に 2 本をねじっているというわけではなく、パソコン側とハブ側で受信用と送信用のピンが決まっているらしく、対になるように結線しないといけないそうです。
詳しい結線方法まで理解したわけではないのですが、こちらのサイトにちょっと詳しそうな図が載っていましたので参考として掲載しておきます。

ランスルネット | ネットワークの基礎を覚える ③ツイストペアケーブルをマスターする
http://www.runsurunet.com/2017/09/15/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%82%92%E8%A6%9A%E3%81%88%E3%82%8B-3/

### ネットワークケーブルには種類があるらしい
| 種類 | CAT5 | CAT5e | CAT6 | CAT7 |
|:-:|:-:|:-:|:-:|:-:|
| 通信速度 | 100Mbps | 1Gbps | 1Gbps | 10Gbps |
| 適合するイーサネット規格 | 10BASE-T / 100BASE-TX | 10BASE-T / 100BASE-TX / 1000BASE-T | 10BASE-T / 100BASE-TX / 1000BASE-T /  1000BASE-TX | 10BASE-T / 100BASE-TX / 1000BASE-T /  1000BASE-TX / 10GBASE-T |

いきなり表を入れましたが、CAT とはカテゴリーのことだそうです。
実際に、自宅で使っている LAN ケーブルを見てみたら CAT6 と書いてありました。
これを知って、LAN ケーブルに書いてある意味不明な文字列が実は意味を持っていたのか...とわくわくしました。

### 有線 LAN の規格
前項の表の「適合するイーサネット規格」についても名前の意味がわかりやすかったので書いておきます。
例えば、**100BASE-TX** であれば **1 秒間に 100Mbit のデータを転送する**規格だそうです。
TX の **T** という文字は Twisted-pair のことで、**X** は ANSI X3T9.5 (ANSI : アメリカ国家規格協会) が定めた伝送方式のことだそうです。

Wikipedia にも最初の方に関連する説明があったので抜粋しておきます。
Wikipedia | Fiber distributed data interface
https://ja.wikipedia.org/wiki/Fiber_distributed_data_interface
> Fiber-distributed data interface (FDDI) は、LAN でデータ転送を行うための標準の一つである。
> 
> 概要
データ長は4500オクテット、最大ネットワーク長は200km、最大ノード間距離は2000m、最大接続端末は500台である。 FDDI プロトコルはトークンリングプロトコルをベースとして採用している。広大な地理的な地域をカバーすることに加えて、 FDDI による LAN は何千人ものユーザをサポートすることができる。標準的な構成として光ファイバーが使用される（銅線のケーブルを使用することも可能だが、その場合は CDDI となる）。 FDDI は二重リング構成になっており、トークンリング方式を使用する。
FDDI は ANSI, 米国規格協会 の X3-T9 が主になって標準化された。他のプロトコルを使用する LAN のOSI参照モデルに従う。 FDDI-II は FDDI の一種で、交換機のサービスをネットワークに加え、音声や映像などマルチメディアを扱うことができる。 FDDI ネットワークとひろがりつつある Synchronous Optical Network SONET との接続が始まった。

## 2. ルーターの機能
ネットワークについて勉強すると、いろんな技術やプロトコルが登場するのですが、どんな英単語の略称なのかという知識くらいしかありませんでした。
ルーターで利用されている機能について 3 つさらっとまとめてみます。

### DHCP (Dynamic Host Configulation Protocol)
必要な時だけ自動的に IP アドレスを割り振るプロトコルです。
IPv4 アドレス枯渇問題の関係で重宝されています。
![DHCP の図解](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2954427/55ef4fd2-736d-afd2-e3c7-395262ecf168.png "DHCP の図解")

文字が見づらいですが備忘録ですし手書きの方が早かったのでご容赦ください。
1. クライアントは送信元 IP アドレスを不定アドレス (0.0.0.0) に、宛先をリミテッドブロードキャストアドレス (255.255.255.255) にして DHCP メッセージをブロードキャストします。
1. DHCP サーバーがメッセージを受け取って、使ってよい IP アドレス (192.168.XX.Y) を返します。ただ、この時点ではまだクライアントに IP アドレスが割り当てられていないのでブロードキャストします。
1. クライアントは提示された IP アドレス (192.168.XX.Y) を使用するというメッセージを DHCP サーバーに送ります。
1. DHCP サーバーが確認応答を返したらやり取りが完了します。

IPv6 で IP アドレスを自動で割り振る場合は DHCPv6 を使う方法 (ステートフルアドレス自動設定) に加えて、ステートレスアドレス自動設定という方法もあるそうです。

### NAT (Network Address Translation)
IP アドレスを変換する技術です。
IP アドレスを変換すると、送信元のデバイスを特定するのが難しくなるため、セキュリティが向上するそうです。

送信元がプライベート IP アドレスになっているパケットを**外部に送るとき**は**送信元をグローバル IP アドレス**に変換します。
そして、返信などで宛先がグローバル IP アドレスになっているパケットが**外部から送られてきたとき**は**宛先をプライベート IP アドレス**に変換します。

便利な機能ですが、基本 NAT には、一時に通信できるホストの数がアドレス変換テーブルに用意できるグローバル IP アドレスの数までに限定されるという欠点もあります。
例えば、グローバル IP アドレスが 3 つ確保されているのであれば、3 台まではインターネットに接続できますが、4 台目はグローバル IP アドレスが空くまで待つ必要があります。

### NAPT (Network Address Port Translation)
グローバル IP アドレスの数が十分にないと困るという基本 NAT の欠点を解決する方法が NAPT だそうです。
NAPT は NAT ルーターに割り当てるグローバル IP アドレスを 1 つだけにして、ポート番号によってホストを識別します。
NAPT のことを IP マスカレードとも呼びます。

## まとめ
今回は一旦基本的な内容かつ理解が曖昧だったものを備忘録としてまとめてみました。
今度は TCP/IP のレイヤーごとに勉強した内容をまとめていきたいと思っています。
※ 誤りや補足などございましたらお気軽にコメントいただけますと幸いです。