LAN技術研究室(LANに関心がある人のために情報を提供しているサイト)

スポンサードリンク



LANの初歩

ブリッジスイッチアドレス学習機能

リピータは、電気信号を他のすべての通信機器やパソコンに増幅して伝えるだけの中継装置でした。
これに対して、ブリッジスイッチでは、MACフレーム上の宛先や送信元のMACアドレスを確認し、転送の判断をし、関係のないポートにMACフレームを転送しないようにしています。
このような振り分け機能をフィルタリング機能と呼びます。
ブリッジスイッチは、ケーブルを接続した最初は、バッファという記憶域上のMACアドレステーブルには何も記憶されていませんが、通信中にポートとMACアドレスの対応関係を学習し、MACアドレステーブルに記憶していきます。
ブリッジスイッチアドレス学習機能とは、簡単に言うと、このことを指します。
ブリッジスイッチの電源が入っている間は、MACアドレステーブルはバッファに記憶されていますが、電源を切ると消えます。
ここでは、レイヤ2スイッチであるスイッチングハブを例にアドレス学習の過程を説明します。
まず、4台のパソコンと1台のスイッチングハブがあると仮定して、このスイッチングハブが1台1台のパソコンのMACアドレスを学習していく様子を図を交えて説明しましょう。

スイッチングハブと4台のPCのMACアドレス
スイッチングハブと4台のPCのMACアドレス

上の図で示したMACアドレスを持つ4台のパソコンが番号で示したスイッチングハブの各ポートに接続されているとします。
4つとも適当に割り当てた架空のMACアドレスです。
まず、最初にPC1がPC2へMACフレームを送信します。
この時、宛先はPC2のMACアドレスで、送信元はPC1のMACアドレスになっています。
このように書かれたMACフレームが上の図で示したスイッチングハブに届きます。
このスイッチングハブは、MACフレームに書かれている送信元のMACアドレスを参照して、1番ポートにPC1が繋がっていることを学習し、以下の表に用にMACアドレステーブルに記憶します。
ポートMACアドレス
000001220203
この段階では、まだ宛先のMACアドレスを学習していないため、一様1番ポート以外のすべてのポートにMACフレームを転送します。
このように、送信可能なすべてのノードにデータを転送することをフラッディング(Flooding)と言います。
文字通り、洪水のようにあちこちデータを送信することになります。
これではリピータハブではないかと思われるかもしれませんが、まだLAN上の各ノードをほとんど認識できていない状態では仕方ありません。
この後、PC1だけではなく、他のパソコン(PC2やPC3やPC4)もどんどんMACフレームを送信し始めると、最終的にこのLANMACアドレステーブルが以下のようにできあがります。
ポートMACアドレス
000001220203
000001230201
000001A4FF01
000009BDC912
これで、このLAN上のすべてのパソコンのMACアドレスがわかったことになります。
このLANの構成に変更がなければ、とりあえずこれでMACアドレステーブルは完成となります。
これで、スイッチングハブは、宛先以外のポートに無駄なMACフレームを転送しなくなります。
リピータハブのように毎回フラッディングするようなことはありません。

ページトップ



スイッチの転送方式について

スイッチの転送方式としては、代表的なものにストア・アンド・フォワード方式とカット・スルー方式があります。

ストア・アンド・フォワード方式では、ストア・アンド・フォワードの文字が示すように、受信したMACフレームを一旦バッファにストアして(溜めて)、CRCCyclic Redundancy Check)というチェック方法を使用したエラーチェックを行い、エラーがなければMACアドレステーブルから転送先のMACアドレスを検索し、転送先へフォワード(転送)します。
MACフレームの終わりに4オクテットFCSFrame 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台のパソコンが同時に信号を出せば、信号がケーブルの中で衝突し、異常な電圧が発生します。
そこで、このような電圧異常を検出し、このような電圧異常が起きたことをパソコンも含めた通信機器同士の信号衝突と見なし、発信するのをしばらく待って後で再送します。
このような仕組みは前述のアロハシステムにはなく、イーサーネットらしさが出ている部分と言えます。
このような衝突の検出をコリジョン・ディテクションと言います。

