DE10196582B3 - Verfahren und Vorrichtung zum Durchsuchen einer Filterdatenbank mit einem Suchvorgang - Google Patents

Verfahren und Vorrichtung zum Durchsuchen einer Filterdatenbank mit einem Suchvorgang Download PDF

Info

Publication number
DE10196582B3
DE10196582B3 DE10196582T DE10196582T DE10196582B3 DE 10196582 B3 DE10196582 B3 DE 10196582B3 DE 10196582 T DE10196582 T DE 10196582T DE 10196582 T DE10196582 T DE 10196582T DE 10196582 B3 DE10196582 B3 DE 10196582B3
Authority
DE
Germany
Prior art keywords
identifier
entry
forwarding
data packet
switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10196582T
Other languages
English (en)
Other versions
DE10196582T1 (de
Inventor
David A. Brown
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mosaid Technologies Inc
Original Assignee
Mosaid Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mosaid Technologies Inc filed Critical Mosaid Technologies Inc
Publication of DE10196582T1 publication Critical patent/DE10196582T1/de
Application granted granted Critical
Publication of DE10196582B3 publication Critical patent/DE10196582B3/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/959Network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

Switch (200) zum Empfangen und Weiterleiten von Datenpaketen, umfassend: mindestens einen Eingangsanschluss (206b) zum Empfangen von Datenpaketen, wobei zumindest eines der Datenpakete mit einem Identifizierer (306) eines virtuellen LAN verknüpft ist, mindestens einen Ausgangsanschluss (208a) zum Weiterleiten der Datenpakete, und eine Weiterleitungslogik (210), welche einen übersetzten Identifizierer (310) für den Identifizierer (306) des virtuellen LANs bereitstellt, wobei die Weiterleitungslogik (210) umfasst: eine Filterdatenbank (302), welche einen Weiterleitungsvektor (202) für den übersetzten Identifizierer (310) durch eine einzige Suche der Filterdatenbank (302) bereitstellt.

Description

  • Hintergrund der Erfindung
  • Das erste Internet-LAN (Local Area Network) wurde auf einem gemeinschaftlichen Medium implementiert, wie beispielsweise ein einzelnes Koaxialkabel, das alle Geräte in dem LAN verbindet. Das gemeinschaftliche Medium führte zu einer Beschränkung der Signallänge auf dem physikalischen Medium und zu einer Begrenzung der Anzahl der Geräte, die mit dem LAN verbunden werden konnten, da nur ein Gerät gleichzeitig Daten auf dem gemeinschaftlichen Medium übertragen konnte.
  • Ein Switch schafft ein Mittel zum Erhöhen der Größe eines LANs, indem es eine Brücke zwischen Gruppen von Geräten schafft, die an dem gleichen physikalischen Medium oder LAN-Segment angeschlossen sind. Das LAN kann als mehrfache LAN-Segmente angesehen werden, die miteinander durch einen oder mehrere Switche verbunden sind. Wenn beispielsweise ein erster Anschluss in dem Switch mit einem ersten LAN-Segment verbunden ist und ein zweiter Anschluss in dem Switch mit einem zweiten LAN-Segment verbunden ist. Der Switch wirkt als Brücke zwischen den LAN-Segmenten zum Weiterleiten von Datenpaketen, die von dem ersten LAN-Segment für ein an das zweite LAN-Segment angeschlossenes Gerät bestimmt sind.
  • Jedem an das LAN-Segment in dem LAN angeschlossenen Gerät wird eine einzigartige Mediumzugangsteuerungs-(”MAC”)-Adresse zugeordnet. Jedes Datenpaket beinhaltet eine MAC-Quellenadresse, die dem das Datenpaket aussendenden Gerät zugeordnet ist, und die MAC-Zieladresse des Geräts, zu dem das Datenpaket weitergeleitet werden soll.
  • Der Switch bestimmt, ob das auf einem LAN-Segment empfangene Datenpaket zu einem anderen LAN-Segment weitergeleitet werden soll, indem eine Ziel-MAC-Adresse in Verbindung mit einem Anschluss in dem Switch gebracht wird; dieser Anschluss ist mit dem LAN-Segment verbunden, in dem sich die MAC-Adresse befindet. Diese Zuordnung kann in einem statischen Weiterleitungseintrag in einer Weiterleitungstabelle in dem Switch gespeichert werden. Ein statischer Weiterleitungseintrag wird explizit durch Steuerungsaktionen konfiguriert und wird während des Betriebs des Switches nicht verändert. Wenn beispielsweise ein Gerät A an das LAN-Segment A angeschlossen ist und das LAN-Segment A an einen Anschluss 1 in dem Switch angeschlossen ist, ordnet ein statischer Weiterleitungseintrag für Gerät A die MAC-Adresse für Gerät A Anschluss 1 zu. Wenn Gerät A physikalisch zu Segment B bewegt wird, das an Anschluss 2 in dem Switch angeschlossen ist, wird der statische Eintrag in der Weiterleitungstabelle für das Gerät A nicht automatisch aktualisiert, um anstelle von Anschluss 1 zu Anschluss 2 weiterzuleiten. Eine Rekonfigurierung des Switches durch Steuerungsaktionen ist erforderlich, um einen statischen Weiterleitungseintrag zu aktualisieren.
  • Die Zuordnung zwischen einer MAC-Adresse und einem Anschluss in dem Switch kann während des Betriebs des Switches gelernt werden anstatt dass er explizit in einem statischen Weiterleitungseintrag in dem Switch konfiguriert wird. Das Lernen ermöglicht, dass Zuordnungen zwischen MAC-Adressen und Anschlüssen in dem Switch während des Betriebs des Switches dynamisch erzeugt und modifiziert werden. Eine gelernte Zuordnung wird in einem dynamischen Weiterleitungseintrag in der Weiterleitungstabelle in dem Switch gespeichert. Um MAC-Adressen zu lernen, achtet der Switch auf Datenpakete, die auf allen LAN-Segmenten, die an Anschlüssen in dem Switch angeschlossen sind, gesendet werden. Der dynamische Eintrag ordnet der MAC-Adresse den Anschluss zu, der mit dem LAN-Segment verbunden ist, aus dem das Datenpaket stammt.
  • Der Switch erzeugt einen neuen dynamischen Weiterleitungseintrag in der Weiterleitungstabelle, sobald es eine MAC-Adresse detektiert, die in dem in einem Datenpaket beinhalteten Quellenadressfeld gespeichert ist, die keinen entsprechenden Weiterleitungseintrag in der Weiterleitungstabelle besitzt. Der Switch aktualisiert einen dynamischen Weiterleitungseintrag, der einer MAC-Adresse zugeordnet ist, jedes Mal, wenn er ein Datenpaket empfängt, das von der MAC-Adresse ausgegangen ist.
  • Wenn beispielsweise der Switch ein Datenpaket auf Segment A sieht, das mit Anschluss 1 verbunden ist, wobei die MAC-Adresse A in dem Quellenadressfeld gespeichert ist, erzeugt der Switch einen dynamischen Weiterleitungseintrag in der Weiterleitungstabelle für die MAC-Adresse A. Der dynamische Weitereitungseintrag ordnet MAC-Adresse A Anschluss 1 zu. Nachfolgende Datenpakete, die von einem anderen Anschluss in dem Switch empfangen worden sind und die MAC-Adresse A als Zieladresse beinhalten, werden durch Anschluss 1 weitergeleitet. Wenn das Gerät mit der MAC-Adresse A zu einem anderen LAN-Segment bewegt wird, das am Anschluss 2 in dem Switch angeschlossen ist, lernt der Switch die neue Zuordnung nach dem Empfang eines Datenpakets auf Anschluss 2 von MAC-Adresse A. Der Switch aktualisiert den dynamischen Weiterleitungseintrag für die MAC-Adresse A, um Datenpakete zur MAC-Adresse A durch Anschluss 2 anstatt durch Anschluss 1 hindurch weiterzuleiten.
  • Das Erhöhen der Größe des LANs durch Schaffen mehrfacher LAN-Segmente durch die Verwendung eines Switches erhöht die Bandbreite des LANs und daher die Anzahl der Geräte, die an das LAN angeschlossen werden können. Durch Erhöhen der Anzahl der an das LAN angeschlossenen Geräte wird jedoch ebenso die Bandbreite erhöht, die durch Sendeverkehr verzehrt wird. Der Sendeverkehr erhöht sich, da nach dem Empfang eines Datenpakets für eine unbekannte MAC-Adresse ein Sendepaket an alle Geräte weitergeleitet wird, die mit dem LAN verbunden sind, um die Weiterleitungsinformation für die unbekannte MAC-Adresse zu lernen. Das Sendedatenpaket beinhaltet eine spezielle MAC-Adresse, die von einer MAC-Adresse stammt, die an alle anderen Geräte weitergeleitet wird, die mit dem LAN verbunden sind. Anders als Einzelverbindungsverkehr, d. h. ein Datenpaket wird von einer einzigen Quellenadresse zu einer einzigen Zieladresse gesendet, kann Breitverbindungsverkehr nicht auf ein einzelnes LAN-Segment begrenzt werden. Nachdem die Anzahl der an ein LAN angeschlossenen Geräte sich erhöht, erhöht sich das Ausmaß von Breitverbindungsverkehr, wodurch sich die verfügbare Bandbreite auf dem LAN unabhängig von der Anzahl von physikalischen LAN-Segmenten in dem LAN verringert.
  • Eine Lösung zur Verringerung von Breitverbindungsverkehr in einem LAN wird durch logisches Segmentieren des LANs in Virtual Local Area Networks (”VLAN”) geschaffen. Ein Verfahren zum logischen Segmentieren eines LANs in VLANs ist in dem Standard ”Institute of Electric and Electronic Engineers” (”IEEE”) P802.1Q beschrieben. In einem Switch, der VLANs unterstützt, wird ein Breitverbindungsverkehrdatenpaket nur über einen Anschluss weitergeleitet, wenn der Anschluss Mitglied desselben VLAN ist, von dem das Datenpaket empfangen wurde. Auf diese Weise wird Breitverbindungsverkehr nur an Geräte weitergeleitet, die Mitglieder des gleichen VLAN sind, von dem das Breitverbindungsdatenpaket stammt.
  • In einem LAN, das logisch in VLANs segmentiert worden ist, beinhaltet jedes auf dem LAN weitervermittelte Datenpaket einen VLAN-Identifizierer (”VID”), das das VLAN angibt, von dem das Datenpaket stammt. Die Mitgliedschaft eines VLAN ist auf eine zugeordnete logische Adresse, der VID, gegründet, im Unterschied zu einer physikalischen Adresse. Daher müssen Mitglieder einer VLAN nicht Mitglieder des gleichen physikalischen LAN-Segments sein. Der gesamte Verkehr auf dem LAN, einschließlich Breitverbindungs-, Einzelverbindungs- und Mehrfachverbindungsdatenverkehr wird auf das virtuelle VLAN beschränkt, von dem er stammt, indem das Weiterverbinden des Verkehrs an Mitglieder des VLAN begrenzt wird, das von der VID angegeben wird, die in dem Datenpaket beinhaltet ist. Ein Gerät kann nur mit einem Mitglied eines VLAN in Verbindung treten, wenn das Gerät ebenso ein Mitglied des VLANs ist, das von der VID angezeigt wird, die in dem empfangenen Datenpaket beinhaltet ist. Daher enthält eine VLAN Breitverbindungsverkehr innerhalb der VLAN, von dem das Breitverbindungspaket stammt und schafft Sicherheit zum Datentransfer zwischen Mitgliedern des VLAN.
  • Durch Anwendung von VLANs auf ein LAN hängt ein Weiterleitungsentscheidung, die in einem statischen Weiterleitungseintrag oder einem dynamischen Weiterleitungseintrag gespeichert ist, sowohl von der VID als auch der MAC-Adresse ab, die in dem empfangenen Datenpaket beinhaltet ist. Eine MAC-Adresse kann Mitglied von mehr als einem VLAN sein, wobei entweder ein statischer oder ein dynamischer Weiterleitungseintrag in der Weiterleitungstabelle für jedes VLAN benötigt wird, in dem die MAC-Adresse Mitglied ist. Wenn der Switch unabhängiges Lernen verwendet, werden eine Mehrzahl von dynamischen Weiterleitungseinträgen für eine MAC-Adresse geschaffen, einer für jedes VLAN, in dem die MAC-Adresse gelernt ist. Um die Anzahl von dynamischen Weiterleitungseinträgen zu verringern, die für jede gelernte MAC-Adresse gespeichert und aktualisiert wird, kann der Switch gemeinschaftliches Lernen anwenden. Gemeinschaftliches Lernen ermöglicht es, die für eine MAC-Adresse auf einem VLAN gelernte Weiterleitungsinformation mit anderen VLANs in einem bestimmten Satz von VLANs zu teilen. Die Weiterleitungsinformation wird verwendet, um Weiterleitungsentscheidungen für diese MAC-Adresse zu fällen.
  • Um gemeinschaftliches Lernen in einem Switch zu implementieren, wird jedem VLAN in dem Switch genau ein Filteridentifizierer (”FID”) zugeordnet. Zum unabhängigen Lernen gibt es eine 1-zu-1-Entsprechung zwischen einem VID und einem FID. Zum gemeinschaftlichen Lernen wird eine Mehrzahl von VIDs einer FID zugeordnet. Nur die VID wird in einem Datenpaket weitergeleitet, die FID wird zufällig durch den Switch zugeteilt und intern in dem Switch verwendet. Bei einem Switch mit gemeinschaftlichem Lernen wird die gesamte erlernte Information zum unabhängigen Lernen oder zum gemeinschaftlichen Lernen in einem dynamischen Weiterleitungseintrag in der Weiterleitungstabelle gespeichert, die einer FID anstelle einer VID zugeordnet ist. Explizit konfigurierte Weiterleitungsinformation ist in einem statischen Weiterleitungseintrag gespeichert, der einer VID zugeordnet ist. Ein Switch kann gleichzeitig sowohl gemeinschaftliches Lernen als auch unabhängiges Lernen unterstützen.
  • Das gemeinschaftliche VLAN-Lernen ermöglicht es, erlernte MAC-Adressen-Information in einem Satz von VLANs gemeinschaftlich zu verwenden, da nur ein dynamischer Weiterleitungseintrag, der einer FID zugeordnet ist, in der Weiterleitungstabelle für die FID gespeichert ist. Jedoch auch wenn die Weiterleitungsinformation der MAC-Adresse gemeinschaftlich von einem Satz von VLANs in der FID benutzt wird, leitet der Switch nur ein Datenpaket durch einen Anschluss weiter, der ein Mitglied von der VLAN ist, von dem das Datenpaket stammt. Diese Weiterleitungsentscheidung kann mittels der Verwendung von Ausgangsfilterung getroffen werden. So wird bei einem Switch mit gemeinschaftlichem Lernen Breitverbindungsverkehr auf das VLAN beschränkt, von dem er stammt und Sicherheit zwischen VLANs geschaffen.
  • 1A zeigt eine Weiterleitungstabelle 130 gemäß dem Stand der Technik, die in einem Switch mit gemeinschaftlichem Lernen implementiert war. Die Weiterleitungstabelle 130 gemäß dem Stand der Technik beinhaltet statische Weiterleitungseinträge 130 und dynamische Weiterleitungseinträge. Der statische Weiterleitungseintrag 132 ordnet einen Weiterleitungsvektor 140 einer MAC-Adresse 136b und einer VID 138 zu. Der dynamische Eintrag 134 ordnet einen Weiterleitungsvektor 140 einer MAC-Adresse 136a und einer FID 142 zu. Der Weiterleitungsvektor 140a, 140b ist eine Bitkarte, die ein Bit für jeden Anschluss in dem Switch beinhaltet, das den Anschluss oder die Anschlüsse anzeigt, durch die das Datenpaket weiterzuleiten ist. Die VID 138 in dem statischen Weiterleitungseintrag 132 ist die gleiche VID, die in dem von dem Switch empfangenen Datenpaket enthalten ist. Die in dem dynamischen Weiterleitungseintrag 134 gespeicherte FID 142 ist einem Satz von VIDs oder einer einzigen VID zugeordnet. Ein Weiterleitungseintrag, der der MAC-Adresse zugeordnet ist, und die VID, die in einem empfangenen Datenpaket beinhaltet ist, können in einem statischen Weiterleitungseintrag 132 oder einem dynamischen Weiterleitungseintrag 134 abhängig davon gespeichert werden, ob die MAC-Adresse von dem Schalter gelernt worden ist oder durch Steuerung explizit definiert worden ist. So werden zwei Suchen der Weiterleitungstabelle 130 erfordert, um eine Weiterleitungsentscheidung für einen Weiterleitungseintrag zu bestimmen, der einer MAC-Adresse und der VID zugeordnet ist, die in einem empfangenen Datenpaket beinhaltet ist.
  • Die erste Suche sucht nach einem statischen Weiterleitungseintrag 132 in Abhängigkeit von der VID 138, die in dem Datenpaket beinhaltet ist, oder einer Vorgabe-VID. Eine Vorgabe-VID wird dem Datenpaket in Abhängigkeit des Anschlusses zugeordnet, an dem das Datenpaket empfangen worden ist, wenn keine VID in dem Datenpaket beinhaltet ist. Wenn es keinen statischen Weiterleitungseintrag 132 in der Weiterleitungstabelle 130 gibt, der der MAC-Adresse zugeordnet ist, wird eine zweite Suche für einen dynamischen Weiterleitungseintrag 134 durchgeführt, die die FID 142 beinhaltet, die der VID 138 mittels des Switches und der MAC-Adresse 136a zugeordnet ist.
  • Aus Paul Devashish, „Ternary DRAM CAM: Now and the Future”, 01.05.2000, URL: http://www.edn.com/design/communicationsnetworking/4354303/Ternary-DRAM-CAM-Now-and-the-Future ist es bekannt, ternäre inhaltsadressierbare Speicher (CAM, vom englischen content addressable memories) zu verwenden, um Lookup-Tabellenfunktionen, welche in Netzwerkanwendungen benötigt werden, zu beschleunigen.
  • Zusammenfassung der Erfindung
  • Mehrfache Suchen einer Filterdatenbank erhöhen die Zeit zum Filtern eines Datenpakets, das von dem Switch empfangen worden ist. Wir stellen einen Switch vor, der einen Übersetzer und eine Filterdatenbank beinhaltet, die eine einzelne Suche durchführt. Der Übersetzer schafft einen übersetzten Identifizierer für einen Identifizierer, der einem Datenpaket zugeordnet ist, das von dem Switch empfangen worden ist. Der übersetzte Identifizierer beinhaltet einen Gruppenidentifizierer, der einer virtuellen LAN-Gruppe (FID) und einer Gruppenteilnehmernummer entspricht, die einem identifizierten virtuellen LAN (VID) entspricht. Die Filterdatenbank speichert einen statischen Eintrag und einen dynamischen Eintrag. Der statische Eintrag speichert eine Weiterleitungsentscheidung für das Datenpaket, das dem übersetzten Identifizierer zugeordnet ist. Der dynamische Eintrag speichert eine Weiterleitungsentscheidung für das Datenpaket, das dem Gruppenidentifizierer, der in dem übersetzten Identifizierer beinhaltet ist, und der Gruppenteilnehmernummer zugeordnet ist, die zu ”unerheblich” gesetzt ist. Der übersetzte Identifizierer ermöglicht es einer Filterdatenbank, die Weiterleitungsentscheidung, die in dem statischen Eintrag oder dem dynamischen Eintrag gespeichert ist, für den Identifizierer in einem einzigen Suchvorgang bereitzustellen.
  • Der Gruppenidentifizierer, der in dem übersetzten Identifizierer beinhaltet ist, wird sowohl in dem statischen Eintrag als auch dem dynamischen Eintrag gespeichert. In dem dynamischen Eintrag wird die Gruppenteilnehmernummer auf ”unerheblich” gesetzt. So kann ein einziger Suchvorgang verwendet werden, um eine Übereinstimmung für den Identifizierer zu finden, der entweder in dem statischen Eintrag oder dem dynamischen Eintrag in der Filterdatenbank gespeichert sein kann.
  • In bestimmten Ausführungsformen identifiziert die Gruppenteilnehmernummer einen von mehreren Teilnehmern, die dem Gruppenidentifizierer zugeordnet sind. Die Filterdatenbank kann ein Assoziativspeicher sein. Der Assoziativspeicher kann ein ternärer Assoziativspeicher zum Unterstützen eines ”unerheblich”-Zustands sein.
  • Der Identifizierer kann in einem Header gespeichert sein, der in dem empfangenen Datenpaket beinhaltet ist, oder in einem Vorgabeidentifizierer, der von dem Switch dem empfangenen Datenpaket zugeordnet wird.
  • Kurze Beschreibung der Zeichnungen
  • Das Vorhergehende und andere Ziele, Merkmale und Vorteile der Erfindung werden aus der folgenden ausführlicheren Beschreibung von bevorzugten Ausführungsbeispielen der Erfindung deutlich, wie es in den begleitenden Zeichnungen dargestellt ist, in denen ähnliche Bezugszeichen sich auf die gleichen Teile über die verschiedenen Ansichten hinweg beziehen. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, wohingegen stattdessen hervorgehoben wird, dass die Prinzipien der Erfindung dargestellt sind.
  • 1A zeigt eine Weiterleitungstabelle 130 gemäß dem Stand der Technik, die in einem Switch implementiert ist, der gemeinschaftliches Lernen unterstützt;
  • 1B zeigt ein Datenpaket nach dem Stand der Technik, das an einem Eingangsanschluss in dem Switch empfangen werden kann;
  • 1C zeigt einen Header einer Ethernet-Datenverbindungsschicht (L2) gemäß dem Stand der Technik, der in dem in 1A dargestellten Datenpaket enthalten sein kann;
  • 2 zeigt ein Blockdiagramm eines Switches, der eine Weiterleitungslogik zum Weiterleiten von empfangenen Datenpaketen zu VLANs beinhaltet, die mit Anschlüssen in dem Switch verbunden sind;
  • 3 ist ein Blockdiagramm der in 2 dargestellten Weiterleitungslogik;
  • 4 ist ein Blockdiagramm des Übersetzers in der in 3 dargestellten Weiterleitungslogik;
  • 5 ist ein Blockdiagramm der Filterdatenbank in der in 3 dargestellten Weiterleitungslogik;
  • 6 ist ein Flussdiagramm, das ein Verfahren zum Auswählen eines Weiterleitungsvektors für ein empfangenes Datenpaket zeigt.
  • Detaillierte Beschreibung der Erfindung
  • Es folgt eine Beschreibung von bevorzugten Ausführungsbeispielen der Erfindung.
  • 1B zeigt ein Datenpaket 100 gemäß dem Stand der Technik. Das Datenpaket beinhaltet einen Header 102 der physikalischen Schicht (L1), einen Header 104 der Datenverbindungsschicht (L2), einen Header 106 der Netzwerkschicht (L3) und einen Header 108 der Transportschicht (104). Ein Nutzwert für das Datenpaket ist in einem Datenfeld 110 gespeichert und das Datenpaket 100 beinhaltet ebenso eine Prüfsumme 112.
  • 1C zeigt einen Ethernet-Protokoll-Header gemäß dem Stand der Technik, der in dem in 1B dargestellten Header 104 der Datenverbindung (L2) gespeichert ist. Die Länge des Ethernet-Protokoll-Headers ist eine feste Anzahl von Bits, die von dem Standard-Ethernet-Protokoll spezifiziert ist. Der Header 104 der Datenverbindung (L2) beinhaltet ein 6-Byte-L2-Zieladressfeld 114, ein 6-Byte-L2-Quelladressfeld 116, ein Feld 118 des Virtual Local Area Network Identifiers (”VID”) und ein 2-Byte-Länge/Typ-Feld 120. Die VID 118 beinhaltet einen Tack Protocol Identifier (”TPID”) 118a und eine Tack Control Information (”TCI”) 118b.
  • 2 ist ein Blockdiagramm eines Switches 200, der eine Weiterleitungslogik 210 zum Bestimmen einer Weiterleitungsentscheidung für Datenpakete beinhaltet, die an dem Eingangsanschluss 206a–b empfangen werden. Die Anzahl der Ausgangsanschlüsse 208a–b und der Eingangsanschlüsse (206–b) ist nicht auf die zwei in 2 dargestellten beschränkt. In einem Ausführungsbeispiel sind in dem Switch 200 26 Ausgangsanchlüsse 208a–b und Eingangsanschlüsse 206a–b vorgesehen.
  • Der Switch 200 beinhaltet einen Eingangsanschlussprozessor 216, einen Ausgangsanschlussprozessor 218, eine Paketspeichersteuerung 220 und einen Segmentpufferspeicher 224. Nach Empfang eines Datenpakets 100 am Eingangsanschluss 206a oder 206b, filtert die Weiterleitungslogik 210 in den Eingangsanschlüssen das Datenpaket 100, um zu bestimmen, ob das Datenpaket 100 zu einem Ausgangsanschluss 208a–b in dem Switch 100 weitergeleitet werden soll oder verworfen werden soll; d. h. ausgelassen werden soll.
  • Die Weiterleitungslogik 210 beinhaltet eine Filterdatenbank 302. Die Filterdatenbank beinhaltet einen statischen Eintrag 500 und einen dynamischen Eintrag 502. Jeder statische Eintrag 500 und jeder dynamische Eintrag 502 beinhaltet einen Zeiger auf einen Weiterleitungsvektor 202. Der Zeiger zu einem Weiterleitungsvektor ist einer VID 118 (1C) und einer MAC DA 114 (1C) zugeordnet, die in dem Header 104 der Datenverbindungsschicht (L2) (1B) des empfangenen Datenpakets enthalten sind. Ein statischer Eintrag 500 wird durch eine Steuerungsaktion explizit zu der Filterdatenbank 302 hinzugefügt. Ein dynamischer Eintrag 502 wird von dem Switch 200 gelernt.
  • Ein Datenpaket 100 wird weitergeleitet, wenn es einen statischen Eintrag 500 oder einen dynamischen Eintrag 502 gibt, der in der Filterdatenbank 302 gespeichert ist und einer VID 118 (1C) und einer MAC DA 114 (1C) zugeordnet ist, die in dem Datenpaket 100 beinhaltet sind. Wenn für das Datenpaket 100 kein statischer Eintrag 500 oder dynamischer Eintrag 502 vorgesehen ist, wird das Datenpaket 100 fallen gelassen bzw. ausgelassen. Wenn es einen statischen Eintrag 500 und einen dynamischen Eintrag 502 gibt, stellt der dynamische Eintrag 502 oder der statische Eintrag 500 den Ort eines Weiterleitungsvektors 202 für das Datenpaket 100 zur Verfügung. Der Weiterleitungsvektor 202 zeigt einen oder mehrere Ausgangsanschlüsse 208a–b an, durch die das Datenpaket 100 weitergeleitet werden soll.
  • Zwei physikalische LAN-Segmente 212a–b sind mit dem Switch 200 verbunden. Das physikalische LAN-Segment 212a beinhaltet Geräte 204a–c und 204i–j. Das physikalische LAN-Segment 212b beinhaltet Geräte 204d–h. Ein Gerät 204a–j kann ein Hauptcomputer, ein Benutzercomputer, ein Terminal, eine Workstation oder ein anderes Gerät sein, das mit dem LAN verbunden sein kann. Das physikalische LAN-Segment 212a ist mit dem Switch 200 über den Eingangsanschluss 206b und den Ausgangsanschluss 208b verbunden. Das physikalische LAN-Segment 212b ist mit dem Switch über dem Eingangsanschluss 206a und dem Ausgangsanschluss 208a verbunden.
  • Die Geräte 204a–j, die mit den physikalischen LAN-Segmenten 212a–b verbunden sind, sind ebenso Mitglieder der Virtual Local Area Networks (”VLANs”) 214a–e. Mitglieder einer VLAN 214a–e müssen nicht Mitglieder des gleichen physikalischen LAN-Segments 212a–b sein, da die Mitgliedschaft in einer VLAN 214a–e auf einer logischen Adresse anstelle einer physikalischen Adresse gegründet ist. Die Mitglieder einer VLAN 214a–e sind der gleichen logischen Adresse oder VID zugeordnet. Die VID ist durch Steuerungsaktion definierbar und konfigurierbar.
  • Die VID kann in dem VID-Feld 118 (1C) in dem Header 104 der Datenverbindungsschicht (L2) des Datenpakets gespeichert sein oder kann von dem Switch 200 in Abhängigkeit eines Eingangsanschlusses 206a–b nach dem Detektieren eines empfangenen Datenpakets ohne VID zugeordnet werden. Eine VID ermöglicht Mitgliedern der gleichen VLAN 214a–e zu kommunizieren, als ob sie auf dem gleichen physikalischen LAN-Segment 212a–b wären. Jedes Gerät 204a–j kann nur mit einem Mitglied einer virtuellen LAN 214a–e kommunizieren, wenn das Gerät ebenso Mitglied des VLANS 214a–e ist.
  • Das VLAN 214a beinhaltet die Geräte 204b, 204c und 204h. Das virtuelle LAN 214b beinhaltet die Geräte 204a, 204e und 204h. Das VLAN 214c beinhaltet die Geräte 204f, 204g und 204h. Das VLAN 214d beinhaltet die Geräte 204d, 204e und 204h. Das VLAN 214e beinhaltet die Geräte 204i und 204j. Das Gerät 204h und das Gerät 204e sind Mitglieder von mehr als einer VLAN 214a–d. Das Gerät 204h ist ein Mitglied der VLANs 214a–d und das Gerät 204e ist ein Mitglied der VLANs 214b und 214d.
  • Ein Gerät 204a–j kann ein Mitglied von mehr als einer VLAN sein, um einen bestimmten Dienst oder eine Sicherheit innerhalb Jeder VLAN zu schaffen. Beispielsweise kann das Gerät 204h ein Servercomputer und können die Geräte 204a–g Benutzercomputer sein. Damit so das Gerät 204h mit den Geräten 204a–g kommunizieren kann, muss das Gerät 204h ein Mitglied von wenigstens einer VLAN 214a–d sein, in der jedes der Geräte 204a–g ebenso Mitglied ist.
  • Ein Satz von VLANs 214a–e kann ebenso einem Filteridentifizierer (”FID”) zugeordnet sein, um gemeinschaftliches Lernen in dem Satz von VLANs zu ermöglichen. In einem Switch 200, der gemeinschaftliches Lernen unterstützt, ist jedes VLAN 214a–e exakt einer FID 230a–b zugeordnet. Wie dargestellt ist, sind die VLANs 214a–d Mitglieder der FID 230a und ist das VLAN 214e ein Mitglied der FID 230b. Um gemeinschaftliches Lernen zwischen den VLANs 214a–d zu schaffen, ordnet der Switch eine FID 230a dem Satz von VLANs 214a–d zu. Das gemeinschaftliche Lernen ermöglicht es, Informationen, die für eine MAC-Adresse auf einer VLAN gelernt worden sind, gemeinschaftlich unter allen VLANs zu benutzen, die einer FID 230a–b zugeordnet sind. Wie in 2 dargestellt ist, ist beispielsweise das Gerät 204h mit dem physikalischen LAN-Segment 212b verbunden und ist ein Mitglied der VLANs 214a–d und der FID 230a. Daher wird ein Datenpaket, das eine VID für eine beliebige der VLANs 214a–d und eine Zieladresse umfasst, die auf die MAC-Zieladresse (”DA”) für das Gerät 204h gesetzt ist, durch den Ausgangsanschluss 208a weitergeleitet. Wenn das Gerät 204h zu dem physikalischen LAN-Segment 212a bewegt wird und die neue Anschlussinformation über ein Datenpaket gelernt wird, das von dem Gerät 204h mit der VID empfangen worden ist, die zu dem Identifizierer für das VLAN 214h gesetzt worden ist, wird diese Information gemeinschaftlich mit den anderen VLANs 214b–d in der FID 230a benutzt, da der Satz der VLANs einen dynamischen Weiterleitungseintrag gemeinschaftlich benutzen, der der MAC-Adresse für das Gerät 204h zugeordnet ist.
  • Das VLAN 214e, das der FID 230b zugeordnet ist, unterstützt unabhängiges Lernen. Das VLAN 214a–e, zu dem ein Datenpaket 100 mittels des Switches 200 weitergeleitet werden soll, wird von der VID angezeigt, die in dem VID-Feld 118 in dem Header 104 der Datenverbindungsschicht (L2) in dem empfangenen Datenpaket 100 gespeichert ist. Es wird angenommen, dass ein Quellengerät 204e ein Datenpaket zu einem Zielgerät 204a auf dem VLAN 214b überträgt. Vor der Übertragung des Datenpakets speichert das Gerät 204e die VID für das VLAN 214b in dem VID-Feld 118 und die MAC-Adresse für das Gerät 204a in dem Zieladressfeld 114 des Headers 104 der Datenverbindungsschicht (L2). Das Datenpaket 100 wird an dem Eingangsanschluss 206a mittels des Eingangsanschlussprozessors 216 empfangen. Die Weiterleitungslogik 210 in dem Eingangsanschlussprozessor 216 wählt einen Weiterleitungsvektor 202 aus, um das Datenpaket über den Ausgangsanschluss 208e weiterzuleiten. Der Weiterleitungsvektor 202 ist einem statischen Eintrag 500 oder einem dynamischen Eintrag 502 in der Filterdatenbank 302 in der Weiterleitungslogik 210 zugeordnet. Der ausgewählte Weiterleitungsvektor 202 hängt von der VID und der MAC-Zieladresse ab, die in dem Datenpaket beinhaltet sind.
  • Nach der Auswahl eines Weiterleitungsvektors 202 für das empfangene Datenpaket 100 speichert der Switch 200 das auf Daten ein 228 weitergeleitete Datenpaket 100 im Segmentpufferspeicher 224. Der Ort, an dem das Datenpaket gespeichert wird, wird von der Paketspeichersteuerung 220 über die Segmentpufferadresse 226 ausgewählt. Die Paketsteuerspeicherung 220 ist in der ebenso anhängigen US-Patentanmeldung mit der Seriennummer 09/386,589 von David A. Brown beschrieben, die am 31. August 1999 eingereicht worden ist und den Titel ”Method and Apparatus for an Interleaved Non-Blocking Packet Buffer” trägt und hier in seiner Gesamtheit durch Bezugnahme eingefügt wird. Der Ausgangsanschlussprozessor 218 liest das im Segmentpufferspeicher auf Daten-aus 232 gespeicherte Datenpaket 100 und leitet das gespeicherte Datenpaket zu einem oder mehreren Ausgangsanschlüssen 208a–b weiter, die von dem Weiterleitungsvektor ausgewählt sind.
  • 3 ist ein Blockdiagramm der in 2 dargestellten Weiterleitungslogik 210. Die Weiterleitungslogik 210 beinhaltet einen VID-zu-VID'-Übersetzer 300, eine Filterdatenbank 302 und eine Weiterleitungsvektortabelle 304.
  • Die Filterdatenbank 302 beinhaltet einen statischen Eintrag 500 und einen dynamischen Eintrag 502. Ein statischer Eintrag 500 beinhaltet eine MAC-Adresse und eine VID. Ein statischer Eintrag 500 wird explizit durch Steuerungsaktion konfiguriert. Ein dynamischer Eintrag 502 beinhaltet eine MAC-Adresse und eine FID. Ein dynamischer Eintrag 502 wird von dem Switch 200 gelernt. Ein statischer Eintrag 500 wird in Abhängigkeit der VID ausgewählt, die dem Datenpaket zugeordnet ist. Die VID kann in dem empfangenden Datenpaket 100 enthalten oder von dem Switch 200 zugeordnet sein. Ein dynamischer Eintrag 502 wird in Abhängigkeit der FID ausgewählt, die von dem Switch 200 der VID zugeordnet wird, die dem Datenpaket 100 zugeordnet ist.
  • Die Filterdatenbank 302 ist vorzugsweise ein ternärer Assoziativspeicher (”CAM”), der einen Zustand ”unerheblich” unterstützt. In einem CAM wird ein Suchschlüssel an den Speicher mittels eines speziellen Vergleichregisters geliefert. Das CAM liefert eine Adresse zurück, die dem Suchschlüssel zugeordnet ist, wenn in dem Speicher gespeicherte Daten mit dem Suchschlüssel übereinstimmen. Die zurückgelieferte Adresse ist ein Zeiger auf einen Weiterleitungsvektor, der in der Weiterleitungsvektortabelle 304 gespeichert ist, die den Inhalten des dynamischen Eintrags 502 oder des statischen Eintrags 500 zugeordnet ist. Die gesamte CAM wird entweder nach einem statischen Eintrag 500 oder einem dynamischen Eintrag 502, die mit dem Suchschlüssel übereinstimmen, in einem einzigen Taktzyklus durchsucht.
  • Ein ternärer CAM ist in der Lage, eine logische 0, 1 oder ein ”unerheblich” (”x”) in einer einzigen Zelle zu speichern und zu suchen. Wenn eines der im statischen Eintrag 500 oder in einem dynamischen Eintrag 502 gespeichertes Bit zu ”x” gesetzt ist, tritt eine Übereinstimmung für einen Suchschlüssel auf, der eine ”1” oder ”0” in dem Bit speichert. Wenn beispielsweise ein Eintrag ”100x” speichert, führt ein Suchschlüssel, der zu ”1001” oder zu ”1000” gesetzt ist, zu einer Übereinstimmung. Die Filterdatenbank 302 ist später zusammen mit 5 beschrieben. Der statische Eintrag 500 und der dynamische Eintrag 502 speichert eine übersetzte VID (eine VID'), die einer MAC-Adresse zugeordnet ist, entsprechend den Prinzipien der vorliegenden Erfindung. Die übersetzte VID wird von dem VID-zu-VID'-Übersetzer bereitgestellt. Durch Speichern einer übersetzten VID in einem dynamischen Eintrag 502 und einem statischen Eintrag 500 anstelle eines Speicherns einer VID in einem statischen Eintrag 500 und einer FID in einem dynamischen Eintrag 502, kann die Filterdatenbank 302 in einem einzigen Suchvorgang unter Verwendung eines einzigen Suchschlüssels entweder nach einem statischen Eintrag 500 oder einem dynamischen Eintrag 502 durchsucht werden; d. h. einer MAC-Adresse und einer übersetzten VID.
  • Ein an dem Eingangsanschluss 206a oder 206b (2) empfangenes Datenpaket 100 kann eine VID enthalten, die in dem VID-Feld 118 (1C) gespeichert ist. Wenn in dem empfangenen Datenpaket 100 eine VID gespeichert ist, wird die VID mittels des Eingangsanschlussprozessors 216 in dem Switch 200 von dem Datenpaket 100 extrahiert und auf VID 306 zu dem VID-zu-VID'-Übersetzer 300 weitergeleitet. Wenn es keine in dem Datenpaket 100 beinhaltete VID gibt, wird eine Vorgabe-VID von dem Switch erzeugt und auf VID 306 weitergeleitet. In einem anschlussbasierten VLAN kann die Vorgabe-VID in Abhängigkeit des Eingangsanschlusses 206a–b ausgewählt werden, auf dem das Datenpaket 100 empfangen worden ist.
  • Um die Filterdatenbank 302 für einen übereinstimmenden statischen Eintrag 500 oder dynamischen Eintrag 502, die einer VID und einer MAC-Adresse zugeordnet sind, in einem einzigen Suchvorgang zu durchsuchen, wird die VID 306 zu einer VID' 310 mittels des VID-zu-VID'-Übersetzers 300 übersetzt. Der VID-zu-VID'-Übersetzer 300 wird später zusammen mit 4 beschrieben. Die VID' 310 und die Media Access Control (”MAC”) Zieladresse (”DA”), die von dem Eingangsanschlussprozessor 216 von der L2-Zieladresse 114 (1C) extrahiert worden ist, die in dem empfangenen Datenpaket 100 enthalten war, wird zu der Filterdatenbank 302 weitergeleitet.
  • Wenn ein statischer Eintrag 500 oder ein dynamischer Eintrag 502, der die VID' 310 und die MAC DA 308 beinhaltet, in der Filterdatenbank gefunden wird, wird die Adresse des Weiterleitungsvektors 312 zu der Weiterleitungsvektortabelle 304 weitergeleitet. Die Adresse des Weiterleitungsvektors 312 wird verwendet, um den Weiterleitungsvektor 202 auszuwählen, der in der Weiterleitungsvektortabelle 304 gespeichert ist und der VID, die in dem VID-Feld 118 (1C) gespeichert ist und der MAC DA 114 (1C) zugeordnet ist, die in dem empfangenen Datenpaket 100 gespeichert sind.
  • 4 ist ein Blockdiagramm des VID-zu-VID'-Übersetzers 300, der in 3 dargestellt ist. Der VID-zu-VID'-Übersetzer 300 beinhaltet Übersetzungseinträge 400a–e für jedes der VLANs 214a–d, die in 2 dargestellt sind. Die VLANs 214a–d sind Mitglieder der gleichen FID 230a. Vier Übersetzungseinträge 400a–d übersetzen VIDs für die VLANs 214a–d (2) zu der gleichen FID 230a. Der Übersetzungseintrag 400e übersetzt die VID, die der VLAN 214e zugeordnet ist, zu einer anderen FID 230b.
  • Jedes VLAN 214a–e hat eine einzigartige VID, die der VLAN 214a–e durch Steuerungsaktion zugeordnet werden kann. Die jeder VLAN 214a–e zugeordnete VID ist in dem VID-Feld 402a–e des entsprechenden Übersetzungseintrags 400a–e gespeichert. Jeder Übersetzungseintrag 400a–e beinhaltet ebenso ein entsprechendes VID'-Feld 404a–e. Das VID'-Feld 404a–e beinhaltet ein Gruppenidentifizierfeld 406a–e und ein Gruppenteilnehmernummerfeld 408a–e. Die FID 230a, die der VLAN oder der Gruppe von VLANs zugeordnet ist, ist in dem Gruppenfeld 406a–d von jedem VID'-Feld 404a–d gespeichert. Eine Gruppenteilnehmernummer ist in dem entsprechenden Gruppenteilnehmernummerfeld 408a–e gespeichert. Die Gruppenteilnehmernummer ist einzigartig für jedes Mitglied einer FID 230a–b.
  • Die Übersetzungseinträge 400a–e werden während der Initialisierung des Switches 200 in Abhängigkeit der Switch-Konfiguration initialisiert. Beispielsweise können die Übersetzungseinträge 400a–e von einem Switch-Steuerdienstprogramm derart initialisiert werden, dass sie die VLANs 214a–d auf die gleiche FID 230a abbilden, um gemeinschaftliches Lernen zu unterstützen. Die Übersetzungseinträge 400a–e können während des Betriebs des Switches durch Steuerungsaktion modifiziert werden.
  • In einem Switch mit gemeinschaftlichem Lernen ist jedes VLAN in dem Switch 200 nur auf eine FID 230a–b abgebildet. Eine FID 230a–b kann ein oder mehrere VLANs 214a–e umfassen. Die 4 zeigt Übersetzungseinträge 400a–e für die in 2 dargestellten VLANs 214a–e. Wie dargestellt ist, sind die VLANs 214a–d Mitglieder der gleichen FID 230a. Das VLAN 214e ist das einzige Mitglied einer anderen FID 230b. Die der VLAN 214e zugeordnete FID 230b lautet ”0010 1111 11”. Die den VLANs 214a–d zugeordnete FID 230a lautet ”1111 0011 11”. Die zugeordnete FID 230a, 230b ist in dem Gruppenidentifizierfeld 406a–e von jedem VID'-Feld 404a–e in dem entsprechenden Übersetzungseintrag 400a–e für das VLAN 214a–e gespeichert.
  • Die jedem VLAN 214a–e zugeordnete einzigartige VID ist in dem VID-Feld 402a–e in dem entsprechenden Übersetzungseintrag gespeichert. Das VID-Feld 402a in dem Übersetzungseintrag 400a für das VLAN 214a speichert ”1011 1111 0011”. Das VID-Feld 402b in dem Übersetzungseintrag 400b für das VLAN 214b speichert ”1010 0010 0011”. Das VID-Feld 402c in dem Übersetzungseintrag 400c für das VLAN 214c speichert ”0000 1001 1101”. Das VID-Feld 402d in dem Übersetzungseintrag 400d für das VLAN 214d speichert ”0101 1011 1111”. Das VID-Feld 402e in dem Übersetzungseintrag 400e für das VLAN 214e speichert ”0101 1000 1010”.
  • Jedem VLAN 214a–e in einer Gruppe von VLANs ist eine einzige Gruppenmitgliedernummer zugeordnet. Die dem VLAN 214a zugeordnete Gruppenmitgliedernummer lautet ”00” und ist in einem Gruppenmitgliedernummerfeld 408a gespeichert. Die dem VLAN 214b zugeordnete Gruppenmitgliedernummer lautet ”01” und ist in dem Gruppenmitgliedernummerfeld 408b gespeichert. Die dem VLAN 214c zugeordnete Gruppenmitgliedernummer lautet ”10” und ist in dem Gruppenmitgliedernummerfeld 408c zugeordnet. Die dem VLAN 214d zugeordnete Gruppenmitgliedernummer lautet ”11” und ist in dem Gruppenmitgliedernummerfeld 408d gespeichert. Die dem VLAN 214e zugeordnete Gruppenmitgliedernummer lautet ”00” und ist in dem Gruppenmitgliedernummerfeld 408e gespeichert.
  • So beinhaltet jedes VID'-Feld 404a–e ein Gruppenidentifizierfeld 406a–e und ein Gruppenmitgliedernummerfeld 408a–e für jedes VLAN 214a–e in einer FID 230a, 230b. In dem oben dargestellten Beispiel gibt es zwei Bits, die der Gruppenmitgliedernummer zugeordnet sind, welches ein Maximum von vier VIDs per FID 230a–b erlaubt. Die Anzahl der VLANs in einer Gruppe jedoch, die von einer FID identifiziert wird, ist wie in dem obigen Beispiel nicht auf vier begrenzt. Die Anzahl der Bits in dem Gruppenteilnehmernummerfeld 408a–d ist log2 (maximale Anzahl von VLANs per FID). Um beispielsweise ein Maximum von acht VLANs per FID zu unterstützen, erfordert die Gruppenteilnehmernummer 3 Bits (log2 (8)).
  • 5 ist ein Blockdiagramm der Filterdatenbank 302 in der in 3 dargestellten Weiterleitungslogik 210. Die Filterdatenbank 302 beinhaltet einen statischen Eintrag 500 und einen dynamischen Eintrag 502. Ein statischer Eintrag 500 wird verwaltet und verbleibt konstant, während der Switch 200 in Betrieb ist. Beispielsweise kann das Gerät 204i (2) als statischer Eintrag für das VLAN 214e (2) konfiguriert werden. Ein dynamischer Eintrag 502 wird gelernt und kann mit einem neuen Wert überschrieben werden, während der Switch 200 in Betrieb ist. Beispielsweise kann ein dynamischer Eintrag 502 für das Gerät 204a überschrieben werden, wenn das Gerät 204a physikalisch zu einem anderen Anschluss in dem Switch 200 bewegt wird, welches eine Aktualisierung des Weiterleitungsvektors 202 für das Gerät 204a erfordert.
  • Sowohl der statische Eintrag 500 als auch der dynamische Eintrag 502 enthalten ein entsprechendes Filterdatenbank-MAC DA-Feld 504a–b und ein entsprechendes Filterdatenbank-VID'-Feld 506a–b. Jedes Filterdatenbank-VID'-Feld 506a–b beinhaltet ein Filterdatenbankgruppenfeld 508a–b und ein Filterdatenbankgruppenteilnehmernummerfeld 510a–b.
  • Das Datenbankgruppenteilnehmernummerfeld 510a eines statischen Eintrags 500 speichert die gleiche Gruppenteilnehmernummer, wie sie in dem Gruppenteilnehmernummerfeld 408a–e in dem VID'-Feld 404a–e in dem VID-zu-VID'-Übersetzer 300 (4) gespeichert ist. Die Inhalte des VID'-Felds 404a–e werden als eine VID' 310 zu der Filterdatenbank 302 weitergeleitet. Um daher einen übereinstimmenden statischen Eintrag 500 in der Filterdatenbank 302 für eine VID' 310 zu finden, müssen sowohl der Gruppenidentifizierer 406a–e und die Gruppenteilnehmernummer 408a–e in der VID' 310, d. h., der Suchschlüssel, eine exakte Übereinstimmung sein.
  • Ein dynamischer Filterdatenbankeintrag 502 wird per MAC DA gespeichert, die einer FID 230a–b zugeordnet ist. Der dynamische Filterdatenbankeintrag 502 wird gemeinschaftlich in dem Satz von VLANs in der FID 230a–b verwendet. Daher sind die Bits in dem Filterdatenbankgruppenteilnehmernummerfeld 510b in einem dynamischen Eintrag 502 zu ”xx” gesetzt, d. h. zu ”unerheblich”, da das Gruppenidentifizierfeld 508a das gleiche für alle Teilnehmer der FID 230a–b ist und es nur einen dynamischen Filterdatenbankeintrag 502 gibt, der von jeder VLAN 214a–e in der FID 230a–b gemeinschaftlich genutzt wird.
  • Um einen übereinstimmenden dynamischen Eintrag für eine VID' 310 und eine MAC DA 308 zu finden, muss nur der Gruppenidentifizierer 406a–e, der zu der Filterdatenbank 302 weitergeleitet worden ist, in der VID' 310 mit dem Filterdatenbankgruppenidentifizierer 508b übereinstimmen, der in dem dynamischen Filterdatenbankeintrag 502 gespeichert ist, der der MAC DA 308 zugeordnet ist. So können dynamische Filterdatenbankeinträge 502 und statische Filterdatenbankeinträge 500, die einer MAC DA zugeordnet sind, mit der gleichen VID' 310 gesucht werden. Eine Übereinstimmung eines statischen Filterdatenbankeintrags wird gefunden, wenn sowohl das Gruppenfeld 406a–e und das Gruppenteilnehmernummerfeld 408a–e in der VID' 310 mit den entsprechenden Feldern in dem statischen Eintrag 500 übereinstimmen; d. h., dass es einen der VID 402a–e zugeordneten statischen Eintrag für das Datenpaket 100 gibt. Eine Übereinstimmung des dynamischen Filterdatenbankeintrags wird gefunden, wenn nur das Gruppenidentifizierfeld 406a–e in der VID' 310 mit dem entsprechenden Gruppenidentifizierfeld 506b in dem dynamischen Eintrag 502 übereinstimmt, da die Gruppenteilnehmernummer 510b zu ”xx” gesetzt ist und daher mit allen Mitgliedern der FID 230a übereinstimmt.
  • Beispielsweise kann eine Übereinstimmung für die VID = ”1011 1111 0011”, die in dem VID-zu-VID'-Übersetzer zu ”1111 0011 1100” übersetzt wird, in einem statischen Eintrag 500 oder einem dynamischen Eintrag 502 gespeichert werden. Die der VID zugeordnete FID lautet ”1111 0011 11”. Ein übereinstimmender statischer Eintrag 500 wird für die VID gefunden, wenn der Filterdatenbankgruppenidentifizierer 508a zu ”1111 0011 11” gesetzt ist und die Filterdatenbankgruppenteilnehmernummer zu ”00” in dem statischen Eintrag 500 gesetzt ist. Ein übereinstimmender dynamischer Eintrag 502 wird für die FID gefunden, wenn der Filterdatenbankgruppenidentifizierer zu ”1111 0011 11” gesetzt ist und die Gruppenteilnehmernummer zu ”xx” gesetzt ist; d. h. Einträge ”unerheblich” in dem dynamischen Eintrag 502. So kann in einer einzigen Suche für ”111 0011 1100” ein übereinstimmender dynamischer Eintrag 502 oder statischer Eintrag 500 gefunden werden.
  • Nachdem ein übereinstimmender statischer Eintrag 500 oder dynamischer Eintrag 502 gefunden ist, wird die Adresse des Weiterleitungsvektors, die dem übereinstimmenden Datenbankeintrag zugeordnet ist, auf der Adresse des Weiterleitungsvektors 312 zu der Weiterleitungsvektortabelle 304 weitergeleitet. Die Weiterleitungsvektortabelle 304 speichert Weiterleitungsvektoreinträge und leitet einen Weiterleitungsvektor 202, der an der Adresse des Weiterleitungsvektors 312 gespeichert ist, zu der Paketspeichersteuerung 220 weiter, wie es in 2 dargestellt ist. Ein Weiterleitungsvektor 202 ist üblicherweise ein Satz von Bits mit einem Bit pro Anschluss in dem Switch 200. Der Zustand des entsprechenden Anschlussbits in dem Weiterleitungsvektor 202 bestimmt, ob das empfangene Datenpaket 100 zu dem Ausgangsanschluss 208a–b weitergeleitet werden soll. Für die in 2 dargestellte Switch-Konfiguration beinhaltet der Weiterleitungsvektor 202 zwei Bits, ein Bit für den Ausgangsanschluss 208a und ein Bit für den Eingangsanschluss 208b. Das entsprechende Anschlussbit ist zu ”aktiviere Weiterleitung” gesetzt, um zu ermöglichen, dass das empfangene Datenpaket 100 durch den entsprechenden Anschluss weitergeleitet wird.
  • 6 ist ein Flussdiagramm, das ein Verfahren zum Auswählen eines Weiterleitungsvektors 202 für ein empfangenes Datenpaket 100 zeigt. Das Verfahren ist im Zusammenhang mit den 1 bis 5 beschrieben.
  • Bei Schritt 600 untersucht der Eingangsanschlussprozessor 216 das empfangene Datenpaket 100, um zu bestimmen, ob das Datenpaket 100 eine in dem VID-Feld 118 (1C) gespeicherte VID beinhaltet. Wenn es eine in dem VID-Feld 118 (1C) gespeicherte VID gibt, fährt die Bearbeitung mit Schritt 602 fort. Wenn nicht, fährt die Bearbeitung mit Schritt 604 fort.
  • In Schritt 602 extrahiert der Eingangsanschlussprozessor 216 die in dem VID-Feld 118 (1C) des empfangenen Datenpakets 100 gespeicherte VID. Die Verarbeitung fährt mit Schritt 606 fort.
  • Bei Schritt 604 erzeugt der Eingangsanschlussprozessor 216 eine Vorgabe-VID für das empfangene Datenpaket 100. Die Vorgabe-VID kann in Abhängigkeit des Eingangsanschlusses 206a–b (2) erzeugt werden, an dem das Datenpaket 100 empfangen worden ist. Die Bearbeitung fährt mit Schritt 605 fort.
  • In Schritt 606 sucht der VID-zu-VID'-Übersetzer 300 für einen Übersetzungseintrag für die VID 306. Wenn die VID 306 bekannt ist, fährt die Verarbeitung mit Schritt 608 fort. Wenn nicht, fährt die Verarbeitung mit Schritt 614 fort.
  • In Schritt 608 wird die VID' 310, die der in einem Übersetzungseintrag 400a–e (4) gespeicherten VID 306 entspricht, zu der Filterdatenbank 302 weitergeleitet. Die Verarbeitung schreitet mit Schritt 610 fort.
  • In Schritt 610 wird die Filterdatenbank 302 einmal mit einem Suchschlüssel durchsucht. Der Suchschlüssel ist die MAC DA 308 und die VID' 310. Sowohl statische Einträge 500 als auch dynamische Einträge 502 werden in der einzigen Suche durchsucht. Eine Übereinstimmung eines statischen Eintrags erfordert eine exakte Übereinstimmung der Inhalte des Filterdatenbankgruppenfelds 508a und des Filterdatenbankgruppenteilnehmernummerfelds 510a der VID' 310 mit dem Suchschlüssel. Eine Übereinstimmung eines dynamischen Filterdatenbankeintrags 502 erfordert nur eine exakte Übereinstimmung des Filterdatenbankgruppenfelds 508b der VID' 310 mit dem Suchschlüssel. Es ist möglich, für einen Suchschlüssel sowohl einen statischen Eintrag 500 als auch einen dynamischen Eintrag 502 zu haben, da ein statischer Eintrag 500 durch Steueraktion eingegeben wird und ein dynamischer Eintrag 502 von dem Switch gelernt wird. Die Priorität der Einträge kann spezifiziert werden, wenn die Filterdatenbank 302 erzeugt wird. Wenn der statische Eintrag eine höhere Priorität als der dynamische Eintrag 502 hat und sowohl ein statischer Eintrag 500 und ein dynamischer Filterdatenbankeintrag 502 gefunden werden, wird der statische Eintrag 500 ausgewählt. Nachdem eine Übereinstimmung gefunden worden ist, schreitet die Verarbeitung mit Schritt 612 fort.
  • In Schritt 612 wird die Adresse des übereinstimmenden Filterdatenbankeintrags, die in einem statischen Eintrag 500 oder in einem dynamischen Eintrag 502 gespeichert ist, auf der Adresse des Weiterleitungsvektors 312 zu der Weiterleitungsvektortabelle 304 weitergeleitet (5). Der Weiterleitungsvektor 202 wird an der Adresse des Weiterleitungsvektors 312 in der Weiterleitungsvektortabelle 304 gespeichert (5). Der Weiterleitungsvektor 202 ist der Weiterleitungsvektor, der der VID und der MAC DA entspricht, die dem empfangenen Datenpaket 100 zugeordnet sind. Das empfangene Datenpaket 100 wird zu den Anschlüssen weitergeleitet, die von dem Weiterleitungsvektor 200 in dem Switch 200 ausgewählt sind. Die Verarbeitung ist vollständig.
  • In Schritt 614 ist die in dem empfangenen Datenpaket 100 gespeicherte VID 306 unbekannt und wird das Datenpaket von dem Switch 200 ausgelassen. Die Verarbeitung schreitet mit Schritt 616 fort.
  • In Schritt 616 sendet der Switch 100 nach dem Auslassen des Datenpakets, wenn der Lernmodus aktiviert ist, ein Datenpaket zu jeder MAC DA in dem VLAN, um den Weiterleitungsvektor für die MAC DA zu lernen. Nach dem Lernen des Weiterleitungsvektors erzeugt der Switch 100 einen dynamischen Eintrag 502 in der Filterdatenbank 302. Die Verarbeitung ist abgeschlossen.
  • Jedes Mitglied einer FID wird so übersetzt, dass jedes Mitglied den gleichen Gruppenidentifizierer und eine einzigartige Gruppenteilnehmernummer besitzt. Die Gruppenteilnehmernummer wird als ”xx” in einem dynamischen Eintrag in einer Filterdatenbank gespeichert. Ein einziger Suchvorgang kann verwendet werden, um eine Übereinstimmung für einen Suchschlüssel zu finden, die entweder in einem statischen Eintrag oder in einem dynamischen Eintrag gespeichert ist. Eine einzige Suche führt zu einer Übereinstimmung für einen beliebigen der Teilnehmer einer Gruppe, die von einem Gruppenidentifizierer identifiziert wird, indem x-Zeichen für die Gruppenteilnehmernummer in dem dynamischen Eintrag gespeichert werden. Auf diese Weise wird die Anzahl der Suchen, die erforderlich sind, um entweder einen statischen Eintrag oder einen dynamischen Eintrag in einer Filterdatenbank zu finden, um für ein empfangenes Datenpaket eine Weiterleitungsentscheidung zu treffen, verringert.
  • Während diese Erfindung insbesondere in Bezugnahme auf bevorzugte Ausführungsbeispiele von ihr dargestellt und beschrieben worden ist, wird von Fachleuten verstanden werden, dass zahlreiche Veränderungen in der Gestalt und in Details darin vorgenommen werden können, ohne den Bereich der Erfindung zu verlassen, der von den beigefügten Ansprüchen umfasst wird.

Claims (19)

  1. Switch (200) zum Empfangen und Weiterleiten von Datenpaketen, umfassend: mindestens einen Eingangsanschluss (206b) zum Empfangen von Datenpaketen, wobei zumindest eines der Datenpakete mit einem Identifizierer (306) eines virtuellen LAN verknüpft ist, mindestens einen Ausgangsanschluss (208a) zum Weiterleiten der Datenpakete, und eine Weiterleitungslogik (210), welche einen übersetzten Identifizierer (310) für den Identifizierer (306) des virtuellen LANs bereitstellt, wobei die Weiterleitungslogik (210) umfasst: eine Filterdatenbank (302), welche einen Weiterleitungsvektor (202) für den übersetzten Identifizierer (310) durch eine einzige Suche der Filterdatenbank (302) bereitstellt.
  2. Switch nach Anspruch 1, wobei die Weiterleitungslogik (210) dem Identifizierer (306) des virtuellen LANs einen Vorgabeidentifizierer zuordnet.
  3. Switch nach Anspruch 1, wobei der übersetzte Identifizierer (310) einen Gruppenidentifizierer und einen Gruppenteilnehmeridentifizierer für das virtuelle LAN umfasst.
  4. Switch nach Anspruch 3, wobei die Filterdatenbank (302) einen ersten Eintrag und einen zweiten Eintrag umfasst.
  5. Switch nach Anspruch 4, wobei die Filterdatenbank (302) den mit dem ersten Eintrag verknüpften Weiterleitungsvektor (202) bereitstellt, wenn der übersetzte Identifizierer (310) mit dem ersten Eintrag zusammenpasst, und den mit dem zweiten Eintrag verknüpften Weiterleitungsvektor (202) bereitstellt, wenn nur der Gruppenidentifiziererteil des übersetzten Identifizierers (310) zu dem zweiten Eintrag passt.
  6. Switch nach Anspruch 1, wobei die Filterdatenbank (302) ein Assoziativspeicher ist.
  7. Switch nach Anspruch 1, wobei die Filterdatenbank (302) ein ternärer Assoziativspeicher ist.
  8. Switch nach Anspruch 1, wobei der Identifizierer (306) des virtuellen LANs in einem Header gespeichert ist, der in dem empfangenen Datenpaket beinhaltet ist.
  9. Switch nach Anspruch 1, wobei die Weiterleitungslogik (210) weiterhin eine Weiterleitungsvektortabelle (304) umfasst, welche den mit dem empfangenen Datenpaket verknüpften Weiterleitungsvektor (202) speichert, wobei die Filterdatenbank (302) einen Zeiger auf den Ort des Weiterleitungsvektors (202) in der Weiterleitungsvektortabelle (304) bereitstellt.
  10. Switch nach Anspruch 1, wobei die Filterdatenbank (302) den Weiterleitungsvektor (202) für den übersetzten Identifizierer und die MAC-Zieladresse bereitstellt.
  11. Switch (200) nach Anspruch 1 wobei der übersetzte Identifizierer (310) einen Gruppenidentifizierer, der einer virtuellen LAN-Gruppe entspricht, und eine Gruppenteilnehmernummer umfasst, die einem identifizierten virtuellen LAN entspricht; und wobei die Filterdatenbank (302) einen statischen Eintrag (500) und einen dynamischen Eintrag (502) speichert und den Weiterleitungsvektor (202) für das empfangene Datenpaket bereitstellt aus der einzigen Suche der Filterdatenbank, wobei die Suche eine Suche nach einer Übereinstimmung für den Weiterleitungsvektor, der dem übersetzten Identifizierer (310) zugeordnet ist, der in dem dynamischen Eintrag (502) oder dem statischen Eintrag (500) gespeichert ist, umfasst, wobei der dynamische Eintrag (502) den Weiterleitungsvektor (202) speichert, der dem in dem übersetzten Identifizierer (310) beinhalteten Gruppenidentifizierer zugeordnet ist und die Gruppenteilnehmernummern zu einem ”unerheblich”-Eintrag gesetzt ist und wobei der statische Eintrag den Weiterleitungsvektor (202) speichert, der dem übersetzten Identifizierer (310) zugeordnet ist.
  12. Switch nach Anspruch 11, wobei die Gruppenteilnehmernummer einen von einer Mehrzahl von Teilnehmern identifiziert, die dem Gruppenidentifizierer zugeordnet sind.
  13. Switch nach Anspruch 11, wobei der Identifizierer ein Vorgabeidentifizierer ist, der von dem Switch dem empfangenen Datenpaket zugeordnet wird.
  14. Verfahren zum Auswählen eines Weiterleitungsvektors (202) für ein empfangenes Datenpaket mit den Schritten: Übersetzen eines Identifizierers (306), der dem empfangenen Datenpaket zugeordnet ist, wobei der übersetzte Identifizierer (310) einen Gruppenidentifizierer, der einem virtuellen LAN entspricht, und eine Gruppenteilnehmernummer umfasst, die einem identifizierten virtuellen LAN entspricht; Speichern eines statischen Eintrags (500) und eines dynamischen Eintrags (502) in einer Filterdatenbank (302), wobei der Weiterleitungsvektor (302), der dem übersetzten Identifizierer (310) zugeordnet ist, in dem statischen Eintrag (500) gespeichert ist, der dem übersetzten Identifizierer (310) zugeordnet ist, oder dem dynamischen Eintrag (502) zugeordnet ist, der dem Gruppenidentifizierer und der Gruppenteilnehmernummer, die zu ”unerheblich” gesetzt ist, zugeordnet ist; Bereitstellen des Weiterleitungsvektors (202) für das empfangene Datenpaket, der in dem statischen Eintrag (500) oder dem dynamischen Eintrag (502) in der Filterdatenbank (302) gespeichert ist, durch einen einzigen Suchvorgang für den übersetzten Identifizierer (310) in der Filterdatenbank (302).
  15. Verfahren nach Anspruch 14, wobei die Gruppenteilnehmernummer einen von einer Mehrzahl von Teilnehmern identifiziert, die dem Gruppenidentifizierer zugeordnet sind.
  16. Verfahren nach Anspruch 14, wobei die Filterdatenbank (302) ein Assoziativspeicher ist.
  17. Verfahren nach Anspruch 16, wobei der Assoziativspeicher ein ternärer Assoziativspeicher ist.
  18. Verfahren nach Anspruch 14, wobei der Identifizierer (306) in einem Header gespeichert ist, der in dem empfangenen Datenpaket beinhaltet ist.
  19. Verfahren nach Anspruch 14, wobei der Identifizierer (306) ein Vorgabeidentifizierer ist, der von einem Switch (200) dem empfangenen Datenpaket zugeordnet wird.
DE10196582T 2000-08-31 2001-08-30 Verfahren und Vorrichtung zum Durchsuchen einer Filterdatenbank mit einem Suchvorgang Expired - Fee Related DE10196582B3 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/652,196 2000-08-31
US09/652,196 US6633567B1 (en) 2000-08-31 2000-08-31 Method and apparatus for searching a filtering database with one search operation
PCT/CA2001/001226 WO2002019638A2 (en) 2000-08-31 2001-08-30 Method and apparatus for searching a filtering database with one search operation

Publications (2)

Publication Number Publication Date
DE10196582T1 DE10196582T1 (de) 2003-07-10
DE10196582B3 true DE10196582B3 (de) 2013-04-04

Family

ID=24615882

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10196582T Expired - Fee Related DE10196582B3 (de) 2000-08-31 2001-08-30 Verfahren und Vorrichtung zum Durchsuchen einer Filterdatenbank mit einem Suchvorgang

Country Status (8)

Country Link
US (2) US6633567B1 (de)
KR (1) KR100863105B1 (de)
CN (1) CN1229948C (de)
AU (1) AU2001287434A1 (de)
CA (1) CA2420878C (de)
DE (1) DE10196582B3 (de)
GB (1) GB2382495B (de)
WO (1) WO2002019638A2 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6667967B1 (en) 1999-05-14 2003-12-23 Omninet Capital, Llc High-speed network of independently linked nodes
US6931003B2 (en) * 2000-02-09 2005-08-16 Bookline Flolmstead Llc Packet prioritization protocol for a large-scale, high speed computer network
US6633567B1 (en) * 2000-08-31 2003-10-14 Mosaid Technologies, Inc. Method and apparatus for searching a filtering database with one search operation
US6947419B2 (en) * 2001-06-12 2005-09-20 Acute Technology Corp. Apparatus for multicast forwarding in a virtual local area network environment
US6834056B2 (en) * 2001-06-26 2004-12-21 Occam Networks Virtual local area network protection switching
US6732228B1 (en) * 2001-07-19 2004-05-04 Network Elements, Inc. Multi-protocol data classification using on-chip CAM
US7609689B1 (en) * 2001-09-27 2009-10-27 Cisco Technology, Inc. System and method for mapping an index into an IPv6 address
US8045565B1 (en) 2001-11-20 2011-10-25 Brookline Flolmstead Llc Method and apparatus for an environmentally hardened ethernet network system
US8713185B2 (en) * 2001-12-07 2014-04-29 Rockstar Bidco, LP Methods of establishing virtual circuits and of providing a virtual private network service through a shared network, and provider edge device for such network
US7313135B2 (en) * 2002-01-31 2007-12-25 Mosaid Technologies, Inc. Trunking in a matrix
US20030152075A1 (en) * 2002-02-14 2003-08-14 Hawthorne Austin J. Virtual local area network identifier translation in a packet-based network
US6871265B1 (en) * 2002-02-20 2005-03-22 Cisco Technology, Inc. Method and apparatus for maintaining netflow statistics using an associative memory to identify and maintain netflows
US20040006640A1 (en) * 2002-07-03 2004-01-08 Inderieden Daniel W. Notification to routing protocols of changes to routing information base
KR20020081569A (ko) * 2002-09-04 2002-10-28 (주)시큐어베이스 Ternary CAM(Content Addressable Memory)을 이용하는네트웍 장치에서의 CAM내 동일한 엔트리 크기를 가지는다수의 테이블 관리 방법
WO2004023732A1 (en) * 2002-09-06 2004-03-18 Infineon Technologies Ag Method and apparatus for storing a port identifier in a lan switch
JP4101631B2 (ja) * 2002-12-13 2008-06-18 富士通株式会社 スイッチング装置
US7512078B2 (en) * 2003-10-15 2009-03-31 Texas Instruments Incorporated Flexible ethernet bridge
US7149214B2 (en) * 2003-11-04 2006-12-12 Cisco Technology, Inc. Dynamic unknown L2 flooding control with MAC limits
US7558273B1 (en) * 2003-12-23 2009-07-07 Extreme Networks, Inc. Methods and systems for associating and translating virtual local area network (VLAN) tags
US20050190788A1 (en) * 2004-02-27 2005-09-01 Wong Yu-Man M. System and method for VLAN multiplexing
US7460539B2 (en) * 2004-04-01 2008-12-02 Broadcom Corporation Individually programmable most significant bits of VLAN ID
US7554990B2 (en) * 2004-05-13 2009-06-30 Micrel, Inc. Static address reservation protocol in a data network
US7602712B2 (en) * 2004-06-08 2009-10-13 Sun Microsystems, Inc. Switch method and apparatus with cut-through routing for use in a communications network
US7639616B1 (en) 2004-06-08 2009-12-29 Sun Microsystems, Inc. Adaptive cut-through algorithm
US7733855B1 (en) * 2004-06-08 2010-06-08 Oracle America, Inc. Community separation enforcement
US7860096B2 (en) * 2004-06-08 2010-12-28 Oracle America, Inc. Switching method and apparatus for use in a communications network
US8964547B1 (en) 2004-06-08 2015-02-24 Oracle America, Inc. Credit announcement
US10768958B2 (en) 2004-11-17 2020-09-08 Vmware, Inc. Using virtual local area networks in a virtual computer system
US9043792B1 (en) * 2004-11-17 2015-05-26 Vmware, Inc. Virtual local area network (vlan) coordinator providing access to vlans
WO2006106588A1 (ja) * 2005-03-31 2006-10-12 Fujitsu Limited フレーム転送装置
US7673068B2 (en) * 2005-04-18 2010-03-02 Alcatel Lucent Method and system for implementing a high availability VLAN
JP2006311066A (ja) * 2005-04-27 2006-11-09 Toshiba Corp 電子機器
US7796590B1 (en) * 2006-02-01 2010-09-14 Marvell Israel (M.I.S.L.) Ltd. Secure automatic learning in ethernet bridges
US8792497B2 (en) * 2006-06-05 2014-07-29 Tellabs Operations, Inc. Method and apparatus for performing link aggregation
JP4259581B2 (ja) * 2007-02-07 2009-04-30 日立電線株式会社 スイッチングハブおよびlanシステム
US8681641B1 (en) * 2007-06-25 2014-03-25 Cisco Technology, Inc. Loop mitigation mechanism for ethernet networks
CN105743556B (zh) 2009-11-24 2019-03-22 韩国电子通信研究院 用于在无线通信系统中接收数据的方法和装置
CN102771059B (zh) * 2009-11-24 2016-07-06 韩国电子通信研究院 用于在基于多用户的无线通信系统中传送帧的方法
US8861495B2 (en) 2009-11-24 2014-10-14 Electronics And Telecommunications Research Institute Method for protecting data in a MU-MIMO based wireless communication system
WO2012131697A1 (en) * 2011-03-31 2012-10-04 Tejas Networks Limited Optimizing forward database for a bursty network traffic
US9590922B2 (en) * 2011-05-12 2017-03-07 Microsoft Technology Licensing, Llc Programmable and high performance switch for data center networks
US8891533B2 (en) * 2012-06-07 2014-11-18 Extreme Networks, Inc. Methods systems and apparatuses for dynamically tagging VLANs
US10419267B2 (en) 2014-01-22 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Network control software notification with advance learning
US20150207664A1 (en) * 2014-01-22 2015-07-23 International Business Machines Corporation Network control software notification with denial of service protection
US10877951B2 (en) 2014-01-22 2020-12-29 International Business Machines Corporation Network control software notification and invalidation of static entries
CN106230684B (zh) * 2016-08-05 2019-06-14 锐捷网络股份有限公司 报文转发方法、交换机和系统
US11757777B2 (en) * 2021-09-23 2023-09-12 Hewlett Packard Enterprise Development Lp Assigning security group tag for infrastructure traffic and preserving security group tag in snooped packets in dynamic segmentation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920886A (en) * 1997-03-14 1999-07-06 Music Semiconductor Corporation Accelerated hierarchical address filtering and translation using binary and ternary CAMs

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5677910A (en) * 1992-08-07 1997-10-14 Plaintree Systems Inc. High performance two-port transport LAN bridge
ES2211725T3 (es) 1995-04-28 2004-07-16 Matsushita Electric Industrial Co., Ltd. Metodo de transmision de datos.
WO1997015997A2 (en) * 1995-10-24 1997-05-01 Philips Electronics N.V. A system for transferring data in re-assignable groups, a transmitter and a receiver for use in such a system, and a method for transferring, transmitting and receiving such data, and a signal comprising such data
KR0168927B1 (ko) * 1995-12-23 1999-02-01 양승택 에이티엠 연결 식별자 관리 장치 및 그 방법
US6035105A (en) * 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
KR980010816A (ko) * 1996-07-31 1998-04-30 가네꼬 히사시 변형된 데이터베이스를 구비한 로컬 영역 네트워크 분석기
US5852607A (en) * 1997-02-26 1998-12-22 Cisco Technology, Inc. Addressing mechanism for multiple look-up tables
US6308218B1 (en) * 1997-09-17 2001-10-23 Sony Corporation Address look-up mechanism in a multi-port bridge for a local area network
US6181699B1 (en) * 1998-07-01 2001-01-30 National Semiconductor Corporation Apparatus and method of assigning VLAN tags
KR100333250B1 (ko) * 1998-10-05 2002-05-17 가나이 쓰토무 패킷 중계 장치
US6237061B1 (en) * 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
US6798775B1 (en) * 1999-06-10 2004-09-28 Cisco Technology, Inc. Virtual LANs over a DLSw network
US6446131B1 (en) * 1999-06-19 2002-09-03 Hewlett-Packard Company Bridges and other layer-two devices for forwarding MAC frames
US6775281B1 (en) * 1999-09-30 2004-08-10 Mosaid Technologies, Inc. Method and apparatus for a four-way hash table
US6765866B1 (en) * 2000-02-29 2004-07-20 Mosaid Technologies, Inc. Link aggregation
US6252872B1 (en) * 2000-05-24 2001-06-26 Advanced Micro Devices, Inc. Data packet filter using contents addressable memory (CAM) and method
US6633567B1 (en) * 2000-08-31 2003-10-14 Mosaid Technologies, Inc. Method and apparatus for searching a filtering database with one search operation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920886A (en) * 1997-03-14 1999-07-06 Music Semiconductor Corporation Accelerated hierarchical address filtering and translation using binary and ternary CAMs

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DEVASHISH, Paul: "Ternary DRAM CAM: Now and the Future", 01.05.2000, URL: http://www.edn.com/design/communications-networking/4354303/Ternary-DRAM-CAM-Now-and-the-Future, aus dem Internet heruntergeladen am 28.06.2012(der Anmelderin als Entgegenhaltung bereits aus dem Prüfungsverfahren zur US 10/625,320 derselben Familie bekannt) *
Norm IEEE STD 802.1Q-1998 1998, 08.03.1999. (1) The Institute of Electrical and Electronics Engineers (Hrsg.): "IEEE Standards for Local and Metropolitan Area Networks: Virtual Bridged Local Area Networks", ISBN 0-7381-1538-X, S. 1 - 199. http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=753056 [abgerufen am 28.06.2012]. [PDF-Datei] *
Norm IEEE STD 802.1Q-1998 1998, 08.03.1999. (1) The Institute of Electrical and Electronics Engineers (Hrsg.): "IEEE Standards for Local and Metropolitan Area Networks: Virtual Bridged Local Area Networks", ISBN 0-7381-1538-X, S. 1 - 199. http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=753056 [abgerufen am 28.06.2012]. [PDF-Datei]
VARADARAJAN, Suba: "Virtual Local Area Networks", 14.08.1997, S. 1-13, URL: http://www.cs.wustl.edu/~jain/cis788-97/ftp/virtual_lans/index.htm, aus dem Internet heruntergeladen am 28.06.2012 *

Also Published As

Publication number Publication date
KR20030096216A (ko) 2003-12-24
US7302432B2 (en) 2007-11-27
WO2002019638A2 (en) 2002-03-07
CA2420878A1 (en) 2002-03-07
US6633567B1 (en) 2003-10-14
KR100863105B1 (ko) 2008-10-13
GB0304263D0 (en) 2003-03-26
CN1229948C (zh) 2005-11-30
CA2420878C (en) 2010-06-22
US20040054655A1 (en) 2004-03-18
GB2382495A (en) 2003-05-28
AU2001287434A1 (en) 2002-03-13
GB2382495B (en) 2004-07-07
DE10196582T1 (de) 2003-07-10
WO2002019638A3 (en) 2002-08-01
CN1468482A (zh) 2004-01-14

Similar Documents

Publication Publication Date Title
DE10196582B3 (de) Verfahren und Vorrichtung zum Durchsuchen einer Filterdatenbank mit einem Suchvorgang
DE69827201T2 (de) Verfahren und system zur server-netzwerkvermittlung-mehrverbindung
DE69216915T2 (de) Router, der durch entfernte Adressauflösung Daten wie über eine Brücke weiterleiten kann
DE69610761T2 (de) Verfahren und vorrichtung zur gewährleistung der kommunikation mit mobilen endgeräten in einem paketübertragungssystem
DE69934644T2 (de) Netzwerkvermittlungseinrichtung mit auf der Basis von Benutzung verteilten Umleitungsdatenbanken
DE69533225T2 (de) Vorrichtung zur bereitstellung eines lokalen netzemulationsdienstes über ein öffentliches, verbindungsloses atm-netz
DE69834122T2 (de) Verbindingsunterstützung in einer hochleistungsnetzwerkvorrichtung
DE69912294T2 (de) Telekommunikationsnetzwerk mit veränderlichen adressenlernen, vermittlung und wegleitung
DE69726566T2 (de) Atm lan emulation
DE69331672T2 (de) Adressenerkennungsvorrichtung
DE69934192T2 (de) Verfahren und Einrichtung zur Netzverbindung mittels Brücken
DE69831893T2 (de) Wegesuchvorrichtung und Rahmenübertragungsverfahren unter Verwendung von Rahmenvermittlung auf Datenverbindungsschicht
DE69419534T2 (de) Multi-Protokoll Paketvermittlungsnetz
DE69825596T2 (de) System und verfahren für ein vielschicht-netzelement
US6147993A (en) Method and apparatus for implementing forwarding decision shortcuts at a network switch
DE69429575T2 (de) Netzwerkstation mit mehreren netzwerkadressen
DE69826680T2 (de) Hochintegrierte mehrschichtige Vermittlungsstellenelementarchitektur
DE69933417T2 (de) Vorrichtung und Verfahren zur routerfreien Schicht 3 Wegelenkung in einem Netz
DE69433126T2 (de) Verfahren zum Einrichten von virtuellen Mehrfachsendeverbindungen
DE69711916T2 (de) Verfahren zur überschreibung von gelernten ip-adressen unter verwendung von dhcp
DE69602753T2 (de) Netzwerkaddressierungsanordnung fur rückwarts kompatible leitweglenkung mit einem erweiterten addressraum
DE60300035T2 (de) Kommunikationssystem zum Aufbauen einer PPPoE ähnlichen Verbindung zwischen IEEE1394 basierten Peeren und IP basierten Peeren
DE69031438T2 (de) Kommunikationsprotokoll für statistische Datenmultiplexer in einer Weitbereichsnetzanordnung
DE69029452T2 (de) Kommunikationsarchitekturschnittstelle
EP1186200B1 (de) Verfahren und einrichtung zum übermitteln von daten

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20130705

R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R081 Change of applicant/patentee

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT IN, CA

Free format text: FORMER OWNER: MOSAID TECHNOLOGIES INCORPORATED, KANADA, ONTARIO, CA

Effective date: 20141120

R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

Effective date: 20141120

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee