パソコンから延びているUTPケーブルは,LANスイッチが束ねている。これがMACフレームを中継して,相手のパソコンに届けている。昔のイーサネットでは,中継はリピータ・ハブの仕事だった。それがLANスイッチに置き換わることで,イーサネットは速く,使いやすくなった。シーン3ではLANスイッチに注目し,今どきのイーサネットを探っていこう。

ハブは半2重,スイッチは全2重

 まず初めに,リピータ・ハブとLANスイッチの中身の違いから見てみる(図3-1)。

図3-1●リピータ・ハブとLANスイッチの構造の違い
図3-1●リピータ・ハブとLANスイッチの構造の違い
メルコのリピータ・ハブ(左)とギガ対応LANスイッチ(右)の内部写真である。外部のポートは同じRJ-45ジャックを使うが,そのほかの部品は大きく異なっている。
[画像のクリックで拡大表示]

 リピータ・ハブでは,リピータ用のコントローラが使われている。一方のLANスイッチは,PHYチップと「スイッチ・チップ*1」というLSIが載っている。PHYチップはシーン2で説明したLANアダプタにあるものと同じ機能を提供する。それに対して,LANスイッチの特徴的な機能を実現しているのは,スイッチ・チップだ。

 装置間のチップの違いは,機能の違いにどう表れるのだろうか。

 リピータ・ハブの中にあるリピータ用コントローラは,受信した電気信号を作り直して送り出すといった処理をする。あるポートから入ってきた電気信号は,ほかの全ポートに伝えられる。あたかも,内部で1本の共有バスにつながっているイメージになる(図3-2)。そのため,あるパソコンが通信している最中は,ほかのパソコンは通信できなくなってしまう。

図3-2●動作原理もリピータ・ハブとLANスイッチでは大きく異なる
図3-2●動作原理もリピータ・ハブとLANスイッチでは大きく異なる
UTPケーブルは送信と受信に別々のより対線を使うので全2重伝送が可能だが,リピータ・ハブを中継に使うと半2重通信しかできない。一方,LANスイッチは一つのポートで同時に送受信できるので,LAN全体を全2重にできる。

 1台のパソコンに注目すると,データの送信中はほかのだれからもデータが送られてこない。逆に,データの受信中は送信できない。このように,リピータ・ハブを使うと,半2重でしか通信できないのだ。

 一方,LANスイッチの中にあるスイッチ・チップは,受信したMACフレームを一つずつ目的のパソコンがつながるポートだけに送り出す。こうすることで,データを送信中のパソコンがあっても,ほかのパソコンが同時に通信できるようになる。つまり,LANスイッチの中では完全に全2重で通信できる。

 LANスイッチにつながるUTPケーブルはもともと別々の銅線で送信と受信を行っているので,その部分では全2重通信が可能だった。さらにUTPケーブルにつながる先がリピータ・ハブからLANスイッチに置き換わることで,イーサネットのLAN全体が全2重で通信できる環境になったのである。

適切なポートだけから送り出す

 では,LANスイッチはどのようにMACフレームを交換しているのだろうか。次はその辺りを見ていこう。

 LANスイッチはまず,各ポートから取り込んだMACフレームをいったん「フレーム・バッファ」というメモリーにためる。この状態で,MACフレームのヘッダーに書かれたあて先MACアドレスを読み取る(図3-3)。

図3-3●あて先を見てフレームを中継するLANスイッチ
図3-3●あて先を見てフレームを中継するLANスイッチ
LANスイッチは,電気信号しか見ないリピータ・ハブと違い,MACフレームのヘッダーを解釈し,MACアドレスに基づいてフレームを送り出すポートを決める。
[画像のクリックで拡大表示]

 あて先のアドレスを読み取ったら,その情報をLANスイッチのメモリーにある「アドレス・テーブル」と呼ぶ対応表と比較する。

 アドレス・テーブルには,MACアドレスと出力ポートが対になった情報が書かれている。その内容は「このポートの先には,このMACアドレスを持ったパソコンがつながっている」というもの。スイッチ・チップは,この対応表を参照して,あて先MACアドレスに対応したポートを選ぶ。出力ポートが決まると,MACフレームを電気信号に変えてケーブルに送り出す。

 出力ポートの決定に使うアドレス・テーブルは,とくに手動で設定する必要はない。自動的にLANスイッチが学習してくれるのである。あるポートからMACフレームが入ってくると,スイッチ・チップはあて先MACアドレスを見るだけではなく,送信元のMACアドレスもチェックする。対象となるMACフレームがそのポートから入ってきたということは,そのMACフレームの送信元MACアドレスのパソコンは,そのポートの先につながっているということになる。LANスイッチはこうした情報をアドレス・テーブルに書き込んでいくのである。

