スイッチとは?
スイッチは、OSI参照モデルではレイヤ2のデータリンク層に属する ネットワークを構成する上で重要な機器です。 スイッチは集線装置であり、接続したコンピュータなどの機器同士の相互通信を可能とします。 集線装置は他にもリピータハブなどがありますが、リピータハブは基本的にデータを受信したポート以外の全てのポートにデータを送信しますが、 スイッチは目的の場所に対してデータを送信することができ、また同時に複数の端末が通信可能という特徴を持っています。 ![ダウンロード.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1430519/10489b5a-5b4a-aaa7-1bd6-15526e849c27.jpeg) こうした動作が実現できるようにスイッチは ①フィルタリング ②MACアドレスの学習 ③フロー制御 といった機能を備えています。①フィルタリング
スイッチが目的の相手にのみデータを送信するには、その相手がどのスイッチの、どのポートに接続しているのかを識別できなければなりません。 スイッチでは、受信したフレームの宛先MACアドレスを基に送信先を識別します。 そのためスイッチの内部に、スイッチのポートとそのポートに接続している端末のMACアドレスを紐付けたMACアドレステーブルを持っています。スイッチは、
①受け取った電気信号をフレームに変換し、宛先MACアドレスを確認します。
②そして、宛先MACアドレスを基にMACアドレステーブルを検索し、該当するポートにデータを送信します。
この動作をフィルタリングと言います。
(受け取ったフレーム内に宛先MACアドレスと送信元MACアドレスが含まれている。)
②MACアドレスの学習
フィルタリングで使用するMACアドレステーブルは、最初からMACアドレスとポートの情報が登録されているわけではなく、最初はどのポートにどの端末が接続されているかはわかりません。スイッチはデータを転送しながらMACアドレスを学習していきます。
MACアドレステーブルに宛先MACアドレス情報がある場合は、対象のポートにだけフレームを転送します。
該当する情報がない場合にはフラッディングと呼ばれる、受信したポート以外からの全てのポートからフレームを送信することを行います。
フラッディングをすることで宛先のMACアドレスを見つけることができ、それをMACアドレステーブルに登録することができます。
学習したMACアドレスは、一定時間が経過するとMACアドレステーブルから消去されます。
これをMACアドレスのエージングと言います。
③フロー制御
スイッチには、MACアドレステーブルが保存されているメモリとは別にバッファメモリがあり、そこに全てのポートで受信したフレームが蓄積されます。 受信処理が追いつかなくなり、バッファメモリが溢れそうになると、各ポートに接続している機器に信号を送り、フレームの送信を抑制します。 これをフロー制御といい、バックプレッシャ制御とIEEE 802.3xフロー制御の2つの方式があります。バックプレッシャ制御
バックプレッシャ制御はCSMA/CD方式のアクセス制御を応用して輻輳制御を行います。 (輻輳(ふくそう):トラフィックが増大してデータが追いつかない状態)スイッチは、基本的に受信したフレームをバッファメモリに格納し、そのデータ量を監視しています。
バックプレッシャ制御では、バッファメモリの残り容量に基づき、①〜④のように輻輳制御を行います。
①端末からのフレームを送信し、バッファメモリに格納する
②処理が追いつかなくなり、バッファメモリの残りが減少し、溢れそうになる
③送信側に、衝突が起きたことを知らせるジャム信号を送信する
④フレームの送信元の端末は「コリジョンが発生」と判断し、
CSMA/CD方式に従ってランダムな時間待つことで送信するデータ量を抑制する
バックプレッシャ制御はCSMA/CD方式を応用した輻輳制御を行うため、
半二重通信で使用されます。
(半二重通信:データの送信と受信を同時に行わず、送信側と受信側が交互にデータを送信することで通信を行う方式)
IEEE 802.3xフロー制御
IEEE 802.3xフロー制御は、スイッチ上のバッファメモリを監視する点は同じですが、 データの送信を抑制するためにPAUSEフレームを送信します。①端末からのフレームを送信し、バッファメモリに格納する
②処理が追いつかなくなり、バッファメモリの残りが減少し、溢れそうになる
③送信側にPAUSEフレームを送信する
④フレームの送信元の端末はPAUSEフレームの情報を基に「指定時間だけ」データの送信を停止する
(引用元:https://atmarkit.itmedia.co.jp/ait/articles/0110/02/news003.html)
IEEE 802.3xフロー制御は、全二重通信で使用されます。
(全二重通信:データの送信と受信を受信側と送信側が同時に行うことができる方式)
スイッチとブリッジの比較
データリンク層(レイヤ2)で動作する機器にはスイッチ以外にもブリッジというネットワーク機器があります。ブリッジもスイッチ同様、不要な端末にデータを流さない、MACアドレスを学習するといった機能を持っていますが、違いもあります。
処理体系
スイッチとブリッジは、どちらもレイヤ2の代表的なネットワーク機器ですが、ブリッジはソフトウェア、スイッチはハードウェアで処理を行います。ブリッジではフレームの転送などの処理をメモリに読み込み、CPUで実行します。
一方、スイッチでは、専用のASIC(特定の機能を持ったICチップ)で処理を行うため、データの転送処理などがCPUとは別に実行されることになります。