-
Die
vorliegende Erfindung betrifft im Allgemeinen die Paket-Weiterleitung
innerhalb eines Netzes und insbesondere ein System und ein Verfahren zum
Weiterleiten von Paketen unter Verwendung von Mehrschicht-Information.
-
Eine
Kommunikation zwischen Computern ist ein wichtiger Aspekt des tagtäglichen
Lebens sowohl im privaten Bereich als auch im Geschäftsbereich
geworden. Netze stellen ein Medium für diese Kommunikation und ferner
für eine
Kommunikation zwischen verschiedenen Typen von Elementen, die mit
dem Netz verbunden sind, wie Servern, Personalcomputern, Arbeitsstationen,
Speicher-Speicherungssystemen,
oder irgendeiner anderen Komponente, die Daten von dem Netz empfangen
oder an dieses senden kann, bereit. Die Elemente kommunizieren miteinander
unter Verwendung von definierten Protokollen, die die geordnete Übertragung
und den geordneten Empfang von Information definieren. Im Allgemeinen
betrachten die Elemente das Netz als eine Wolke, an der sie angebracht
sind, und zum größten Teil
müssen
sie die Einzelheiten der Netzarchitektur, wie beispielsweise, wie
das Netz arbeitet oder wie es implementiert ist, nicht kennen. Idealerweise
sollte irgendeine Netzarchitektur einen breiten Bereich von Anwendungen
unterstützen
und einen breiten Bereich von zugrundeliegenden Technologien erlauben.
Die Netzarchitektur sollte für
sehr große Netze
gut arbeiten, für
kleine Netze effizient sein, und sich auf ändernde Netzbedingungen anpassen.
-
Netze
können
im Allgemeinen auf Grundlage ihrer Größe unterschieden werden. Am
unteren Ende beschreibt ein lokales Netz (Local Area Network; LAN)
ein Netz, welches Charakteristiken aufweist, einschließlich der
an dem gemeinsamen Medium angebrachten mehreren Systeme, einer hohen
Gesamtbandbreite, einer niedrigen Verzögerung, niedrigen Fehlerraten,
einer Aussende-(Broadcast)-Fähigkeit,
einer begrenzten Geographie, und einer begrenzten Anzahl von Stationen,
und unterstehen im Allgemeinen nicht Post-, Telegraphie- und Telefon-Vorschriften.
Am oberen Ende beschreibt ein Unternehmens-Netz (Enterprise-Netz)
Verbindungen von Großgebiets-Netzen
(Wide Area Networks) und LANs, die unterschiedliche Geschäftseinheiten
innerhalb einer geographisch diversifizierten Geschäftsorganisation
verbinden.
-
Um
eine Kommunikation innerhalb von größeren Netzen zu ermöglichen
sind die Netze typischerweise in Unternetze aufgeteilt, die jeweils
eine gewisse gemeinsame Charakteristik, wie zum Beispiel den geographischen
Ort oder einen funktionalen Zweck, teilen. Die Aufteilung dient
zwei Hauptzwecken: das gesamte Netz in handhabbare Teile und für Benutzer
einer logischen (oder physikalischen) Gruppe des Netzes aufzubrechen.
Netzadressierungsschemata können
eine derartige Aufteilung berücksichtigen
und somit kann eine Adresse Information darüber enthalten, wie das Netz
aufgeteilt ist und wo die Adresse in die Netzhierarchie hinein passt.
-
Für Beschreibungs-
und Implementierungs-Zwecke kann ein Netz so beschrieben werden, dass
es mehrere Schichten mit daran angebrachten Endeinrichtungen aufweist,
die miteinander unter Verwendung von Peer-zu-Peer-Protokollen kommunizieren.
Das altbekannte Offensystem-Zwischenverbindungs-(Open Systems Interconnection;
OSI)-Referenzmodell stellt eine verallgemeinerte Vorgehensweise
zur Betrachtung eines Netzes unter Verwendung von sieben Schichten
bereit und ist eine zweckdienliche Referenz zum Abbilden der Funktionalität von anderen
Modellen und tatsächlichen
Implementierungen. Die Unterschiede zwischen den Schichten in jedem
gegebenen Modell ist klar, aber die Implementierung von irgendeinem
gegebenen Modell oder eine Abbildung von Schichten zwischen unterschiedlichen
Modellen ist dies nicht. Zum Beispiel definiert der Standard, der
von dem Institute of Electrical and Electronic Engineers (IEEE)
in deren 802 Protokollen verkündet
wird, Standards für
LANs und deren Definitionen überlappend
mit den unteren zwei Schichten des OSI Modells.
-
In
jedem derartigen Modell kommuniziert eine gegebene Schicht entweder
mit der gleichen Schicht einer Peer-Endstation über das Netz oder mit der gleichen
Schicht eines Netzelements innerhalb des Netzes selbst. Eine Schicht
implementiert einen Satz von Funktionen, die sich gewöhnlicherweise
logisch auf den Betrieb der Schicht darüber beziehen und den Betrieb
dieser Schicht erlauben.
-
Die
relevanten Schichten zum Beschreiben dieser Erfindung umfassen OSI
Schichten 1 bis 4. Die Schicht 1 (Layer 1), die physikalische Schicht, stellt
Funktionen bereit, um über
eine physikalische Strecke nicht strukturierte Bitmuster zu senden
und zu empfangen: Die physikalische Schicht betrifft selbst derartige
Aspekte wie die Größe und die
Form von Verbindern, die Umwandlung von Bits in elektrische Signale,
und eine Bit-Pegel-Synchronisation. Mehr als ein Typ von physikalischer
Schicht kann innerhalb eines Netzes existieren. Zwei gemeinsame Typen
der Schicht 1 lassen sich innerhalb des IEEE Standard 802.3 und
FDDI (Faserverteilte Datenschnittstelle; Fiber Distributed Data
Interface) finden.
-
Die
Schicht 2 (Layer 2), die Datenverbindungsschicht, stellt eine Unterstützung für eine Rahmenbildung,
Fehlererfassung, einen Zugriff auf die Transportmedien, und eine
Adressierung zwischen Endstationen, die auf oder unter der Schicht
2 untereinander verbunden sind, bereit. Die Datenverbindungsschicht
wird typischerweise so konstruiert, dass sie Pakete von Information über einen
einzelnen Sprung (hop), d. h. von einer Endstation zu einer anderen
innerhalb des gleichen Unternetzes, oder LAN, befördert.
-
Die
Schicht 3 (Layer 3), die Netzschicht, stellt eine Unterstützung für derartige
Funktionen wie eine Ende-zu-Ende-Adressierung, Netztopologieinformation,
Weglenkung und Paket-Fragmentierung bereit. Diese Schicht kann konfiguriert
werden, um Pakete entlang der besten „Route" von deren Quelle zu deren abschließender Zielstelle
zu senden. Ein zusätzliches
Merkmal dieser Schicht ist die Möglichkeit
Information über
einen Netzstau an die Quelle oder Zielstelle weiter zu leiten, wenn
Bedingungen dies rechtfertigen.
-
Die
Schicht 4 (Layer 4), die Transportschicht, stellt Anwendungsprogramme
wie ein elektronisches Postprogramm (Electronic Mail Programm) mit
einer „Portadresse", die die Anwendung
verwenden kann, um mit der Datenverbindungsschicht gekoppelt zu werden,
bereit. Ein grundlegender Unterschied zwischen der Transportschicht
und den unteren Schichten ist, dass eine Anwendung auf einer Quellen-Endstation
eine Konversation mit einer ähnlichen
Anwendung auf einer Ziel-Endstation irgendwo in dem Netz ausführen kann;
wohingegen die unteren Schichten Konversationen mit Endstationen
fortführen,
die ihre unmittelbaren Nachbarn in dem Netz sind. Schicht 4 Protokolle
unterstützen
auch zuverlässige
verbindungs-orientierte Dienste, wobei ein beispielhaftes Schicht
4 Protokoll, welches derartige Dienste bereitstellt, das Transport-Steuerprotokoll
(Transport Control Protocol; TCP) ist.
-
Unterschiedliche
Baublöcke
existieren zum Implementieren von Netzen, die auf diesen Schichten
arbeiten. Endstationen sind die Endpunkte eines Netzes und können als
Quellen, Zielstellen und Netzelemente oder als irgendein anderer
Zwischenpunkt zum Weiterleiten von Daten, die von einer Quelle empfangen
werden, an eine Zielstelle arbeiten.
-
Auf
der einfachsten Ebene sind Repeater, die Weiterleitungsstellen der
physikalischen Schicht sind, die einfach Bits an die Schicht 1 weiterleiten.
-
Brücken (Bridges)
stellen die nächste
Ebene über
Repeatern dar und sind Datenverbindungsschicht-Einheiten, die Pakete
innerhalb eines einzelnen LAN unter Verwendung von Nachschlagtabellen weiterleiten.
Sie modifizieren die Pakete nicht, sondern leiten Pakete lediglich
auf Grundlage einer Zielstelle weiter. Die meisten Brücken sind
lernende Brücken.
Wenn in diesen Brücken
die Brücke
vorher eine Quelle gelernt hat, weiß sie auch, an welchen Port das
Paket weiterzuleiten ist. Wenn die Brücke ein Paket von der Zielstelle
noch nicht weitergeleitet hat, dann kennt die Brücke (Bridge) den Portort der
Zielstelle nicht und leitet die Pakete an alle nicht abgeblockten
Ausgangsports, ausschließlich
des Ankunftsports, weiter. Außer
der Sammlung einer Kenntnis darüber,
an welche Ports Quellen Pakete senden, hat die Brücke keinerlei
Kenntnis über
die Netztopologie. Viele LANs können
nur unter Verwendung von Brücken
implementiert werden.
-
Router
(Weglenker) sind Netzschicht-Einheiten, die Pakete zwischen LANs
weiterleiten können. Sie
weisen das Potential auf, den besten Pfad zu verwenden, der zwischen
Quellen und Zielstellen existiert und zwar auf Grundlage von Information,
die mit anderen Routern ausgetauscht wird, die den Routern erlaubt
eine Kenntnis über
die Topologie des Netzes zu haben. Faktoren, die zu dem „besten" Pfad beitragen,
könnten
die Kosten, die Geschwindigkeit, den Verkehr und die Bandbreite
sowie andere umfassen.
-
Brouter
sind Router, die auch als Brücken ausgeführt werden
können.
Für diejenigen
Schicht 3 Protokolle, die der Brouter kennt, verwendet er dessen
Software, um zu bestimmen, wie das Paket weiterzuleiten ist. Für sämtliche
anderen Pakete wirkt der Brouter als eine Brücke.
-
Vermittlungsstellen
bzw. Schalter sind verallgemeinerte Netzelemente zum Weiterleiten
von Paketen, wobei der Aufbau der Vermittlungsstelle und, ob er
Schicht 2 oder Schicht 3 implementiert, nicht relevant ist.
-
Typischerweise
leiten Brücken
Pakete in einem flachen Netz ohne irgendeine Zusammenarbeit durch
die Endstationen weiter, weil das LAN keine topologische Hierarchie
enthält.
Wenn ein LAN zum Beispiel dafür
konstruiert ist, um eine Schicht 3 Funktionalität zu unterstützen, dann
werden Router verwendet, um Pakete innerhalb des LAN untereinander zu
verbinden und weiterzuleiten.
-
Brücken können hierarchische
Routing-Adressen (Weglenkungs-Adressen) nicht verwenden, weil sie
ihre Weiterleitungsentscheidungen auf Medienzugriffs-Steuer-(Media
Access Control; MAC) Adressen stützen,
die keine topologische Signifikanz enthalten. Typische MAC Adressen
werden einer Einrichtung zu ihrer Zeit der Herstellung zugewiesen.
Die Anzahl von Stationen, die durch Brücken untereinander verbunden
werden können,
ist begrenzt, weil Verkehrsisolations-, Bandbreiten-, Fehlererfassungs-
und Verwaltungs-Aspekte zu schwierig oder aufwendig werden, wenn
die Anzahl von Endstationen zunimmt.
-
Lernende
Brücken
führen
eine Selbstkonfiguration aus, wobei ihnen erlaubt wird „Plug and Play" Einheiten zu sein,
die für
einen Aufbau im Grunde genommen keine Interaktion mit dem Menschen erfordern.
Router erfordern jedoch eine intensive Konfiguration und können sogar Konfigurationsaktivitäten an den
Endknoten erfordern. Wenn zum Beispiel ein Netz das Übertragungssteuerprotokoll/Internetprotokoll
(Transmission Control Protocol/Internet Protocol; TCP/IP) verwendet,
muss jeder Endknoten manuell seine Adresse und Unternetzmaske von
einem Betreiber empfangen, und eine derartige Information muss dem
Router eingegeben werden.
-
Wenn
die Größe und Komplexität eines
Netzes zunimmt erfordert das Netz im Allgemeinen mehr Funktionalität an den
höheren
Schichten. Zum Beispiel kann ein relatives kleines LAN durch Verwendung
von Schicht 1 Elementen, wie Repeatern oder Brücken implementiert werden,
während
ein sehr großes
Netz bis zu und einschließlich
von Schicht 3 Elemente, wie Router, verwendet.
-
Ein
einzelnes LAN ist typischerweise unzureichend, um die Anforderungen
einer Organisation zu erfüllen,
und zwar wegen der inhärenten
Beschränkungen:
(1) über
die Anzahl von Endstationen, die an einem physikalischen Schichtsegment
angebracht werden können;
(2) der Segmentgröße der physikalischen
Schicht; und (3) der Verkehrsmenge, die begrenzt ist, weil die Bandbreite
des Segments unter sämtlichen
verbundenen Endstationen gemeinsam verwendet werden muss. Um diese
Randbedingungen zu beseitigen werden andere Netzbaublöcke benötigt.
-
Wie
kurz voranstehend beschrieben, wenn die Anzahl von Endstationen
in einem Netz zunimmt, kann das Netz in Unternetze aufgeteilt werden.
Eine typische Adresse in einem aufgeteilten Netz umfasst zwei Teile:
einen ersten Teil, der das Unternetz anzeigt; und einen zweiten
Teil, der eine Adresse innerhalb des Unternetzes anzeigt. Diese
Typen von Adressen führen
topologische Information, weil der erste Teil der Adresse graphische
oder logische Abschnitte des Netzes definiert und der zweite Teil
eine Endstation innerhalb des Unternetz-Abschnitts definiert. Eine
Weglenkung (ein Routing) mit einer hierarchischen Adressierung beinhaltet
zwei Schritte: erste Pakete werden an das Unternetz der Zielstelle
geleitet; und zweite Pakete werden an die Zielstelle innerhalb des
Unternetzes weitergeleitet.
-
Eine
Endstation empfängt
eine einzigartige Datenverbindungsadresse – die MAC Adresse – zur Zeit
der Herstellung, wobei der Endstation erlaubt wird, sich an irgendeinem
LAN innerhalb eines überbrückten Netzes
anzubringen, ohne sich um duplizierte Adressen zu kümmern. Datenverbindungsadressen
können
deshalb irgendeine topologische Information nicht führen. Brücken, im
Gegensatz zu Routern, leiten Pakete auf Grundlage von Datenverbindungsadressen
weiter und können
somit hierarchische Adresse nicht interpretieren.
-
Das
gegenwärtige
Internet wird gerade gezwungen zunehmende Anzahlen von Benutzer
und zunehmende Anforderungen von Multimedia-Anwendungen zu behandeln.
Zukünftige
Netze werden benötigt
werden, um eine noch höhere
Bandbreite, größere Anzahlen
von Benutzern und Verkehrsklassifikations-Anforderungen durch das
Netz zu unterstützen.
Statistische Studien zeigen, dass die Netzdomäne, sowie die Anzahl von Arbeitsstationen,
die mit dem Netz verbunden sind, bei einer schnelleren Rate in der
Zukunft anwachsen werden. Es besteht auch der Trend mehrere Verkehrstypen
mit veränderten Charakteristiken
auf der gleichen physikalischen Strecke zu unterstützen. Dies
erfordert mehr Netzbandbreite und eine effiziente Verwendung von
Ressourcen. Um die Bandbreitenanforderung zu erfüllen ist die Geschwindigkeit
auf den Netzen auf dem Aufwärtstrend,
wobei Gigabit-Geschwindigkeiten erreicht werden.
-
Netzentwickler
verwenden häufig
eine bestimmte Kombination der ISO Schicht 2 und Schicht 3 wegen
des Erfolgs des Internets und der zunehmenden Anzahl von Produkten
und Netzen, die das Internet verwenden. Insbesondere kombinieren
in einem typischen Internet-bezogenen Netz Entwickler eine Implementierung
in Übereinstimmung
mit dem IEEE 802 Standard (der mit der ISO Schicht 1 und Schicht
2 überlappt)
mit der Internetprotokoll (IP) Netzschicht. Diese Kombination wird
auch innerhalb von Unternehmensnetzen, wie Intranetzen, populär.
-
Eine
Unterstützung
dieser Kombination durch Ausbauen von Netzen aus Schicht 2 Netzelementen
stellt eine schnelle Paketweiterleitung bereit, hat aber eine geringe
Flexibilität
im Hinblick auf eine Verkehrsisolation, redundante Topologien, und
Ende-zu-Ende-Strategien für
eine Warteschlangensteuerung und Verwaltung (Zugriffssteuerung).
Ein Aufbau von derartigen Netzen aus Schicht 3 Elementen alleine
beeinträchtigt
das Betriebsverhalten und ist von dem hierarchischen Standpunkt
her wegen dem Zusatz, der dazu gehört den Schicht 3 Header (Anfangsblock)
durchzusehen und das Paket zu modifizieren, wenn erforderlich, unpraktisch.
Ferner erzwingt die Verwendung nur von Schicht 3 Elementen ein Adressierungsmodell
mit einer Endstation pro Unternetz und keine Schicht 2 Verbindbarkeit
(Connectivity) zwischen den Endstationen.
-
Netze,
die aus einer Kombination von Schicht 2 und Schicht 3 Elementen
aufgebaut sind, werden heute verwendet, weisen aber Unzulänglichkeiten
des Betriebsverhaltens und der Flexibilität auf. Mit einer Erhöhung einer
Variation in der Verkehrsverteilung (die Rolle des „Servers" hat sich mit Browser-gestützten Anwendungen
multipliziert) ist insbesondere die Notwendigkeit zum Durchqueren
von Routern mit hoher Geschwindigkeit essentiell.
-
Die
Wahl zwischen Brücken
und Routern führt
typischerweise zu signifikanten Kompromissen (in der Funktionalität, wenn
Brücken
verwendet werden und in der Geschwindigkeit, wenn Router verwendet
werden). Ferner sind die Dienstcharakteristiken, wie die Priorität, innerhalb
eines Netzes im Allgemeinen nicht mehr homogen, und zwar unabhängig davon,
ob Verkehrsmuster Router beinhalten. In diesen Netzen existieren
unterschiedliche Verkehrstypen und erfordern unterschiedliche Dienstcharakteristiken,
wie die Bandbreite, Verzögerung
und etc..
-
Um
die Verkehrsanforderungen von Anwendungen zu erfüllen sollten die überbrückenden
Einrichtungen bei Leitungsgeschwindigkeiten arbeiten, d. h. sie
arbeiten bei oder schneller als die Geschwindigkeit, mit der Pakete
an der Einrichtung ankommen, aber sie müssen auch in der Lage sein
Pakete über
Domänen,
Unternetze weiterzuleiten. Obwohl gegenwärtige Entwickler von hybriden
Brücken/Routern
in der Lage sind richtige Netzzustellungsfunktionen zu erzielen,
sind sie nicht in der Lage die heutigen Anforderungen an eine zunehmende
Geschwindigkeit zu erfüllen.
-
Was
benötigt
wird ist eine Vermittlungsstelle oder ein Netzelement, die sowohl
Schicht 2 als auch Schicht 3 Pakete schnell und effizient sowohl
innerhalb eines Unternetzes als auch über Unternetze und an andere
Netze weiterleitet. Ferner wird ein Netzelement benötigt, welches
Schicht 3 Pakete bei einer Drahtgeschwindigkeit, d. h. so schnell
wie Pakete in das Netzelement eintreten, weiterleiten kann. Zusätzlich wird
ein Netzelement benötigt,
welches erlaubt, dass eine Schicht 2 Weiterleitung innerhalb eines
Unternetzes die zusätzlichen
Merkmale aufweist, die in der Schicht 3 Weglenkung (Routing) verfügbar sind,
und eine bestimmte Dienstqualität
für Anwendungen
innerhalb des Unternetzes, wie eine Priorität und eine Bandbreiten-Reservierung
bereitstellt.
-
Die
US-A-5459717 offenbart die Weglenkung (Routing) einer Nachricht,
die von einem Nachrichtenweiterleitungssystem empfangen wird, indem ein
Suchschlüssel
unter Verwendung von Adressencodes, die von einer in der Nachricht
spezifizierten Benutzeradresse analysiert werden, formatiert wird. Jeder
der Adressencodes entspricht einem anderen Grad einer Spezifizierung
für die
Benutzeradresse. Wenn keine Routing-Information aus einer Datenbank
unter Verwendung des Suchschlüssels
erhalten werden kann, dann wird der Suchschlüssel sukzessive von Adressencodes
in der Reihenfolge der Spezifizierung abgestreift, bis die Information
zurückgewonnen
werden kann oder ein Grundgrad einer Spezifizierung erreicht wird.
-
Die
US-A-5477537 offenbart ein Verfahren zum Zugreifen auf Adressenmerkmale,
wenn Datenpakete gelesen werden, indem Merkmale des Betriebsverhaltens
der Kommunikationsverbindung in Tabellen in der Form von Adressen
abgelegt werden, die sukzessive gelesen werden müssen. Ein großes Adressengebiet,
von dem ein Untersatz von Adressen verwendet wird, wird auf ein
komprimiertes Adressengebiet der gleichen Größe wie der Untersatz der verwendeten
Adressen komprimiert, um so die Adressen zu miniaturisieren.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung ermöglicht,
dass die obigen Probleme im Wesentlichen beseitigt werden, indem
ein System und ein Verfahren für
ein Mehrschicht-Netzelement zum Weiterleiten von empfangenen Paketen
an einen oder mehrere geeignete Ausgangsports bereitgestellt wird.
-
Eine
Ausführungsform
der vorliegenden Erfindung umfasst ein Verfahren zum Weiterleiten
eines Pakets, welches von einem Eingangsport eintritt, an einen
oder mehrere geeignete Ausgangsports auf Grundlage von einzelnen
Durchsuchungsvorgängen eines
Assoziativspeichers für
jede Schicht. Der Assoziativspeicher enthält eine bestimmte Dienstqualitäts-Information,
die auf irgendeine Schicht angewendet werden kann.
-
Ein
Paket wird auf einem Eingangsport empfangen und von dem Paket wird
ein erster Suchschlüssel
auf Grundlage des Headers (Anfangsblock) des Pakets erzeugt. Ein
Assoziativspeicher-Nachschlag
wird für
den ersten Suchschlüssel ausgeführt, was
zu zwei potentiellen Weiterleitungsentscheidungen für das Paket
führt.
Wenn der erste Suchschlüssel
mit einem Eintrag zu einer Zieladresse übereinstimmt, die in dem ersten
Suchschlüssel gefunden
wird, d. h. ein übereinstimmender
Eintrag wird in dem Assoziativspeicher gefunden, dann ist der potentielle
Ausgangsport oder sind die potentiellen Ausgangsports diejenigen,
die zu der Zieladresse gehören,
wie in dem Assoziativspeicher gefunden. Wenn die Zieladresse nicht
mit irgendeinem Eintrag in dem Assoziativspeicher übereinstimmt,
dann sind sämtliche
Ports mit Ausnahme des ankommenden Ports Kandidaten für den potentiellen
Ausgangsport oder die potentiellen Ausgangsports.
-
Das
Paket wird auch nach der Klasse kategorisiert, um zu der Erzeugung
eines zweiten Suchschlüssels
beizutragen. Pakete einer bestimmten Klasse teilen gemeinsame Charakteristiken,
wie beispielsweise welche Abschnitte des Headers verwendet werden,
um den zweiten Suchschlüssel
zu erzeugen. Eine Klasse definiert auch bestimmte voreingestellte
(Default) Weiterleitungsinformation für Pakete innerhalb der Klasse.
Die Default-Information kann eine bestimmte Dienstqualitäts-Information
enthalten.
-
Ein
Assoziativspeicher-Nachschlag wird unter Verwendung des zweiten
Suchschlüssels
ausgeführt.
Die Ergebnisse von dieser zweiten Suche, der ersten Suche, und der
Defaultinformation werden kombiniert, um zu bestimmen, welcher potentielle Ausgangsport
oder welche potentiellen Ausgangsports, wie durch die drei Suchvorgänge hervorgebracht,
der am besten geeignete für
dieses Paket ist. Das Paket wird dann an den geeigneten Ausgangsport
oder die geeigneten Ausgangsports weitergeleitet.
-
In
einigen Fällen
ergibt der zweite Suchschlüssel
keine Übereinstimmung
in dem Assoziativspeicher. In diesen Fällen wird die voreingestellte
Information (Default-Information) mit den Ergebnissen der ersten
Suche kombiniert. Ferner können die
Ergebnisse der ersten Suche irgendeine andere Weiterleitungsinformation
außer
Kraft setzen; und die Ergebnisse der zweiten Suche können erzwingen, dass
die Ergebnisse der ersten Suche verwendet werden, um das Paket weiterzuleiten.
-
In
einer Ausführungsform
implementiert die Erfindung die Weiterleitung von Schicht 2 und Schicht
3 Paketen. In dieser Ausführungsform
umfasst der erste Suchschlüssel
Information über
die Schicht 2 Zielstellen-Adressen und der zweite Suchschlüssel und
die voreingestellte Information umfassen Information über die
Schicht 3 und möglicherweise
die Schicht 4.
-
Eine
derartige Implementierung erlaubt in einer Ausführungsform, dass eine bestimmte
Dienstqualität
(Quality of Service) auf die Schicht 2 Weiterleitung in der folgenden
Weise angewendet wird. Wenn ein Paket das Netzelement als ein Schicht
2 Paket betritt, wird der erste Suchschlüssel dazu führen, dass die Schicht 2 Weiterleitungsinformation
von dem Assoziativspeicher ausgegeben wird. Die Klasse des Pakets
wird bestimmt und das Paket wird mit einer voreingestellten Klasseninformation
versehen, die eine bestimmte Dienstqualitäts-Information umfassen kann.
Der zweite Suchschlüssel
kann jedoch nicht irgendwelche Ergebnisse von dem Assoziativspeicher
hervorbringen, weil ein Eintrag in dem Speicher durch die Zentralverarbeitungseinheit
noch nicht erzeugt worden ist. In diesem Fall wird eine Zusammenfassungslogik
das Schicht 2 Weiterleitungsergebnis verwenden, aber auch die Dienstqualitäts-Information von der
voreingestellten Weiterleitungsinformation verwenden. Ein derartiges
Merkmal erlaubt, dass das Netzelement konfiguriert wird, um innerhalb
eines Unternetzes eine Dienstqualität für den Schicht 2 Verkehr bereitzustellen.
-
Noch
andere Ausführungsformen
der vorliegenden Erfindung ergeben sich Durchschnittsfachleuten
in dem technischen Gebiet näher
aus der folgenden ausführlichen
Beschreibung, in der nur die Ausführungsformen der Erfindung
durch eine Illustration der bevorzugten Vorgehensweisen, die für die Ausführung der
Erfindung in Erwägung
gezogen werden, gezeigt und beschrieben sind. Es wird erkannt werden,
dass die Erfindung in anderen und unterschiedlichen Ausführungsformen
umgesetzt werden kann und mehrere von ihren Einzelheiten in verschiedenen
offensichtlichen Aspekten modifiziert werden können, und zwar alle ohne Abweichen
von dem Grundgedanken und dem Umfang der vorliegenden Erfindung.
Demzufolge sollen die Zeichnungen und die ausführliche Beschreibung als der
Art nach illustrativ und nicht als beschränkend angesehen werden.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
In
den Zeichnungen zeigen:
-
1 ein
System, welches ein Mehrschicht-Netzelement in Übereinstimmung mit der Erfindung
beinhaltet;
-
2 das
Mehrschicht-Netzelement der 1;
-
3 das
Schaltelement des Mehrschicht-Netzelements mit näheren Einzelheiten;
-
4 die
Weiterleitungslogik des Schaltelements mit näheren Einzelheiten;
-
5 die
Klassenlogik der 4 mit näheren Einzellheiten;
-
6 den
Prozess, der bei der Bestimmung verwendet wird, welche Information
den Pfad eines Pakets durch das Mehrschicht-Netzelement vorgibt; und
-
7 die
Informationsabhängigkeit
bei der Bestimmung, wie ein Paket aus dem Netzelement heraus weiterzuleiten
ist.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
1 zeigt
ein System, welches ein Mehrschicht-Netzelement in Übereinstimmung
mit der vorliegenden Erfindung beinhaltet. Das System umfasst das
Mehrschicht-Netzelement, verschiedene Netze, Endstationen, Router
und Brücken.
Mit Hilfe eines Beispiels und wie in einem breiten Sinne verkörpert und
hier beschrieben umfasst ein System 10, welches ein Mehrschicht-Netzelement 12 in Übereinstimmung
mit der vorliegenden Erfindung beinhaltet, Netze 14 und 16,
Endstationen 18, einen Router 24, eine Brücke 26 und
lokale Netze (Local Area Networks; LAN) 28.
-
Die
Brücke 26 verbindet
einige der LANs 28 und Endstationen 18 mit dem
Netz 14 und untereinander. Die Brücke 26 kann eine herkömmliche
lernende Brücke
sein. Die Brücke 26 verfolgt
die Adressen der Endstationen 18, die ein Paket senden,
welches auf einem der Ports 30 an der Brücke 26 aufscheint.
Die Endstationen 18 können
irgendeine Einrichtung sein, die in der Lage ist Pakete mit Information
zu senden oder zu empfangen. Typischerweise sind die Endstationen 18 Personalcomputer,
Arbeitsstationen, Drucker, Server und/oder irgendeine Einrichtung,
die mit einem Netz verbunden werden kann.
-
Die
Brücke 26 weiß zu Anfang
nicht, auf welchem ihrer Ports Paketzielstellen angeordnet sind, und
muss ein ankommendes Paket an alle Ports fluten lassen, um in einer
geeigneten Weise das Paket weiterzuleiten. Sobald die Brücke 26 ein
Paket empfängt,
welches für
eine Adresse bestimmt ist, die sie bereits erkennt, weiß die Brücke 26,
auf welchem Port die Zielstelle ist, so dass sie das Paket nicht
an alle abgehenden Ports fluten lassen muss. Schließlich hat
die Brücke 26 genug
Adressen gelernt, um den Betrag der Flutung, die auf den Ports benötigt wird,
vollständig
zu beseitigen. Jedes mal, wenn eine Endstation 18 Ports
auf der Brücke 26 ändert, muss die
Brücke 26 natürlich den
Port der Endstation 18 neu lernen.
-
Die
Brücke 26 modifiziert
das Paket typischerweise nicht, enthält keine Information über die Topologie
des Netzes 14, und untersucht wenige Teile des Paket-Headers.
Die Brücke 26 arbeitet
schnell, weil sie an dem Paket keine Modifikationen vornimmt und
sich nur um das Lernen von Quellen und das Weiterleiten an Zielstellen
kümmert.
Typischerweise verwenden Brücken 26 Nachschlag-Tabellen,
um nach Quellen und Zielstellen zu suchen.
-
Der
Router 24 verbindet das Netz 14 mit den Netzen 16.
Nur ein Router 24 ist beispielhaft dargestellt, aber es
können
viele Router vorhanden sein, die andere Netze oder Endstationen 18 verbinden. Der
Router 24 stellt die Kommunikation bereit, die zwischen
dem Netz 14 und Netz 16 erforderlich ist und kann
ein herkömmlicher
Router sein. Derartige Router umfassen eine Schicht 3 Funktionalität zum Weiterleiten
von Paketen an eine geeignete Zielstelle, einschließlich einer
Routenberechnung, einer Paketfragmentierung und einer Stausteuerung.
Router von diesem Typ sind zum Beispiel in Interconnections: Bridges
and Routers von Radia Perlmann herausgegeben von Addison-Wesley,
beschrieben. Der Router 24 muss eine Kenntnis über die
Topologie des Netzes haben, um die beste Route für Pakete zu bestimmen. Die
Kenntnis des Routers 24 des Netzes wird durch eine topologische
Information erworben, die zwischen mehreren derartigen Routern 24,
die mit dem Netz 14 verbunden sind, übergeben wird.
-
Software,
die auf dem Router 24 läuft,
analysiert (durchleuchtet) ein ankommendes Paket, um verschiedene
Charakteristiken über
das Paket zu bestimmen, einschließlich des Typs des Protokolls,
welches verwendet wird, und der Quelle und der Zielstelle (Zielstellen).
Andere Bestimmungen auf Grundlage einer Untersuchung des Pakets
können
erforderlich sein, wie beispielsweise die Priorität und die
Dienstqualitäts-(QoS)-Faktoren,
wie eine Priorität
und eine Bandbreiten-Reservierung. Der Router 24 verwendet dann
die extrahierte Information und berechnet die nächste Zielstelle für das Paket
auf Grundlage der Topologie und Routeninformation, die in dem Speicher
des Routers 24 gespeichert ist. Der Router 24 wendet
auch QoS (Dienstqualität)
Regeln und Aktionen an.
-
Der
Prozess des Routers 24 zum Berechnen der nächsten Zielstelle
kann viele Zugriffe auf den Speicher und eine Berechnung der Route
aus dieser Information erfordern. Ferner wird das Paket typischerweise
empfangen und gespeichert, während
irgendeine Verarbeitung stattfindet. Nachdem der Router 24 bestimmt
hat, welche Aktionen für
das Paket erforderlich sind, werden irgendwelche Modifikationen
an dem Paket, sowie es in dem Speicher gespeichert ist, oder auf
dem Weg heraus von dem Router 24 durchgeführt. Die
Router 24 werden typischerweise benötigt, um die Schicht 2 Quelle
und die Zielstelle des Pakets zu ersetzen, irgendwelche Prüfsummen
des Pakets zu aktualisieren, und irgendwelche Aspekte, die sich
auf die Paket-Lebensdauer beziehen, zu behandeln.
-
Um
die Funktionen auszuführen,
die der herkömmliche
Router 24 ausführt,
untersucht die Software Speicherstellen, führt Modifikationen an dem Paket
durch, und berechnet neue Werte für neue Felder. Derartige Aktionen
stellen eine erhöhte
Funktionalität über eine
einfache Paketweiterleitung wie diejenige, die man in den Brücken 26 findet,
wie eine Bestimmung der besten Route für das Paket, die Bereitstellung
von QoS Merkmalen, bereit; jedoch brauchen derartige Vorgänge in herkömmlichen
Routern 24 wertvolle Zeit.
-
Das
Netz 14 stellt Kommunikationspfade für sämtliche Elemente, die damit
verbunden sind, bereit. In dem Beispiel der 1 umfassen
die Elemente des Mehrschicht-Netzelements 12, den Router 24 und
die Brücke 26.
Irgendeine Anzahl von Elementen könnte mit einem Netz 14 in
einer Vielzahl von Vorgehensweisen verbunden werden. 1 zeigt
nur eine mögliche
Kombination. Die Elemente, die mit dem Netz 14 verbunden
sind, erfordern nicht, dass das Netz 14 von irgendeiner
bestimmten Größe oder Konfiguration
ist. Für
die Endstationen 18 und die Brücke 26 wird eine ausführliche
topologische Kenntnis des Netzes 14 nicht benötigt.
-
Das
Mehrschicht-Netzelement 12 in Übereinstimmung mit der vorliegenden
Erfindung verbindet verschiedene Elemente mit dem Netz 14 und
untereinander. Wie mit Hilfe eines Beispiel illustriert verbindet
das Mehrschicht-Netzelement 12 ein LAN 28, die
Endstation 18 und das Netz 14. Das Mehrschicht-Netzelement 12 kombiniert
die Funktionen sowohl einer Brücke
als auch eines Routers. Wenn es als ein Router funktioniert enthält das Mehrschicht-Netzelement 12 topologische
Information über
das Netz 14, um ein Paket an dessen Zielstelle intelligent
zu lenken, während
eine zugehörige Schicht
3 Funktionalität,
die typischerweise in einem Router 24 angetroffen wird,
bereitgestellt wird. Wenn es als eine Brücke funktioniert lernt das
Mehrschicht-Netzelement 12 Quellen/Port-Kombinationen zur
Weiterleitung von Schicht 2 Paketen. Das Mehrschicht-Netzelement 12 unterscheidet
sich von herkömmlichen
Brücken/Router-Kombinationen
dadurch, dass eine bestimmte Schicht 3 Verarbeitung so schnell wie
eine Schicht 2 Vermittlung, die in der Brücke 26 angetroffen
wird, arbeitet.
-
2 zeigt
das Mehrschicht-Netzelement 12 der 1 mit näheren Einzelheiten.
Das Mehrschicht-Netzelement 12 in Übereinstimmung mit einer Ausführungsform
der Erfindung umfasst einen Prozessor 32, einen Prozessorspeicher 34,
ein Schalt- bzw. Vermittlungselement 36, eine Vielzahl von
Netzelement-Ports 38, einen Weiterleitungsspeicher 40,
einen zugehörigen
Speicher 42 und einen Paketpufferspeicher 44.
Die Endstationen 18, das LAN 28 und das Netz 14 sind
mit dem Mehrschicht-Netzelement 12 unter
Verwendung einer Vielzahl von Netzelement-Ports 38 verbunden.
Andere Mehrschicht-Netzelemente 12 können ebenfalls mit dem Mehrschicht-Netzelement 12 verbunden
werden.
-
Das
Vermittlungselement 36 ist auch mit dem Prozessor 32,
dem Weiterleitungsspeicher 40, dem zugehörigen Speicher 42 und
dem Paketpufferspeicher 44 verbunden. Der Prozessor 32 ist
auch mit dem Speicher 34 verbunden. Der Weiterleitungsspeicher 40 und
der zugehörige
Speicher 42 sind miteinander und außerdem mit dem Vermittlungselement 36 verbunden.
-
Das
Vermittlungselement 36 führt die meisten Paket-Weiterleitungsfunktionen
unter Verwendung sowohl der Schicht 2 als auch der Schicht 3 Information,
und möglicherweise
auch mit einer bestimmten Schicht 4 Information, die in dem Weiterleitungsspeicher 40 und
dem zugehörigen
Speicher 42 gespeichert ist, aus, ohne sich auf den Prozessor 32 stützen zu
müssen,
um Routen zu berechnen und geeignete Aktionen bei jedem Paket zu
bestimmen.
-
Der
Prozessor 32 führt
Aufgaben aus, für
deren Behandlung das Vermittlungselement 36 nicht ausgerüstet ist.
Wenn zum Beispiel neue Schicht 3 Routen berechnet werden müssen, verwendet
der Prozessor 32 den Prozessorspeicher 34, der
eine detaillierte Information über
die Topologie von irgendwelchen Netzen enthält, die von dem Mehrschicht-Netzelement 12 erreichbar
sind. Der Prozessor 32 führt seine Berechnungen vorwiegend
unter Verwendung von Software-Programmiereinheiten in Verbindung
mit Zugriffen auf den Speicher 34 aus. Das Vermittlungselement 36 trifft
seine Entscheidungen vorwiegend in Hardware, wobei der Weiterleitungsspeicher 40 und
der zugehörige
Speicher 42 verwendet wird. Der Weiterleitungsspeicher 40 und der
zugehörige
Speicher 42 enthalten nur einen Abschnitt der Information,
die in dem Speicher 34 enthalten ist, und sind konfiguriert
für einen
schnellen Zugriff und eine schnelle Auslesung.
-
3 zeigt
eine ausführliche
Ansicht des Vermittlungselements 36 und dessen Verbindungen mit
dem Prozessor 12, der Vielzahl von Netzelement-Ports 38a-n,
dem Weiterleitungsspeicher 40, dem Assoziativspeicher 42 und
dem Paketpuffer-Speicher 44. Das Vermittlungselement 36 umfasst
Eingangsports 50a-n, eine Weiterleitungslogik 52,
einen Paketspeicher-Manager 54 und Ausgangsports 56a-n.
Jeder Eingangsport 50i und Ausgangsport i entspricht einem
Netzelement-Port 38i. Jeder der Eingangsports 50 ist
auch sowohl mit der Weiterleitungslogik 52 als auch mit
dem Paketspeicher-Manager 54 verbunden.
-
Für irgendein
gegebenes i empfängt
ein Eingangsport 50i Pakete von seinem jeweiligen Mehrschicht-Netzelement-Port 38i und
testet die Pakete auf Richtigkeit. Wenn das Paket schlecht geformt
ist, wird es gelöscht.
Pakete, die dieses anfängliche Durchleuchten
durchlaufen, werden vorübergehend durch
den Eingangsport 50i gepuffert. Sobald der Eingangsport 50i wenigstens
die ersten 64 Bytes des empfangenen Pakets gepuffert hat, übergibt
der Eingangsport 50i den Header an die Weiterleitungslogik 52.
-
Die
Weiterleitungslogik 52 ist mit dem Prozessor 32,
dem Weiterleitungsspeicher 40 und dem Assoziativspeicher 42 verbunden.
Die Weiterleitungslogik 52 fuhrt mehrere Funktionen aus.
Anfänglich
analysiert sie das Paket, um zu bestimmen, ob das Paket verkapselt
ist, beispielsweise durch das Unternetz-Zugriffsprotokoll (Subnetwork Access
Protocol; SNAP), oder ob das Paket mit einer Kennung versehen ist,
zum Beispiel mit einem Identifizierer für ein virtuelles LAN (VLAN).
Wenn das Paket von einem diesen zwei Typen ist, verwendet die Weiterleitungslogik 52 eine
Versatzinformation (Offset-Information), um eine Headerinformation
einer geeigneten Schicht, die für
eine weitere Verarbeitung benötigt wird,
zu lokalisieren.
-
Die
Weiterleitungslogik 52 durchsucht auch den Weiterleitungsspeicher 40 nach Übereinstimmungen
auf der Schicht 2 und/oder der Schicht 3. Die Suche kann auch irgendeine
Information auf der Schicht 4 umfassen. In der bevorzugten Ausführungsform
ist der Weiterleitungsspeicher 40 ein über den Inhalt-adressierbarer
Speicher (Content Adressable Memory; CAM), der Information sowohl über die
Schicht 2 als auch die Schicht 3 Vermittlung speichert, und kann
irgendeine Schicht 4 Information enthalten. Wenn eine Übereinstimmung
festgestellt wird dienen Daten, die in dem Assoziativspeicher 42 gespeichert
sind und auf die von dem übereinstimmenden
Eintrag in dem Weiterleitungsspeicher 40 verwiesen wird,
zum Definieren der Aktionen, die das Vermittlungselement 36 durchführen muss,
um das Paket an die geeignete Zielstelle (Zielstellen) weiterzuleiten.
-
In
einer anderen Ausführungsform
könnte der
Weiterleitungsspeicher 40 unter Verwendung eines Speichers
mit wahlfreiem Zugriff und sequentieller Adressierung implementiert
werden. In dieser Ausführungsform
würde für den bestimmten
Schlüssel
eine Hashing-Funktion vorher ausgeführt werden. Der sich ergebende
gehashte (verwürfelte)
Wert würde
eine Adresse in den Speicher 42 hinein, in Assoziation
mit dem vorher verwürfeltem
Schlüssel,
sein.
-
In
noch einer anderen Ausführungsform könnte der
Weiterleitungsspeicher 40 und der zugehörige Speicher 42 in
einem einzelnen Speicher mit wahlfreiem Zugriff enthalten sein.
Bei einer Implementierung von diesem einzelnen Speicher mit wahlfreiem
Zugriff könnte
auf die Einträge
sequentiell zugegriffen werden, wobei ein Hash-Frontend benötigt wird.
Eine andere Implementierung von diesem einzelnen Speicher mit wahlfreiem
Zugriff könnte
ein CAM sein.
-
Der
Paketspeicher-Manager 54 ist mit einem Paketpuffer-Speicher 44,
dem Eingangsport 50i und dem Ausgangsport 56i verbunden.
Wie voranstehend angegeben entspricht jeder Ausgangsport 56i einem
der Vielzahl von Mehrschicht-Netzelement-Ports 38i. Während sie
als getrennte Einheiten dargestellt sind, sind der Eingangsport 50i und
der Ausgangsport 56i, die einem bestimmten Mehrschicht-Netzelementport 38i entsprechen,
eng gekoppelt, da Information durch die Netzelement-Ports 38 in
beiden Weisen fließen.
-
Nachdem
die Weiterleitungslogik 52 bestimmt hat, was mit dem Paket
zu tun ist, übergibt
sie diese Information an den Eingangsport 50i. Wenn der Eingangsport 50i das
Paket nicht filtert, dann fordert er einen Zeiger auf freie Speicherstellen
in dem Paketpuffer-Speicher 44 von dem Paketspeicher-Manager 54 an.
Der Paketspeicher-Manager 54 antwortet durch Bereitstellen
von Ortsadressen von freiem Speicherplatz in dem Paketpuffer-Speicher 44.
Der Eingangsport 50i fordert dann einen Schreibzugriff von
dem Paketspeicher-Manager 54 an und sendet den Zeiger und
die Daten an den Paketspeicher-Manager 54.
-
In
einigen Fällen
muss der Eingangsport 50i an den Paketen, wie von der Weiterleitungslogik 52 befohlen,
Modifikationen durchführen.
Der Eingangsport 50i führt
diese Modifikationen aus, bevor das Paket in dem Paketpufferspeicher 44 gespeichert
wird. Wenn von dem Eingangsport 50i angefordert platziert
der Paketspeicher-Manager 54 das Paket in die geeignete
Adressenstelle, die von dem Eingangsport 50i spezifiziert
wird. Der Eingangsport 50i übergibt dann Information darüber, wo
das Paket gespeichert ist, an die geeigneten Ausgangsports 56,
wie aus der Information bestimmt, die an dem Eingangsport 50i von
der Weiterleitungslogik 52 empfangen wird.
-
In
einer bevorzugten Ausführungsform
können
die geeigneten Ausgangsports keine Ausgangsports oder einen oder
mehrere Ausgangsports einschließen.
Der Ausgangsport 56i fordert Pakete von dem Paketmanager 54 an
und empfängt
diese und überträgt das Paket
an dessen zugehörigen
Netzelementport 38i, wenn die Bedingungen für eine Übertragung
erfüllt
sind. In den meisten Fällen
muss der Ausgangsport 56i seine MAC Adresse als die Quellenadresse
auf abgehenden Paketen platzieren. Wenn diese Situation durch die
Ergebnisse der Weiterleitungslogik 52, wie an den Eingangsport 50i übergeben,
vorgegeben wird, platziert der Eingangsport 50i eine derartige
Anzeige in dem Paketpufferspeicher 44. Der Ausgangsport 56i erfasst
diese Anzeige und ersetzt die Adresse, wenn das Paket den Ausgangsport 56i verlässt. Somit
sind nur geringfügige
Modifikationen an den Paketen auf der Ausgangsseite des Vermittlungselements 36 erforderlich.
-
Wenn
der Weiterleitungsspeicher 40, gemäß der obigen Ausführungsform, übereinstimmende
Einträge
für eine
Schicht 2 Vermittlung oder eine Schicht 3 Lenkung enthält, wird
das Mehrschicht-Netzelement 12 bei
einer Drahtgeschwindigkeit arbeiten. Eine Drahtgeschwindigkeit wird
durch die Geschwindigkeit bei der maximalen Paketrate bestimmt,
bei der eine gegebene Schicht 1 und Schicht 2 Kombination Pakete
transportieren können.
Wenn ein Element, welches mit einem Netz verbunden ist, Pakete so
schnell, wie sie in das Element eintreten, oder schneller verarbeiten
kann, dann arbeitet das Element bei der Drahtgeschwindigkeit.
-
In
einer bevorzugten Ausführungsform
verarbeitet das Netzelement 12 Pakete für ein Szenarium des schlechtesten
Falls eines stetigen Stroms von 64-Byte Paketen, die alle gleichzeitig
an den Eingangsports 50 eintreten. Wenn die Schicht 3 Information
in dem Weiterleitungsspeicher 40 nicht enthalten ist, dann
wird das Paket unter Verwendung der Schicht 2 Information weitergeleitet
und dann in Übereinstimmung
mit einer herkömmlichen
Schicht 3 Verarbeitung durch Software in dem Prozessor 32 verarbeitet.
-
Im
Gegensatz zu einer herkömmlichen Schicht
3 Verarbeitung kann der Prozessor 32 den Weiterleitungsspeicher 40 durch
Anordnen von neuen Schicht 3 Einträgen, sowie sie gelernt und
erzeugt werden, aktualisieren. Irgendwelche Pakete, die mit den
neuen Einträgen übereinstimmen,
werden bei der Drahtgeschwindigkeit weitergeleitet, d. h. Weiterleitungsentscheidungen
werden für
ein Paket getroffen, bevor das nächste
Paket ankommt.
-
Während die
Diskussion dieser Erfindung unter Verwendung der Schicht 2 und einer
Kombination von Schichten 3 und 4 beschrieben wird, würde ein
Durchschnittsfachmann in dem technischen Gebiet erkennen, dass ein
Suchen auf und ein Erzeugen von Einträgen in dem Weiterleitungsspeicher 40 für irgendeinen
Abschnitt eines Pakets oder des Header oder irgendeine Kombination
davon leicht aus der Beschreibung folgt. Somit ist die Erfindung
nicht auf irgendeine spezifische Implementierung von Schichten in Übereinstimmung
mit dem ISO Standard beschränkt.
-
4 zeigt
die Weiterleitungslogik 52 mit näheren Einzelheiten. Die Weiterleitungslogik 52 umfasst
die Klassenlogik 60, und die Schicht 2 (L2) Logik 62,
die Schicht 3 (L3) Logik 64 und die Zusammenfassungslogik 66.
Der Eingangsport 50i verbindet die Klassenlogik 60,
die L2 Logik 62, die L3 Logik 64 und die Zusammenfassungslogik 66.
Zur Vereinfachung ist nur ein Eingangsport 50i gezeigt,
obwohl alle Eingangsports 50 in einer ähnlichen Weise verbunden sind.
Vorzugsweise wird die Weiterleitungslogik 52 nicht für jeden
Eingangsport 50i dupliziert. Anstelle davon stehen sämtliche
Eingangsports 50 zum Zugriff auf die Weiterleitungslogik 52 im
Wettbewerb.
-
Die
L2 Logik 62 ist mit dem Weiterleitungsspeicher 40 verbunden
und ist zur Erzeugung eines Schlüssels
zum Vergleich mit den Einträgen,
die in den Weiterleitungsspeicher 40 für Schicht 2 Weiterleitungs-Entscheidungen
gespeichert sind, verantwortlich. In Abhängigkeit von der Konfiguration
des Weiterleitungsspeichers 40 kann der Schlüssel auf alle
oder einige der Einträge
des Weiterleitungsspeichers 40 angewendet werden.
-
Während eines
Betriebs empfängt
der Eingangsport 50i ein Paket von dem Mehrschicht-Netzelementport 38i und
sendet den Header plus den Identifizierer des Eingangsports 50i an
die Weiterleitungslogik 52. Die Weiterleitungslogik 52 durchsucht zunächst den
Weiterleitungsspeicher 40, um zu bestimmen, ob der Weiterleitungsspeicher 40 einen Eintrag
für die
Schicht 2 Quelle, die das Paket sendet, enthält. Ein übereinstimmender Eintrag wird existieren,
wenn das Mehrschicht-Netzelement 12 ein Paket von der gleichen
Schicht 2 Quelle vorher empfangen hat und gelernt hat, mit welchem
Port es verbunden ist. Wenn kein übereinstimmender Eintrag existiert
führt die
Weiterleitungslogik 52 eine Lernfunktion aus, indem ein
Eintrag in dem Weiterleitungsspeicher 40 mit der Quellenadresse
platziert wird. Die Weiterleitungslogik 52 signalisiert
dem Prozessor 32, dass sie eine neue Quellenadresse gelernt
hat. In einigen Fällen
wird die Schicht 2 Quelle in dem Weiterleitungsspeicher 40 existieren,
wird aber mit einem anderen Eingangsport 50i als dem Eingangsport 50i des
ankommenden Pakets in Verbindung gebracht werden. In diesem Fall
wird kein übereinstimmender
Eintrag in dem Weiterleitungsspeicher 40 existieren, weil
eine Übereinstimmung sowohl
von der Schicht 2 Quelle als auch dem Eingangsport 50i abhängt.
-
Die
Weiterleitungslogik 52 durchsucht den Weiterleitungsspeicher 40 auch
nach einem Eintrag, der den Port der Zieladresse anzeigt. Wenn keine Übereinstimmung
gefunden wird, dann weist die Weiterleitungslogik 52 den
Eingangsport 50i an, die Pakete an sämtliche aktiven Ausgangsports 56 zu
fluten.
-
Für die Schicht
2 Information, die voranstehend in der bevorzugten Ausführungsform
beschrieben wurde, enthält
der Weiterleitungsspeicher 40 die Werte der MAC Adressen
der Quellen und einen Zeiger auf einen entsprechenden Eintrag im
zugehörigen
Speicher 42. Der Weiterleitungsspeicher 40 kann auch
eine zusätzliche
Schicht 2 Information, wie einen VLAN Identifizierer, enthalten,
wenn Pakete mit Kennungen verwendet werden. Der zugehörige Speicher 42 enthält mehr
Information über
seinen entsprechenden Eintrag in dem Weiterleitungsspeicher 40.
Die Schicht 2 Information in dem Weiterleitungsspeicher 40 ist
vorzugsweise auf die geringste Menge von Information beschränkt, die
erforderlich ist, um eine Schicht 2 Suche durchzuführen. In
einer Schicht 2 Suche ist diese Information vorzugsweise lediglich
die MAC Adresse und der Eingangsport 50i, aber der CAM
kann auch irgendeine Information enthalten, die sich auf eine Adressierung
mit Kennungen (tagged addressing) bezieht.
-
In
einer bevorzugten Ausführungsform
erlaubt der Weiterleitungsspeicher 40 Mehrfach-Übereinstimmungen für eine Schicht
2 Suche. Der Prozessor 32 stellt sicher, dass die Reihenfolge
der Einträge
derart ist, dass dann, wenn eine Adressen/Port-Kombination in dem
Weiterleitungsspeicher existiert, dieser Eintrag gewählt wird.
Wenn die bestimmte Quellen/Port-Kombination nicht gefunden wird,
dann kann eine Übereinstimmung
einschließlich
der VLAN Information auftreten, so dass irgendeine Schicht 2 Zielstellensuche
mit wenigstens einem bekannten VLAN oder einem unbekannten VLAN
Eintrag übereinstimmen
wird, wobei jeder davon die Ausgangsports 56 zum Fluten
in seinem jeweiligen Eintrag definiert.
-
Die
L3 Logik 64 ist mit dem Weiterleitungsspeicher 40 verbunden
und ist zum Erzeugen eines Schlüssels
zum Vergleich mit den Einträgen,
die in dem Weiterleitungsspeicher 40 für Schicht 3 Weiterleitungsentscheidungen
gespeichert sind, verantwortlich. Wie mit dem L2 Suchschlüssel kann
der L3 Schlüssel
auf alle oder einige der Einträge
des Weiterleitungsspeichers 40 angewendet werden.
-
Um
den Schlüssel
zu erzeugen verwendet die L3 Logik 64 Information von dem
Eingangsport 50i einschließlich des Paket-Headers und
eines Identifizierers des Eingangsports 50i, und Information
von der Klassenlogik 60. Die Zusammenfassungslogik 66 ist
mit der Klassenlogik 60, dem zugehörigen Speicher 42,
dem Paketspeicher-Manager 54 und dem Prozessor 32 verbunden.
Die Zusammenfassungslogik 66 verwendet Information von
der Klassenlogik 60 und Information, die von dem zugehörigen Speicher 42 ausgegeben
wird, um den Eingangsport 50i anzuweisen, was zu tun ist,
um das Paket in geeigneter Weise an dessen geeignete Zielstelle
(an dessen geeignete Zielstellen) weiterzuleiten. In einigen Fällen gibt
es keine geeignete Zielstelle und das Paket wird gelöscht. In
anderen Fällen wird
die Zusammenfassungslogik 66 dem Prozessor 32 signalisieren,
dass er irgendeine Aufgabe im Ansprechen auf das empfange Pakete
ausführen
muss.
-
Die
Schicht 3 Umschaltung (Vermittlung) ist, während sie komplexer ist, ähnlich zu
der Schicht 2 Umschaltung. Die Weiterleitungslogik 52 durchsucht den
Weiterleitungsspeicher 40 nach einem übereinstimmenden Eintrag mit
einem Schicht 3 Suchschlüssel,
der von der L3 Logik 64 erzeugt wird. Wenn eine Übereinstimmung
existiert, wird die Information in dem zugehörigen Speicher 42 von
der Zusammenfassungslogik 66 verwendet, um den Eingangsport 50i anzuweisen,
was mit dem Paket zu tun ist. Wenn die Suche keine Übereinstimmung
bereitstellt leitet das Vermittlungselement 36 das Paket
als eine Brücke
weiter und kann das gesamte Paket oder Abschnitte davon an den Prozessor 32 für eine weitere Verarbeitung übergeben.
Die L3 Logik 64 erzeugt den Suchschlüssel unter Verwendung von Information
von dem Paket-Header, dem Eingangsport 50i und der Klassenlogik 60.
-
Die
Klassenlogik 60 untersucht Information in dem Paket-Header,
um irgendeine Verkapselungsinformation zu bestimmen und um eine
Klasse für
die Schicht 3 Information zu bestimmen und ist mit näheren Einzellheiten
in 5 dargestellt. Die Klassenlogik 60 umfasst
die Verkapselungslogik 68 und die Klassenaktionslogik 70.
Jeder Eingangsport 50i ist sowohl mit der Verkapselungslogik 68 als
auch mit der Klassenaktionslogik 70 verbunden. Die Klassenaktionslogik 70 ist
mit der Verkapselungslogik 68, der L3 Logik 64 und
der Zusammenfassungslogik 66 verbunden.
-
Die
Verkapselungslogik 68 ist zum Untersuchen des Paket-Headers
und zum Bestimmen von irgendwelchen Versätzen (Offsets) in dem Header
für die
Schicht 3 und Schicht 4 Information, wenn erforderlich, verantwortlich.
Die Verkapselungslogik 68 umfasst Klassenfilter 72,
um irgendwelche Versätze in
das Paket hinein, um Stellen von relevanter Information zu identifizieren,
zu bestimmen. In einer bevorzugten Ausführungsform erkennt ein Filter 72 eine Implementierung
in Übereinstimmung
mit dem IEEE 802.3 Standard Ethernet Header, und ein anderes Filter 72 erkennt
eine Implementierung in Übereinstimmung
mit dem IEEE Standard 802.1q Tagged Ethernet Header, und noch ein
anderes erkennt eine LCC SNAP Verkapselung. Andere Verkapselungen würden Durchschnittsfachleuten
in dem technischen Gebiet leicht ersichtlich werden und könnten mit
zusätzlichen
Verkapselungsfiltern 72 implementiert werden. Die Verkapselungslogik 68 übergibt
Verkapselungs-Versätze
an die Klassenaktionslogik 70, sodass die Klassenaktionslogik 70 weiß, von wo
in dem Paket die geeignete Feldinformation zu ziehen ist.
-
Die
Klassenaktionslogik 70 bestimmt, zu welcher Klasse ein
Paket gehört.
Eine Klasse wird sowohl von der L2 als auch der L3 Logik verwendet, um
bei der Suche unterstützend
zu wirken und zu der Funktionalität des Mehrschicht-Netzelements 12 beizutragen.
Die L2 Logik 62 wendet eine einzelne Klasse auf sämtliche
Schicht 2 Suchvorgänge
an. Die Schicht 3 andererseits weist eine Vielzahl von programmierbaren
Klassen auf.
-
Die
Klassen helfen zur Definition eines Klassen-Typs und für jede Klasse,
welche Bytes von dem Paket-Header, die beim Erzeugen des Schicht
3 Suchschlüssels
von der L3 Logik 64 verwendet werden sollten, dessen Priorität, und eines
voreingestellten Klassenergebnisses, welches definiert, was passieren
sollte, wenn keine Schicht 3 Übereinstimmung in
dem Weiterleitungsspeicher 40 auftritt.
-
In
einer bevorzugten Ausführungsform
gibt es vier mögliche
Ergebnisse, wenn keine Übereinstimmung
auftritt. Zunächst
kann der Header an den Prozessor 32 gesendet werden. Dies
wird in Erwägung
gezogen, wenn die Möglichkeit
zum Identifizieren eines Schicht 3 Flusses existiert. Zweitens könnte das
gesamte Paket an dem Prozessor 32 kopiert werden. Dies
wird in Erwägung
gezogen, wenn anfänglich
eine unicast Route gesetzt wird oder, um einen Firewall Schutz durch
anfängliches
Untersuchen von bestimmten Routen oder Flüssen bereitzustellen oder wenn
es nicht bekannt ist, wo in dem Paket die benötigte Information existieren
kann, um Suchschlüssel
zu erzeugen. Als drittes werden Schicht 2 Ergebnisse zur Weiterleitung
verwendet. Als viertes wird das Paket gelöscht. Eine andere Aktion kann
in Abhängigkeit
von der Konfiguration des Netzes oder bei dem bestimmten Protokoll,
welches gerade verwendet wird, möglich
sein, so wie dies Durchschnittsfachleuten in dem technischen Gebiet leicht
ersichtlich sein würde.
-
Einige
der Kriterien, die die Klassen berücksichtigen können, können sein,
ob die Klasse Adressen-abhängig,
oder Adressen-unabhängig
angesehen wird. Eine Hinzufügung
eines Klassenidentifizierers erlaubt dem Vermittlungselement 36 auf
sich verändernde
Netzsituationen zu reagieren und vereinfacht stark die Organisation
und Speicherung von Information in dem Weiterleitungsspeicher 40.
-
Repräsentative
Beispiele von Adressen-unabhängigen
Klassen, die von der Klassenlogik 60 identifiziert werden
könnten,
umfassen: Address Resolution Protocol (Adressen Auflösungs-Protokoll; ARP);
Internet Group Management Protocol (Internet Gruppen-Management
Protokoll; IGMP; Reverse ARP (RARP); Group Address Registration
Protocol (Gruppen Adressen-Registrierungsprotokoll; GARP); Protocol
Independent Protocol (Protokoll-unabhängiges Protokoll; PIM); und
Reservation Protocol (Reservierungs-Protokoll; RSVP). Repräsentative
Beispiele von Adressen-abhängigen
Klassen umfassen: TCP Fluss; nicht-fragmentierter UDP Fluss; fragmentierter
UDP Fluss; Hardware-routbares IP; und IP Version 6. Natürlich könnten andere
Protokolle in ähnlicher
Weise erkannt werden.
-
Die
Klassenlogik 60 erzeugt ein eindeutiges Klassenergebnis
für jedes
ankommende Paket. Für ein
nicht erkanntes Protokoll wird die Klassenlogik 60 noch
ein Klassenergebnis erzeugen, aber dieses Klassenergebnis zeigt
ein nicht erkanntes Protokoll an und welche Aktionen für ein Paket
dieses Klassentyps stattfinden sollten.
-
Im
Allgemeinen sind Schicht 3 Flüsse
Adressen-abhängig
und werden Information über
lediglich eine einfache Klasse des Verkehrs hinaus enthalten. In
denjenigen Fällen,
wo zusätzlich
Information durch den Prozessor 32 in dem Weiterleitungsspeicher 40 abgelegt
worden ist, kann mehr als ein Eintrag für eine bestimmte Klasse in
dem Weiterleitungsspeicher 40 vorhanden sein. Der Prozessor 32 stellt
sicher, dass von den Einträgen,
die übereinstimmen, derjenige
verwendet wird, der der geeignetste ist. Unterschiedliche Klassen
können
unterschiedliche Kriterien dafür,
was die geeignetste Übereinstimmung ist,
in Abhängigkeit
von dem Typ von Paketen, die innerhalb einer bestimmten Klasse verkörpert sind, aufweisen.
Die Flexibilität,
die ermöglicht
wird, indem mehrere übereinstimmende
Einträge
in dem Weiterleitungsspeicher 40 vorhanden sind, wird weiter
dadurch verbessert, dass sichergestellt wird, dass die beste Übereinstimmung
für einen
bestimmten Fluss bereitgestellt wird und wegen dieses Merkmals werden
unterschiedliche Aktionen für
Pakete innerhalb des gleichen Typs von Klasse möglich sein.
-
In
der bevorzugten Ausführungsform
ordnet der Prozessor 32 die Schicht 3 Einträge um, wenn
er irgendeine neue Schicht 3 so platziert, dass die beste Übereinstimmung
für ein
bestimmtes Suchkriterium am frühesten
in dem Speicher auftritt. Durchschnittsfachleute in dem technischen
Gebiet werden viele unterschiedliche Implementierungen erkennen,
um das gleiche Ergebnis zu erzielen. In einer bevorzugten Ausführungsform
stellt der Prozessor 32 sicher, dass der Eintrag mit dem
längsten
potentiell übereinstimmenden
Schlüssel
innerhalb einer bestimmten Klasse die oberste oder früheste Stelle
in dem Speicher ist. Jedoch kann der Prozessor 32 einen
Eintrag auch über
dem längsten übereinstimmenden
Eintrag anordnen, sodass für
ein bestimmtes Verkehrsmuster die wichtigste Übereinstimmung eine sein kann, die
mit vielen Schlüsseln übereinstimmt.
Zum Beispiel wird ein Eintrag, der für eine bestimmte Klasse, auf
Grundlage eines Anwendungsports wie „http" und keiner anderen Information einen Übereinstimmung aufweist,
Vorrang gegenüber
Einträgen
haben, die mit mehr als lediglich der Schicht 4 Anwendung übereinstimmen
könnten.
Ein anderes Beispiel könnte
darin bestehen eine Übereinstimmung
mit einer bestimmten Quelle innerhalb eines Klassen-Typs zu erzwingen.
Dies könnte
auftreten, wenn der Betreiber unter Umständen wünscht Pakete, die von einem
bestimmten Server kommen, mit einer hohen Priorität, unabhängig von
der Zielstelle oder Schicht 4 Anwendung, zu versehen.
-
In
einer bevorzugten Ausführungsform
weist die Zusammenfassungslogik 66 den Eingangsport 50i an,
eine der folgenden Aktionen für
ein Paket durchzuführen:
das Paket zu filtern; das Paket auf der Schicht 2 weiterzuleiten;
das Paket als ein Schicht 3 Fluss weiterzuleiten; das Paket als
eine Schicht 3 Route zu verarbeiten; und das Paket als eine Multicast-Route
weiterzuleiten. Pakete, für
die die Zusammenfassungslogik 66 den Eingangsport 50i zur
Filterung anweist, sind diejenigen, die bestimmte Header-Information
einschließen,
von der bestimmt wird, dass sie nicht unterstützt wird. Beispiele von Klassen,
deren Pakete auf der Schicht 2 weitergeleitet werden könnten, würden einen
fragmentierten UDP Fluss und eine Klasse, die anzeigt, dass die
Header-Information unbekannt ist, einschließen. Ein fragmentiertes UDP
arbeitet unter Verwendung von Schicht 2 Information, weil nach dem ersten
Paket die fragmentierten Pakete nicht alle eine relevante Information
von der Schicht 4 Header-Information einschließen, UDP Ports zum Beispiel.
Eine Schicht 2 Weiterleitung würde
für Adressen-unabhängige Klassen
in Abhängigkeit
von der bestimmten Klasse optional sein.
-
Die
Zusammenfassungslogik 66 weist den Eingangsport 50i an
eine Schicht 3 Fluss-Information für TCP oder nicht-fragmentierte
UDP Flüsse
zu verwenden. Flüsse
sind diejenigen Pakete, die innerhalb des Unternetzes weitergeleitet
werden, an dem das Mehrschicht-Netzelement 12 angebracht
ist, und sie benötigen
keine Header-Modifikation bei der Weiterleitung. Routen sind andererseits
Pakete, die von Quellen außerhalb
des Unternetzes kommen und für Adressen über das
Unternetz hinaus bestimmt sind, sodass die Header-Information vor
der Weiterleitung durch das Mehrschicht-Netzelement 12 modifiziert werden
muss. In einer bevorzugten Ausführungsform kommen
Befehle zum Weiterleiten des Pakets als eine Schicht 3 Route von
der Zusammenfassungslogik 66, wenn die Klasse anzeigt,
dass das Paket von einem Klassen-Hardware-Routbaren IP ist. Mit
anderen Worten, die Zielstelle des ankommenden Pakets wird von der
Klassenlogik 60 des Mehrschicht-Netzelements 12 erkannt
und das Mehrschicht-Netzelement 12 muss dann das Paket
an die nächste Sprung-Zielstelle,
die durch Routing-Protokolle bestimmt wird, weiterleiten. Durchschnittsfachleute
in dem technischen Gebiet können
leicht aus der Erfindung andere Situationen erkennen, bei denen
ein derartiger Typ von Ergebnis gewünscht sein würde.
-
Ein
Merkmal der Erfindung ist die Fähigkeit Flüsse zu überbrücken, das
heißt
den Weiterleitungsspeicher zu verwenden, um Schicht 2 Pakete unter Verwendung
einer Schicht 3 Funktionalität
durch das Netzelement 12 schnell weiterzuleiten. Bestimmte Flüsse sind
besonders geeignet für
diesen Typ von Aktivität
und umfassen statische Flüsse,
selbst-erfassende Flüsse
und Flüsse,
die durch Reservierungsprotokolle wie RSVP aufgebaut werden. Statische Flüsse sind
diejenigen, die von dem Betreiber des Netzelements 12 vorher
aufgebaut werden, und definieren eine Schicht 3 Funktionalität für einen
gewählten
Schicht 2 Netzverkehr und sind nicht einer Alterung ausgesetzt.
Selbst-erfassende Flüsse
sind eine Funktion des Typs der Anwendung.
-
Zu
Anfang werden diese Flüsse
mit keiner Schicht 3 Funktionalität überbrückt, weil kein Schicht 3 Eintrag übereinstimmt.
Der Paket-Header wird an den Prozessor 32 für eine Untersuchung
gesendet. Der Prozessor 32 analysiert das Paket und bestimmt auf
Grundlage von programmierten Heuristiken, ob und wie ein Schicht
3 Eintrag in dem Weiterleitungsspeicher 42 für den Pakettyp
zu erzeugen ist. Zum Beispiel könnte
ein „ping" Paket einen Schicht
3 Fluss-Eintrag nicht gewähren,
weil es bestenfalls ein transientes Paket ist.
-
Protokolle
wie RSVP arbeiten, um bestimmte Dienstmerkmale des Netzes zu reservieren
und zu signalisieren, dass eine Anzahl von Paketen diesen gleichen
Pfad nehmen werden. In diesem Fall dient es der Anwendung unter
Verwendung des Reservierungsprotokolls, um eine Weiterleitung auf
der Schicht 2 vorzunehmen, aber eine Schicht 3 oder eine höhere Funktionalität wie eine
Priorität
hinzuzufügen,
um die erforderliche Dienstklasse durch das Mehrschicht-Netzelement 12 sicherzustellen.
-
6 zeigt
bevorzugte Ergebnisse, die durch die Zusammenfassungslogik 66 unter
Verwendung von Information von der Klassenlogik 60 und dem
zugehörigen
Speicher 42 erzeugt werden. Drei Ergebnisse werden gegenwärtig bevorzugt:
(1) Verbindung der Schicht 2 Weiterleitungsergebnisse; (2) Verwendung
der Schicht 3 Weiterleitungsergebnisse; und (3) Verwendung der Schicht
3 Ergebnisse, während
die Schicht 2 Topologie verwendet wird. In einigen Fällen kann
eine identifizierte Klasse vorhanden sein, aber kein übereinstimmender
Eintrag in dem Weiterleitungsspeicher 40, und in diesem
Fall werden die voreingestellten (Default) Aktionen für die Klasse
verwendet. Es sein darauf hingewiesen, dass die Verwendung der voreingestellten
Ergebnisse der Schicht 3 als ein Untersatz einer Verwendung von Schicht
3 Weiterleitungsergebnissen angesehen werden kann.
-
Voreingestellte
Ergebnisse können
für Pakete
eines Klassen-Typs eingestellt werden, um einen Schutz bereitzustellen,
wie derjenige, der von einer Firewall-Technologie bereitgestellt
wird. In einer Firewall-Anwendung würde das Mehrschicht-Netzelement 12 programmiert
werden, um irgendein Paket einer definierten Klasse an den Prozessor 32 für eine nachfolgende
Verarbeitung zu richten.
-
Wenn
die Klassenlogik 60, unter Bezugnahme auf 6,
bestimmt, dass es sich bei dem Paket um eine nicht erkannte Klasse
handelt (Schritt 112), dann wird an dem Paket unter Verwendung
der Schicht 2 Ergebnisse (Schritt 114) gearbeitet. Wenn die
Klasse des Pakets erkannt wird (Schritt 112) und der zugehörige Speicher 42 oder
die Klassenlogik 60 anzeigt, dass ein Schicht 2 Ergebnis
erzwungen werden sollte (Schritt 116), dann werden die
Schicht 2 Ergebnisse verwendet (Schritt 118), und zwar
unabhängig
von irgendeiner anderen Information.
-
Wenn
keine Schicht 2 Ergebnisse als Folge der Schicht 2 Suche erzwungen
werden (Schritt 116) und eine Übereinstimmung des Schicht
3 Schlüssels vorhanden
ist (Schritt 120), dann wird die Schicht 3 Information überprüft, um zu
bestimmen, ob die Schicht 3 Information eine Schicht 2 Port-Entscheidung
erzwingt (Schritt 122). Wenn die Schicht 3 Information
ein Schicht 2 Weiterleitungsergebnis erzwingt, dann wird der Ausgangsport
durch die Ergebnisse der Schicht 2 Suche bestimmt, jedoch werden irgendwelche
andere Informationen, die in Ergebnissen der Schicht 3 Suche gefunden
werden, angewendet (Schritt 124), wie QoS Faktoren. Wenn
die Schicht 3 Ergebnisse nicht eine Erzwingung eines Schicht 2 Weiterleitungsergebnisses
erfordern, dann werden die Schicht 3 Ergebnisse an den Eingangsport 50i übergeben
(Schritt 126). Wenn keine Schicht 3 Übereinstimmung im Schritt 120 vorhanden
ist, dann werden die voreingestellten Aktionen für die Klasse, die durch die
Klassenlogik 66 erzeugt wird, an den Eingangsport 50i übergeben
(Schritt 128). Es wird auch in Erwägung gezogen, dass ein Paket
an den Prozessor 32 gesendet wird, ohne durch den Eingangsport 50i an
irgendeinen Ausgangsport 56 weitergeleitet zu werden, wenn
eine voreingestellte Aktion der L3 Klasse verwendet wird.
-
Wenn
die Klasse erkannt wird und die Schicht 3 Suche mit einem Eintrag übereinstimmt, dann
leiten somit die Aktionen, die durch die Schicht 3 Suche definiert
werden, die Befehle an den Eingangsport 50i, obwohl dies
bedeuten könnte,
dass die Schicht 2 Ausgangsport-Ergebnisse verwendet werden. Wenn
nicht, wird das Paket unter Verwendung von Schicht 2 Ergebnissen
behandelt und das Paket oder der Header des Pakets könnte an
den Prozessor 32 für
eine nachfolgende Verarbeitung der Schicht 3 Information, wenn gewünscht, gesendet werden.
-
Wenn
die Information, die von dem zugehörigen Speicher 42 für eine Schicht
3 Übereinstimmung
herauskommt, ein Erzwingen eines Schicht 2 Ergebnisses anzeigt,
dann wird eine Paketweiterleitung unter Verwendung der Schicht 2
Ergebnisse durchgeführt,
aber irgendeine Information, die sich auf die Dienstqualität bezieht,
kann noch auf einer Schicht 2 Weiterleitungsentscheidung implementiert werden.
In dieser Weise kann das Mehrschicht-Netzelement 12 eine
zusätzliche
Funktionalität
oberhalb und über
normalen Schicht 2 Brücken
hinzufügen,
indem erlaubt wird, dass Dienstqualitäts-Faktoren auf eine Schicht
2 Überbrückung oder
ein Routing (eine Weglenkung) innerhalb des gleichen Unternetzes oder
VLANs angewendet wird.
-
Demzufolge
bietet der Eingangsport 50i an der Weiterleitungslogik 52 den
Header des empfangenen Pakets und dessen Port-Bezeichnung an. Der Ausgang
der Weiterleitungslogik 52 ist eine Funktion der Header-Information
und des Ankunftsports und zeigt an, ob der Eingangsport 50i dass
Paket in dem Paketpufferspeicher 44 in Zusammenwirkung
mit dem Paketspeicher-Manager 54 speichern sollte; ob irgendwelche
Prioritäten
mit dem Paket auf einem bestimmten Ausgangsport 56i assoziiert
werden sollten; und ob der Eingangsport 50i an dem Paket
irgendwelche Modifikationen durchführen sollte, wie eine Header-Ersetzung,
bevor das Paket an den Paketpufferspeicher 44 übergeben
wird. Somit muss ein Ausgangsport 56i nicht irgendwelche
Modifikationen an dem Header ausführen, außer dass dessen MAC Adresse
eingesetzt wird und eine neue Paket-Prüfsumme berechnet wird, wenn
zum Beispiel Unicast- oder Multicast-Pakete geroutet werden.
-
Die
Schicht 2 und Schicht 3 Information in dem Weiterleitungsspeicher 40 ist
unabhängig
voneinander, wie auf Suchvorgänge
angewendet, obwohl eine gewisse Information, die in einem Schicht 2
Eintrag enthalten ist, in einem Schicht 3 Eintrag dupliziert werden
könnte.
Zusätzlich
kann auch ein Schicht 3 Eintrag eine gewisse Schicht 4 Information enthalten,
wie die UDP oder TCP Ports. Durchschnittsfachleute in dem technischen
Gebiet werden leicht andere Merkmale erkennen, die durch Einbau von
anderer Information von anderen Header-Schichten oder dem Paketkörper hinzugefügt werden
könnten
und derartige werden so betrachtet, dass sie innerhalb des Umfangs
der Erfindung sind. Nachdem sowohl die Schicht 2 als auch die Schicht 3
Suche beendet ist bestimmt die Zusammenfassungslogik 66,
welche Aktionen der Eingangsport 50i an dem Paket durchführen sollte.
-
Irgendein
Schicht 2 Lernvorgang der Quellenadressen oder Änderungen, die als Folge einer Topologie-Änderung
auftreten könnten,
werden an den Prozessor 32 als Teil der Schicht 2 Quellen-Suche
kommuniziert. Wie voranstehend angegeben kann die Schicht 2 Information
Kennungs-Information (Tagged Information) wie diejenige, die zum
Unterstützen
von Information eines virtuellen LANs (VLANs) verwendet wird, einschließen. Wenn
und falls verwendet hilft die VLAN Information eine Schicht 2 Überflutung
an nur denjenigen Ports, die zu einem bestimmten VLAN oder einer
spezifischen Kennung gehören,
zu beschränken.
-
Jeder
Eintrag in dem zugehörigen
Speicher 42 kann eine Information enthalten, die sich auf
die folgenden Ergebnisse bezieht. Der Eintrag umfasst eine Anzeige
der Ausgangsports 56 für
das Paket, einschließlich
davon, ob das gesamte Paket oder Abschnitte davon an den Prozessor 32 gesendet
werden sollten. Der Eintrag erlaubt, dass mehr als ein Port 56i spezifiziert
wird, wenn dies erforderlich ist, um zum Beispiel eine Multicast-Adressierung
zum Beispiel zu unterstützen.
Der Eintrag umfasst auch eine Priorität für das Paket, die in die Anzahl
von Ausgangs-Warteschlangen abgebildet wird, die auf einem Ausgangsport 56 vorhanden
sein können.
Der Eintrag umfasst auch einen Anzeiger dafür, welche Ausgangsports 56 eine
Beste Anstrengung (Best Effort) beim Übertragen des Pakets verwenden
sollten. Eine Beste Anstrengung (Best Effort) impliziert, dass für die Übertragung
des Pakets oder die QoS keine Garantie bereitgestellt wird. Durchschnittsfachleute in
dem technischen Gebiet werden leicht erkennen, dass die Erfindung
genauso gut auch auf andere QoS gültig ist.
-
Der
Eintrag kann auch anzeigen, ob eine neue Kennung an einem abgehenden
Paket angebracht werden soll, zum Beispiel ob ein Routing (eine Weglenkung)
zwischen VLANs eine abgehende Kennung erfordert, die sich von der
ankommenden Kennung unterscheidet, und was diese Kennung sein sollte,
wenn erforderlich.
-
Der
Eintrag enthält
auch Information bezüglich
der Quellen- und Zielstellen-Alterung. Eine Quellenalterungs-Information
zeigt an, ob die Quelle aktiv ist oder nicht. In einer bevorzugten
Implementierung wird diese Information durch die Weiterleitungslogik 52 jedes
mal aktualisiert, wenn die Schicht 2 Quellenadresse als übereinstimmend
gefunden wird. Die Information wird in Übereinstimmung mit einer Adressen-Alterung
des IEEE Standards 802.1d Typs implementiert. Eine Zielstellung-Alterung
in dem Netzelement 12 zeigt an, welche Schicht 2 und Schicht
3 Einträge
aktiv sind. Die Information für
einen Eintrag wird jedes mal aktualisiert, wenn ein Eintrag als übereinstimmend
gefunden wird, entweder durch eine Schicht 2 Zielstellen-Suche oder
einen Schicht 3 Übereinstimmungs-Zyklus
für den
Eintrag.
-
Der
Eintrag sieht auch Vorkehrungen vor, ob Schicht 2 Ergebnisse für eine Weiterleitung
durch den Eingangsport 50i verwendet werden sollten. Wie voranstehend
erwähnt
kann die Schicht 2 Information für
einen Schicht 3 Eintrag erzwungen werden, aber zusätzlich zu
der Schicht 2 Weiterleitungsinformation kann eine Schicht 3 Funktionalität zu der
Schicht 2 Weiterleitung hinzugefügt
werden.
-
Der
Eintrag kann auch einen statischen Eintrag definieren. Ein statischer
Eintrag ist einem Schicht 2 Lernvorgang nicht ausgesetzt und wird
niemals gealtert.
-
Einträge für die Schicht
3 können
zusätzliche Information
umfassen. Der Eintrag kann anzeigen, dass nur die ersten 64 Bytes
des Pakets an den Prozessor 32 für eine nachfolgende Verarbeitung
gesendet werden sollten. Der Eintrag kann anzeigen, ob das Paket
ein Teil einer Multicast-Routing ist. Wenn dem so ist, dann sollte
der Ausgangsport 50i die Header-Prüfsumme dekrementieren, so dass
das Paket an die angezeigten Ausgangsports 56 weiterleiten, und
anzeigen, dass der Ausgangsport 56i die Schicht 2 Quellenadresse
des Pakets mit der MAC Adresse des Ausgangsports 56i ersetzen
muss. Andere Typen von Header-Modifikationen werden Durchschnittsfachleuten
in dem technischen Gebiet leicht ersichtlich sein, um ein geeignetes
Routing zu implementieren.
-
Der
Eintrag in dem zugehörigen
Speicher 42 kann auch die Zielstellen-Adresse des nächsten Sprungs
enthalten, die verwendet werden soll, um die ankommende Zielstelle
bei einem Unicast-Routing zu ersetzen. In einer Unicast-Route hätte das
ankommende Paket seine Zielstellen-Adresse als das Mehrschicht-Netzelement 12 gehabt.
-
Die
Zusammenfassungslogik 66 muss auf die Ergebnisse der Suchvorgänge des
Weiterleitungsspeichers 40, die durch die L2 Logik 62 und
die L3 Logik 64 durchgeführt werden, warten. In der
bevorzugten Ausführungsform
werden die Schicht 2 und Schicht 3 Information in dem gleichen Weiterleitungsspeicher 40 gespeichert,
jedoch könnten
sie in getrennten Speichern gespeichert werden. Wie voranstehend
angegeben hat die bevorzugte Ausführungsform den Weiterleitungsspeicher 40 auf
die Speicherung der Information begrenzt, die durch die L2 und L3
Logiken verwendet wird, die mit den Feldern des Schlüssels übereinstimmen,
um die Größe des Weiterleitungsspeichers
zu reduzieren. An sich speichert der zugehörige Speicher 42 zusätzliche
Information über
die Einträge.
Jeder Eintrag in dem Weiterleitungsspeicher 40 verweist
auf einen entsprechenden Eintrag in dem zugehörigen Speicher 42,
dessen Inhalte der zugehörige
Speicher 42 an der Zusammenfassungslogik 66 bereitstellt,
um ihre Weiterleitungsentscheidungen zu treffen.
-
7 zeigt
die Schritte, die in der Weiterleitungslogik 52 auftreten.
Während
die 7 die bevorzugte Ausführungsform des Betriebs der
Weiterleitungslogik 52 darstellt, werden Durchschnittsfachleute
in dem technischen Gebiet sofort andere äquivalente Vorgehensweisen
erkennen, um die gleiche Aufgabe zu erreichen. Eine Information
wird an der Weiterleitungslogik 52 von dem Eingangsport 50 empfangen
(Schritt 200). Auf einem Pfad bestimmt die L2 Logik 62 die
erforderliche Information für
eine Schicht 2 Suche und führt
die Suche an dem Weiterleitungsspeicher 40 aus (Schritt 202).
Die L2 Logik 62 und der Weiterleitungsspeicher 40 bestimmen
im Schritt 204, ob ein übereinstimmender
Eintrag für
die Quelle des Pakets vorhanden war (Schritt 204). Wenn
die Quellenadresse nicht in dem Weiterleitungsspeicher 40 ist,
dann wird die Quellenadresse gelernt (Schritt 206). Um
die Quellenadresse zu lernen stellen die L2 Logik 62 und
der Weiterleitungsspeicher 40 sicher, dass ein Eintrag
in dem Weiterleitungsspeicher platziert wird. Ein Signal wird an
den Prozessor 32 gesendet, um die neue Information zu untersuchen.
-
Wenn
die Quellenadresse bereits in dem Weiterleitungsspeicher 40 war
und mit dem Eingangsport 50 der Ankunft übereinstimmte,
dann versucht die L2 Logik 62 eine Übereinstimmung mit der Zielstellen-Adresse an dem Weiterleitungsspeicher 40 zu
finden (Schritt 208). Wenn die Quellenadresse nicht in
dem Weiterleitungsspeicher 40 war oder die Quellenadresse
in dem Speicher war, aber an einem anderen Port, dann wird die Kombination
der Quellenadresse und des Ports im Schritt 206 gelernt,
bevor eine Zielstellen-Suche
im Schritt 208 versucht wird.
-
In
dem anderen Pfad von dem Schritt 200 bestimmt die Klassenlogik 60 die
Klasse in dem Schritt 210. Nachdem die Klassenlogik 60 die
Klasse bestimmt hat und diese an die L3 Logik 62 weitergegeben
hat versucht die L3 Logik eine Übereinstimmung
mit dem Weiterleitungsspeicher für
den Schicht 3 Eintrag zu finden (Schritt 212).
-
Im
Schritt 214 verwendet die Weiterleitungslogik 66 Information
von der L2 Suche im Schritt 208, wenn dort eine war, kommt
die Klassenlogik von dem Schritt 210, und die Schicht 3
Suche kommt vom Schritt 212, um geeignete Weiterleitungsentscheidungen
auf Grundlage der Kriterien der 6 durchzuführen. Sobald
die Zusammenfassungslogik 66 die geeignete Weiterleitungsentscheidung
im Schritt 214 bestimmt hat, werden die Ergebnisse an den
Ausgangsport 50i übergeben
(Schritt 216).
-
7 zeigt
den Fluss, der zwei Pfade herunter fortschreitet. Weil die Schicht
2 und Schicht 3 Suchvorgänge
unabhängig
sind, kann alles außer
die tatsächliche
Speichersuche als Pipeline ausgeführt oder parallel erreicht
werden. In einer bevorzugten Implementierung kann die Verarbeitung
durch die Klassenlogik 60, die L2 Logik 62 und
die L3 Logik 64 in einer parallelen oder als Pipeline ausgeführten Weise
fortschreiten, außer
wenn Abhängigkeiten eine
derartige Aktion verhindern. Zum Beispiel fordert die L3 Logik 64,
dass der Ausgang der Klassenlogik 60 den Suchschlüssel für die Schicht
3 Suche erzeugt und die Zusammenfassungslogik 66 fordert, dass
die Schicht 2 und Schicht 3 Suchvorgänge beendet sind, um die Ergebnisse
in Übereinstimmung mit 6 zusammenzufassen.
-
In
einer anderen Ausführungsform
kann die L2 Information und die L3 Information jedoch in getrennten
Speichern sein. In diesem Fall können
die L2 und L3 Suchen gleichzeitig auftreten.
-
Nachdem
die Zusammenfassungslogik 66 die Aktionen für das Paket
bestimmt, führt
der Eingangsport 50i Schreibanfragen an dem Paketmanager 54 aus,
wenn das Paket nicht gefiltert werden oder fallen gelassen werden
soll. Das Paket muss nicht in seiner Gesamtheit empfangen werden,
bevor der Eingangsport 50i Schreibanforderungen an den Paketmanager 54 durchführt. Der
Eingangsport 50i übergibt
an den Paketmanager 54 die Adresse, wo der ankommende Abschnitt
des Pakets gespeichert werden soll, die Anzahl von Ausgangsports 56,
an die das Paket ausgegeben werden wird, die Priorität des Pakets,
und liefert dann die Zeiger (Pointer) an den geeigneten Ausgangsport
(an die geeigneten Ausgangsports) 56. Der Ausgangsport 50i empfängt Zeiger
auf freie Speicherstellen in dem Paketpufferspeicher 44,
wo das Paket abgelegt werden kann. Vorzugsweise hat der Eingangsport 50i einen
Zeiger von dem Paketpuffermanager 54 erhalten, bevor Schreibanfragen
durchgeführt
werden.
-
Der
Ausgangsport 56i speichert die Zeiger in Ausgangs-Warteschlangen
für Paketübertragungen. Wenn
eine Warteschlange einen Zeiger für eine Übertragung anbietet, dann fordert
der Ausgangsport 56i Inhalte, die an der Zeigeradresse
gespeichert sind, von dem Paketmanager 54 an und überträgt die Inhalte
von dem Mehrschicht-Netzelement 12 heraus auf dem entsprechenden
Netzelement-Port 38. Der Paketmanager 54 verfolgt,
ob alle Ausgangsports 56, die einen bestimmten Zeiger verwenden,
die Inhalte, die zu diesem Zeiger gehören, übertragen haben und wenn dem
so ist, wird der Speicherplatz für
eine zukünftige
Verwendung freigesetzt.
-
In
den bevorzugten Ausführungsformen
sind das Vermittlungselement 36 und alle Bestandteile davon
in Hardware implementiert. Ferner sind in der bevorzugten Ausführungsform
der Weiterleitungsspeicher 40 und der dazugehörige Speicher 42 in
Hardware implementiert.
-
In
einer alternativen bevorzugten Ausführungsform werden das Schaltelement 36 und
alle Bestandteile davon in Hardware auf einer anwendungsspezifischen
integrierten Schaltung (Application Spezific Integrated Circuit)
implementiert. Genauso wird erwogen, dass eine integrierte Schaltung
eine Hardware Implementierung des Schaltelements 36 und
irgendeine Kombination oder einen Abschnitt davon des Prozessors 32,
des Prozessorspeichers 34, des Weiterleitungsspeicher 40,
des zugehörigen
Speichers 42 und des Paketpuffer-Speichers 44 enthalten könnte.
-
Ein
Mehrschicht-Netzelement ist beschrieben worden, welches die Merkmale
einer schnellen Schicht 2 Brücken-Typ-Weiterleitung
kombiniert und dies mit der hinzugefügten Funktionalität der Schicht 3
Weglenkung (Routing) und der QoS Unterstützung kombiniert, um eine Vorrichtung
und ein Verfahren von deren Verwendung zu erzeugen, um vor dem Empfang
des nächsten
Pakets sowohl eine Schicht 2 und die meisten Schicht 3 Weiterleitungsentscheidungen
auszuführen.
-
Die
vorangehende Beschreibung der bevorzugten Ausführungsformen des Mehrschicht-Netzelements ist
nur für
Illustrations- und Beschreibungszwecke dargeboten worden. Es ist
nicht beabsichtigt, dass sie erschöpfend ist oder dass die Erfindung
auf die genaue offenbarte Ausbildung beschränkt wird, und Modifikationen
und Variationen sind im Hinblick auf die obigen Lehren möglich oder
können
aus der Umsetzung der Erfindung, so wie sie offenbart ist, gewonnen
werden. Die Ausführungsformen
wurden gewählt
und beschrieben, um die Prinzipien der Erfindung und ihre praktische
Anwendung zu erläutern, um
einem Durchschnittsfachmann in dem technischen Gebiet zu ermöglichen
die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen
Modifikationen zu verwenden, so wie sie für die bestimmte in Erwägung gezogene
Verwendung geeignet sind. Es ist beabsichtigt, dass der Umfang der Erfindung
durch die hier angehängten
Ansprüche und
deren Äquivalente
definiert ist.