スイッチフロー制御の説明に戻します。
バック・プレッシャーの場合は、イーサーネットで半二重通信に限定されます。
リピータハブや古いNICNetwork Interface Card)搭載のコンピュータを使用している環境のフロー制御がこの方式です。

ところで、NICNetwork Interface Card)搭載のコンピュータやスイッチが全二重(Full Duplex)通信を行っている場合のフロー制御では、IEEE802.3xと呼ばれる方式を利用します。
ギガビットイーサーネットGigabit Ethernet)のフロー制御の場合もIEEE802.3xを使用します。
IEEE802.3xでは、前述のように、パケットバッファが溢れるのを防ぐために、送信元に対してポーズフレームを送信し、このフレームを受信したコンピュータは送信を一時中止します。
ジャム信号の場合は、ランダムに決めた時間だけ待ってから送信を再開しますが、IEEE802.3xの場合は、ポーズ解除フレームを送信して通信を再開します。

ページトップ



スイッチオートネゴシエーションについて

私(ケロ丸)は自宅に昔からLANを導入していたので、まだ少し古い製品が残っています。
LANを昔から導入していると、通信速度が異なるいろいろな方式の製品があります。
例えば、10 BASE-T100 BASE-TX1000 BASE-Tなどが混在している場合が考えられます。
また、通信モード(全二重や半二重)の違いもあります。
このような状況の場合、オートネゴシエーション機能があるLAN製品があると便利です。
オートネゴシエーション機能を有する機器は、UTPケーブルを使用するイーサーネットの規格に対応したLAN製品に限られます。
100 BASE-FXなどの、光ファイバを使う機器とのオートネゴシエーションはできません。
昔からある10 BASE-Tしかサポートしていないリピータハブシェアードハブ)にはこのような機能はありません。
10 BASE-Tしかサポートしていない機器では、機器が正常に作動しているかどうか、確認のためにNLPNormal Link Pulse)というパルス信号を送信します。
今、LANスイッチNICNetwork Interface Card)搭載のコンピュータがあり、どちらもオートネゴシエーション機能があったとします。
これらが接続されると、FLPバーストFast Link Pulse Burst)というパルス信号を互いに送信し合います。
このパルス信号を相互で送り合うことで、互いがサポートする通信モードや通信速度を自動的に検出して調整します。
その際、以下の表に示した優先順位の内、互いの機器がサポートする最も高い項目が選ばれます。
このような機能をオートネゴシエーションと言います。
ネゴシエーションとは、日本語で交渉と言いますが、これを機械的に自動化するということになります。

優先順位伝送方式、通信速度等の表記通信モード
100 BASE-T2全二重(Full Duplex)
100 BASE-TX全二重(Full Duplex)
100 BASE-T2半二重(Half Duplex)
100 BASE-T4半二重(Half Duplex)
100 BASE-TX半二重(Half Duplex)
10 BASE-T全二重(Full Duplex)
10 BASE-T半二重(Half Duplex)

小さい番号の優先順位が高いです。
上の表を見ると、通信速度が高い項目に限って優先順位が高くなっています。
当然ですが、互いの機器がサポートしているならば、速ければ良いし、半二重(Half Duplex)より全二重(Full Duplex)の方が良いですよね。
最近のNICLANスイッチのほとんどの製品がオートネゴシエーションに対応しています。
ケロ丸の自宅にもある5000円くらいのスイッチングハブでもオートネゴシエーションに対応しています。
10 BASE-Tしかサポートしていないリピータハブでもなければ、たいていオートネゴシエーションに対応しています。
それでは、こういうリピータハブオートネゴシエーション対応のNICの間で互いに通信をした場合どうなるでしょうか。
NIC搭載のコンピュータは、オートネゴシエーション機能があるので、FLPバーストというパルス信号リピータハブに送信します。
一方、リピータハブ側は、10 BASE-Tしかサポートしていない機器なので、NLPというパルス信号をコンピュータ側に送信します。
オートネゴシエーション対応のNIC搭載のコンピュータは、これを受信して上記の表の最下位優先順位の7の項目を選び、10 BASE-Tの半二重通信にします。
この例では、オートネゴシエーション対応のNIC搭載のコンピュータは、NLPというパルス信号を受信することで相手の通信速度が10Mbpsであると判断できます。
オートネゴシエーション対応の機器は、前述のFLPバーストだけではなく、NLPも受信して通信速度を判断できます。
しかし、この信号では全二重か半二重の判断まではできません。
そこで、半二重として通信を行います。
これで相互通信ができるようになります。

