-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung betrifft allgemein eine Vermittlungseinrichtung
in einem Datenkommunikationsnetzwerk zur Verteilung von Verarbeitungs-Operationen
und daher zur Verteilung der Last auf verschiedene Paket-Verarbeitungs-Elemente. Insbesondere
betrifft die Erfindung ein System und ein Verfahren zur Verteilung
von Paket-Verarbeitungs-Operationen
zwischen Eingangs- und Ausgangs-Prozessoren, um Last-Ungleichgewichte
zu minimieren.
-
HINTERGRUND
-
Die
Verteilung der Netzwerk-Verarbeitungs-Last innerhalb einer Netzwerkeinrichtung,
wie z. B. einem Router oder einer Vermittlungsanlage, ist üblicherweise
fest und wird im Wesentlichen durch die Architektur der Netzwerkeinrichtung
bestimmt. Abhängig
vom Hersteller werden zum Beispiel Weiterleitungs-Entscheidungen
und andere Paket-Verarbeitungen in allgemeinen vorher als entweder
am Eingang oder am Ausgang durchzuführen festgelegt. Als Folge
der inhärent
unsymmetrischen Verarbeitungs-Lasten und unsymmetrischen Verkehrmuster
ist die Netzwerk-Verarbeitungs-Last am Eingangspunkt selten gleich
der Netzwerk-Verarbeitungs-Last am Ausgangspunkt. Tatsächlich ist
das Missverhältnis
der Verarbeitungs-Last zwischen Eingang und Ausgang oft so groß, dass
es üblich
ist, dass ein Prozessor auf der einen Seite der Vermittlungsanlage
sehr viel zu arbeiten hat, während
ein Prozessor auf der anderen Seite der Vermittlungsanlage fast
ungenutzt bleibt.
-
Obwohl
einige Netzwerkeinrichtungen etwas Verarbeitungs-Last mit anderen
Netzwerkeinrichtungen teilen können,
um die Verarbeitungsleistung auf die verfügbaren Prozessoren aufzuteilen,
können
diese Verfahren die Paket-Verarbeitungs-Operationen nicht dynamisch ausgleichen,
weil: (a) Netzwerk-Verarbeitungs-Operationen
typischerweise durch fest verdrahtete anwendungsspezifische integrierte
Schaltkreise (ASIC) ausgeführt
werden, die bei sich wiederholenden Aufgaben sehr gut sind, aber
im Allgemeinen nicht über
die Intelligenz verfügen,
die Verteilung der Aufgaben dynamisch zu ändern; (b) Netzwerk-Cluster,
die eine verteilte Verarbeitung ausführen, konstruiert sind, einen
Satz von großen
und festen Aufgaben zu bearbeiten, aber relativ langsam und für die Paket-Verarbeitung ungeeignet
sind; und (c) die meisten Netzwerkeinrichtungen einfach zu groß dimensioniert
werden, um die größtmögliche Last
zu verarbeiten, wobei die zusätzliche, auf
Systemebene verschwendete Rechnerleistung nicht berücksichtigt
wird.
-
Es
besteht daher der Bedarf für
eine Netzwerk-Vermittlungseinrichtung,
die eine Überwachung
auf Ungleichgewichte der Paket-Verarbeitungs-Last durchführen kann
und die Last dynamisch auf die Eingangs- und Ausgangs-Prozessoren verteilen
kann, um das Ungleichgewicht zu minimieren.
-
Ein
weiterer Stand der Technik ist aus
US 2002/136202 bekannt.
-
ZUSAMMENFASSUNG
-
Die
Erfindung erreicht das oben angegeben und weitere Ziele durch die
Vermittlungseinrichtung aus Anspruch 1 und durch das Verfahren aus
Anspruch 6.
-
Die
Erfindung enthält
in der bevorzugten Ausführung
eine Vermittlungseinrichtung, die eine Vielzahl von Vermittlungsmodulen
enthält,
wobei jedes der Vermittlungsmodule mindestens einen externen Anschluss enthält, der
angepasst ist, ein Paket oder eine andere Protokoll-Daten-Einheit
(PDU) zu empfangen; einen Paket-Klassifizierer,
der angepasst ist, das Paket zu überprüfen und
auf der Grundlage einer oder mehrerer Paket-Eigenschaften eine oder
mehrere Paket-Verarbeitungs-Operationen zu erkennen, die auf das
Paket anzuwenden sind, und ein zweites Vermittlungsmodul aus der
Vielzahl der Vermittlungsmodule zu erkennen, an das das Paket weiterzuleiten
ist; eine Steuerung, die angepasst ist, jede der erkannten ein oder
mehreren Paket-Verarbeitungs-Operationen
auf einen ersten Satz von Paket-Verarbeitungs-Operationen
und einen zweiten Satz von Paket-Verarbeitungs-Operationen
zu verteilen, den ersten Satz von Paket-Verarbeitungs-Operationen
im Vermittlungsmodul auszuführen,
das den externen Anschluss enthält,
an dem das Paket empfangen wurde, und einen Befehl an das zweite
Vermittlungsmodul zu senden, der das zweite Vermittlungsmodul anweist,
den zweiten Satz von Paket-Verarbeitungs-Operationen auszuführen. Das
zweite Vermittlungsmodul ist wie jedes aus der Vielzahl von Vermittlungsmodulen
in der bevorzugten Ausführung
angepasst, den zweiten Satz von Paket-Verarbeitungs-Operationen als Reaktion
auf den Befehl auszuführen,
wonach das Paket vom externen Anschluss zu seinem Ziel-Knoten gesendet
werden kann.
-
In
der bevorzugten Ausführung
ist die Vermittlungseinrichtung ein Router, eine Bridge oder eine
Mehrebenen-Vermittlungsanlage,
während
die Paket-Verarbeitungs-Operationen
Paket-Weiterleitungs-Operationen sind, die zum Zweck der Vorbereitung
des Paketes für
die Übertragung
zum nächsten
Knoten in Richtung zu seinem Ziel-Knoten ausgeführt werden. Entsprechend der
bevorzugten Ausführung
sind Paket-Verarbeitungs-Operationen
in der Lage, seriell verteilt und entweder im Eingangs-Vermittlungsmodul
oder in einem Ausgangs-Vermittlungsmodul
aus der Vielzahl der Vermittlungsmodule ausgeführt zu werden. Die Paket-Verarbeitungs-Operationen werden
allgemein aus der Gruppe ausgewählt,
die aus folgendem besteht: Kopfinformations-Transformation, Tag-Pushing,
Tag-Popping, Dienstgüte, Gebührenerfassung
und Abrechnung, Multi-Protocol-Label-Switching-(MPLS)-Management,
Spanning-Tree-Operationen,
Authentifizierung, Zugangskontrolle, Lernen auf höheren Ebenen,
Alarm-Erzeugung, Anschluss-Spiegelung, Quellen-Lernen, Dienstklasse,
Farbmarkierung und Kombinationen daraus, sind aber nicht darauf
beschränkt.
-
In
der bevorzugten Ausführung
umfasst das Verfahren der Verteilung von Paket-Vermittlungs-Operationen
auf ein erstes Vermittlungsmodul und ein zweites Vermittlungsmodul
einer Vermittlungseinrichtung die Schritte des Empfangens eines
Paketes an einem externen Anschluss des ersten Vermittlungsmoduls;
des Bestimmens einer oder mehrerer Paket-Verarbeitungs-Operationen zur Anwendung
auf das Paket; des Verteilens jeder der einen oder mehreren Paket-Verarbeitungs-Operationen zwischen
einem ersten Satz von Paket-Verarbeitungs-Operationen
und einem zweiten Satz von Paket-Verarbeitungs-Operationen;
des Ausführens
des ersten Satzes von Paket-Verarbeitungs-Operationen im ersten
Vermittlungsmodul; und des Sendens eines Befehls zum zweiten Vermittlungsmodul,
um den zweiten Satz von Paket-Verarbeitungs-Operationen auszuführen. Das
Verfahren kann ferner den Schritt des Ausführens des zweiten Satzes von
Paket-Verarbeitungs-Operationen im zweiten Vermittlungsmodul als
Reaktion auf den Befehl umfassen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die
vorliegende Erfindung wird als Beispiel und nicht als Einschränkung in
den Figuren der begleitenden Zeichnungen erläutert, in denen:
-
1 ein
Funktions-Blockdiagramm einer Firmen-Vermittlungsanlage gemäß der bevorzugten
Ausführung
der vorliegenden Erfindung ist;
-
2 ein
Funktions-Blockdiagramm eines Vermittlungsmoduls der Firmen-Vermittlungsanlage
zur Durchführung
einer seriell verteilten Paket-Verarbeitung gemäß der bevorzugten Ausführung der
vorliegenden Erfindung ist;
-
3 ein
Funktions-Blockdiagramm der Datenbanken, die im lokalen Speicher
eines Vermittlungsmoduls gespeichert werden, gemäß der bevorzugten Ausführung der
vorliegenden Erfindung ist;
-
4 ein
Funktions-Blockdiagramm einer Steuerung der seriell verteilten Paket-Verarbeitung
(SDPP) gemäß der bevorzugten
Ausführung
der vorliegenden Erfindung ist;
-
5 eine
schematische Darstellung einer Kopfinformation zur Verteilung von
SDPP-Diensten auf Vermittlungsmodule gemäß der bevorzugten Ausführung der
vorliegenden Erfindung ist;
-
6 ein
Flussdiagramm des Verfahrens, mit dem ein Eingangs-Vermittlungsmodul
einen Eingangs-Datenfluss verarbeitet, gemäß der bevorzugten Ausführung der
vorliegenden Erfindung ist; und
-
7 ein
Flussdiagramm des Verfahrens, mit dem ein Ausgangs-Vermittlungsmodul
einen Ausgangs-Datenfluss verarbeitet, gemäß der bevorzugten Ausführung der
vorliegenden Erfindung ist.
-
DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNG
-
1 zeigt
ein Funktions-Blockdiagramm einer Firmen-Vermittlungsanlage. Die Firmen-Vermittlungsanlage 100 ist
einer aus einer Vielzahl von Knoten und anderer adressierbarer Einheiten,
die betriebsfähig
mit einem Datenkommunikationsnetz gekoppelt sind, das zum Beispiel
durch ein lokales Netz (LAN), ein Weitverkehrsnetz (WAN), ein Stadtnetz
(MAN), ein Internet-Protokoll-(IP)-Netzwerk,
das Internet oder eine Kombination daraus verkörpert wird.
-
Die
Firmen-Vermittlung 100 enthält vorzugsweise eine Vielzahl
von Vermittlungsmodulen 110–113, manchmal als
Blades bezeichnet, die sich in Steckplätzen der Rückwandplatine 152 befinden.
Jedes der Vermittlungsmodule 110–113 enthält ein oder
mehrere externe Anschlüsse 102,
von denen jeder betriebsfähig über eine
Kommunikationsverbindung (nicht gezeigt) mit einem anderen Knoten
im Datenkommunikationsnetz gekoppelt sein kann, sowie ein oder mehrere
interne Anschlüsse,
die jedes Vermittlungsmodul 110–113 betriebsfähig über einen
gemeinsam genutzten Koppelbaustein 150 mit jedem anderen
Vermittlungsmodul koppeln.
-
Ein
Vermittlungsmodul 110–113 umfasst
vorzugsweise mindestens einen Netzwerk-Prozessor (NP) 106,
der in der Lage ist, mindestens Schicht-2-(Datensicherungsschicht)-
und Schicht-3-(Netzwerk-Schicht)-Vermittlungsoperationen
auszuführen,
wie im OSI-Referenzmodell (Open Systems Interconnect) definiert,
aber nicht darauf beschränkt
ist. Ein mögliches
Schicht-2-Protokoll zur betriebsfähigen Kopplung der externen
Anschlüsse 102 mit
einer verdrahteten und/oder drahtlosen Kommunikationsverbindung
umfasst den Standard 802.3 des Institute of Electrical and Electronics
Engineers (IEEE), während
der Satz möglicher
Schicht-3-Protokolle Internet Protocol (IP) Version 4 umfasst, die
im Request for Comment (RFC) 791 der Internet Engineering
Task Force (IETF) definiert ist, und IP Version 6, die in IETF RFC
1883 definiert ist.
-
Zum
Zweck dieser Offenlegung werden Daten, die von einem externen Anschluss 102 in
ein Vermittlungsmodul 110–113 in Richtung zum
Koppelbaustein 150 fließen, hier als Eingangsdaten
bezeichnet, die Eingangs-PDUs enthalten. Das Vermittlungsmodul,
durch das Eingangsdaten laufen, wird als Eingangs-Vermittlungsmodul
bezeichnet. Im Gegensatz dazu werden Daten, die vom Koppelbaustein 150 zu
einem externen Anschluss 102 weg fließen, als Ausgangsdaten bezeichnet,
die Ausgangs-PDUs enthalten. Das Vermittlungsmodul, durch das Ausgangsdaten
laufen, wird als Ausgangs-Vermittlungsmodul bezeichnet. Jedes aus
der Vielzahl von Vermittlungsmodulen der bevorzugten Ausführung kann
sowohl als Eingangs- Vermittlungsmodul, als
auch als Ausgangs-Vermittlungsmodul zum Zweck der verschiedenen
Datenflüsse
dienen.
-
Die
Firmen-Vermittlung 100 enthält ferner einen zentralen Befehls-Prozessor
(CMM) 120 zur Verwaltung verschiedener System-Ressourcen,
einschließlich
Blockierungs-Überwachung
und Betriebs-Zuordnungen, die weiter unten detaillierter beschrieben
werden. In der bevorzugten Ausführung
ist der CMM 120 in einem aus der Vielzahl der Vermittlungsmodule 110–113 enthalten,
obwohl ein Fachmann erkennen wird, dass die im CMM ausgeführten Funktionen
von einer oder mehr Einheiten, die in der Rückwandplatine 152 enthalten sind,
oder in einem getrennten Management-Modul ausgeführt werden können.
-
2 zeigt
ein Funktions-Blockdiagramm eines Vermittlungsmoduls zur Durchführung einer
seriell verteilten Verarbeitung von PDU-Datenflüssen. Das Vermittlungsmodul 200 der
bevorzugten Ausführung,
das mit den Vermittlungsmodulen 110–113 übereinstimmt,
enthält
ein oder mehrere Netzwerk-Schnittstellenmodule
(NIMs) 104, einen oder mehrere Netzwerk-Prozessoren 106, ein Management-Modul 220 und
ein Koppelbaustein-Schnittstellenmodul 208. Jedes der NIMs 104 ist
betriebsfähig
mit einem oder mehreren externen Anschlüssen 102 verbunden,
um Eingangs-Datenverkehr zu empfangen und Ausgangs-Datenverkehr zu senden.
Die NIMs 104 enthalten vorzugsweise eine oder mehrere physikalische
Schnittstellen und Media-Accesss-Control-(MAC)-Schnittstellen,
die angepasst sind, PDUs, z. B. Ethernet-Rahmen, über Netzwerk-Kommunikations-Verbindungen (nicht
gezeigt) auszutauschen. Beim Empfang werden die Eingangs-PDUs von
der Vielzahl der NIMs 104 mittels ein oder mehrerer sehr
schneller serieller Datenbusse 206 zum Netzwerk-Prozessor 106 geleitet.
Der Netzwerk-Prozessor 106 klassifiziert vorzugsweise die
Eingangs-PDUs, führt
alle Weiterleitungs-Operationen aus, die am Eingang durchzuführen sind,
und stellt die PDUs in einen Eingangs-Warteschlangen- Speicher 248,
bis Bandbreite zur Verfügung
steht, um die PDU über
den Koppelbaustein 150 an den einen oder die mehreren Ausgangs-Blades
zu senden.
-
Bezüglich der
Ausgangs-Operationen ist das Vermittlungsmodul 200 auch
angepasst, Ausgangs-PDUs vom Koppelbaustein 150 zu empfangen
und diese PDUs im Ausgangs-Warteschlangen-Speicher 242 in
eine Warteschlange zu stellen. Der NP 106 des Vermittlungsmoduls 200 am
Ausgang kann eine oder mehrere zusätzliche Weiterleitungs-Operationen
durchführen,
die ihm zugeordnet sind, bevor die PDU an eine aus der Vielzahl
von Warteschlangen im Puffer 250 übergeben wird und zum geeigneten
NIM 104 und an den entsprechenden Ausgangs-Anschluss 102 gesendet
wird. Die Vielzahl der Warteschlangen im Puffer 250 wird
aktiv von einem Statistik-Manager 252 überwacht, der Blockierungs-Informationen 254 zusammenstellt und über das
Management-Modul 220 zum CMM 120 sendet. Die Blockierungs-Information 254,
die zum Beispiel die Warteschlangen-Tiefe umfasst, wird dazu benutzt,
die Ausgangs-Flüsse
zu charakterisieren, den Blockierungs-Zustand des Moduls zu bewerten
und Paket-Verarbeitungs-Operationen auf Eingangs- und Ausgangs-
Netzwerk-Prozessoren zu verteilen.
-
Das
Management-Modul 220 enthält im Allgemeinen einen Strategie-Manager 222,
der Verkehrs-Stategien speichert und implementiert, die von einem
Netzwerk-Verwalter über
einen Konfigurations-Manager 224 in das Vermittlungsmodul 200 geladen
werden. Die vom Strategie-Manager 222 erzeugten Strategien
basieren auch teilweise auf Adressierungs-Informationen der Schicht 2 und/oder
Schicht 3, die aus Quellen-Lern-Operationen abgeleitet werden, mit
denen PDU-Adressen-Informationen
einem externen Anschluss 102 zugeordnet werden, auf dem
sie empfangen wurden. Wie weiter unten detaillierter erläutert wird,
ist das Management-Modul 222 auch angepasst, Aktualisierungen 254 vom
CMM zum Netzwerk- Prozessor 106 zu übertragen,
so dass das Eingangs-Vermittlungsmodul 200 einige,
wenn nicht alle Paket-Verarbeitungs-Operationen am
Eingang ausführen
kann, bevor es die PDU an ein oder mehrere Downstream-Vermittlungsmodule
sendet. Die Aktualisierungen 254 enthalten die Daten, die
dazu benutzt werden, die Vielzahl von Datenbanken zu belegen, welche
die seriell verteilten Paket-Verarbeitungs-Operationen unterstützen, die
weiter unten detaillierter erläutert
werden.
-
Der
NP 106 der bevorzugten Ausführung ist angepasst, Schicht-2-Vermittlungsoperationen
und Schicht-3-Routing-Operationen unter Verwendung von PDU-Eigenschaften
durchzuführen,
die der Schicht 2 bis Schicht 7 zugeordnet sind, wie im OSI-Netzwerk-Referenzmodell definiert.
Der NP 106 enthält
vorzugsweise einen Klassifizierer 230, eine Steuerung zur
Verarbeitung seriell verteilter Pakete (SDPP) 236 und einen Warteschlangen-Manager 240.
Der Klassifizierer 230 empfängt Eingangs-PDUs vom Datenbus 206,
untersucht die PDUs auf ein oder mehrere interessierende Felder,
klassifiziert die PDUs in einen aus einer Vielzahl von Flüssen und
ruft Weiterleitungs-Information aus einer Weiterleitungs-Tabelle
ab, die in einem lokalen Speicher mit kurzer Zugriffszeit 232 gespeichert
ist. Die Weiterleitungs-Information enthält vorzugsweise eine Fluss-Kennung und eine
Ausgangs-Anschluss-Kennung, d. h. die Kennung eines externen Anschlusses,
von dem die PDU zu senden ist, ist aber nicht darauf beschränkt.
-
Die
vom Klassifizierer 230 abgerufene Weiterleitungs-Information wird
zur SDPP-Steuerung 236 gesendet, wo sie dazu benutzt wird,
einen ersten Satz von ein oder mehreren SDPP-Operationen zu bestimmen, die am Eingang
auszuführen
sind. Eine SDPP-Operation, wie hier benutzt, bezeichnet eine Paket-Verarbeitungs-Operation
oder eine andere Weiterleitungs-Operation,
die für
eine PDU, als Reaktion auf eine PDU, oder um die Übertragung
einer PDU zu erleichtern, von der Vermittlungseinrichtung 100 ausgeführt wird.
Das Eingangs-Vermittlungsmodul 200 oder
der CMM 120 können
auch einen zweiten Satz von SDPP-Operationen bestimmen, die im Ausgangs-Vermittlungsmodul
auszuführen
sind. Wie ein Fachmann erkennen wird, kann eine SDPP-Operation entweder
im Eingangs-Vermittlungsmodul
oder im Ausgangs-Vermittlungsmodul ausgeführt werden. Der Bereich möglicher
SDPP-Dienste wird detaillierter in Verbindung mit 5 erläutert.
-
Im
Allgemeinen kann das Eingangs-Vermittlungsmodul 200 alle,
einige oder keine der SDPP-Operationen im Eingangs-Vermittlungsmodul
ausführen.
Alle SDPP-Operationen, die für
die PDU ausgeführt
werden, aber nicht im Eingangs-Vermittlungsmodul 200 ausgeführt werden,
werden im Ausgangs-Vermittlungsmodul vor
der Übertragung
der PDU von der Vermittlungseinrichtung 100 ausgeführt.
-
Die
Verteilung von SDPP-Operationen zwischen dem ersten Satz von ein
oder mehreren SDPP-Diensten, die auf den Eingang angewendet werden,
und einem zweiten Satz von SDPP-Diensten, die am Ausgangs-Vermittlungsmodul
auszuführen
sind, wird dynamisch auf der Grundlage von Paketen oder pro Datenfluss
bestimmt.
-
In
der bevorzugten Ausführung
wird die Zuordnung der am Eingang auszuführenden SDPP-Dienste als Funktion
der Fluss-Kennung
und des Blockierungs-Status der Eingangs- und Ausgangs-Vermittlungsmodule
bestimmt. In manchen Ausführungen
wird der Blockierungs-Status der Eingangs- und Ausgangs-Vermittlungsmodule
regelmäßig vom
CMM 120 erstellt und an jedes Vermittlungsmodul gemeldet,
so dass jedes der Vermittlungsmodule dynamisch die vorteilhafteste
Verteilung von SDPP-Diensten bestimmen kann. In anderen Ausführungen
wird die optimale Verteilung von SDPP-Operationen vom CMM 120 bestimmt,
in jedes aus der Vielzahl der Vermittlungsmodule 110–113 geladen
und in Form einer SDPP-Zuordnungs-Tabelle 238 im lokalen
Speicher 232 gespeichert, wie in 3 in Verbindung
mit verschiedenen gemeinsam genutzten Datenbanken gezeigt, die im
Folgenden detaillierter erläutert
werden.
-
Diese
SDPP-Zuordnungs-Tabelle 238 kann zum Beispiel explizit
die Zuordnung von SDPP-Diensten für jedes Paar von Eingangs- und Ausgangs-Vermittlungsmodulen
definieren, zum Beispiel auf der Grundlage der Flüsse oder
pro Paket. Die SDPP-Zuordnungs-Tabelle
kann in regelmäßigen Zeitabständen aktualisiert werden,
einmal oder mehrmals pro Sekunde, um die sich ändernden Verkehrsmuster und
Last-Ungleichgewichte innerhalb der Blades widerzuspiegeln.
-
Die
SDPP-Dienste werden in der bevorzugten Ausführung abhängig vom relativen Blockierungszustand
der Eingangs- und Ausgangs-Vermittlungsmodule
auf den Eingang und den Ausgang aufgeteilt. Insbesondere sind die
SDPP-Verteilungen so gestaltet, dass die Verarbeitungs-Last vom
Vermittlungsmodul mit einem überlasteten
NP zum Modul mit einem unterbelasteten NP verschoben wird. Das Ziel
der Verteilung von SDPP-Diensten ist es daher, den Verbrauch von
Verarbeitungs-Ressourcen in der Vermittlungseinrichtung 100 gleichmäßig zu verteilen
und somit die Wahrscheinlichkeit zu minimieren, dass eines der Vermittlungsmodule 200 PDUs
durch zu hohe Verkehrsbelastung verwerfen muss. Indem die Verteilung
der Verarbeitungs-Last optimiert wird, kann die Vermittlungseinrichtung 100 einen überproportional
hohen Verkehr aufnehmen, der an bestimmten Anschlüssen auftreten
kann, wie z. B. an dem Anschluss, an dem ein Client angeschlossen
ist, oder zum Beispiel an dem Anschluss, der einen Gateway zum Internet
bereitstellt, ohne dass alle Vermittlungsmodule zu groß dimensioniert
werden müssen.
-
4 zeigt
ein Funktions-Blockdiagramm einer SDPP-Steuerung der bevorzugten
Ausführung.
Die SDPP-Steuerung 236 enthält einen Eingangs-NP-Prozessor 410 und
einen Ausgangs-Prozess 420, der in einem oder mehreren
der Hardware- oder Software-Rechenelemente
enthalten ist, die SDPP-Zuordnungs-Tabelle 238 und ein
oder mehrere Module, die angepasst sind, einzelne SDPP-Dienste 430 auszuführen. Der Eingangs-NP-Prozessor 410 ist
angepasst, die Eingangs-PDU 460 und die Fluss-Kennung 462 vom
Klassifizierer 230 zu empfangen und die SDPP-Zuordnungs-Tabelle 238 auf
die SDPP-Zuweisung abzufragen, die auf das einzelne Paket oder den
Fluss anwendbar ist. In der bevorzugten Ausführung wird die Verteilung des
SDPP-Dienstes, der den Eingangs- und Ausgangs-Vermittlungsmodulen
zugeordnet ist, durch eine SDPP-Kennung angezeigt, die weiter unten
detailliert erläutert
wird. Die PDU wird anschließend
im Eingangs-Vermittlungsmodul 200 entsprechend dem ersten
Satz von SDPP-Diensten aus der kompletten Auswahl an SDPP-Diensten 430 verarbeitet.
-
Die
PDU 464 und die SDPP-Kennung 466 werden dann an
das Ausgangs-Vermittlungsmodul gesendet, um das Ausgangs-Vermittlungsmodul
anzuweisen, den zweiten Satz von SDPP-Diensten 430 auszuführen, der
dem Ausgangs-Vermittlungsmodul zugeordnet ist. In der bevorzugten
Ausführung
wird die SDPP-Kennung 466 durch
den Betriebs-SDPP-Tag-Generator 412 an die PDU oder einen
PDU-Deskriptor angehängt, bevor
sie zum Koppelbaustein 150 gesendet wird. In anderen Ausführungen
kann die SDPP ID zum Beispiel über
einen Außerband-Kommunikationskanal
gesendet werden.
-
Bei
Empfang einer PDU 470 oder ihres Deskriptors am Ausgangs-Vermittlungsmodul
entfernt der Ausgangs-Prozessor 420 des Ausgangs-Vermittlungsmoduls
die SDPP-Kennung 472, der SDPP-Tag-Leser 422 bestimmt die
SDPP-Dienste, die von der SDPP-Kennung
spezifiziert werden, indem er die SDPP-Zuordnungs- Tabelle 238 abfragt,
und das Ausgangs-Vermittlungsmodul führt den zweiten Satz von SDPP-Diensten 430 aus,
der benötigt
wird, um die Weiterleitungs-Operationen auszuführen, die erforderlich sind,
die PDU 476 in Richtung zum endgültigern Ziel zu übertragen.
-
In
der bevorzugten Ausführung
enthält
die Liste der SDPP-Dienste 430 zum
Beispiel die folgenden Weiterleitungs-Operationen: Kopfinformations-Transformation,
Tag-Pushing, Tag-Popping, Dienstgüte, Gebührenerfassung und Abrechnung,
Multi-Protocol-Label-Switching-(MPLS)-Management, Spanning-Tree-Operationen,
Authentifizierung, Zugangskontrolle, Lernen auf höheren Ebenen,
Alarm-Erzeugung, Anschluss-Spiegelung, Quellen-Lernen, Dienstklasse,
und Farbmarkierung und Überwachung
und Formung, ist aber nicht darauf beschränkt.
-
Kopfinformations-Transformations-Dienste 431 umfassen
im Allgemeinen die folgenden Schritte: (a) Abruf der Adresse der
nächsten
Teilstrecke einer PDU, welche die physikalische Adresse des nächsten Knotens
auf dem Pfad zum endgültigen
Ziel spezifiziert, (b) Einkapselung der PDU mit einer Kopfinformation,
die eine Quell-Adresse enthält,
die gleich der physikalischen Adresse der Vermittlungseinrichtung 100 oder
des Ausgangs-Vermittlungsmoduls ist, sowie eine Zieladresse, die
gleich der physikalischen Adresse der nächsten Teilstrecke auf dem
Pfad zum endgültigen
Ziel ist; und (c) Dekrementieren des Lebenszeit-Zählers von
zum Beispiel IP-Paketen. Die Adresse der nächsten Teilstrecke kann aus
der Weiterleitungs-Tabelle 302 des lokalen Speichers 232 (siehe 3)
entweder des Eingangs- oder des Ausgangs-Vermittlungsmoduls abgerufen werden,
vorausgesetzt die darin enthaltene Adressierungs-Information wird
ausgetauscht oder die Tabellen werden zum Beispiel vom CMM 120 regelmäßig synchronisiert.
-
VLAN-Tag-Pushing-Dienste 432 umfassen
im Allgemeinen die Schritte (a) der Erkennung einer oder mehrerer
VLAN-Kennungen (VIDs) auf der Grundlage von PDU-Eigenschaften, einschließlich zum
Beispiel der PDU-Quell-MAC-Adresse, der Ziel-MAC-Adresse, des Protokolls
und des Eingangs-Anschlusses; und (b) Einkapselung der PDU mit ein
oder mehreren VLAN-Tags. Die geeigneten Tags müssen aus einer VLAN-Zuordnungs-Tabelle 304 im
lokalen Speicher 232 (siehe 3) abgerufen
werden, die dazu benutzt wird, eine VID zum Beispiel auf der Grundlage
einer oder mehrerer PDU-Eigenschaften nachzuschlagen. VLAN-Tag-Pushing-Dienste
können
entweder im Eingangs- oder Ausgangs-Vermittlungsmodul ausgeführt werden,
wenn die VLAN-Zuordnungs-Tabelle 304,
die zum Beispiel vom Netzwerk-Verwalter
definiert wird, verteilt wurde oder auf andere Weise zwischen jedem
aus der Vielzahl von Vermittlungsmodulen 110–113 der
Vermittlungsanlage 100 synchronisiert wurde.
-
VLAN-Tag-Popping-Dienste 433 umfassen
den Schritt des Entfernens eines oder mehrerer VLAN-Tags aus den
PDUs, zum Beispiel wenn die Vermittlungsanlage 100 die
vorletzte Teilstrecke ist, oder beim Übergang der PDU von einem öffentlichen
Netzwerk in den nicht mit Tags versehenen Bereich eines privaten
Netzwerks. Wie bei den oben erwähnten
VLAN-Tag-Pushing-Diensten 432 werden
die in der VLAN-Zuordnungs-Tabelle 304 enthaltenen VLAN-Popping-Regeln
auf die Vielzahl von Vermittlungsmodulen 110–113 verteilt
oder auf andere Weise gemeinsam genutzt.
-
Dienstgüte-Operationen
(Quality of Service, QoS) 434 umfassen die Prozeduren zur
Reservierung von Netzwerk-Ressourcen, einschließlich zum Beispiel Speicher
und Bandbreite, unter Verwendung eines Sitzungs-Aufbau-Mechanismus,
wie zum Beispiel des Resource Reservation Protocol (RSVP). QoS-Operationen 434 umfassen
auch die Implementation von Integrated Services oder Differentiated
Services oder beides. Bezüglich
Differentiated Services können
verschiedene Operationen entweder am Eingangs- oder Ausgangs-Vermittlungsmodul ausgeführt werden,
wobei diese Operationen Prioritäts-Markierung,
Paket-Überwachung,
Warteschlangenbildung und Scheduling-Operationen umfassen, aber
nicht darauf beschränkt
sind. Die Implementation von Differentiated Services (DiffServ)
kann auch die Erkennung von Dienstklassen umfassen, die den verschiedenen
Datenflüssen
zugeordnet sind, und die Zuordnung dieser Datenflüsse zu einem
aus der Vielzahl von Tunneln, die dazu vorgesehen sind, den Verkehr
einer der Dienstklassen zu übertragen.
Die verschiedenen Dienstklassen-Tunnel sind vorzugsweise MPLS-Tunnel, die verschiedenen
IP-Kopfinformationen zugeordnet sind, die zur Einkapselung der PDUs
verwendet werden, die eine schon existierende IP-Kopfinformation
enthalten kann oder nicht, wenn die PDU in einen Tunnel eintritt.
In der bevorzugten Ausführung
können
die PDUs sowohl vom Eingangs-, als auch vom Ausgangs-Vermittlungsmodul
einem aus einer Vielzahl von MPLS-Tunneln zugeordnet werden, wozu
Prozeduren verwendet werden, die in den DiffServ-Modellen vorgeschrieben
sind, einschließlich
derer, die im Request for Comment (RFC) 2474 und RFC 2475 der Internet Engineering
Task Force (IETF) angegeben sind, die beide hier als Referenz mit
aufgenommen werden.
-
Gebührenerfassungs-
und Abrechnungs-Dienste 435 umfassen vorzugsweise die Schritte:
(a) Erkennen von Teilnehmerverkehrs-Datenflüssen auf der Grundlage von
PDU-Eigenschaften; (b) Erkennen der Art oder des Charakters der
erbrachten Dienste; und (c) Erzeugen von aufsummierten Gebühren auf
der Grundlage dieser Dienste pro Teilnehmer und/oder pro Datenfluss.
Die Erkennung und Nachverfolgung von Gebühren kann entweder vom Eingangs-
oder vom Ausgangs-Vermittlungsmodul durchgeführt werden, das Zugang zur
lokalen Gebührenerfassungs-
und Abrechnungs-Datenbank 306 im Speicher 232 (siehe 3)
hat, vorausgesetzt die Information wird regelmäßig zwischen der Vielzahl von
Vermittlungsmodulen oder den lokalen Gebührenerfassungs- und Abrechnungs-Datenbanken 306 und
der Vielzahl von Vermittlungsmodulen 110–113 ausgetauscht,
zum Beispiel synchronisiert durch den CMM 120.
-
MPLS-Management-Dienste 436 umfassen
vorzugsweise Prozeduren für:
(a) Austausch von MPLS-Bindungs-Nachrichten mit benachbarten Label-Switching-Routern
(LSRs), wozu sitzungsorientierte Protokolle verwendet werden, wie
zum Beispiel RSVP-verwandte Protokolle, Session Initiation Protocol
(SIP) oder Label Distribution Protocol (LDP); (b) Festellen, ob
Nicht-MPLS-Pakete in einen MPLS-Bereich weiterzuleiten sind; (c)
Feststellen, ob Nicht-MPLS-PDUs Mitglieder einer Forwarding Equivalancy
Class (FEC) sind; (d) Anwenden eines MPLS-Labels auf die PDUs, die
Mitglieder einer FEC sind; (e) Feststellen, ob das Vermittlungsmodul
die vorletzte Teilstrecke für
PDUs aus dem MPLS-Bereich ist und Entfernen der MPLS-Labels, falls erforderlich;
und (f) Fragmentieren der MPLS-Pakete, welche die maximale Byte-Grenze
der Kommunikationsverbindungen überschreiten.
Die zur Verwaltung der Implementation der MPLS-Dienste benötigten Daten – die Kriterien
umfassen, die dazu benutzt werden, zu bestimmen, welche FEC welcher
PDU ein Mitglied ist, den anzuwendenden Label und die Adresse der
nächsten
Teilstrecke – werden
zentral vom CMM verwaltet und an die Vielzahl von Vermittlungsmodulen
verteilt, um eine Ausführung
sowohl am Eingang als auch am Ausgang zu ermöglichen.
-
Spanning-Tree-Dienste 437 umfassen
im Allgemeinen die Verfahren zur Erzeugung von Spanning Trees, die
benötigt
werden, um die Schleifen zu unterbrechen, die für Rundsende-Überlasten
sorgen. Bezogen auf das Netzwerk ist die Firmen-Vermittlungsanlage 100 angepasst,
Bridge Protocol Data Units (BPDUs) mit anderen Knoten im Netzwerk
auszutauschen. Die BPDUs werden in der Firmen-Vermittlungsanlage 100 zum Beispiel benutzt,
um eine Root-Bridge zu wählen
und die kürzeste
Entfernung zur Root-Bridge zu bestimmen. Die Reaktion auf die BPUs
von anderen Vermittlungsanlagen kann es erfordern, dass die Vermittlungsmodule der
Vermittlungsanlage 100 Zugriff auf eine einzige gemeinsam
genutzte Datenbank haben oder lokale Kopien der gemeinsam genutzten
Spanning-Tree-Datenbank 308 speichern (3),
einschließlich
einer Liste benachbarter Bridges und der Anschlüsse, über die sie erreichbar sind.
In der bevorzugten Ausführung
wird der Spanning Tree vom CMM 120 erzeugt und regelmäßig in jedes
der Vermittlungsmodule 110–113 geladen.
-
Jedes
der Vermittlungsmodule 110–113 ist in der bevorzugten
Ausführung
ferner angepasst, die Übertragung
von BPDUs und das Rundsenden von Paketen zwischen verschiedenen
Vermittlungsmodulen oder Anschlüssen
der Vermittlungsmodule zu verhindern, wodurch sich sonst Rundsende-Überlasten
ergeben würden.
Als solches implementiert jedes der Vermittlungsmodule 110–113 eine
Light-Version des Spanning-Tree-Protokolls, das dazu benutzt wird,
zu erkennen, welches der Vermittlungsmodule sich in seinem Rundsende-Bereich
befindet und daher in der Lage ist, eine Übertragung ohne eine Rundsende-Überlastung zu
empfangen. Nachdem die Vermittlungsmodule im Rundsende-Bereich erkannt
wurden, dupliziert das Vermittlungsmodul im Allgemeinen die BPDU
und sendet sie zu jedem der erkannten Vermittlungsmodule. In der bevorzugten
Ausführung
kann der Prozess des Kopierens der BPDUs und des Sendens dieser
BPDUs an andere Vermittlungsmodule vom Eingangs-Vermittlungsmodul
zum Ausgangs-Vermittlungsmodul delegiert werden, wenn das Ausgangs-Vermittlungsmodul
sich im selben Rundsende-Bereich befindet. Ein bedeutender Faktor,
der vorgibt, wo das Kopieren der BPDUs stattfinden sollte, ist die
Verfügbarkeit
von Pufferspeicherplatz in den Eingangs- und Ausgangs-Vermittlungsmodulen.
-
Authentifizierungs-Dienste 438 umfassen
Prozeduren, um festzustellen, welchen PDUs Zugang gewährt werden
soll und den Grad des Zugangs, der bei Genehmigung bereitgestellt
wird. In der bevorzugten Ausführung
ist jedes der Vermittlungsmodule angepasst, eine Zugangskontroll-Liste
(ACL) abzufragen, die dazu benutzt wird, festzustellen, ob eine
empfangene PDU an ihre Zieladresse zu senden ist oder gefiltert
werden muss. Die ACL in der bevorzugten Ausführung regelt den Zugriff auf
der Grundlage einer oder mehrerer PDU-Eigenschaften, vorzugsweise
Eigenschaften der Schicht 2 und der Schicht 3, einschließlich Quell-
und Zieladresse, Rundsende-Bit, Protokoll-Typ, um gegen Denial-of-Service-Attacken
unter Verwendung von Internet-Control-Message-Protocol-(ICMP)-Nachrichten
oder Internet-Group-Management-Protocol-(IGMP)-Paketen
zu schützen,
wie in RFC 2402, 2463 und 1826 dargelegt, die zum Beispiel Authentifizierungs-Kopfinformationen
umfassen. Wie oben kann jedes der Vermittlungsmodule 110–113 eine
ACL 310 (3) speichern, die Teilnehmer-MAC-
oder IP-Adressen, Passworte und zugehörige Zugriffsrechte enthält.
-
Zugangskontroll-Dienste 439 umfassen
sekundäre
Formen von Authentifizierungs-Diensten, die den Zugriff auf der
Basis von Eigenschaften höherer
Ebenen regeln. In der bevorzugten Ausführung betreffen Zugangskontroll-Dienste 439 die
Gewährung
oder Verweigerung des Zugangs auf der Basis von: (a) Protokoll-ID, was
es der Vermittlungseinrichtung 100 erlaubt, Denial-of-Service-Attacken,
zum Beispiel unter Verwendung von ICMP- und IGMP-Paketen, ohne Authentifizierungs-Kopfinformationen
zu entgegnen; (b) Anschluss-Nummer für Protokolle, die sie benutzen,
einschließlich
zum Beispiel File Transfer Protocol (FTP), Trivial File Transfer
Protocol (TFTP), Telnet und Instant Messaging; und (c) Anwendungs-Kopfinformationen
zum Herausfiltern von unerwünschten
Anwendungen, wie Peer-to-Peer-Dateiübertragungen. In manchen Ausführungen
werden die Zugangskontroll-Dienste 439 dazu benutzt, die
Authentifizierungs-Dienste 438 zu ergänzen und können entweder im Eingangs-
oder Ausgangs-Vermittlungsmodul ausgeführt werden, jedes Mal nachdem
Anfangs-Authentifizierungs-Dienste 438 durchgeführt wurden.
-
Dienste
zum Lernen auf höheren
Ebenen 440 umfassen die Schritte des Meldens der an einer
Netzwerkschnittstelle gelernten Information an Anwendungen in der
Vermittlungseinrichtung 100, die zuständig für Operationen höherer Ebenen
ist. MAC-Adressen, die zum Beispiel durch Nachrichten des Address
Resolution Protocol (ARP) gelernt wurden, werden an eine ARP-Tabelle 312 gemeldet,
die im lokalen Speicher 232 (3) gespeichert
ist und regelmäßig durch
Datenaustausch zwischen der Vielzahl von Vermittlungsmodulen 110–113 oder
mit dem CMM 120 aktualisiert wird.
-
Alarm-Dienste 441 betreffen
systemweite Überprüfungen,
die dazu benutzt werden, Anwendungen auf der Vermittlungsanlage 100 über Bedingungen
zu informieren, die zum Beispiel die Aufmerksamkeit des CMM 120 oder
des Netzwerk-Verwalters erfordern. Diese Bedingungen können zum
Beispiel Situationen umfassen, in denen PDUs, die dieselbe Quelladresse
haben, an einer Vielzahl von Anschlüssen empfangen werden.
-
Anschluss-Spiegelungs-Dienste 442 beziehen
sich auf Prozeduren zum Kopieren von PDUs, die an einem Anschluss
empfangen werden, und zum Senden dieser PDUs an ein Verkehrsanalyse-Werkzeug an einem
Anschluss, der zum Beispiel vom Netzwerk-Verwalter festgelegt wurde.
-
Quellen-Lernen 443 bezieht
sich allgemein auf den folgenden Prozess: (a) Zuordnung der Quelladresse
einer PDU zum Eingangs-Anschluss, an dem sie empfangen wurde; (b)
Erkennen von Situationen, in denen PDUs, welche dieselbe Quelladresse haben,
an verschiedenen Anschlüssen
empfangen werden; und (c) Feststellen, ob eine PDU, die an einem
Anschluss empfangen wird, aber zuvor für einen anderen gelernt wurde, zurückzuweisen
ist, oder die PDU zugelassen werden und die zuvor erlernte Zuordnung
einfach auslaufen soll. Die Quellen-Lern-Tabelle 314 (3),
die von jedem der Vermittlungsmodule 110–113 erstellt
wird, kann regelmäßig zwischen
den Vermittlungsmodulen 110–113 ausgetauscht
werden, um jedem Modul Zugang zu Quellen-Lern-Anschluss-Zuordnungen
zu geben, unabhängig
davon, ob die Quellen-Lern-Dienste 443 am Eingang oder
am Ausgang durchgeführt
werden.
-
Dienstklassen-(Class
of Service, CoS)-Operationen 444 betreffen die folgenden
Prozeduren: (a) Am Eingangs- oder Ausgangs-Vermittlungsmodul Feststellen,
ob eine PDU bei Vorrang einer anderen gefiltert werden muss, was
auf einem oder mehreren Kriterien basiert, einschließlich zum
Beispiel des Prioritätswertes nach
IEEE 802.1p der eintreffenden PDU, und (b) Speichern von PDUs eines
oder mehrerer Datenflüsse
in einer Warteschlange in entweder dem Eingangs- oder dem Ausgangs-Vermittlungsmodul
und anschließende Abgabe
der PDUs der Datenflüsse
auf Anwendungsebene mit einem Scheduler entsprechend der Dienstklassen-Anforderungen
der Datenflüsse.
Die Klassifizierungs-Kriterien die benutzt werden, CoS zu erkennen
und bereitzustellen, werden insgesamt als Klassifizierungs-Regeln
bezeichnet. In der bevorzugten Ausführung speichert der CMM eine
umfangreiche Datenbank, die die Klassifizierungs-Regeln und die
anwendbaren Klassifizierungs-Daten enthält, die in regelmäßigen Zeitintervallen
oder nach Bedarf an die Vielzahl von Vermittlungsmodulen 110–113 verteilt
werden.
-
Farbmarkierungs-Dienste 445 werden
dazu benutzt, (a) im Eingangs- oder Ausgangs-Vermittlungsmodul festzustellen,
ob PDUs weitergegeben, gefiltert oder erneut mit einer Dreifarben-Markierung,
die zuvor von einem Upstream-Knoten im Netzwerk angewendet wurde,
farbmarkiert werden müssen,
und (b) einen Token-Bucket-Algorithmus zu implementieren, um im
Eingangs- oder Ausgangs-Vermittlungsmodul eine Dreifarben-Markierung an die
PDUS anzuhängen,
um Downstream-Knoten dabei zu unterstützen, die Pakete nach Bedarf
selektiv zu filtern. Farbmarkierungs-Dienste 445 umfassen
Two Rate Tri-Color Marker (trTCM), die zurzeit in einer IETF-Publikation
des Autors Osama Aboul Magd enthalten sind, und umfassen Single
Rate Tri-Color Marker
(srTCM) in einem Entwurf einer IETF-Publikation von Juha Heinanen,
die beide hier als Referenz mit aufgenommen werden.
-
5 zeigt
eine schematische Darstellung eines SDPP-Tags zur Übertragung
von Paketdaten zwischen Vermittlungsmodulen. Das SDPP-Tag 510 wird
in der bevorzugten Ausführung
vom SDPP-Tag-Generator 412 des
Eingangs-Vermittlungsmoduls 200 an eine PDU 500 oder
einen PDU-Deskriptor angehängt
und vom SDPP-Tag-Leser 422 des Ausgangs-Vermittlungsmoduls
gelesen. Das SDPP-Tag 510 in der bevorzugten Ausführung enthält eine
SDPP-Kennung (ID) 512 und einen Op-Code 502.
-
Wie
oben erläutert,
dient die SDPP ID 512 als Befehl, der dazu benutzt wird,
das Ausgangs-Vermittlungsmodul, das die PDU empfangt, anzuweisen,
ein oder mehrere Weiterleitungs-Operationen
im Auftrag des Eingangs-Vermittlungsmoduls auszuführen. Mit
anderen Worten liefert das SDPP-Tag in der bevorzugten Ausführung den
Signalisierung-Mechanismus, mit dem ein Eingangs-Prozessor ein oder
mehrere PDU-Weiterleitungs-Operationen
seriell an einen Ausgangs-Prozessor verteilt und dadurch die Verarbeitungs-Last
des Eingangs-Prozessors reduziert. In der bevorzugten Ausführung wird
die SDPP ID 512 am Eingang aus der SDPP-Zuordnungs-Tabelle 238 abgerufen,
obwohl sie auch dynamisch als Funktion der Verarbeitungs-Last in
einem oder mehreren Vermittlungsmodulen 110–113 bestimmt
werden kann.
-
In
manchen Ausführungen
umfasst die SDPP ID 512 eine Fluss-ID 504 und
eine Quellen-Prozessor-ID 506. Die Fluss-ID 504 definiert
eindeutig einen Strom aus einer oder mehreren PDUs, die dieselben Dienst-Verarbeitungs-Anforderungen
haben, während
die Quellen-Prozessor-ID 506 den NP 106 der Eingangs-Vermittlungseinrichtung 200 kennzeichnet,
von der die PDU empfangen wurde. Die Vermittlungsanlage 100 kann
die Fluss-ID 504 und die Quellen-Prozessor-ID 506 zusammen
dazu benutzen, eindeutig den speziellen SDPP-Dienst zu definieren,
der im Auftrag der zugehörigen
PDU 500 anzuwenden oder auszuführen ist.
-
Das
SDPP-Tag 510 enthält
in manchen Ausführungen
ferner einen Operations-Code, d. h. Op-Code 502. Der Begriff
Op-Code, wie er hier verwendet wird, bezieht sich auf einen Befehl,
der bewirkt, dass ein Ausgangs-Vermittlungsmodul konfiguriert wird,
die von der SDPP-ID einer oder mehrerer PDU-Flüsse, die mit dem Op-Code verbunden
sind, spezifizierten Weiterleitungs-Operationen auszuführen. Bei Empfang eines Op-Codes
lädt der
Ausgangs-NP ein oder mehrere computerlesbare Instruktionen in den
auf dem Chip des NPs befindlichen Cache (nicht gezeigt) oder in
einen anderen lokalen Speicher 232. Da der On-Chip-Cache der meisten
NPs zu klein ist, die computerlesbaren Instruktionen zu speichern,
die benötigt
werden, alle möglichen Flüsse zu verarbeiten,
die in der Vermittlungsanlage 100 auftreten können, wird
der Op-Code 502 dazu benutzt, nur die Programm-Instruktionen
zu laden, die benötigt
werden, die SDPP-Dienste für
die begrenzte Anzahl von Flüssen
auszuführen,
die an den speziellen Ausgangs-NP gesendet wurden, die eine Untermenge der
Flüsse
sind, die von der Vermittlungsanlage 100 unterstützt werden.
Als solche können
verschiedene Instruktionssätze
in den NP verschiedener Vermittlungsmodule 110–113 geladen
werden, um die Weiterleitungs-Operationen in jedem der speziellen
NPs 106 zu optimieren. Die Instruktionssätze der
einzelnen NPs können
auch nach Belieben geladen werden, wenn sich der Verkehr ändert, indem
einfach ein neuer Op-Code ausgegeben wird.
-
Zum
Beispiel kann von einem Eingangs-Vermittlungsmodul ein Op-Code ausgegeben werden,
der den Ausgangs-NP 106 anweist, alle ausführbaren
Codes oder Algorithmen, die erforderlich sind, ein oder mehrere Flüsse entsprechend
einem MPLS-Protokoll zu verarbeiten, im Cache zu speichern. Sobald
die ausführbaren Codes,
die dem speziellen Op-Code 502 zugeordnet sind, im Cache
gespeichert sind, kann jede der nachfolgenden PDUs, die eine Fluss-ID 404 hat,
die eine MPLS-Verarbeitungs-Operation spezifiziert, denselben Verarbeitungs-Regeln
unterzogen werden, bis ein neuer Op-Code empfangen wird.
-
Die
Vermittlungsmodule 110–113 der
Vermittlungsanlage 100 sind in manchen Ausführungen
angepasst, gemeinsam Bündel
von Paketen zu verarbeiten, d. h. eine Vielzahl von Paketen, die
einem oder mehreren PDU-Paket-Flüssen
zugeordnet sind. Um die Bündel-Verarbeitung
auszuführen,
wird ein SDPP-Tag 510, das einen Op-Code 502 und
eine SDPP ID 512 enthält,
mit dem ersten Paket einer Vielzahl von zugehörigen Paketen gesendet. Danach
muss das auf die betreffenden Pakete angewendete SDPP-Tag 510 nur
die SDPP ID 512 enthalten. Das Ausgangs-Vermittlungsmodul
unterzieht dann jede aus der Vielzahl von PDUs den Verarbeitungs-Regeln,
die durch seine SDPP ID 510 spezifiziert wird, und den
computerlesbaren Instruktionen, die in der ersten der Vielzahl von
PDUs spezifiziert werden. Auf diese Weise ist es nicht mehr erforderlich,
den Op-Code 502 mit jeder aus der Vielzahl von PDUs zu
senden, und die Ressourcen, die benötigt werden, den Op-Code 502 anzuhängen, zu
senden und zu lesen, werden verringert.
-
In
einer alternativen Ausführung
werden die SDPP ID 512 und/oder der Op-Code 502 vom
Eingangs-Vermittlungsmodul zum Ausgangs-Vermittlungsmodul unter
Verwendung eines Außerband-Kommunikationskanals
(nicht gezeigt) gesendet. Der Außerband-Kommunikationskanal entspricht einem
Signalisierungskanal, z. B. einem Bus, der sich von den Datenkanälen unterscheidet,
die dazu benutzt werden, PDUs zwischen den Vermittlungsmodulen zu übertragen.
-
6 zeigt
ein Flussdiagramm des Verfahrens, mit dem ein Eingangs-Vermittlungsmodul
einen Eingangs-Datenfluss verarbeitet. Bei Empfang einer Eingangs-PDU
(Schritt 610) klassifiziert das Eingangs-Vermittlungsmodul
in der bevorzugten Ausführung
die PDU, um das Ausgangs-Vermittlungsmodul
festzustellen, an das sie gesendet wird. Bei Kenntnis des Ausgangs-Vermittlungsmoduls
kann das Eingangs-Vermittlungsmodul
die relativen Anforderungen an die Eingangs- und Ausgangs-Vermittlungsmodule und
den Bedarf an Lastausgleich feststellen (Schritt 640).
Die PDU-Verarbeitungs-Last,
die die Eingangs-Vermittlungsmodule (Schritt 620) und das
Ausgangs-Vermittlungsmodul (Schritt 630) erfahren, kann
in manchen Ausführungen vom
CMM 120 aus den Blockierungs-Zuständen der Module selbst ermittelt
werden. Wenn der Blockierungs-Zustand des Eingangs-Vermittlungsmoduls
bezogen auf das Ausgangs-Vermittlungsmodul eine Über-Auslastung ist, wird die Anfrage nach
Lastausgleich (Test-Schritt 650)
positiv beantwortet, und die Verteilung von SDPP-Diensten zwischen Eingang und Ausgang
wird geändert
(Schritt 660), um das Last-Ungleichgewicht zu verringern.
Wenn zum Beispiel das Eingangs-Vermittlungsmodul relativ überlastet
ist, kann der Prozentsatz der SDPP-Dienste, die insgesamt dem Ausgangs-Vermittlungsmodul
zugeordnet sind, proportional zum Grad des Ungleichgewichtes erhöht werden.
Im Fall eines stark überlasteten
Eingangs-Vermittlungsmoduls können
alle SDPP-Dienste
dem Ausgangs-Vermittlungsmodul zugeordnet werden. Wenn die Lasten
des Eingangs- und Ausgangs-Vermittlungsmoduls im Wesentlichen gleich
sind, und der Unterschied innerhalb einer vorher festgelegten Last-Differenz-Schwelle
liegt wird die Anfrage nach Änderung
der Lastverteilung (Test-Schritt 650) negativ beantwortet,
und die schon vorhandene Verteilung von SDPP-Diensten wird beibehalten.
-
Nachdem
die Zuordnung von SDPP-Diensten festgestellt wurde, führt das
Eingangs-Vermittlungsmodul die Untermenge von SDPP-Diensten, die für den Eingang
bestimmt sind, aus (Schritt 670). Die restlichen SDPP-Dienste,
die am Ausgang auszuführen
sind, werden in dem einen Feld oder den mehreren Felder des SDPP-Tags
spezifiziert, das an die PDU angehängt wird (Schritt 680),
bevor die PDU zum Ausgangs-Vermittlungsmodul gesendet wird (Schritt 690).
Wenn das Ausgangs-Vermittlungsmodul durch andere Verkehrs-Bedingungen
stark überlastet
ist, kann das Eingangs-Vermittlungsmodul alle SDPP-Dienste ausführen, die
von der PDU gefordert werden, und die SDPP ID wird mit dem Wert
Null an das Paket angehängt,
der anzeigt, dass am Ausgangs-Vermittlungsmodul keine SDPP-Verarbeitung
stattfindet.
-
7 zeigt
ein Flussdiagramm des Verfahrens, mit dem ein Ausgangs-Vermittlungsmodul
einen Ausgangs-Datenfluss verarbeitet. Bei Empfang (Schritt 710)
einer PDU vom Koppelbaustein 150 untersucht das Modul die
PDU auf das Vorhandensein eines SDPP-Tags 510 und liest
die darin enthaltenen Felder. Wenn das SDPP-Tag 510 vorhanden
ist, wird die SDPP-Tag-Abfrage (Test-Schritt 720) positiv
beantwortet und das SDPP-Tag zur Überprüfung entfernt (Schritt 730).
Wenn das SDPP-Tag einen Op-Code 502 enthält, wird
die Op-Code-Abfrage
(Schritt 740) positiv beantwortet, und die vom Op-Code
angezeigten computerlesbaren Instruktionen werden in den Cache im
Ausgangs-Netzwerkprozessor geladen (Schritt 750). Wenn
kein Op-Code im SDPP-Tag vorhanden ist, wird die Op-Code-Abfrage (Schritt 730)
negativ beantwortet, und der NP 106 führt den zweiten Satz von SDPP-Diensten
aus, die von der SDPP ID 512 entsprechend dem Instruktionssatz
gekennzeichnet werden, der durch den Op-Code einer vorherigen PDU
desselben Bündels
spezifiziert wird (Schritt 760). Die entsprechend der SDPP-Dienst-Anforderungen
verarbeiteten PDUs werden dann vom Ausgangs-Vermittlungsmodul in
Richtung zum Ziel-Knoten der PDU gesendet (Schritt 770).
Wie ein Fachmann erkennen wird, werden die vom Ausgangs-Netzwerk-Prozessor
verarbeiteten PDUs derselben Paket-Verarbeitung ausgesetzt und erscheinen
im Wesentlichen identisch zu PDUs, die entweder im Eingangs- oder
Ausgangs-Vermittlungsmodul alleine verarbeitet werden.
-
Die
folgenden Eigenschaften können
einzeln oder in beliebiger Kombination ebenfalls vorteilhafte Ausführungen
der beanspruchten und/oder beschriebenen Erfindung bilden:
- – Die
beanspruchte und/oder beschriebene Vermittlungseinrichtung, wobei
die PDU-Verarbeitungs-Operationen
Operationen sind, die seriell verteilt und im Eingangs-Vermittlungsmodul
und im Ausgangs-Vermittlungsmodul aus der Vielzahl von Vermittlungsmodulen
ausgeführt
werden können;
- – Die
beanspruchte und/oder beschriebene Vermittlungseinrichtung, wobei
der Befehl eine Kennung ist, die die Verteilung von ein oder mehreren
PDU-Verarbeitungs-Operationen
auf den ersten Satz von PDU-Verarbeitungs-Operationen und den zweiten Satz von
PDU-Verarbeitungs-Operationen
anzeigt;
- – Die
beanspruchte und/oder beschriebene Vermittlungseinrichtung, wobei
eine Kopfinformation, die die Kennung enthält, an die PDU zur Übertragung
vom Vermittlungsmodul zur Ausführung
des ersten Satzes von PDU-Verarbeitungs-Operationen
an das Vermittlungsmodul zur Ausführung des zweiten Satzes von PDU-Verarbeitungs-Operationen angehängt wird;
- – Die
beanspruchte und/oder beschriebene Vermittlungseinrichtung, wobei
die Kopfinformation ferner einen Operations-Code enthält, der
bewirkt, dass das Vermittlungsmodul zur Ausführung des zweiten Satzes von PDU-Verarbeitungs-Operationen
eine oder mehrere computerlesbare Instruktionen lädt, um den
zweiten Satz von PDU-Verarbeitungs-Operationen auszuführen;
- – Die
beanspruchte und/oder beschriebene Vermittlungseinrichtung, wobei
die Vermittlungseinrichtung ferner einen Koppelbaustein zur Übertragung
der PDU vom Vermittlungsmodul zur Ausführung des ersten Satzes von
PDU-Verarbeitungs-Operationen
an das Vermittlungsmodul zur Ausführung des zweiten Satzes von
PDU-Verarbeitungs-Operationen
enthält;
- – Die
beanspruchte und/oder beschriebene Vermittlungseinrichtung, wobei
jedes der Vermittlungsmodule ferner eine Zuordnungs-Tabelle enthält, um jede
der einen oder mehreren PDU-Verarbeitungs-Operationen auf den ersten
Satz von PDU-Verarbeitungs-Operationen und den zweiten Satz von
PDU-Verarbeitungs-Operationen
aufzuteilen;
- – Die
beanspruchte und/oder beschriebene Vermittlungseinrichtung, wobei
die Verteilung jeder der einen oder mehreren PDU-Verarbeitungs-Operationen
auf den ersten Satz und den zweiten Satz die Ungleichverteilung
der Verarbeitung zwischen den Vermittlungsmodulen zur Ausführung des
ersten Satzes und den Vermittlungsmodulen zur Ausführung des
zweiten Satzes verringert;
- – Die
beanspruchte und/oder beschriebene Vermittlungseinrichtung, wobei
die Verteilung jeder der einen oder mehreren PDU-Verarbeitungs-Operationen
auf den ersten Satz und den zweiten Satz auf der Grundlage eines
Blockierungs-Zustandes der Vermittlungsmodule bestimmt wird;
- – Das
beanspruchte und/oder beschriebene Verfahren, wobei die Verteilung
jeder der einen oder mehreren PDU-Verarbeitungs-Operationen auf das erste Vermittlungsmodul
und das zweite Vermittlungsmodul auf einem Blockierungs-Zustand
des ersten Vermittlungsmoduls und des zweiten Vermittlungsmoduls
basiert;
- – Eine
Vermittlungseinrichtung, die folgendes umfasst: ein erstes Vermittlungsmodul,
umfassend: Mindestens einen externen Anschluss, der angepasst ist,
eine Protokoll-Dateneinheit (PDU) zu empfangen; einen Klassifizierer,
der angepasst ist, eine oder mehrere PDU-Verarbeitungs-Operationen
zur Anwendung auf die PDU zu erkennen; eine Steuerung, die für folgendes
angepasst ist: Verteilen jeder der einen oder mehreren PDU-Verarbeitungs-Operationen
auf einen ersten Satz von PDU-Verarbeitungs-Operationen
und einen zweiten Satz von PDU-Verarbeitungs-Operationen;
Ausführen
des ersten Satzes von PDU-Verarbeitungs-Operationen; und Erzeugen
eines Befehls zur Ausführung
des zweiten Satzes von PDU-Verarbeitungs-Operationen; einen Koppelbaustein; und
ein zweites Vermittlungs-Modul, das über den Koppelbaustein betriebsfähig mit
dem ersten Vermittlungsmodul gekoppelt ist, wobei das zweite Vermittlungsmodul folgendes
umfasst: Eine Steuerung, die angepasst ist, den zweiten Satz von
PDU-Verarbeitungs-Operationen
als Reaktion auf den Befehl auszuführen; und mindestens einen
externen Anschluss, der angepasst ist, die PDU zu senden.
-
Obwohl
die obige Beschreibung viele Spezifikationen enthält, dürfen diese
nicht als Einschränkung des
Umfangs der Erfindung interpretiert werden, sondern nur als Beispiele
für einige
der zurzeit bevorzugten Ausführungen
dieser Erfindung.
-
Daher
wurde die Erfindung am Beispiel und nicht als Einschränkung offen
gelegt, und zur Bestimmung des Umfangs der vorliegenden Erfindung
muss auf die folgenden Ansprüche
Bezug genommen werden. Fig. 1
110, 111, 112, 113 | Vermittlungsmodul |
106 | Netzwerk-Prozessor |
120 | Zentraler
Befehls-Prozessor (CMM) |
150 | Koppelbaustein |
Fig. 2
200 | Vermittlungsmodul |
220 | Management-Modul |
222 | Strategie-Manager |
224 | Konfigurations-Manager |
232 | Speicher |
230 | Klassifizierer |
236 | Steuerung
zur Verarbeitung seriell verteilter Pakete |
238 | SDPP-Zuordnungs-Tabelle |
240 | Warteschlangen-Manager |
Neben 248 | Überwacher |
248 | Eingangs-Warteschlangen-Speicher |
Neben 242 | Verkehrs-Former |
242 | Ausgangs-Warteschlangen-Speicher |
252 | Statistik-Manager |
250 | Puffer |
206 | Datenbus |
208 | Koppelbaustein-Schnittstellen-Modul |
Fig. 3
302 | Weiterleitungs-Tabelle |
304 | VLAN-Zuordnungs-Tabelle |
306 | Gebührenerfassungs-
und Abrechnungs-Datenbank |
308 | Spanning
Tree |
310 | Zugangs-Kontroll-Liste
(ACL) |
312 | ARP-Tabelle |
314 | Quellen-Lern-Tabelle |
Fig. 5
510 | SDPP-Tag |
502 | Op-Code |
504 | Fluss-ID |
506 | Quellen-Prozessor-ID |
500 | Rahmen |
512 | SDPP
ID |
Fig. 4
236 | SDPP-Steuerung |
410 | Eingangs-Prozessor |
412 | SDPP-Tag-Generator |
238 | SDPP-Zuordnungs-Tabelle |
420 | Ausgangs-Prozessor |
422 | SDPP-Tag-Leser |
430 | SDPP-Dienste |
431 | Kopfinformations-Transformation |
432 | VLAN-Push |
433 | VLAN-Pop |
435 | Gebührenerfassung
und Abrechnung |
436 | MPLS-Management |
437 | Spanning
Tree |
438 | Authentifizierung |
439 | Zugangskontrolle |
440 | Lernen
auf höheren
Ebenen |
442 | Anschluss-Spiegelung |
443 | Quellen-Lernen |
445 | Farbmarkierung |
Fig. 6
610 | Eingangs-PDU
klassifizieren |
620 | Eingangs-Blockierungszustand |
630 | Ausgangs-Blockierungszustand |
640 | Feststellen,
ob Lastausgleich erforderlich ist |
650 | Ist
eine Änderung
der Lastverteilung erforderlich? |
660 | Verteilung
der SDPP-Dienste zwischen Eingangs- und Ausgangs-Vermittlungsmodulen ändern |
670 | Eingangs-SDPP-Dienste
im Eingangs-Vermittlungsmodul
ausführen |
680 | Seriell
verteiltes Operations-Tag an PDU anhängen |
690 | PDU
zum Ausgangs-Vermittlungsmodul senden |
Fig. 7
710 | Ausgangs-PDU
empfangen |
720 | Ist
SDPP-Tag vorhanden? |
730 | Verarbeitungs-Tag
für seriell
verteiltes Paket aus der PDU entfernen |
740 | Ist
Op-Code vorhanden? |
750 | Durch
Op-Code spezifizierten Instruktionssatz laden |
760 | Erkannte
SDPP-Dienste im Ausgangs-Vermittlungsmodul
ausführen |
770 | PDU
vom Ausgangs-Anschluss senden |