ネットワークエンジニアになろう! > 四方山話 > Cisco はなぜ、MAC アドレステーブルをCAM と呼ぶのか?

この記事は、改訂&リニューアルして『P はプロトコルのP - Cisco はなぜ、MAC アドレステーブルをCAM と呼ぶのか?』へ移転しました。

Cisco はなぜ、MAC アドレステーブルをCAM と呼ぶのか?

CatOS で動作しているCatalyst シリーズスイッチでは、MAC アドレステーブルのことをCAM (Content Addressable Memory) と呼んでいます。

CatOS のコマンドプロンプトで、show cam dynamic と実行すると、以下のような結果が得られます。



Catalyst> show cam dynamic

* = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry.
X = Port Security Entry

VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type]
---- ------------------ ----- --------------------------------------
1 00-60-5c-86-5b-81 * 4/1 [ALL]
1 00-60-2f-35-48-17 * 4/1 [ALL]
1 00-80-24-f3-47-20 * 1/2 [ALL]
1 00-60-09-78-96-fb * 4/1 [ALL]
1 00-80-24-1d-d9-ed * 1/2 [ALL]
1 00-80-24-1d-da-01 * 1/2 [ALL]
1 08-00-20-7a-63-01 * 4/1 [ALL]

なぜ、MAC アドレスと宛先ポートを格納しているテーブルをCAM と呼ぶのでしょうか?
CAM とは何でしょうか?


端的に言うとCAM は、SRAM などのメモリー上に展開されたテーブルから、目的のエントリーを高速に見つけ出すための手段です。

CAM の効用を理解するためには、まず、CAM ではないテーブル検索手段を見てみる必要があります。

どのような種類のテーブルでも良いのですが、ここはMAC アドレステーブルを例に考えてみましょう。

VLAN をサポートした最近のスイッチでは、さまざまな要素をMAC アドレステーブルに格納しています。
しかし今回は、もっともシンプルに、MAC アドレスとそれに対応するポート番号だけを格納したテーブルを、想定します。

MAC アドレステーブルから引き出したい情報は、そのアドレスが学習されたポートの番号です。
スイッチは、ポート番号を知ることで、そのアドレス宛のフレームを、正しいポートに転送できます。

テーブルから目的のエントリを探し出す一番シンプルな方法は、1行目から順番に見ていくことです。
間違いのない方法ですが、テーブルが大きくなると、どうしても時間がかかります。

実際には、ハッシュを使うなど、さまざまな工夫が施されています。
しかし、CPU により処理されるこれらの検索手段で、検索に要する時間を短縮するのは限界があります。


1980年代の後半、CAM が登場します。

CAM は、先にも述べたとおり、メモリー上のテーブルから目的のエントリーを高速に見つけ出すための手段です。

技術の進歩により製造コストが下がった半導体素子上に、メモリー上のテーブルを検索するための、専用のハードウェアを実装したものがCAM です。
検索エンジンであって、検索対象のテーブルでは無いことに注意してください。

CAM に、キーとなる要素を入力すると、その要素が格納されている、テーブルのアドレスが得られます(今回の例では、要素とはMAC アドレスです)。
アドレスが分かれば、テーブルのその箇所を直接読むことができます。

CAM を利用すると、検索に要する時間は、テーブルの大きさに左右されません。
通常、1クロックで検索が完了します。

CAM の動作を知るには、次のサイトがお勧めです。
英文ですが、それほど難しい表現もありませんし、量も多くありません。
前半だけでもCAM の概要を理解することができます。
後半はトランジスタの動作を理解していないと難しいですが、単純なフリップフロップ回路が理解できる程度の知識があれば、難しくありません。

Content-Addressable Memory Introduction


繰り返しますが、CAM はテーブルではありあません。
それでは、なぜCisco は、MAC アドレステーブルのことをCAM と呼ぶのでしょうか。

これは私見ですが、この命名には、マーケティング目的のバイアスがかかっているのでしょう。

LAN スイッチが登場した1990年代初頭は、半導体製造技術の進歩により製造コストが顕著に低下し始めた時期と一致します。
いえ、安価な半導体素子の存在こそが、LAN スイッチの実現に大きく貢献しているとも言えます。

CAM という新しい技術を採用していることを、アピールする目的があったことが伺えます。

※ もちろん、当時からCAM を採用していたのはCisco(旧Crescendo) だけではありません。

CAM とTCAM (Ternary CAM) も併せてお読みください。


ネットワークエンジニアになろう!のトップページへ戻る
サイト内検索
無料メールマガジン「英語でネットワークエンジニア」
マニュアルやRFCを読むのに必要なのは、高度な文法知識ではなく語彙力です。毎回一単語、例文と解説に技術情報を併せてお届けします. (マガジンID:0000181633)
メールアドレス:
Powered by
This website is powered by Movable Type 3.2 Smartnetworks.jp.