テーブルになければ全ポートに送出

 では,アドレス・テーブルに載っていないMACアドレスあてのフレームを出すポートはどのようにして決めているのか。その場合は,すべてのポートからそのMACフレームを送り出す。

 シーン1で見てきたように,特定のパソコンにあてたMACフレームは,そのあて先MACアドレスを持つパソコンしか受け取らない。無関係なパソコンはMACフレームを破棄してしまう。

 あて先に該当するパソコンは,送られてきたMACフレームに対して応答のMACフレームを返す。そのフレームの中には,送信元MACアドレスとしてパソコンのMACアドレスが含まれている。LANスイッチは,その返信フレームから送信元MACアドレスを読み込んで,アドレス・テーブルに登録する。次からは,テーブルを参照してそのパソコンがつながるポートだけにMACフレームを送れるようになる。

 アドレス・テーブルは,一度学習するとずっとそのままになっているわけではない。一定時間が経過すると,自動的に消去されてしまう。これは,ポートの先につながるパソコンが切り離されたりして構成が変わったときに備えるためのしくみである。構成が変わっても古いままのテーブルを使ってMACフレームを送り出していると,いつまでたっても通信できないし,無駄なトラフィックを発生させてしまうことになる。消去したあとは,初めからアドレス・テーブルを学習し直す。

ギガに向けて高速化したスイッチ

 LANスイッチの機能は,100Mビット/秒と1Gビット/秒ではそう変わらない。しかし,ギガビット・イーサネット対応スイッチでは,高速化のために機能が強化されている。

 おもな強化点は三つある。それは,(1)大量のスイッチ・フレームを処理するためのメモリー・バッファの大容量化,(2)高速転送されてくるスイッチ・フレームをスイッチングするためのスイッチ・チップの高速化,(3)高いビット・レートに対応するためのスイッチ・チップやPHYチップの変更――である。

 (1)のバッファ・サイズについては,アライドテレシスのハードウェア技術部で開発を手掛ける田中和安課長が説明してくれた。田中氏によれば「100MイーサネットのLANスイッチでは,容量が500Kバイト程度だったのが,ギガビット・スイッチでは1Mバイト程度に拡張しています。大型のワークグループ製品だと4Mバイトを搭載したものもあります」という。

 (2)のスイッチングについては,処理内容は100Mビット/秒と同じなので,純粋に処理自体を高速化している。当初は1ポートに対して1個のMACチップを使っていたが,最近はLSI技術の進歩によって,複数のポートを1個のスイッチ・チップでサポートできるようになった。

 (3)については,シーン2で説明した内容と同じである。ギガビット・イーサネットでは符号化方法や電気信号への変換処理を変更しているので,それに合わせたスイッチ・チップやPHYチップを使わなければならない。

 とくに,直接電気信号を受信するPHYチップの役割は重要である。10M,100M,1Gビット/秒のPHYチップは,それぞれの速度に応じた電気信号を受信できるように作られている。高い周波数の電気信号を受信しなければならないからだ。

 その一方,高速向けのPHYチップは,低速の電気信号も受信できる。10Mビット/秒のPHYチップは1Gビット/秒の電気信号を認識できないが,1Gビット/秒のPHYチップは10Mビット/秒の信号を認識できる。このため,1Gビット/秒のイーサネットでは,10M,100Mビット/秒もサポート可能である。

アップリンク・ポートが消えた?
 最近のLANスイッチには,「MDI/MDI-X」を自動的に切り替える機能がある。LANスイッチとパソコンをストレート・ケーブルでつなげるように,LANスイッチのなかで送信と受信を切り替えている(MDI-X)。一方,LANスイッチ同士をつなぐ場合には,お互いの送信同士,受信同士を合わせている(MDI)。古いLANスイッチは,MDI専用のポートを備えたものがあり,このポートが「アップリンク・ポート」である。