コンピュータ・システム　ネットワーク

## トランザクション

- クライアントからサーバへのリクエストする
- リクエストを受けて、サーバが処理をする
- サーバからクライアントへレスポンスする
- レスポンスを受けて、クライアントが処理をする

## イーサネット・セグメント

ビルの部屋やフロアなど狭い範囲にまたがる

| 構成要素 | 説明 |
| - | - |
| ホスト | マシン。複数のクライアントやサーバを同時に動かすことができる。 |
| ケーブル | ホストのアダプタ、ハブのポートをつなぐ。 |
| ハブ | 各ポートで受信したすべてのデータを他のすべてのポートにコピーする。ハブで共有された情報はすべてのホストから見ることができるが、宛先ホストだけがそれを読み込む。 |
| フレーム | ホストが送り出すデータの塊。送信元、宛先、フレーム長を特定する固定ビット数のヘッダを含む。データのペイロードがそれに続く。 |
| イーサネット・アダプタ | 全世界で一意な48ビットのアドレスを持つ |

## ブリッジ・イーサネット

複数のイーサネット・セグメントをブリッジによって接続したイーサネット。
ビルやキャンパス全体にまたがる。ケーブルの帯域幅は異なることがある。

| 構成要素 | 説明 |
| - | - |
| ブリッジ | 分散アルゴリズムを用いて、自動的にどのホストがどのポートから到達可能かを学習し、必要なときだあるポートから別のポートへ選択的にフレームをコピーする。 |
| ケーブル | ブリッジとブリッジ、ブリッジとハブを接続する。ケーブルの帯域幅が異なることがある。 |

## インターネット

| 構成要素 | 説明 |
| - | - |
| ルータ | 任意のLANとWANを接続する。複数の互換性のないLANを接続することができる専用コンピュータ。 |
| ケーブル | LANとLAN、LANとWANを接続する。互換性のないものも接続できる。 |

## LANとWAN

| 用語 | 説明 |
| - | - |
| LAN | Local Area Network。ビルやキャンパスにまたがる。 |
| WAN | Wide Area Network。LANよりも地理的に広域。 |

## イーサネットとインターネット

| 用語 | 説明 |
| - | - |
| イーサネット | 任意のLAN |
| インターネット | 任意のLANとWANによって構成されるネットワーク。互換性のないテクノロジを用いた異なるLANとWANで構成される。 |

## インターネット・プロトコル

ここからはプロトコル・ソフトウェア層の話。

| 基本機能 | 説明 |
| - | - |
| 名前付けの体系 | ホスト・アドレスのための一定のフォーマット。各ホストはホストを一意に特定するインターネット・アドレスを少なくとも1つ割り当てられる。 |
| 配送メカニズム | フレームをパケットと呼ばれる別々の塊に詰め込むための統一した方法が定義されている。フレーム間の差異をパケットによって取り除く |

### パケット

| 構成要素 | 説明 |
| - | - |
| ヘッダ | 送信元のホスト、宛先ホストのアドレス |
| ペイロード | 送信元ホストから送られるデータを格納する |

## グローバルIPインターネット

インターネットのクライアントとサーバはソケット・インターフェース関数とUNIX I/O関数を組み合わせて用いて通信を行う。

| プロトコル | 説明 |
| - | - |
| IP | Internet Protocol。基本的な名前付けの体系、インターネットのあるホストから別のホストにデータグラムと呼ばれるパケットを送ることができる配送メカニズムを提供する |
| UDP | Unreliable Datagram Protocol。IPの拡張版。データグラムがホスト間ではなくプロセス間で転送される。 |
| TCP | Transmission Control Protocol。プロセス間で信頼性の高い全二重のコネクションを提供するために、IPの上に構築する複雑なプロトコル。 |

### インターネット・コネクション

| 用語 | 説明 |
| - | - |
| インターネット・アドレス | IPアドレスのこと。符号なし32ビット整数。 |
| ポート | 16ビット整数、サーバアプリケーションを特定する時に使用する番号、サーバ上で展開されているサービスの窓口 |
| ソケット・アドレス | コネクションの端点。インターネット・アドレスと16ビット整数のポートで構成される。アドレス:ポートという表記。カーネルによって自動的に割り当てられる。 |
| エフェメラル・ポート | クライアントがコネクション要求を行ったときにカーネルによって自動的に割り当てられる。 |
| ウェル・ノウン・ポート | サービスに永続的に関連付けられたサーバのソケット・アドレスのポート。ウェル・ノウン・ポートを用いるサービスにはウェル・ノウン・サービス名が関連付けられている。 |

