-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft das Routing von Datenpaketen in einem
Kommunikationsnetz gemäß der im
Header jedes Datenpakets enthaltenen Adressen (oder Richtungsinformationen).
Im Besonderen bezieht sich die Erfindung auf die Bearbeitung großer Datenpaketmengen
in Routing-Knoten, in denen Cache-Speicher zum Speichern von zuvor verwendeten
Adressen und zugehörigen
Routing-Informationen eingesetzt werden, um die bei jedem Auftreten
häufig
verwendeter Datenpaketadressen auszuführende Nachschlageoperation
in einer Routing-Tabelle zu vermeiden. Als Datenpaket kann jede
beliebige Informationseinheit angesehen werden, wie z. B. die von
CPUs verarbeiteten.
-
Hintergrund
-
Bei
modernen Kommunikationssystemen wie dem Internet, die auf der Übertragung
von Datenpaketen basieren, werden in jedem Vermittlungsknoten pro
Sekunde Millionen von Datenpaketen anhand der im Header des Datenpakets
enthaltenen Adressinformationen von einem Eingangskanal an einen
von mehreren Ausgangskanälen
weitergeleitet. Die Zuordnung von Datenpaketadresse und Ausgangskanal
(oder Leitweg) ist in einer Routing-Tabelle des Vermittlungsknotens
gespeichert und pro Datenpaket wird eine Nachschlage- oder Suchoperation
in dieser Tabelle ausgeführt,
um die auch als Ausgangskanalinformationen bezeichneten Routing-Informationen abzurufen.
Dieses Nachschlagen kann Verzögerungen
verursachen, wenn die Ressourcen begrenzt sind.
-
Da
viele Datenpakete, beispielsweise periodisch gesendete Datenpakete
bei der Übertragung
von Sprache oder Datenpakete bei der Burst-Übertragung von Dateien, dieselbe
Adresse enthalten, hat man Cache-Speicher eingesetzt, in denen jede
Adresse bei ihrem ersten Auftreten und die entsprechenden ihr zugeordneten
Ausgangskanalinformationen oder Routing-Informationen gespeichert
wurden, nachdem diese durch eine Nachschlageoperation ermittelt
worden waren. So lassen sich zwar viele wiederholt auszuführende Suchaktionen
nach derselben Adresse vermeiden, aber es wird viel Kapazität des Cache-Speichers benötigt. Aufgrund
der begrenzten Größe jedes
Cache-Speichers
müssen
jedoch Speicherpositionen zur Aufnahme neuer Cache-Einträge gelöscht werden,
wenn der Cache-Speicher voll ist. Häufig wird für diese Aufgabe ein LRU-Algorithmus
(Last Recently Used, LRU) verwendet, der die Cache-Einträge löscht, die
offensichtlich längere
Zeit nicht genutzt wurden.
-
Wenn
die Speicherverwaltung des Cache-Speichers einen LRU-Algorithmus anwendet
und das Kommunikationssystem eine große Anzahl von Datenpaketen
im Rahmen von periodischem Datenverkehr, wie z. B. bei der Übertragung
von Audio- oder Videodaten, übertragen
muss, treten zwischen aufeinander folgenden Datenpaketen derselben
periodischen Übertragung
viele zwischengeschaltete Datenpakete auf, sodass die meisten Cache-Einträge gelöscht würden, bevor
sie erneut verwendet werden können.
Dies ist natürlich
nicht sehr effektiv. Außerdem
sollte einigen Datenverkehrskategorien eine höhere Priorität eingeräumt werden
als anderen. Daher muss das Verfahren zum Erstellen von Cache-Einträgen optimiert
oder verbessert werden, damit die aufwändige Verarbeitung und die
Verschwendung von Cache-Speicherkapazität für Cache-Einträge, die
selten oder sogar nur einmal genutzt werden, vermieden werden.
-
Die
Verwendung von Cache-Speichern in den Routern von Systemen zur Weiterleitung
von IP-Datenpaketen wurde in der folgenden Veröffentlichung erörtert: „IP Switching
and Gigabit Routers" von
Peter Newman et al., IEEE Communications Magazine, Band 35, Nr.
1 (Januar 1997), S. 64–69.
Als Ergebnis dieser Untersuchung zeigte sich, dass das Zwischenspeichern
im Cache über
Hochgeschwindigkeitsverbindungen mit einer Datenübertragungsrate von 1 GBit/s
und mehr aufgrund fehlender Lokalität in den Adressen nicht sinnvoll
ist. Ein anderer in dem o. g. Artikel erörterter Ansatz, der ein spezielles
(Ypsilon) IP-Vermittlungssystem beschreibt, unterscheidet sich konzeptionell
darin, dass er die Weiterleitung von verbindungslosem IP-Datenverkehr über eine
verbindungsorientierte ATM-Datenverkehrsinfrastruktur vorsieht.
-
Die
Klassifizierung von Datenpaketen in IP-Vermittlungsknoten gemäß dem Inhalt
der Datenpaket-Header wurde von T. V. Lakshman und D. Stiliadis
in „High-speed
Policy-based Packet Forwarding Using Efficient Multi-dimensional
Range Matching",
Proc. ACM SIGCOMM'98,
Comp. Commun. Rev., Band 28, Nr. 4, Okt. 1998, S. 203–214 sowie
von P. Gupta und N. McKeown in „Packet Classification on
Multiple Fields", ACM
SIGCOMM'99, Comp.
Commun. Rev., Band 29, Nr. 4, Okt. 1999, S. 147–160 erörtert.
-
Ein
aus dem Jahr 1999 stammendes Whitepaper von CISCO Systems mit dem
Titel „NetFlow
Services and Applications" (http://www.cisco.com/warp/public/cc/pd/iosw/ioft/neflct/tech/napps-wp.pdf)
beschreibt ein System, das einen neuen Eintrag in den Cache-Speicher
einfügt,
sobald ein zu einem neuen Datenfluss gehörendes Paket erkannt wurde. Über die
Cache-Einträge
wird der schnelle Zugriff auf Routing-Informationen sichergestellt.
Da jedoch jeder neue Datenfluss durch einen neuen Eintrag im Cache-Speicher dargestellt
wird, ist der Cache-Speicher eventuell nicht groß genug, um alle unterschiedlichen
vorhandenen Datenflüsse
zu berücksichtigen.
-
In
keiner der genannten Veröffentlichungen
wurden für
Systeme zur verbindungslosen Datenpaketübertragung Verfahren vorgeschlagen,
durch die als Reaktion auf die Auswertung von Datenpaket-Headern
bestimmte Datenflüsse
oder Datenverkehrskategorien für
die Eintragung in einem Cache-Speicher
ausgewählt werden,
um einerseits spätere
Nachschlageoperationen zur Suche von Datenpaketen aus demselben
Datenfluss oder derselben Datenverkehrskategorie und andererseits
die Erstellung nutzloser Einträge
im Cache-Speicher zu vermeiden.
-
Aufgaben der
Erfindung
-
Eine
Aufgabe der Erfindung besteht darin, die Nutzung des Cache-Speichers zu verbessern.
-
Dies
ist von besonderem Vorteil bei Vorrichtungen für die Datenpaketverarbeitung,
die in Vermittlungsknoten oder Routern enthalten sind. Vor allem
Cache-Einträge,
die mit höherer
Wahrscheinlichkeit als andere verwendet werden oder Cache-Einträge für Datenverkehrsarten,
für die
das Nachschlagen in der Routing-Tabelle größere Verzögerungen nach sich zieht als
für andere,
sollten gegenüber
anderen Cache-Einträgen,
beispielsweise für
periodischen Datenverkehr, privilegiert oder bevorzugt werden.
-
Überblick über die
Erfindung
-
Vorgeschlagen
wird ein Verfahren für
das Einfügen
von Cache-Einträgen in einen
Cache-Speicher, bei dem ankommende Datenpakete anhand von Adressinformationen
zu Ausgangskanälen
geleitet werden. Das Verfahren umfasst die folgenden Schritte:
- a) einen Auswertungsschritt zur Auswertung
der Klassifizierungsinformationen jedes ankommenden Datenpakets,
die über
die Art des Datenverkehrsflusses oder die Priorität des Datenverkehrs
Auskunft geben, denen das Datenpaket zugeordnet ist;
- b) einen Auswahlschritt, in dem auf der Grundlage des Auswertungsschrittergebnisses
ausgewählt
wird, ob der Cache-Eintrag
für das
Datenpaket in den Cache-Speicher eingefügt werden soll;
- c) einen Eintragungsschritt, in dem für das Datenpaket die Adressinformationen
und die zugeordneten Ausgangskanalinformationen als Cache-Eintrag
in den Cache-Speicher
eingefügt
werden, falls der Auswahlschritt zu dem Ergebnis führte, dass
der Cache-Eintrag eingefügt
werden soll.
-
Das
Verfahren ermöglicht
die Beibehaltung von Cache-Einträgen
bei Datenpaketflüssen,
für die
vorhersehbar ist, dass zusätzliche
Datenpakete desselben Datenpaketflusses innerhalb einer relativ
kurzen, als Rate der Datenpaketankunft gemessenen Zeitspanne nachfolgen
werden; im Gegensatz zu Datenpaketeinträgen bei Datenverkehrsflüssen, die
mehr oder weniger gleichmäßig verteilt
oder in Zeitintervalle eingeteilt sind und bei denen beispielsweise
etliche Datenpakete zwischen zwei aufeinander folgenden Datenpaketen
desselben Datenflusses zwischengeschaltet sind. Periodische Datenpaketflüsse, die
besonders gekennzeichnet sind, beispielsweise als Datenpaketflüsse hoher
Priorität,
lassen sich mit diesem Mechanismus jedoch trotzdem für die Zwischenspeicherung
im Cache auswählen.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung wird eine Vorrichtung
bereitgestellt, die in Anspruch 11 definiert wird.
-
Folglich
hat der Einsatz dieser Erfindung folgende Vorteile: Der Cache-Speicher
kann kleiner als bei herkömmlichen
Verfahren zur Erstellung von Cache-Einträgen sein, weil die Erstellung
von Cache-Einträgen auf
die Kandidaten, d. h. auf die Datenverkehrsflüsse beschränkt werden kann, bei denen
in der Zukunft eine hohe Wahrscheinlichkeit besteht, dass Cache-Treffer
erzielt werden. Datenverkehr mit periodischen oder sogar gelegentlichen
Datenübertragungen,
für den
ohnehin ein normales Nachschlageverfahren erforderlich wäre, da deren
Cache-Einträge
in dem Zeitintervall zwischen zwei auftretenden Datenpaketen desselben
Datenflusses gelöscht
würden,
belastet weder die Kapazität
des Cache-Speichers noch die Einheiten, die die Cache-Einträge verwalten.
-
Die
Erfindung kann besonders sinnvoll in Kommunikationssystemen eingesetzt
werden, die auf der Übertragung
von Datenpaketen basieren und in denen Datenpakete in Vermittlungsknoten
oder Routern je nach den im Header des Datenpakets enthaltenen Adressinformationen
von einem Eingangskanal an einen von mehreren Ausgangskanälen weitergeleitet
werden. Die Zuordnung von Datenpaketadresse und Ausgangskanal oder
Leitweg wird in einer Routing-Tabelle des Vermittlungsknoten gespeichert,
und pro Datenpaket wird in dieser Tabelle eine Nachschlage- oder
Suchoperation ausgeführt,
um die auch als Ausgangskanalinformationen bezeichneten Routing-Informationen
abzurufen. Daher werden üblicherweise
Datenpakete für das
Einfügen
eines Cache-Eintrags im Cache-Speicher ausgewählt, die zusammen einen Datenpaketfluss
bilden.
-
Das
Konzept ist nicht auf Systeme für
die Datenpaketübertragung
beschränkt,
sondern kann in anderen Systemen verwendet oder an diese Systeme
angepasst werden, in denen wiederholt auf Suchmechanismen zurückgegriffen
wird, zu denen beispielsweise Systeme zählen, deren Datenbanken von
verschiedenen Benutzern mit unterschiedlicher Häufigkeit oder Dringlichkeit
abgefragt werden. Computersysteme verfügen auch über einen Daten-Cache, auf
den diese Erfindung in vorteilhafter Weise beispielsweise im Zusammenhang
mit einer Verzweigungstabelle angewendet werden könnte, deren
Daten nicht als Cache-Eintrag in den Cache-Speicher eingefügt werden sollten, weil ein
bald darauf erfolgender weiterer Zugriff auf dieselben Daten unwahrscheinlich
ist, während
eine häufig
für ein
Programm verwendete Variable ein Fall wäre, für den das Einfügen eines
Cache-Eintrags empfohlen wird.
-
Kurzbeschreibung
der Zeichnungen
-
Ausführungsarten
der Erfindung werden unter Bezugnahme auf die folgenden beiliegenden
Zeichnungen beschrieben:
-
1 stellt
anhand eines Blockdiagramms einen in einem Vermittlungsknoten oder
Router enthaltenen Rx-Netzprozessor dar, der eine Nachschlage-Engine
zum Ausführen
von Nachschlageoperationen in einer Routing-Tabelle und einer IP-Vermittlungseinheit
sowie einen Parser (Syntaxanalysierer) für Datenpaket-Header und einen
Cache-Speicher umfasst, und in dem der Header-Parser und die Nachschlage-Engine zusammenarbeiten,
um die Adressen und Ausgangskanalinformationen bestimmter Datenflüsse für die Erstellung
von Cache-Einträgen
auszuwählen;
-
2 stellt
anhand eines Datenpaket-Headers schematisch dar, welche Operationen
der Header-Parser ausführt,
um bei einer expliziten Anzeige einer Priorität über die Erstellung von Cache-Einträgen zu entscheiden;
-
3 stellt
anhand eines Datenpaket-Headers die schematische Darstellung der
Operationen dar, die von der die Routing-Tabelle enthaltenden Nachschlage-Engine 19 in
Verbindung mit dem Header-Parser
ausgeführt
werden, um im Fall einer implizit codierten Priorität über die
Erstellung von Cache-Einträgen
zu entscheiden;
-
4 stellt
einen Datenpaket-Header für
die Bulk-Übertragung
von Datenpaketen in TCP-Datenflüssen
dar, in dem Anfang und Ende einer Datenpaketgruppe aus den Einträgen SYN
und FIN ableitbar sind, und der bei diesen Datenflüssen über die
Erstellung von Cache-Einträgen
entscheidet.
-
Detaillierte
Beschreibung der Ausführungsarten
-
Netzprozessor
-
1 ist
eine schematische Darstellung eines Netzprozessors in einem Knoten
eines Kommunikationssystems, in dem die auch als Protokolldateneinheiten
oder PDUs (Protocol Data Units) bezeichneten Header ankommender
Datenpakete analysiert werden, sodass jedes Datenpaket an einen
von mehreren Ausgabeports geleitet oder unterdrückt werden kann, wenn die aktuelle
Richtlinie dies erfordert.
-
Der
Datenpaketstrom wird über
einen Bus 11 empfangen und jedes Datenpaket wird in eine PDU-Pipeline 13 eingegeben,
um Zeit für
den Schritt der Header-Auswertung zu reservieren. Jeder Datenpaket-Header
wird über
eine Eingabe 15 in einen Header-Parser 17 eingegeben, der die
auch als Klassifizierungsinformationen bezeichneten relevanten Informationen
wie IP-Adresse des Empfängers,
Priorität,
Dienstklasse (Class of Service) etc. aus dem Header extrahiert und über eine
Verbindung 21 an eine Nachschlage-Engine 19 überträgt. Die
Nachschlage-Engine 19 enthält eine auch als Routing- oder
Regeltabelle bezeichnete Nachschlagetabelle, in der für jede IP-Adresse
des Empfängers
etc. der entsprechende Ausgabeport (Empfänger-Portnummer) des Knotens
und andere Verarbeitungsinformationen gespeichert werden. In der Routing-Tabelle wird ein
Nachschlageschritt ausgeführt.
Das Nachschlageergebnis wird über
die Leitungen 23 an einen Policer 25 und dann über die
Leitungen 27 an eine Vermittlungseinheit 29 übertragen,
die die Datenpakete von der Pipeline 13 empfängt und
jedes Datenpaket gemäß den von
der Nachschlage-Engine 19 und dem Policer 25 empfangenen
Routing-Informationen über die
Verbindungen 31 an die korrekte Empfänger-Portnummer leitet. Je
nach den im Policer 25 gespeicherten Richtlinien kann der
Policer entweder die von der Nachschlage-Engine 19 empfangenen
Ausgangskanalinformationen oder ein No-Go-Signal an die Vermittlungseinheit 29 senden,
sodass die weitere Übertragung
eines Datenpakets (PDU) unterdrückt
werden kann, wenn die Richtlinie dies erfordert.
-
Die
Datenpakete können
auch über
die Leitungen 33 an eine PCI-Schnittstelle 35 übertragen
werden, von der sie über
die Verbindungen 37 an einen Steuerungsprozessor (nicht
abgebildet) zur speziellen Verarbeitung weiter verteilt werden.
-
Zur
Einsparung der für
die Nachschlageoperationen benötigten
Zeit wird ein Cache-Speicher 39 bereitgestellt, in den
Ausgabeinformationen wie die Port-ID des Empfängers etc., die bei einer früheren Nachschlageoperation
ermittelt wurden, zusammen mit der Eingabe (IP-Adresse des Empfängers) gespeichert
werden. Wenn eine IP-Adresse des Empfängers oder eine andere relevante
Eingabe in den Leitungen 21 auftaucht, wird diese ebenfalls
in den Cache-Speicher 39 übertragen, und bei Entdeckung
dieser Daten im Cache-Speicher 39 werden die entsprechenden
Ausgabeinformationen über
die Leitungen 41 an die Nachschlage-Engine 19 übertragen,
die dann die Nachschlageoperation stoppen und die Ausgabeinformationen über die Leitungen 23 an
den Policer 25 und die Vermittlungseinheit 29 übertragen
kann. Wenn die IP-Adresse des Empfängers noch nicht im Cache-Speicher 39 gespeichert
war, werden die entsprechenden in einer Suchoperation ermittelten
Ausgabeinformationen über
die Leitungen 43 von der Nachschlage-Engine 19 empfangen, sodass
beide Datenarten im Cache-Speicher 39 gespeichert werden
können.
-
Da
die Größe des Cache-Speichers 39 begrenzt
ist, wäre
er nach einiger Zeit voll und alte Cache-Einträge müssten gelöscht werden, um das Speichern
neuer Einträge
im Cache zu ermöglichen.
Der allgemein bekannte LRU-Algorithmus (Least-Recently Used) kann
für das
Auswählen
der zu löschenden
Cache-Einträge verwendet
werden. Es kann allerdings sein, dass die Verwendung des LRU-Algorithmus,
wie bereits in der Einführung
erwähnt,
kein adäquates
Verfahren darstellt, denn bei periodischen Datenübertragungen befinden sich zwischen
zwei aufeinander folgenden Datenpaketen desselben Datenflusses viele
zwischengeschaltete Datenpakete, sodass viele Cache-Einträge des Cache-Speichers 39 gelöscht werden,
bevor sie erneut verwendet werden können. Daher wird eine andere
Lösung
eingeführt,
mit der sich die Nutzung der Kapazität des Cache-Speichers 39 optimieren
lässt.
-
Auswahlverfahren für das Zwischenspeichern
im Cache
-
Cache-Einträge werden
für die
in einem Auswahlschritt ausgewählten
Datenpakete erstellt, die beispielsweise eine höhere Priorität haben
oder andere Kriterien erfüllen
und z. B. eine Start-ID für
den Datenfluss aufweisen, die den erwarteten Empfang von nachfolgenden
Datenpaketen mit identischer Adresse (z. B. TCP – SYN) anzeigt. Eine Gruppe
solcher Datenpakete, die in diesem Sinne zusammengehören, wird
als Datenpaketfluss bezeichnet. Der Auswahlschritt könnte, wie
in 2 für
eine erste Ausführungsart
dargestellt, vom Header-Parser 17 ausgeführt werden,
der über
die Leitungen 21 ein entsprechendes Signal an den Cache-Speicher 39 und
an die Nachschlage-Engine 19 sendet. Eine andere Lösung, wie
in 3 für
eine zweite Ausführungsart
dargestellt, besteht darin, die Auswahl von dem Ergebnis der Nachfrageoperation
in der Nachschlage-Engine 19 abhängig zu machen, die dann ein
entsprechendes Auswahlsignal über
die Leitungen 43 an den Cache-Speicher 39 sendet.
Dieses zweite Schema wird verwendet, wenn beispielsweise die Priorität der Datenpakete
nicht explizit aus dem Datenpaket-Header abgeleitet werden kann,
sondern während
eines Prozesses zur Klassifizierung von Datenpaketen ermittelt wird.
Eine dritte Ausführungsart
für den
Prozess, der bewertet und über
das Erstellen von Cache-Einträgen
entscheidet, ist in 4 dargestellt: Der Header-Parser 17 überprüft in einem
Auswertungsschritt Datenpaket-Header, um den Start bzw. das Ende
einer TCP-Datenübertragung
(Bulk-Datenübertragung)
festzustellen. Wird ein Start oder ein Ende festgestellt, wird anhand
dieses Ergebnisses bestimmt, ob für ein Datenpaket ein Cache-Eintrag
eingefügt
werden soll oder nicht.
-
Die
Operation mit dem Auswahlmechanismus läuft wie folgt ab:
-
Der
Header jedes ankommenden Datenpakets wird in den Header-Parser 17 eingegeben.
Die relevanten Informationen, wie z. B. die IP-Adresse des Empfängers, werden
in den Cache-Speicher 39 und an die Nachschlage-Engine 19 übertragen,
die beide ihre Operationen parallel ausführen, um die erforderlichen
Ausgabeinformationen (Auswahl der Empfänger-Portnummer) zu finden:
In einem Überprüfungsschritt
wird geprüft,
ob die Adressinformationen oder die zugeordneten Ausgangskanalinformationen
des Datenpakets bereits im Cache-Speicher 39 enthalten
sind.
-
Der
Header-Parser 17 und/oder die Nachschlage-Engine 19 werten
die empfangenen Informationen außerdem aus, um zu ermitteln,
ob das entsprechende Datenpaket (PDU) einer Kategorie oder einem
Datenfluss angehört,
die bzw. der das Erstellen eines Eintrags im Cache-Speicher 39 rechtfertigt.
Dies ist der Auswertungs- und Auswahlschritt.
- (a)
Werden die Eingabeinformationen und die entsprechenden Ausgabeinformationen
während
des Überprüfungsschritts
im Cache-Speicher 39 gefunden,
wird die von der Nachschlage-Engine 19 ausgeführte Operation
gestoppt. Dieses Ergebnis wird über
die Leitungen 41, die Nachschlage-Engine 19 und
den Policer 25 an die Vermittlungseinheit 29 übertragen.
Das Datenpaket wird in einem Weiterleitungsschritt unter Verwendung
der gefundenen Ausgabeinformationen weitergeleitet.
- (b) Werden die Eingabeinformationen nicht im Cache-Speicher 39 gefunden,
führt die
Nachschlage-Engine 19 ihren Nachschlageschritt komplett
durch und überträgt das Ergebnis
dieses Nachschlageschritts (Identifizierung des Empfänger-Ports)
nicht nur über
den Policer 25 an die Vermittlungseinheit 29,
sondern stellt es über
die Leitungen 43 auch dem Cache-Speicher 39 zur Verfügung. Dieser
Cache-Speicher 39 speichert in einem Eintragungsschritt
die Eingabeinformationen (IP-Adresse des Empfängers) und die entsprechenden
Ausgangskanalinformationen (Port-ID des Empfängers) in einem Cache-Eintrag – allerdings
nur, wenn er über
die Leitungen 21 bzw. 43 ein Auswahlsignal vom
Header-Parser 17 bzw. von der Nachschlage-Engine 19 empfängt.
-
Detaillierte Informationen
zu den verschiedenen Schritten der Cache-Eintrag-Auswahl
-
Der
Auswahlentscheidung, einen Cache-Eintrag einzufügen, können verschiedene Kriterien
zugrunde liegen, wie z. B. Adressinformationen oder Informationen über das
angewendete Übertragungsprotokoll.
Im Folgenden werden drei Beispiele für eine Auswahl beschrieben,
die entweder auf der Priorität
der empfangenen Datenpakete (PDUs) oder auf der Anzeige einer Bulk-Übertragung (Gruppenübertragung)
von Datenpaketen basiert. Im ersten Beispiel wird die Priorität der Datenpakete
direkt im Datenpaket-Header angezeigt. Im zweiten Beispiel wird
mit einer indirekten Prioritätsangabe
gearbeitet, die aus dem Inhalt des Headers abgeleitet wird. Im dritten
Beispiel werden Angaben in Bezug auf das erste und das letzte Datenpaket
von TCP-Übertragungen
als Auswahlkriterium verwendet.
-
1) Cache-Eintrag-Auswahl
auf der Grundlage expliziter Prioritätscodierung
-
2 stellt
den Header eines Datenpakets dar, in dem diejenigen Bereiche markiert
sind, die (a) als Kriterium gewertet werden, das über das
Erstellen von Cache-Einträgen
entscheidet, und die (b) als Eingabewert für die Nachschlageoperation
verwendet werden. Diese Bereiche stellen die Klassifizierungsinformationen
dar, die eine Bewertung und Klassifizierung des Datenpakets ermöglichen,
durch welche ermittelt werden kann, ob es den Datenpaketen zuzuordnen
ist, für
die ein Cache-Eintrag eingefügt
wird. Das Entscheidungskriterium ist eine explizite Codierung der
Priorität
des betreffenden Datenpakets und aller anderen Datenpakete, die
Teil desselben Datenflusses sind. Bei dem Kriterium kann es sich
um DiffServ-, DSCP- oder VLAN-Priorität-Bits handeln. Der Header-Parser 17 wertet
diese Bits aus und signalisiert der Nachschlage-Engine 19 und
dem Cache-Speicher 39 je nach Auswertungsergebnis, ob das
Suchergebnis im Cache zwischengespeichert werden soll oder nicht.
-
Die
IP-Adresse des Empfängers
wird vom Header-Parser 17 aus dem Header extrahiert und
an die Nachschlage-Engine 19 übertragen, die dann in ihrer
(IPv4-) Routing-Tabelle nach dem längsten übereinstimmenden Präfix sucht
und unter ihren Ausgaben einen entsprechenden Ausgabewert (Portnummer
des Empfängers) über die
Leitungen 23 und 43 bereitstellt. Anschließend löst die Nachschlage-Engine 19 die
Eingabe der IP-Adresse des Empfängers
und die Eingabe des Suchergebnisses (Portnummer des Empfängers und eventuell
die Priorität
in der Warteschlange) in den Cache-Speicher 39 aus. Wird jedoch
die entsprechende IP-Adresse des Empfängers bereits im Cache-Speicher 39 gefunden,
wird die Nachschlageoperation unterbrochen und das Ausgabeergebnis,
d. h. die Empfänger-Portnummer
etc., über
die Leitungen 41 an die Nachschlage-Engine 19 gesendet
und von dieser über
die Leitungen 23 und den Policer 25 an die Vermittlungseinheit 29 übertragen.
-
In
diesem Beispiel basiert die Entscheidung des Header-Parsers 17 hinsichtlich
der Erstellung von Cache-Einträgen
auf der expliziten Prioritätsanzeige,
und die Nachschlage-Engine 19 führt nur eine Suche nach dem
längsten übereinstimmenden
Präfix
durch, um die erforderliche Portnummer des Empfängers (und eventuell einen
zugewiesenen Prioritätswert)
zu erhalten.
-
2) Cache-Eintrag-Auswahl
auf der Grundlage impliziter Prioritätscodierung
-
3 zeigt
ebenfalls den Header eines Datenpakets (PDU), in dem andere auszuwertende
Felder markiert, d. h. schraffiert, dargestellt sind: ein Fünf-Tupel,
bestehend aus (a) Protokollindikator, (b) IP-Adresse des Senders,
(c) IP-Adresse des Empfängers,
(d) Portnummer des Senders und (e) Portnummer des Empfängers. Diese
Werte werden vom Header-Parser 17 extrahiert und der Nachschlage-Engine 19 zur
Verfügung gestellt.
Die Nachschlage-Engine 19 enthält die Regeltabelle, für die ein
Beispiel in der Tabelle am Ende der vorliegenden Beschreibung aufgeführt ist, über die
eine Klassifizierung auf der Grundlage von Fünf-Tupeln für Protokolle oder Adressen
vorgenommen werden kann. Die Suche, d. h. das Nachschlagen in der
Regeltabelle, ergibt zwei Werte: (1) Eine Klassifizierung (hoch/niedrig/ablehnen)
legt die Priorität
des entsprechenden Datenpakets fest. Dieser Prioritätswert wird
an die Vermittlungseinheit 29 gesendet. Er legt außerdem fest,
ob im Cache-Speicher 39 ein Cache-Eintrag erstellt werden
muss, wie beispielsweise bei Cache-Einträgen, die nur bei einer hohen
Priorität
zu erstellen sind. (2) Das Nachschlagen in der Regeltabelle liefert
ferner die Empfänger-Portnummer
für das
entsprechende Datenpaket.
-
Wenn
für ein
Datenpaket ein Cache-Eintrag im Cache-Speicher 39 erstellt
werden soll, enthält
er das aus dem Header extrahierte Fünf-Tupel, das Klassifizierungsergebnis
sowie die Portnummer des Empfängers. Wie
im ersten Beispiel wird für
den Fall, dass der Cache-Speicher 39 das entsprechende
Fünf-Tupel
bereits enthält,
die von der Nachschlage-Engine 19 ausgeführte Suche
unterbrochen, und der Prioritätswert
und die Portnummer des Empfängers
werden aus dem Cache-Speicher 39 über die Nachschlage-Engine 19 und
den Policer 25 an die Vermittlungseinheit 29 übertragen.
-
Folglich
extrahiert der Header-Parser 17 in diesem zweiten Beispiel
nur fünf
relevante Felder aus dem Datenpaket-Header, während die Nachschlage-Engine 19 nicht
nur die erforderliche Portnummer des Empfängers ermittelt, sondern auch über die
Erstellung von Cache-Einträgen
entscheidet.
-
3) Andere Entscheidungskriterien
für die
Cache-Eintrag-Auswahl
-
Die
Anwendung der Erfindung ist natürlich
nicht auf die Fälle
beschränkt,
die in den beiden oben angeführten
Beispielen beschrieben sind. Beliebige einzelne-Header-Felder oder
Kombinationen von Header-Feldern, die die Datenverkehrs- oder Datenflusskategorie
des Datenpakets oder seine Priorität widerspiegeln, können als
Entscheidungskriterien dienen: z. B. MPLS-Kennzeichen, UPI/VCI-Kennzeichen
für ATM, Ethernet
MAC-Adressen etc.
-
Eine
weitere Option für
das Auswählen
eines Datenpaketflusses zur Erstellung von Cache-Einträgen, d.
h. für
das Eingeben der Datenpaketadresse und der Ausgabeportinformationen
in den Cache-Speicher 39, wird
nachfolgend unter Bezugnahme auf 4 in einem
dritten Beispiel für
eine Ausführungsart
beschrieben. Die entsprechende Situation tritt ein, wenn erwartet
werden kann, dass eine Reihe von Datenpaketen aus demselben Datenfluss
fast aufeinander folgend oder zumindest mit relativ kleinen Lücken zwischen
den einzelnen Datenpaketen ankommt (Lokalität oder Anhäufung von Datenpaketen desselben
Flusses). Solche Umstände oder
Bedingungen können
aus einzelnen Datenpaket-Headern beispielsweise auf folgende Weise
abgeleitet werden (vgl. 4): TCP-Übertragungen beginnen üblicherweise
mit einer so genannten SYN-Nachricht, um die Folgenummern der sendenden
und der empfangenden Station zu synchronisieren. SYN-Nachrichten werden
an einem speziellen Steuerbit (SYN, in 4 markiert
dargestellt) im TCP-Header erkannt und sind daher einfach festzustellen
oder syntaktisch zu analysieren. Der Header-Parser 17 (siehe 1)
sendet ein Steuersignal für
die Erstellung von Cache-Einträgen
an den Cache-Speicher 39, und die Portnummer des Empfängers der
SYN-Nachricht sowie die auch als Adressinformationen bezeichneten
Ausgangskanalinformationen, die der SYN-Nachricht von der Nachschlageoperation
bereitgestellt werden, werden anschließend in den Cache-Speicher 39 eingegeben.
Es ist sehr wahrscheinlich, dass nachfolgende Datenpakete mit den
gleichen Adressinformationen ankommen, sodass die Ausgangskanalinformationen
für jedes
nachfolgende Datenpaket der Bulk-Übertragung direkt dem Cache-Speicher 39 entnommen
werden können.
Dieses Schema findet daher auf den Burst-Verkehr von Datenpaketen
Anwendung.
-
Dasselbe
Schema lässt
sich auch anwenden, um bestimmte Cache-Einträge aus dem Cache-Speicher 39 explizit
zu entfernen und die entsprechende Speicherkapazität für neue Cache-Einträge freizugeben, wie
nachfolgend beschrieben wird. Die Vorrichtung zum Steuern des Einfügens von
Cache-Einträgen
in den Cache-Speicher 39,
in der ankommende Datenpakete anhand von Adressinformationen zu
Ausgangskanälen geleitet
werden, umfasst daher den Header-Parser 17, der in diesem
Fall folgende drei Funktionen vereint: (a) ein Auswerter (Evaluator),
der von jedem ankommenden Datenpaket Klassifizierungsinformationen
auswertet, die für
die Art des Datenflusses oder für
die Priorität
relevant sind, der das Datenpaket zugeordnet ist, (b) einen Selektor,
der auf der Grundlage des im Auswertungsschritt ermittelten Ergebnisses
entscheidet, ob für
das Datenpaket ein Cache-Eintrag in den Cache-Speicher 39 eingefügt werden
soll und (c) eine Cache-Einheit für den Lese- und Schreibzugriff,
welche für
das Datenpaket die Adressinformationen und die zugeordneten Ausgangskanalinformationen
als Cache-Eintrag in den Cache-Speicher 39 einfügt, falls
der Auswahlschritt zu dem Ergebnis führt, dass der Cache-Eintrag
einzufügen
ist. Diese Funktionen müssen
nicht alle integriert sein, sondern können auch von separaten Einheiten
ausgeführt
werden. Die Vorrichtung umfasst in diesem Fall ferner eine Ausgabeeinheit 29 zum
Weiterleiten der Datenpakete unter Verwendung der in einem Cache-Eintrag
gespeicherten Ausgangskanalinformationen, wenn die Adressinformationen
oder die zugeordneten Ausgangskanalinformationen in einem Cache-Eintrag
gefunden werden.
-
Einträge aus dem
Cache-Speicher löschen
-
Selbst
bei Anwendung des beschriebenen Verfahrens kann der Cache-Speicher 39 mit
der Zeit voll sein und vor dem Einfügen eines weiteren Cache-Eintrags
muss ein Cache-Eintrag aus dem Cache-Speicher 39 gelöscht werden,
um eine Speicherposition freizugeben. Die für das Löschen von Cache-Einträgen anzuwendende
Regel kann von dem verwendeten Entscheidungsmechanismus für das Erstellen
von Cache-Einträgen
unabhängig
sein, sie kann jedoch auch das gleiche Auswahlschema verwenden.
Die LRU-Regel kann natürlich
zum Löschen
von Cache-Positionen
verwendet werden.
-
Ein
anderer Mechanismus, der für
das Löschen
von Cache-Positionen
in Verbindung mit dem oben im dritten Auswahlbeispiel beschriebenen
Entscheidungsmechanismus für
das Erstellen von Cache-Einträgen (bei
der Bulk-TCP-Übertragung
von Datenpaketen) als vorteilhaft erachtet wird, ist der Folgende
(siehe auch 4).
-
Das
letzte Datenpaket einer TCP-Sitzung enthält ein FIN-Steuerbit (markiert in 4)
im TCP-Header. Diese FIN-Nachricht
ist im Header-Parser 17 (1) einfach
zu erkennen oder syntaktisch zu analysieren und der Header-Parser 17 sendet
ein Steuersignal für
das Löschen
eines entsprechenden Cache-Eintrags
aus dem Cache-Speicher 39, das die gleiche Empfänger-Portnummer aufweist,
die in der FIN-Nachricht des TCP-Datenpakets
gefunden wurde, weil mit dem Ankommen weiterer Datenpakete mit dieser
Adresse nicht zu rechnen ist.
-
Überblick über die
Vorteile
-
Wie
bereits kurz in der Einführung
erwähnt
wurde, ergeben sich bei der Anwendung des beschriebenen Verfahrens
in einem Kommunikationssystem, das adressierte Datenpakete an verschiedene
Empfänger-IP-Adressen überträgt, folgende
Hauptvorteile:
-
Bei
Datenpaketflüssen
mit hoher zeitlicher Lokalität
oder einer besonderen Priorität
oder anderen auswählbaren
Kriterien werden Cache-Einträge
in einen Cache-Speicher eingefügt.
Im Vergleich zu anderen Systemen, die einen herkömmlichen, d. h. nicht auf Auswahlverfahren
basierenden Mechanismus für
die Erstellung von Cache-Einträgen
verwenden, wird so die Abwicklung von Datenpaketübertragungen in Vermittlungsknoten
beschleunigt und gleichzeitig sichergestellt, dass die Kapazität von Cache-Speichern kleiner
sein kann als die Kapazität,
die sonst für
Systeme benötigt
würde,
in denen Cache-Einträge
auf herkömmliche
Weise erstellt werden.
-
Beispiel
für eine
Klassifizierungsregel-Tabelle