Warum befindet sich die CAM-Tabelle in einem Switch namens CAM-Tabelle und nicht in einer MAC-Tabelle, obwohl sie MAC-Adressen enthält?

15

Ich weiß, dass die CAM-Tabelle in einem Switch MAC-Adressen und die Ports enthält, die den jeweiligen MAC-Adressen zugeordnet sind. Meines Wissens nach gibt es keine CAM-Adressen. Warum heißt sie CAM-Tabelle und nicht MAC-Tabelle?

yoyo_fun
quelle
Wenn Sie in Wikipedia nach "CAM-Tabelle" suchen, wird dies im ersten Absatz erläutert.
Stig Hemmer
Bitte akzeptieren Sie eine Antwort ...
1
CAM-Tabellen sind eine Art Speicher- / Tabellengerät, das zum effizienten Speichern und Nachschlagen von Daten verwendet wird. Der Name "CAM" bezieht sich nicht auf den Namen der Daten, die es speichert, "MAC-Adresse" - es ist nur ein Zufall, dass es die gleichen drei Buchstaben sind, aber in umgekehrter Reihenfolge.
Jwbensley

Antworten:

27

CAM (Content Addressable Memory) ist ein Speicher, der nicht durch eine numerische Speicheradresse, sondern durch Inhalt adressiert werden kann. Sie können die Schnittstelle nachschlagen, indem Sie dem Speicher die MAC-Adresse zuweisen. Dies erfolgt in einem einzelnen CPU-Zyklus im Vergleich zur herkömmlichen Programmierung des Durchsuchens einer Tabelle, die viele CPU-Zyklen kostet.

Es gibt auch TCAM (Ternary Content Addressable Memory), das eine Maske verwenden kann. Dies ist besonders nützlich für die IP-Adressierung und wird unter anderem von ACLs oder Routing-Tabellen verwendet.

CAM und TCAM kosten viel mehr als Standard-DRAM, aber die von ihnen für bestimmte Anwendungen erzielte Leistungssteigerung kann die Kosten-, Leistungs- und Größenkompromisse wert sein, die Sie eingehen müssen.

Da die meisten Standard-PCs nichts Ähnliches enthalten, können Sie sehen, wie eine speziell angefertigte Hardware, z. B. ein Router oder ein Switch, einen Leistungsvorteil gegenüber einem Standard-PC für Routing- oder Switching-Zwecke haben kann.

Ron Maupin
quelle
Der TLB ist eine CAM
Joshua
3
(Sehr) grob gesagt ist CAM das Hardware-Äquivalent eines C # -Lexikons , einer C ++ - oder einer Java-Map , die alle einen schnellen Zugriff nach Wert und nicht nach Position / Index ermöglichen .
TripeHound
14

CAM - Content Addressable Memory (Inhaltsadressierbarer Speicher), bezieht sich auf den für die MAC-Adresstabelle verwendeten Speicher.

Es funktioniert sozusagen umgekehrt zum RAM, Sie adressieren es, indem Sie ihm Inhalt geben, und es gibt Ihnen die Adresse zurück, an der der Inhalt gespeichert ist - die dann verwendet wird, um den Ausgangsport für diese Adresse zu finden.

sergeyrar
quelle
Ist dieser Speicher eine spezielle Art von elektronischer integrierter Schaltung?
yoyo_fun
2
Ich kenne die Interna nicht, aber hier ist ein Artikel: pagiamtzis.com/cam/camintro
sergeyrar
1
@ yoyo_fun im Grunde ja
user253751
@yoyo_fun Jeder (moderne flüchtige) Computerspeicher ist eine Art elektronische integrierte Schaltung (oder eine Komponente davon).
JAB
4

Tatsächlich wird es von den meisten als MAC-Tabelle bezeichnet. Der Befehl, um es in fast allen Switches / Geräten nachzuschlagen, lautet show mac-address table (oder irgendeine Form davon). Sehr selten wird es als CAM-Tabelle angegeben, es sei denn, es muss zwischen CAM und TCAM unterschieden werden, oder jemand unterrichtet das Fach.

Fixitrod
quelle
2
Oder es ist ein Schalter mit Cisco CatOS ...
psmears
@psmears, Korrektur ... es ist ein Cisco-Switch. CatOS existiert seit über einem Jahrzehnt nicht mehr
Mike Pennington
@ Mike: Wenn nur ein Wesen Produkt EOLed bedeutet , dass es nicht mehr gegeben ist auf dem Gebiet hat Seufzer ...
psmears
1
Lassen Sie mich klar sein: Ob ein Switch CatOS oder IOS ausführt, ist irrelevant. Alle Cisco-Switches verwenden CAM, unabhängig davon, unter welchem ​​Betriebssystem sie ausgeführt werden.
Mike Pennington
2

In einer CAM-Tabelle können auch andere Formen von exakten Übereinstimmungseinträgen in einem L2 / L3-Switch gespeichert werden, für die keine Masken erforderlich sind, z. B. Hostrouten, MPLS-Labels oder sogar maskenlose exakte Übereinstimmungen, z. B. das Partitionieren einer Tabelle mit 24-Bit-Einträgen und fülle es mit / 24 Routen.

Joel Jaeggli
quelle