このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

目次

スイッチングハブ

 元々リピータハブは受信した信号をネットワーク全体(すべてのポート)に対して、転送するように設計されてる。簡単にいえば、これは「受け取ったパケットを全部のホストに送りつけて、あとは本来受け取るホストが判断して欲しい」といっているようなものである。これだと装置自体は簡単だが、データのやり取りの効率が悪くなってしまい、最悪の場合コリジョンという衝突状態が発生してデータのやり取りが一時的にできなくなってしまう。

 これを解消するために設計されたのがスイッチングハブである。一言でいってしまえば、「リピーターハブよりスイッチングハブの方が頭がよい」ということである。

 スイッチングハブ(レイヤ2スイッチ)はリピーターハブにアドレステーブルとメモリという概念を拡張した機器である。リピーターハブ内部に存在したリピーター回路はなく、その代わりにスイッチ素子が存在する。

特徴

  • 仕組み上、必ずバッファメモリを搭載している。
    • MACアドレステーブルを元に適切にフレームを転送するためには、スイッチングハブ内部で一度フレームを格納する場所が必要になるからである。この際のフレームの処理(バッファリングと転送)方法が、ストア&フォワード方式である。

CAMテーブル

  • スイッチングハブはデバイスをアドレスで管理する。
    • つまり、スイッチングハブはOSI参照モデルのデータリンク層で動作するということになる。
  • スイッチングハブは接続されているすべてのデバイスのレイヤ2のアドレスを、トラフィックの見張り番のような働きをするCAM(Content Addressable Memory)テーブルに記録していく。
    • CAMテーブルにはMACアドレステーブルだけでなく、ルーティングテーブル、アクセスリストなども格納している。
    • スイッチングハブはパケット内にあるレイヤ2のヘッダ情報を読み、CAMテーブルを参照してどのポートにパケットを送信するかを決定する。
      • スイッチングハブは特定のポートにしかパケットを送信できないため、ネットワークトラフィックを劇的に減らすことができる。

アドレステーブル

 アドレステーブルとはMACアドレスとポートの番号*1を登録した一覧表のことである。Ethernetパケット(IPヘッダの先頭にMACヘッダを追加したもの)のヘッダには送信先MACアドレスが含まれている。その送信元MACアドレスが一覧表に追加され、そのとき通ってきたポートの番号が一覧表に対応付けされる。

 例えば、ポートの番号4を通って、スイッチングハブに到達したEthernetパケットが到達するとする。まずケーブルからRJ-45コネクタを介して、EthernetパケットがMAUに到達する。するとMAUに隣り合っているバッファメモリに受信したパケットを一時的に格納する。そして先頭部分の宛先のMACアドレスと同じものがアドレステーブルに登録されていないかを検索する。検索結果、もし登録されていればそのポートにパケットを送信する。もし登録されていなければ、そのアドレスを持つ機器がどこにあるかわからないので、すべてのポートに対してパケットを送信する。どちらにせよ、途中でスイッチ素子で解析され、送信元MACアドレスの「00-11-22-AA-BB-CC」を一覧表の行に追加する。そして経路情報もその行に追加される。即ちアドレステーブルの1行には、MACアドレスとポートの番号と経路情報の3つのフィールドがあることになる。これによって、次回のパケット転送のために役立つアドレステーブルができあがる。

 コンピュータやルーターIPを使ってデータの転送を行うため、送信先を判断する材料としてIPアドレスが使われる。一方、スイッチングハブはIPという高度な通信プロトコルを利用できないため、IPアドレスではなくMACアドレスを判断する材料として使われる。

[補講]海外のホテルでは日本のLANケーブルのプラグと同じ形(RJ-45)をした電話線の差込口が設置されていることがある。このような差込口とノートPCのLANポートあるいはLANカードを接続すると、LANシステムよりも高い電圧がかかるために、PCのLANポートあるいはLANカードを破壊してしまう。部屋にある説明書やフロントでLANが設置されていることを確認できなければ、このようなポートを利用しないほうが安全である。また、回線チェッカーを差し込んでみてLEDが点灯しなければ、問題が生じる可能性は低くなる。 ◇

 ちなみにスイッチングハブによっては、スイッチ素子ではなく、共有メモリまたはバスを利用するものもある。また図ではMAUそれぞれにバッファメモリが隣り合っているが、機器によっては全体でひとつのメモリを共有するものもある。

データ転送

 スイッチングハブはこのようなアドレステーブルを参考にするので、データ転送を行うことができる。その他にも複数のパケットが同時に実行することもできるという恩恵もある。

カスケード接続

 スイッチングハブもリピータハブ同様にカスケード接続用ポートが存在する。近年のスイッチングハブは切り替えスイッチによって、カスケード接続用ポートの内部をクロスにしたり、ストレートにしたりできる。さらにオートMDIと機器に記述してあれば、スイッチングハブ内で自動的にMDI-XやMDIを調整してくれる。最近はこのタイプのスイッチングハブをよく見かける。これらによって、他のハブを増やす場合であっても、カスケード接続用ポートにLANカードと接続しようとする場合であっても、どちらの場合でもストレートケーブルだけで統一できるような配慮されているのだ。