上記の例では、10 BASE-Tしかサポートしていないリピータハブオートネゴシエーション対応のNICの間の通信でした。
通信形態に関しては、この例以外にもまだあります。
例えば、100 BASE-TXオートネゴシエーションに対応したNICスイッチがあったとします。
スイッチ側では、オートネゴシエーション機能を無効にして、さらに100 BASE-TXの全二重通信の固定モードに手動で設定したとします。
この場合も、NIC搭載のコンピュータ側からは、FLPバーストというパルス信号スイッチに送信します。
一方、スイッチ側は、アイドル信号をコンピュータ側に送信します。
アイドル信号とは、データが何もないことを表す信号を言います。
オートネゴシエーション対応の機器がこれを検出すると、相手の機器がオートネゴシエーションをサポートしていないと判断し、相手の機器の通信速度が100Mbpsであると判断します。
しかし、アイドル信号の場合も全二重か半二重の判断まではできません。
そこで、この場合も半二重で通信を行います。
つまり、FLPバーストが相手の機器から送信されてきた場合、オートネゴシエーション対応の機器は、全二重か半二重の判断ができますが、NLPアイドル信号が送信されてきた場合は判断できないからです。
今度の例も、前の例と同じように「これで相互通信ができるようになります。」と言いたいところですが、スイッチ側では、オートネゴシエーション機能を無効にして、さらに100 BASE-TXの全二重通信の固定モードに手動で設定したことを思い出して下さい。
前述したように、今度の例でも強制的に半二重で通信を行うことになり、スイッチ側が全二重通信の固定モードでは通信できません。
通信速度に関しては、互いの機器がサポートしていれば問題ないですが、FLPバースト以外の信号を送ってくる機器とは半二重で通信することに決まっているので、手動で全二重に固定してしまうと問題が生じます。
そこで、このような場合は必ず、手動で半二重にするか、もしオートネゴシエーション対応の機器ならオートネゴシエーションを有効にして自動認識させます。
今度の例では、手動で半二重にしておけば良いです。
これで相互通信ができるようになります。

ところで、「何度もパルスパルスと連発したが、パルスって何なんだ!」という方のために、パルスについて説明します。
パルスという言葉には、英語の辞書では「鼓動」、「脈打つこと」、「波動」、「振動」という意味があります。
従って、心臓の鼓動もパルスです。
電気関連の用語としてわかりやすく簡単に言ってしまうと、パルスとは、非常に短い時間に流れた後、ちょっとの間お休みとなる電流のことを言います。
しかし、このようにたった1回とは限らず、瞬間的に電流が流れて、その後ちょっと休みがある周期を繰り返す場合もあります。
まさに、脈打つ感じですよね。
直流では水平一直線の波形なので、パルスにはなりません。
電流といってもインパルス電流(衝撃電流)を指す場合もあります。
また、電子回路では、一定の幅がある矩形波を言います。
パルス波とかパルス信号というパルスの後に続く言葉が幾つかあります。
前述の矩形波は、パルス波です。
また、1と0(オンとオフ)のデジタル信号が以下の図のようになれば、パルス信号になります。


パルス信号


