使用機器(レイヤ2デバイス)について
使用機器(レイヤ2デバイス)について
代表的な使用機器一覧
データリンク層として使用される機器として以下の機器があげられます。
- スイッチ(スイッチングハブ、L2スイッチ)
- ブリッジ
どちらもデータリンク層の機器として動作するために、
- MACアドレスを介して機器の特定や
- 送られてきたデータを、データリンク層のデータ(フレーム)として処理する
ことができます。
MACアドレステーブルについて
各ポートと接続機器の対応表
レイヤ2デバイス(スイッチ、ブリッジ)には複数のポート(つまりはケーブルの差込口)があり、各ポートにはそれぞれネットワーク機器が繋がっています。
送られてきたデータには、宛先のMACアドレスの情報が含まれており、どのポート番号にデータを転送すれば宛先のMACアドレスに届くのかを、知っている必要があります。
そこでレイヤ2デバイスでは、各ポート番号とMACアドレスを紐づけるための対応表として「MACアドレステーブル」が用意されています。
レイヤ2デバイスの役割、機能
MACアドレスの学習
しかし、MACアドレステーブルに最初からMACアドレスとポート番号が紐づいた情報が記載されているわけではありません。レイヤ2デバイスを起動する際、テーブルは空の状態から始まります。
そのため、ポート番号と接続先の機器のMACアドレスを登録する(MACアドレステーブルの作成)機能が備わっています。MACアドレスの登録は、管理者が手動で登録する「スタティック」と、デバイスが自動で登録する「ダイナミック」があります。
※ダイナックの登録の流れは次節で紹介します。
フィルタリング(経路制御)
では、MACアドレスを学習した上で、レイヤ2デバイスはどのように宛先のポートを選別するのでしょうか?
実はレイヤ2デバイスでは、「フィルタリング」を介して宛先と繋がっているポートにだけデータを転送します。
フィルタリングは対象外のポートへの転送を防ぐ(制御する)ための機能であり、そうすることで結果的に対象の宛先にだけデータが転送されるようになります。
フラッディング
MACアドレステーブルに含まれていないMACアドレスが宛先だった場合、レイヤ2デバイスは、送信元以外の全てのポートへデータを転送します。
転送先の中から、宛先のMACアドレスと一致する機器からレスポンスが届くので、結果的にレスポンスが届いたポートと宛先のMACアドレスを紐づけることができるからです。
この送り先がわからないため、レイヤ2デバイスやリピータハブなどに備わった全ポートへ転送する機能を「フラッディング」と呼びます。
※ フラッディングとブロードキャストの違い
またフラッディングと似た動作として「ブロードキャスト」があります。
「フラッディング」は転送先がわからないために起こる動作である一方、
「ブロードキャスト」は意図的に接続中の全てのノードを宛先に指定することによる通信方式を指します。
MACアドレスの自動登録(学習)の流れ
MACアドレステーブルが空の状態で、あるポートからデータが送られてきた場合を想定して、MACアドレスが自動登録される流れを確認していきましょう。
1. スイッチへデータの到達
まず送信データがスイッチに届きます。
2. (送信元)MACアドレスの学習
MACアドレステーブルに、データの送られてきた機器のMACアドレスと、データを受け取ったポートを紐づけて登録します。
3. 受信ポート以外にフラッディング
送られてきたデータから宛先のMACアドレスを確認し、MACアドレステーブルと照合します。
照合した結果、該当のMACアドレスがなければ、受信したポート以外にフラッディング(全ポートへデータを転送する機能)をします。
4. 宛先からのレスポンス
転送したデータには宛先のMACアドレスの情報が含まれています。転送先の中から、自身のMACアドレスと一致する機器からレスポンスが届きます。
5. (宛先)MACアドレスの学習
レスポンスが届いたポートと宛先のデータのMACアドレスを紐づけてMACアドレステーブルに登録されます。
ブリッジとスイッチの違い
ポートの数
同じレイヤ2デバイスであるブリッジとスイッチの違いを確認していきましょう。
まず「ブリッジ」はポートが2つしかありませんが、「スイッチ」は3つ以上所有しています。
ポートの識別
ブリッジはポートが2つしかないため、基本的に送信元のポートとそれ以外の認識しかできません。一方、スイッチは送信元だけでなく転送先のポートを識別することができます。
処理速度
また、ブリッジはソフトウェア主体で処理が行われるため、処理が遅くなる一方、スイッチはハードウェア主体の処理であるため、ブリッジより処理が高速です。
レイヤ1デバイス(リピータハブ)との違い
送り先の選別
前章ではレイヤ1デバイスとして「リピータハブ」を紹介しました。リピータハブもレイヤ2デバイスと同様に、接続先のノードにデータを送ることができますが、どのような違いがあるのでしょうか?
まず、「レイヤ2デバイス」は送られてきたデータをフレーム(データリンク層のデータPDU)として処理することができます。フレームを認識することで、宛先のMACアドレスを認識できます。
一方、「リピータハブ」は送られてきたデータをそのまま電気信号として処理を行うため、宛先のMACアドレスを認識できません。
そのため、リピータハブは宛先を指定することができず、
全てのポートへデータを送信します。
全二重通信/半二重通信(通信モード)
送信、受信の双方を従える通信方式を「全二重通信」、どちらか一方だけを従える通信方式を「半二重通信」と呼びます。
リピータハブは全二重通信に対応していないため、リピータハブと接続する機器との通信は全て半二重通信になります。
一方、スイッチは全二重通信に対応しているため通信先の機器が全二重通信に対応していれば、全二重通信で通信することが可能です。
コリジョンドメイン(コリジョンの起こる範囲)
送信または受信のどちらか一方だけを従える半二重通信では、双方からデータが送られてきた場合、「コリジョン(データの衝突)」が発生します。
コリジョンの影響を受ける範囲を「コリジョンドメイン」と呼びます。
リピータハブは送られてきたデータをそのまま全てのポートへ転送するので、コリジョンの影響の範囲(コリジョンドメイン)は広がる傾向にあります。
一方、スイッチやブリッジ、ルータなどのレイヤ2デバイス、レイヤ3デバイスは、宛先以外のポートへの転送を防ぐフィルタリング機能があるので、コリジョンによる影響を留めること(コリジョンドメインの分割)ができます。