リピータは、電気信号を他のすべての通信機器やパソコンに増幅して伝えるだけの中継装置でした。
これに対して、ブリッジやスイッチでは、MACフレーム上の宛先や送信元のMACアドレスを確認し、転送の判断をし、関係のないポートにMACフレームを転送しないようにしています。
このような振り分け機能をフィルタリング機能と呼びます。
ブリッジやスイッチは、ケーブルを接続した最初は、バッファという記憶域上のMACアドレステーブルには何も記憶されていませんが、通信中にポートとMACアドレスの対応関係を学習し、MACアドレステーブルに記憶していきます。
ブリッジやスイッチのアドレス学習機能とは、簡単に言うと、このことを指します。
ブリッジやスイッチの電源が入っている間は、MACアドレステーブルはバッファに記憶されていますが、電源を切ると消えます。
ここでは、レイヤ2スイッチであるスイッチングハブを例にアドレス学習の過程を説明します。
まず、4台のパソコンと1台のスイッチングハブがあると仮定して、このスイッチングハブが1台1台のパソコンのMACアドレスを学習していく様子を図を交えて説明しましょう。
スイッチングハブと4台のPCのMACアドレス
上の図で示したMACアドレスを持つ4台のパソコンが番号で示したスイッチングハブの各ポートに接続されているとします。
4つとも適当に割り当てた架空のMACアドレスです。
まず、最初にPC1がPC2へMACフレームを送信します。
この時、宛先はPC2のMACアドレスで、送信元はPC1のMACアドレスになっています。
このように書かれたMACフレームが上の図で示したスイッチングハブに届きます。
このスイッチングハブは、MACフレームに書かれている送信元のMACアドレスを参照して、1番ポートにPC1が繋がっていることを学習し、以下の表に用にMACアドレステーブルに記憶します。
ポート | MACアドレス |
---|---|
1 | 000001220203 |
ポート | MACアドレス |
---|---|
1 | 000001220203 |
2 | 000001230201 |
3 | 000001A4FF01 |
4 | 000009BDC912 |
スイッチの転送方式としては、代表的なものにストア・アンド・フォワード方式とカット・スルー方式があります。
ストア・アンド・フォワード方式では、ストア・アンド・フォワードの文字が示すように、受信したMACフレームを一旦バッファにストアして(溜めて)、CRC(Cyclic Redundancy Check)というチェック方法を使用したエラーチェックを行い、エラーがなければMACアドレステーブルから転送先のMACアドレスを検索し、転送先へフォワード(転送)します。
MACフレームの終わりに4オクテットのFCS(Frame Check Sequence)というフィールドがあり、このフィールドはCRCのために存在する。
CRCとは、巡回冗長検査のことで、通信や記憶装置において、データを正しく伝送または入出力できたかを検査するためにあります。
FCSは、イーサーネットではMACフレームの誤りを検出したり、訂正したりするためにMACフレームの最後に加えられるチェックサム符号を設定するフィールドです。
CRCは、このチェックサムの計算のために使用されます。
FCSは、イーサーネット以外には、HDLCやフレームリレーなどのOSI参照モデルにおけるデータリンク層のプロトコルで使用されます。
ところで、ストア・アンド・フォワード方式では、受信したMACフレームを一時的にバッファに溜めますが、このバッファのことをパケットバッファとも言います。
エラーチェックをしてエラーがあれば、受信したMACフレームを破棄します。
また、転送先のポートがビジーで、このポートが転送先であるMACフレームをバッファに溜め続けなければならないことがあります。
このような状況が続くと、もしパケットバッファが溢れたら、パケットロス(Packet Loss)が発生します。
受信したMACフレームを全部読み込んでバッファに蓄えたりしてから転送するため、後述のカット・スルー方式より処理速度が遅くなるのが欠点です。
一方、カット・スルー方式では、受信したMACフレームを全部読むのではなく、先頭の6オクテットだけを読んですぐMACアドレステーブルから転送先のMACアドレスを検索し、転送先が見つかればすぐに転送先へフォワード(転送)します。
転送先が見つからなければ、ストア・アンド・フォワード方式と同じように、受信したMACフレーム全体を読み込んで、CRCを使用したエラーチェックを行い、エラーがなければ受信したポート以外のすべてのポートにMACフレームを流します。
先頭の6オクテットは、転送先のMACアドレスになるので、これだけ先に読むだけで済みます。
このため、受信したMACフレームを全部読み込んで一旦バッファに溜めるストア・アンド・フォワード方式より高速に転送できます。
ちなみに、カット・スルーとは、英語で cut through と書き、「近道する」というような意味です。
名前だけでも速そうな感じがします。
しかし、欠点がないわけではありません。
前述のように転送先が見つかった場合は、エラーチェックをしないため、受信したMACフレームの先頭6オクテットしか読まないため、エラーがあっても無視して転送してしまいます。
エラーが多発した場合、余計なトラフィックが発生します。
今では、どちらかと言うと、ストア・アンド・フォワード方式の方が主流です。
ページトップへ
この項目では、スイッチのフロー制御について説明をしますが、前の項目のスイッチの転送方式についての続きとなるような項目です。
スイッチの転送方式についてでは、もしパケットバッファが溢れたら、パケットロスが発生することを述べました。
スイッチのフロー制御の目的は、パケットバッファが溢れるのを防ぐことです。
MACフレームが次々と着て、バッファが溢れそうになったら、MACフレームの送信を一時中止するように送信元に伝えることができれば良いわけです。
スイッチのフロー制御(Flow Control)には、バック・プレッシャーと呼ばれる方式とIEEE802.3xと呼ばれる方式があります。
もし、スイッチが半二重(Half Duplex)で通信しているのなら、MACフレームの送信を一時中止するように送信元にジャム信号を送ります。
このジャム信号を受信すると、送信中のコンピュータはコリジョン(Collision)が発生したと判断し、送信を一時的に中止します。
このようなフロー制御の方式をバック・プレッシャーと言います。
ジャム信号とは、無線で言えば妨害電波のようなもので、妨害信号のことを言います。
通信を妨害することで送信をやめさせるわけです。
ちなみに、コリジョンとは、前にも述べましたが、電気信号の衝突のことを言います。
リピータハブ(シェアードハブ)を使用している半二重通信のLAN環境で、2台以上のコンピュータが同時に信号を送信しようとした時、ハブはコリジョンを検出し、全部のポートにジャム信号を送信することで送信は禁止されます。
本来、このような状況の時にコリジョンは発生し、ジャム信号が送信されるのが自然です。
CSMA/CDというイーサーネットアクセス制御方式を思い出してみて下さい。
CSMA/CDは、搬送波感知多重アクセス/衝突検出方式(Carrier Sense Multiple Access with Collision Detection)の略称です。
CSMA/CDの概要は以下のとおりです。
例えばあるパソコンから出た信号は、同じケーブルに繋がっていればすべてのパソコンに伝わります。
この時、他のパソコンが発信していないかことを確認してから信号を出すという方法を採ります。
これをキャリア・センスと呼びます。
こういうプロトコルを決めておくと、複数のパソコンが互いに発信して、信号同士が衝突することを防げます。
しかし、あるパソコンが仮にケーブルに信号が出ていないことを確認しても、タイミングが悪く2台のパソコンが同時に信号を出せば、信号がケーブルの中で衝突し、異常な電圧が発生します。
そこで、このような電圧異常を検出し、このような電圧異常が起きたことをパソコンも含めた通信機器同士の信号衝突と見なし、発信するのをしばらく待って後で再送します。
このような仕組みは前述のアロハシステムにはなく、イーサーネットらしさが出ている部分と言えます。
このような衝突の検出をコリジョン・ディテクションと言います。
スイッチのフロー制御の説明に戻します。
バック・プレッシャーの場合は、イーサーネットで半二重通信に限定されます。
リピータハブや古いNIC(Network Interface Card)搭載のコンピュータを使用している環境のフロー制御がこの方式です。
ところで、NIC(Network Interface Card)搭載のコンピュータやスイッチが全二重(Full Duplex)通信を行っている場合のフロー制御では、IEEE802.3xと呼ばれる方式を利用します。
ギガビットイーサーネット(Gigabit Ethernet)のフロー制御の場合もIEEE802.3xを使用します。
IEEE802.3xでは、前述のように、パケットバッファが溢れるのを防ぐために、送信元に対してポーズフレームを送信し、このフレームを受信したコンピュータは送信を一時中止します。
ジャム信号の場合は、ランダムに決めた時間だけ待ってから送信を再開しますが、IEEE802.3xの場合は、ポーズ解除フレームを送信して通信を再開します。
ページトップへ
私(ケロ丸)は自宅に昔からLANを導入していたので、まだ少し古い製品が残っています。
LANを昔から導入していると、通信速度が異なるいろいろな方式の製品があります。
例えば、10 BASE-T、100 BASE-TX、1000 BASE-Tなどが混在している場合が考えられます。
また、通信モード(全二重や半二重)の違いもあります。
このような状況の場合、オートネゴシエーション機能があるLAN製品があると便利です。
オートネゴシエーション機能を有する機器は、UTPケーブルを使用するイーサーネットの規格に対応したLAN製品に限られます。
100 BASE-FXなどの、光ファイバを使う機器とのオートネゴシエーションはできません。
昔からある10 BASE-Tしかサポートしていないリピータハブ(シェアードハブ)にはこのような機能はありません。
10 BASE-Tしかサポートしていない機器では、機器が正常に作動しているかどうか、確認のためにNLP(Normal Link Pulse)というパルス信号を送信します。
今、LANスイッチとNIC(Network Interface Card)搭載のコンピュータがあり、どちらもオートネゴシエーション機能があったとします。
これらが接続されると、FLPバースト(Fast Link Pulse Burst)というパルス信号を互いに送信し合います。
このパルス信号を相互で送り合うことで、互いがサポートする通信モードや通信速度を自動的に検出して調整します。
その際、以下の表に示した優先順位の内、互いの機器がサポートする最も高い項目が選ばれます。
このような機能をオートネゴシエーションと言います。
ネゴシエーションとは、日本語で交渉と言いますが、これを機械的に自動化するということになります。
優先順位 | 伝送方式、通信速度等の表記 | 通信モード |
---|---|---|
1 | 100 BASE-T2 | 全二重(Full Duplex) |
2 | 100 BASE-TX | 全二重(Full Duplex) |
3 | 100 BASE-T2 | 半二重(Half Duplex) |
4 | 100 BASE-T4 | 半二重(Half Duplex) |
5 | 100 BASE-TX | 半二重(Half Duplex) |
6 | 10 BASE-T | 全二重(Full Duplex) |
7 | 10 BASE-T | 半二重(Half Duplex) |
一番上の図では、パルス信号は、1と0(オンとオフ)が1回だけですが、その下の図では周期的に繰り返されています。
例えば、10101010とか100010001000などのように繰り返されてもパルス信号です。
0(オフ)が少々長くなってもパルス信号です。
ただし、1が連続したまま(オンのまま)のデジタル信号はパルス信号ではありません。
上の図の矢印の間をパルス間隔と言います。
前述のFLPバーストというパルス信号では、連続したパルス信号を出します。
FLPバーストの場合、33個のパルス信号から成っています。
パルスについてはおわかり頂けましたでしょうか。
ネットワーク技術に関わる技術者にとって、基礎的な電気の知識を身につけておいて損はありません。
ところで、これまで通信速度が10/100Mbpsを対象として、オートネゴシエーションの説明をしてきましたが、今度はギガビットイーサーネット(1000 BASE-T)の場合のオートネゴシエーションについて説明します。
1000 BASE-Tのオートネゴシエーションは、従来の10 BASE-Tや100 BASE-TXと互換性を保つため、同じ方式を採用しています。
前の方で書いた優先順位の表が以下のように9段階になります。
優先順位 | 伝送方式、通信速度等の表記 | 通信モード |
---|---|---|
1 | 1000 BASE-T | 全二重(Full Duplex) |
2 | 1000 BASE-T | 半二重(Half Duplex) |
3 | 100 BASE-T2 | 全二重(Full Duplex) |
4 | 100 BASE-TX | 全二重(Full Duplex) |
5 | 100 BASE-T2 | 半二重(Half Duplex) |
6 | 100 BASE-T4 | 半二重(Half Duplex) |
7 | 100 BASE-TX | 半二重(Half Duplex) |
8 | 10 BASE-T | 全二重(Full Duplex) |
9 | 10 BASE-T | 半二重(Half Duplex) |
インテリジェントハブとは、SNMP(Simple Network Management Protocol)というプロトコルに対応したスイッチングハブのことを言います。
SNMPとは、LANを構成しているすべての機器が正常に作動しているかどうかをネットワーク管理者が把握できるように、機器の状態を監視するためのプロトコルを言います。
SNMPは、ネットワーク管理プロトコルと呼ばれるプロトコルで、SNMPマネージャーと呼ばれるソフトウェアでSNMPエージェント機能がある機器を一括して管理できます。
このように、SNMPマネージャーで管理される機器は、MIBと呼ばれる管理情報データベースを持っています。
1万円もしないスイッチングハブとは違って、高価で高機能です。
インテリジェントハブは、SNMP対応以外にも豊富な機能を有しているスイッチングハブです。
例えば、ミラーリングポートも付いていますし、VLANにも対応していて、製品の価格によってはSTPにも対応している機種もあります。
VLANの詳細に関しては、VLANのページで参照できます。
STPの詳細に関しては、スパニング・ツリー・プロトコル(STP)のページで解説しています。
SNMPの詳細に関しては、SNMPとRMONについてのページで参照できます。
インテリジェントハブは、スイッチングハブの一種なので、レイヤ2スイッチに相当します。
また、インテリジェントハブは、インテリジェントスイッチとも言います。
このインテリジェントスイッチというものは、SNMPに対応したスイッチのことを言います。
従って、ほとんどインテリジェントハブと同じと言って良いのですが、インテリジェントスイッチは、レイヤ3スイッチではレイヤ2の部分に相当します。
実際にメーカーサイトを訪れると、インテリジェントスイッチの一覧をレイヤ2とレイヤ3に分類しているメーカーもあります。
また、ノンインテリジェントハブとかノンインテリジェントスイッチというものは、SNMPに対応していないレイヤ2スイッチを指します。
ちなみに、リピータハブは、ダムハブと呼ばれる場合もあるのですが、正確にはダムハブはノンインテリジェントハブのことを指します。
ページトップへ
ハブとスイッチ[メニュー]へ戻る
サイトマップ(LAN技術研究室の案内図)
ネットワーク技術用語集へ行く
LAN技術研究室のトップページへ
© 2007 Toyozi Masuda All rights reserved.