DE60202136T2 - Cache-eintrag-auswahlverfahren und -vorrichtung - Google Patents

Cache-eintrag-auswahlverfahren und -vorrichtung Download PDF

Info

Publication number
DE60202136T2
DE60202136T2 DE60202136T DE60202136T DE60202136T2 DE 60202136 T2 DE60202136 T2 DE 60202136T2 DE 60202136 T DE60202136 T DE 60202136T DE 60202136 T DE60202136 T DE 60202136T DE 60202136 T2 DE60202136 T2 DE 60202136T2
Authority
DE
Germany
Prior art keywords
cache
data packet
cache entry
information
output channel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60202136T
Other languages
English (en)
Other versions
DE60202136D1 (de
Inventor
P. Ronald LUIJTEN
Andreas Herkersdorf
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60202136D1 publication Critical patent/DE60202136D1/de
Application granted granted Critical
Publication of DE60202136T2 publication Critical patent/DE60202136T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • 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
    Figure 00200001

Claims (13)

  1. Verfahren zum Einfügen von Cache-Einträgen in einen Cache-Speicher (39) in einer Vorrichtung, bei der ankommende Datenpakete anhand von Adressinformationen zu Ausgangskanälen geleitet werden, wobei das Verfahren folgende Schritte umfasst: a) einen Auswertungsschritt zur Auswertung der Klassifizierungsinformationen jedes ankommenden Datenpakets, die über die Art des Datenflusses oder die Priorität Auskunft geben, denen das Datenpaket zugeordnet ist; b) einen Auswahlschritt, in dem basierend auf dem Ergebnis des Auswertungsschrittes ausgewählt wird, ob der Cache-Eintrag für dieses Datenpaket in den Cache-Speicher (39) 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 (39) eingefügt werden, falls der Auswahlschritt zu dem Ergebnis führte, dass der Cache-Eintrag eingefügt werden soll.
  2. Verfahren nach Anspruch 1, ferner umfassend a) einen Überprüfungsschritt, in dem für jedes Datenpaket geprüft wird, ob dessen Adressinformationen oder zugeordnete Ausgangskanalinformationen bereits in einem Cache-Eintrag enthalten sind, b) einen Weiterleitungsschritt, in dem das Datenpaket unter Verwendung der in diesem Cache-Eintrag gespeicherten Ausgangskanalinformationen weitergeleitet wird, wenn die Adressinformationen oder die zugeordneten Ausgangskanalinformationen in einem Cache-Eintrag gefunden werden, bei dem in dem Fall, dass die Adressinformationen oder die zugeordneten Ausgangskanalinformationen nicht in einem Cache-Eintrag gefunden werden, der Auswertungsschritt und der Auswahlschritt für dieses Datenpaket ausgeführt werden.
  3. Verfahren nach Anspruch 1 oder 2, bei dem in dem Fall, dass ein Cache-Eintrag zu erstellen ist, die Ausgangskanalinformationen in einem Nachschlageschritt aus einer Routing-Tabelle abgerufen werden.
  4. Verfahren nach Anspruch 3, bei dem der Nachschlageschritt zusammen mit dem Überprüfungsschritt gestartet wird und dann gestoppt wird, wenn die Adressinformationen oder die zugeordneten Ausgangskanalinformationen in einem Cache-Eintrag gefunden werden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem zum Einfügen eines entsprechenden Cache-Eintrags in den Cache-Speicher (39) Datenpakete aus einem Burst-Datenverkehr ausgewählt werden.
  6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem zum Einfügen eines entsprechenden Cache-Eintrags in den Cache-Speicher (39) diejenigen Datenpakete ausgewählt werden, deren Header ein Feld enthält, das das betreffende Datenpaket als ein Startdatenpaket oder ein synchronisierendes Datenpaket einer Folge zugehöriger Datenpakete identifiziert.
  7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem über das Einfügen eines entsprechenden Cache-Eintrags in den Cache-Speicher (39) auf der Grundlage von Kriterien entschieden wird, die im Header des Datenpakets enthalten sind.
  8. Verfahren nach Anspruch 7, bei dem zu den Kriterien Adressinformationen und Kommunikationsprotokollinformationen zählen.
  9. Verfahren nach einem der Ansprüche 1 bis 8, bei dem die Auswahl eines Datenpakets zum Erstellen eines Cache-Eintrags in derselben Einheit erfolgt, die die Ausgabekanalinformationen festlegt.
  10. Verfahren nach einem der Ansprüche 1 bis 9, das ferner einen Schritt für das Treffen von Löschentscheidungen umfasst, in dem je nach Art des Datenflusses, dem der entsprechende Cache-Eintrag zugeordnet ist, und je nach Kapazitätsauslastung des Cache-Speichers entschieden wird, ob ein Cache-Eintrag aus dem Cache-Speicher (39) gelöscht werden soll.
  11. Vorrichtung zum Steuern der Einfügung von Cache-Einträgen in einen Cache-Speicher (39) in einer Vorrichtung, in der ankommende Datenpakete anhand von Adressinformationen zu Ausgangskanälen geleitet werden, wobei die Vorrichtung Folgendes umfasst: a) einen Auswerter (17) zur Auswertung der Klassifizierungsinformationen jedes ankommenden Datenpakets, die über die Art des Datenflusses oder die Priorität Auskunft geben, denen das Datenpaket zugeordnet ist; b) einen Selektor (17), der basierend auf dem Ergebnis des Auswertungsschrittes auswählt, ob der Cache-Eintrag für dieses Datenpaket in den Cache-Speicher (39) eingefügt werden soll; c) eine Cache-Lese-/Schreibeinheit (17), die für den Fall, dass der Auswahlschritt zu dem Ergebnis führte, dass der Cache-Eintrag eingefügt werden soll, für das Datenpaket die Adressinformationen und diesen zugeordnete Ausgangskanalinformationen als Cache-Eintrag in den Cache-Speicher (39) einfügt.
  12. Vorrichtung nach Anspruch 11, ferner umfassend eine Ausgabeeinheit (29) zum Weiterleiten des Datenpakets unter Verwendung der in einem Cache-Eintrag gespeicherten Ausgangskanalinformationen, wenn die Adressinformationen oder die zugeordneten Ausgangskanalinformationen in diesem Cache-Eintrag gefunden werden.
  13. Vorrichtung nach Anspruch 11 oder 12, die ferner eine Routing-Tabelle umfasst.