一番上の図では、パルス信号は、1と0(オンとオフ)が1回だけですが、その下の図では周期的に繰り返されています。
例えば、10101010とか100010001000などのように繰り返されてもパルス信号です。
0(オフ)が少々長くなってもパルス信号です。
ただし、1が連続したまま(オンのまま)のデジタル信号パルス信号ではありません。
上の図の矢印の間をパルス間隔と言います。
前述のFLPバーストというパルス信号では、連続したパルス信号を出します。
FLPバーストの場合、33個のパルス信号から成っています。
パルスについてはおわかり頂けましたでしょうか。
ネットワーク技術に関わる技術者にとって、基礎的な電気の知識を身につけておいて損はありません。

ところで、これまで通信速度が10/100Mbpsを対象として、オートネゴシエーションの説明をしてきましたが、今度はギガビットイーサーネット1000 BASE-T)の場合のオートネゴシエーションについて説明します。
1000 BASE-Tオートネゴシエーションは、従来の10 BASE-T100 BASE-TXと互換性を保つため、同じ方式を採用しています。
前の方で書いた優先順位の表が以下のように9段階になります。

優先順位伝送方式、通信速度等の表記通信モード
1000 BASE-T全二重(Full Duplex)
1000 BASE-T半二重(Half Duplex)
100 BASE-T2全二重(Full Duplex)
100 BASE-TX全二重(Full Duplex)
100 BASE-T2半二重(Half Duplex)
100 BASE-T4半二重(Half Duplex)
100 BASE-TX半二重(Half Duplex)
10 BASE-T全二重(Full Duplex)
10 BASE-T半二重(Half Duplex)

オートネゴシエーションの伝送制御手順に関しては、従来と変わりありません。

ページトップ



インテリジェントハブインテリジェントスイッチについて

インテリジェントハブとは、SNMPSimple Network Management Protocol)というプロトコルに対応したスイッチングハブのことを言います。
SNMPとは、LANを構成しているすべての機器が正常に作動しているかどうかをネットワーク管理者が把握できるように、機器の状態を監視するためのプロトコルを言います。
SNMPは、ネットワーク管理プロトコルと呼ばれるプロトコルで、SNMPマネージャーと呼ばれるソフトウェアでSNMPエージェント機能がある機器を一括して管理できます。
このように、SNMPマネージャーで管理される機器は、MIBと呼ばれる管理情報データベースを持っています。
1万円もしないスイッチングハブとは違って、高価で高機能です。
インテリジェントハブは、SNMP対応以外にも豊富な機能を有しているスイッチングハブです。
例えば、ミラーリングポートも付いていますし、VLANにも対応していて、製品の価格によってはSTPにも対応している機種もあります。
VLANの詳細に関しては、VLANのページで参照できます。
STPの詳細に関しては、スパニング・ツリー・プロトコルSTPのページで解説しています。
SNMPの詳細に関しては、SNMPRMONについてのページで参照できます。

インテリジェントハブは、スイッチングハブの一種なので、レイヤ2スイッチに相当します。
また、インテリジェントハブは、インテリジェントスイッチとも言います。
このインテリジェントスイッチというものは、SNMPに対応したスイッチのことを言います。
従って、ほとんどインテリジェントハブと同じと言って良いのですが、インテリジェントスイッチは、レイヤ3スイッチではレイヤ2の部分に相当します。
実際にメーカーサイトを訪れると、インテリジェントスイッチの一覧をレイヤ2とレイヤ3に分類しているメーカーもあります。
また、ノンインテリジェントハブとかノンインテリジェントスイッチというものは、SNMPに対応していないレイヤ2スイッチを指します。
ちなみに、リピータハブは、ダムハブと呼ばれる場合もあるのですが、正確にはダムハブノンインテリジェントハブのことを指します。


ページトップ
ハブスイッチ[メニュー]へ戻る
サイトマップ(LAN技術研究室の案内図)
ネットワーク技術用語集へ行く
LAN技術研究室のトップページ

© 2007 Toyozi Masuda All rights reserved.