#### ウェル・ノウン名

| ポート番号 | ウェル・ノウン名 | 一般的なポート |
|--:|:--|:--|
| 20 | FTP | ファイル転送サービス |
| 22 | SSH | Secure Shell |
| 23 | Telnet | TCP/IPネットワークを通じて別のコンピュータを遠隔操作するためのサービス |
| 25 | SMTP | メールの送信サービス |
| 80 | HTTP | WebブラウザとWebサーバとの間での転送で用いられるサービス |
| 110 | POP3 | メールの受信サービス |
| 443 | HTTPS | HTTPによる通信をよりセキュアに行うためのサービス |

[ポート番号とは - ITエンジニア日記 ～NO SKILL, NO LIFE～](https://ittech-nsnl.hatenablog.com/entry/2019/11/05/231840)


## グローバルIPアドレスとプライベートIPアドレス

|  | グローバルIP | プライベートIP |
| - | - | - |
| 用途 | インターネットを利用するときに割り振られる | イーサネットで割り振られる |
| 管理者 | インターネットプロバイダー(ICANNから引き継がれる) | ルーター機器 |
| 役割 | インターネット上の住所 | イーサネットの住所 |
| 場所 | インターネットとイーサネットの接続点 | イーサネットと端末の接続点 |
| 決定方法 | 手法は様々だが、ルータのMacアドレスをベース作ったりしている | ルーターのDHCPサーバー機能 / 手動設定 |

### グローバルIPアドレスの割り振られ方

国際的な機関「ICANN」
↓
アジアを管理している「APNIC」
↓
日本国内を管理している「JPRS」
↓
各管理会社である「プロバイダ（回線事業者）」
↓
個人や会社などの「ユーザー」

## ネットワーキング・デバイスとOSI階層モデル

| 階数 | 階層 | 機械 | 動作 | 用途 |
| - | - | - | - | - |
| 1 | 物理層 | リピータ、ハブ | 信号の増幅、分配 | 機器の通信 |
| 2 | データリンク層 | ブリッジ、スイッチ(スイッチング・ハブ) | データを通す、通さない | ネットワーク内の通信 |
| 3 | ネットワーク層 | ルータ | 宛先までのルートを決定する | ネットワーク間の通信 |

## MACアドレスとIPアドレスの比較

| 要素 | MACアドレス | IPアドレス |
| - | - | - |
| タイプ | 物理アドレス | 論理アドレス |
| 一意性 | 世界で一意 | ネットワークで一意(実質世界で一意) |
| 命名規則 | ユニークなビット列 | 階層型 (所属するネットワークのアドレス + ホストの番号) |
| 決め方 | ベンダーが割当コードから決める | ネットワーク管理者が決める |
| 所在地 | ケーブルとPCの接続点 (NIC) | ネットワークの接続点 |
| OSI階層モデル | レイヤ2 データリンク層 | レイヤ3 ネットワーク層 |

## IPアドレス (IPv4)

32ビットで階層情報を保持する。

| クラス | 第1オクテット | 範囲 | ネットワーク部 | ネットワークの数 | ホストの数 |
| - | - | - | - | - | - |
| A | 0 000 0000 | 0.x.x.x ~ 127.x.x.x | 上位8bit | 7bit = 128個 | 24bit = 16,777,216個 |
| B | 10 00 0000 | 128.x.x.x ~ 191.x.x.x | 上位16bit | 14bit = 16,384個 | 16bit = 65,536個 |
| C | 110 0 0000 | 192.x.x.x ~ 223.x.x.x | 上位24bit | 21bit = 2,097,152個 | 8bit = 256個 |

### サブネットワーク

グローバルIPアドレスを割り振られたプロバイダは、通信効率のため、命名規則を割り当て、IPアドレスをサブネットワークに分割する。

ネットワーク番号は割当られた時点で固定のため、ホスト部に命名規則をもたせる。
ホスト部をサブネット番号とホスト番号に分割する。

分割方法として、サブネットマスクの情報を一緒に持たせる。



## 参考

[コンピュータ・システム](https://amzn.to/3mlYzwZ): 11章
[3 Minutes Networking](http://www5e.biglobe.ne.jp/~aji/3min/index.html)
[IPアドレスとは？「グローバルIPアドレス」と「プライベートIPアドレス」の違いについてご紹介｜ドスパラ通販【公式】](https://www.dospara.co.jp/5info/cts_str_pc_ip)