DE60202136T 2001-03-19 2002-03-15 Cache-eintrag-auswahlverfahren und -vorrichtung Expired - Lifetime DE60202136T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01810264 2001-03-19
EP01810264 2001-03-19
PCT/IB2002/000822 WO2002076042A1 (en) 2001-03-19 2002-03-15 Cache entry selection method and apparatus

Publications (2)

Publication Number Publication Date
DE60202136D1 DE60202136D1 (de) 2005-01-05
DE60202136T2 true DE60202136T2 (de) 2005-12-01

Family

ID=8183795

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60202136T Expired - Lifetime DE60202136T2 (de) 2001-03-19 2002-03-15 Cache-eintrag-auswahlverfahren und -vorrichtung

Country Status (5)

Country Link
US (1) US7146478B2 (de)
EP (1) EP1371187B1 (de)
JP (1) JP4410467B2 (de)
DE (1) DE60202136T2 (de)
WO (1) WO2002076042A1 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7912899B2 (en) 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US7454423B2 (en) * 2002-09-06 2008-11-18 Oracle International Corporation Enterprise link for a software database
US8165993B2 (en) 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7941542B2 (en) 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US8255454B2 (en) 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7412481B2 (en) 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US7401158B2 (en) 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7668917B2 (en) 2002-09-16 2010-02-23 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
WO2004034651A1 (en) * 2002-09-30 2004-04-22 Nokia Corporation Routing data packets in a compressed-header domain
EP1588530A2 (de) * 2003-01-27 2005-10-26 Raza Microelectronics, Inc. Verfahren und vorrichtung zur klassifizierung und umlenkung von datenpaketen in einem heterogenen netzwerk
US7904823B2 (en) 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
US7725886B2 (en) * 2003-04-01 2010-05-25 Intel Corporation Merger of tables storing protocol data unit related data
US7536674B2 (en) * 2003-08-13 2009-05-19 Intel Corporation Method and system for configuring network processing software to exploit packet flow data locality
US7489640B2 (en) * 2003-09-30 2009-02-10 Agere Systems Inc. Processor with continuity check cache
WO2005050468A1 (en) * 2003-10-22 2005-06-02 International Business Machines Corporation Connection management method, system, and program product
US8244880B2 (en) 2003-10-22 2012-08-14 International Business Machines Corporation Connection management method, system, and program product
US7742398B1 (en) * 2004-04-12 2010-06-22 Azul Systems, Inc. Information redirection
US7813263B2 (en) 2004-06-30 2010-10-12 Conexant Systems, Inc. Method and apparatus providing rapid end-to-end failover in a packet switched communications network
US7760719B2 (en) * 2004-06-30 2010-07-20 Conexant Systems, Inc. Combined pipelined classification and address search method and apparatus for switching environments
US7706302B2 (en) * 2004-09-14 2010-04-27 Alcatel Lucent Optimization of routing forwarding database in a network processor
US20070153796A1 (en) * 2005-12-30 2007-07-05 Intel Corporation Packet processing utilizing cached metadata to support forwarding and non-forwarding operations on parallel paths
JP4646823B2 (ja) * 2006-02-17 2011-03-09 エスアイアイ・ネットワーク・システムズ株式会社 ルータ装置、ルータ装置におけるルート決定方法
US7920564B1 (en) * 2006-06-26 2011-04-05 Marvell Israel (M.I.S.L.) Ltd. Differential services support for control traffic from privileged nodes in IP networks
US20080126352A1 (en) * 2006-09-27 2008-05-29 Rockwell Automation Technologies, Inc. Client side state cache for industrial control systems
KR101409456B1 (ko) * 2007-06-12 2014-06-24 삼성전자주식회사 IP converged 시스템에서의 패킷 처리 방법 및그 시스템
US20110228674A1 (en) * 2010-03-18 2011-09-22 Alon Pais Packet processing optimization
KR101628376B1 (ko) * 2009-12-04 2016-06-08 연세대학교 산학협력단 우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템
US8327047B2 (en) 2010-03-18 2012-12-04 Marvell World Trade Ltd. Buffer manager and methods for managing memory
US8938469B1 (en) 2011-05-11 2015-01-20 Juniper Networks, Inc. Dynamically adjusting hash table capacity
US20120331227A1 (en) * 2011-06-21 2012-12-27 Ramakrishna Saripalli Facilitating implementation, at least in part, of at least one cache management policy
US9178846B1 (en) 2011-11-04 2015-11-03 Juniper Networks, Inc. Deterministic network address and port translation
US8886827B2 (en) 2012-02-13 2014-11-11 Juniper Networks, Inc. Flow cache mechanism for performing packet flow lookups in a network device
US9253019B1 (en) 2012-03-09 2016-02-02 Juniper Networks, Inc. Fault tolerance for authentication, authorization, and accounting (AAA) functionality
US8954609B1 (en) 2012-04-25 2015-02-10 Juniper Networks, Inc. Time adjustment using time-to-live values
US8914699B2 (en) * 2012-04-30 2014-12-16 Motorola Solutions, Inc. Method and apparatus for restricting radio access to a system
JP6018872B2 (ja) * 2012-10-15 2016-11-02 株式会社日立製作所 通信装置、及び、通信装置における転送情報管理方法
JP6314495B2 (ja) 2014-01-21 2018-04-25 富士通株式会社 経路検索装置、インタフェースカード、及び経路検索方法
US9692684B2 (en) * 2014-09-05 2017-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in SDN
US10129207B1 (en) 2015-07-20 2018-11-13 Juniper Networks, Inc. Network address translation within network device having multiple service units
US10120809B2 (en) * 2015-09-26 2018-11-06 Intel Corporation Method, apparatus, and system for allocating cache using traffic class
US10469446B1 (en) 2016-09-27 2019-11-05 Juniper Networks, Inc. Subscriber-aware network address translation
US10742553B1 (en) * 2018-05-29 2020-08-11 Juniper Networks, Inc. Forwarding information base caching
US10979542B2 (en) * 2018-08-28 2021-04-13 Vmware, Inc. Flow cache support for crypto operations and offload

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204345A (ja) * 1996-01-26 1997-08-05 Nippon Steel Corp 分散データベース検索方法
US5842040A (en) * 1996-06-18 1998-11-24 Storage Technology Corporation Policy caching method and apparatus for use in a communication device based on contents of one data unit in a subset of related data units
US6021470A (en) * 1997-03-17 2000-02-01 Oracle Corporation Method and apparatus for selective data caching implemented with noncacheable and cacheable data for improved cache performance in a computer networking system
US6597684B1 (en) * 1997-12-24 2003-07-22 Nortel Networks Ltd. Distributed architecture and associated protocols for efficient quality of service-based route computation
JP2000035912A (ja) * 1998-05-13 2000-02-02 Hitachi Ltd ディレクトリ・サーバ
JP3424907B2 (ja) * 1998-07-02 2003-07-07 日本電気株式会社 ネットワークコンテンツキャッシュ装置
JP2000106744A (ja) * 1998-10-05 2000-04-18 Yanmar Agricult Equip Co Ltd 収穫機における送塵弁開閉制御装置
US6317778B1 (en) * 1998-11-23 2001-11-13 International Business Machines Corporation System and method for replacement and duplication of objects in a cache
JP3199051B2 (ja) * 1999-02-10 2001-08-13 日本電気株式会社 キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体
US6434608B1 (en) * 1999-02-26 2002-08-13 Cisco Technology, Inc. Methods and apparatus for caching network traffic
US6463508B1 (en) * 1999-07-19 2002-10-08 International Business Machines Corporation Method and apparatus for caching a media stream
JP2001045061A (ja) * 1999-08-02 2001-02-16 Hitachi Ltd 通信ノード装置
US6532492B1 (en) * 1999-09-15 2003-03-11 International Business Machines Corporation Methods, systems and computer program products for cache management using admittance control
US6665297B1 (en) * 1999-12-09 2003-12-16 Mayan Networks Corporation Network routing table
JP3591420B2 (ja) * 2000-04-07 2004-11-17 日本電気株式会社 ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体
US7075926B2 (en) * 2000-05-24 2006-07-11 Alcatel Internetworking, Inc. (Pe) Programmable packet processor with flow resolution logic
US7035255B2 (en) * 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US7269663B2 (en) * 2001-09-28 2007-09-11 Intel Corporation Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache

