-
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.