スイッチングハブの構造

 以下のチップが連携して処理を行う。

  • PHYチップ
    • 物理層の処理を行う。
  • MACチップ
    • データリンク層の処理を担当する。
  • スイッチチップ
    • LANのスイッチングを担当する。

スイッチングハブの動作

1:コンピュータから送信されたMACフレームが、ポートからトランスを経由してPHYチップに入力されると、PHYチップは受信した波形を1と0のビット列を表す信号に復号して、MACチップに送る。

2:MACチップはフレームの先端についているプリアンブル信号によって、フレームの先端部を確認しMACヘッダ以下のデータをバッファメモリに格納し、FCSをチェックして、データにエラーがないかを調べる。フレームに異常がある場合は、この時点でフレーム全体が破棄される。

3:続いて、MACチップはフレームの送信元MACアドレスを調べる。このとき、送信元のMACアドレスがアドレステーブルに記録されていない場合は、このフレームを受け取ったポートの番号と送信元のMACアドレスをアドレステーブルに書き込む。そして、フレームの宛先MACアドレスをメモリ内のアドレステーブルに照らし合わせ、宛先のポートを探索する。

4:宛先のポートが見つかると、バッファメモリに格納してあるMACフレームをスイッチチップに送る。ただし、スイッチチップがMACチップに統合されている場合があり、この場合は直接MACチップがスイッチの動作を行う。

5:スイッチチップは、目的のポートを管理するMACチップにフレームを渡す。

6:フレームを受け取ったMACチップは、ポートに接続されているPHYチップに、MACフレームに送る。

7:PHYチップは受け取ったMACフレームを符号化による波形に変換して、プリアンブルと共にポートから送出する。

スイッチングハブの拡張性

  • 企業でのネットワークは、ユーザー数が変化することもあり得る。そういった場合にはスイッチングハブの拡張性を考慮するべきである。

スイッチングハブの拡張方法

  1. カスケード接続(多段接続)
  2. スタック接続
  3. 拡張スロットを利用する

カスケード接続(多段接続)

  • UTPケーブルを使ってスイッチングハブを多段に接続する。

スタック接続

  • 専用のインタフェースでスイッチングハブ自体を相互に接続し、あたかも1台のスイッチングハブのように見せかける。
  • カスケード接続と比べると、スタック接続は接続ケーブルが専用バスなので高速であるというメリットがある。
    • しかし、これは逆に他社製品と相互接続できないというデメリットにもなる。

拡張スロットを利用する

  • 企業向けスイッチングハブの中には、様々なオプションを追加できる拡張スロットが搭載されている場合がある。

[例]複数のクライアントから大量のアクセスが集中するファイルサーバーについて考える。

 複数のクライアントから同時アクセスされるサーバーは、通常より広い帯域(ビッグパイプ)が必要となる。
 こうした場合、拡張スロットでギガビットEthernetポートを増設し、そこにファイルサーバーを接続するとよい。 ◇

フレーム転送の処理方式の分類

カットスルー方式

  • Ethernetフレームに含まれる宛先アドレスを受信したら、すぐにそのクライアントが接続されたポートへ転送する方式である。

修正カットスルー方式

  • Ethernetフレームの先頭64バイトまでを確認した時点で転送する方式である。
    • 64バイトとはEthernetフレームの最小の長さである。
    • エラーフレームのほとんどが64バイト以下のサイズということが統計的に知られており、64バイトまで確認すれば確率的にエラーが減るというわけである。

ストア&フォワード方式

  • 現在のスタンダードな方式。
  • カットスルー方式や修正カットスルー方式は、これまでスイッチングハブの処理負荷を軽減するものとして利用されてきた。
    • 当時は現在ほどバッファメモリのI/O性能が高くなく、ストア&フォワード方式ではバッファリングによる遅延が問題になっていた。しかし、現在ではバッファメモリの性能も向上し、それらの遅延もむしできるほどになった。
      • 数年前のストア&フォワード方式では、その処理に50μ秒*2ほどかかっていたが、現在では1〜2μ秒程度に向上している。
  • 受信したフレームをバッファメモリにすべて格納し、フレームにエラーがないことを確認してから転送する方式である。
  • エラーの有無は、Ethernetフレームの最後に含まれるエラーチェック用のFCSを利用して判断する。
    • FCSでエラーが発見されなければ、適切なポートにフレームが転送される。
    • エラーが発見されれば、壊れたフレームと認識して破棄するので、ネットワークに無駄なトラフィックが発生しない

参考文献

  • 『Windows7ネットワーク逆引き大全』
  • 『実践パケット解析』
  • 『ゼロからはじめるスイッチ&ルータ 増補・新装版』


*1 これはネットワークのポート番号とは異なり、あくまでコネクタのポートの番号のこと
*2 1μ秒=100万分の1秒