Also Published As

Publication number Publication date
EP1371187B1 (de) 2004-12-01
DE60202136D1 (de) 2005-01-05
US7146478B2 (en) 2006-12-05
JP2004524754A (ja) 2004-08-12
EP1371187A1 (de) 2003-12-17
WO2002076042A1 (en) 2002-09-26
JP4410467B2 (ja) 2010-02-03
US20040146044A1 (en) 2004-07-29

Similar Documents

Publication Publication Date Title
DE60202136T2 (de) Cache-eintrag-auswahlverfahren und -vorrichtung
DE60203380T2 (de) Verfahren und vorrichtung zur mehrfachsendung
DE60026676T2 (de) Paketklassifizierungsautomat
DE60021846T2 (de) Leitweglenkungsanordnung
DE69934644T2 (de) Netzwerkvermittlungseinrichtung mit auf der Basis von Benutzung verteilten Umleitungsdatenbanken
DE69926109T2 (de) Paketversendegerät mit einer Flussnachweistabelle
DE102005046702B4 (de) Verfahren und Prozessor zum Klassifizieren von Datenpaketeinheiten
DE3780800T2 (de) Anordnung zur ueberlastregelung fuer paketvermittlungssystem.
DE60305035T2 (de) Anpassen des längsten präfix unter verwendung von baumartigen "bitmap" datenstrukturen
DE3780799T2 (de) Anordnung zur ueberlastregelung durch bandbreitenverwaltung fuer paketvermittlungssystem.
DE69737361T2 (de) Schnelle vermittlungsvorrichtung
DE69732274T2 (de) Flusssteuerungsprotokollsystem und verfahren
DE60311800T2 (de) Verfahren und vorrichtung zur verbesserung der netzwerkleitweglenkung
DE69937185T2 (de) Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen
EP0447841A2 (de) Verfahren zum Einrichten von virtuellen Verbindungen in nach einem asynchronen Transfermodus arbeitenden Vermittlungseinrichtungen
DE19860120B4 (de) Routensuchschaltung und diese verwendende Kommunikationsvorrichtung
DE10119754B4 (de) Verfahren und Vorrichtung zum Speichern von Datenpaketen
DE69932892T2 (de) System zur Konsolidierung von Telekommunikationsverkehr
DE112019002591T5 (de) Weiterleitungselement-datenebene mit flussgrössendetektor
DE602004012210T2 (de) Verfahren and System für eine beschleunigte Paketverarbeitung
DE60108324T2 (de) System und Verfahren zur Erhöhung von Nachrichtendurchsatz in einem Funknetzwerk
DE202009019134U1 (de) Technik zur Regulierung von Linkverkehr
DE60319366T2 (de) Vorrichtung, verfahren und computerprogramm für betriebsmittelreservierungen in einem kommunikationssystem
DE60114299T2 (de) Verfahren und Vorrichtung zum Übersetzen von IP Telekommunikationsnetzwerkadressen mit einem gesteuerten undichten Speicher
DE60207687T2 (de) Verfahren und vorrichtung zum klassifizieren von abfrageknoten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7