イーサネットLAN（２）【リピータハブ等LAN内の機器 / コリジョンドメイン】

CCNAの試験に向けて学習中。
復習に見返せるようにメモしていきます。
ほぼ自分の勉強メモです。
過度な期待はしないでください。


イーサネットLAN内の機器
-
#### 主要な機器

ネットワークは、サーバーやPC、LANケーブルやルーターなどのネットワーク機器が構成されています。
ネットワーク機器は、OSI参照モデルのレイヤ3からレイヤ1に対応いています。

##### ■リピータハブ

リピータハブは、受信した電気信号を中継する機器で、ネットワークに複数の端末を接続する為に
用いられます。OSI参照モデルの物理層（レイヤ1）の機器。

また、リピータハブは、通信ネットワークの集線装置（ハブ）の種類の一つで、
すべての信号をすべての端末に送る機器で単に通信線を連結するだけのハブであり、、
ある端末から送られてきた信号をそのまま他のすべての端末へ送るので、
<b>結果して、関係のない端末にもデータが届いてしまいます。</b>

そして、リピータハブは<font color="Red">半二重通信</font>しか出来ない為、
送信と受信が同時に出来ません。
なので同時に電気信号を受信した場合は、データの制御が出来なくなり衝突（コリジョン）が、
発生してしまいます。
<br>

##### ■スイッチ

スイッチは、集線装置であり、接続したコンピュータなどの機器同士の相互通信を可能にします。
先程のリピータハブは、基本的にデータを受信したポート以外の全てのポートにデータを送信しますが、
一方スイッチは、<font color="Red">目的の場所に対してデータを送信することができ、また複数の端末が通信可能</font>です。
また、<b>MACアドレス</b>を使って通信する機器になり、OSI参照モデルでいう第2層のデータリンク層に
あたり、そこで主に通信するスイッチをレイヤ2スイッチと呼びます。

こうした動作が実現出来るようにスイッチは、<font color="Red">フィルタリング</font>、<font color="Red">MACアドレスの学習</font>、<font color="Red">フロー制御</font>といった機能を
備えています。
<br>

ー フィルタリング
フィルタリングとは、宛先MACアドレスを基にMACアドレステーブルを検索して該当するポートに
データを送信する動作をいいます。

※<font color="Red">MACアドレステーブル</font>
スイッチの内部には、スイッチのポートと、そのポートに接続している端末のMACアドレスを紐付けるモノ
<br>

ー MACアドレスの学習
フィルタリングに使用するMACアドレステーブルは、最初からは、MACアドレスは登録されていないので、
フレームの送信元のMACアドレス、つまり送信元であるAのMACアドレスを受信したポートと
関連付けてMACアドレステーブルに登録します。
そうすることによってFa0/0にAが接続されていることがわかるようになります。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/24b28c05f04b9a1e3f9dc6d4cd62fc7f.png">
<br>

続いてスイッチは受信したフレームの宛先MACアドレスを基に、目的の宛先(B)に対して
フレームを送ろうとしますが、MACアドレステーブルにBのMACアドレスに該当する情報がない為、
何処に送ったらいいかわかりません。
なので、受信したポート以外の全てのポートからフレームを送信します。
この動作を、<font color="Red">フラッディング</font>といいます。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/24d8638659f20a10f9c273b4a264c4dd.png">
<br>

Cは自分宛のフレームではないので破棄をします。
Bは自分宛のフレームの為、受信し、必要ならばAに対して応答を返します。
Bからのフレームを受信したスイッチは、送信元であるAと、受信したBとを紐付けて
MACアドレステーブルに登録します。
<img width="700" alt="ファイル名" src="https://i.gyazo.com/58665e6a172529e3bf4b3ae887914709.png">
<br>
このようにスイッチはMACアドレスをMACアドレステーブルに登録し、
次にAからBへの通信をする際、MACアドレステーブルにそれぞれのMACアドレスが登録されている為、
フラッディングをせず通信することが可能になります。
しかし、学習したMACアドレスは、5分間通信が行われなかった場合、
MACアドレステーブルから消去されます。
これを、<font color="Red">MACアドレスのエージング</font>といいます。

