DE69937185T2 - Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen - Google Patents

Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen Download PDF

Info

Publication number
DE69937185T2
DE69937185T2 DE69937185T DE69937185T DE69937185T2 DE 69937185 T2 DE69937185 T2 DE 69937185T2 DE 69937185 T DE69937185 T DE 69937185T DE 69937185 T DE69937185 T DE 69937185T DE 69937185 T2 DE69937185 T2 DE 69937185T2
Authority
DE
Germany
Prior art keywords
lookup
entry
data packet
destination
bits
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
DE69937185T
Other languages
English (en)
Other versions
DE69937185D1 (de
Inventor
Frank Chelmsford KASTENHOLZ
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.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
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 Juniper Networks Inc filed Critical Juniper Networks Inc
Application granted granted Critical
Publication of DE69937185D1 publication Critical patent/DE69937185D1/de
Publication of DE69937185T2 publication Critical patent/DE69937185T2/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/74Address processing for routing
    • H04L45/742Route cache; Operation thereof

Landscapes

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

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Switches und Router und im Besonderen auf eine Übermittlungsnachschlagestruktur für Netzwerkdatenpakete mit einer reduzierten Anzahl von Speicherzugriffen.
  • Hintergrund der Erfindung
  • Computernetzwerke sind typischerweise so betrachtet worden, dass sie in mehrere Schichten aufteilbar sind. Das von der International Standards Organization (ISO) eingerichtete Open Systems Interconnection (OSI) Referenzmodell definiert, dass ein Computernetzwerk sieben Schichten aufweist. 1 beschreibt die sieben Schichten, die durch das OSI Referenzmodell definiert sind. Schicht eins ist der Physical Layer, der für das Übertragen unstrukturierter Bits von Information über eine Verbindung verantwortlich ist. Layer zwei ist der Data Link Layer. Der Data Link Layer ist verantwortlich für das Übertragen von Stücken von Information über eine Verbindung. Schicht drei ist der Network Layer. Der Network Layer ist dafür verantwortlich, einem beliebigen Paar von Anordnungen im Computernetzwerk zu ermöglichen, mit einander zu kommunizieren. Schicht vier ist der Transport Layer. Der Transport Layer ist dafür verantwortlich, einen zuverlässigen Kommunikationsdatenstrom zwischen einem Paar von Anordnungen einzurichten. Schicht fünf ist der Session Layer, der dafür verantwortlich ist, Dienste wie zum Beispiel Dialogkontrolle und Verkettung anzubieten. Schicht sechs ist der Presentation Layer, der ein Mittel zur Verfügung stellt, durch welches Anwendungen sich auf Darstellungen für Daten einigen können. Schicht sieben ist der Application Layer, in dem Anwendungen wie zum Beispiel Dateiübertragungsdienste und Managementdienste ablaufen.
  • Das Internet Protocol (IP) ist ein Netzwerkprotokoll der Schicht drei. Das IP Protokoll ist ein Botenprotokoll, das Teil der Transmission Control Protocol (TCP)/IP Protokollsuite ist. TCP ist ein Transport Layer Protokoll, das eine zuverlässige Kommunikation in Byte-Datenströmen erleichtert. IP schreibt ein Adressierungsschema vor, das nützlich ist beim Nachverfolgen von Internet-Adressen für unterschiedliche Knoten, für das Erkennen eingehender Nachrichten und das Übermitteln ausgehender Nachrichten. Jedes IP Datenpaket ist ein Datenpaket, das Headerinformation und eine Nutzlast enthält.
  • IP Adressen sind weltweit eindeutige 32 Bit Adressen, die im Allgemeinen in einer durch Punkte getrennte Dezimalschreibweise dargestellt werden, wobei die Punkte (das heißt Perioden) die vier Byte der Adresse von einander trennen. Ein Beispiel für eine IP Adresse in einer durch Punkte getrennten Dezimalschreibweise ist "1.2.3.4". Obwohl eine IP Adresse ein einzelner 32 Bit enthaltender Wert ist, enthält jede IP Adresse zwei Stücke von Informationen. Wie in 2 gezeigt, enthält jede IP Adresse 10 einen Netzwerkkennzeichner 12 und einen Hostkennzeichner 14. Der Hostkennzeichner kennzeichnet das Hostsystem, dem die IP Adresse zugeteilt ist. Der Netzwerkkennzeichner kennzeichnet das Netzwerk, in dem sich das Hostsystem befindet.
  • Um zu verstehen, wie IP Adressen verwendet werden, ist es hilfreich, ein Beispiel in Betracht zu ziehen. 3 zeigt einem Beispiel für ein Computernetzwerk, in dem IP Datenpakete zwischen Host 20 und Host 24 gesandt werden. In diesem Beispiel ist Host 20 Teil des Netzwerks 1, und Host 24 ist Teil des Netzwerks 2. Eine Anzahl von Switchingknoten 22 verbinden Netzwerk 1 und Netzwerk 2 miteinander. Diese Switchingknoten können Switches sein und/oder Router, die IP Datenpakete zwischen Netzwerk 1 und Netzwerk 2 übermitteln. Der Host 24 weist die Hostnummer 97 innerhalb des Netzwerks 2 auf. Daher ist, wenn man die Adresse des Hosts 24 in <Netzwerk, Host> ausdrückt, die IP Adresse für den Host 24 <2.97>. IP Datenpakete werden auf einer Sprung auf Sprung Basis von ihrer Quelle an ihren Zielort übermittelt. Jeder Switchingknoten 22, auf den ein IP Datenpaket auf dem Weg von Host 20 zu Host 24 stößt, repräsentiert einen separaten Sprung. Das IP Datenpaket weist einen Header auf, der eine IP Zieladresse enthält. Die IP Zieladresse gibt Host 24 als den Zielort an. Jeder Switchingknoten 22 auf dem Weg zwischen Host 20 und Host 24 verwendet dabei die Zieladresse, um einen nächsten Sprung festzulegen.
  • IP Adressen wurden bisher in drei Klassen eingeteilt: Klasse A, Klasse B und Klasse C. Die Anzahl der an den Netzwerkkennzeichner 12 in der IP Adresse vergebenen Bits und die Anzahl der an den Hostkennzeichner in der IP Adresse vergebenen Bits wurde ursprünglich durch die Klasse der IP Adresse festgelegt. Bei IP Adressen der Klasse A wurden dem Hostkennzeichner drei Byte zugewiesen; bei IP Adressen der Klasse B wurden dem Hostkennzeichner zwei Byte zugewiesen; und bei IP Adressen der IP Klasse C wurde dem Hostkennzeichner ein einzelnes Byte zugewiesen. Viele Parteien lehnten diese starre Bitzuweisung zwischen Hostkennzeichner und Netzwerkkennzeichner ab. Als Ergebnis wurde ein flexibleres Schema entwickelt, bei dem Masken verwendet wurden, um zu identifizieren, welche Bits in einer IP Adresse an den Hostkennzeichner vergeben wurden und welche Bits an den Netzwerkkennzeichner vergeben wurden. Eine Anzahl von beliebten IP Routingprotokollen macht Gebrauch von solchen Masken.
  • Router umfassen im Allgemeinen Routingtabellen, um dabei zu helfen, IP Datenpakete an ihre richtigen Zielorte weiterzuleiten. Die Einträge in der Routingtabelle enthalten Übermittlungsinformation für IP Adressenpräfixe (das heißt Teilbereiche der IP Adressen, die die höchstwertigen Bits enthalten), für die die Routinginformation bekannt ist. Zum Beispiel kann es bekannt sein, dass alle IP Datenpakete, die für das Netzwerk 1.2 bestimmt sind, über die Schnittstelle des Knotens A heraus übermittelt werden sollten; daher kodiert der Eintrag dieses Wissen.
  • 4A zeigt ein Beispiel für vier Routingtabelleneinträge 30, 32, 34 und 36. Jeder Routingtabelleneintrag enthält eine Adresse 40, eine Präfixlänge 42 und eine Schnittstelle 44. Das Feld der Adresse 40 enthält ein Präfix einer IP Adresse. Die Präfixlänge 42 kennzeichnet die Länge des Präfixes innerhalb des Adressfelds 40. Für den Eintrag 30 ist der Präfix nur ein einzelnes Byte (das heißt 8 Bits) lang. Die Schnittstelle 44 kennzeichnet die Schnittstelle, zu der Datenpakete, die mit dem vorgegebenen Präfix beginnen, geleitet werden können. Die Schnittstelle ist eine logische Abstraktion von einem Port (oder einer anderen Information), die identifiziert, wohin ein Bereich von IP Adressen (das heißt die Adressen in dem durch den Präfix definierten Bereich) geleitet werden sollte.
  • 4B zeigt ein Beispiel für die Topologie eines Teilbereichs eines Computernetzwerks, wobei von den Übermittlungstabelleneinträgen 30, 32, 34 und 36 Gebrauch gemacht wird. Im Besonderen weist der Knoten 50 drei Schnittstellen auf: A, B und C. Die Schnittstelle C führt zu Netzwerk 1. Die Schreibweise 1/8 in 4B zeigt an, dass die IP Adresse für das Netzwerk einen Präfixwert von 1 aufweist, und dass sie 8 Bits in der Länge ist. Die Schnittstelle B führt zu einem Teilbereich des Computer-netzwerks, der die IP Adressen aufweist, die mit den Präfixen 1.2.3 beginnen. Die Schnittstelle A führt zu Zielorten, die die IP Adressen aufweisen, die mit dem Präfix 1.2.4 und 1.2 beginnen. Im Besonderen führt die Schnittstelle A zu Knoten 52, der wiederum zu den anderen Zielorten 1.2.4 und 1.2 führt.
  • Für jedes von einem Knoten empfangene IP Datenpaket wird das längste übereinstimmende, in der Routingtabelle gefundene Präfix verwendet, um das IP Datenpaket zu leiten. Betrachten wir ein IP Datenpaket, das eine Zieladresse von 1.2.4.7 aufweist. In solch einem Fall enthalten die Einträge 30, 34 und 36 übereinstimmende Präfixe für diese IP Adresse. Präfix 1.2.4 ist jedoch der längste Präfix, und der Eintrag 34 wird daher verwendet, um das IP Datenpaket aus der Schnittstelle A heraus in Richtung des Zielorts 1.2.4 zu leiten.
  • In herkömmlichen Routern wird die Routingtabelle typischerweise als ein PATRICIA Baum dargestellt. Ein PATRICIA (Practical Algorithm To Retrieve Information Coded In Alphanumeric) Baum ist eine Datenanordnung in Baumstruktur, die verwendet wird, um das Durchsuchen der Routingtabelle zu vereinfachen. Der PATRICIA Baum wendet eine binäre Vertretung von Schlüsseln an, ohne Schlüssel in den Knoten zu speichern. 5 zeigt ein Beispiel für einen Teilbereich eines PATRICIA Baums 60. Jeder Knoten wird mit einem bestimmten Teilbereich eines IP Adressenpräfixes verknüpft. Zum Beispiel wird der Knoten b0 mit Bit 0 eines IP Adressenpräfixes (das heißt, des ersten Bits in einem IP Adressenpräfix) verknüpft. Jeder Knoten kann Hinweise auf Tochterknoten oder auf Beendigungen enthalten. Weiterhin kann jeder Knoten einen Verweis auf einen Routingtabelleneintrag für das Präfix aufweisen, das der Knoten repräsentiert. Jeder von einem Knoten führende Zeiger ist verbunden mit einem Bitwert für das nächste Bit im Präfix für den Knoten. Die Anordnung ist organisiert als ein Baum, so dass jede Ebene des Baums eine darauf folgende Bitfolge darstellt. Daher stellt der Knoten b1 gemäß 5 eine Folge mit zwei Bit Länge im Präfix dar, wobei das erste Bit einen Wert von 0 hat. Die Tabelleneinträge sind mit dem letzten Knoten des Präfixes verknüpft. Im Beispiel gemäß 5, wird auf den Eintrag 62 für den Präfix 1, das ein Byte in der Länge ist (oder 8 Bits in der Länge), durch den Knoten b8 für die Präfixbitfolge von "00000001" verwiesen. Auf ähnliche Weise wird auf den Eintrag 64 durch den Knotens b16 verwiesen. Beendigungen, wie zum Beispiel die Beendigung 65, werden im PATRICIA Baum zur Verfügung gestellt, um Präfixe darzustellen, für die es keinen zugehörigen Übermittlungstabelleneintrag gibt.
  • Der PATRICIA Baum kann auch auf eine davon abweichende Art implementiert werden. Der PATRICIA Baum kann die Tabelleneinträge abspeichern, so dass die Zeiger auf die Tabelleneinträge zeigen (das heißt, die Tabelleneinträge liegen im Baum als Knoten vor). Daher wird für einen vorgegebenen Knoten ein Zeiger zugeordnet.
  • Der PATRICIA Baum stellt einen zweckmäßigen Suchmechanismus für das Ausführen einer binären Suche zur Verfügung, um festzustellen, ob irgendwelche Einträge mit einem bestimmten Präfix oder Teilen von einem Präfix verbunden sind. Eine Schwierigkeit bei der Verwendung eines PATRICIA Baums betrifft jedoch die Anzahl von Speicherzugriffen, die ausgeführt werden müssen, um vom PATRICIA Baum Gebrauch zu machen. Einen Knoten im PATRICIA Baum anzusprechen, erfordert einen Speicherzugriff. Daher erfordert es, auf die Ebene 8 des Baums hinunter zu suchen, 8 Speicherzugriffe auszuführen. Solche Speicherzugriffe können ziemlich kostspielig sein in Bezug auf den Zeitbedarf und den Berechnungsoverhead. Geht man davon aus, dass Router häufig äußerst große Volumina von IP Datenpaketen handhaben, sind Zeit und Berechnungsoverhead knappe Ressourcen, die geschont werden müssen.
  • In "Memory Organization Scheme for the Implementation of Routing Tables in High Performance IP Routers", Technical Disclosure Bulletin, Vol. 36, Nr. 2, 1. Februar, 1993, Seiten 151-153, ist ein Verfahren offenbart, das die Identifizierung des nächsten Sprungs, dessen IP Adresse und des entspre chenden Ausgabesports über eine Tabellensuche einschließt. Das Verfahren verwendet inhaltsadressierbare Datenspeicher und ein statisches RAM, um eine Übereinstimmung innerhalb einer feststehenden Anzahl von Datenspeicherzyklen zu finden.
  • Im US Patent Nr. 5,032,987 , erteilt an Andrei Z. Broder et al., wird eine lokale Netzwerkanordnung einschließlich einer Hash-Anordnung zur Verfügung gestellt, die eine Vielzahl von lokalen Netzwerken aufweist, die durch eine Brücke zusammengeschaltet sind. Die Brücke umfasst einen Prozessor, einen Programmdatenspeicher, einen Adressdatenspeicher und einen Datenpaketspeicher. Die Datenspeicher sind durch einen Bus mit dem Prozessor verbunden. Jede einer Vielzahl von Schnittstellen verbindet den Bus mit einem der lokalen Netzwerke. Der Adressdatenspeicher ist in eine Vielzahl von Hashtabellen eingeteilt. Schlüssel (Netzwerkadressen) werden mit Hilfe einer unterschiedlichen zufälligen Hashfunktion für jede der Tabellen in jede der Hashtabellen abgebildet. Jede Tabelle enthält auch einen Suchmechanismus, um zu bestimmen, ob ein neuer Schlüssel (in diesem Fall eine Netzwerkadresse), der in die Tabellenhashes eingefügt wird, sich auf eine besetzte Adresse in dieser Tabelle bezieht. Wenn dem so ist, wird der Schlüssel von der nächsten Tabelle verarbeitet, bis der Schlüssel in eine unbesetzte Adresse in einer der Hashtabellen abgebildet ist. Wenn ein Schlüssel in keine der Hashtabellen eingefügt werden kann, werden neue Hashfunktionen erprobt, bis der Schlüssel in eine unbesetzte Adresse (oder einen unbesetzten Ort) in einer der Hashtabellen eingefügt ist. Abgespeicherte Schlüssel werden abgerufen durch paralleles Berechnen der Hashfunktionen für alle Hashtabellen und Ausführen eines parallelen Lesens aus den Tabellen.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung spricht die oben erörterte Beschränkung von herkömmlichen IP Datenpaketroutingschemen an durch Bereitstellen eines Ansatzes zur Datenpaketübermittlung, der pro Zieladresse höchstens drei Zugriffe auf Übermittlungsnachschlagetabellen erfordert. Durch die Reduzierung der Anzahl der Suchzugriffe vermindert die vorliegende Erfindung den Overhead bei der Berechnung und die Zeit, die erforderlich ist um zu bestimmen, wie ein Datenpaket korrekt zu leiten ist. In einer Ausführungsform verwendet die vorliegende Erfindung drei Arten von Nachschlagearrays. Eine erste Art des Nachschlagearrays wird durch die ersten zwei Byte einer IP Zieladresse für ein IP Datenpaket indiziert. In einigen Ausführungsformen wird nicht allein die Zieladresse für die Suche verwendet; vielmehr werden während der Suche andere Felder, wie zum Beispiel die Quelladresse, der Zielport und der Quellport in Verbindung mit der Zieladresse verwendet. Dennoch ist es sinnvoll, den Fall zu betrachten, in dem nur die Zieladresse verwendet wird. Die zweite Art des Nachschlagearrays wird durch das dritte Byte der IP Zieladresse indiziert. Es enthält Einträge für Präfixe im Bereich von größer als zwei Byte und kleiner gleich drei Byte. Jeder Eintrag im ersten Nachschlagearray kann ein separates zugehöriges zweites Nachschlagearray aufweisen. Wenn das zweite keinen übereinstimmenden Eintrag enthält, gibt es keine Einträge, die mit dem aus den ersten drei Byte der IP Zieladresse ausgeformten Präfix übereinstimmen; daher muss die dritte Art des Nachschlagearrays verwendet werden. Das letzte Byte der IP Zieladresse wird als Index zu dieser Tabelle verwendet. Ein separates drittes Nachschlagearray kann für jeden Eintrag in einem zweiten Nachschlagearray zur Verfügung gestellt werden. Auf diese Weise werden die Nachschlagearrays in einer Ausführungsform der vorliegenden Erfindung als Baum aus Nachschlagearrays organisiert.
  • Entsprechend einem Beispiel wird ein Verfahren in einem digitalen Logikgerät für das Übermitteln von Datenpaketen ausgeübt. Die Anordnung umfasst ein Speicherelement, das adressierbare Speicherplätze aufweist. Mehrere Bits der Headerdaten eines Datenpakets für die Netzwerkschicht werden als Index verwendet, um einen ausgewählten der Speicherplätze aufzufinden. Dieser ausgewählte Speicherplatz stellt Information zur Verfügung bezüglich dessen, wie die Anordnung das IP Datenpaket übermitteln sollte. Von dieser Information wird Gebrauch gemacht, um das Datenpaket in Richtung des Zielorts zu übermitteln.
  • Entsprechend einem Aspekt der vorliegenden Erfindung gemäß Anspruch 1, werden eine erste und eine zweite Übermittlungsnachschlagestruktur in einer Anordnung für das Übermitteln eines IP Datenpakets in Richtung eines Zielorts zur Verfügung gestellt, wobei der Zielort eine Zieladresse aufweist, die eine Folge von Bits umfasst. Ein Präfix von mehreren Bits für die Zieladresse wird als Index verwendet, um einen ersten Eintrag in der ersten Übermittlungs-nachschlagestruktur aufzufinden. Der erste Eintrag stellt der zweiten Übermittlungsnachschlagestruktur eine Anweisung zur Verfügung. Der nächste nachfolgende Satz von Bits, der dem Präfix der Zieladresse folgt, wird als Index verwendet, um einen zweiten Eintrag in der zweiten Übermittlungsnachschlagestruktur zu lokalisieren. Der Inhalt des zweiten Eintrags wird beim Übermitteln des IP Datenpakets in Richtung der Zieladresse verwendet.
  • Entsprechend einem weiteren Beispiel weist eine Übermittlungsnachschlagestruktur Positionen auf, die von mehrfachen Bits indiziert werden, die innerhalb eines Switches zur Verfügung gestellt. Der Switch befindet sich in einem Netzwerk, das ein verbindungsloses Netzwerkprotokoll anwendet. Für jedes Datenpaket, das an eine Zieladresse weitergeleitet werden soll, werden Bits in der Zieladresse verwendet, um mindestens eine Position in der Übermittlungsnachschlagestruktur zu lokalisieren und auf diese zuzugreifen. Die Position, auf die zugegriffen wird, wird verwendet, um das Datenpaket zu übermitteln. Es werden weniger Positionen in der Übermittlungsnachschlagestruktur zur Verfügung gestellt als Bits, die in der zugehörigen Zieladresse zur Verfügung gestellt werden.
  • Entsprechend einem weiteren Beispiel umfasst eine Anordnung zur Übermittlung von Datenpaketen einer Netzwerkschicht an Zielorte (wobei die Datenpakete zugehörige Headerdaten aufweisen) eine erste Suchanordnung. Die erste Suchanordnung hält Einträge, die Information zur Verfügung stellen, wie man Datenpakete an ihre Zielorte weiterleiten kann. Die Einträge werden von mehrfachen Bits indiziert. Die Anordnung umfasst auch eine Übermittlungssteuereinheit zur Verwendung von mehrfachen Bits der Headerdaten als Indexe, um Einträge in der ersten Übermittlungsanordnung zu lokalisieren. Die Übermittlungssteuereinheit verwendet auch die Einträge in der ersten Suchanordnung, um das Übermitteln der Datenpakete an die Zielorte zu steuern.
  • Entsprechend einem weiteren Aspekt der vorliegenden Erfindung gemäß Anspruch 4 leitet ein Switch/Router Netzwerk-IP Datenpakete auf Zielorte. Der Switch/Router umfasst ein erstes Nachschlagearray das Einträge enthält, die durch führende Bits von Zieladressen für IP Datenpakete indiziert werden. Jeder Eintrag enthält eine Anweisung um dabei zu unterstützen, ein IP Datenpaket in Richtung eines Zielorts zu übermitteln. Der Switch/Router umfasst auch ein zweites Nachschlagearray das Einträge enthält, die von einem nachfolgenden Satz von Bits indiziert werden, die den führenden Bits in den Zieladressen für IP Datenpakete folgen. Jeder Eintrag enthält eine Anweisung um dabei zu unterstützen, ein IP Datenpaket in Richtung eines Zielorts zu übermitteln. Der Switch/Router umfasst außerdem ein drittes Nachschlagearray das Einträge enthält, die von einem Satz von nachfolgenden Bits indiziert werden, die dem nachfolgenden Satz von Bits in den Zieladressen für IP Datenpakete folgten. Jeder Eintrag im dritten Nachschlagearray enthält eine Anweisung dafür, bei der Übermittlung eines IP Datenpakets zu unterstützen. Der Switch/Router umfasst eine Übermittlungsmaschine dafür, dass er IP Datenpakete an die Zielorte weiterleitet. Die Übermittlungsmaschine greift auf mindestens einen Eintrag in den Nachschlagearrays zu, der von einer Zieladresse für das IP Datenpaket indiziert wird, dass übermittelt wird. Die Übermittlungsmaschine führt die Anweisung aus, die in dem Eintrag enthalten ist, auf den zugegriffen wird.
  • Die Erfindung richtet sich auch auf ein computerlesbares Medium, das computerausführbare Anweisungen gemäß Anspruch 5 enthält.
  • Kurze Beschreibung der Zeichnungen
  • Eine veranschaulichende Ausführungsform der vorliegenden Erfindung wird unten in Bezug auf die folgenden Zeichnungen beschrieben.
  • 1 beschreibt die sieben im OSI Referenzmodell zu findenden Schichten.
  • 2 beschreibt die größte logische Komponente einer IP Adresse.
  • 3 zeigt ein Beispiel für ein herkömmliches Computernetzwerk, in dem eine IP Adresse angewandt wird.
  • 4A beschreibt ein Beispiel für herkömmliche Routingtabelleneinträge.
  • 4B beschreibt ein Beispiel für ein herkömmliches Computernetzwerk, für das die Routingtabelleneinträge gemäß 4A zur Verfügung gestellt werden.
  • 5 beschreibt ein Beispiel für einen Teilbereich eines PATRICIA Baums, der benutzt wird, um Übermittlungstabelleneinträge in einer herkömmlichen Anordnung ausfindig zu machen.
  • 6 ist ein Blockdiagramm, das die Rolle des Switch/Routers beim Ausüben der veranschaulichenden Ausführungs-form der vorliegenden Erfindung veranschaulicht.
  • 7 ist ein Blockdiagramm, das wesentliche Bauelemente des Switch/Routers der 6 veranschaulicht.
  • 8 beschreibt wesentliche Komponenten einer in der veranschaulichenden Ausführungsform gemäß der 6 und 7 verwendeten Anschlusssteckkarte.
  • 9 ist ein Flussdiagramm, das die Schritte veranschaulicht, die beim Verarbeiten von einem eingehenden Frame von Daten ausgeführt werden, um ein IP Datenpaket in der veranschaulichenden Ausführungsform gemäß der 6 und 7 korrekt zu übermitteln.
  • 10 veranschaulicht die Manipulation von Daten in der veranschaulichenden Ausführungsform der vorliegenden Erfindung.
  • 11 veranschaulicht das Format eines SONST Frames.
  • 12 veranschaulicht die wesentlichen Komponenten eines IP Datenpakets.
  • 13 veranschaulicht das Format von Headerdaten, die bei der IP Übermittlungsnachschlagestruktur verwendet werden.
  • 14 veranschaulicht im Datenspeicher gehaltene Strukturen, die dabei verwendet werden, eine IP Suche in der veranschaulichenden Ausführungsform der vorliegenden Erfindung auszuführen.
  • 15 veranschaulicht eine Schnittstellenanordnung.
  • 16 veranschaulicht eine DANET Struktur.
  • 17 ist ein Flussdiagramm, das die Schritte veranschaulicht, die während einer IP Suche entsprechend der veranschaulichenden Ausführungsform der vorliegenden Erfindung ausgeführt werden.
  • 18 beschreibt die Verwendung eines Nachschlageelements in der veranschaulichenden Ausführungsform der vorliegenden Erfindung.
  • 19A veranschaulicht ein Beispiel, in dem ein erstes Nachschlagearray auf ein zweites Nachschlagearray verweist.
  • 19B veranschaulicht ein Beispiel, in dem ein "Nachzieheffekt" verwendet wird, so dass ein Bereich von Einträgen auf eine gemeinsame DANET Struktur verweist.
  • 19C veranschaulicht ein Beispiel, in dem ein erstes Nachschlagearray auf einen Eintrag im zweiten Nachschlagearray verweist, das auf einen Eintrag in einem dritten Nachschlagearray verweist.
  • 20 veranschaulicht das logische Format eines Nachschlageelements.
  • 21 ist ein Blockdiagramm, das die Verwendung eines Rotorzeigers und eines TOS Arrayzeigers veranschaulicht um ein Zielhandle für ein IP Datenpaket zu erzielen.
  • Detaillierte Beschreibung der Erfindung
  • Die veranschaulichende Ausführungsform der vorliegenden Erfindung stellt einen Switch/Router zur Verfügung, der Datenpakete des Network Layer in Richtung ihres Zielorts übermittelt mit im Durchschnitt weniger Speicherzugriffen während des Übermittlungsnachschlagens auf Ebene des Network Layer als herkömmliche Switchingknoten. Der Begriff "Network Layer Datenpaket" verweist auf ein Datenpaket, das einem OSI Layer 3 Protokoll entspricht. Obwohl die veranschaulichende Ausführungsform der vorliegenden Erfindung nachstehend zur Verwendung mit IP Datenpaketen beschrieben wird, kann die vorliegende Erfindung auch für andere Arten der Netzwerkadresssuche, wie zum Beispiel mit CLNP und anderen Protokollen verwendet werden. Der Switch/Router wendet eine erste Übermittlungsnachschlagestruktur an, die von den führenden sechzehn Bits der Zieladresse für ein IP Datenpaket indiziert werden kann. Eine zweite Übermittlungsnachschlagestruktur wird ebenfalls innerhalb des Switch/Routers zur Verfügung gestellt. Die zweite Übermittlungsnachschlagestruktur kann von den nächsten darauf folgenden acht Bits in der Zieladresse indiziert werden, die den ersten sechzehn Bits folgen. Schließlich wird eine dritte Übermittlungsnachschlagestruktur im Switch/Router zur Verfügung gestellt. Die dritte Übermittlungsnachschlagestruktur kann von den letzten 8 Bits der Zieladresse eines IP Datenpakets indiziert werden. Einträge in der dritten Übermittlungsnachschlagestruktur werden verwendet, wenn Einträge in der ersten Übermittlungsnachschlagestruktur und in der zweiten Übermittlungsnachschlagestruktur nicht ausreichen, um das IP Datenpaket in Richtung eines Zielorts zu übermitteln.
  • Die veranschaulichende Ausführungsform wird im Vergleich zu einer Implementierung beschrieben, die die IP Version 4 verwendet. Dennoch werden jene, die in der Technik ausgebildet sind, verstehen, dass die vorliegende Erfindung auch ausgeübt werden kann mit anderen Versionen des IP, einschließlich Version 6.
  • Die Analyse von IP Datenpaketadressen und Datenverkehrsmustern ergibt, dass die Mehrheit der IP Datenpakete nur eine einzelne Suche in der ersten Übermittlungsnachschlagestruktur benötigen (das heißt, die meisten IP Datenpakete können auf Grundlage von den ersten zwei Byte ihrer IP Zieladressen richtig geleitet werden). Daher benötigt die Mehrheit der IP Datenpakete nur einen einzelnen Speicherzugriff. Ein überwältigender Prozentsatz von IP Datenpaketen benötigt entweder nur eine Suche in der ersten Übermittlungsnachschlagestruktur oder eine Suche in sowohl der ersten Übermittlungsnachschlagestruktur als auch in der zweiten Übermittlungsnachschlagestruktur. Daher kann ein überwältigender Prozentsatz von IP Datenpaketen mit nur zwei Speicherzugriffen für die IP Suche übermittelt werden. Als Ergebnis stellt die veranschaulichende Ausführungsform eine wesentliche Ersparnis an Zeit und bei der Berechnung zur Verfügung.
  • In der veranschaulichenden Ausführungsform enthält jeder Eintrag im Nachschlagearray oder jedes Element eine Anweisung. Die Anweisung wird von einer Suchmaschine ausgeführt, die im Switch/Router zur Verfügung gestellt ist. Die Anweisung sagt der Suchmaschine, was während des Suchverfahrens als nächstes zu tun ist. Zum Beispiel kann es sein, dass eine Anweisung in einem Element in der ersten Übermittlungsnachschlagestruktur die Suchmaschine anweist, auf ein Element in der zweiten Übermittlungsnachschlagestruktur zuzugreifen. Das Element, auf das in dem zweiten Übermittlungsnachschlagearray zugegriffen wird, kann eine Anweisung enthalten, die anordnet, dass die Suchmaschine eine bestimmte Datenanordnung verwendet, die Information enthält bezüglich dessen, welcher Ausgabeport bei der Übermittlung des IP Datenpakets zu verwenden ist.
  • Vom Switch/Router der veranschaulichenden Ausführungsform wird angenommen, dass er in einem Computernetzwerk platziert ist, in dem IP Datenpakete in Richtung von Zielorten weitergeleitet werden müssen. Der Switch/Router der veranschaulichenden Ausführungsform ist für die Verwendung in Computernetzwerken, wie zum Beispiel dem Internet, einem Intranet oder einem Extranet geeignet. 6 beschreibt die grundlegende Rolle des Switch/Routers 66 in der veranschaulichenden Ausführungsform. Im Besonderen tritt ein IP Datenpaket 64 über einen Inputport 68 in den Switch/Router 66 ein. Der Switch/Router 66 bestimmt, welcher Port 70 dabei zu verwenden ist, um das IP Datenpaket 64 auszugeben, und um so sicherzustellen, dass das IP Datenpaket in Richtung des gewünschten Zielorts geleitet wird. Das IP Datenpaket 64 kann in Frames gekapselt sein und kann zusammen mit anderen IP Datenpaketen in den Switch/Router 66 eintreten. Die Entscheidung bezüglich dessen, wie das IP Datenpaket 64 innerhalb des Switch/Routers 66 weiterzuleiten ist, schließt einen IP Übermittlungsnachschlagevorgang ein, der detaillierter weiter unten beschrieben wird.
  • 7 veranschaulicht ein Beispiel für einen Teilbereich des grundlegenden Layouts für den Switch/Router 66. Die in 7 gezeigten Komponenten können sich in einer einzelnen Box (das heißt, untergebracht innerhalb eines einzelnen Gehäuses) befinden. Der Switch/Router 66 ist in der Lage, mehrfache Eingangsdatenströme gleichzeitig zu empfangen und zu verarbeiten. Diese Inputströme kommen am Switch/Router 66 über separate Verbindungen an. In der veranschaulichenden Ausführungsform sind diese Eingangsdatenströme SONST Datenströme (SONST ist ein Akronym für synchrone optische Netzwerke). SONST ist ein Standard, der eine synchrone Ebene eins Transportsignal mit 51,84 Megabits pro Sekunde spezifiziert. Dieser Standard definiert eine Familie von faseroptischen Übertragungsraten, die das Zusammenarbeiten von Übertragungsprodukten über Netzwerk grenzen hinweg für eine Vielzahl von Herstellern erleichtert.
  • Der Standard definiert eine physische Schnittstelle, optische Übertragungsraten, bekannt als Optical Carrier (OC) Signale und ein Frameformat. Die optischen SONST Übertragungsraten sind wie folgt definiert:
    OC Ebene Übertragungsrate Kapazität
    OC-1 51,84 Mbps 28 DS1 oder 1 DS3
    OC-3 155,52 Mbps 84 DS1 oder 3 DS3
    OC-9 466,56 Mbps 252 DS1 oder 9 DS3
    OC-12 622,08 Mbps 336 DS1 oder 12 DS3
    OC-18 933,12 Mbps 504 DS1 oder 18 DS3
    OC-24 1,244 Gbps 672 DS1 oder 24 DS3
    OC-36 1,866 Gbps 1008 DS1 oder 36 DS3
    OC-48 2,488 Gbps 1344 DS1 oder 48 DS3
    OC-96 4,976 Gbps 2688 DS1 oder 96 DS3
    OC-192 9,953 Gbps 5376 DS1 oder 192 DS3
    OC-255 13,21 Gbps
  • In der oben stehenden Tabelle bezieht sich DS auf eine bekannte standardisierte Hierarchie von digitalen Signalgeschwindigkeiten, die verwendet wird, um Kapazitäten von Leitungen und Anschlusskabeln zu klassifizieren. Der Grundgeschwindigkeitsgrad ist DS-0, was 64 Kilobits pro Sekunde entspricht. DS-1 entspricht 1,544 Megabits pro Sekunde, und DS 3 entspricht 44,736 Megabits pro Sekunde.
  • Jede Anschlusssteckkarte 76, 78, 80 und 82 ist dafür entworfen, einen OC-48 Inputdatenstrom zu empfangen, der den 2,488 Gigabits pro Sekunde (Gbps) entspricht. Multiplexer 72 und 74 werden zur Verfügung gestellt, um vier OC-12 Eingangsdatenströme zu multiplexen, um so einen OC-48 Eingangsdatenstrom an den Anschlusssteckkarten 82 beziehungsweise 76 zu erzeugen. In dem in 7 beschriebenen Beispiel wird angenommen, dass separate OC-48 Eingangsdatenströme von den Anschlusssteckkarten 78 beziehungsweise 80 empfangen werden.
  • Die Anschlusssteckkarten 76, 78, 80 und 82 enthalten Intelligenz für das Empfangen und das Übertragen von IP Datenpaketen. Jede Anschlusssteckkarte 76, 78, 80 und 82 ist auf einem gemeinsamen Chassis innerhalb des Switch/Routers 66 platziert. Jede Anschlusssteckkarte 76, 78, 80 und 82 enthält mindestens eine anwendungsspezifische integrierte Schaltung (ASIC) 84, 86, 88 und 90, die den IP Übermittlungsnachschlagevorgang ausführt. 8 beschreibt wesentliche Komponenten einer Anschlusssteckkarte 100 detaillierter. Die Anschlusssteckkarte 100 umfasst einen Mikroprozessor 102 und einen Datenspeicher 104. Die Anschlusssteckkarte 100 umfasst auch ein ASIC 106, das eine Suchmaschine 108 aufweist. Die Suchmaschine 108 kann in einer Anzahl von unterschiedlichen Formen ausgeführt werden, und kann einen separaten Prozessor umfassen.
  • Obwohl das ASIC eine Hardwareimplementierung für die IP Übermittlungsnachschlagestruktur zur Verfügung stellt, erkennen jene, die in der Technik ausgebildet sind, dass die vorliegende Erfindung auch eine Softwareimplementierung umfasst. Anderes ASICs können auf der Anschlusssteckkarte 100 zur Verfügung gestellt werden, um andere Funktionalitäten auszuführen.
  • Das ASIC 84, 86, 88 und 90 auf jeder der Anschlusssteckkarten 76, 78, 80 und 82 ist dafür verantwortlich, eingehende IP Datenpakete zu empfangen, das entsprechende Zielhandle für die IP Datenpakete festzulegen und die IP Datenpakete über die Verbindung zur entsprechenden Ausgangsanschlusssteckkarte zu übermitteln. Das Zielhandle zeigt der Ausgangsanschlusssteckkarte an, wie das IP Datenpaket übermittelt werden sollte. Die Verbindung 92 ist ein Verbindungsmittel, das die Anschlusssteckkarten 76, 78, 80 und 82 zusammenschaltet. Ein Steuerungsprozessor 94 überwacht und verwaltet Operationen innerhalb des Teilbereichs des in 7 gezeigten Switch/Routers 66.
  • Jene, die in der Technik ausgebildet sind, erkennen, dass die vorliegende Erfindung nicht mit einer wie in den 6 und 7 gezeigten Switch-/Routerkonfiguration ausgeübt werden muss. Es wird beabsichtigt, dass die in 6 gezeigte Darstellung veranschaulichend und für die vorliegende Erfindung nicht einschränkend ist. Zum Beispiel könnte das IP Übermitteln in einem Rechnersystem, wie zum Beispiel einem Personalcomputer ausgeführt werden. Außerdem muss das IP Übermittlungsnachschlagen nicht von einem ASIC ausgeführt werden, sondern kann vielmehr von einem dedizierten Übermittlungsmikroprozessor oder von einem Zustandsautomaten ausgeführt werden. Wie weiter oben erwähnt, kann die IP Übermittlungsnachschlagestruktur einzig durch Software implementiert werden. Außerdem muss sich die Intelligenz nicht in den Anschlusssteckkarten befinden, sondern beansprucht vielmehr Anschlusssteckkarten mit einem intelligenten Prozessor, die verwendet werden können, um das IP Übermittlungsnachschlagen auszuführen. Weiterhin muss der Switch/Router keine vier Anschlusssteckkarten aufweisen, sondern kann vielmehr eine unterschiedliche Anzahl von Anschlusssteckkarten aufweisen. Die Eingangsdaten müssen keine SONST Datenströme sein, die Daten in SONST Frames halten. Andere Ar ten von Datenformaten und Datenströmen können beim Ausüben der vorliegenden Erfindung empfangen werden.
  • Ein Beispiel ist hilfreich, um den Betrieb des Switch/Routers 66 beim Übermitteln eines IP Datenpakets zu veranschaulichen. Nehmen wir an, dass ein IP Datenpaket vom SONST Multiplexer 74 empfangen wird. Das IP Datenpaket wird dann von der Anschlusssteckkarte 76 empfangen und vom ASIC 84 verarbeitet. Das ASIC 84 leitet das IP Datenpaket über die Verbindung 92 zu Anschlusssteckkarte 82. Die Anschlusssteckkarte 82 leitet das IP Datenpaket anschließend aus auf den SONST mux 72, so dass das IP Datenpaket in Richtung des entsprechenden Zielorts ausgegeben werden kann.
  • 9 ist ein Flussdiagramm, das einen Überblick über die Verarbeitung zur Verfügung stellt, die über die Daten ausgeführt wird, die vom Switch/Router 66 empfangen werden. Es wird vorausgesetzt, dass diese Daten mindestens ein IP Datenpaket enthalten. Anfangs beginnen die Daten im Zustand 128 (10), wo ein SONST Frame 130 von einer der Verbindungen empfangen wird. Der SONST Frame 130 verkapselt einen Frame von Daten, die in dem durch den SONST Standard festgelegten Format übertragen werden. 11 stellt ein Blockdiagramm zur Verfügung, das das Format eines SONST Frames 130 veranschaulicht. Ein SONST Frame 130 umfasst 90 Oktette (8 Bit Bytes) in der Breite und 9 Reihen nach unten. Die Nutzlast ist im Synchronous Payload Envelope (SPE) enthalten. Der SPE enthält 9 Byte, die dem Wegeoverhead (OH) zugeordnet sind. Der SONST Frame 130 enthält auch Streckenoverhead 146 und Anschlussoverhead 148. Der Streckenoverhead 146 und der Anschlussoverhead 148 sind Teil des SONST Transportoverheads. In diesem Zusammenhang bezieht sich "Overhead" auf die Headerinformation, die für verschiedene Schichten des Computernetzwerks zur Verfügung gestellt wird.
  • Wie aus 10 ersehen werden kann, verkapselt der SONST Frame 130 eine Layer zwei Struktur (das heißt eine durch ein Protokoll gemäß Layer zwei zur Verfügung gestellte Struktur, wobei Layer zwei durch das OSI Modell definiert ist). Mindestens ein IP Datenpaket 134 wird innerhalb des SONST Frames 130 und der Ebene zwei Struktur 132 gehalten. Der SONST Frame wird dann vom Switch/Router 66 enkapselt (Schritt 112 in 9). Der Switch/Router 66 enthält Hardware, die für das Entkapseln des SONST Frame entworfen ist. Nach der Entkapselung wird die Layer zwei Struktur 132, die das IP Datenpaket 134 enthält, offengelegt (wie durch den Zustand 136 in 10 angezeigt).
  • Der Switch/Router 66 öffnet dann die Layer zwei Struktur 134 durch Entfernen des Layer zwei Headers, um so den Zugriff auf ein oder mehrere IP Datenpakete 134 zu erlangen (Schritt 114 in 9). Die Layer zwei Struktur kann zum Beispiel ein Punkt-zu-Punkt Protokoll-(PPP)Frame, eine ATM Zelle oder ein Framerelais Frame sein.
  • Die Suchmaschine 108 des ASIC 106 erhält ein einzelnes IP Datenpaket von der Layer zwei Struktur (Schritt 116 in 9). Das ASIC 106 weiß, dass die Layer zwei Struktur IP Datenpakete basierend auf Schnittstelleninformation enthält. Der Switch/Router 66 erhält Schnittstelleninformation bezüglich Schnittstellen aufrecht, in denen eingehende Daten empfangen werden. Jede Schnittstelle ist mit einer bestimmten Anschlusssteckkarte und einem bestimmten Port verbunden. Die Schnittstelleninformation kennzeichnet die Eigenschaften der Daten, die empfangen werden. Zum Beispiel können die Daten als eingehende IP Datenpakete enthaltend identifiziert werden.
  • Der IP Header 152 (10) des IP Datenpakets 134 wird zusammen mit einer Portinformation 141 vom Transportheader 143 kopiert, um Headerdaten 153 zu erzeugen (Schritt 118 in 9). Wie in 12 gezeigt, umfasst das IP Datenpaket 134 ei nen Header 152 und Daten 154. Auf diese Weise gehen in Schritt 119 die Daten, die verarbeitet werden, von Zustand 138 in Zustand 139 über (siehe 10).
  • 13 zeigt einem Beispiel für die Headerdaten 152, die für das Übermittlungsnachschlagen für IP Version 4 verwendet werden. Alle Felder in den Headerdaten 153, außer den Feldern 184 und 186 (die vom Transportheader 143 kopiert sind) sind vom IP Header 152 kopiert. Die Headerdaten 153 umfassen ein Versionsfeld 160, das Information bezüglich der Version des IP Protokolls enthält, das verwendet wird. Für Datenpakete der IP Version 4 enthält dieses Feld 160 einen Wert von 4. Das Internet Header Length (IHL) Feld 162 kennzeichnet die Länge des Headers in Vielfachen von 4 Oktetten. Der Differential Service (DF) 164 enthält eine Zahl, die eine bestimmte Handhabung oder Behandlung für das Datenpaket kennzeichnet. Das Gesamtlängenfeld 166 hält Information bezüglich der Gesamtlänge eines Datenpakets, bevor irgendeine Fragmentierung auftritt. Das Identifikationsfeld stellt einen Identifikationswert für das Datenpaket zur Verfügung, der verwendet werden kann, wenn das Datenpaket später fragmentiert ist, um die Fragmente mit dem ursprünglichen Datenpaket zu verbinden.
  • Die Headerdaten 153 umfassen Flags 170. Die Flags 170 umfassen ein DF Flag und ein MF Flag. Das DF ("don't fragment") Flag zeigt an, ob ein Datagramm (das mindestens zum Teil vom Datenpaket transportiert wird) fragmentiert werden soll. Das MF ("more fragment") Flag kennzeichnet, ob es mehrere Fragmente gibt oder ob das Datenpaket das letzte Fragment des Datagramms enthält. Das Fragmentversatzfeld 172 enthält einen Versatzwert, der den Versatz kennzeichnet, in dem das Fragment zu dem wieder zusammengesetzten Datenpaket gehört. Das Lebensdauerfeld 174 kennzeichnet die Zeitperiode für die das Datenpaket gültig ist und nach welcher das Datenpaket verworfen werden sollte. Das Protokollfeld 176 enthält einen Wert, der es dem Zielendknoten des Network Layer ermöglicht zu wissen, welches innerhalb des Endknotens ablaufende Protokoll das Datenpaket empfangen sollte. Ein Headerprüfsummenfeld 178 wird zur Verfügung gestellt. Die Headerdaten 153 umfassen auch eine Quelleadresse 180, die die Quelle kennzeichnet, für die das Datenpaket entstanden ist. Ein Zieladressefeld 182 enthält eine Zieladresse für den Zielort, an den das IP Datenpaket weitergeleitet werden soll. Die Headerdaten 153 umfassen auch ein Quellportfeld 184 und ein Zielportfeld 186, die vom Transportheader zur Kennzeichnung von entsprechenden Ports kopiert werden. Die Portfelder 184 und 186 können in der Dienstgüte- (QOS – Quality Of Service) Verarbeitung oder auf andere Art und Weise, wie zum Beispiel Zugangskontrollfilterung verwendet werden.
  • Sobald die Headerdaten 153 gesammelt worden sind, kann die Zieladresse 182 verwendet werden, um ein Übermittlungsnachschlagen innerhalb der Übermittlungsnachschlagearrays auszuführen (Schritt 120 in 9). Das IP Übermittlungsnachschlagen muss sich nicht einzig auf die Zieladresse verlassen; vielmehr können zusätzliche Felder in den Headerdaten 153 in Verbindung mit der Zieladresse verwendet werden. Zum Beispiel können die Quelladresse, der Quellport und der Zielport zusammen mit der Zieladresse verwendet werden. Diese anderen Felder können dabei verwendet werden, um bestimmte QOS zur Verfügung zu stellen. Zum Zweck der Einfachheit richtet sich die untenstehende Diskussion anfangs auf den Fall, in dem man sich nur auf die Zieladresse verlässt. Diese Suche kennzeichnet, wo das IP Datenpaket vom Switch/Router 66 ausgegeben werden sollte. Das Suchverfahren wird weiter unten detaillierter beschrieben. Das IP Datenpaket wird dann über die Verbindung 92 zu einer Anschlusssteckkarte übermittelt, um so vom Switch/Router 66 ausgegeben zu werden (Schritt 122 in 9).
  • Datenpakete können eine QOS Verarbeitung erfordern oder nicht. Datenpakete, die eine QOS Verarbeitung erfordern, können einer anderen QOS Verarbeitung unterworfen werden als andere Arten von Datenpaketen. Die QOS Verarbeitung bewertet zusätzliche Felder in den Headerdaten 153, um zu bestimmen, ob ein Datenpaket in einen bestimmten QOS Datenfluss klassifiziert werden soll oder nicht. Eine QOS Verarbeitung kennzeichnet diese Datenflüsse und trennt solche Datenpakete für die spezielle Verarbeitung ab. Eine Filterspezifikation kennzeichnet, welche Felder beurteilt werden und die Werte, die die Felder für eine vorgegebene Art von QOS aufweisen sollten. Als ein Ergebnis können bestimmte Datenpakete auf Grundlage von den während der QOS Verarbeitung bewerteten Feldern statt auf Grundlage der Zieladresse allein geleitet werden. Der Zieladressfall wird hier als der grundsätzliche Ansatz erörtert und kann in Verbindung mit QOS Verarbeitung verwendet werden, um zu bestimmen, wie ein IP Datenpaket zu übermitteln ist.
  • Beim Ausführen des Übermittlungsnachschlagens verwendet die Suchmaschine 108 eine Anzahl von internen Strukturen, umfassend Tabellen, Arrays und andere Datenstrukturen. 14 beschreibt mehrere der wesentlichen Varianten von Strukturen, von denen während eines Übermittlungsnachschlagens für IP Datenpakete Gebrauch gemacht wird. Die Schnittstellenanordnungen 210 enthalten Information bezüglich der Schnittstellen. Eine Schnittstelle bezieht sich im Allgemeinen auf eine Verbindung mit einem anderen Switchingknoten in einem Computernetzwerk. 15 zeigt ein Beispiel für eine Schnittstellenanordnung 210 für eine vorgegebene Schnittstelle. Die Schnittstellenanordnung 210 enthält auch ein Anfangsnachschlageelement 220. Das Anfangsnachschlageelement 220 ist ein Arraynachschlageelement, das eine Anfangsanweisung enthält, die am Anfang des Übermittlungsnachschlagens für ein IP Datenpaket ausgeführt wird. Die Verwendung dieses Anfangsnachschlageelements 220 wird weiter unten detaillierter beschrieben. Die Schnittstellenanordnung 210 kann auch eine Anzahl von Zählern 221 enthal ten, die Zähler enthalten, die beim Sammeln von Statistiken betreffend den Verkehr über die Schnittstelle nützlich sind.
  • Die Übermittlungsnachschlagestruktur verwendet auch Nachschlagearrays 212, die aus Nachschlageelementen zusammengesetzt sind. Das Format und die Verwendung dieser Nachschlageelemente werden weiter unten detaillierter beschrieben. Die Übermittlungsnachschlagestruktur kann auch auf ein SANFT 214 oder ein DANET 216 zugreifen. Ein SANFT 214 ist eine Datenstruktur, die eine Anzahl von Strukturen für entsprechende Quelladressen hält. Die Strukturen enthalten nützliche Information bezüglich der Quelladressen, die für QOS und TOS ausgenutzt werden können. Das DANET 216 enthält DANET Strukturen, die Informationen bezüglich der Zieladressen enthalten, die bei der Bestimmung des nächsten Sprungs verwendet werden. Die DANET Strukturen weisen ein Format wie das in 16 gezeigte auf. Im Besonderen enthält jede DANET Struktur 222 ein Feld 224, das ein Zielhandle, einen Zeiger auf ein TOS Array oder einen Zeiger auf einen Rotor enthalten kann. Wie weiter oben erwähnt, ist ein Zielhandle eine zusammengesetzte Datenstruktur, die verwendbare Informationen enthält bezüglich dessen wohin ein vorgegebenes IP Datenpaket geleitet werden sollte, so dass es korrekt in Richtung eines Zielorts ausgegeben wird. Der Switch/Router 66 verwendet das Zielhandle auf der Übertragungsseite, um zu bestimmen, wohin ein IP Datenpaket zu senden ist (das heißt, welche Anschlusssteckkarte und welcher Ausgangsport verwendet werden sollte). Das Feld 224 kann stattdessen einen Zeiger auf einen Rotor enthalten, der eine Reihe von Zielhandles oder einen Zeiger auf ein Type Of Service (TOS) Array enthalten, das einen Satz von Zielhandles enthält. Die Zielhandles im TOS Array werden von einem TOS Parameter indiziert. Die DANET Struktur 222 enthält eine Anzahl von Zählern 225, umfassend Datenpaketzähler und Bytezähler. Diese Zähler 225 sind verwendbar beim Überwachen des Datenverkehrs zu einem Zielort und können bei der QOS Verarbeitung verwendet werden. Die DANET Struktur 222 kann auch andere Daten 226 enthalten.
  • 17 stellt ein Flussdiagramm der Schritte zur Verfügung, die während eines Übermittlungsnachschlagens bester Bemühung (best effort) für ein Unicast IP Datenpaket ausgeführt werden. Die Suche bestimmt, wie das IP Datenpaket an den nächsten Sprung in Richtung des Zielorts zu senden ist. Der Switch/Router 66 kennt die Schnittstelle, an der das IP Datenpaket angekommen ist. Auf die Schnittstellenanordnung für die zugehörige Schnittstelle wird zugegriffen, und die Suchmaschine 108 verarbeitet das in der Schnittstellenanordnung (Schritt 230 in 17) enthaltene Anfangsnachschlageelement. Wie in 15 gezeigt, umfasst die Schnittstellenanordnung 210 ein Nachschlagearrayelement 220, das eine Anweisung enthält. Die Anweisung ist eine Arraynachschlageanweisung die das Array kennzeichnet, auf das das Nachschlagen angewandt werden soll. Das Nachschlageelement 220 (18) enthält einen Befehlscode 256 für die Arraysuche. Das Nachschlageelement 220 enthält auch eine Arrayadresse 252 und eine Headerhalbbyteauswahl 254. Ein Halbbyte umfasst 4 Bits, und verschiedene Halbbytes innerhalb des Headers können verwendet werden, um einen Index zu einem Arraynachschlageelement in einem Nachschlagearray zu erzeugen. Informationen im Header außer der Zieladresse können für die Suche verwendet werden, und die Headerhalbbyteauswahl 254 kennzeichnet, welche Information für die Suche zu verwenden ist. Die Arrayadresse 252 kennzeichnet den Ort des Nachschlagearrays 264 und kann mit den 16 Adressbits 260 kombiniert werden, um das Nachschlageelement 266 innerhalb des Nachschlagearrays 264 ausfindig zu machen. Auf diese Weise wird anfangs auf den Eintrag 266 im ersten Nachschlagearray 264 zugegriffen und dieser wird verarbeitet (Schritt 232 in 17).
  • Wie in 20 gezeigt, enthält dieses Nachschlageelement im ersten Übermittlungsnachschlagearray 264 eine Arrayadresse, eine Headerhalbbyteauswahl und Befehlscode. Der Befehlscode kann die Suchmaschine 108 auf ein anderes Übermittlungsnachschlagearray richten. Daher muss auf das nächste nachfolgende Nachschlagearray zugegriffen werden. 19A zeigt ein Beispiel, wobei ein Nachschlageelement 272 im Nachschlagearray 264 eine Arrayadresse für ein zweites Nachschlagearray 274 kennzeichnet. Das zweite Nachschlagearray 274 wird durch das dritte Byte innerhalb der Zieladresse indiziert. Die Nachschlageelemente im zweiten Nachschlagearray 274 umfassen die Nachschlageelemente 276 und 278 für die Präfixe 1.2.3 beziehungsweise 1.2.4.
  • 19A zeigt auch ein Beispiel, in dem ein Nachschlageelement 273 einen Befehlscode enthält, der die Suche an ein anderes acht Bit Nachschlagearray 275 richtet. Das dritte Byte der Zieladresse wird als ein Index in dieses acht Bit Nachschlagearray 275 verwendet, um ein Nachschlageelement 277 aufzufinden. Wie weiter oben erwähnt wurde, sind die Nachschlagearrays als Baum organisiert, wobei die höchste Ebene des Baums Verweise auf die nächste Ebene des Baums enthält. Daher kann es eine wesentliche Anzahl von acht Bit Nachschlagearrays geben, auf die von dem sechzehn Bit Nachschlagearray in der für die veranschaulichende Ausführungsform der vorliegenden Erfindung beschriebenen Implementierung verwiesen wird.
  • In der oben beschrieben Beschreibung wurde angenommen, dass die im ersten Nachschlagearray enthaltene Anweisung im Nachschlageelement eine Arraynachschlageanweisung für ein zweites Nachschlagearray ist. In einigen Fällen kann das erste Nachschlageelement eine gesetzte DANET Anweisung enthalten, die eine vorgegebene DANET Struktur mit dem IP Datenpaket verbindet. Diese DANET Struktur enthält ein Zielhandle oder einen Zeiger auf einen Rotor oder ein TOS Array, von denen ein Ziel handle abgeleitet werden kann. In solch einem Fall ist das Nachschlageelement mit einem Präfix verbunden, der mit den ersten 16 Bits der Zieladresse für das IP Datenpaket übereinstimmt, und die bekannte Übermittlungsinformation kann verwendet werden, um das IP Datenpaket zu übermitteln. Solch eine gesetzte DANET Anweisung kann in jeder der unterschiedlichen Schichten von Tabellen von Übermittlungsnachschlagearrays gefunden werden, in Abhängigkeit davon, wo eine Übereinstimmung gefunden wird.
  • Mehrfache Nachschlageelemente können auf dasselbe Array der nächsten Ebene verweisen oder können auf dieselbe DANET Struktur verweisen. 19B zeigt einen Fall, in dem durch ein Nachschlagearrayelement 279 im sechzehn Bit Nachschlagearray 264 auf ein acht Bit Nachschlagearray 278 verwiesen wird. Das acht Bit Nachschlagearray 278 enthält 256 Einträge, die den 256 Möglichkeiten von möglichen Werten entsprechen, die das dritte Byte der Zieladresse annehmen kann. Die Einträge im Bereich für die Präfixe 1.2.128 bis 1.2.255 zeigen alle auf die DANET Struktur 282 als die zu verwendende DANET Struktur, außer dem Eintrag für 1.2.129. Der Eintrag für 1.2.129 zeigt an, dass eine andere DANET Struktur 280 verwendet werden soll. Die DANET Struktur 280 gehört zu Präfix 1.2.129/25, und die DANET Struktur 28 gehört zu Präfix 1.2.1.128/17 für. Dieser Nachzieheffekt stellt eine Optimierung zur Verfügung, so dass keine große Anzahl von Kopien von einer vorgegebenen DANET Struktur verwendet werden muss und der Nachzieheffekt auf diese Weise Speicherplatz einspart. Dieser Ansatz berücksichtigt auch Fälle, in denen das übereinstimmende Präfix eine Länge zwischen 17 und 23 Bits aufweist.
  • In Schritt 234 bestimmt die Suchmaschine 238 ob die Aufgabe ausgeführt worden ist oder nicht. Die Anweisung, die von der Suchmaschine in Schritt 232 ausgeführt wird, informiert die Suchmaschine ob die Aufgabe ausgeführt worden ist oder nicht. Dort wo eine Übereinstimmung gefunden wird, wird die DANET Struktur, die durch die gesetzte DANET Anweisung gesetzt wird, zur Übermittlung des Datenpakets verwendet und die IP Suche ist vollständig (Schritt 242 in 17). In anderen Fällen gibt es kein übereinstimmendes Präfix von 16 Bits oder weniger und die Suche muss mit dem zweiten Übermittlungsnachschlagearray weitergehen, das 28 Elemente enthält und vom dritten Byte der Zieladresse veranlasst wird.
  • Wenn die Suchmaschine 108 dazu angewiesen wird, auf das zweite Übermittlungsnachschlagearray zu sehen, greift die Suchmaschine auf das entsprechende Nachschlageelement zu, und das zweite Nachschlagearray verarbeitet den Eintrag dann (Schritt 236 in 17). Dieses Nachschlageelement kann eine Anweisung derselben Vielfalt enthalten wie von jenen, die weiter oben in Bezug auf das erste Nachschlagearray erörtert worden sind. In Schritt 238 bestimmt die Suchmaschine 108, ob die Aufgabe ausgeführt worden ist oder nicht. Wenn die Suchmaschine die Aufgabe nicht ausgeführt hat, weist die Anweisung, die verarbeitet wurde, die Suchmaschine dazu an, auf das dritte Nachschlagearray zu blicken, um zu bestimmen, wie das IP Datenpaket zu verarbeiten ist. Dies bedeutet, dass es kein übereinstimmendes Präfix von 24 Bit in der Länge oder weniger gab. Daher muss auf das dritte und endgültige Übermittlungsnachschlagearray, das 28 Einträge enthält, zugegriffen werden. Auf diese Weise greift die Suchmaschine 108 auf ein Nachschlageelement im dritten Nachschlagearray zu und verarbeitet das Element (Schritt 240 in 17). Die gekennzeichnete DANET Struktur wird dann dabei verwendet, um das Datenpaket (Schritt 242 in 17) zu übermitteln.
  • 19C zeigt ein Beispiel, in dem von Nachschlageelementen von allen drei Ebenen der Übermittlungsnachschlagearrays Gebrauch gemacht wird. Im Besonderen wird ein Nachschlageelement 272 im 16 Bit oder ersten Nachschlagearray 264 verarbei tet und weist die Suchmaschine 108 dazu an, auf das Nachschlageelement 282 im zweiten Nachschlagearray 274 zuzugreifen. Das Nachschlageelement 282 enthält eine Anweisung darüber, eine Arraysuche über Nachschlageelement 292 innerhalb des dritten Übermittlungsnachschlagearrays auszuführen. Die Anweisung im Nachschlageelement 292 wird ausgeführt, um die entsprechende DANET Struktur zu setzen, so dass diese mit dem IP Datenpaket verbunden wird.
  • Wie weiter oben erwähnt wurde, muss die DANET Struktur, die zur Verwendung beim Übermitteln eines IP Datenpakets angewendet wird, nicht direkt das Zielhandle 215 umfassen (siehe 21), sondern kann vielmehr einen indirekten Verweis darauf umfassen, das Zielhandle zu erhalten. Zum Beispiel kann die DANET Struktur 222 ein Feld umfassen, das einen Zeiger auf ein TOS Array 310 enthält, das ein Zielhandlearray ist. Das TOS Array 310 wird von einem TOS Parameter indiziert. Das einem Datenpaket angebotene TOS kann variieren und kann ausgedrückt werden als ein TOS Parameterwert. Dieser Wert kann zum Beispiel aus dem Feld 164 der Headerdaten 153 entnommen werden. Der TOS Parameterwert wirkt als Index zum TOS Array 310, um ein Zielhandle für das IP Datenpaket zu wählen. Die DANET Struktur 222 kann auch einen Verweis auf einen Rotor 314 enthalten, der wiederum auf ein Zielhandle 315 verweist. Das TOS Array 310 kann auch einen Verweis auf einen Rotor 314 statt einen direkten Verweis auf ein Zielhandle 314 enthalten. Der Rotor 314 ist eine Struktur, die einen Satz von Zielhandles enthält, und in der veranschaulichenden Ausführungsform verwendet wird, um eine Zusammenfassung von mehrfachen Verbindungen mit niedriger Geschwindigkeit zu erleichtern, um so eine virtuelle Verbindung mit hoher Geschwindigkeit darzustellen. Der Rotorschenkel (das heißt, welcher Eintrag im Rotor verwendet wird) kann programmgesteuert ausgewählt werden, durch entweder einen zufällig erzeugten Index oder basierend auf einem Hash der Felder, die den QOS Datenfluss für das Datenpaket kennzeichnen.
  • Während die vorliegende Erfindung mit Bezug auf eine veranschaulichende Ausführungsform davon beschrieben worden ist, erkennen jene, die in der Technik ausgebildet sind, dass verschiedene Änderungen in der Form und im Detail gemacht werden können, ohne vom beabsichtigten Schutzumfang der vorliegenden Erfindung abzuweichen, wie dieser in den anhängenden Ansprüchen definiert ist. Zum Beispiel kann eine unterschiedliche Anzahl von Nachschlagearrays verwendet werden, und die Nachschlagestrukturen müssen keine Arrays sein, sondern können unterschiedlich organisiert sein, wie zum Beispiel in Listen, Tabellen usw. Weiterhin müssen die Arrays nicht entlang von Byte-Grenzen indiziert werden. Zum Beispiel kann das erste Übermittlungsnachschlagearray durch 15 Bits statt 16 Bits indiziert werden. Außerdem müssen die Arrayelemente keine Anweisungen umfassen, sondern können vielmehr Daten oder Zeiger enthalten.

Claims (5)

  1. Verfahren zur Übermittlung eines Internet Protokoll (IP) Datenpakets (63, 134) durch eine Anordnung in Richtung eines Zielorts, der eine Zieladresse aufweist, die eine Folge von Bits umfasst, wobei das Verfahren die nachfolgenden Schritte umfasst: Bereitstellen einer ersten Übermittlungsnachschlagestruktur (264) und einer zweiten Übermittlungsnachschlagestruktur (264), gekennzeichnet durch die Schritte Verwenden eines Präfix der Zieladresse des IP Datenpakets (64, 134) aus mehreren Bits als Index, um einen ersten Eintrag in der ersten Übermittlungsnachschlagestruktur aufzufinden; wobei der erste Eintrag in der ersten Übermittlungsnachschlagestruktur (264) eine Anweisung an die zweite Übermittlungsnachschlagestruktur (264) zur Verfügung stellt unter Verwendung eines nächsten sequentiellen Satzes von Bits, die dem Präfix in der Zieladresse folgen, als einen Index, um einen zweiten Eintrag in der zweiten Übermittlungsnachschlagestruktur (264) aufzufinden, wobei der zweite Eintrag Inhalte aufweist; und Anwenden des Inhalts des zweiten Eintrags beim Übermitteln des IP Datenpakets in Richtung der Zieladresse.
  2. Verfahren gemäß Anspruch 1, wobei der Schritt, den Inhalt des zweiten Eintrags anzuwenden, das Ausführen einer im zweiten Eintrag enthaltenen Anweisung umfasst, um das IP Datenpaket (63, 134) in Richtung der Zieladresse zu übermitteln und/oder wobei der erste Eintrag eine Anweisung enthält, die zweite Übermittlungsnachschlagestruktur zu verwenden (264), und/oder wobei das Verfahren weiterhin den Schritt umfasst, eine dritte Übermittlungsnachschlagestruktur (264) zur Verfügung zu stellen und wobei der Schritt, die Inhalte des zweiten Eintrags anzuwenden umfasst zu kennzeichnen, dass die dritte Übermittlungsnachschlagestruktur (264) verwendet werden sollte, um das IP Datenpaket zu übermitteln.
  3. Verfahren gemäß Anspruch 1, wobei weniger Einträge in der erstem Übermittlungsnachschlagestruktur (264) angeordnet sind und auf diese zugegriffen wird als Bits in der zugehörigen Zieladresse.
  4. Switch/Router (66) zur Leitung von IP Datenpaketen (63, 134) auf Zielorte, umfassend: ein erstes Nachschlagearray (264), das durch führende Bits von Zieladressen für IP Datenpakete (64, 134) indizierte Einträge enthält, wobei jeder Eintrag eine Anweisung enthält, um dabei zu helfen, ein Datenpaket (64, 134) in Richtung eines Zielorts zu übermitteln; ein zweites Nachschlagearray (264), das von einem nachfolgenden Satz von Bits, die den führenden Bits in den Zieladressen für IP Datenpakete (64, 134) folgen, indizierte Einträge enthält, wobei jeder Eintrag eine Anweisung enthält, um dabei zu helfen, ein Datenpaket (64, 134) in Richtung eines Zielorts zu übermitteln; ein drittes Nachschlagearray (264), das von einem darauf folgenden Satz von Bits, die dem nachfolgenden Satz von Bits in den Zieladressen für IP Datenpakete (64, 134) folgen, indizierte Einträge enthält, wobei jeder Eintrag eine Anweisung enthält, um dabei zu helfen, ein Datenpaket (64, 134) in Richtung eines Zielorts zu übermitteln; und eine Übermittlungsmaschine (108) zur Übermittlung von IP Datenpaketen (64, 134) an Zielorte, wobei für jedes IP Datenpaket (64, 134), das übermittelt wird, diese Übermittlungsmaschine (264) auf mindestens einen Eintrag in den durch eine Zieladresse für das IP Datenpaket (64, 134), das übermittelt wird, indizierten Nachschlagearrays zugreift und Ausführen der Anweisung, die im Eintrag enthalten ist, auf den zugegriffen wird.
  5. Computerlesbares Medium für eine Anordnung (66) zum Übermitteln eines Internet Protokoll (IP) Datenpakets (64, 134) in Richtung eines Zielorts, der eine aus einer Folge von Bits bestehende Zieladresse aufweist, wobei diese Anordnung eine erste Übermittlungsnachschlagestruktur (264) und eine zweite Übermittlungsnachschlagestruktur (264) umfasst, wobei das computerlesbare Medium computerausführbare Anweisungen hält, die, wenn von der Anordnung ausgeführt, ein Verfahren ausführen, gekennzeichnet durch die Schritte: Verwenden eines Präfix aus mehreren Bits der Zieladresse des IP Datenpakets (64, 134) als einen Index, um einen ersten Eintrag in der ersten Übermittlungsnachschlagestruktur (264) aufzufinden; wobei der erste Eintrag in der ersten Übermittlungsnachschlagestruktur (264) eine Anweisung an die zweite Übermittlungsnachschlagestruktur (264) zur Verfügung stellt unter Verwendung eines nächsten sequentiellen Satzes von Bits, die dem Präfix in der Zieladresse folgen, als einen Index, um einen zweiten Eintrag in der zweiten Übermittlungsnachschlagestruktur (264) aufzufinden, wobei der zweite Eintrag Inhalte aufweist; und Anwenden des Inhalts des zweiten Eintrags beim Übermitteln des IP Datenpakets (63, 134) in Richtung der Zieladresse.
DE69937185T 1998-06-19 1999-06-18 Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen Expired - Lifetime DE69937185T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US237128 1988-08-29
US9002898P 1998-06-19 1998-06-19
US90028P 1998-06-19
US09/237,128 US6975631B1 (en) 1998-06-19 1999-01-25 Network packet forwarding lookup with a reduced number of memory accesses
PCT/US1999/013634 WO1999066681A1 (en) 1998-06-19 1999-06-18 Network packet forwarding lookup with a reduced number of memory accesses

Publications (2)

Publication Number Publication Date
DE69937185D1 DE69937185D1 (de) 2007-11-08
DE69937185T2 true DE69937185T2 (de) 2008-06-26

Family

ID=26781466

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69937185T Expired - Lifetime DE69937185T2 (de) 1998-06-19 1999-06-18 Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen

Country Status (8)

Country Link
US (1) US6975631B1 (de)
EP (1) EP1005746B1 (de)
CN (1) CN1150725C (de)
AU (1) AU763674B2 (de)
CA (1) CA2301911C (de)
DE (1) DE69937185T2 (de)
IL (1) IL134610A0 (de)
WO (1) WO1999066681A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6980543B1 (en) * 1998-06-19 2005-12-27 Juniper Networks, Inc. Interconnect network for operation within a communication node
AU760313B2 (en) 1998-06-19 2003-05-15 Juniper Networks, Inc. A quality of service facility in a device for performing IP forwarding and ATM switching
JP3250544B2 (ja) * 1999-04-16 2002-01-28 日本電気株式会社 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体
US6917626B1 (en) * 1999-11-30 2005-07-12 Cisco Technology, Inc. Apparatus and method for automatic cluster network device address assignment
US6636499B1 (en) 1999-12-02 2003-10-21 Cisco Technology, Inc. Apparatus and method for cluster network device discovery
US6775284B1 (en) * 2000-01-07 2004-08-10 International Business Machines Corporation Method and system for frame and protocol classification
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
FI109164B (fi) * 2000-05-15 2002-05-31 Sonera Oyj Pakettidataprotokollakontekstin aktivoiminen verkon pyynnöstä
US7274697B2 (en) * 2000-11-16 2007-09-25 Tensilica, Inc. Fast IP route lookup with 16/K and 16/Kc compressed data structures
US20030031167A1 (en) * 2001-02-28 2003-02-13 Singh Abhishek Ranjan Methods and system for efficient route lookup
GB0106747D0 (en) * 2001-03-19 2001-05-09 Roke Manor Research Improvements in packet switching
US7227842B1 (en) 2001-04-24 2007-06-05 Tensilica, Inc. Fast IP packet classification with configurable processor
FR2838590B1 (fr) * 2002-04-16 2005-12-30 St Microelectronics Sa Procede de routage pour un reseau de telecommunication et routeur pour la mise en oeuvre dudit procede
US7209976B2 (en) * 2002-07-16 2007-04-24 Jeremy Benjamin Protocol communication and transit packet forwarding routed between multiple virtual routers within a single physical router
US7613796B2 (en) * 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
KR20050066903A (ko) * 2003-12-27 2005-06-30 한국전자통신연구원 고속 라우팅 시스템에서의 패킷 포워딩 처리장치 및 그를이용한 라우팅 룩업 방법
US7359381B2 (en) * 2004-01-30 2008-04-15 Hewlett-Packard Development Company, L.P. Parallel hardware arrangement for correlating an external transport address pair with a local endpoint association
DE602006020666D1 (de) * 2005-08-12 2011-04-28 Procter & Gamble Methoden und Zusammensetzungen zur Beruhigung von Mund- und Nasenschleimhäuten
US7631175B2 (en) * 2006-02-21 2009-12-08 Microsoft Corporation Control protocol for image enumeration and transfer
EP2074767A2 (de) * 2006-08-02 2009-07-01 University Of Florida Research Foundation, Inc. Knappe darstellung statischer paketklassifikatoren
EP2055051A1 (de) * 2006-08-25 2009-05-06 University Of Florida Research Foundation, Inc. Rekursiv getrennte router-tabellen mit statischer ip
CN101141302B (zh) * 2007-08-07 2010-06-09 中兴通讯股份有限公司 一种高效查询历史数据的方法
US20130212340A1 (en) * 2012-02-15 2013-08-15 International Business Machines Corporation Partition aware quality of service feature
GB2592211A (en) * 2020-02-19 2021-08-25 Nchain Holdings Ltd Adapting connections of a layered network

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032987A (en) 1988-08-04 1991-07-16 Digital Equipment Corporation System with a plurality of hash tables each using different adaptive hashing functions
US5353283A (en) * 1993-05-28 1994-10-04 Bell Communications Research, Inc. General internet method for routing packets in a communications network
WO1998002013A1 (en) 1996-07-09 1998-01-15 International Business Machines Corporation Switching device, method and apparatus
SE511972C2 (sv) * 1997-09-09 2000-01-10 Sics Swedish Inst Of Computers Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket
US6563823B1 (en) * 1997-10-30 2003-05-13 Marconi Communications, Inc. Multi-resolution tree for longest match address lookups
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6392996B1 (en) * 1998-04-13 2002-05-21 At&T Corp. Method and apparatus for frame peeking
AU760313B2 (en) * 1998-06-19 2003-05-15 Juniper Networks, Inc. A quality of service facility in a device for performing IP forwarding and ATM switching
US6337861B1 (en) * 1999-02-02 2002-01-08 Cisco Technology, Inc. Method and apparatus to properly route ICMP messages in a tag-switching network
WO2001005116A2 (en) * 1999-07-13 2001-01-18 Alteon Web Systems, Inc. Routing method and apparatus

Also Published As

Publication number Publication date
EP1005746B1 (de) 2007-09-26
EP1005746A1 (de) 2000-06-07
US6975631B1 (en) 2005-12-13
WO1999066681A1 (en) 1999-12-23
IL134610A0 (en) 2001-04-30
CA2301911C (en) 2007-06-05
CA2301911A1 (en) 1999-12-23
CN1150725C (zh) 2004-05-19
AU4689299A (en) 2000-01-05
AU763674B2 (en) 2003-07-31
CN1286857A (zh) 2001-03-07
DE69937185D1 (de) 2007-11-08

Similar Documents

Publication Publication Date Title
DE69937185T2 (de) Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen
DE60031516T2 (de) Verfahren und gerät für die verwaltung eines netzflusses in einer hochleistungs-netzschnittstelle
DE60026676T2 (de) Paketklassifizierungsautomat
DE69825596T2 (de) System und verfahren für ein vielschicht-netzelement
DE60021846T2 (de) Leitweglenkungsanordnung
DE60213509T2 (de) Verfahren und Vorrichtung zur Verbesserung der Verfügbarkeit von Wegeleitsystemen mit mehrwege-Kostengleichheit
DE69434330T2 (de) Übertragungsvorrichtgung und verfahren
DE69934192T2 (de) Verfahren und Einrichtung zur Netzverbindung mittels Brücken
DE69934644T2 (de) Netzwerkvermittlungseinrichtung mit auf der Basis von Benutzung verteilten Umleitungsdatenbanken
DE102004008720B4 (de) Vorrichtung und Verfahren zur Durchführung von Verkehrsflussschablonen-Paketfilterung gemäß Internet-Protokollversionen in einem mobilen Kommunikationssystem
DE60120847T2 (de) Mehrprotokollvermittler und Verfahren dazu
DE69938329T2 (de) Vorrichtung zur weiterleitung von ip-paketen und zur vermittlung von atm-zellen
DE60030737T2 (de) Hochleistungs-Vermittlungselement und -Vermittlungssystem
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE60211837T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE60222622T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE60033529T2 (de) Netzprozessor, speicherorganisation und verfahren
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE60018780T2 (de) Verfahren und vorrichtung zur erkennung von datenpaketen in echtzeit in dem anschluss einer netzwerkvermittlungsstelle
DE60015186T2 (de) Verfahren und system für rahmen- und protokollklassifikation
DE60133175T2 (de) Kommunikationsnetz
DE60117554T2 (de) Verfahren und vorrichtung zur effizienten hashing in netze
DE60009884T2 (de) Verfahren und vorrichtung zur identifizierung und klassifizierung von netzwerkverkehr in einer hochleistungs netzwerkschnittstelle

Legal Events

Date Code Title Description
8364 No opposition during term of opposition