-
TECHNISCHES
GEBIET
-
Die
Erfindung betrifft allgemein die Steuerung von Paketflüssen durch
eine Netzwerkvorrichtung, wie beispielsweise einen Mehrfachport-Schalter.
Genauer gesagt betrifft die Erfindung ein Steuern von Paketflüssen mit
Steuerungsregeln für
Zellströme
mit mehreren Bandbreiten (siehe auch das Dokument US-A-5 896 511).
-
HINTERGRUND
DER ERFINDUNG
-
Paketbasierende
Netzwerke werden heute dazu verwendet, eine Kombination aus Sprache,
Video und/oder Daten zu liefern. Weil Sprache, Video und Daten unterschiedliche
Dienstqualitäts-(QoS-)Anforderungen
haben und aufgrund der innewohnenden Bandbreitenbegrenzungen in
den meisten paketbasierenden Netzwerken ist es oft nötig, einen
Netzwerkverkehr in Abwärtsrichtung
in einzelne Flüsse
aufzubrechen, so dass die durch jeden einzelnen Fluss verbrauchte
Bandbreite individuell geregelt werden kann.
-
Ein
einzelner "Fluss" ist als Sequenz
von Paketen definiert, die dieselben Eigenschaften haben. Eigenschaften
eines Flusses, der gemäß dem Internetprotokoll
(IP) gesendet wird, werden typischerweise aus den Paket-Anfangsblöcken identifiziert.
Beispielsweise enthält
der Paket-Anfangsblock in einem IP-Paket Information, die die Quellen-IP-Adresse,
die Zielort-IP-Adresse, die Quellen-Portnummer, die Zielort-Portnummer,
den Diensttyp und das IP-Unterprotokoll enthalten kann. Zusätzliche
Flusscharakteristiken können
den Eintrittsport des Pakets in die Netzwerkvorrichtung enthalten.
Die Flusscharakteristikinformation wird typischerweise dazu verwendet, einen
ankommenden Verkehr in einzelne Flüsse zu klassifizieren.
-
Wenn
ein ankommender Verkehr einmal in einzelne Flüsse klassifiziert worden ist,
kann die durch jeden Fluss verbrauchte Bandbreite durch Anwenden
einer spezifischen Verkehrssteuerungsregel auf jeden Fluss individuell
geregelt werden. Eine Verkehrssteuerungsregel hat typischerweise
eine Eins-zu-Eins-Beziehung zu einem Fluss und stellt eine Ratengrenze
ein, die als Anzahl von Bits, oder Bytes, pro Sekunde, identifiziert
wird, die innerhalb der Netzwerkvorrichtung geführt oder weitergeleitet werden
kann. 1 ist eine bildliche Darstellung eines Paketverkehrs
innerhalb einer Netzwerkvorrichtung, wie beispielsweise eines Schalters
und/oder eines Routers, der in vier einzelne Flüsse aufgebrochen worden ist,
nämlich
einen Fluss A, einen Fluss B, einen Fluss C und einen Fluss D. Jeder
Fluss wird durch eine Verkehrssteuerungsregel geregelt, die für den jeweiligen
Fluss spezifisch ist. Beispielsweise wird der Fluss A durch eine
Verkehrssteuerungsregel 1 (TCR 1) 102 geregelt, wird der
Fluss B durch eine Verkehrssteuerungsregel 2 (TCR 2) 104 geregelt, wird
der Fluss C durch eine Verkehrssteuerungsregel 3 (TCR 3) 106 geregelt
und wird der Fluss D durch eine Verkehrssteuerungsregel 4 (TCR 4) 108 geregelt.
Wie es in 1 gezeigt ist, gibt es eine Eins-zu-Eins-Entsprechung
zwischen den identifizierten Flüssen
und den Verkehrssteuerungsregeln. Ein Netzwerkverkehr, der seine
zugeteilte Bandbreite nicht überschritt,
wird innerhalb der Netzwerkvorrichtung weitergeleitet.
-
Um
mehr Steuerung über
einen bestimmten Fluss zur Verfügung
zu stellen, kann es vorteilhaft sein, mehr als eine Verkehrssteuerungsregel
auf den Fluss anzuwenden. 2 ist eine
bildliche Darstellung von vier Flüssen, die jeweils durch mehr
als eine Verkehrssteuerungsregel geregelt werden. Beispielsweise
wird der Fluss A durch eine Verkehrssteuerungsregel 1 (TCR 1) 202,
eine Verkehrssteuerungsregel 5 (TCR 5) 204 und eine Verkehrssteuerungsregel
9 (TCR 9) 206 geregelt, wobei jede der Verkehrssteuerungsregeln
unabhängig
voneinander implementiert ist. Gleich der 1 gibt es
eine Eins-zu-Eins-Entsprechung von angewendeten Verkehrssteuerungsregeln
zu den identifizierten Flüssen.
Das bedeutet, dass jede Verkehrssteuerungsregel auf einen und nur
einen Fluss angewendet wird. Obwohl die Anwendung von mehr als einer
Verkehrssteuerungsregel auf einen Fluss eine genaue Steuerung eines
Flusses zulässt,
lässt sie
nicht zu, dass mehrere Flüsse
als Gruppe geregelt werden. Während
es erwünscht
ist, die Fähigkeit
zu haben, einen einzelnen Fluss genau zu regeln, ist es ebenso erwünscht, den
zusammengesetzten Fluss einer Gruppe von Flüssen regeln zu können.
-
In
Netzwerkvorrichtungen nach dem Stand der Technik kann die Regelung
einer Gruppe von Flüssen
nur durch Bestimmen von allgemeineren Flüssen erreicht werden. Nimmt
man beispielsweise wieder Bezug auf 1, muss
dann, wenn es nötig ist,
die Flüsse
A und B als Gruppe zu regeln, der ankommende Verkehrsstrom in einen
allgemeineren Fluss klassifiziert werden, der die Flusscharakteristiken
von sowohl dem Fluss A als auch dem Fluss B enthält. Eine einzige Verkehrssteue rungsregel
kann dann den allgemeineren Fluss regeln. Während ein Erzeugen einer Klassifizierung
eines allgemeineren Flusses zulässt,
dass ein allgemeinerer Fluss durch eine einzige Verkehrssteuerungsregel
geregelt wird, eliminiert ein Erzeugen einer Klassifizierung eines einzelnen
Flusses die Fähigkeit,
enger definierte Flüsse
individuell zu regeln (z.B. den Fluss A, den Fluss B, den Fluss
C und den Fluss D).
-
Angesichts
der Notwendigkeit, den Bandbreitenverbrauch eines Flusses auf einer
individuellen Basis zu regeln, und angesichts der Notwendigkeit,
den zusammengesetzten Bandbreitenverbrauch einer Gruppe von Flüssen zu
regeln, ist das, was benötigt
wird, ein Verfahren und ein System, die zulassen, dass derselbe
Fluss auf einer Eins-zu-Eins-Basis und auf einer Gruppenbasis geregelt
wird.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Ein
Verfahren und ein System zum Steuern eines Datenflusses durch eine
Netzwerkvorrichtung enthalten ein Regeln eines ersten Flusses eines Netzwerkverkehrs
mit einer ersten Verkehrssteuerungsregel, ein Regeln eines zweiten
Flusses eines Netzwerkverkehrs mit einer zweiten Verkehrssteuerungsregel
und dann ein Regeln des übergebenen bzw.
weitergeleiteten Teils der zwei Flüsse mit einer dritten Verkehrssteuerungsregel,
die zu sowohl dem ersten Fluss als auch dem zweiten Fluss kompatibel ist.
Die dritte Verkehrssteuerungsregel regelt die weitergeleiteten Teile
des ersten Flusses und des zweiten Flusses auf einer zusammengesetzten
Basis, so dass die Gesamtmenge an durch die dritte Verkehrssteuerungsregel
weitergeleitetem Verkehr eine vordefinierte Bandbreitengrenze nicht übersteigt.
Durch Regeln des Bandbreitenverbrauchs einer Gruppe von Flüssen mit
wenigstens zwei Ebenen von Verkehrssteuerungsregeln kann ein Bandbreitenverbrauch
gleichzeitig für
eng definierte Flüsse
und breiter definierte Flüsse
gesteuert werden.
-
Bei
einem Ausführungsbeispiel
werden zwei Flüsse
eines Netzwerkverkehrs durch drei Verkehrssteuerungsregeln geregelt,
wobei wenigstens eine der drei Verkehrssteuerungsregeln für beide
der Flüsse
gilt. Anfangs werden die zwei Flüsse
durch Verkehrssteuerungsregeln, die für die zwei Flüsse gelten,
auf einer Eins-zu-Eins-Basis
individuell geregelt. Die zwei Flüsse werden auch durch eine
dritte Verkehrssteuerungsregel, die für beide der Flüsse gilt,
auf einer zusammengesetzten Basis geregelt. Die dritte Verkehrssteuerungsregel
wird "allgemeine" oder "grobe" Regel genannt, weil
sie für
eine breitere Kategorie von Flüssen
gilt.
-
Bei
einem Beispiel kann eine erste Verkehrssteuerungsregel für einen
Fluss von einer Quelle A von einem Typ X gelten, kann eine zweite
Verkehrssteuerungsregel für
einen Fluss von einer Quelle B von einem Typ X gelten und kann eine
dritte allgemeinere Verkehrssteuerungsregel für einen Fluss eines Typs X
gelten, der von irgendeiner Quelle ist. Die dritte allgemeinere
Verkehrssteuerungsregel wird auf relevante Flüsse auf einer zusammengesetzten
Basis angewendet, so dass die durch alle Flüsse innerhalb der allgemeinen
Kategorie verbrauchte kombinierte Bandbreite die durch die dritte
Verkehrssteuerungsregel erzwungene Grenze nicht übersteigt.
-
Bei
einem Betrieb wird dann, wenn die dritte Verkehrssteuerungsregel
als beispielsweise Token-Speicherbereich (token bucket) implementiert ist,
derselbe Speicherbereich jedes Mal dekrementiert, wenn ein Paket
durch die dritte Verkehrssteuerungsregel geführt bzw. übergeben bzw. weitergeleitet
wird, und zwar ungeachtet dessen, von welchem Fluss das Paket ist.
Bei einem Ausführungsbeispiel wird
die dritte Verkehrssteuerungsregel auf die zwei Flüsse auf
einer Basis angewendet, bei welcher der erste kommende zuerst bedient
wird, so dass die verfügbare
Bandbreite den zuerst ankommenden Paketen zugeteilt wird. Als Ergebnis
eines Anwendens derselben Verkehrssteuerungsregel auf die Zusammensetzung
der zwei Flüsse
werden die zwei Flüsse als
Gruppe geregelt. Die Regelung einer Gruppe von Flüssen erfolgt
zusätzlich
zu der Regelung von einzelnen Flüssen,
die durch die Verkehrssteuerungsregeln niedrigerer Ebene zur Verfügung gestellt
wird.
-
Es
sollte erkannt werden, dass mehr als zwei Flüsse durch eine allgemeine Verkehrssteuerungsregel
geregelt werden können.
Zusätzlich
können
mehr als zwei Ebenen von Verkehrssteuerungsregeln implementiert
werden. Darüber
hinaus ist es nicht nötig, jeden
Fluss mit derselben Anzahl von Verkehrssteuerungsregeln zu regeln.
-
Die
Anwendung von Verkehrssteuerungsregeln auf mehrere Flüsse auf
einer zusammengesetzten Basis ist vorzugsweise in Hardware implementiert.
Bei einem Ausführungsbeispiel
enthält
eine anwenderspezifische integrierte Schaltung (ASIC = application
specific integrated circuit) die Verkehrssteuerungsregeln auf mehr
als einen Fluss auf einer zusammengesetzten Basis anwenden kann,
einen Flussklassifizierer, einen Regelselektor und verschiedene
Verkehrssteuerungseinheiten. Der Flussklassifizierer ist eine auf
Hardware basierende Einheit, die einen ankommenden Strom von Paketen
nimmt und die Pakete durch einen Fluss klassifiziert. Der Flussklassifizierer
verwendet Anfangsblockinformation und das Eintrittsport von ankommenden
Paketen zum Klassifizieren von Flüssen.
-
Der
Regelselektor ist eine funktionelle Einheit, die Flüsse an Verkehrssteuerungseinheiten
anpasst. Die Verkehrssteuerungseinheiten sind die bestimmten Schaltungen,
die die unterschiedlichen Verkehrssteuerungsregeln implementieren.
-
Bei
einem Betrieb werden Pakete, die in die ASIC eintreten, durch den
Flussklassifizierer in Flüsse
klassifiziert. Der Regelselektor identifiziert dann die Verkehrssteuerungseinheiten,
die auf die klassifizierten Flüsse
anzuwenden sind. Die Verkehrssteuerungseinheiten regeln dann die
Flüsse
gemäß den Bandbreitengrenzen
der jeweiligen Verkehrssteuerungsregel. Wenn mehr als ein Fluss
auf dieselbe Verkehrssteuerungseinheit abgebildet wird, dann regelt
die Verkehrssteuerungseinheit alle anwendbaren. Flüsse auf
einer zusammengesetzten Basis. Pakete von Flüssen, die alle anwendbaren
Verkehrssteuerungsregeln erfüllen,
werden von der ASIC zu einer nächsten
Stelle weitergeleitet. Bei einem bevorzugten Ausführungsbeispiel
werden das System und das Verfahren zum Regeln eines Netzwerkverkehrs verwendet,
bevor der Verkehr durch eine Schaltstruktur eines Schalters oder
eines Routers geführt
wird.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine bildliche Darstellung von vier Flüssen, die durch bestimmte Verkehrssteuerungsregeln
einzeln geregelt werden, wobei es eine Eins-zu-Eins-Entsprechung
zwischen Flüssen
und Verkehrssteuerungsregeln gibt, wie es im Stand der Technik bekannt
ist.
-
2 ist
eine bildliche Darstellung von vier Flüssen, die durch mehr als eine
Verkehrssteuerungsregel einzeln geregelt werden, wobei es eine Eins-zu-Eins-Entsprechung
zwischen Flüssen
und Verkehrssteuerungsregeln gibt, wie es im Stand der Technik bekannt
ist.
-
3 ist
eine bildliche Darstellung der Regelung von zwei Flüssen, die
durch bestimmte Verkehrssteuerungsregeln einzeln geregelt werden und durch
eine Verkehrssteuerungsregel, die für beide der Flüsse allgemein
ist, als Gruppe geregelt werden, gemäß der Erfindung.
-
4 ist
ein Verfahrensablaufdiagramm, das die Regelung von zwei Flüssen darstellt,
die durch bestimmte Verkehrssteuerungsregeln einzeln geregelt werden
und durch eine Verkehrssteuerungsregel, die für beide der Flüsse allgemein
ist, als Gruppe geregelt werden, gemäß der Erfindung.
-
5 ist
eine bildliche Darstellung der Regelung von vier Flüssen, die
durch bestimmte Verkehrssteuerungsregeln einzeln geregelt werden
und durch Verkehrssteuerungsregeln, die für die Gruppen allgemein sind,
in verschiedenen Gruppen geregelt werden, gemäß der Erfindung.
-
6 ist
eine bildliche Darstellung der Regelung von vier Flüssen, die
durch bestimmte Verkehrssteuerungsregeln einzeln geregelt werden
und durch Verkehrssteuerungsregeln, die für die Gruppen allgemein sind,
in verschiedenen Gruppen geregelt werden, gemäß der Erfindung.
-
7 ist
eine bildliche Darstellung einer anwenderspezifischen integrierten
Schaltung, die einzelne Flüsse
mit flussspezifischen Verkehrssteuerungsregeln regelt und Gruppen
von Flüssen
mit allgemeinen Verkehrssteuerungsregeln regelt, gemäß der Erfindung.
-
DETAILLIERTE
BESCHREIBUNG
-
3 ist
eine bildliche Darstellung der Regelung von zwei Flüssen innerhalb
einer Netzwerkvorrichtung, wie beispielsweise eines Schalters oder
eines Routers. Eine Regelung der zwei Flüsse enthält drei Verkehrssteuerungsregeln 302, 304 und 306, wobei
wenigstens eine der drei Verkehrssteuerungsregeln für beide
der Flüsse
gilt. Wie es in 3 gezeigt ist, werden zwei zuvor
klassifizierte Flüsse
anfangs durch jeweilige Verkehrssteuerungsregeln geregelt. Spezifisch
wird ein Fluss A durch eine Verkehrssteuerungsregel 1 (TCR 1) 302 geregelt
und wird ein Fluss B durch eine Verkehrssteuerungsregel 2 (TCR 2) 304 geregelt.
Die zwei Verkehrssteuerungsregeln gelten für die jeweiligen Flüsse auf
einer Eins-zu-Eins-Basis.
-
Beim
Beispiel der 3 ist angenommen, dass die Flüsse aus
Paketen variabler Länge
gebildet sind, die gemäß dem Internetprotokoll
(IP) gesendet werden. Zusätzlich
werden die Pakete variabler Länge
vorzugsweise gemäß dem Ethernet-Protokoll gesendet.
Obwohl ein Ausführungsbeispiel
unter Bezugnahme auf IP, auf Pakete variabler Länge und ein Ethernet-Protokoll
beschrieben wird, sind andere Sendeprotokolle möglich. Beispielsweise können die Flüsse aus
Zellen fester Länge
bestehen, die gemäß dem Protokoll
für einen
asynchronen Übertragungsmode
(ATM-Protokoll) übertragen
werden.
-
Für Beispielszwecke
ist angenommen, dass der Fluss A vom Typ X ist (z.B. wie es durch
das IP-Unterprotokoll und Sockelnummern identifiziert ist), von
einer Quellen-IP-Adresse
A (Src A) ist, zu einer Zielort-IP-Adresse B (Dest B) läuft und
dass eine Verkehrssteuerungsregel 1 einen Fluss, ohne mit Übertragungscharakteristiken
in Konflikt zu geraten, auf 10 Megabits pro Sekunde (Mb/s) oder
darunter (zulässig:
10 Mb/s) regelt. Zusätzlich
ist angenommen, dass der Fluss B vom Typ X ist, von einer Quellen-IP-Adresse
C (Src C) ist, zu einer Zielort-IP-Adresse D (Dest D) läuft und
dass eine Verkehrssteuerungsregel 2 einen Fluss mit denselben Übertragungscharakteristiken
auf 15 Mb/s oder darunter (zulässig:
Mb/s) regelt. Das Ergebnis eines Anwendens der Verkehrssteuerungsregel
1 auf den Fluss A besteht darin, dass der Fluss A auf 10 Mb/s begrenzt
wird, und das Ergebnis eines Anwendens der Verkehrssteuerungsregel
2 auf den Fluss B besteht darin, dass der Fluss B auf 15 Mb/s begrenzt wird.
-
Wie
es in 3 gezeigt ist, regelt die Verkehrssteuerungsregel
3 (TCR 3) 306 Verkehrsflüsse vom Typ X ungeachtet der
Quellen-IP-Adresse oder der Zielort-IP-Adresse auf 20 Mb/s oder darunter (zulässig: 20
Mb/s). Die Verkehrssteuerungsregel 3 wird "allgemeinere" oder "grobere" Regel als die Verkehrssteuerungsregeln
1 und 2 genannt, weil die Verkehrssteuerungsregel 3 eine breitere
Gruppe von Flüssen
regelt. Da sowohl der Fluss A als auch der Fluss B in die Klassifikation
der Verkehrssteuerungsregel 3 fallen (z.B. sind beide der Flüsse vom
Typ X), können
beide der Flüsse
auch durch die Verkehrssteuerungsregel 3 geregelt werden. Wie es
in 3 gezeigt ist, wird die Ausgabe des Flusses A
von der Verkehrssteuerungsregel 1 durch die Verkehrssteuerungsregel
3 geregelt und wird die Ausgabe des Flusses B von der Verkehrssteuerungsregel
2 durch die Verkehrssteuerungsregel 3 geregelt. Das bedeutet, dass
nun dieselbe Verkehrssteuerungsregel (die Verkehrssteuerungsregel
3) dazu verwendet wird, zwei Flüsse
zu regeln. Obwohl die Verkehrssteuerungsregel 3 derart beschrieben
ist, dass sie zwei Flüsse
regelt, kann die Verkehrssteuerungsregel (TCR 3) auch derart beschrieben
werden, dass sie einen einzelnen Fluss regelt, der so charakterisiert
ist, dass der einzelne Fluss zwei enger definierte Flüsse enthält.
-
Weil
die Verkehrssteuerungsregel 1 zulässt, dass der Fluss A mit 10
Mb/s aufwärts
läuft,
und weil die Verkehrssteuerungsregel 2 zulässt, dass der Fluss B mit 15
Mb/s aufwärts
läuft,
kann die Verkehrssteuerungsregel 3 unter maximalen Verkehrszuständen bis
zu 25 Mb/s aus der Kombination des Flusses A und des Flusses B empfangen.
Obwohl die Verkehrssteuerungsregel 3 bis zu 25 Mb/s empfangen kann,
begrenzt eine Anwendung der Verkehrssteuerungsregel 3 auf die Flüsse A und
B die Zusammensetzung der Flüsse
A und B auf ein Maximum von 20 Mb/s.
-
Bei
einem Betrieb wird dann, wenn die Verkehrssteuerungsregel 3 als
beispielsweise ein Token-Speicherbereich implementiert ist, derselbe Speicherbereich
jedes Mal dann dekrementiert, wenn ein Paket durch die Verkehrssteuerungsregel
3 geführt
wird, gleichgültig,
ob das Paket vom Fluss A oder vom Fluss B ist. Das bedeutet, dass
die Ausgabe der Verkehrssteuerungsregel 3 ein Fluss vom Typ X ist,
der 20 Mb/s auf einer zusammengesetzten Basis nicht übersteigt.
Solange der Fluss, der aus der Verkehrssteuerungsregel 3 resultiert,
20 Mb/s nicht übersteigt,
kann der Fluss Pakete von entweder dem Fluss A oder dem Fluss B
enthalten. Bei einem Ausführungsbeispiel
wird die Verkehrssteuerungsregel 3 auf die Flüsse A und B auf einer Basis
angewendet, bei welcher der erste kommende als erster bedient wird,
so dass die verfügbare
Bandbreite den zuerst ankommenden Paketen zugeteilt wird.
-
Als
Ergebnis eines Anwendens derselben Verkehrssteuerungsregel auf die
Flüsse
A und B auf einer zusammengesetzten Basis werden die Flüsse A und
B als Gruppe geregelt. Die Regelung einer Gruppe von Flüssen erfolgt
zusätzlich
zu der Regelung von einzelnen Flüssen,
die durch die Verkehrssteuerungsregeln niedrigerer Ebene (z.B. die
Verkehrssteuerungsregel 3 und die Verkehrssteuerungsregel 2) zur
Verfügung
gestellt wird. Obwohl die Flüsse
A und B durch die Verkehrssteuerungsregel 3 auf einer zusammengesetzten
Basis geregelt werden, werden die Flüsse A und B anfangs nicht in
einen einzelnen Fluss zur Regelung durch die Verkehrssteuerungsregel
3 multiplext. Das bedeutet, dass die Flüsse A und B durch die Verkehrssteuerungsregel
3 als einzelne Flüsse
geregelt werden, jedoch beschäftigt sich
die Verkehrssteuerungsregel 3 nur mit der gesamten Bandbreite, die
durch die Kombination aus den Flüssen
A und B verbraucht wird.
-
4 ist
ein Verfahrensablaufdiagramm, das die Anwendung von mehreren Regeln
auf wenigstens zwei Flüsse
darstellt. Das Verfahrensablaufdiagramm der 4 bezieht
sich auf das Logikdiagramm der 3, wobei
dieselben Flüsse
(die Flüsse
A und B) und dieselben Verkehrssteuerungsregeln (Verkehrssteuerungsregel
1, Verkehrssteuerungsregel 2 und Verkehrssteuerungsregel 3) identifiziert
sind.
-
Nimmt
man Bezug auf 4, wird bei einem Schritt 402 ein
Paket des Flusses A identifiziert. Bei einem Ausführungsbeispiel
wird der Fluss A durch einen auf Hardware basierenden Flussklassifizierer identifiziert,
der innerhalb der Netzwerkvorrichtung vorhanden ist, obwohl dies
nicht entscheidend ist. Bei einem Ausführungsbeispiel kann eine Flussklassifizierung
ein Identifizieren von irgendwelchen Flussparametern enthalten,
die mit den verschiedenen Übertragungsprotokollen
verwendet werden. Beispielsweise können Flussparameter zur Klassifizierung den
Eintrittsport in die Netzwerkvorrichtung, die Quellen-IP-Adresse,
die Zielort-IP-Adresse, die Quellen-Portnummer (Sockel), die Zielort-Portnummer
(Sockel), den Diensttyp, das Protokoll und/oder Fragmentierungsinformation
enthalten.
-
Bei
einem Schritt 404 wird eine Verkehrssteuerungsregel, die
auf den Fluss A abbildet, identifiziert (z.B. TCR 1). Ein Abbilden
einer Verkehrssteuerungsregel auf einen Fluss kann ein Identifizieren
eines Zeigers enthalten, der auf eine erste Verkehrssteuerungsregel
zeigt. Bei einem bevorzugten Ausführungsbeispiel bildet ein Fluss
auf mehr als eine Verkehrssteuerungsregel ab. Beispielsweise kann ein
Fluss auf eine erste Verkehrssteuerungsregel, auf eine zweite Verkehrssteuerungsregel
und sogar auf eine dritte Verkehrssteuerungsregel abbilden. Obwohl
drei Ebenen von Verkehrssteuerungsregeln beschrieben sind, sind
mehr Ebenen möglich.
Bei einem bevorzugten Ausführungsbeispiel
ist jede nachfolgende Verkehrssteuerungsregel eine allgemeinere Verkehrssteuerungsregel,
obwohl dies kein Erfordernis ist.
-
Nimmt
man Bezug auf einen Schritt 406, wird dann, wenn einmal
eine erste Verkehrssteuerungsregel für den Fluss A identifiziert
worden ist, die Verkehrssteuerungsregel auf den Fluss angewendet
und wird spezifischer die Verkehrssteuerungsregel auf jedes Paket
angewendet, das den Fluss bildet. Bei einer Entscheidungsstelle 408 wird
dann, wenn die Verkehrssteuerungsregel 1 durch den Fluss A verletzt
wird (z.B. wenn die Rate des Flusses A die zugeteilte Bandbreite übersteigt),
die geeignete verletzte Handlung vorgenommen (Schritt 410).
Die verletzte Handlung kann ein Fallenlassen des Pakets oder von
Paketen enthalten, das bzw. die die Verkehrssteuerungsregel verletzt
bzw. verletzen, oder die verletzte Handlung kann beispielsweise
ein Inkrementieren eines verletzten Zählers enthalten, was die Priorität des Pakets
(der Pakete) reduziert, den Diensttyp (ToS) des Pakets (der Pakete) ändert und/oder
die Pakete auf irgendeine andere Weise abändert. Wenn ein Paket, das
die Verkehrssteuerungsregel verletzt, nicht fallengelassen wird,
können
nachfolgende Verkehrssteuerungsregeln auf das Paket angewendet werden,
wie es nachfolgend beschrieben ist.
-
Wenn
die Verkehrssteuerungsregel durch den Fluss A nicht verletzt wird
(z.B. wenn die Verkehrsrate für
den Fluss A die zugeteilte Bandbreite nicht übersteigt), dann wird die nächste Regel,
die auf den Fluss A abbildet, identifiziert (Schritt 412).
In diesem Fall wird für
Beispielszwecke angenommen, dass die nächste Verkehrssteuerungsregel
für den Fluss
A die Verkehrssteuerungsregel 3 ist. In Fällen, in welchen die verletzte
Handlung kein Fallenlassen von Paketen erfordert, kann es sein,
dass Pakete, die die Verkehrssteuerungsregel verletzen, auch durch die
Verkehrssteuerungsregel 3 geregelt werden müssen.
-
Nimmt
man wieder Bezug auf den obersten Teil der 4, gilt
derselbe Anfangsprozess, der auf den Fluss A angewendet wird, für den Fluss
B, außer dass
der Fluss B anfangs auf die Verkehrssteuerungsregel 2 abbildet.
Nimmt man Bezug auf einen Schritt 414, wird ein Paket des
Flusses B identifiziert. Bei einem Schritt 416 wird eine
Verkehrssteuerungsregel, die auf den Fluss B abbildet, identifiziert
(z.B. TCR 2). Wenn die Verkehrssteuerungsregel einmal für den Fluss
B identifiziert ist, wird die Verkehrssteuerungsregel auf den Fluss
B angewendet (Schritt 418), und wird spezifischer die Verkehrssteuerungsregel
auf jedes Paket angewendet, das den Fluss bildet. Bei einer Entscheidungsstelle 420 wird
dann, wenn die Verkehrssteuerungsregel 2 durch den Fluss B verletzt
wird, die geeignete verletzte Handlung vorgenommen (Schritt 422).
Wiederum kann eine verletzte Handlung ein Fallenlassen des Pakets
oder von Paketen enthalten, das bzw. die die Verkehrssteuerungsregel
verletzt bzw. verletzen. Wenn ein Paket, das die Verkehrssteuerungsregel
verletzt, nicht fallengelassen wird, können nachfolgende Verkehrssteuerungsregeln
auf das Paket angewendet werden, wie es nachfolgend beschrieben
ist. Es sollte beachtet werden, dass die verletzte Handlung für den Fluss
A vorzugsweise unabhängig
von der verletzten Handlung für
den Fluss B ist, obwohl dies nicht entscheidend ist.
-
Wenn
die Verkehrssteuerungsregel durch den Fluss B nicht verletzt wird,
dann wird die nächste Regel,
die auf den Fluss B abbildet, identifiziert (Schritt 424).
In diesem Fall wird für
Beispielszwecke angenommen, dass die Verkehrssteuerungsregel für den Fluss
B dieselbe wie die nächste
Verkehrssteuerungsregel für
den Fluss A ist. Wie es unter Bezugnahme auf 3 beschrieben
ist, kann dieselbe Verkehrssteuerungsregel für zwei Flüsse gelten, wenn der Parameter
oder die Parameter, der bzw. die durch die Verkehrssteuerungsregel
geregelt wird bzw. werden, für
beide Flüsse
allgemein ist bzw. sind. Obwohl es in den 3 und 4 nicht
gezeigt ist, kann auch eine einzige Verkehrssteuerungsregel für mehr als
zwei Flüsse
gleichzeitig gelten.
-
Bei
einem Schritt 426 wird für den Fall, in welchem die
nächste
Verkehrssteuerungsregel für den
Fluss A dieselbe wie die nächste
Verkehrssteuerungsregel für
den Fluss B ist, dieselbe Verkehrssteuerungsregel (TCR 3) auf beide
Flüsse
angewendet. Eine Anwendung der Verkehrssteuerungsregel auf die Flüsse A und
B wird auf einer. zusammengesetzten Basis durchgeführt, so
dass die durch die Verkehrssteuerungsregel (TCR 3) zugeteilte gesamte Bandbreite
durch die Gesamtheit der Flüsse
A und B nicht überschritten
wird. Wenn beispielsweise die Verkehrssteuerungsregel mit einem
Token-Speicherbereich implementiert ist, wird derselbe Token-Speicherbereich
jedes Mal dann dekrementiert, wenn die Verkehrssteuerungsregel zulässt, dass
ein Paket durchläuft,
gleichgültig,
ob das Paket vom Fluss A oder vom Fluss B ist.
-
Nimmt
man Bezug auf die Entscheidungsstelle 428, wird dann, wenn
die Verkehrssteuerungsregel 3 durch ein Paket des Flusses A nicht
verletzt wird, das Paket des Flusses A zur nächsten Stelle weitergeleitet
(Schritt 430). Wenn die Verkehrssteuerungsregel 3 durch
ein Paket des Flusses A verletzt wird, dann wird die geeignete verletzte
Handlung vorgenommen (Schritt 432). Wiederum kann die verletzte
Handlung ein Fallenlassen des Pakets oder beispielsweise ein Erniedrigen
der Priorität
des Pakets und dann ein Weiterleiten des Pakets zu einer nächsten Stelle
enthalten. Derselbe Prozess wird für jedes Paket des Flusses B
ausgeführt.
Nimmt man wieder Bezug auf die Entscheidungsstelle 428,
wird dann, wenn die Verkehrssteuerungsregel 3 durch ein Paket des
Flusses B nicht verletzt wird, das Paket des Flusses B zu einer
nächsten
Stelle weitergeleitet (Schritt 430). Wenn die Verkehrssteuerungsregel
3 durch ein Paket des Flusses B verletzt wird, dann wird die geeignete
verletzte Handlung vorgenommen (Schritt 432). Obwohl 4 nur
zwei Ebenen von Verkehrssteuerungsregeln zeigt, sollte es erkannt
werden, dass meh rere Ebenen von Verkehrssteuerungsregeln möglich sind.
Wenn mehr Ebenen von Verkehrssteuerungsregeln vorhanden sind, dann
werden beim Schritt 430 Pakete durch eine andere Verkehrssteuerungsregel
oder durch andere Regeln anstelle dessen einer Zellstromkontrolle
unterzogen, dass sie durch die Netzwerkvorrichtung weitergeleitet
werden.
-
5 ist
eine bildhafte Darstellung der Regelung von vier einzelnen Flüssen, die
drei Ebenen von Verkehrssteuerungsregeln enthält. Wie es beim Beispiel der 5 gezeigt
ist, werden vier zuvor klassifizierte Flüsse (Fluss A, Fluss B, Fluss
C und Fluss D) anfangs auf einer Eins-zu-Eins-Basis durch vier Verkehrssteuerungsregeln
(Verkehrssteuerungsregel 1, Verkehrssteuerungsregel 2, Verkehrssteuerungsregel
3 und Verkehrssteuerungsregel 4) 502, 504, 506 und 508 geregelt.
Für Beispielszwecke
ist angenommen, dass der Fluss A in eine Netzwerkvorrichtung am
Port 1 empfangen wird, vom Typ X ist, von einer Quellen-IP-Adresse
A ist und zu einer Zielort-IP-Adresse B läuft. Gleichermaßen ist
angenommen, dass die Verkehrssteuerungsregel 1 einen Fluss mit denselben
Charakteristiken wie der Fluss A auf 15 Mb/s begrenzt. Der Fluss
B wird am Port 1 empfangen, ist vom Typ X, ist von einer Quellen-IP-Adresse
D und ist bezüglich
einer Zielort-IP-Adresse nicht spezifiziert. Die Verkehrssteuerungsregel
2 begrenzt einen Fluss mit denselben Charakteristiken wie der Fluss
B auf 5 Mb/s. Der Fluss C wird am Port 1 empfangen, ist vom Typ
Y, ist von einer Quellen-IP-Adresse A und läuft zu einer Zielort-IP-Adresse
B. Die Verkehrssteuerungsregel 3 begrenzt einen Fluss mit denselben
Charakteristiken wie der Fluss C auf 10 Mb/s. Der Fluss D wird am Port
1 empfangen, ist vom Typ Y, ist von einer nicht spezifizierten Quellen-IP-Adresse
und läuft
zu einer Zielort-IP-Adresse F. Die Verkehrssteuerungsregel 4 begrenzt
einen Fluss mit denselben Charakteristiken wie der Fluss D auf 20
Mb/s. Die Flüsse
A, B, C und D haben verschiedene ähnliche Charakteristiken. Beispielsweise
sind die Flüsse
A und B beide vom Typ X und sind die Flüsse C und D beide vom Typ Y. Eine
Gleichheit zwischen allen vier Flüssen besteht darin, dass sie
alle am Port 1 in die Netzwerkvorrichtung eintreten.
-
Wie
es in 5 gezeigt ist, wird jeder Fluss anfangs durch
eine flussspezifische Verkehrssteuerungsregel geregelt. Das bedeutet,
dass der Fluss A anfangs durch die Verkehrssteuerungsregel 1 geregelt
wird, der Fluss B anfangs durch die Verkehrssteuerungsregel 2 geregelt
wird usw. Weil der Fluss A und der Fluss B beide vom Port 1 empfangen
werden und beide vom Typ X sind, können sie beide durch eine einzige
Verkehrssteuerungsregel 510 geregelt werden, die für beide
Flüsse allgemein
ist. Für Beispielszwecke
ist angenommen, dass die Verkehrssteuerungsregel 5 die Flüsse vom
Port 1 und vom Typ X auf 15 Mb/s oder darunter regelt. Die Verkehrssteuerungsregel
5 kann alle Flüsse
vom Port 1 und vom Typ X ungeachtet irgendwelcher anderer Unterschiede
regeln, die zwischen Flusscharakteristiken existieren können. Die
Verkehrssteuerungsregel 5 regelt die Ausgabe des Flusses A von der
Verkehrssteuerungsregel 1 und die Ausgabe des Flusses B von der
Verkehrssteuerungsregel 2 auf einer zusammengesetzten Basis. Obwohl
Verkehrssteuerungsregeln einer niedrigeren Ebene für jeden
spezifischen Fluss gezeigt sind, können Verkehrssteuerungsregeln
einer niedrigeren Ebene nicht für
jeden Fluss verwendet werden.
-
Gleichermaßen können deshalb,
weil der Fluss C und der Fluss D beide vom Port 1 empfangen werden
und beide vom Typ Y sind, sie durch eine einzige Verkehrssteuerungsregel 512 geregelt
werden, die für
beide Flüsse
allgemein ist. Für
Beispielszwecke ist angenommen, dass eine Verkehrssteuerungsregel
6 die Flüsse
vom Port 1 und vom Typ Y auf 20 Mb/s oder darunter regelt. Die Verkehrssteuerungsregel
6 kann alle Flüsse
vom Port 1 und vom Typ Y ungeachtet irgendwelcher anderer Unterschiede
regeln, die zwischen Flusscharakteristiken existieren können. Die
Verkehrssteuerungsregel 6 regelt die Ausgabe des Flusses C von der
Verkehrssteuerungsregel 3 und die Ausgabe des Flusses D von der Verkehrssteuerungsregel
4 auf einer zusammengesetzten Basis.
-
Weil
die Flüsse
A, B, C und D alle vom Port 1 sind, können sie auch durch eine einzige
Verkehrssteuerungsregel 514 geregelt werden, die für alle vier Flüsse allgemein
ist. Für
Beispielszwecke ist angenommen, dass eine Verkehrssteuerungsregel
7 Flüsse
vom Port 1 auf 25 Mb/s oder darunter regelt. Die Verkehrssteuerungsregel
7 kann alle Flüsse
vom Port 1 ungeachtet irgendwelcher anderer Unterschiede regeln,
die zwischen Flusscharakteristiken existieren können. Wie es in 5 gezeigt
ist, regelt die Verkehrssteuerungsregel 7 die Ausgabe der Flüsse A und
B von der Verkehrssteuerungsregel 5 und die Ausgabe der Flüsse C und
D von der Verkehrssteuerungsregel 6. Die Verkehrssteuerungsregel
7 ist auf einer zusammengesetzten Basis implementiert, wie es oben
beschrieben ist. Das bedeutet, dass jedes Paket, das durch die Verkehrssteuerungsregel
7 geführt
ist, ungeachtet dessen, von wo ein Fluss entstand, gegenüber der
Bandbreite gezählt
wird, die durch die Verkehrssteuerungsregel 7 zugeteilt ist. Als Ergebnis
der drei Ebenen von Verkehrssteuerungsregeln können Flüsse einzeln geregelt werden,
als Gruppe basierend auf einem Flusstyp geregelt werden und als
Gruppe basierend auf dem Eintrittsport geregelt werden.
-
6 ist
eine weitere bildhafte Darstellung der Regelung von vier einzelnen
Flüssen,
die bis zu drei Ebenen von Verkehrssteuerungsregeln enthält. Beim
Beispiel der 6 werden vier zuvor klassifizierte
Flüsse
(Fluss E, Fluss F, Fluss G und Fluss H) anfangs auf einer Eins-zu-Eins-Basis
durch vier Verkehrssteuerungsregeln (Verkehrssteuerungsregel 8, Verkehrssteuerungsregel
9, Verkehrssteuerungsregel 10 und Verkehrssteuerungsregel 11) 602, 604, 606 und 608 geregelt.
Für Beispielszwecke
ist angenommen, dass der Fluss E vom Port 2 empfangen wird, vom
Typ Y ist, von einer Quellen-IP-Adresse A ist und bezüglich der
Zielort-IP-Adresse nicht spezifiziert ist. Es ist auch angenommen,
dass die Verkehrssteuerungsregel 8 einen Fluss mit denselben Charakteristiken
wie der Fluss A auf 25 Mb/s begrenzt. Der Fluss F ist vom Port 2,
ist vom Typ X, ist von einer Quellen-IP-Adresse B und läuft zu einer Zielort-IP-Adresse
D. Die Verkehrssteuerungsregel 9 begrenzt einen Fluss mit denselben
Charakteristiken wie den Fluss B auf 12 Mb/s. Der Fluss G ist vom
Port 2, ist vom Typ X, ist von einer nicht spezifizierten Quellen-IP-Adresse
und läuft
zu einer Zielort-IP-Adresse C. Die Verkehrssteuerungsregel 10 begrenzt
einen Fluss mit denselben Charakteristiken wie der Fluss G auf 10
Mb/s. Der Fluss H ist breit bzw. allgemein derart klassifiziert,
dass er vom Port 3 ist. Die Verkehrssteuerungsregel 11 begrenzt
einen Fluss mit denselben Charakteristiken wie der Fluss H auf 15
Mb/s oder darunter.
-
Weil
der Fluss F und der Fluss G vom selben Port (Port 2) sind und vom
selben Typ (Typ X) sind, können
die Flüsse,
wenn es nötig
ist, durch eine allgemeine Verkehrssteuerungsregel 610 geregelt
werden. Beispielsweise begrenzt eine Verkehrssteuerungsregel 12
Flüsse
vom Port 2 und vom Typ X, ungeachtet der Quellen-IP-Adresse und
der Zielort-IP-Adresse, auf 15 Mb/s oder darunter. Wie es in 6 gezeigt
ist, werden die Flüsse
F und G durch die Verkehrssteuerungsregel 12 auf einer zusammengesetzten
Basis geregelt, und als Ergebnis wird zugelassen, dass ein Maximum
von 15 Mb/s weitergeleitet wird.
-
Weil
der Fluss E, der Fluss F und der Fluss G vom selben Port (Port 2)
sind, können
die drei Flüsse,
wenn es nötig
ist, durch eine Verkehrssteuerungsregel 612 geregelt werden,
die für
das Port 2 allgemein ist. Beispielsweise begrenzt die Verkehrssteuerungsregel
13 den Fluss vom Port 2, ungeachtet des Typs des Flusses oder der
Quellen- und Zielort-IP-Adressen der ankommenden Flüsse, auf 30
Mb/s oder darunter. Nimmt man Bezug auf 6 regelt
eine Verkehrssteuerungsregel 13 die Ausgabe des Flusses E von der
Verkehrssteuerungsregel 8 und die zusammengesetzte Ausgabe aus den
Flüssen
F und G von der Verkehrssteuerungsregel 12. Der Fluss E, der Fluss
F und der Fluss G werden durch die Verkehrssteuerungsregel 13 auf
einer zusammengesetzten Basis geregelt. Der Fluss H wird durch die
Verkehrssteuerungsregel 12 oder die Verkehrssteuerungsregel 13 nicht
geregelt, weil die Charakteristiken des Flusses H nicht den Charakteristiken
der Verkehrssteuerungsregel 12 oder der Verkehrssteuerungsregel
13 entsprechen. Spezifisch regeln die Verkehrssteuerungsregeln 12
und 13 Flüsse vom
Port 2, während
der Fluss H vom Port 3 ist. Wie es in 6 gezeigt
ist, ist es nicht nötig,
jeden Fluss mit derselben Anzahl von Verkehrssteuerungsregeln zu
regeln. Zusätzlich
ist es nicht nötig,
jeden Fluss mit derselben Ebene einer Spezifiziertheit zu regeln. Beispielsweise
können
dieselben Flüsse
anfangs mit niedrigeren Ebenen einer Spezifiziertheit als andere Flüsse geregelt
werden, die in eine gemeinsame, allgemeinere Flussklassifizierung
passen. Weiterhin kann dieselbe Verkehrssteuerungsregel mehr als zwei
Flüsse
direkt regeln. Beispielsweise kann die Verkehrssteuerungsregel 12
irgendwelche Flüsse
regeln, die in die Flussklassifizierung der Verkehrssteuerungsregel
12 passen.
-
Die
Anwendung der Verkehrssteuerungsregeln auf mehrere Flüsse auf
einer zusammengesetzten Basis ist vorzugsweise in Hardware implementiert. 7 ist
eine bildhafte Darstellung einer anwenderspezifischen integrierten
Schaltung (ASIC) 702, die Verkehrssteuerungsregeln auf
mehr als einen Fluss auf einer zusammengesetzten Basis anwenden
kann, wie es oben beschrieben ist. Die ASIC enthält einen Flussklassifizierer 704,
einen Regelselektor 706 und verschiedene Verkehrssteuerungseinheiten 708, 710, 712, 714, 716, 718, 720 und 722.
Der Flussklassifizierer ist eine auf Hardware basierende Einheit,
die ankommende Pakete nimmt und die Pakete durch einen Fluss klassifiziert.
Beispielsweise kann der Flussklassifizierer Pakete in Flüsse A, B,
C und D aufbrechen bzw. auftrennen. Der Flussklassifizierer verwendet
Anfangsblockinformation von ankommenden Paketen zum Klassifizieren
von Flüssen.
Bei einem bevorzugten Ausführungsbeispiel kann
der Flussklassifizierer bis zu 256.000 eindeutigen Flüssen identifizieren.
-
Der
Regelselektor 706 ist eine funktionelle Einheit, die Flüsse an Verkehrssteuerungseinheiten anpasst.
Vorzugsweise enthält
der Regelselektor einen Zeiger, der einen Fluss auf eine bestimmte
Verkehrssteuerungsregel oder eine Kette von Verkehrssteuerungsregeln
abbildet. Beispielsweise kann der Fluss A durch den Regelselektor
auf die Verkehrssteuerungsregel 1, dann auf die Verkehrssteuerungsregel
3 und dann auf die Verkehrssteuerungsregel 8 abgebildet werden.
-
Die
Verkehrssteuerungseinheiten 708, 710, 712, 714, 716, 718, 720 und 722 sind
die bestimmten Schaltungen, die die unterschiedlichen Verkehrssteuerungsregeln
implementieren. Nimmt man Bezug auf 7, implementiert
jede der Verkehrssteuerungseinheiten (TCUs), TCU 1 bis TCU 8, eine
Verkehrssteuerungsregel. Die Verkehrssteuerungseinheiten werden
dazu verwendet, Flüsse
zu regeln, die auch die Verkehrssteuerungsregeln abbilden. Obwohl
Verkehrssteuerungsregeln primär
eine Bandbreitenzuteilung regeln, können die Verkehrssteuerungsregeln
einige zusätzliche
Kriterien spezifizieren. Zusätzlich
sind, obwohl oben eine als Token-Speicherbereich
implementierte Verkehrssteuerungsregel beschrieben ist, andere Verkehrssteuerungsregelimplementierungen
möglich.
-
Bei
einem Betrieb wird ein in die ASIC 702 der 7 empfangener
Strom durch den Flussklassifizierer 704 in Flüsse klassifiziert.
Der Regelselektor 706 identifiziert dann die Verkehrssteuerungseinheiten 708, 710, 712, 714, 716, 718, 720 und 722,
die auf die identifizierten Flüsse
anzuwenden sind. Die Verkehrssteuerungseinheiten regeln dann die
Flüsse gemäß den Bandbreitengrenzen
der jeweiligen Verkehrssteuerungsregel. Wenn mehr als ein Fluss
auf dieselbe Verkehrssteuerungseinheit abgebildet wird, dann regelt
die Verkehrssteuerungseinheit alle anwendbaren Flüsse auf
einer zusammengesetzten Basis. Pakete von Flüssen, die alle anwendbaren Verkehrssteuerungsregeln
erfüllen,
werden von der ASIC zu einer nächsten
Stelle weitergeleitet. Bei einem bevorzugten Ausführungsbeispiel
werden das System und das Verfahren zum Regeln eines Netzwerkverkehrs
verwendet, bevor der Verkehr durch eine Schaltstruktur eines Schalters
oder eines Routers geführt
wird.