※上記の画像は、[こちらの記事](https://www.kenschool.jp/blog/?p=1357)から参照させて頂きました。

<br>

ー フロー制御
フロー制御とは、輻輳を避けるためには、空きメモリ容量が少なくなったときに、送信側に対して
送信の停止を要求し、その後空きメモリ容量に余裕が生まれた時点で送信の再開を要求する。
このようにデータの流れる量を制御すること。
※輻輳(ふくそう)とは、物が1か所に集中し混雑する様態

フロー制御には、<font color="Red">バックプレッシャ輻輳制御</font>と、<font color="Red">IEEE 802.3xフロー制御</font>の方式がある。
<br>
##### ■バックプレッシャ輻輳制御とIEEE 802.3xフロー制御


ー バックプレッシャ輻輳制御
これはCSMA/CD方式のメカニズムを応用したものであり、送信側に対して衝突信号（ジャム信号）を
送信する。送信元の端末は、コリジョンが発生と判断してCSMA/CD方式に従ってランダムな時間
待つことで送信するデータ量を抑制する。
また、CSMA/CD方式を応用した輻輳制御を行うため、<b>半二重通信</b>で使用されます。
<br>

ー IEEE 802.3xフロー制御
これは、<b>全二重通信</b>で使われるフロー制御です。
PAUSEフレームを送信して端末からのデータの送信を抑制します。

※Pauseフレームとは、Pause機能のための一連のパケット信号のことで、
Pause機能とは、LANポート間でパケットの量を制限したり、送信側と受信側の調整をしたりする機能のこと
<br>

##### ■スイッチのフレーム転送方式

転送する際に、転送の判断をどの時点で行うかによって3つの方式があります。

|転送方式|説明|
|:---|:---|
|カットスルー|フレームの<b>先頭6バイトのみ</b>を読み込みます。フレームの先頭から6バイトは<b>宛先MACアドレス</b>です。宛先MACアドレスがわかれば、この時点ですぐにフレームを転送します。但し、FCSチェックを行わないので通信品質は悪い。|
|フラグメントフリー|エラーチェックを行いながらある程度の処理速度を確保することができる転送方式です。フレームの<b>先頭から64バイト</b>を読み込んだ時点でMACアドレステーブルから転送先のポートを判断して、転送処理を開始します。衝突が起こったフレームは通常は64バイト未満になっている為、衝突を正確に検出するために最低64バイトのフレームを読み込みます。|
|ストアアンドフォワード|いったんフレームを<b>全部</b>読み込みます。フレームの最後にはFCSフィールドがあるので、FCSチェックを行いフレームのエラーチェックを行います。その後、MACアドレステーブルとフレームの宛MACアドレスから転送するポートを判断して、実際にフレームを転送します。転送速度が一番遅いが、通信品質は一番高い|
<br>

##### ■ブリッジ

データリンク層で動作する機器にはスイッチ以外にも<font color="Red">ブリッジ</font>というネットワーク機器がある。
ブリッジも不要な端末にデータを流さない、MACアドレスを学習するといったスイッチと
同様の機能を持っていますが、下記の点で異なります。


|項目　　　　　　　|ブリッジ　　　　　　　　　|スイッチ　　　　　　　　　|
|:---|:---|:---|
|処理体系|<font color="Red">ソフトウェア主体</font>の処理|<font color="Red">ハードウェア主体</font>の処理|
|処理速度|遅い|速い|
|ポート密度(数)|2~16|複数|
|ポート仕様|MDI|MDI-x|

※スイッチでは、専用のASIC(特定の機能をもったICチップ)で処理を行う為、
データの転送処理などがCPUとは別に実行される
<br>

#### コリジョンドメインとブロードキャストドメイン

##### ■コリジョンドメイン
コリジョンドメインとは、コリジョンが起こり得る範囲を示したもの。

物理層で動作するリピータハブでは、全てのポートにデータが流れる為、
接続した端末で構成されるネットワークが一つのコリジョンドメインとなります。
リピータハブ全てのポートが同じコリジョンドメインに入っている為、
コリジョンの影響範囲が広くなり、通信効率が悪くなります。
つまり、コリジョンドメインの規模、もしくはコリジョンドメイン内の接続機器の台数が、
少なくなるほど、コリジョンが発生する確率が下がります。
<img width="600" alt="ファイル名" src="https://i.gyazo.com/057e0855e006db2f5eab65dc7a30b94d.png">

また、データリンク層で動作するスイッチは、対象した端末にしかデータが送られず、
他の端末には影響がない為、機器に接続している端末が個別のコリジョンドメインとして
分割されます。
このポートごとにコリジョンドメインを生成できている状態を<font color="Red">マイクロセグメンテーション</font>といいます。
<img width="600" alt="ファイル名" src="https://i.gyazo.com/dfe42fbe0049c584f3567367d6c6676f.png">
<br>

##### ■ブロードキャストドメイン
ブロードキャストドメインとは、ブロードキャスト通信が届く範囲のことです。

基本的にブロードキャスト通信では、受信ポート以外全てのポートから転送され接続している
全ての機器に届きます。したがって、ブロードキャストドメインは全体で一つになります。
<img width="600" alt="ファイル名" src="https://i.gyazo.com/69a3f111ece9676ce570b1353cb23423.png">
<br>

#### オートネゴシエーション

オートネゴシエーションとは、FLPバーストという<font color="Red">パルス信号</font>を交換し合うことで、
あらかじめ決められた優先順位に沿って通信速度、通信モード、フロー制御などを決定する機能です。
※基本的に通信速度の速いものから順に選択されます。

##### ■オートネゴシエーション注意点
オートネゴシエーションはお互いに通信モードを気にすることなく接続できる点で便利な機能ですが、
片方の通信モードが固定モードで、もう片方がオートネゴシエーションが有効になっている場合、
こちら側はオートネゴシエーションモードなのでFLPを送信しますが、相手側は固定モードのため
FLPを受け取っても何もしません。

※固定モード側の機器は、NLP信号を送出しリンクが正常に機能しているかどうかをチェックする為に、
<b>アイドル信号</b>を送信します。
<br>

##### ■モードが異なる時のオートネゴシエーション流れ
・PC側がオートネゴシエーションモード
・固定モード側の機器(HUB)

① PC側はオートネゴシエーションモードなのでFLPを送信します。
　が、相手側は固定モードのためFLPを受け取っても何もしません。

② 固定モード側の機器(HUB)はNLP信号を送出しリンクが正常に機能しているかどうかを
　チェックします。

③ NLPを受信したPCは、特有の信号であるNLPを受信したので相手側の機器の速度を検出します。

④ PC側は、速度は検出できましたが、全二重か半二重かは認識することができません。

⑤ 通信モードを認識できない場合、オートネゴシエーションモードの機器は
　半二重モードに設定されてしまいます。

⑥ 対向で通信モードが違うためうまく通信を行うことが出来ません。
<br>
◇このように、モードが異なると通信が非常に不安定になるので注意が必要ですが、
基本的にはそんなことしません。
片側がオートネゴシエーションモードの場合はもう片側もオートネゴシエーションモードにする。
片側が固定モードの場合はもう片側も固定モードにするにして通信を行います。

<br>
過去投稿記事
-
[ネットワークの基礎（１）【接続形態と通信方法】](https://qiita.com/k-yasuhiro/items/38d643ec262a0309db06)
[ネットワークの基礎（２）【プロトコル(OSI参照モデル)】](https://qiita.com/k-yasuhiro/items/0e5accf951223e2332e4)
[ネットワークの基礎（３）【プロトコル(TCP/IPモデル)】](https://qiita.com/k-yasuhiro/items/401630a552221d19ac13)
[イーサネットLAN（１）【LANケーブル】](https://qiita.com/k-yasuhiro/items/9c339643070d4db1e6ac)