広告
広告
https://www.7key.jp/nw/technology/hard/switch.html#switch
スイッチは通称スイッチングハブとも呼ばれていることから分かりますように、ハブ(リピータHUB)と外観はそっくりです。いくつかのポートにケーブルを繋ぎ、ホスト同士を接続する言わば集線機器の役割を果たす点もハブと同じです。ただ、ハブはホストが送信した信号をハブに繋がっている全てのホストにそのまま転送する仕組みとなっていて、あるホストがデータを送信中であれば他のホストは通信を行うことができないと言う効率上の問題点があります(OSI 参照モデルで言います物理層で働く機器でした)。しかし、スイッチとハブが似ているのは外観だけであり、実際の機能はブリッジに似ていると言えるでしょう。スイッチもブリッジと同じくデータリンク層で機能するネットワーク機器で、データリンク層レベルのヘッダを解釈します。ここでブリッジの機能も簡単に復習しておきましょう(またEtherntを例にとります)。ブリッジは自分宛に届いたフレームヘッダから送信元MACアドレスを取り出し、どのポートにどのMACアドレスを持つNICが繋がっているのかをMACアドレステーブルに記憶しています。そして、そのMACアドレステーブルを基にフィルタリングを行いセグメントを分割する機能を持っていました。これらを踏まえた上で、スイッチとブリッジの違いは「スイッチは複数のポートを持っていて、どのポートに送るかまでスイッチが判断する」と言うことです。ブリッジの中には複数のポートを持っているものもありますが、ブリッジはあくまで到着したフレームをせき止めるか全てのポートに流すかのどちらかです。スイッチはMACアドレステーブルを基に各ポートに繋がっているホストを識別し、適切なポートを選んでフレームを転送するのです(Figure:SWITCH-01)。
上図のようにポートとポートを直接接続するため、複数のポートで同時に通信することも可能となります。また、同じポートで送信と受信を別々に行うこともできます。つまりポートごとにセグメントを分割できることがスイッチの大きな特徴となります。ただ、ブリッジと同じくスイッチもブロードキャストやマルチキャストのフレームはフラッディングしますので、スイッチでブロードキャストドメインを分割することはできません(VLANの設定をすることができるスイッチは別)。
MACアドレステーブルの作り方もブリッジと同じです。フレームヘッダ内の宛先MACアドレスがMACアドレステーブルに記憶されていなければ、フレームを受信したポート以外の全てのポートに対してブロードキャストが行われます。通常の通信であればこのフレームに対して応答が戻ってきますので、その際にMACアドレスを学習しMACアドレステーブルを完成させるのです。
上記ではスイッチ=スイッチングハブと解説しましたが、通信網内に設置される回線交換、パケット交換、ATM交換などを行う機器もスイッチと呼ばれます。また、レイヤ3スイッチ、レイヤ4スイッチ、レイヤ7スイッチと呼ばれるスイッチもありますが、これらは特に設定をしなければレイヤ2スイッチ(今回説明しているものです)として動作します。更にレイヤ2スイッチの中にもVLAN、スパニングツリー、リンクアグリゲーションといった様々な機能を持つものもあります。
スイッチとブリッジの違いは他にもあります。ブリッジがソフトウェア主体で動作するのに対し、スイッチはハードウェア主体です。またブリッジのポートはMDIが主なのですが、スイッチはリピータと同じく大抵の場合MDI-Xです(「Auto MDI/MDI-X」ポート搭載のスイッチも多く見られますが)。
https://www.7key.jp/nw/technology/hard/switch.html#rule
スイッチにはハブと違いネットワークの利用効率を高めるための様々な機能が搭載されています。今回はその機能の中で最も重要な転送方式を見てみましょう。スイッチの転送方式とはフレームを目的のホストに転送する仕組みを指し、ストアアンドフォワード、カットスルー、フラグメントフリーと呼ばれる3種類の方式があります。
ハブとは異なりスイッチには受信したフレームを一時的に保存するバッファメモリが搭載されています。例えば、同じ宛先に複数のホストから送信がある場合、一度このバッファメモリにフレームを保存し回線が空くのを待つことによりコリジョンの発生を防ぐことができます。また、通信速度が異なる機器を接続可能にしているのもこのバッファメモリです。例えば1000BASE-Tの機器から100BASE-TXの機器へデータを送信する場合を考えてみてください。逆ならば何も問題は無いのですが、通信速度の大きい物から小さい物にデータを送信する際、送りきれないフレームが出てくるでしょう。つまり、1000BASE-T側のポートからフレームが送信されてきても、100BASE-TX側のポートでは処理しきれないこととなります。このような際にもバッファメモリにフレームを保管しておくことによりオーバーフローをある程度防ぐことができるのです(それでも処理しきれないときのためにポーズフレーム、バックプレッシャーなどと言う方法もあります)。このように一度ストア(貯めて)してフォワード(転送)する方法のことをストアアンドフォワード方式と呼びます。更にストアアンドフォワード方式では、フレームのエラーチェックを行い、エラーが無ければ目的のホストに転送すると言う仕組みも兼ねています(Figure:SWITCH-02)。
エラーが見つかった場合そのフレームは破棄し、無駄なトラフィックの発生を制御しているのです。ただ、この方法はエラーチェックのためある程度の遅延時間が発生すると言った問題点も備えています。
スイッチが出回り始めた当初、まだメモリの入出力性能が悪かったこともありストアアンドフォワード方式では遅延時間が大きくなりすぎていました。そのため、フレーム全体を読み込むのではなく先頭6バイト分だけを読み込み、フレームの宛先MACアドレスが判明した時点でそのホスト宛の転送を開始する方法が採られていました。これがカットスルー方式です。つまりエラーチェックを省き遅延時間を節約していたのです。
ストアアンドフォワード方式とカットスルー方式の中間的存在がフラグメントフリー方式です。カットスルー方式が先頭6バイトを読み込むのに対し、フラグメントフリー方式ではフレームの最小サイズにあたる64バイト分を読み込みフレームの破損チェックを行う方式です。
ポーズフレームは全二重通信の際に採られるフレーム制御用の信号のことです。スイッチはバッファの残量が少なくなればバッファに余裕ができるまでポーズフレームを送信し続け、送信元はこれが届かなくなってから送信を再開します。
バックプレッシャーは半二重通信の際に採られるフレーム制御方法です。これは擬似的にコリジョンを発生させることにより送信元がコリジョンを検出し、一時的にフレームの送信を中断させる方法です。
広告