-
Bei
Datennetzen bestehen verschiedene Vermittlungsprinzipien, d. h.
die Art und Weise, nach der Datenströme zwischen den an das Netz
angeschlossenen Kommunikationseinrichtungen weitergelenkt werden.
-
Bei
der Leitungsvermittlung wird die Verbindung der Kommunikationseinheiten
durch das Zusammenschalten von Leitungen hergestellt. Hierbei sind
die Teilnehmer nach der Herstellung der Verbindung direkt miteinander
verbunden.
-
Im
Gegensatz dazu werden bei der Nachrichtenvermittlung die zu übermittelnden
Daten aufgrund ihrer Zieladresse vom Ursprungsknoten über Zwischenknoten,
d. h. Vermittlungsstellen, übertragen.
Eine Sonderform der Nachrichtenübermittlung stellt
die sogenannte Paketvermittlung dar. Dabei werden die zu übertragenden
Daten in Fragmente von bestimmter Länge aufgeteilt, mit Steuerinformationen
einschließlich
Adressinformation versehen und abgesandt. Die adressierten Datenfragmente heißen Datenpakete
bzw. Datenpaketeinheiten. Datennetze auf der Grundlage der Paketvermittlungstechnik
nennt man Paketvermittlungsnetze oder paketvermittelnde Datennetze.
Die Datenpakete bzw. Datenpaketeinheiten DPU (DPU: Data Package
Unit) werden von Vermittlungsknoten zu Vermittlungsknoten weitergeleitet,
ohne dass erst der Empfang aller zum betreffenden Datensatz gehörigen Datenpakete abgewartet
werden muss. Die Datenpakete können dabei
auch auf unterschiedlichen Übertragungswegen
vom Sender zum Empfänger
gelangen. Bei auftretenden Fehlern in Folge von Störungen muss
bei der Paketvermittlungstechnik nur das fehlerhafte Datenpaket
erneut versendet werden und nicht die gesamte Nachricht. Paketvermittlungsnetze
weisen eine gute Auslastung der Verbindungsleitungen aufgrund der
Möglichkeit
auf, dass die Datenpaketströme
entsprechend der Belastungssituation des Datennetzes auf unterschiedlichen
Routen durch das Netz geführt
werden können.
-
Die
Weiterleitung der Datenpakete zum Datennetzwerk erfolgt mittels
Netzwerkprozessoren. 1 zeigt einen Netzwerkprozessor
nach dem Stand der Technik. Der Netzwerkprozessor weist einerseits
Eingangports E und andererseits Ausgangsports A auf. Die maximale
Datenbreite von Daten, die über
die Ports digital übertragen
werden können, hängt von
der Breite des Datenbusses ab. Typisch ist eine Ansteuerung der
Ports über
ein zugehöriges Portregister.
Ports können
sowohl Daten unidirektional als auch bidirektional übertragen.
-
2 zeigt
das Datenformat einer Datenpaketeinheit bzw. eines Datenpakets nach
dem Stand der Technik. Das Datenpaket umfasst einerseits Nutzdaten
bzw. Payload und andererseits Datenpaketverwaltungsdaten bzw. einen
Header.
-
Die
Datenpaketverwaltungsdaten bzw. Header-Daten umfassen typischerweise
ein Übertragungsprotokoll,
eine Zieladresse des Datenpakets DA (DA: Destination Address), eine
Herkunftsadresse SA (SA: Source Address) und gegebenenfalls ein oder
mehrere Indikatortags. Das Kommunikationsprotokoll bzw. Übertragungsprotokoll
umfasst Vereinbarungen und Konventionen, auf Grundlage derer die
Kommunikation zwischen Teilnehmern vollzogen wird. Das OSI-Referenzmodell
ist ein Architekturmodell der Internationalen Standardorganisation
(ISO) für
die Datenkommunikation in offenen Systemen OSI (OSI: Open Systems
Interconnections). Das OSI-Referenzmodell umfasst sieben Schichten:
die Applikationsschicht (application layer), die Darstellungsschicht
(presentation layer), die Sitzungsschicht (session layer), die Transportschicht
(transport layer), die Netzschicht oder Vermittlungsschicht (network
layer), die Sicherungsschicht (data link layer) und schließlich die
physikalische oder Bit-Übertragungsschicht
(physical layer). Jede Schicht weist ein zugehöriges Übertragungsprotokoll auf, welche
kompatibel mit den angrenzenden Schichten ist.
-
In
der Netzwerkschicht (network layer) werden die Datenpakete durch
die Techniken „Switching" und „Routing" durch das Netz transportiert.
Die Netzwerkschicht führt
zudem die logischen Zuordnungen entfernter Rechner, die Adressierung,
Verbindung verschiedener Netze (Internet working), Fehlerbehandlung,
Datenstaukontrolle und die Einreihung von Datenpaketen in Datenströme durch.
In der Sicherungsschicht (data link layer) erfolgt die Übertragungssteuerung
von Dateneinheiten (frames) auf Übermittlungsabschnitten
zwischen den Knoten von Kommunikationsnetzen. Bekannte Datenübertragungsprotokolle
umfassen Ethernet, IP, PPP, HDLC oder das ATM-Datenübertragungsprotokoll.
Die Dienstgüte
QoS (Quality of Service) gibt die kollektive Wirkung einer Dienstleistung
an, welche den Zufriedenheitsgrad eines Nutzers eines Dienstes bestimmt.
Typische QoS-Kriterien sind die Verfügbarkeit, die Verlust- und
Fehlerwahrscheinlichkeit von Datenpaketen, die Verzögerungszeit
von Datenpaketen in Folge von Stau und Überlastungserscheinungen (congestion)
im Datenübertragungsnetz,
die Laufzeit der Datenpakete sowie deren Schwankungen (jittering)
und der Grad der Datenkompression und Pausenunterdrückung. Die
Quality of Service bezeichnet somit alle Faktoren, die die Dienstgüte beeinflussen,
beispielsweise Netzausfallzeiten, Bit-Fehlerraten auf Kanälen, Verzögerungszeiten beim
Verbindungsaufbau, Stabilität
der Verbindung und Blockierungswahrscheinlichkeit. Die QoS wird für verschiedene
Dienste und Netze unterschiedlich definiert.
-
Die
an den Eingangsports des Netzknotens bzw. Netzwerkprozessors ankommenden
Datenpakete werden durch den Netzwerkprozessor einer Klassifizierung
unterzogen. Derartige Klassifizierungen betreffen unter anderem
das Bestimmen eines Ausgangsports, die Dienstqualität bzw. die
Dienstgüte
QoS des Datenpakets, das Erkennen von speziellen Datenpaketen sowie
das Einfügen
von Datenfeldern in das Datenpaket. Bei herkömmlichen Klassifizierungsverfahren
werden Datenpakete, die be stimmte Eigenschaften bzw. Datenpaketparameter aufweisen,
priorisiert behandelt.
-
Datenpakete
weisen einerseits explizit in den Datenpaketverwaltungsdaten angebende
Datenparameter auf, wie beispielsweise Ziel- und Herkunftsadresse
und andererseits implizite Datenpaketparameter bzw. Datenpaketeigenschaften
wie die Ankunftszeit des Datenpakets an einem der Eingangsporte
des Netzwerkprozessor oder die Portnummer des Eingangsports.
-
Bei
herkömmlichen
Verfahren zum Klassifizieren von Datenpaketeinheiten erfolgt die
Klassifizierung anhand eines Datenpaketparameters. Beispielsweise
wird die Dienstgüte
(Quality of Service) in Abhängigkeit
von dem impliziten Datenpaketparameter „Eingangsportnummer" zugewiesen. Bei
anderen Verfahren erfolgt die Klassifizierung in Abhängigkeit von
Indikatortags wie beispielsweise einem Layer-2-Tag wie VLAN oder
einem Layer-3-Tag wie TOS. Bei herkömmlichen Verfahren zum Klassifizieren
von Datenpaketeinheiten ist zudem der Klassifizierungsalgorithmus
vorgegeben und nicht konfigurierbar.
-
Es
ist daher die Aufgabe der vorliegenden Erfindung, ein Verfahren
zum Klassifizieren von Datenpaketeinheiten zu schaffen, bei dem
die Datenpaketparameter und der eingesetzte Klassifizierungsalgorithmus
frei konfigurierbar sind.
-
Diese
Aufgabe wird erfindungsgemäß durch ein
Verfahren mit den im Patentanspruch 1 angegebenen Merkmalen und
durch einen Netzwerkprozessor mit den im Patentanspruch 23 angegebenen Merkmalen
gelöst.
-
Die
Erfindung schafft ein Verfahren zum Klassifizieren von Datenpaketeinheiten,
die jeweils eine aus mehreren Datenpaketparametern bestehende Gruppe
von Datenpaketparametern aufweisen,
wobei eine Untergruppe
von Datenpaketparametern zur Konfiguration eines Klassifizierungsschlüssels ausgewählt wird,
wobei
die Datenpaketeinheiten in Abhängigkeit
von dem konfigurierten Klassifizierungsschlüssel und einem selektierten
Klassifizierungsalgorithmus in Datenpaketklassen unterteilt werden,
wobei den Datenpaketeinheiten weitere Datenpaketparameter zugewiesen
werden, die der jeweiligen Datenpaketklasse entsprechen.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
umfassen die Datenpaketeinheiten Datenpaketverwaltungsdaten und Nutzdaten.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
umfassen die Datenpaketparameter einerseits in den Datenpaketverwaltungsdaten
explizit angegebene Datenpaketparameter und andererseits implizite
Datenpaketparameter.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
werden die Datenpaketeinheiten durch einen Netzwerkprozessor klassifiziert.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
werden die an einem Eingangsport des Netzwerkprozessors ankommenden
Datenpaketeinheiten durch den Netzwerkprozessor klassifiziert und
nach Zuweisung der der Datenpaketklasse entsprechenden weiteren
Datenpaketparameter an einen Ausgangsport des Netzwerkprozessors
abgegeben.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
umfassen die in den Datenpaketverwaltungsdaten der Datenpaketeinheiten
explizit angegebenen Datenpaketparameter ein Übertragungsprotokoll der Datenpaketeinheit,
eine Herkunftsadresse der Datenpaketeinheit, eine Zieladresse der
Datenpaketeinheit sowie ein oder mehrere Indikatortags.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
umfassen die impliziten Datenpaketparameter der Datenpaketeinheit unter
anderem eine Nummer eines Eingangsports, an dem die Datenpaketeinheit
ankommt, eine Paketlänge
der Datenpaketeinheit und eine Ankunftszeit der Datenpaketeinheit.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
werden die Datenpaketverwaltungsdaten und die Nutzdaten der ankommenden
Datenpaketeinheiten durch den Netzwerkprozessor getrennt.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
werden in Abhängigkeit
von dem Übertragungsprotokoll
der Datenpaketeinheit die übrigen
explizit in den Datenpaketverwaltungsdaten angegebenen Datenpaketparameter
extrahiert.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
werden die extrahierten expliziten Datenpaketparameter der Datenpaketeinheit
in einem Kontextspeicher zwischengespeichert.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
bilden die in dem Kontextspeicher zwischengespeicherten expliziten Datenpaketparameter
und die in dem Kontextspeicher zwischengespeicherten impliziten
Datenpaketparameter einen Parameterkontext der Datenpaketeinheit.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
werden mittels eines Schlüssel-Bit-Maps
diejenigen Datenpaketparameter des Parameterkontexts ausgewählt, die
den Konfigurationsschlüssel
bilden.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
werden mehrere Schlüssel-Bit-Maps
jeweils zusammen mit einem zugehörigen
Klassifizierungsselektor in einem Klassifizierungsspeicher gespeichert.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
werden eine Schlüssel-Bit-Map
und ein zugehöriger
Klassifizierungsselektor mittels eines Klassifizierungsindex ausgewählt.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
ist der Klassifizierungsindex in einem externen Funktionsaufruf
enthalten.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
selektiert der Klassifizierungsselektor einen Klassifizierungsalgorithmus aus
einer Gruppe von vorgegebenen Klassifizierungsalgorithmen.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
umfassen die vorgegebenen Klassifizierungsalgorithmen eine direkte Klassifizierung,
ein lineares Suchverfahren, ein logarithmisches Suchverfahren, ein
binäres
CAM-Verfahren, ein
ternäres
CAM-Verfahren sowie ein Hashingverfahren.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
wird der gebildete Konfigurationsschlüssel mittels des selektierten
Klassifizierungsalgorithmus zu einem Look-up-Index reduziert.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
wird der Look-up-Index mit einer Basisadresse zur Adressierung mindestens
eines in einem Auslesespeicher abgespeicherten Datenpaketparameters
oder zur Adressierung eines abgespeicherten Zeigers auf einen Datenpaketparameter
addiert.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
wird der adressierte Datenpaketparameter ausgelesen und der klassifizierten
Datenpaketeinheit zugewiesen.
-
Bei
einer besonders bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
umfasst der zugewiesene Datenpaketparameter unter anderem eine Nummer
eines Ausgangsports des Netzwerkprozessors, eine Dienstgüte der Datenpaketübertragung
(Quality of Service), eine VLAN-ID und eine Policer ID.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
erfolgt die Bildung des Klassifizierungsschlüssels kontinuierlich oder stufenweise.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
wird der Klassifizierungsschlüssel
stufenweise gebildet, indem mindestens ein zuvor bereits gebildeter
Klassifizierungsschlüssel
einen Teil des neuen Klassifizierungsschlüssels bildet.
-
Die
Erfindung schafft ferner einen Netzwerkprozessor zur Klassifizierung
von Datenpaketeinheiten, die jeweils eine aus mehreren Datenpaketparametern
bestehende Gruppe von Datenpaketparametern aufweisen, wobei eine
Untergruppe von Datenpaketparametern zur Konfiguration eines Klassifizierungsschlüssels auswählbar ist,
wobei
die Datenpaketeinheiten in Abhängigkeit
von dem konfigurierten Klassifizierungsschlüssel und einem selektierbaren
Klassifizierungsalgorithmus in Datenpaketklassen unterteilbar sind,
wobei
den Datenpaketeinheiten weitere Datenpaketparameter zugewiesen werden,
die der jeweiligen Datenpaketklasse entsprechen.
-
Im
Weiteren werden bevorzugte Ausführungsformen
des erfindungsgemäßen Verfahrens und
des erfindungsgemäßen Netzwerkprozessors zur
Klassifizierung von Datenpaketeinheiten unter Bezugnahme auf die
beigefügten
Figuren zur Erläuterung
erfindungswesentlicher Merkmale beschrieben.
-
Es
zeigen:
-
1:
einen Netzwerkprozessor nach dem Stand der Technik; Figur die Datenstruktur
einer Datenpaketeinheit nach dem Stand der Technik;
-
3:
ein Beispiel der Datenpaketverwaltungsdaten einer Datenpaketeinheit;
-
4:
ein schematisches Funktionsablaufdiagramm zur Erläuterung
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens;
-
5:
eine Detailansicht des in 4 dargestellten
Funktionsablaufdiagramms zur Erläuterung der
Funktionsweise einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens;
-
6:
Daten innerhalb eines Klassifizierungsspeichers gespeicherte Daten
bei einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens;
-
7:
der Dateninhalt einer Schlüssel-Bit-Map-Tabelle
bei einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens;
-
8:
eine Detailansicht des in 4 dargestellten
Funktionsdiagramms zur Erläuterung
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens;
-
9:
ein Beispiel zur Zusammensetzung eines Klassifizierungsschlüssels gemäß einer
bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens;
-
10:
eine Detailansicht nach dem in 4 dargestellten
Funktionsablaufdiagramm zur Erläuterung
der Funktionsweise einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens;
-
11:
eine Tabelle zur Lokalisierung des auszulesenden Klassifizierungsergebnisses
gemäß einer
bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens.
-
4 zeigt
ein Funktionsablaufdiagramm zur Erläuterung der Funktionsweise
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
zum Klassifizieren von Datenpaketeinheiten. Die Klassifizierung
erfolgt innerhalb eines Netzwerkprozessors 1, der unter
anderem die in 4 dargestellten Speicher- und
Rechenelemente enthält.
Der Netzwerkprozessor 1 enthält mehrere Speicher, nämlich einen
Kontextspeicher 2, einen Klassifizierungsspeicher 3 und
einen Auslesespeicher 4. Darüber hinaus ist ein Speicher 5 zum
Abspeichern einer Tabelle zur Lokalisierung eines Klassifizierungsergebnisses
und ein Speicher 6 zum Abspeichern einer Tabelle für Schlüssel-Bit-Maps vorgesehen.
-
In
dem Klassifizierungsspeicher 3 sind mehrere Schlüssel-Bit-Maps (key bit map)
mit einem jeweils dazugehörigen
Klassifizierungsselektor zum Selektieren eines Klassifizierungsalgorithmus
(method) abgespeichert. Der Dateninhalt des Klassifizierungsspeichers 3 wird
mittels eines externen Klassifizierungsindex (CKT index) ausgewählt. Der
Klassifizierungsindex ist vorzugsweise in einem externen Funktionsaufruf
(function call) enthalten. Bei einem Funktionsaufruf wird ein Schlüssel-Bit-Map
(key bit map) und ein zugehöriger
Klassifizierungsselektor (method) ausgelesen. Die Schlüssel-Bit-Map
ist beispielsweise ein 32-Bit umfassender Bit-Vektor, wobei alle
diejenigen Bits, die logisch hochgesetzt sind, entsprechende Datenpaketparameter
auswählen,
die bei der Bildung des Klassifizierungsschlüssels berücksichtigt werden. Mittels
der Schlüssel-Bit-Map wird
somit eine Untergruppe von Datenpaketparameter- zur Konfiguration
eines Klassifizierungsschlüssels
ausgewählt.
Jedem Datenpaketparameter ist ein bestimmtes Bit dem Bit-Map-Schlüssel zugewiesen. Sobald
das entsprechende Bit in dem Bit-Map-Schlüssel gesetzt ist, wird der
Datenpaketparameter bei der Generierung des Klassifizierungsschlüssels benutzt.
Falls mehrere Datenbits in dem Bit-Map-Schlüssel
gesetzt sind, werden die entsprechenden Datenparameterfelder verkettet
bzw. konkateniert. Die Bildung eines Klassifizierungsschlüssels erfolgt
durch eine Recheneinheit 7 des Netzwerkprozessors 1.
Der gebildete Klassifizierungsschlüssel (class key) wird, wie
in 4 dargestellt, einer Demultiplexereinheit 8 zugeführt, die
in Abhängigkeit von
dem aus dem Klassifizierungsspeicher 3 ausgelesenen Klassifizierungsselektor
(method) den anliegenden Klassifizierungsschlüssel (class key) an eine der
nachgeschalteten Berechnungseinheiten 9-1 bis 9-n durchschaltet.
-
Jede
der nachgeschalteten Berechnungseinheiten 9-i führt einen
vorgegebenen Klassifizierungsalgorithmus zur Reduzierung des gebildeten
Konfigurationsschlüssels
durch. Die Berechnungseinheit 9-1 führt beispielsweise eine direkte
Klassifizierung durch, d. h. der gebildete Klassifizierungsschlüssel (class
key) wird direkt als Look-up-Index (CLT-Index) einem Addierer 10 zugeführt. Die
Berechnungseinheit 9-2 führt ein lineares Suchverfahren
durch. Die in 4 in der Ausführungsform
dargestellte Berechnungseinheit 9-3 führt ein binäres CAM-Verfahren durch, während die
Berechnungseinheit 9-4 ein ternäres CAM-Verfahren durchführt. Die
in 4 dargestellte Berechnungeinheit 9-5 führt ein
Hashing-Verfahren durch. Bei einer bevorzugten Ausführungsform
des erfindungsgemäßen Netzwerkprozessors 1 umfasst
der generierte Klassifizierungsschlüssel (class key) maximal 138
Bits. Da der Klassifizierungsschlüssel bis zu 138 Bits lang ist,
kann er nicht zur direkten Adressierung des Auslesespeichers 4 eingesetzt
werden. Der Klassifizierungsschlüssel wird
bei Bedarf mittels einer der Berechnungseinheiten 9-i zu
einem Look-up-Index (CLT-Index) reduziert, um den Auslesespeicher 4 zu
adressieren.
-
5 zeigt
einen entsprechenden Ausschnitt aus dem Funktionsablaufdiagramm,
das in 4 dargestellt ist.
-
6 zeigt
den Dateninhalt des Klassifizierungsspeichers 3 bei einer
bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens.
Bei der in 6 dargestellten Ausführungsform
umfasst der darin abgespeicherte Klassifizierungsschlüssel-Bit-Map 32 Bits
zur Auswahl von Datenpaketparametern aus einer Gruppe von 32 Datenpaketparametern
und mit 4 Bits als Klassifizierungsselektor zur Auswahl des Klassifizierungsverfahrens.
-
Werden
beispielsweise fünf
Klassifizierungsverfahren, nämlich
ein direkter Klassifizierungsalgorithmus (method = 0), ein lineares
Suchverfahren (method = 1), ein binäres CAM-Verfahren (method = 2),
ein ternäres
CAM-Verfahren (method = 3) und ein Hashing-Verfahren (method = 4)
unterstützt,
liefern weitere Datenbits notwendige Informationen für die unterschiedlichen
Klassifizierungsalgorithmen. Ein Flag zeigt zudem an, ob eine stufenweise
Klassifizierung oder eine kontinuierliche Klassifizierung erfolgt.
-
7 zeigt
den Dateninhalt des Speichers 6 bei einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens.
in dem Speicher 6 ist eine Tabelle abgespeichert. Ein Bit
in dem Schlüssel-Bit-Map
(key bit map), die in dem Klassifizierungsspeicher 3 abgespeichert
ist, entspricht einem Eintrag in dieser Tabelle. Die Position des
Bit in dem Schlüssel-Bit-Map stellt den Index
zur Adressierung eines Eintrags in der Tabelle dar. Bei einer bevorzugten
Ausführungsform
weist daher der Speicher 6 32 Dateneinträge auf,
wobei jeder Dateneintrag eine 16-Bit-Adresse eines Datenfeldes in
dem Kontextspeicher 2 umfasst und eine 5-Bit breite Angabe
zur Breite eines adressierten Datenfeldes (field) in dem Kontextspeicher 2.
-
Bei
der Ankunft eines Datenpakets an einem Port des Netzwerkprozessors 1 werden
zunächst
die Datenpaketverwaltungsdaten (Header) und die Nutzdaten (payload)
voneinander getrennt. Jedes an einem Eingangsport des Netzwerkprozessors 1 ankommende
Datenpaket weist einerseits in den Datenpaketverwaltungsdaten (Header)
des Datenpakets explizit angegebene Datenpaketparameter, beispielsweise Übertragungsprotokoll,
Herkunftsadresse, Zieladresse oder Indikatortags auf, und andererseits
implizite Datenpaketparameter, wie beispielsweise die Nummer des
Eingangsports, die Paketlänge
des Datenpakets sowie die Ankunftszeit des Datenpakets an dem Eingangsport
des Netzwerkprozessors 1. Aus den abgetrennten Datenpaketverwaltungsdaten
(Header) wird das Übertragungsprotokoll der
ankommenden Datenpaketeinheit bestimmt. In Abhängigkeit von dem erkannten Übertragungsprotokoll
der Datenpaketeinheit und dem damit in Verbindung stehenden Datenformat
der Datenpaketeinheit werden die übrigen explizit in den Datenpaketverwaltungsdaten
angegebenen Datenpaketparameter extrahiert. Die extrahierten Datenpaketparameter der
Datenpaketeinheit werden dann in dem Kontextspeicher 2 zwischengespeichert.
Neben den zwischengespeicherten expliziten Datenpaketparametern
können
die zugehörigen
impliziten Datenpaketparameter der ankommenden Datenpaketeinheit, wie
beispielsweise die Nummer des Eingangsports, ebenfalls in dem Kontextspeicher 2 zwischengespeichert
werden. Jeder Datenpaketparameter, d. h. sowohl die impliziten Datenpaketparameter
als auch die expliziten Datenpaketparameter, sind in einem zugehörigen Datenfeld
(field) unter einer im Speicher 6 angegebenen Adresse und
mit einer im Speicher 6 angegebenen Bitbreite (width) abgespeichert.
-
Wie
man aus 8 erkennen kann, generiert die
Berechnungseinheit 7 schrittweise aus denen mittels des
Bit-Map-Schlüssels ausgewählten Datenpaketparametern
schrittweise einen Klassifizierungsschlüssel.
-
9 zeigt
ein Beispiel für
die Bildung eines Klassifizierungsschlüssel durch eine Berechnungseinheit 7.
Mittels des aus dem Klassifizierungsspeicher 3 ausgelesenen
Schlüssel-Bit-Maps werden bei dem
angegebenen Beispiel aus mehreren Datenpaketparametern wie Zieladresse
(MAC DA), Herkunftsadresse (MAC SA), VID, IP-Herkunftadresse (IP
SA), IP-Zieladresse (IP DA), TOS etc. zwei Datenpaketparameter ausgewählt, nämlich einmal
das erste Datenfeld MAC DA und das dritte Datenfeld VID, d. h. die
Klassifizierung erfolgt auf Grundlage einer Untergruppe von Datenpaketparametern,
wobei die Untergruppe im angegebenen Beispiel aus den beiden Datenpaketparametern
MAC DA und VID besteht.
-
Die
Berechnungseinheit 7 initialisiert anfänglich den zu bildenden Klassifizierungsschlüssel auf
0, wie man in 9 erkennen kann. Entsprechend
der Schlüssel-Bit-Map
wird der Dateninhalt des ausgewählten
Datenfeldes (MAC DA) addiert. Schließlich wird der Dateninhalt
des nächsten
Datenfeldes VID kettenförmig
angehängt,
um den Klassifizierungsschlüssel
zu bilden. Die Berechnungseinheit 7 verkettet die Dateninhalte
der durch den Bit-Map-Schlüssel
ausgewählten
Datenpaketparameter, die aus dem Kontextspeicher 2 ausgelesen werden.
-
Sobald
die Bildung des Klassifizierungsschlüssels durch die Berechnungseinheit 7 abgeschlossen
ist, wird der gebildete Schlüssel
in Abhängigkeit
von dem Klassifizierungsselektor und dem Demultiplexer 8 an
eine der Berechnungseinheiten 9-i durchgeschaltet, die
unterschiedliche Klassifizierungsalgorithmen durchführen, d.
h. der gebildete Klassifizierungsschlüssel wird in Abhängigkeit
von dem ausgewählten
Klassifizierungsalgorithmus zu einem Look-up-Index (CLT-Index) reduziert.
Der gebildete Look-up-Index (CLT-Index) bildet eine Offset-Adresse
zum Auslesen eines Dateninhaltes aus dem Auslesespeicher 4.
-
In
einem Speicher 5 ist eine Tabelle abgespeichert, um das
Klassifizierungsergebnis aus dem Auslesespeicher 4 auszulesen.
Die Tabelle umfasst mehrere Dateneinträge, die durch einen Steuerindex (CRLT-Index)
adressiert werden. Der Steue rungsindex bildet vorzugsweise einen
Teil eines Funktionsaufrufs (function call). Jeder Dateneintrag
enthält eine
Basisadresse zur Adressierung eines Speicherbereichs innerhalb des
Auslesespeichers 4. Diese Basisadresse wird mittels des
Addierers 10 mit dem generierten Look-up-Index zur Bildung
einer Adresse des Auslesespeichers 4 addiert.
-
11 zeigt
den Dateninhalt eines Speichers 5 bei einer bevorzugten
Ausführungsform
des erfindungsgemäßen Verfahrens.
Der Look-up-Index wird mit der Basisadresse zur Adressierung mindestens
eines in dem Auslesespeicher 4 abgespeicherten Datenpaketparameters
addiert. Bei einer alternativen Ausführungsform wird ein Datenpaketparameter
nicht direkt adressiert, sondern es wird ein Pointer bzw. ein abgespeicherter
Zeiger auf einen Datenpaketparameter adressiert, wobei dies mittels
eines Anzeigebits (result interpretation) angezeigt wird. Aus dem
Auslesespeicher 4 wird für jede klassifizierte Datenpaketeinheit
mindestens ein Datenpaketparameter ausgelesen und der Datenpaketeinheit
zugewiesen. Der zugewiesene Datenpaketparameter umfasst beispielsweise
die Nummer eines Ausgangsports des Netzwerkprozessors 1 oder
eine Dienstgüte
der Datenpaketübertragung
(Quality of Service). Das erfindungsgemäße Verfahren zum Klassifizieren von
Datenpaketeinheiten, wie es schematisch in 4 dargestellt
ist, erlaubt eine flexible frei konfigurierbare Klassifizierung
von Datenpaketen anhand einer Gruppe von auswählbaren Datenpaketparametern.
Das erfindungsgemäße Klassifizierungsverfahren
ist daher entsprechend den Anforderungen änderungsfreundlich.
-
Besteht
ein Klassifizierungsergebnis aus mehreren Parametern, werden diese
adressiert, indem man den CRLT-Index inkrementiert.
-
Bei
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
kann die Bildung des Klassifizierungsschlüssels durch die Berechnungseinheit 7 kontinuierlich
oder stufenweise erfolgen. Wird der Klassifizierungsschlüssel (class
key) stufenweise gebildet, bildet mindestens ein zuvor bereits gebildeter
Klassifizierungsschlüssel
einen Teil eines neuen Klassifizierungsschlüssels. Bei der stufenweise
Klassifizierung wird der nächste
Eintrag innerhalb des Klassifizierungsspeichers 3 bearbeitet,
wobei der erhaltene Look up Index (LT) an den generierten Klassifizierungsschlüssel angehängt wird.
-
Bei
einer kontinuierlichen Klassifizierung (continued classification
indicator = 1) wird der nächste
Dateneintrag als Klassifizierungspeicher nur dann bearbeitet, wenn
die vorangegangene Klassifizierung zu keinem Ergebnis geführt hat.
-
Die
in 4 dargestellten Speicher, d. h. der Kontextspeicher 2,
der Klassifizierungsspeicher 3, der Auslesespeicher 4 sowie
die Speicher 5, 6 durch die Adressierung sind
vorzugsweise als RAM-Speicher innerhalb des Netzwerkprozessors 1 ausgebildet.
Bei einer bevorzugten Ausführungsform
befinden sich die unterschiedlichen Speicher 2, 3, 4, 5, 6 innerhalb
verschiedener Speicherbereiche des gleichen RAM-Speichers. Die Berechnungseinheit 7 ist entweder
als Schaltung hardware mäßig implementiert
bzw. wird als Software durch einen Mikroprozessor in Abhängigkeit
von einem Assembler bzw. Firmenware-Programm ausgeführt. Auch
die Reduzierung des Klassifizierungsschlüssels durch die Berechnungseinheiten 9-i erfolgt
entweder verdrahtet oder mittels Software.
-
Die
Klassifizierung eines Datenpakets erfolgt bei dem erfindungsgemäßen Verfahren
mittels mehrerer Kriterien bzw. Datenpaketparameter mit der Möglichkeit,
durch den Anwender verschiedene Merkmale bzw. Datenpaketparameter
und verschiedene Klassifizierungsalgorithmen auszuwählen. Klassifizierungen
mittels verschiedener Datenpaketparameter können dabei untereinander mit
unterschiedlichen Datenpaketmerkmalen ausgeführt werden. Das Ergebnis einer
Klassifizierung kann selbst ein Merkmal für eine nachfolgende Klassifizierung
eines Datenpakets darstellen. Längere
Klassifizierungsschlüssel
können
als Kette von einzelnen kürzeren
Schlüsselstrukturen
behandelt werden.
-
- E
- Eingangsport
- A
- Ausgangsport
- DA
- Zieladresse
- SA
- Herkunftsadresse
- 1
- Netzwerkprozessor
- 2
- Kontextspeicher
- 3
- Klassifizierungsspeicher
- 4
- Auslesespeicher
- 5
- Speicher
- 6
- Speicher
- 7
- Recheneinheit
- 8
- Demultiplexereinheit
- 9
- Berechnungseinheit
- 10
- Addierer