ネットワークスペシャリスト　学習

ネスペ試験受験用。

# Network Interface 層　（フレーム）
[NIC](#nic)等のハードウェアを、OSが操作できるようにする**デバイスドライバ**としての機能を持つプロトコル層。

近年デバイスドライバは、OSに内蔵されてるため意識されないこともあるが、ハードウェアを操作するためには必ず必要。

通信媒体には、ツイストペアケーブル、同軸ケーブル、光ファイバー、電波、赤外線などがある。

Network Interface 層では、転送するデータの単位は**フレーム**と呼ばれる。

フレームという言葉には、データを2進数で表現した連続する「0」「1」を意味のある枠（frame）で区切るというニュアンスがある。

![OSI_network_interface.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/7dfdf793-16fb-6b04-73da-1f4a69cae33c.png)

![network_interface_frame.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/62a86f42-fde3-ca4c-631e-a88990f60e7b.png)

## FCS
Frame Check Sequence

データに誤りや破損がないかを確認するための、送信フレームの末尾に付与される符号。

フレームとして表現される電気信号は、通信経路上で発生した電気的なノイズによって変化してしまうことがある。

電気信号の変化はすなわち「0」「1」の並びの崩れであり、元のフレームが別のフレームに変化してしまった（破損した）ことを意味する。

FCSには「フレーム全体を特定のビット列で割った余り」が格納される。この時に使用される「特定のビット列」を生成多項式という。

受信側て算出されたFCSと受信したFCSが一致すればフレームが破損していないことがわかる。

## ADSL
Asymmetric Digital Subscriber Line

Asymmetric=非対称

メタル線（銅線）による電話回線（**アナログ**回線）の高周波数帯を利用して高速データ通信を行う技術。

下りのダウンロードと上りのアップロードにおいて通信速度が異なる。

ADSLがアナログなのに対して[ISDN](#isdn)では、**デジタル**回線が利用される。

ADSLと[ISDN](#ISDN)はどちらも、光回線が主流になったため、2024年にサービスが終了する。

## ISDN
Integrated Services Digital Network

一つの回線で、音声、FAX、動画などの異なるタイプの通信を統合的に提供するための技術。

**デジタル回線**を利用して通信を行う。[ADSL](#adsl)を代表するいわゆる**アナログ**回線からの移行を目的に開発された。

[ADSL](#adsl)が[ブロードバンド](#ブロードバンド--ナローバンド)の一つであるのに対して、ISDNは[ナローバンド](#ブロードバンド--ナローバンド)の一つ。

[ADSL](#adsl)とISDNはどちらも、光回線が主流になったため、2024年にサービスが終了する。

## ATM
Asynchronous Transfer Mode

広域通信網で利用される、データリンク層のプロトコルの一つ。

音声、動画、画像などの異なる形式のデータを非同期的に転送することができる。

5byteのヘッダと48byteのATMセルの計53byteで構成されるデータ単位により転送を行う。

データを細かく区切って転送することにより、回線交換方式のように回線を占有しないため、効率的な通信を行うことができる。

一方でデータの単位は固定長であり、パケット交換方式のように変動させることはできないため、回線交換方式とパケット交換方式の中間のような位置付けにある。

コネクション型のプロトコルなので、通信前にはコネクションの確立が必要になる。

比較的古い技術であり、[Ethernet](#ethernet)で用いられる[CSMA/CD](#csmacd)のような制御が行われないため、輻輳が発生する。ATMでは、この輻輳を防ぐために、細かく帯域を制御する方法が取られている。

また、ATMでは1フレームが53byteの固定長なのに対して、[Ethernet](#ethernet)では1フレーム最大1500byteの可変長データが転送できる。通常、フレームの中には、上位層で使用されるプロトコル情報なども格納しなければならず、ATMのフレームからヘッダを除いた48byteの中には、それらを格納しながら送りたいデータも格納するだけのスペースがない（上位層のヘッダだけで48byte程度になってしまう）。このため、ATMではAAL（ATM Adaption Layer）と呼ばれる、[IP](#ip)とATMの中間に位置するプロトコルが同時に利用される。

AALを利用してATMを使用する場合、[IP](#ip)のパケットは最大192個のセルに分割される。このセルのうち、一つでも欠落が発生すると、192個のセルは全て再送が必要となるなど非効率な面がある。

一方[TCP](#tcp)では、データはセグメントに分割され、各セグメントにはシーケンス番号が割り当てられる。このシーケンス番号によって、欠落したセグメントのみが再送されるといった再送制御が行われる。

これらの違いにより、ATMは現代では[Ethernet](#ethernet)などに置き換わり、一部でしか利用されていない。

## CSMA方式
Carrier Sense Multiple Access

データの送信権を早い者勝ちで奪い取る方式。

CSMA方式ではないものには、[トークンパッシング方式](#トークンパッシング方式)などがある。

### CSMA/CA
CSMA / Collision Avoidance

[CSMA方式](#csma方式)を改良した、**無線**通信時に使用される通信の**衝突防止**の仕組み。

フレームを送信して良い状態（アイドル状態）かどうかを確認し、ランダムな時間（バックオフ）だけ待機してから送信を開始することで、衝突を回避する。

### CSMA/CD
CSMA / Collision Detection

[Ethernet](#ethernet)（**有線**通信）で使用されている、[CSMA方式](#csma方式)を改良した通信の**衝突検知**の仕組み。

フレームを送信する前に他のフレームが流れていないかを確認する。

送信時に他のフレームが流れていない場合でも、もし途中でフレームの衝突が発生した場合、送信を一時中断してランダムな時間が経過後に再びフレーム送信をやり直す。

フレームの衝突は、電圧が規定範囲外になったことによって検知する。

### トークンパッシング方式
トークンと呼ばれるパケットを巡回させて送信の権利を制御する方式。

トークンを持つステーションだけがデータを送信することができ、データを受信したステーションは、受信フラグを設定する。トークンが１周回って、受信フラグを受け取った送信ステーションは、トークンを手放す。

## Data Channel
データの通り道のこと。

## Ethernet
有線LANで広く使用されている、データ通信用の**規格の一つ**。

OSI参照モデルにおける物理層とデータリンク層の仕様から構成される。

EthernetはLAN内でのコンピュータ同士の通信に使用され、光ファイバーや専用線、または[VPN](#vpn)などの形態で広域ネットワークに接続されることもある。

1フレームで**最大1500byte**のデータ（[MTU](#mtu)）を転送できる。

以下は Ethernet で決められているフレームの形式。

![network_interface_frame.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/62a86f42-fde3-ca4c-631e-a88990f60e7b.png)

## Fiber Channel
ファイバーチャネル。

光ファイバーによる[Data Channel](#data-channel)。コンピュータとストレージを光ファイバーで接続するための規格の一つ。

[SCSI](#scsi)に近い仕組みを持ち、主に[SAN](#san)を構築するために利用される。

### SAN
Storage Area Network

主に業務用の大規模システムなどで使用される、ストレージ専用のネットワーク。

通常、1台のサーバには1台のストレージが接続されることがほとんどだが、SANでは複数のストレージが接続される。[LAN](#lan)とは独立して管理されるため、余計な負荷がなく高速に伝送を行うことが可能。

クライアントからは直接接続されたハードディスクのように、SAN上のストレージにアクセスすることができる。

### SCSI
Small Computer System Interface

スカジー。

コンピュータと周辺機器を接続するための古い規格の一つ。複数の規格の総称。

元々はSCSIではパラレル（並列）方式のみが用いられていたが、業界全体がシリアル（直列）方式による伝送が主流になるのに従い、SCSIでもシリアル方式を用いる規格が登場したため、現在では両者の規格の総称という位置付けなっている。（パラレルの方が速いように思えるが、高速になればなるほど複数の通信路間でタイミングを合わせることが困難になると言う技術的障壁が高くなる）

USBは一般家庭でよく見かけるのに対して、SCSIは商用、業務用途、サーバなどの機器周辺で利用されていることが多い。

USBはマウス、キーボード、外付けHDD等、さまざまなデバイスを接続でき[ホットスワップ](#ホットスワップ)機能を持つのに対して、SCSIは接続できる機器がやや特化していて（主にストレージ）、[ホットスワップ](#ホットスワップ)機能を持たない。また、USBよりも高速、高価という特徴がある。機器ごとにSCSI IDが割り振られている。

#### iSCSI
アイスカジー。

[SCSI](#scsi)を TCP / IP ネットワーク上で利用するための規格。

ストレージとの物理的[SCSI](#scsi)接続がネットワークを経由して行うことができる。

[SCSI](#scsi)のコマンド、データをパケットに含めることで、これらを経由せずに直接、ストレージに接続することができるようになる。

### ホットスワップ
機器の電源を入れたまま、ケーブルを抜き差しして交換することができる機能のこと。

ホットスワップ非対応の機器では、ケーブルの抜き差しを機器の電源を落としてから行わなければならない。

## FTTH
Fiber To The Home

光ファイバーによる通信サービスのこと。

**ONU**(Optical Network Unit：光回線終端装置)によって、光を電気信号に変換して利用する。

## HDMI
High-Definition Multimedia Intaeface

映像と音声をでデジタル信号で伝送できるインターフェース規格の一つ。

ディスプレイとの接続でよく用いられる。

## IEEE1394
FireWire、i.Linkとも呼ばれる。

コンピュータと周辺機器を接続するための規格の一つ。

## InfiniBand
インフィニバンド。

大規模システムで利用される、コンピュータとストレージ、サーバー同士の接続に用いられる**超高速なインターフェース規格**の一つ。

信頼性も高く、低遅延かつ低価格。

## NIC
Network Interface Card

ネットワークに接続するためのインターフェースとしての機能を持つ物理的なハードウェア。

拡張カード型や、USB型があり、ネットワークアダプタ、LANアダプタ、[Ethernet](#ethernet)アダプタなどと呼ばれることもある。近年では、コンピュータに内蔵されて拡張カード型でなくなっていることが多い。

![NIC.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/3580e57d-4e77-3a7e-601c-cb6d5fc43516.png)

### チャネルボンディング
Channel Bonding

複数の物理的な[NIC](#nic)を論理的に束ねて扱うことによって、帯域幅を増やして通信の高速化を図る技術。

NICチーミング（teaming）、アダプタチーミングとも呼ばれる。

## MAC address
Media Access Control address

データリンクに接続しているノードを識別するための**48bit**の識別番号。

複数のポートがある機器は複数のMACアドレスを保持する。また有線・無線を併せ持つ機器も、有線LANポート用・無線LAN用それぞれの[NIC](#nic)ごとに1つずつ割り当てられている。

世界中で重複しない一意の値を割り振るのが原則だが、技術的には書き換えることも可能。

また、1~24bit目までは**OUI**（Organizationally Unique Identifier。ベンダ識別子）と呼ばれる製造メーカーごとの数字が割り当てられている。OUIは[IEEE](#ieee)が割り当てを行い、25~48bit目の機器コードは各製造メーカーが割り当てを行う。

Windowsでは`ipconfig /all`、MacではSystem Settings → Wi-Fi → Advanced → Wi-Fi MAC addressから確認することができる。

## MTU
Maximum Transmission Unit

１度に転送できるデータサイズ。

## PLC
Power Line Communications

電力線通信。電力線を通信回線として利用するための技術。

電気のコンセントとPCをPLCモデムに繋ぐことにより数百Mbps程度までのデータ通信が可能。

## PoE
Power over Ethernet

LANケーブル（Ethernetケーブル）によって電源供給ができる機能。

[ストレートケーブル / クロスケーブル](#ストレートケーブル--クロスケーブル)の①〜⑧のピンのうち、使用されている①②③⑥番を使用する**TypeA**と、未使用の④⑤⑦⑧番のピンを使用して電源供給を行う**TypeB**がある。TypeBが広く普及している。

## POS
Packet over SDH/SONET

光ファイバー上で[SDH](#sonet--sdh)や[SONET](#sonet--sdh)などの同期通信技術を利用して、パケットによる通信を実現する技術。

主に[ISP](#isp)や通信事業者などのインフラで使用される。

### SONET / SDH
Synchronous Optical Network / Synchronous Digital Hierarchy

同期光ネットワーク / 同期デジタル階層。

デジタル信号を**多重化**することで高速に通信するための規格の一つ。

ほとんどの長距離ネットワークで使用されている主要な技術。光ファイバーによる複数の光通信回線を束ねることで、1本の基準となる伝送速度を倍量（べき乗）にすることができる。これを**多重化**と言う。

米国で作られたSONETであり、国際的に標準化されたのがSDH。両者には互換性があり、また両方の技術をサポートした製品が多く、パッケージにはSONET / SDH と表記される。

## PPP
Point to Point Protocol

2台の機器間で、仮想的な専用回線を確立して1対1で通信を行うためのデータリンク層のプロトコル。

古いプロトコルである SLIP（Serial Line Internet Protocol）の課題を克服したプロトコルで、通信相手をユーザ名とパスワードにより**認証**する機能、**暗号化**する機能などを持つ。認証には[CAP](#cap)や[PAP](#pap)が利用される。

[ISP](#isp)が提供する[モデム](#モデム)を介した[ダイアルアップ接続](#ダイアルアップ接続)や[FTTH](#ftth)などの高速な[ブロードバンド](ブロードバンド-/-ナローバンド)接続まで、現在幅広く使われている。

### PPPoE
PPP over Ethernet

[PPP](#ppp)の機能を、[Ethernet](#ethernet)を通じて実現したもの。

一般家庭でインターネットを利用する際に、ブロードバンドルータと[ISP](#isp)施設の機器間の通信で利用される。

[Ethernet](#ethernet)が持っていないコネクションの確立や切断、さらには認証機能を持つ。認証機能は、[ISP](#isp)へのユーザ認証として利用される。

### CAP
Challenge Authentication Protocol

[PPP](#ppp)などで利用される認証方法の一つ。

パスワードが平文のままではなく、ハッシュ化された状態で転送される。

### PAP
Password Authentication Protocol

[PPP](#ppp)などで利用される、ネットワークへの接続時に利用される認証プロトコルの一つ。

## STP
Spannig Tree Protocol

spannig=広がる、及ぶ、横断する

スパニングツリープロトコル。

スイッチが円環状（リンク）に接続されたループ構成が存在するセグメント上で、フレームがループする現象（**ブロードキャストストーム**）を回避するためのプロトコル。

ループ構成は設計ミスによって発生してしまうこともあれば、冗長性を高める目的で意図的に採用されることもある。意図的に設計されたループ構成では、平常時に発生してしまうループは STP によって回避され、障害時は冗長化させた経路に迂回するように自動で切り替わるため、可用性が高まる。

ループ構成の検出は **BPDU**（Bridge Protocol Data Unit）と呼ばれる特殊なフレームによって行われる。（ここでのブリッジ＝[スイッチ](#ハブ)と同じ意味。以降の説明でも同様）

スイッチの STP 設定が有効化されると、各スイッチは一定時間ごとに BPUD を送信するようになる。BPUD には、BPUD を送信するスイッチに設定された「プライオリティ（優先度）」や「MAC アドレス」が含まれている。

**ルートブリッジ** は、セグメントごとに1台のみ選ばれる特別なスイッチのことで、各スイッチのプライオリティが最も小さいものが選出される。プライオリティが等しいスイッチ同士は、MAC アドレスの小さい方がルートブリッジに選出される。

スイッチのポートは以下の4つの状態の間を遷移している。

- **ブロッキング**：フレームを転送しない（BPDUを除く）状態
- **リスニング**：状態を確認中
- **ラーニング**：[トポロジ](#トポロジ) の計算中
- **フォワーディング**：フレームを転送する状態

ネットワークに接続した直後は、トポロジの計算、各ポートへの状態設定処理に時間がかかるが、これは STP のデメリットとして挙げられる。

ループ構造の無いセグメントでは、ルートブリッジから届く BPDU は必ず一方向からの受信になる。

一方ループ構造がある場合、ルートブリッジが送信した BPDU は複数の方向（ポート）から届くため、これによりループが発生していることを検知できる。ループが検知されると、スイッチは適切なポートをブロックする。

![bpdu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/1c56eaf7-d564-19a7-badb-07c370b7576e.png)

ポートのブロックは、トポロジの計算によってスイッチの各ポートを以下のいずれかに決定することによって行う。

- **ルートポート**
    - 受信側
    - ルートブリッジ
        - ルートポートを持たないので考えなくてOK
    - ルートブリッジ以外
        - **その「ブリッジ単体」に着目する**
        - ルートブリッジに最も近いポート
        - 等距離の場合、プライオリティ、MAC アドレスが小さいポートから BPDU を **受信する** 方
        - 結果的に、隣接ブリッジの指定ポートと接続された受信ポートになる（隣接の指定ポートと必ず対になる）
- **指定ポート**（代表ポート）
    - **送信側**
    - ルートブリッジ
        - 全てのポートが指定ポートになる
        - 「もしルートブリッジのいずれかのポートがフレームを受信する場合、ループが発生していることになってしまう」と考える
    - ルートブリッジ以外
        - **「リンク」に着目する**
        - ルートブリッジに最も近いポート
- **非指定ポート**（ブロッキングポート）
    - 受信側
    - 指定ポートでもルートポートでもないポート



:::note info
**STP** : 帯域幅は増やせない。障害時にトポロジの再計算が必要。
**[リンクアグリゲーション](#リンクアグリゲーション)** : 帯域幅を増やせる。障害時の計算が必要ない。
:::
### トポロジ
Topology

ネットワークの構造、配置の形態のこと。

一般的なネットワークトポロジには以下のようなものがある。

![toporogy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/6d592c3e-5ea8-e150-b186-c063c43fbbe2.png)

## VLAN
Vertual LAN

スイッチングハブが持つ機能で、仮想的な[LAN](#lan)を構成する仕組みのこと。

物理的な一つのセグメントを論理的な複数のセグメントに分割することができる。

ソフトウェアでセグメントを制御することができるため、ネットワーク構成に変更があっても、物理的な新たなスイッチングハブ、配線を行う必要がない。セキュリティやトラフィックの効率化のためにも使用される。

ポートをもとにグループ化を行う**ポートベースVLAN**と、フレームにタグIDを埋め込むことによってグループ化を行う**タグVLAN**がある。タグVLANは**IEEE802.1Q**で規定されている。

ポートベースVLANでは一つのポートに対して一つのVLANグループしか紐付けできないのに対して、タグVLANでは一つのポートに対して複数のタグを設定できる。つまりタグVLANでは、1本の物理的接続から複数のVLANを構成することができる。

![network_interface_frame_vlan.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/cbd966b6-1f73-ab73-2c96-b0400e6c6abe.png)

## ダークファイバー
NTT東・西日本、鉄道会社、電力会社などが敷設した光ファイバーケーブルのうち、使用されていないものを借り受けて提供されるサービス。

## ツイストペアケーブル
8本の銅線から構成される通信媒体の一つ。実際には2本ずつよじって4対にしてある。

伝送するのは**電気信号**。

多くのLAN接続に利用されることから、**LANケーブル**と言えば、実際にはツイストケアケーブルを指していることが多い。

8本の動線は、コネクタ部分の８つのピンと繋がっている。

規格上、100メートルが最大ケーブル長とされ、それ以上の距離間ではリピータハブ（バカハブとも呼ばれる）などを中継して利用される。ちなみに光ファイバーケーブルの最大ケーブル長は数十キロメートルと言う距離感。

銅線がシールドに覆われているかどうかで、[STPケーブル](#stpケーブル)と[UTPケーブル](#utpケーブル)に分類される。

また、コネクタ部分のピンに対して銅線がどのように接続されているかによって、[ストレートケーブル](#ストレートケーブル)と[クロスケーブル](#クロスケーブル)に分類される。

### STPケーブル
Shielded Twisted Pair ケーブル

[ツイストペアケーブル](#ストレートケーブル--クロスケーブル)の一つで、2本の銅線が**シールドに覆われている**タイプ。

ノイズに強い。高価。

### UTPケーブル
Unshielded Twisted Pair ケーブル

[ツイストペアケーブル](#ストレートケーブル--クロスケーブル)の一つで、銅線が**シールドに覆われていない**タイプ。

ノイズに弱い。安価。広く普及している。

### ストレートケーブル / クロスケーブル
[ツイストペアケーブル](#ストレートケーブル--クロスケーブル)の分類の一つ。

**ストレートケーブル**は、ケーブルのコネクタ部分にある①〜⑧番までのピンが、内部で交差しない。

①〜⑧番の各ピンは、送信用、受信用、未使用のいずれかの目的で利用される。ストレートケーブルでは、送信側の①番から送られた信号は、受信側でも同じ①番に届く。

![straight_cable.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/738c4c18-5908-20dd-ac76-ca7b72765caf.png)

一方、**クロスケーブル**は内部で①〜⑧番の銅線が交差していて、①番から送信された信号は受信側の③番に届く。

![cross_cable.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/66cb351f-906b-03a6-1431-2dd11a4979f4.png)

[ツイストペアケーブル](#ストレートケーブル--クロスケーブル)が接続されるPC、プリンタ、ルータ、スイッチングハブは、ポート①〜⑧番の配置の違いによって**MDI**（Medium Dependent Interface）と**MDI-X**（MID Crossover）に分類される。

一般的に、PC、プリンタ、ルータはMDIに分類され、スイッチングハブはMDI-Xに分類される。

MDIとMDI-Xは下の図のように①〜⑧のポートの配置が異なる。異なる種類のポートを持つ機器同士の接続にはストレートケーブルが使用され、MDI-Xポートを持つ機器同士の接続や、MDIポートを持つ機器同士の接続にはクロスケーブルが使用される。

![mdi_mdix.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/a76e0cfd-5ac0-9ee7-1a2a-420f90fb808e.png)

本来は接続する機器のポートがMDIなのか、MDI-Xなのかによって、ストレートケーブルとクロスケーブルを使い分けなければならないが、近年（2000年以降くらい）の機器（PC、ルーター、スイッチングハブ）のほとんどは自動的にそれらを切り替えることができる **Auto MDI/MDI-X 機能** を持つため、特に意識されることがなくなった。ストレートケーブルでもクロスケーブルでも良いということになるが、一般的にはストレートケーブルが使われる。また、市販されているLANケーブルはストレートケーブルであることがほとんど。

## 光ファイバーケーブル

光ファイバーを使用して作られたケーブル。

[ツイストペアケーブル](#ストレートケーブル--クロスケーブル)では電気信号を伝送していたのに対して、光ファイバーケーブルが伝送するのは**光信号**。

[ツイストペアケーブル](#ストレートケーブル--クロスケーブル)に比べて高速で、長距離（最大40km）でも通信ができる。

**コア**と呼ばれるケーブル中央の光の通り道と、光が外に漏れないようする**クラッド**と呼ばれる覆いから構成される。

コアの太さの違いなどから**シングルモード**と**マルチモード**に分類される。

シングルモードの光ファイバーは、コアが細く、光の通り道が一つ。安定した通信が可能で、長距離向きで海底ケーブルにも使用される。

一方、マルチモードの光ファイバーは、コアが太く、光の通り道が複数ある。シングルモードのような長距離向きではないものの、曲げに強く比較的安価であることから短距離・中距離間通信で広く使用される。

:::note info
**シングルモード** : 光の通り道が一つ。安定していて高価。長距離向き。
**マルチモード** : 光の通り道が複数。まげに強くて安価。短・中距離向き。
:::

## 同軸ケーブル
[ツイストペアケーブル](#ストレートケーブル--クロスケーブル)や光ファイバーなどと同じ目的で使用される通信媒体の一つ。

## スイッチ / ハブ
ネットワークの中継装置。**ブリッジ**とも呼ばれる。

ハブは受信したフレームをすべてのポートに転送する**シェアードハブ**と、特定のポートにだけ転送を行う**スイッチングハブ**に分類される。

スイッチングハブは単に**スイッチ**とも呼ばれる。

シェアードハブは、機能が単純なことから**バカハブ**や**リピータハブ**とも呼ばれる。

スイッチングハブは、特定のポートにだけ転送を行うために、どのポートがどの端末と接続されているかの情報を**MACアドレステーブル**として保持している。

:::note info
間違えやすい点
**MACアドレステーブル**：スイッチングハブの**ポート番号**と、そのポートに接続された端末の**MACアドレス**の対応表
**APRテーブル**：**IPアドレス**と、そのIPアドレスを持つ端末の**MACアドレス**の対応表
:::

## スタック
複数のスイッチングハブを仮想的に1台のように扱うこと。

複数のスイッチングハブが**スタックケーブル**、もしくは別の方法によって接続され、1つのIPアドレスを利用することによって実現する。

本来は足りなくなったポートを拡張するための技術だが、スイッチングハブの冗長化のためにも利用される。

[リンクアグリゲーション](#リンクアグリゲーション)と組み合わせて使用されることがある。

### リンクアグリゲーション
aggregation=集約

複数の物理的回線を論理的に1本に束ねて扱う技術。

**チャネルグループ**、**ポートトランキング**とも呼ばれる。（Cisco社製品ではFEC（Fast Ether Channel）、GEC（Gigabit Ether Channel）とも呼ばれる）

帯域が広くなり、回線の冗長化を行うことができる。

回線を冗長化するという意味では [STP](#stp) という選択肢もあるが、リンクアグリゲーションは帯域幅を増やして通信を高速化することができる点と、障害時の再計算処理が不要な点が [STP](#stp) には無いメリットになるため、実際にはリンクアグリゲーションが採用されることが多い。

[スタック](#スタック)と組み合わせて使用されることがある。

:::note info
**[STP](#stp)** : 帯域幅は増やせない。障害時にトポロジの再計算が必要。
**リンクアグリゲーション** : 帯域幅を増やせる。障害時の計算が必要ない。
:::

## 無線通信
無線通信は規格ごとに技術的な通信可能距離がある程度決まってしまう為、おおよその通信距離による分類ができる。

| 通信距離(およそ) | 技術名称 |
|:-:|:-:|
| 数m | RFID |
| 10m | Bluetooth |
| 100m | Wi-Fi |
| 数km~100km  | WiMAX |

このほかにも、技術世代による3G、4G（LTE）、5Gという分類もある。

Bluetoothでは、2.4GHz帯が使用される。

### Wi-Fi
Wireless Fidelity

無線LAN技術を実装した製品やシステムの**ブランド名**。ほぼ無線LANと同義で使われる。

Wi-Fi Allianceという業界団体によるテストに合格した製品だけがロゴマークが使用できる。この認証制度によって、異なるメーカーの製品同士の互換性が保証される。

IEEE802.11b、IEEE802.11g、IEEE802.11a、IEEE802.11n、IEEE802.11acなどの規格がある。これら規格同士には互換性が無い。

暗号化の方式には[WEP](#wep)、[WPA](#wpa)などがある。

#### WEP
Wired Equivalent Privacy

無線通信IEEE 802.11bにおける暗号化技術。

暗号の解読ツールが存在するため、現在では使用してはいけない。

#### WPA
Wi-Fi Protected Access

[WEP](#wep)の脆弱性を克服する暗号化の規格。

暗号化のアルゴリズムに**TKIP**を使用するWPAと、**AES**を使用するWPA2がある。

WPA-PSK、WPA2-PSKの**PSK**はPre Shared Key（事前共有鍵）のこと。

### Hotspot
周囲に比べて、特に何かが集中して分布している地点を指し、転じて、無線LAN（Wi-Fi）に接続可能なエリアを指す。

### SSID
Service Set Identifier

無線LAN（Wi-Fi）ネットワークにおいて、ユーザが接続しようとしているAP（無線アクセスポイント）を識別するための識別名。

ASCII文字によって構成され、最大32文字設定することができる。

### MIMO
Multiple Input Multiple Output

複数のアンテナが同じ周波数で複数の信号を送受信することにより、無線通信の高速化を図る仕組み。

[チャネルボンディング](#チャネルボンディング)は帯域幅を束ねることで高速化を実現する。
















# Internet 層　（パケット）

Internet層は、**ルーティング**（経路制御）によってパケットを目的のホストまで送り届ける役割を持つ。

送信元や宛先の機器が [Ethernet](#ethernet)、[ATM](#atm)、[PPP](#ppp) など、それぞれ異なる種類のデータリンク層プロトコルで構成されていても、それらの違いを覆い隠してパケットを送り届けることができる。

ルーティングには **Staticルーティング** と **Dynamicルーティング** がある。

![OSI_internet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/69e13ffe-0a56-2dae-c92d-9b787b6c2503.png)

![internet_packet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/6f127998-2851-658f-2ed4-3f5be5865561.png)

IPパケットは**最大 1500 byte**。

:::note info
| プロトコル番号 | プロトコル名 |
|:-:|:-:|
| 1 | [ICMP](#icmp) |
| **6** | [TCP](#tcp) |
| **17** | [UDP](#udp) |
| 41| IPv6 |
| 50 | ESP |
| 89 | [OSPF](#ospf) |
| 112 | [VRRP](#vrrp) |
:::

## ルーティング

ルータが「宛先IPアドレス」をもとに、次にどの機器にパケットを転送するかを決定すること。

ネットワークアドレスと機器を紐付ける表を **ルーティングテーブル** と言う。

**PC のルーティングテーブル**

| 宛先ネットワークアドレス | デフォルトゲートウェイ |
|:-:|:-:|
| `192.168.1.0 / 24` | ルータA |
| `172.16.0.0 / 24` | ルータB |


**ルータのルーティングテーブル**
| 宛先ネットワークアドレス | ネクストホップ |
|:-:|:-:|
| `192.168.1.0 / 24` | ルータA |
| `172.16.0.0 / 24` | ルータB |

ルーティングテーブルに記載されたルータは次にパケットを転送する先であり、**ネクストほp**と呼ばれる。 

### スタティックルーティング

[`$ ip`](https://qiita.com/AsahinaKei/items/8accc0c2ecc73e0f56d9#-ip) コマンドなどを利用して、管理者が手動でルーティングテーブルを作成すること。

静的な設定のため、管理が面倒で、障害時に自動復旧できない。

### ダイナミックルーティング

設定しておいたプロトコル（[RIP](#rip) や [OSPF](#ospf) など）に従って、自動でルーティングテーブルを作成すること。

動的な設定のため、管理が楽で、障害時に自動復旧が可能。


また、ルーティングのためのプロトコルには [AS](#as) 間のルーティングを行う [EGP](#egp) と、[AS](#as) 内のルーティングを行う [IGP](#igp) という分類がある。

ルーティングのアルゴリズムには、大きく分けて **Distance Vector型** と **Link State型** がある。（Path Vector 型というものもある）

Distance Vector 型では、それぞれのルータが、自分自身から目的のIPアドレスまでの距離(distance)、方角（vector）を保持するのに対して、Link State 型では、各ルータがネットワーク全体の状態（state）に関する同じ情報を保持している。


## ARP
Address Resolution Protocol

アープ。

IPアドレスを手がかりに [MACアドレス](#mac-address) を取得する（**名前解決**）ためのプロコトル。

通信したい相手の宛先 IP アドレスまではわかるが、MAC アドレスがわからないというシチュエーションで利用される。ARP が動的に行われることで MAC アドレスを意識する必要がなくなる。

IPv4 で使われるプロトコルであり、IPv6 では [ICMPv6](#icmpv6) が使用される。

ARP ではまず、**ARP 要求**と呼ばれるパケットが送信される。

ARP 要求は **ブロードキャスト** で送信されるため、関係のない端末にも届いてしまうが、その場合には受信後に破棄される。

目的の IP アドレスを持つホストが APR 要求を受け取った場合、自身の MAC アドレスを知らせる応答を返却する。

一度取得された MAC アドレス情報は **ARPテーブル** にキャッシュされて再利用される。機器の入れ替えがあった際にも対応できるよう、キャッシュされた APR テーブルは一定時間経過後に削除される。

ARP テーブルの情報は、`$ arp -a`コマンドで確認することができる。

:::note info
間違えやすいポイント
**MAC アドレステーブル**：ポート番号とMACアドレスの対応表（[スイッチ](#スイッチ--ハブ)）
**APR テーブル**：IPアドレスとMACアドレスの対応表
:::

### RARP
Reverse ARP

[ARP](#arp)と逆で、MACアドレスからIPアドレスを取得するためのプロトコル。

[DHCP](#dhcp)に対応していない古い組み込み機器を使う際など、自身のIPアドレスを知らないホストがそれを取得するために利用する。

RARPサーバにIPアドレスとMACアドレスの対応を登録しておき、RARPサーバに問い合わせを行う。

### Gratuitous ARP
gratuitous=余計な、根拠のない、無償の

自身のIPアドレスに紐づくMACアドレスを取得しようとする[ARP](#arp)要求のこと。

自分の使用しているIPアドレスを他社も利用していないか、重複していないかを確認するために利用される。

Gratuitous ARP要求への回答があった場合、回答した端末とIPアドレスが重複していることになる。

また冗長化されたネットワーク構成において、バックアップ用の機器がスタンバイからアクティブに昇格した際に、周囲に自身のMACアドレスを通知してARPテーブルを更新させるためにも使用される。

### Proxy ARP
リモートネットワークに存在する特定のホストに対して、ローカルネットワーク内のデバイスがARP要求に代理応答する機能。

[ARP](#arp)は通常、ブロードキャストを使用して同じセグメント内でIPアドレスとMACアドレスの名前解決を行う。

それに対して Proxy ARP は、異なるセグメント（リモートネットワーク）にある（ブロードキャストが届かない）ホストのMACアドレスを取得するために利用される。これによって異なるセグメント間での通信が可能になる。

通常、別セグメントへ送りたいパケットは[スイッチ](#スイッチ--ハブ)が持つルーティングテーブルによって転送されるが、Proxy ARP を利用することでルーティングテーブルを使わずに通信することができるようになる。

Proxy ARPではセグメント間を中継するルータがARPを中継し、目的のホストのMACアドレスを代理回答する。

この動きによって、分断されていたセグメント同士で通信を行うことが可能になる。

## AS
Autonomous System

直訳は「自律システム」。

各主体（国、地域、組織などのネットワーク管理者）が管理する、または管理できるネットワークの範囲や管理単位を表す**概念**。

インターネットは国、宗教、言葉、文化の異なる地域・国または組織が共有して利用するネットワークであり、大きく俯瞰して観るとインターネット自体が一つのネットワークであるとも言える。

ただ実際には国ごとの運用・ルールが存在し、組織や会社ごとでも運用ルールが決められている（ある国では特定のサイトが見れないなど）。この時の運用・ルールを適用する範囲をAS、または**Routing Domain**（経路制御ドメイン）と言う。[ISP](#isp)もASの一つ。

[AS](#as)内では、管理者が独自のポリシー、設定に基づいて経路制御を行う。これによりインターネット全体でルーティングをするのではなく、階層的にルーティングを効率よく行うことができるようになる。

[AS](#as)は自己完結型のネットワークなので、他の[AS](#as)とは独立して運用され、大規模なネットワークをより効率的に管理するための[BGP](#bgp)において、経路情報を管理するためにも利用される。

[AS](#as)番号は[IANA](#iana)によって割り振られる。

### EGP
Exterior Gateway Protocol

異なる[AS](#as)**間**で利用されるルーティングプロトコルの分類名。

具体的には[BGP](#bgp)というプロトコルがEGPに分類される。

### IGP
Interior Gateway Protocol

[AS](#as)**内**で利用されるルーティングプロトコルの分類名。

具体的には[RIP](#rip)、[OSPF](#ospf)などのプロトコルがIGPに分類される。

:::note info
**EGP**　-　AS間のルーティングで利用　-　具体的には**BGP**
**IGP**　-　AS内のルーティングで使用　-　具体的には**RIP**、**OSPF**
:::

### NOC
Network Operation Center

ノック。ネットワークの監視、障害時の対応、管理を行うための施設。

インターネット上のある地域のネットワークと別の地域のネットワークはNOCによって接続される。

通常、[ISP](#isp)などによって専門のスタッフが常駐して24時間稼働している。

### IX
Internet Exchange

インターネット上にある複数の事業者の回線を、相互接続するためのハブ（スイッチ）のような役割を持つ施設。

一箇所の施設に複数の回線事業者が相互接続し合うことで、個々の回線事業者同士がそれぞれ契約したり物理的回線を敷設したりする手間を省くことができる。

### 全体像
![AS_2 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/8b443843-61ef-bddc-f163-2cefa3c6add5.png)

### BGP
Border Gateway Protocol

[EGP](#egp)に分類される、異なる[AS](#as)間のルーティングを行うためのプロトコル。

**Path Vector型**のアルゴリムによりルーティングを行う。

[AS](#as)とは概念のことで、具体的には[ISP](#isp)のことを指すため、[ISP](#isp)間の接続に利用されるルーティングプロトコルとも言える。

[AS](#as)番号を利用したルーティングが行われる。目的地までに経由する[AS](#as)番号の一覧は、**AS Path List**と呼ばれる。

基本的には、経由する[AS](#as)の数がより少ない経路が選択され、このアルゴリズムは**Path Vector**型に分類される。AS Path Listに、もし自身の[AS](#as)番号が含まれていたらループが発生していることになるので、[RIP](#rip)で発生するようなループを回避することができる。

物理的には回線が存在していても、目的地までに経由する[AS](#as)同士が契約していない場合、目的地との通信が成立しないこともある。

![EGP (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/d530f817-cbfa-26c9-ff89-0a8999efb2ee.png)

EGPにおいて、ルーティング情報を交換するルータを**BGPスピーカ**と言う。ルーティング情報交換のためにはBGPコネクションが使用される。

### RIP
Routing Information Protocol

[IGP](#igp)に分類されるルーティングプロトコルの一つ。

**Distance Vector型**のアルゴリズムによって**Dynamicルーティング**を行う。

RIPでは、30秒ごとに自身の知っている情報をブロードキャストで送信することで経路情報（ルーティングテーブル）が構築されていく。

ルーティングテーブルには、IPアドレスに加えて**ホップ数**と呼ばれる経由するルータの数が記録され、ルーティング時には、より少ないホップ数で目的地まで辿り着こうとする。

+ 動的にルーディングを行う反面、経路の変更に時間がかかる
+ ホップ数が最大15と定められているため、大規模なネットワークに適さない
    + ルーティングテーブル構築後に接続が切断された場合、無限カウント（Couting to Infinity）と呼ばれる異常が発生してしまうため、上限数が決められている
    + 無限カウントを防ぐためにスプリットホライズン（Split Horizon）と呼ばれる、経路情報を教わったルータに対しては、逆に自身からは教えることをしないという制御もある
+ 経路上の回線速度を考慮できない（より速い方の回線を選択するというアルゴリズム的な判断ができない）

というデメリットにより、現実的にはほとんど利用されていない。実際の運用では、RIPではなく[OSPF](#ospf)が利用されていることが多い。

#### RIP2
Routing Information Protocol version 2

RIPの改良版プロトコル。

RIPではブロードキャストで送信されていた情報が、RIP2ではマルチキャストで送信される。

#### RIPng
Routing Information Protocol next generation

IPv6で使用されるルーティングプロトコル。RIPのIPv6版。

### OSPF
Open Shortest Path First

[IGP](#igp)に分類される、**Dynamic**ルーティングを行うためのプロトコルの一つ。現在広く利用されている。

**Link State型**のアルゴリズムによってルーティングを行う。（同じく[IGP](#igp)に分類される[RIP](#rip)はDistance Vector型）

OSPFでは、ネットワークは**エリア**と呼ばれる単位に分割される。

各エリア内のルータ（**内部ルータ**）は、基本的にはエリア内のルーティング情報しか持たず（エリア外の情報は最小限しか持たない）、エリアとエリアの境界に位置するルータ（**ABR**：Area Border Router）が各エリアに関するルーティング情報を保持している。

エリア内と、境界のルータがそれぞれ役割を持つことで、全体としては効率的なルーティングを行うことができ、大規模なネットワークにも利用することができる。

OSPFは[AS](#as)内でルーティングを行うため、[IGP](#igp)に分類される。他の[AS](#as)と接しているルータを**ASBR**（Autonomous System Boundary Router）と言う。

:::note info
**内部ルータ**：エリア内のルータ
**ABR**：エリアの境界にあるルータ
**ASBR**：ASの境界にあるルータ
:::

番号が0のエリアは必ず必要で、**バックボーンエリア**と呼ばれる。バックボーンエリアは、他の全てのエリアと隣接させる必要がある。

![OSPF_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/42466e53-7799-cc5c-f2c5-e67c7e9cd637.png)

OSPFでは、ルータは**LSA**：Link State Advertisementと呼ばれるルーティング情報を交換し合い、データベースに情報を集約させている。このデータベースは、**LSDB**（Link State Database）と呼ばれる。

:::note info
**LSA**：ルーティングに必要な接続の状態（link state）情報
**LSDB**：LSA情報を集約したデータベース
:::

LSAの交換は全てのルータが行っているわけではなく、他のルータを代表して**DR**（Designated Router）と**BDR**（Backup Designated Router）が行う（Designated=指定された、任命された）。

DRとBDRはエリア内に一つではなく、セグメントごとに一つ。エリアは複数のセグメントを含むこともあるため、エリア内にDRとBDRが複数存在することもある。

どのルータをDR、BDRにするか任命は、各ルータのPriority（優先度）を基に行われる。Priorityが最も高いルータがDR、次に高いルータがBDRとなる。一度任命された後に、任命されたDRよりもPriorityの高いルータが追加されてもDRは変更されない。

:::note info
**DR・BDR**：他のルータを代表してLSAを交換するルータ
:::

LSAには、
+ 隣接するルータ（Neightboring Router。別の文脈ではネクストホップ。）がどのネットワークに接続しているか
+ どのくらいのコストのルートなのか

などの情報が含まれる。

**コスト**は、各接続（link）に対して自由に値を設定できる。

通常、回線速度が速い link に対しては小さいコストが設定され、遅い link に対しては大きいコストが設定される。ルーティングはコストの合計値が最も小さくなるようなアルゴリズムになっているので、このような設定によって、より速いルートを選択することができる（[RIP](#rip)ではホップ数が小さくなるようにルーティングが行われる）。

ホップ数はルータを一つ経由する度に必ず「1」増えていくが、コストは任意の値を自由に設定することができるため、管理者にとっては[RIP](#rip)よりも柔軟な運用ができる。２台のルータにあえて同じコストを設定して負荷分散させることもある。

## CIDR
Classless Inter Domain Routing

サイダー。ほぼサブネットマスクと同義。

IPv4において、クラスA・B・Cの区分にとらわれず、ネットワークアドレス部とホストアドレス部を任意のブロック単位に区切ること。

クラス分けは歴史的に古い方法であり、有限なIPアドレスを有効に割り振れていなかったことから、サブネットマスク、CIDRのような考え方が生まれた。

## ICMP
Internet Control Message Protocol

```ping```コマンドに代表される[IP](#ip)に関するトラブルシューティング用のプロトコル。

設定が正常に完了したかを知るためや、異常が発生したこと、異常の原因を調べるためなどに利用される。

```tracert```コマンド（Linux系OSでは```traceroute```コマンド）もある。

トランスポート層に分類されるプロトコルであるが、ネットワーク層で動作するやや特殊なプロトコル。ICMPパケットは、下位のネットワーク層の[IP](#ip)によって運ばれる。

L3ヘッダー（ネットワーク層で付与される）には、送信元IPアドレス、宛先IPアドレス、**プロトコル番号**等が格納されているが、その中のプロトコル番号には、ICMPの場合 1 が格納される。ちなみに[TCP](#tcp)の場合は 6 、[UDP](#udp)の場合は 17 なので、このことからも、ICMPが[TCP](#tcp)、[UDP](#udp)同様にトランポート層のプロトコルであることがわかる。

しかし、ICMPは実際にはネットワーク層で動作する（非常にわかりづらく混乱する部分）。ICMPにはトランスポート層の[TCP](#tcp)、[UDP](#udp)のようなデータ転送機能がなく、ペイロードに格納されているのはICMPメッセージ。ICMPの目的はデータの転送ではなく、ネットワークの状態を知る、つまりネットワーク層の機能を補完することにことにある。これらのことから、ICMPは他のプロトコルと比べてやや特殊な位置付けにあると言える。

ICMPパケットにはタイプとコードと呼ばれるフィールドが存在する。

![ICMP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/8b1d584e-0024-a967-1a6e-acdbaef3f9c3.png)

| タイプ | 概要 | 詳細 |
|:-:|:-:|:-|
| 0 | Echo Replay<br>（エコー応答） | `ping`で利用される |
| 3 | Distination Unreachable<br>（到達不能） | コード0：Network Unreachable（宛先IPアドレスへの経路情報がない）<br> コード1：Host Unreachable：目的のホストがネットワークに接続されていない<br> コード4：Flagmentation Needed and Don't Fragment was Set（パケットの分割が必要だが、[PMTUD](#pmtud)によって分割禁止フラグが設定されている） |
| 5 | Redirect<br>（リダイレクト） | もっと良いルーティング経路があることを示す |
| 8 | Echo Request<br>（エコー要求） | `ping`で利用される |
| 11 | Time Exceeded<br>（時間超過） | [TTL](#ttl)が0になったためにパケットが破棄されたことを示す |

### `traceroute`の仕組み
`traceroute`は、パケットが通過した経路上のIPアドレスを調べるためのコマンド。

[TTL](#ttl)が1のパケットを流すと、隣接するルータからタイプ11（Time Exceeded）が返却される。[TTL](#ttl)が2のパケットを流すと、隣接するルータのさらに隣接するルータからタイプ11（Time Exceeded）が返却される。これを繰り返すことで、経路を知ることができる。

![traceroute.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/8ade3b61-a070-f25b-ce5f-f16cab246d5a.png)

### ICMPv6
ICMP for IPv6

IPv6向けのICMP。単にICMPといった場合、IPv4向けのICMPを指すことが多い。

ICMPが無くてもIPv4を使った通信が可能だが、ICMPv6がなければIPv6において通信を行うことはできない。

IPv4では、IPアドレスからMACアドレスを取得するプロトコルが[ARP](#arp)だったのに対して、IPv6ではICMPv6に内包された。

タイプ0~127までがエラー情報、タイプ128~255までがエラー以外の情報となっている。

| タイプ | 概要 | 詳細 |
|:-:|:-:|:-|
| 1 | Destination Unreachable<br>終点到達不能 |  |
| 2 | Packet Too big<br>パケット過大 |  |
| 3 | Time Exceeded<br>時間超過 |  |
| 128 | Echo Request<br>（エコー要求） | `ping`で利用される |
| 129 | Echo Replay<br>（エコー応答） | `ping`で利用される |
| 133~137 | 近接探索メッセージ | IPv6アドレスからMACアドレスを取得するために利用される |

## ICANN
Internte Corporation for Assigned Names and Numbers

アイキャン。IPアドレスを一元管理する組織。

日本国内ではJPINIC（Japan Network Information Center：ジェイピーニック）が管理している。

IPアドレスの申請は[ISP](#isp)に対して行う。

## IP
Internet Protocol

通信プロトコルの一つ。

転送データは**パケットに分割**され、それぞれのパケットが送信元・送信先IPアドレスを持つ。

データリンク層ではプロトコルごとにそれぞれ異なる[MTU](#mtu)を持つが、それらの差異をインターネット層が吸収することで、上位層が[MTU](#mtu)を意識せずデータを転送することができる。

個人的に、プロトコルとしてのIPは非常にふわっとしていて捉えどころがない印象。以下のキーワードを押さえておく。
- **IPアドレス**
- **経路制御（ルーティング）**
- **パケットへの分割**
- [PMTUD](#pmtud)

### IP datagram
インターネット層ではデータの転送単位は**パケット**と呼ぶが、正式には再送制御などが行われる信頼性の高いプロトコルにおける転送単位をパケット、制御が行われないプロトコルにおける転送単位を**データグラム**と呼び分けることがある。

### PMTUD
Path MTU Discovery

経路MTU探索。

送信元ホストから宛先ホストまでの経路上に存在するデータリンク層機器の全てにおける、最小の[MTU](#mtu)のこと、もしくはその[MTU](#mtu)を調べること。

PMTUDでは、パケットへの分割処理がホストで行われ、近年多くのOSで実装されている（[データ　→　パケット　→ データ](#データ--パケット--データ)）。

通常、データリンク層の機器には対応しているプロトコルそれぞれに[MTU](#mtu)が存在する。[MTU](#mtu)以上のサイズのデータを上位層（インターネット層）から送信した場合、データリンク層を通過するときに[MTU](#mtu)へのパケット分割が必要になる。

しかし、パズルのように分割されたデータは、ピースの一つでも欠けてしまえばデータ全体が再構築できなくなるため、なるべく分割のせずに転送したい。

一方で、途中で分割が必要にならないように初めから[MTU](#mtu)よりも大幅に小さな単位で送信することにした場合、データ全体を転送するためのパケット数が増えてしまうため転送効率が悪い。

そのため、通信経路上における最小の[MTU](#mtu)を転送前に把握することが、一番効率の良いパケットサイズを決定する上で重要になる。

探索はIPヘッダに**分割禁止フラグ**を設定したパケットを小さいサイズの[MTU](#mtu)候補値から順に送信していくことによって行われる。

### Routing Table
「このIPアドレス宛はこのルーター、このホスト」などという具合に、ルーターがパケットを転送するための経路制御表。

IPアドレスのうちのネットワーク部が利用される。

スタティックルーティングとダイナミックルーティングがある。

`netstat -r`もしくは`netstat -rn`コマンドで確認することができる。

## Mobile IP
スマホのように場所を移動しながら通信を行う際に、移動後の通信も同じIPアドレスを使用するための仕組み。

**ホームエージェント**と**外部エージェント**が通信を中継することにより実現する。

ホームエージェントは非移動時に接続するネットワーク（ホームネットワーク）上で、移動するホストを監視する役割を持つ。

外部エージェントはホストが移動した先での通信をサポートする。

ホームネットワーク上で使用されるホストのIPアドレスはホームアドレスを呼ばれる。ホームアドレスは「戸籍」のように住所が変わっても変更されない。

スマホが通信を始めた送信時は

`　通信相手　→　インターネット　→　スマホ（移動前）　`

という経路を辿るが、移動後の受信時は

`　通信相手　→　ホームエージェント　→　（インターネット）　→　外部エージェント　→　スマホ　`

というようにエージェントを経由して通信が行われる。インターネット上ではトンネリングが行われる。

この仕組みよって、通信相手側から見るとスマホは常におなじIPアドレス（ホームアドレス）を使っているように見える。

通信がエージェントを経由するため効率が悪い、外部エージェントが存在しない移動場所では利用できないなどの問題点もあり、これを克服したMobile IPv6というものがある。

## MPLS
Multi-Protocol Label Switching

ルーティングに加えて、パケットにラベル（Label）を付与して経路制御を制御することで、通信を効率的に行うための技術。

MPLSにおける経路制御は、ラベルに基づいたフォワーディングテーブルが使用されるため、「ルーティング」ではなく、**フォワーディング**と表現される。

ただし、MPLS機能に対応した**LSR**（Label Switching Router）のみが処理を行えるため、インターネット全体で利用される技術ではない。

ラベルをつけ外しするルータを**LER**（Label Edge Router）と言う。

ラベルを用いて経路制御することで、制御が単純化されて高速になるという利点がある。

![MPLS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/7aa7a96a-2d0f-0cfc-5a6e-7ba8f4a15b00.png)

## NAT
Network Addess Translation

ナット。

プライベートIPアドレスとグローバルIPアドレスを1対1で変換する技術。IPv4におけるIPアドレスの枯渇問題へ対処するために開発された。

互換性がないIPv4とIPv6間で通信を行うために利用される事もある（[NAT64/DNS64](#nat64dns64)）。

異なるネットワーク間の境界にあるルータ、[FW](#fw)、ゲートウェイなどに実装され、インターネットとの境界でアドレス変換が行われる。（インターネット上の通信ではグローバルIPアドレスが必要）

サーバとして利用する端末が予備用、検証用、本番用など複数存在する場合、NATを使用することで、それぞれにプライベートIPアドレスを割り当てておき、外部公開されるグローバルIPアドレスは固定したままサーバを切り替ることができる。

外部からのアクセスは常に同じグローバルIPアドレスに対して行われるため、プライベートIPアドレスの変更が外部に対して影響を与えない。

プライベートIPアドレスとグローバルIPアドレスの対応表を**NATテーブル**という。

単にNATと言った場合、実際には[NAPT](#mapt)を指していることが多い。

### ソースNAT
Source NAT、送信元NAT、SNAT

送信元IPアドレスをプライベートIPアドレスからグローバルIPアドレスへと変換する。

一般家庭などで、PCからインターネットへのアクセスなどで利用される（PCがグローバルIPアドレスを持たない場合）。

### ディスティネーションNAT
Destination NAT、宛先NAT

宛先IPアドレスをグローバルIPアドレスからプライベートIPアドレスへと変換する。

インターネットからサーバへのアクセスで利用される。

### NAPT
Network Address Port Translation

ナプト。

PAT、**IPマスカレード**と呼ばれる事もある。製品やメーカーによってはNAT+と表記されることがある。

アドレスの変換に**ポート番号**を使用することで、グローバルIPアドレスを複数のプライベートIPアドレスに紐付けすることができる。ポート番号は 16 bit の整数で表現されるため、その範囲内で複数のプライベートアドレスを変換することができる。

プライベートIPアドレス、ポート番号、グローバルIPアドレスの対応表を**NAPTテーブル**という。

[TCP](#tcp)の場合、コネクション確立のためのSYNパケットが転送されるタイミングでテーブルに追加され、コネクション切断のFINパケットが転送されるタイミングでテーブルから削除される。

会社では社員のPCはグローバルIPアドレスを持たず、プライベートIPアドレスしか持たないことが多い。このような場合に、社内ネットワークの各社員のPCからインターネットへの接続ではNAPTが利用されている。

モバイルルーターやスマホのデザリングでも利用される。

### NAT64/DNS64
互換性がない IPv6 - IPv4 間で通信するための仕組み。

[DNS](#dns)と[NAT](#nat)の組み合わせにより動作する。

IPv6からIPv4に向けて通信する場合、IPv6を利用するホストからDNS64サーバへ問い合わせをすると、DNS64サーバからは特殊なIPv6アドレスが返却される。

このIPv6アドレスは`64:ff9b::`から始まり、末尾の4byteにはIPv4アドレスが埋め込まれている。

埋め込まれたIPv4アドレスはNAT64によって取得・変換され、実際のIPv4ホストに届けられる。

### CGN
Carrier Grade NAT

一般家庭ではなく、[ISP](#isp)や通信キャリア級のレベル（Carrier Grade）で利用されるIPアドレスの変換技術。

LSN（Large Scale NAT）とも呼ばれる。IPv4からIPv6に移行するまでの繋ぎの技術として開発された。

`　社員PC　-　企業　-　ISP　-　インターネット　`

という構成で、社員PCだけでなく企業にもプライベートIPアドレスを使用させ、複数の企業間で一つのグローバルIPアドレスを共有させる。

プライベートIPアドレスは本来、重複の心配が要らないため自由に決めることができるが、ここで企業に割り当てることができるプライベートIPアドレスはREC6598によって定められている。これを**シェアードIPアドレス**と言う。

シェアードアドレスは重複が起こらないように範囲がRFC6598で決められている。日本には`100.64.0.0/10`が割り当てられている

この方式ではIPアドレスの変換が2段階で行われるため、**NAT444**とも呼ばれる。
`　ISPのグローバルIPv4アドレス　→　企業のIPv4プライベートアドレス　→　社員PCのプライベートIPv4アドレス　`

## TTL
Time To Live

パケットの生存時間。ルータを経由するたびに１ずつ減っていく。

## VRRP
Virtual Router Redundancy Protocol

複数のルータを論理的に１台に見せることで、ルータの冗長化をするためのプロトコル。

ルータ以外にもメールサーバの冗長化などにも使用されることがある。

デフォルトゲートウェイとして設定されたルーターなどは、1台が故障しただけで配下全てがインターネット接続できないなど、故障よる影響がとても大きい。VRRPはこのようなデフォルトゲートウェイの冗長化などに利用される。

常時稼働するマスタルータと非常時用のバックアップルータのIPアドレスが、共通の仮想IPアドレスと紐づくことで実現される。この時の紐付け情報にはマスタルータとバックアップルータを区別するための優先度情報が含まれる。

この場合、PCのデフォルトゲートウェイにルータの仮想IPアドレスを設定するだけで良い。

常時稼働するマスタルータからは、定期的（1秒に1回など）にバックアップルータに対して **VRRP advertisement**（VRRP 広告）がマルチキャストで送信される。

バックアップルータは、定期的な VRRP advertisement が3回分届かなくなった時点で、マスタルータが故障したと判断し、マスタルータに昇格する。

マスタルータとバックアップルータは共通の仮想IPアドレスを持つため、マスタルータ昇格時にはマスタルータと同じ仮想IPアドレスが引き継がれる。MACアドレスについても同様に、共通の仮想MACが引き継がれる。

## ループバックアドレス
自分自身のアドレス、もしくはホスト名のこと。

`127.0.0.1`、`localhost`など。


















# Transport 層　（データグラム・セグメント）

Transport層は[UDP](#udp)、[TCP](#tcp)が主なプロトコルで、通信の信頼性などの制御を行う。

**ポート番号**により、Application層のプログラムを識別する（ポート番号だけでアプリケーションを特定するのではなく、宛先IPアドレス、送信元IPアドレス、宛先ポート番号、送信元ポート番号、プロトコル番号のセット情報を識別子として利用する。）。

:::note info
**脳内イメージ**（あくまでもイメージです）
Data Link層　→ MACアドレス　でホストを識別
Internet層　→ IPアドレス　でネットワークデバイスを識別
Transport層　→ ポート番号　でアプリケーションを識別
:::

![OSI_transport.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/06958088-b9eb-033a-1cca-f8957324a1f5.png)

![transport_datagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/7d96b153-2516-bd90-3b0a-eb70943e10c4.png)

## DCCP
Datagram Congestion Control Protocol

輻輳制御もできる[UDP](#udp)のようなプロトコル。

トランスポート層のプロトコルでコネクション型であるが、[UDP](#udp)とは別のプロトコル。

## QUIC
Quick UDP Internet Connections

Google社が提案し、[IETF](#ietf)が標準化を進めている[TCP](#tcp)の次世代のプロトコルになるかもしれないと言われているトランスポート層のプロトコル。

[TCP](#tcp)には無い暗号化機能を持つ。

## SCTP
Stream Control Transmission Protocol
トランスポート層のプロトコル。[マルチホーミング](#マルチホーミング)の機能を持つ。

## TCP
Transmission Control Protocol

データの順番を並び替えたり、通信に矛盾がないかを確認するためのプロトコル。

- **順序制御**
    - パケットが順番に届かなくても並べ替えることができる
- **再送制御**
    - 届かなかったパケットを送り直してもらう
- **フロー制御**
    - 受信側の能力に応じて送信データ量を調節する（[スライディングウィンドウ](#ウィンドウ)）
- **輻輳制御**
    - 回線が混雑してきたら送信を控える

を行う。

:::note info
**TCP** : 低速。信頼性が高い。コネクション型。
**UDP** : 高速。信頼性が低い。コネクションレス型。
:::

個人向けの動画のストリーミングでは、リアルタイムの動画の同時一斉配信などと違ってそこまで即時性が求められないため、TCPが利用される。

### 3ウェイハンドシェイク
TCPのコネクションは、3ウェイハンドシェイクによって確立される。

![tcp_connection.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/fac3d39b-147b-53ba-d5ff-d35477173614.png)

コネクションの切断時にも丁寧なやり取りが行われる。

![tcp_connection_fin.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/2b5f7e1d-95f9-3ae0-548c-a62b7b9a18e8.png)

### 再送制御
コネクションが確立すると、そこから実際のデータが送受信されることになるが、TCPでは一つのセグメントを送信するごとに相手先に届いたかどうかを確認している。いちいち届いたかどうかを確認するので、効率は悪いがデータが欠けてしまうことがない。この制御方法は、TCPが[UDP](#udp)と比べて信頼性が高い一方で速度が遅いと言われる要因でもある。

相手にパケットが届いたかどうかは、相手から返送されるACK（確認応答）によって確認する。

![TCP_window_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/3e105138-12b2-0243-9e05-ee889d7ae2ea.png)

送信側は、送信したパケットに対するACKが一定時間経っても返答されない時、パケットを再送する（再送制御）。パケットを送信した後、消失したと判断する時間を**再送タイムアウト時間**と言う。

通信は物理的には電波や電気、光なのでその速度は変えることができない。そのため通信にかかる時間は相手との物理的な距離に比例する。通信距離が長い場合は正常に通信できていたとしても時間はかかってしまうし、距離が短い場合には少ない時間で済む。そのため遠い距離間で通信を行う場合、タイムアウト時間は大きな値である必要があるし、近い距離間の通信では短い時間にした方がより早くパケットの消失を知ることができる。

TCPでは、効率的な再送タイムアウト時間を決定するためには、**ラウンドトリップ時間**（RTT：Roud Trip Time）と**揺らぎ**（分散。ラウンドトリップ時間が短くなったり長くなったりする揺らぎ）がまず計測されて、これらの合計より少し大きな値がタイムアウト時間とされる。

UNIX系OS、Windowsでは0.5秒単位でタイムアウト時間が制御されていて、初期値は6秒程度になっている。相手からACKが返送されず、パケットを再送する際には、タイムアウト時間は指数関数的に増やした値が再設定される。

一定回数だけ再送してもACKが返送されない場合には、コネクションは強制的に切断される。

### シーケンス番号
TCPが行う多くの制御はシーケンス番号をもとに行われる。

各セグメントにシーケンス番号が振られることによって、順不同でセグメントを受信しても受信側で本来の順番に並び替えることができる（**順序制御**）。

シーケンス番号は、32ビットの符号なし整数で表現される。

シーケンス番号は、セグメントにつけられるIDと考えることもできるが、番号の振り方には一定のルールが存在する。

具体的には、シーケンス番号の「1」はデータ「1byte」を意味している。そのため、一つのデータ内のセグメントに振られるシーケンス番号には一定の連続性がある。ただし、TCPの仕様上、シーケンス番号はデータサイズを表す訳ではなく、データのインデックス（配列のインデックスのようなもの）を表す訳でもない。正確にはシーケンス番号は、データ1 byteごとの区切りに対して振られた番号であり、図にすると以下のようになる。

![TCP_sequense.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/2bfcdb51-0fec-06a4-564f-689995d6658b.png)

初期値は、3ウェイハンドシェイク時に**乱数**によって決められる。

受信側はACKの中に、ACK番号（確認応答番号）と呼ばれる次回送って欲しいシーケンス番号を格納する。この次回分として要求されるシーケンス番号は、届いたシーケンス番号にそのセグメントのデータ長を足すことで計算される。

シーケンス番号の初期値が乱数なのは、異常が発生してコネクションを再接続する時に切断前のコネクションで使用していたシーケンス番号と新しく発行するシーケンス番号が重複しないようにするため。

![TCP_sequense_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/101ea53c-073f-cf82-1063-02b40deb573b.png)

### ウィンドウ
TCPでは原則、データの受信側は1セグメントを受信するたびにACKを送信し、送信側は、ACKを確認するまで次のセグメントを送信することができない。

![TCP_window_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/74053299-0eba-41f6-b003-95373177c76a.png)

ここでウィンドウという概念を用いることで、**一つ一つのACKを待たずに複数のセグメントを連続して送信することができるようになる**。

![TCP_window_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/5cc8626b-e1f2-56c4-30c6-2a616a299618.png)

ACKを確認せずに連続送信できるセグメント部分を**ウィンドウ**を言い、その合計サイズを**ウィンドウサイズ**と言う。

ウインドウは実体を持たない概念であり、その言葉の通り、セグメントを覗く「窓」のようなもの。ACKの返答があった時は、次のセグメントを送信することができるため、ウィンドウが移動してスライドしているように見える。

![TCP_window_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/5ec29c3c-588e-eeb1-4379-6046ce18b68f.png)

![TCP_window_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/2ca15bc0-0037-e57b-7e15-0ba2ec3ec89c.png)

ウィンドウ内のセグメントは、送信が終了したとしてもACKを確認するまでは再送が必要になるかもしれないため、送信側では破棄することができない。このACK確認前のウィンドウ内のセグメントは、ACKを確認できるまでの間は送信側のバッファに格納されている。

### MSS
Maximum Segment Size

コネクション確立時に決定される[TCP](#tcp)使用時の最大セグメント長。

具体的には、3ウェイハンドシェイク時にお互いがMSSを送り合い、より小さい方のMSSが採用される。

上位層の[IP](#ip)で分割されないサイズにすることで、[オーバーヘッド](#オーバーヘッド)を減らすことができる（参照：[PMTUD](#pmtud)）。

### フロー制御
ウィンドウサイズは実は通信中、動的に値が変わり、ACKの度に受信側から通知されている。

受信側機器でセグメント受信以外のタスクを行っている場合、セグメントを受信したからといって解析処理（下位層プロトコルのヘッダを取り除いて、アプリケーション層のペイロードを取得する処理）までが完了している訳ではない。そのため受信したセグメントは一旦、受信側のバッファに保管される。この受信側でバッファ可能なセグメント量が**ウィンドウサイズ**。

バッファ領域は有限なので、ウィンドウサイズはセグメントを受信する度に減っていく。そのため送信側には現時点での受信・バッファ可能なセグメントの量、すなわちウィンドウサイズを知らせなくてはならない。ウィンドウサイズはセグメント内にあフィールドの一つとして格納されている。

受信側でバッファが減ってきたことを知った送信側は、次のセグメント送信を控える（一時停止する）**フロー制御**を行う。

![TCP_window_flow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/93f25201-5764-ed98-59eb-ac86931541ad.png)

一時停止したセグメントの送信は、受信側から受信用バッファに空きができたことを知らせる**ウィンドウ更新通知**を受け取ることで再開される。（このウィンドウ更新通知セグメントが通信途中で消失した場合に備えて、送信側ではセグメント送信を一時停止している間、**ウィンドウプロープ**と呼ばれる「ペイロードが1byte」の特別なセグメントを時々送信することで再開可能なタイミングを検知しようとしている）

### 輻輳制御
フロー制御は、受信側のバッファの状態に応じた送信量の調節だったが、輻輳制御では、ネットワークの混雑状況に応じた送信側での送信量の調節が行われる。

輻輳制御もフロー制御同様に、ウィンドウサイズを増減させることにより行われる。

フロー制御では受信側主導でウィンドウサイズの調整が行われるのに対して、輻輳制御では**送信側主導**で制御が行われる。

輻輳制御では、**スロースタート**と呼ばれるアルゴリズムにより、コネクション確立直後は小さなウィンドウサイズ（1[MSS](#mss)分）から通信を開始することになっている。送信側では、ACKを受信する度に[MSS](#mss)は「1[MSS](#mss)分」だけ増やされる。

この時、ウィンドウサイズは指数関数的に増加する。

![TCP_window_flow_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/3a4c2344-39d2-b7ab-79a7-0fa39d65c5e8.png)

そのため、**スロースタート閾値**を超えると増加量が指数関数的な増加から、直線的な比例になるように制御される。

スロースタート閾値はコネクション確立直後は設定されておらず、セグメントの再送処理が発生した際に初めて設定される。具体的にはセグメントが通信回路の輻輳によって失われ、再送処理が必要になった時その時点のウィンドウサイズの半分の大きさがスロースタート閾値として設定される。

## UDP
User Datagram Prtotocol

コレクションレス型のトランスポート層の通信プロトコル。

[TCP](#tcp)のようにパケットごとにACK応答、データの順序制御を行わない代わりに**高速な通信が可能**。

IP電話や、不特定多数へ動画のリアルタイム配信するなどの即時性が求められる場面で使用される。

回線が混雑していても輻輳制御をしない。

## TCP / UDP を利用する（アプリケーション層）プロトコル
:::note info
**TCP** : **[HTTP](#http)**、**[POP3](#pop3)**、**[SSH](#ssh)**、**[FTP](#ftp)**、**[Telnet](#telnet)**、**[DNS](#dns)**のゾーン転送**
**UDP** : **[DNS](#dns)の問い合わせ**、[SNMP](#snmp)**、**[DHCP](#dhcp)**、**[TFTP](#tftp)**、**[NTP](#ntp)**
:::

# Application 層（メッセージ）
TCP / IP モデルでは最上位に位置するプロトコル。

下位層のような汎用性は無く、**特定のアプリケーションや用途に特化**したプロトコル層。広く普及したプロトコルを複数のアプリケーションが使用することもあれば、アプリケーションの開発者が独自のプロトコルを定義することもある。

![OSI_application.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/9aefe98e-1f98-6c7e-8ffe-fbbb47a8d026.png)

## 電子メール

### MIME
Multipurpose Internet Mail Extensions

電子メールで静止画、動画、音声などのテキスト以外の様々なメディアタイプ、ファイル形式を扱うための規格。

`text/plain`や`application/json`など。

### SMTP
Simple Mail Transfer Protocol

メール**送信**時に使用されるプロトコル。

[TCP](#tcp)の**ポート番号25番**が使用される。

メールサーバ同士でのメール転送でも利用される。

送信者を認証する仕組みがなく、なりすましや迷惑メールなどの攻撃を受けやすいため、
[POP before SMTP](#pop-before-smtp)、[SMTP AUTH](#smtp-auth)、[SPF](#spf)、[DKIM](#dkim)、[DMARC](#dmarc)、[OP25B](#op25b)などの対策がとられる。

（昔はメールサーバにメールを溜めるのではなく、ホスト同士がSMTPでメールを送信し合っていた。単純に送り合うだけなので、POPというメールを取りに行く仕組みは無い。しかし、お互いのデバイスが起動していないといけないため、PCをシャットダウンした状態の相手には届けることができない。そのため、常時稼働するメールサーバにSMTPで送り、POPでPCを起動したタイミングで取りに行くという仕組みが生まれた。）

### POP3
Post Office Protocol

メール**受信**時に利用されるプロトコル。

メールサーバのメールボックスからメールを取得する際に使用するプロトコル。

[TCP](#tcp)コネクションを利用する。

受信に関するプロトコルのみで、送信機能は持たない。メール本文や、パスワードが平文のまま送信されるという問題がある。

### IMAP
Internet Message Access Protocol

メール**受信**時に利用されるプロトコル。

[POP3](#pop3)のように、メールサーバからダウンロードしたメールをクライアント側で管理するのではなく、**サーバー上で保管、管理する**。

この仕組みにより、自宅や会社からなど複数の端末から同じ情報にアクセスしたり、特定の添付ファイルだけをダウンロードすることが可能になる。

[POP3](#pop3)ではクライアントがメールの保管をするので、複数の端末（クライアント）が同じ情報を共有することはできない。

![SMTP_POP_IMAP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/61609477-417c-9588-ef95-7cb292d118b8.png)

:::note info
**SMTP**：メール**送信**のプロトコル。
**POP**：メール**受信**のプロトコル。メールの管理を**クライアント**が行う。
**IMAP**：メール**受信**のプロトコル。メールの管理を**サーバ**が行う。
:::

## 電子メールのセキュリティ
:::note info
電子メールのセキュリティ分野では、プロトコル名がいくつも登場するので目的別に整理して覚えたい。

**送信者側の目線**
目的：自身の正当性を証明したい。また、自身のドメインが不正利用されないようにしたい。
プロトコル：[SMTP-AUTH](#smtp-auth)、[POP before SMTP](#pop-before-smtp)、[DMARC](#dmarc)

**受信者側の目線**
目的：送信者が正しい相手かどうかを検証したい。
プロトコル：[SPF](#spf)、[DKIM](#dkim)
:::

### POP before SMTP
[POP3](#pop3)と[SMTP](#smtp)の組み合わせによって、メールサーバに対する認証を行う手法の一つ。

セキュリティ上の問題があるため、現在ではPOP before SMTPよりも[SMTP AUTH](#smtp-auth)が推奨されている。

通常、メールサーバーは、メール**受信**時に[POP3](#pop3)を使用し、メール**送信**時に[SMTP](#smtp)を使用する。[POP3](#pop3)が認証を必要とするプロトコルなのに対して、[SMTP](#smtp)は認証を必要としていない。

POP before SMTPは、メール**受信**時に[POP3](#pop3)で認証が成功したら、一定時間だけメール**送信**時の[SMTP](#smtp)を許可する。

### POP3S
Post Office Protocol version 3 over SSL / TLS

POP3に通信そのものを暗号化する [SSL](#ssl) / [TLS](#tls) を組み合わせたプロトコル。

POP3 と POP3S は、 HTTP と HTTPS のような関係。

### SMTP AUTH
Simple Mail Transfer Protocol Authentication

ユーザー名、パスワードによる**認証付き**のメール転送プロトコル。

メールサーバがクライアントからメールの送信依頼を受け付けたときに、正当なクライアントかどうかを認証する。

具体的には、ユーザはクライアントソフトにおいて、アカウントに紐づくユーザ名、パスワードを入力し、その情報が送信側メールサーバに送信されることで、認証が行われる。

### SPF
Sender Policy Framewwork

電子メールにおける**送信元の偽装を防ぐ**ための認証技術の一つ。

受信側のメールサーバと[DNS](#dns)サーバで、メール送信者のドメインが許可したものかどうかの認証が行われる。

具体的には受信側のメールサーバが[DNS](#dns)サーバに問い合わせを行い、[DNS](#dns)サーバは自身のゾーンファイル（設定ファイル）の**SPFレコード**を見て、許可して良いIPアドレスかどうかを確認する。確認結果はメールサーバに対して回答される。

[DMARC](#dmarc)や[DKIM](#dkim)と組み合わせて使用される。

SPFレコードとTXTレコードは同じものを指す。正確には`v=spf1`から始まるTXTレコードがSPFレコードと呼ばれる。

SPFレコードでは以下の構文が使用される。

```shell
v=spf1 +許可するIPアドレス1 +許可するIPアドレス2 -all
```

`spf1`は使用するプロトコルのバージョンが「1」であることを示し、`+`は許可するIPアドレス、`-`は拒否するIPアドレスを示す。上のコマンドはIPアドレス1 、IPアドレス2以外は許可しないことを意味する。

### DKIM
DomainKeys Identified Mail

電子メールが改ざんされていないことを検証するための認証技術の一つ。

**電子署名**を利用してメールの送信者のドメインが正当であること、メールの内容が改ざんされていないことを検証する。

電子署名は送信者側のメールサーバで行われる。署名情報はヘッダに追加され、それを受信側メールサーバで検証する。

送信者による署名は、送信者の秘密鍵によって行われる。受信側メールサーバによる署名の検証は、送信者の公開鍵によって行われる。送信者の公開鍵は、送信者のドメインの[DNS](#dns)のDKIMレコードで公開されている。

### DMARC
Domain-based Message Authentication, Reporting and Conformance

自分が送信したメールが [DKIM](#dkim) や [SPF](#spf) による認証に失敗した時、そのメールがどのように取り扱われるか（Policy）を事前に決めておく仕組み。

具体的には [DNS](#dns) サーバの DMARC レコードに登録を行うことによって実現する。

認証に失敗したことを報告するメールアドレスを指定することによって、攻撃者はなりすましメールの送信が認証に失敗した際に、本物のドメイン所有者に報告されてしまうことになるため、これによって被害を軽減、まt防ぐことができる。

なりすましメールの送信を検知したら破棄させることもできる。

### OP25B
Outbound Port 25 Blocking

[ISP](#isp)が実施するメールセキュリティ対策の一つ。

[ISP](#isp)の外側に存在するメールサーバの[TCP](-TCP)ポート25番（[SMTP](#smtp)で利用されるポート）に対して、[ISP](#isp)の管理しているメールサーバを経由せず送信されたメッセージを遮断（Blocking）する。（逆方向は制限しない）

これにより、迷惑メールの送信を防ぐことができる。

不正なメール送信を防ぐことができる一方で、複数の[ISP](#isp)を利用しているユーザがメール送信をしようとする場合や、自身でメールサーバを構築したユーザが直接[TCP](-TCP)ポート25番を利用しようとしてOP25Bによって拒否されることがある。

このような場合は**サブミッションポート**587番を利用してブロッックを回避することがある。

サブミッションポートとは電子メールの送信（Submission）に使用される特定のポート（587）を指す用語。

「ブロックを回避する方法があるならOP25B自体意味あるの？」と思うが、ポート番号587では[TLS](#tls)、[SSL](#ssl)がサポートされていて、さらに認証が必要になっている。悪意のある者が利用しようとした場合、認証時にアカウント名や自身の情報の痕跡が残ってしまうためこれが抑止力として働く。

### APOP
Authentication Post Office Protocol

[POP3](#pop3)で課題とされていた、パスワードが平文のまま送信される問題を解決するプロトコル。

実際にはあまり普及していない。

## DHCP
Dynamic Host Configuration Protocol

ネットワーク上のデバイスに自動的に IP アドレスを設定したり、[DNS](#dns) サーバの設定などのネットワーク設定情報を割り当てるためのプロトコル。

IPv4 だけでなく IPv6 でも利用される。

自動的に設定を行うことができるため、デバイスごとに手動で設定を行う手間を大幅に省くことができる。

ノート PC やスマホなどの持ち運び型のデバイスは、固定の IP アドレスが設定されておらず、通信開始時に DHCP によって動的に IP アドレスが取得され、その IP アドレスを基に通信を行っていることが多い。そのため、同じデバイスを利用していたとしても、デバイスが常に同じIPアドレスを使用しているとは限らない。

DHCP を利用するためには、クライアントと **同じセグメント上に DHCP サーバを配置する** 必要がある。

クライアントはまず、ブロードキャストで **DHCP Discover** （DHCP 要求）を送信する。DHCP 要求を受信した DHCP サーバは、クライアントに割り当てる IP アドレスを **DHCP Offer** を通じて提案する。

DHCP Offer を受け取ったクライアントは、再び **ブロードキャスト** で **DHCP Request** を送信し、提案された IP アドレスを使用したいということを伝える。

これを受け取った DHCP サーバは承諾したことを **DHCP Acknowledgement** によって返答する。

![DHCP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/a9a138d5-8259-076f-62f1-ca6244a6393d.png)

DHCP サーバは通常、同じセグメントに複数配置することが推奨されている。

ブロードキャストで送信された DHCP Discovery 、DHCP Request はこの複数配置された DHCP サーバに届く。

1 回目の DHCP Discovery は DHCP サーバの MAC アドレスを知らないためにブロードキャストで送信される。この時 DHCP サーバの MAC アドレスは把握できるため、2 回目の DHCP Request はユニキャストで送信しても良さそうだが、これもブロードキャストによって送信することで 2 台の DHCP サーバが重複して IP アドレスを払い出すことがない仕組みになっている。

クライアントが複数の DHCP サーバから DHCP Offer を受信した際は、基本的にはより応答が早かった方の DHCP Offer が採用される。

また DHCP サーバにはあらかじめ払い出し可能な IP アドレスの範囲、サブネットマスク、デフォルトゲートウェイを設定しておく必要がある。またクライアント側も、IP アドレスを自動で設定する機能を有効化しておかなければならない。

多くの家庭用のブロードバンドルータには DHCP サーバの機能がある。また、Windows Server などのサーバ用 OS にも標準で搭載されてることがある。

プラグアンドプレイ（[PnP](#pnp)）を実現するために使用されるプロトコルでもある。

### DHCPリレーエージェント
クライアントからの DHCP Request 、 DHCP Discover がルータなどによって別のセグメントへ中継される機能、またはその設定がされた機器。

ブロードキャストによる DHCP Request 、 DHCP Discover は同じセグメント内にしか届かないが、**ルータ** のDHCPリレーエージェントの設定を有効化しておくことで、異なるセグメントにも届くようになる（ルータが DHCP を中継するエージェントとして機能するようになる）。設定が有効化されたDHCPリレーエージェントには、DHCP サーバの IP アドレスが設定される

これによって、セグメントごとに DHCP サーバを配置するのではなく、複数のセグメントが一つの DHCP サーバを共有できるようになる。

ブロードキャストで DHCP Request 、 DHCP Discover を受信したルータはユニキャストでこれらを転送する。

### DHCPスヌーピング
snooping=覗き見る

スイッチなどが DHCP のパケットを覗き見ることで、悪意のある者が DHCP サーバになりすます DHCP スプーフィング（spoofing=なりすます）などの攻撃を防ぐセキュリティ機能。

スイッチにはあらかじめ信頼できる DHCP サーバをポート番号を紐付けて登録しておき、登録されていないポートからの DHCP メッセージを破棄する。

また、DHCP メッセージによる IP アドレスの割り当てを監視し、割り当てられた IP アドレスと MAC アドレスを記憶しておくことで、正規の DHCP サーバが割り当てていない IP アドレスからの通信を攻撃とみなして遮断する。

## DNS
Dynamicynamic Name System

ドメインとIPアドレスを変換する（名前解決）ための仕組み。

インターネット上のDNSサーバは階層化されていて、下位の階層で名前解決できなかった時は、上位の階層のDNSサーバに再問い合わせが行われる。

DNSサーバには[リソースレコード](#リソースレコード)と呼ばれる情報が保持されている。

https://qiita.com/AsahinaKei/items/aa97c398e832d9a22e92

## FTP
File Transfer Protocol

ファイルを転送するためのプロトコル。

利用する場合にはFTPクライアントと呼ばれるソフトウェアを使う。

インターネット上には **anonymous FTP** と呼ばれる、誰でも利用できるFTPサーバが存在する。anonymous FTPでは、アカウント名「anonymous」または「ftp」でログインすることができる。

[HTTP](#http)などの通信方法とは異なり、データ**制御用**（21番）のコネクションと、データ**転送用**（20番）のコネクションが、ポート番号によって分けられている。制御用のコネクションでは、ログイン、ファイル名、転送方法などの情報を扱う。

データが平文で送信されるため、[SSH](#ssh)による暗号化を行う[SFTP](#sftp)が利用されることもある。

### SFTP
SSH File Transfer Protocol

[FTP](#ftp)通信を[SSH](#ssh)で暗号化したファイル転送プロトコル。

### TFTP
Trival File Transfer Protocol

Trivial=些細な

簡易型の[FTP](#ftp)。

[FTP](#ftp)では[TCP](#tcp)が使用されるのに対して、TFTPでは[UDP](#udp)が使用される。

## FQDN
Fully Qualified Domain Name

完全修飾ドメイン名。

ホスト名とドメインで構成される。負荷分散などのために、一つのドメインに対して、複数のコンピュータが紐づけられることもある。

ホスト名は、インターネット上の特定のコンピュータに付けられる名前であり、慣習的にWebサーバには`www`（World Wide Web）、[DNS](#dns)サーバには`ns`（Name Server）、メールサーバには`mx`（Mail Exchanger）などのホスト名をつける。これら以外の名前も当然つけることができる。

ドメインは、インターネット上で組織やネットワーク、個人を識別するための情報。ネット閲覧時にURLなどの`www`はよく目にするが、それぞれのドメインが持つ`www`という名前がついたWebサーバを指し示している。

ドメインはインターネット上の住所、ホスト名はインターネット上の名前（住所を除いた）に相当する。

## H.323
IPネットワーク上で音声や動画を交換するためのプロトコル体系。

## HTTP
Hyper Text Transfer Protocol

[HTML](#html)文書、画像、音声、動画の送受信で使用されるプロトコル。

クライアントとWebサーバ間で使用される。

認証方法には**Basic認証**と**Digest認証**がある。

Basic認証ではユーザIDとパスワードが平文のまま転送されるのに対して、Digest認証ではハッシュ化された状態で転送される。

## LDAP
Lightweight Directory Access Protocol

エルダップ。

**ディレクトリサービス**にアクセスするためのプロトコルの一つ。

ディレクトリサービスとは、データ、リソース、ネットワーク上の資源を階層的に管理する仕組みやサービスのことを指す。

ディレクトリサービスにおける「ディレクトリ」は、Linuxのファイルシステムにおける「ディレクトリ」のことではない。

元々ディレクトリには「directory=住所録、案内板」という意味があり、「Directory Service」は一般英語で何らかの案内サービスのことを指す。ネットワークにおけるディレクトリサービスが提供する情報は、実は定義されておらず、時と場合によって異なる。情報を一元管理するコンピュータを ディレクトリサーバ と言い、情報の取得や操作を行う側を ディレクトリクライアント と言う。

クライアントはネットワーク上に点在する資源を一元管理しているディレクトリサーバを通じて各資源にアクセスを行うため、物理的な資源の場所を意識する必要がない。またサービスによっては、シングルサインオン、各資源へのアクセス制御機能（特定のユーザのみにアクセス権を与える）を提供するものもある。

ディレクトリサービスを提供する具体的なソフトウェアには **Active Directory**（Windows Serverに内包）、OpenLDAP（OSS）などがある。

[DNS](#dns) もディレクトリサービスの一つであり、ドメイン名やIPアドレスなどが管理対象の「資源」に当たる。資源情報を保持する DNS サーバは、ディレクトリサービスにおけるディレクトリサーバに該当する。

## NTP
Network Time Protocol

ネットワークに接続された機器の時刻を同期するためのプロトコル。

具体的には、マスターとして機能するNTPサーバがクライアントに時刻情報を提供することによって同期を行う。時刻情報の提供は、UDPポート123番が使用される。

クライアントは定期的にNTPサーバにリクエストを送信している。

NTPサーバは**Stratum**（ストラタム）と呼ばれる階層構造を持っている。

Stratum LevelはNTPサーバの信頼性を示す指標であり、Stratum0は最も信頼性の高い原子時計やGPSなどを意味する。Stratum Levelの高いサーバが下位のサーバに時刻情報を配信している。

## PAC
Proxy Auto Config

プロキシサーバの設定で使用する自動設定用のファイル（拡張子もpac）。JavaScriptの形式で記述されている。

PACを使用することでブラウザがプロキシをどう利用するかを条件設定したりして柔軟に設定することができる。

## RR
Resource Record

リソースレコード。

[DNS](#dns)サーバが保持している、ドメインとIPアドレスの対応情報。Aレコード、MXレコード、NSレコード、SOAレコードなどの種類がある。

| レコード名 | 役割 |
|:-|:-|
| Aレコード | Address Record<br>ドメインとIPv4アドレスを関連づける。 |
| AAAAレコード | IPv6 Address Record<br>ドメインとIPv6アドレスを関連づける。 |
| CNAMEレコード | Canonical Name Record<br>エイリアスを指定することで、１つのホストに複数のドメインを紐づける。（canonical=標準的、正規の） |
| MXレコード | Mail Exchanger Record<br>メール送信時において、宛先メールアドレスに含まれるドメインと紐づくメールサーバを指定する。また、そのメールサーバの優先度も指定することができる。 |
| NSレコード | Name Server Record<br>ドメインの権威サーバ情報。 |
| PTRレコード | Pointer Record<br>逆引きルックアップのために使用される。IPアドレスからホスト名への逆引き情報を提供する。 |
| SOAレコード | Start Of Authority Record<br>その[DNS](#dns)サーバが管理する領域(ゾーン)に関する情報。 |

## SNMP
Simple Network Management Protocol

ルータやスイッチなどのネットワーク機器、サーバなどの遠隔監視、管理に使用されるプロトコル。

機器の異常や、パフォーマンスの低下を検知して監視システムに通知する、情報収集機能を持つ。

監視対象の機器に搭載されたソフトウェアを**SNMPエージェント**、SNMPエージェントと通信して情報収集、設定変更などを行うソフトウェアを**SNMPマネージャ**という。

収集した情報は[MIB](#mib)と呼ばれるSNMPエージェントのデータベースに保存される（SNMPマネージャはエージェントの[MIB](#mib)を閲覧、編集することができる）。

### MIB
Management Information Base

[SNMP](#snmp)マネージャが収集した情報を保存する[SNMP](#snmp)エージェントのデータベース。

階層構造を持ち、各ノードはOID（ObjectID）によって識別される。

ネットワークインターフェースのトラフィック統計、デバイスのハードウェア状態、システムのリソース利用状況など、さまざまな情報が含まれる。

## SSH
Secure Shell

主に、リモートシステム（ネットワークを介した別のコンピュータへの操作）へのアクセス・ファイル転送・通信を**暗号化**によって安全に行うためのプロトコル。

似たものに[TELNET](#telnet)があるが、[TELNET](#telnet)では通信内容が暗号化されない。

[ポートフォワード](#ポートフォワード)機能がある。

## TELNET
テルネット。

ネットワークを通じて、遠隔地のコンピュータにログインして操作するためのプロトコルの一つ。似たものに[SSH](#ssh)がある。

[TCP](#tcp)コネクション上で、文字列によるコマンドを送信することで遠隔操作を行う。コマンドを送信する側のソフトウェアを**TELNETクライアント**と呼ぶ。

## VoIP
Voice over Internet Protocol

インターネットを通じて音声通信をするためのプロトコル。伝統的な電話回線を使用しない。

インターネット用の回線を使用して音声通信ができるので、電話専用の回線をインターネット用とは別に敷設しなくても済むなどのメリットがある。

アナログ音声信号をデジタル音声信号に変換して（**A/D変換**）送受信を行う。

VoIPでやりとりするデータには、**呼制御データ**と**音声データ**の２種類がある。

通話セッションを開始、確立するための制御を**呼制御**と言う。電話をかける際に「プルルルル」という呼出音が聞こえたり、相手が通話中の場合「プープー」という音が聞こえるのは呼制御が行われているため。

呼制御には通話セッションの切断も含まれる。

呼制御データの通信では[SIP](#sip)が使用され、音声データの通信では[UDP](#udp)、[RTP](#rtp)が使用される。

### SIP
Session Initiation Protocol

Initiation=開始

主に[VoIP](#voip)と併せて使用される、通話セッションを確立、変更、終了するためのプロトコル。

呼制御をするのみで、音声データの転送には関わらない。

**テキストデータ**によって制御を行う。

通話を開始するときは、まず**SIPサーバ**に対して通話セッションの確立リクエストが要求される。SIPサーバは[DNS](#dns)のように、電話番号から相手のIPアドレスを取得し、リクエストを相手のIPアドレス宛に転送する。

相手から再びSIPサーバを経由して応答が返された後は、SIPサーバを介さずに直接クライアント間で通話が開始できる。

### RTP
Real-time Transfer Protocol

音声や動画などを伝送するためのプロコトル。

音声や動画は**バイナリデータ**として転送される。

音声データは[UDP](#udp)によって送信され、パケットの順序管理（シーケンス管理）が行われないため、タイムスタンプなどを使用して、RTPがシーケンス管理を行う。

## ポートフォワード

特定のIPアドレス、ポート番号へのメッセージを別のIPアドレスやポート番号に転送すること。
























# セキュリティ

![security.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/3c0c1bce-78ac-5bd3-5470-405142898982.png)

## C&C Server
Command and Control Server

攻撃者が不正にシステムやネットワークを制御するために用意するサーバ。

C&Cサーバからコマンドが送信され、被害者の機器の操作が行われる。

## FW
Firewall

Wirewall=防火壁

ファイアウォール。

インターネットなどを利用するネットワーク上で、不正なアクセスから自身のネットワークやシステムを守ることを目的として、外部ネットワーク（インターネット）と内部ネットワークの間に設置されるデバイスやソフトウェア。

特定の**IPアドレス**、**ポート番号**からの通信を許可または拒否する（**フィルタリング**）ように設定しておくことで防火壁に似た役割を果たす。

具体的な設定としては、例えば「外部からDMZに配置したWebサーバに対しては80番ポート（[HTTP](#http)）、443番ポート（[HTTPS](#https)）だけを許可する」、「内部への通信はDMZからだけにする」など。

設定情報は**フィルタリングテーブル**と呼ばれる。

許可するものを明示したホワイトリスト型、許可しないものを明示したブラックリスト型が存在する。実際には設定漏れがあっても意図していないアクセスが拒否されるホワイトリスト型が使用されることが多い。

ネットワークを**外部ネットワーク**（インターネット）、[DMZ](#dmz)、**内部セグメント**の３つに分ける役割もあり、さらにルーティング機能を持つことも多い。

:::note info
ネットワークの構成図を見るとき、FWが以下の3つが分けていることを意識する。（FWが中継しているとも言える）
- **外部ネットワーク**
- [DMZ](#dmz)
- **内部セグメント**
:::

### DMZ
Demilitalized Zone

Demilitalized Zone=非武装地帯

外部ネットワークと内部ネットワークの間に作られた、外部と内部の両者がお互いにアクセスできる特定のネットワークセグメント。

外部ネットワークから内部ネットワークを守るために設置され、Webサーバやメールサーバなどの外部に公開するサーバが配置される。

外部と内部の通信を中継するサーバーやデバイスが設置されることもあれば、Webサーバやメールサーバなどの公開サーバが設置されるセグメントでもある。

### WAF
Web Application Firewall

Webアプリケーション専用の[FW](#fw)。

## HA
High Availability

直訳は高可用性。

可用性とは、システムやサービスが障害時やデバイスの故障時に、どの程度停止することなく継続稼働できか、また利用可能であるかを示す指標のこと。

セキュリティの文脈では、冗長化という意味で使われることもある。

## IEEE802.1X認証
ネットワークへのアクセスを制御するための認証プロトコル。

ユーザがネットワークへアクセスを要求した場合に身元確認が行われる。

**802.1x認証**や**1x認証**とも呼ばれる。

正確には「IEEE802.1」が **Port-Based Network Access Control** と呼ばれる、ポートによってアクセスをコントロールする規格を指し、それと「認証」がセットになった言葉。

有線LANにおいては、ネットワークにアクセスする為には物理的な接続が必要なため、第三者が入り込むことは困難である一方で、無線LANは電波が届く範囲であれば誰でもアクセスができてしまう。

IEEE802.1X認証は有線か無線かに関わらず利用することができるが、特に強固なセキュリティが求められる無線LANに対して、アクセスしても良いユーザを限定する際に利用される。

LAN認証には他にも[MACアドレス](#mac-address)による認証もあるが、[MACアドレス](#mac-address)は書き換えが可能であるなどセキュリティ面では弱い部分があるため、より強固な認証を行うためにIEEE802.1X認証が採用される。

IEEE802.1X認証は、認証に[EAP](#eap)が利用され、主に **Supplicant**、 **Authenticator**、 **Authentication Server** の3つの要素から構成される。

Supplicant はネットワークへのアクセス要求者のことで、具体的にはPC、スマホなどのデバイス、またはクライアントにインストールされたソフトウェアのことを指す。OSに標準搭載されている。

Authenticator は認証者、または認証装置のことで、 Supplicant と Authentication Server を仲介する役割を持つ。具体的には Supplicant が有線接続するスイッチ（またはルータ）や、無線LANアクセスポイントとなるデバイスを指す。

Authentication Server は Supplicant の情報を保持して認証の検証を行う認証サーバーのことを指す。通常[RADIUS](#radius)サーバが使用される。

### RADIUS
Remote Authentication Dial-In User Service

ネットワーク上でユーザの認証や権限の付与などを行うプロトコル。

ネットワークへのアクセスを要求するスイッチ（ルータ）、無線LANアクセスポイントとなるデバイスを**RADIUSクライアント**と呼び、認証を行うサーバ側を**RADIUSサーバ**と言う。

### EAP
Extensible Authentication Protocol

ネットワーク上でのユーザー認証を行うための[PPP](#ppp)を拡張したプロトコル、またはフレームワーク。

EAP自身が認証プロセスを提供するのではなく、他の認証プロトコルと組み合わせて使用される。

認証の方式には
- EAP-TLS（Transport Layer Security）
- EAP-TTLS（Tunneled Transport Layer Security）
- PEAP（Protected Extensible Authentication Protocol）

などがあり、クライアント（Sapplicant）とサーバの両方が対応している方式が採用される。

EAP-TLSでは[電子証明書](#電子証明書)を利用した端末認証が行われ、PEAPではサーバ証明書を使用したユーザ認証が行われる。

## IDS / IPS
### IDS
Intrusion Detection System

侵入**検知**システム。

[FW](#fw)ではパケットのヘッダ情報のみが検証されるのに対して、[IDS](#ids)、[IPS](#ips)ではヘッダ部分だけでなくデータ部分も検証される。

- **NIDS**（Network-Based IDS）
- **HIDS**（Host-Based IDS）

がある。

NIDSでは、ネットワーク上で通信の監視が行われ、異常なパターン、シグネチャを検知する。

HIDSでは、個々のホスト、もしくはサーバ上で監視が行われ、そのホスト上での活動、システムの変更で不審なプロセスがあれば、これを検知する。

検知方法には
- シグネチャ型 : 基地の攻撃パターンにマッチングを行うことで検知
- アノマリ型 : 仕様を逸脱した異常なパケット、トラフィックから検知　　anomaly=異常な

がある。

### IPS
Intrusion Detection System

侵入**防止**システム。

[FW](#fw)ではパケットのヘッダ情報のみが検証されるのに対して、[IDS](#ids)、[IPS](#ips)ではヘッダ部分だけでなくデータ部分も検証される。

### False Negative
偽陰性、フォールスネガティブ

[IDS](#ids)、[IPS](#ips)において、異常な通信が誤って正常と判断されること。

### False Positive
偽陽性、フォールスポジティブ

[IDS](#ids)、[IPS](#ips)において、正常な通信が誤って異常と判断されること。

## IPsec
Security Architecture for Internet Protocol

主に[VPN](#vpn)を確立する際に使用される暗号通信を行うためのプロトコルの一つ。

ネットワーク層で動作する。IPv6では標準機能となっている。

[ESP](#esp)、[AH](#ah)、[IKE](#ike)などの複数の技術を組み合わせて使用することで実現する。このように、複数のプロトコルが組み合わさったものを**プロトコルスイート**という。

[ESP](#esp)には暗号化と認証の機能があり、[AH](#ah)は認証機能のみを提供する。そのため、[ESP](#esp)と[IKE](#ike)のみでIPSecを構成することもできる。日本では[ESP](#esp)と[IKE](#ike)のみの構成が一般的。

IPsecを使った通信では、双方の機器は同等（ピア）の関係となり、[SA](#sa)と呼ばれる単方向のコネクションが確立される。双方向で通信したい場合、2つの[SA](#sa)を確立させる必要がある。

**トランスポートモード**と**トンネルモード**がある。

トランスポートモードでは、データと[TCP](#tcp) / [UDP](#udp)ヘッダのみが暗号化され、IPヘッダーは暗号化されない。末端同士の通信で使用される。

一方、トンネルモードでは通信全体（IPヘッダとペイロード）が暗号化される。ルータや[FW](#fw)を通過する際に暗号化と復号が行われる。

トランスポートモードでは個々のホストに設定が必要なのに対して、トンネルモードでは設定対象がルータのみで済む。

拠点間のVPNではトンネルモードが採用され、自宅から会社のネットワークにアクセスする際なとはトランスポートモードが採用されることが多い。

### SA
Security Association

[IPsec](#ipsec)などの暗号化通信において通信ノード間で確立されたセキュリティ情報、パラメータのセットのこと。

暗号化方式や暗号鍵などの情報を交換し、安全な通信路が確立されることをSAが確立されたと表現する。

### ESP
Encapsulated Security Payload

プロトコルスイートである[IPsec](#ipsec)の一部。

IPパケット内のペイロードを**暗号化**したり、**認証**するために使用されるプロトコル。

暗号化したパケットにESPヘッダを付与することでカプセル化を行う。送信側のペイロードの暗号化、ヘッダの付与、また受信側の復号、ヘッダの除去はそれぞれルータやスイッチが行う。

![esp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/f522b3ed-ca19-2d83-4aca-9affb96a15f0.png)

ESPヘッダには、[SA](#sa)を識別するための情報が格納されている。

**ESP認証データ**部分には、パケットが改ざんされていないかを検証するための情報が格納されている。

**ESPトレーラ**はパケット全体の長さを調節するためのパディング（詰め物）が格納されている。

### AH
Authentication Header

プロトコルスイートである[IPsec](#ipsec)の一部。

通信データに対する**認証**を行うことで、データに改ざんがないことを検証するために使用される。

データの暗号化などは行わない。

### IKE
Internet Key Exchange

プロトコルスイートである[IPsec](#ipsec)の一部で、[IPsec](#ipsec)による暗号化通信を行うために**共通鍵**を交換を行うためのプロトコル。

IKEの手順にはフェーズ1とフェーズ2がある。

フェーズ1には **Mainモード** と **Aggressiveモード** がある。

Mainモードでは接続先のIPアドレスも認証情報の一つとして扱われるため、固定IPアドレスでしか運用できない。

一方 Aggressive モードでは、接続先のIPアドレスを認証に使用しないため動的IPアドレスでも運用することができる。

## Phishing（フィッシング攻撃）
悪意のある攻撃者が電子メール、Webサイト、SNSなどを通じて他人になりすまして個人情報を取得しようとする詐欺の形態の一つ。

## PKI
Public Key Infrastructure

公開鍵基盤。

セキュリティで保護された通信を可能にするための仕組み。[電子署名](#電子署名)、[電子証明書](#電子証明書)、公開鍵と秘密鍵、[CA](#ca)という技術要素から構成される。

公開鍵暗号方式によって通信を行うためにはまず、相手方に公開鍵を配布する必要がある。ただし、この公開鍵を配布する際に、公開鍵自体が正当なものであることを検証できるように、第三者である[CA](#ca)が[電子署名](#電子署名)を付与した[電子証明書](#電子証明書)を発行する。

繰り返しになってしまうが、電子証明書は公開鍵が正当なものであることを証明するために発行される。

[電子証明書](#電子証明書)には公開鍵が含まれている。

:::note info
公開鍵は[電子証明書](#電子証明書)という形式で配布される
:::

### CA
Certificate Authority

認証局。

[電子証明書](#電子証明書)を発行する機関。

**ルート認証局**と**中間認証局**がある。

### 電子署名
元データのハッシュ値を、作成者の**秘密鍵**で暗号化したもの。

データ受信者は、作成者の**公開鍵**を使って復号することでハッシュ値(①)を取得する。

受信者はさらに受信した元データからハッシュ値（②）を生成し、①と②の両者を比較することによってデータが確かに正規の作成者によって作成されたものであることを検証できる。

またデータが改ざんされていた場合、データから生成されるハッシュ値も変わるため、**完全性**も担保される。

### 電子証明書
電子署名の復号で使用される公開鍵を配布するための電子的な書類のセット。

[CA](#ca)によって、暗号化された状態で発行される。

公開鍵を証明する役割を持つ。

:::note info
**ルート証明書**（ルートCAの電子証明書）：ルートCAの公開鍵を証明するための証明書。
**サーバ証明書**（サーバの電子証明書）：サーバの公開鍵を証明するための証明書。
**クライアント証明書**（クライアントPCの電子証明書）：クライアンドの公開鍵を証明するための証明書。
:::

https://qiita.com/AsahinaKei/items/4619aade8654864dc205

## Spoofing（スプーフィング）
ネットワーク通信の中で、送信者の識別情報を偽装すること。なりすまし。

## SSL
Secure Socket Layer

データを**暗号化**して転送することで、セキュアな通信を可能にするためのプロトコル。

データの暗号化に加えて、サーバ**認証**やクライアント**認証**によるなりすましの防止、**MAC**（Message Authentication Code）をメッセージに埋め込むことによる**改ざんの検知**ができる。

後継プロトコルとして[TSL](#tsl)がある。SSLと[TSL](#tsl)には互換性がない。

SSLはNetscape社が開発したプロトコルであり、標準化されたものが[TSL](#tsl)。[TSL](#tsl)のことを指してSSLと呼ばれることもある。

SSLには重大な脆弱性があるため、[TSL](#tsl)の使用が推奨されている。

### TSL
Transport Layer Security

[SSL](#ssl)の後継版プロトコル。

データを暗号化して転送することで、セキュアな通信を可能にするためのプロトコル。[SSL](#ssl)は、用語として広く普及しているため、[SSL](#ssl)と表現されていても実際にはTSLを指していることもある。

[HTTP](#http)と合わせて[HTTPS](#http)として利用される。

### HTTPS
HTTP over SSL

## UTM
Unified Threat Management

統合脅威管理。

複数のセキュリティ機能（[FW](#fw)、[IDS](#ids)、[IPS](#ips)など）を一つのプラットフォームに統合し、ネットワーク全体から見た脅威に対する包括的なセキュリティ対策を実施すること。またはそれを実施するためのソフトウェアやデバイス。

複数のセキュリティ機能を集約させることで、コストを抑えたり、システム管理者の負担を軽減することができる。

## VPN
Virtual Private Network

仮想プライベートネットワーク。

公共ネットワーク上でプライベートネットワークのようなセキュアな通信を行う技術、また仕組み。

仮想的ではないプライベートネットワークは、専用線で接続されたネットワーク。物理的に拠点と拠点を専用線で接続するため、セキュリティ面は安全な一方で、非常に高コスト。

OpenVPN、[IPsec](#ipsec)、L2TP、PPTPなどのプロトコルを利用して実装される。

以下の種類がある。
- [インターネットVPN](#インターネットvpn)
- [エントリーVPN](#エントリーvpn)
- [IP-VPN](#ip-vpn)
- [広域イーサネット](#広域イーサネット)
- [SSL-VPN](#ssl-vpn)

### インターネットVPN
最も一般的なVPNとして知られる既存のインターネットを利用して構築されたVPN。

既存のインターネットを経由したアクセスが行われる。

低コストで構築できる反面、専用線では無いため一定のセキュリティリスクがある。

### エントリーVPN
通信事業者の閉域網を利用したVPN。

低コストで構築でき、閉域網を利用しているためセキュリティが高い。

企業内の従業員がリモートから企業ネットワークにアクセスするためのVPN。

### IP-VPN
ネットワーク層のVPNサービス。

**ルータを介して**VPNに接続する。帯域保証があるため、他のVPN方式に比べて通信が安定している一方で高コスト。セキュリティが高い。

[MPLS](#mpls)を利用して、グループ分けを行う。

### 広域イーサネット
通信事業者が提供する[VPN](#vpn)の一形態。データリンク層のVPNサービス。

**スイッチングハブ**を介してVPNに接続を行う。地理的に離れた[LAN](#lan)同士を[Ethernet](#ethernet)で接続した広域的なネットワーク。

[IP-VPN](#ip-vpn)は国内などの比較的近距離での通信に利用され、広域イーサネットは海外拠点を含む遠距離でのVPN構築で利用される。

[VLAN](#vlan)によってグループ分けを行う。

### SSL-VPN
Secure Socket Layer Virtual Private Network

[SSL](#ssl) / [TSL](#tsl)プロトコルを利用した[VPN](#vpn)の一つ。

Webブラウザ標準搭載の[HTTPS](#https)機能が使用されるため、[VPN](#vpn)専用のソフトウェアをインストールする必要がない。

















# その他

![others.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/dca7c301-abdb-5443-36d4-75a65f8adff2.png)

## APN
Access Point Name

アクセスポイント名。

モバイル端末が無線でネットワークへ接続する際に使用される。

接続先の事業者やサービスを識別するための識別名であり、一般的には接続先プロバイダのドメイン名などが使用される。

端末や[SIM](#sim)カードに記録されていて、ユーザーが意識する必要のない場合もあれば、[SIM](#sim)フリー端末を利用していて、手動で入力する必要な場合もある。

## CDN
Content Dilivery Network

**オリジンサーバ**と**エッジサーバ**から構成される。

エッジサーバは、オリジンサーバからコピーしたコンテンツを保管している。

## IaaS
Infrastructure as a Service

## IANA
Internet Assingned Numvers Authrity

アイアナ。

ドメイン名、IPアドレス、AS番号、プロトコル名などを管理する組織。

## IEEE
Institute of Electrical and Engineers

電気・電子分野における工業技術の標準化などを行う専門家組織。

[MACアドレス](#mac-address)の割り振りを行う。

## IETF
Internet Engineering Task Force

インターネット技術の標準化を行う団体。

TCP / IP の標準化も行っている。TCP / IP は[ISO](#iso)ではなくIETFが標準化を行い、それを大学・研究機関・業界が中心となって発展させてきたデファクトスタンダード（事実上の標準）。 

### RFC
Request For Comments

[IETF](#ietf)によって公開される標準化された技術仕様、プロトコル、手法などに関する情報、ドキュメント。

公開済みのRFCは改訂が許されていないため、プロトコルの仕様が拡張される場合、公開済みのRFC番号は廃止され、新たなRFC番号が振られる。

番号が変わるのは不便なので、主要なプロトコルに対してはSTD（Standard）番号が割り振られていて、RFC番号が変わっても、同じSTD番号でプロトコルを参照することができるようになっている。

## ISO
International Organization for Standardization

国際標準化機構。

プロトコルの標準化を行う機関。[OSI](#osi)参照モデルを提唱した。

TCP / IP は、ISOではなく、[IETF](#ietf)が標準化している。

## ISP
Internet Service Provider

個人や企業に対して、主に高速で安定したインターネット接続を提供する事業者（NTT東日本・西日本など）。

インターネットへのAP（アクセスポイント）を提供する。

## LAN
Local Area Network

## OSI
Open System Interconnection

解放型システム間相互接続。

## PaaS
Platform as a Service

## PnP
Plug and Play

物理的に接続しただけで、ネットワークの設定が自動的に行われ、すぐに使える状態になること。

## P2P
Peer To Peer

ピアツーピア。

クライアント/サーバ方式のような形態をとらずに、１対１で平等な関係で直接接続して通信を行う形態。それぞれのホストがクライアントにもなるし、サーバにもなるようなイメージ。

## SaaS
Software as a Service

## SDN
Software Defined Network

物理的なネットワークが持つ制約にとらわれず、ソフトウェアによって仮想的なネットワークを定義する技術の総称。

## SIM
Subscriber Identify Module

加入者識別モジュール。

加入者の識別情報が記録されている。携帯端末とは独立して加入者情報が管理される。

## SSO
Single Sign On

## WAN
Wide Area Network

## WWW
World Wide Web

インターネット上の情報をHyper Textによって公開、閲覧できる情報提供システム。単にWebとも言う。

Webブラウザを通して、URLによって文書を指定して閲覧、利用する。アプリケーション層のプロトコルには[HTTP](#http)が使用される。

基本型な情報の単位はHTMLやCSSによって構成されるWebページ（WWWページ）。

## Envelope（エンベロープ）
Envelope

直訳は「封筒」。

ネットワーク用語としては、データパケットを包む外側の構造を指す。

データパケットは通常、ヘッダー（通信の制御情報）とペイロード（データの本体）から構成される。このとき、ヘッダーがエンベロープ（封筒）とみなされ、ペイロードが封筒の中身とみなされる。

## オンプレミス
クラウドの反対の言葉。

物理的なサーバを自前で用意してサービスを稼働させている形態。

具体的にはサーバーを置くための土地、サーバールーム（空調付きの部屋）、サーバーなどの機器が必要。

## オーバーヘッド
実際に送信するデータ以外に、通信制御のために送らなければならない情報や、それを処理するため時間などの、本来のデータ処理に付随する処理負荷のこと。

## スタンドアロン
ネットワークに接続されず、コンピュータ単体で使用される利用形態。ネットワーク上のリソースやデータへのアクセスを必要としない。

## ダイアルアップ接続
回線交換方式で、遠隔地の相手と回線を占有して通信を行うこと。

1990年代までは、一般家庭からインターネットへの接続は常時接続型ではなく、ダイアルアップ接続だった。この方式でインターネットに接続するには、まず[ISP](#isp)の通信拠点に発呼による接続操作を行い、利用終了時に切断する操作が必要だった。

## デーモン
UNIX系のサーバ上で常時稼働しているプログラム（のプロセス）。

Windsowsでは**サービス**と呼ばれる。

メインメモリ上に常駐し、特定の機能をバックグラウンドで提供する。基本的にOSの起動時に自動で実行状態になるため、ユーザが直接実行したり起動する機会は無い。

HTTPのサーバプログラムは**httpd**（HTTPデーモン）、SSHのサーバプログラムは**sshd**（SSHデーモン）と呼ばれる。

## 輻輳
通信回線が混雑すること。

## プロトコルスタック（プロトコルスイート）
複数の階層のプロトコルを、下位から上位にスタック状に積み重ねて実装した全体像。

## ブロードバンド / ナローバンド
Broad Band=広帯域
Narrow Band=狭帯域

1Mbps以上の、高速で大容量のデータ転送が可能な、回線や通信サービスを**ブロードバンド**（broad=広い）と呼ぶ。

それに対して1Mbps未満の、低速で小容量のデータ転送しかできない回線や通信サービス低速な回線のことを**ナローバンド**（narrow=狭い）という。

ブロードバンドの具体的なサービスには、ケーブルテレビ、[ADSL](#adsl)、[FTTH（光ファイバー）](#ftth)、Wi-Fi、LTEなどがある。

## ベストエフォート型
最善努力型。

最大限の努力はするが通信品質を保証しないとする通信方式。

IPはベストエフォート型で設計されている。

## マルチホーミング
コンピュータやネットワークデバイスが複数のインターフェースに接続されている状態。

複数の[NIC](#nic)を持つホスト。

複数のインターフェースを利用することにより、一方のネットワーク経路で異常があっても通信を継続して行うことができる（冗長性が高まる）。

## モデム
modem

アナログ信号とデジタル信号を変換する機器。

デジタル信号　→　アナログ信号　の変換を**変調**（modulation）と言い、
アナログ信号　→　デジタル信号　の変換を**復調**（demodulation）と言う。

**mo**dulator / **d**emodulator　→　**modem**

# 重要だと思った概念・個人的気づき

## OSI参照モデル

[OSI](#osi)参照モデルで定義されているのは各階層の**役割**。プロトコルの中身は**仕様**。製品は仕様を準拠して作られる。

+ アプリケーション層：個々のアプリケーションが定義する部分
+ プレゼンテーション層：アプリケーションごとに異なるデータ形式を、ネットワーク全体で共通化されたデータ形式に変換。データの符号化。
+ セッション層：コネクションの管理。データ転送機能はない。
+ トランスポート層：データの信頼性。欠落したデータはないか？などの確認。
+ ネットワーク層：アドレス管理、複数のデータリンク層の機器を経由した経路の選択
+ データリンク層：一区間のデータ転送
+ 物理層：光と電気との変換や、電圧の高低とビット列との変換、またはコネクタ、ケーブルの形状

なぜか、アプリケーション層のデータが一番大きいイメージがあったが、実際はその逆![OSI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/1f04f670-cc39-1057-159b-a94e952cb6c4.png)

ゲートウェイは、プロトコルの変換をする装置。トランスポート層。

TCP / IP という言葉は、それぞれ二つのプトロトコルを指しているのではなく、二つのプロトコルを中心としたプロトコルスイート（複数のプロトコルの集合体）を指している。また、実際に運用されているのはTCP / IP の方で、OSI参照モデルは実用化されていない。よく見る階層図は、TCP / IP をOSI参照モデルに当てはめたもの。

## 回線方式とパケット方式

回線方式は、一つの回線を一つの通信が占有する。

パケット方式では、複数の通信が一つの回線を共有する。

回線方式のアナログ電話では、通話中の相手に電話をかけても「通話中」となって通話できない（1対1でしかやり取りできないため）。

交換方式でのコネクションは交換機が管理する。

パケット方式のインターネットで、夜の時間帯など、みんながネットを使用する時間に繋がりにくくなったり、通信速度が遅くなるのは、回線を共有して使っているため。

## IPアドレスとMACアドレス

IPアドレスには階層があり、MACアドレスには階層がない。

## bps
bps=bits per second　

1秒あたりに送信できるデータのビット数。

bpsが大きくなっても、電気や光の速度自体は変わらないので、大きくなるのはデータ量の方。

「◯G」と言った時、通信速度の場合は **bps**、ファイルサイズの場合は **byte** 。

## 1K=1024の話

コンピュータの内部では、情報が二進数で表現される。そのため、データ量、データサイズなどには大文字の**K**が使用される。そのため、1KB=1024byteとなる。

一方で、1000メートル=1キロメートルのような、国際的な単位としては、小文字の**k**が使用される。そのため、1kB=1000byteとなる。

また、キロ以上のメガ、ギガ、テラについては大文字小文字の区別がされていない。

これを区別するための単位に**KiB**がある。キビバイトと読む。1KiB=1024byte。

一般消費者向けのパッケージなどでは、1kB=1000byteとして記載されている。

外付けストレージなどを買った時に、パッケージに記載された容量と、実際にPCで表示させた容量が異なるのはこのため。PCではKiBで表示されるため、1KiB=1KB=1024byteとして容量が計算され、単位が大きくなるにつれてその差は大きくなる。ただし、Linux系のOSでは国際単位系で表現されているとか。

1byte=8bitは、コンピュータによっては1byte=7bit、1byte=6bitという場合があり、厳密に8bitを表現したい場合、**オクテット**が使用される。1オクテットは、必ず8bitとなる。

## 片方向通信と半二重通信と全二重通信

**片方向通信**
一方向への通信。反対方向に通信できない。**ラジオ**

**半二重通信**
送信方向と受信方向の通信自体は可能であるが、それを同時に行うことができない。**トランシーバー**

**全二重通信**
送信方向と受信方向の通信を、同時に行うことができる。**電話**

ツイストペアケーブルは８本の銅線から構成される。

## アナログ回線とデジタル回線

アナログ回線では、電流や電圧の変化によって、情報を**波形**でそのままやり取りする。

情報が波形のまま伝わるので、情報伝達において数字が使用されない。音は空気の振動によって伝わる。

デジタル回線では、電圧の変化に対して「0」「1」の意味づけ（符号化）を行い、情報（データ）がやり取りされる。音声も、ネット検索情報も同じデジタル情報なので、通話しながらネット検索できる。

[モデム](#モデム)はアナログ信号とデジタル信号を変換する機器。

アナログ回線による電話通話では、メタル線と呼ばれる銅線を使って音声がそのまま送信される。

## データ　→　パケット　→ データ　
IPプロトコルにおいて、上位層のデータをパケットに分割しているのは、ルーター。

分割されたパケット達は、それぞれに同じ識別子がIPヘッダ内に格納され、その識別子をもとに、宛先のホストにて再構築される（**ルーターはデータの分割はするが、再構築はしない**）。

ルータではなく、ホストが分割処理を行う場合もある[PMTUD](#pmtud)も参照。

IPv6では、ルータではなくホストが分割処理を行うため、[PMTUD](#pmtud)機能が必須（組み込み等の一部の環境で実装しなくても良いとされている）。

## IPプロトコルに含まれる知識領域
頭の整理のためのコメント。

プロトコルとしてのIPに含まれるのは、
- IPアドレス
- 経路制御（ルーティング）
- パケットへの分割
- [PMTUD](#pmtud)

## インターネット層でのパケットが中継される時のイメージ
![packat_relay_image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/8f8ba39f-996a-e397-9829-2249da32aa47.png)

## ブロードバンドルータとルータの違い
ルータは異なるセグメントをつなぐための機器。

ルータの中でも特に、一般家庭などで通信事業者のブロードバンド回線からインターネットに接続するためのルータをブロードバンドルータと言う。

ブロードバンドルータの中でも特に、Wi-Fiという規格を用いて無線接続するものをWi-Fiルータという。

## L3スイッチとルータの違い
どちらもNetwork層で動作するが、ルータはインターネットとの境界で利用され、L3スイッチは企業内の部署間などの同じネットワーク内の異なるセグメント間で利用される。

L3スイッチは[VLAN](#vlan)構築のためにも利用される。

一般的にL3スイッチはルータよりも多くのポートを持ち、また高機能・高速であることが多いため、比較的高価。
ルータが通常ポートを2〜数十個しか持たないのに対して、L3スイッチは標準的なものでも24個以上のポート数を持つ。

## IPアドレスの発行
IPアドレスは[ICANN](#icann)が一元管理していて、日本においては**JPNIC**が管理を行い、申請は[ISP](#isp)に対して行う。

## セグメントに対する考え方（！！重要！！）
**セグメント**は一つのネットワーク領域を指す言葉。

セグメントはネットワーク全体のから見た一部分のネットワークであり、通常は物理的に接続されたデバイスやノードのグループのことを指す。（[VLAN](#vlan)のように、論理的にグループ分けをすることもできる）

1台のスイッチやルータに接続された複数のホストは、通常、同じネットワークアドレス範囲の属することになる。

もし1台のスイッチが複数の異なるネットワークアドレスを持つホストに接続されている場合、同じセグメント内での通信は可能だが、セグメントを介したホスト間の通信は不可能。

![segment.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1069520/d481c654-1d3b-b88a-af7c-2319934d13fc.png)

# 参考
・<a href="https://amzn.asia/d/bVjS9PO" target="_blank" rel="noopener noreferrer">キタミ式イラストIT塾 応用情報技術者</a>
・<a href="https://amzn.asia/d/2kPLtju" target="_blank" rel="noopener noreferrer">ストーリーで学ぶ ネットワークの基本</a>
・<a href="https://amzn.asia/d/fyBbwI0" target="_blank" rel="noopener noreferrer">ネスペの基礎力 -プラス20点の午後対策</a>
・<a href="https://amzn.asia/d/5a532v3" target="_blank" rel="noopener noreferrer">ネットワークスペシャリスト試験に出るところだけを厳選! 左門至峰による ネスペ教科書 改訂第2版</a>
・<a href="https://amzn.asia/d/0UCFheF" target="_blank" rel="noopener noreferrer">マスタリングTCP/IP―入門編―(第6版)</a>
・<a href="https://amzn.asia/d/gnvVkuQ" target="_blank" rel="noopener noreferrer">これならわかるTCP/IP入門の入門</a>