DE69937248T2 - Routers und verfahren für optimale leitwegtabellenkomprimierung - Google Patents

Routers und verfahren für optimale leitwegtabellenkomprimierung Download PDF

Info

Publication number
DE69937248T2
DE69937248T2 DE69937248T DE69937248T DE69937248T2 DE 69937248 T2 DE69937248 T2 DE 69937248T2 DE 69937248 T DE69937248 T DE 69937248T DE 69937248 T DE69937248 T DE 69937248T DE 69937248 T2 DE69937248 T2 DE 69937248T2
Authority
DE
Germany
Prior art keywords
tree
node
jumps
routing table
next jumps
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
DE69937248T
Other languages
English (en)
Other versions
DE69937248D1 (de
Inventor
Richard P. Seattle DRAVES
Christopher S. Somerville KING
Srinivasan St. Louis VENKATACHARY
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE69937248D1 publication Critical patent/DE69937248D1/de
Application granted granted Critical
Publication of DE69937248T2 publication Critical patent/DE69937248T2/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
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Current-Collector Devices For Electrically Propelled Vehicles (AREA)
  • Small-Scale Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft Netzwerk-Router und im Besonderen Verfahren zum Komprimieren von Routing-Tabellen, die von den Routern verwendet werden, um Routing von Netzwerknachrichten durchzuführen.
  • HINTERGRUND DER ERFINDUNG
  • Router sind spezialisierte Rechenvorrichtungen, die Routing digitaler Nachrichten über ein Netzwerk durchführen. Router empfangen Nachrichten von einem Ort (z.B. Ursprungscomputer oder anderer Router) und leiten sie über den effizientesten verfügbaren Pfad zu dem nächsten Ziel (z.B. Zielcomputer oder anderer Router) weiter.
  • Router verwenden Routing-Tabellen, um Nachrichtenverkehr über ein Netzwerk zu leiten. Routing-Tabellen weisen mehrere Einträge (z.B. Tausende bis Zehntausende) auf, wobei jeder Eintrag eine Adresse einer Zielvorrichtung ist. Zum Beispiel besteht in dem Internet-Kontext jeder Eintrag aus der 32-Bit-IP(Internet Protocol)-Adresse, wie „192.56.7.48". Die IP-Adresse kann außerdem eine Präfixlänge, wie 8, 16 oder 24, enthalten. Die Präfixlängen spezifizieren, wie viele Bits ein Router für eine nächste Route berücksichtigen soll. Wenn zum Beispiel der IP-Adresse „192.56.7.48" eine Präfixlänge von „16" zugewiesen wird, muss der Router lediglich die ersten zwei Bytes berücksichtigen, um eine nächste Route zu bestimmen, und kann die IP-Adresse effektiv als „192.56.0.0" lesen.
  • Zu jedem Eintrag in der Routing-Tabelle gehört ein Wert „nächsten Sprungs", der in eine zweite Tabelle indiziert. Die zweite Tabelle oder Tabelle „nächsten Sprungs" hat weniger Einträge (z.B. 10 bis 100 Einträge), um IP-Adressen eines nächsten Routers oder Zielports in dem Netzwerk zu identifizieren. Zum Beispiel kann die IP-Adresse „192.56.7.48/16" einen dazugehörigen Wert nächsten Sprungs von „17" aufweisen, wo bei dies bedeutet, dass sich die IP-Adresse für den nächsten Router an dem Ort 17 in der Tabelle nächsten Sprungs befindet.
  • Der Router verwendet die Routing-Tabelle und die Tabelle nächsten Sprungs, um Routing von Nachrichten am effizientesten über das Netzwerk durchzuführen. Wenn ein Paket bei einem Router ankommt, findet der Router zuerst die Adresse in der Routing-Tabelle, die die am nächsten liegende Übereinstimmung mit der Zieladresse bereitstellt. Die allgemeine Regel besteht darin, dass die IP-Adresse mit dem am längsten übereinstimmenden Präfix im Vergleich zu der Zieladresse ausgewählt wird. Der Router lokalisiert dann den nächsten Sprung, der zu der ausgewählten IP-Adresse gehört, und führt Routing des Pakets zu dem nächsten Router durch, auf den durch die IP-Adresse in der Tabelle nächsten Sprungs, die durch den nächsten Sprung indiziert wird, verwiesen wird. Es gibt viele unterschiedliche Hochgeschwindigkeitsalgorithmen zum schnellen Nachschlagen von Adressen in den Routing-Tabellen und den Tabellen nächsten Sprungs.
  • US-A-5 095 480 betrifft eine Vielzahl disparater Kommunikationsnetzwerksysteme, die über die Verwendung unterschiedlicher physikalischer Medienprotokolle miteinander kommunizieren. Jedes der Systeme weist wenigstens einen Eingang und einen Ausgang auf. Ein Nachrichten-Routing-System betrifft einen Sender und einen Systemeingang in einen Empfänger an einem Systemausgang unter Verwendung eines Nachrichtenformats, das unabhängig von dem Ort des Empfängers in dem System konstruiert ist. Jede Empfänger/Sender-Vorrichtung, die mit einem Systemeingang gekoppelt ist, weist, ungeachtet des Kommunikationsnetzwerksystems, mit dem es verbunden ist, einen eindeutigen, festen und unveränderlichen Identifizierungscode auf. Um eine Nachricht von einer Empfänger/Sender-Vorrichtung mit einer zweiten Empfänger/Sender-Vorrichtung an einem unbekannten Ort in dem Kommunikationsnetzwerksystem zu koppeln, wird ein Nachrichtenformat, das den festen, eindeutigen Identifizierungscode der Empfangsstation enthält, von dem Sendeort gesendet. Ein Routing-System mit einer Vielzahl von Zwischen-Routing-Vorrichtungen empfängt das Nachrichtenformat und koppelt es mit der Empfangsstation an dem unbekannten Ort, wobei lediglich die festen, eindeutigen Identifizierungscodes der Sende- und Empfangsstationen und die Adressen der Zwischen-Routing-Vorrichtungen zum Bestimmen von Routing verwendet werden.
  • Nach US-A-5 826 262 werden ein Verfahren zum Aufteilen von Schlüsseln auf Radixbaum-Logikseiten und ein Parallelindexseiten-Aufbaualgorithmus zum Bereitstellen von Radixbaum-Aufbaubeschleunigung proportional zu der Anzahl von Prozessoren in dem System sowie gesteuerter effizienter Seitennutzung besprochen. Außerdem gibt es, da Schlüssel so intelligent aufgeteilt werden, dass eine vollständige Gruppe von Schlüsseln in eine logische Seite eingefügt wird, keinen Seitenüberlauf während des Baumaufbaus und somit wird Seitenaufspaltung eliminiert. Da Radixindexbäume wirklich Gruppen logischer Seiten sind, bei denen jede logische Seite einen kleinen Baum enthält, wird der Baum aufsteigend aufgebaut, während in jeder einzelnen logischen Seite der Baum absteigend aufgebaut wird. Der für eine logische Seite erforderliche Raum wird vorab zugeteilt, so dass der Aufbau von Ästen beginnen kann, ohne auf den Abschluss des Aufbaus ihrer zugrundeliegenden Seiten zu warten.
  • GB-A-2 284 730 beschreibt einen Computer, der mit einer Routing-Informations-Sammeleinheit versehen ist, die die dynamischen Routing-Informationen, die in dem Netzwerk fließen, verbindet. Die gesammelten Routing-Informationen werden in der Routing-Tabelle über eine Einstelleinheit als statische Routing-Informationen eingestellt. Die Routing-Einheit führt das Routing mit Bezugnahme auf die Routing-Tabelle durch. Des Weiteren kann eine Informationssammelzeitgebungs-Bestimmungseinheit oder eine Informationssammelabschluss-Bestimmungseinheit bereitgestellt werden, um die Zeitgebung des Sammelns der Routing-Informationen oder den Abschluss des Sammelns der Informationen zu bestimmen. Des Weiteren kann eine Einheit zum Diskriminieren der optimalen Route und eine Standard-Erzeugungseinheit zum Bestimmen der optimalen Überleiteinrichtung (Gateway) und zum Erzeugen der Standard-Routing-Informationen bereitgestellt werden. Dadurch können statische Routing-Informationen automatisch ohne menschliches Einschreiten und Flexibilität eingestellt werden.
  • Tong-Bi Pei et al., „Putting Routing Tables in Silicon", IEEE Network: The Magazine of Computer Communications, USA, IEEE, Inc., New York, Bd. 6, Nr. 1, Seite 42 bis 50, betrifft das Bewegen von Routing-Tabellen von RAM zu kundenspezifischer (custom) oder halbkundenspezifischer (half-custom) VLSI zum Verringern von Kosten und Steigern von Leistung. Das Routing-Tabellen-Problem wird durch Besprechung der verfügbaren Architekturen und deren Beziehung untereinander dargestellt. Es wird gezeigt, dass einfaches Tabellennachschlagen lediglich ein Spezialfall der Standard- Baumstruktur ist und dass die Verwendung der Aufteilung, kombiniert mit der Baumstruktur, ein Kontinuum bereitstellt, das in einem Extremfall zu einer CAM-Implementierung führen kann. Die Kompromisse auf hoher Stufe bei der Wahl verschiedener Parameter in dem Baum werden geschätzt. Eine sorgfältige Wahl der Wortgröße kann ein ausgewogenes Verhältnis der Anforderungen für Geschwindigkeit zu den Bereichskosten schaffen. Außerdem werden die Kosten und Nutzen des Aufspaltens der Tabelle in eine Anzahl von Bäumen, die gleichzeitig durchsucht werden, berücksichtigt.
  • Nach EP-A-0 814 582 ist Daten-Routing eine Fähigkeit des Vorkonfigurierens von Routen für Daten, die durch die Software oder die Hardware eines Computersystems wandern. Die Routen werden von einem Verbraucher der Daten oder dem Ziel aufgestellt und werden dem Erzeuger der Daten oder der Quelle zugestellt. Die Daten-Route kann eine Identifizierung des Verbrauchers der Daten, eine minimale Liste von Routinen, die einige Vorverarbeitung der Daten durchführen, eine Rückkehr-Route, eine Don't-Care-Maske, eine Gruppe registrierter Routen und eine Gruppe von Aktionen enthalten. Die Gruppe von Aktionen kann eine Gruppe von Zuständen, die zu durchlaufen sind, oder eine Gruppe aufzurufender Funktionen sein. Um einen Daten-Routen-Treffer zu bestimmen, werden die eingehenden Daten von dem Erzeuger mit der Don't-Care-Maske geUNDet, wobei die Ergebnisse davon dann mit der Gruppe registrierter Routen, d.h. einem Bitmuster, verglichen werden. Wenn die Ergebnisse gleich sind, dann besteht ein Daten-Routen-Treffer. Die eingehenden Daten von dem Erzeuger werden dann zu den Aktionen weitergeleitet.
  • Auf Grund der explosionsartigen Zunahme von Inhalt, der auf dem World Wide Web verfügbar gemacht wird, wächst das Internet schnell, um in jeden Winkel der Erde zu gelangen. Die Ansprüche der Internet-Backbone-Router steigen entsprechend. Knoten werden mit einer extrem hohen Geschwindigkeit zu dem Netzwerk hinzugefügt. Es wird geschätzt, dass die Anzahl von Routen in dem Internet-Backbone jährlich um 10.000 Routen gestiegen ist. Es werden ausgefeiltere und schnellere Router mit größeren Routing-Tabellen entwickelt, um der steigenden Anzahl von Routen gerecht zu werden. Um die Geschwindigkeit und Zuverlässigkeit von Routern zu verbessern, ist es wünschenswert, die Größe der Routing-Tabelle auf Weisen zu verringern, die die Funktionalität oder Effizienz des Routers nicht beeinträchtigen.
  • Es ist eine Aufgabe der vorliegenden Erfindung, die Größe einer Routing-Tabelle zu verringern. Diese Aufgabe wird durch die Erfindung erfüllt, die in den unabhängigen Ansprüchen definiert wird. Ausführungen werden in den abhängigen Ansprüchen angegeben.
  • Diese Erfindung betrifft Router und Verfahren zum Komprimieren von Routing-Tabellen, die in Routern eingesetzt werden. Die Verfahren erzeugen kleiner, jedoch funktionell gleichwertige Tabellen.
  • Bei einer Implementierung beinhaltet ein Verfahren zum Komprimieren einer Routing-Tabelle das Konstruieren einer Binärbaum-Darstellung der Routing-Tabelle. Der Binärbaum hat mehrere Knoten, wobei Elternknoten auf einer Stufe zu null, einem oder zwei Kindknoten auf der nächstniedrigeren Stufe verzweigen. Das Kompressionsverfahren führt drei Durchlaufe durch den Baum durch. In einem ersten Durchlauf führt das Kompressionsverfahren Abwärtsausbreitung von Routing-Informationen zu den Blattknoten des Baumes (d.h. Knoten, die nicht zu niedrigeren Kindknoten verzweigen) durch. Bei diesem Durchlauf weist das Programm jedem Blattknoten in dem Baum einen dazugehörigen nächsten Sprung oder einen geerbten nächsten Sprung von einem Vorgängerknoten höherer Stufe zu.
  • Bei einem zweiten Durchlauf führt das Kompressionsverfahren Aufwärtsmigration der prävalenteren nächsten Sprünge in dem Baum durch. Dieser aufsteigende Durchlauf beinhaltet das Bilden einer Gruppe nächster Sprünge an einem Elternknoten unter Durchführung von Supernetting der Gruppen nächster Sprünge A und B für ein Paar Kindknoten, die dem Elternknoten entsprechen, gemäß der folgenden Operation: A·B = A ∪ B, wenn A ∩ B = ϕ A ∩ B, wenn A ∩ B ≠ ϕ,wobei „A·B" die Gruppe nächster Sprünge ist, die an dem Elternknoten gebildet wird.
  • Bei dem dritten Durchlauf eliminiert das Kompressionsverfahren redundante Zweige in dem Baum. Dieser absteigende Durchlauf beginnt an dem Stammknoten und nachfol gend an jedem Elternknoten und wählt einen nächsten Sprung aus einem Elternknoten aus. Das Verfahren prüft dann einen Kindknoten, der von dem Elternknoten verzweigt, um zu bestimmen, ob der ausgewählte nächste Sprung ein Element nächster Sprünge für den Kindknoten ist. Wenn er dies ist, eliminiert das Verfahren die nächsten Sprünge für den Kindknoten.
  • Nachdem der Prozess der drei Durchlaufe den Baum umstrukturiert hat, wandelt das Kompressionsverfahren den Baum zurück zu einer neuen Routing-Tabelle um.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine diagrammatische Darstellung eines Computernetzwerksystems.
  • 2 ist ein Blockdiagramm eines Routers.
  • 3 ist ein Flussdiagramm, das Schritte bei einem Verfahren zum Komprimieren einer Routing-Tabelle zeigt.
  • 4 ist eine diagrammatische Darstellung einer Binärbaumstruktur, die Routen in einer Routing-Tabelle darstellt.
  • 5 ist eine diagrammatische Darstellung eines Binärbaums, die vier Routen darstellt.
  • 6 ist eine diagrammatische Darstellung des Binärbaums von 5 nach einem ersten Durchlauf in dem Kompressionsverfahren.
  • 7 ist eine diagrammatische Darstellung des Binärbaums von 5 nach einem zweiten Durchlauf in dem Kompressionsverfahren.
  • 8 ist eine diagrammatische Darstellung des Binärbaums von 5 während eines dritten Durchlaufs in dem Kompressionsverfahren.
  • 9 ist eine diagrammatische Darstellung des Binärbaums von 5 nach einem dritten Durchlauf in dem Kompressionsverfahren.
  • 10 ist eine diagrammatische Darstellung eines Abschnitts eines Binärbaums mit mehreren einzelnen Zweigen und davon, wie dieser Baum als ein Ergebnis des ersten und des zweiten Durchlaufs in dem Kompressionsverfahren verarbeitet wird.
  • 11 ist eine diagrammatische Darstellung eines Abschnitts eines Binärbaums mit mehreren einzelnen Zweigen und davon, wie die einzelnen Zweige unter Verwendung von Pfad-Kompression komprimiert werden können.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNG
  • Diese Erfindung betrifft Router und Verfahren zum Komprimieren von Routing-Tabellen zu Tabellen kleinerer Größe, die jedoch funktionell gleichwertig sind. Der allgemeine Kontext einer Netzwerkstruktur und eines Routers werden zuerst beschrieben, gefolgt von einer Beschreibung der Kompressionsprozesse.
  • Beispielhafte Netzwerkarchitektur
  • 1 zeigt ein Computernetzwerksystem 20 mit einem Ursprungscomputer 22 und einem Zielcomputer 24, die über ein Netzwerk 26 verbunden sind. Das Netzwerk 26 umfasst mehrere miteinander verbundene Router 28(1), 28(2), ..., 28(N). Das Routing von Nachrichten, die von dem Ursprungscomputer 22 stammen, wird über das Netzwerk 26 über ausgewählte der Router 28(1) bis 28(N) zu dem Zielcomputer 24 durchgeführt. Das Netzwerk 26 ist repräsentativ für ein öffentliches Netzwerk (z.B. Internet), ein LAN (Local Area Network) und ein WAN (Wide Area Network). Für die Zwecke fortdauernder Besprechung wird das System in dem Kontext des Internets beschrieben, in dem Nachrichten in IP(Internet Protocol)-Paketen, die IP-Adressen der Ursprungs- und Zielcomputer enthalten, übertragen werden.
  • Jeder Router 28 führt eine große Routing-Tabelle 30 und eine verdichtete Tabelle 32 nächsten Sprungs. Die Routing-Tabelle hält IP-Adressen anderer Knoten (d.h. Router und/oder Computer) in dem Netzwerk, während die Tabelle 32 nächsten Sprungs die IP-Adresse direkt gekoppelter Nachbarknoten hält. Jede IP-Adresse in der Routing-Tabelle 30 indiziert zu einer oder mehreren Adressen nächsten Sprungs in der Tabelle 32 nächsten Sprungs.
  • Beispielhafter Router
  • 2 zeigt einen beispielhaften Router 28. Er hat mehrere Ports 40, die eine Eingabe-Ausgabe-Schnittstelle mit anderen Knoten in dem Netzwerk bereitstellen. Der Router 28 hat außerdem einen Mikroprozessor 42 und einen Speicher 44 (z.B. RAM, ROM, EEPROM, Festplatte usw.). Die Routing-Tabelle 30 und die Tabelle 32 nächsten Sprungs werden in dem Speicher 44 gespeichert.
  • Der Router 28 ist mit Technologie so konfiguriert, dass er eine bestehende Routing-Tabelle verarbeitet und sie zu einer Tabelle verringerter Größe, die jedoch funktionell gleichwertig ist, komprimiert. Bei der dargestellten Implementierung wird ein Routing-Tabellen-Kompressionsprogramm 48 in dem Speicher 44 gespeichert und auf dem Prozessor 42 ausgeführt, um die Routing-Tabelle zu komprimieren. Bei einer anderen Implementierung ist die Tabellenkompressionstechnologie in einen anwendungsspezifischen Schaltkreis (ASIC) oder eine andere IC-Vorrichtung integriert.
  • Es ist außerdem zu beachten, dass die in 2 gezeigte Architektur für andere Rechenvorrichtungen, wie einen Allzweckcomputer, repräsentativ sein kann.
  • Allgemeiner Kompressionsprozess
  • 3 zeigt die allgemeinen Prozessschritte, die an dem Komprimieren einer Routing-Tabelle beteiligt sind. Bei Schritt 50 wandelt das Kompressionsprogramm 48 die Routing-Tabelle 30 in eine Binärbaumstruktur um, die die Adresspräfixe in der Routing-Tabelle darstellt. Der Baum wird während des Kompressionsprozesses in dem flüchtigen Speicher 44 gespeichert.
  • 4 zeigt eine Binärbaumstruktur 70. Sie umfasst eine Hierarchie von Knoten 72, die auf mehreren Stufen angeordnet sind. Für 32-Bit-IP-Adresspräfixe gibt es 33 Stufen (d. h. k = 0 bis 32) in der Baumstruktur. Die meisten Knoten verzweigen zu zwei Knoten niedrigerer Stufe, wobei ein Zweig ein Zweig einen Binärzustand „1" und der andere Zweig einen Binärzustand „0" darstellt. Die zwei Knoten niedrigerer Stufe werden als „Kindknoten" des gemeinsamen Knotens oder „Elternknotens" bezeichnet. Zwei Knoten mit einem gemeinsamen Elternknoten werden als „Geschwisterknoten" bezeichnet. Kinderlose Knoten werden als „Blätter" bezeichnet, da sie Endpunkte für ihre Zweige darstellen.
  • Jedes nachfolgende Bit in einem IP-Adresspräfix entspricht einer Verknüpfung von einem Elternknoten zu einem Kindknoten in dem Baum. Ein „0"-Bit in dem Präfix entspricht dem linken Kindknoten und ein „1"-Bit entspricht dem rechten Kindknoten. Die Knoten 72 sind mit Werten nächsten Sprungs gekennzeichnet, die typischerweise eine kleine ganze Zahl oder eine Gruppe kleiner ganzer Zahlen sind.
  • Bei Schritt 52 komprimiert das Kompressionsprogramm 48 die Baumstruktur 70. Das Kompressionsprogramm 48 setzt einen Prozess mit drei Durchläufen ein, wie in den Unterschritten 54, 56 und 58 dargestellt. In dem ersten Durchlauf (Schritt 54) führt das Kompressionsprogramm Abwärtsausbreitung von Routing-Informationen zu den Baumblättern durch. Bei diesem Durchlauf weist das Programm jedem Blattknoten in dem Baum einen dazugehörigen nächsten Sprung oder einen geerbten nächsten Sprung von einem Vorgängerknoten höherer Stufe zu.
  • In dem zweiten Durchlauf (Schritt 56) findet das Kompressionsprogramm die prävalentesten nächsten Sprünge durch einen Supernetting-Prozess, der Aufwärts-Perkolieren von Gruppen nächster Sprünge von den Blattknoten zu dem Stammknoten beinhaltet. Das Programm durchquert den Baum 70 von unten nach oben und beginnt mit den Blattknoten auf der unteren Stufe k. Das Kompressionsprogramm prüft zwei Geschwisterknoten A und B und weist ihre nächsten Sprünge dem Elternknoten unter Verwendung einer definierten Operation zu, die wie folgt angegeben wird:
    A·B = „Schnittmenge" A B, wenn „Schnittmenge" A B nicht leer ist; oder
    A „vereinigt mit" B, wenn Schnittmenge A B leer ist.
  • Das Ergebnis von „A·B" ist die Gruppe nächster Sprünge, die an dem Elternknoten gebildet wird. Der Effekt des zweiten Durchlaufs besteht darin, Migration der Werte des populärsten nächsten Sprungs zu der Spitze des Baums durchzuführen. In dem Kontext der Routing-Tabelle breitet der Supernetting-Prozess Gruppen der populärsten nächsten Sprünge von spezifischeren Routen (d.h. Routen mit längeren IP-Präfixen) zu allgemeineren Routen (d.h. Routen mit kürzeren IP-Präfixen) aus.
  • In dem dritten Durchlauf (Schritt 58) eliminiert das Kompressionsprogramm redundante Routen unter Verwendung eines absteigenden Subnetting-Prozesses. Der dritte Durchlauf beginnt an dem Stammknoten (d.h. Stufe 0) des Baums 70 und wählt einen nächsten Sprung aus der Gruppe möglicher Werte aus. Das Kompressionsprogramm prüft wiederholt jeden absteigenden Knoten wie folgt:
    Prüfung: Wenn der ausgewählte nächste Elternsprung ein Element der Gruppe nächster Kindsprünge ist, wird die Gruppe nächster Kindsprünge entfernt; ansonsten neuen nächsten Sprung aus der Gruppe nächster Kindsprünge wählen.
  • Der neue nächste Kindsprung kann intelligent oder zufällig gewählt werden, wobei der intelligente Ansatz versucht, Zustände auszuwählen, die nicht dazu neigen, die Baumstruktur ohne Gewinn unnötig zu verändern. Der dritte Durchlauf eliminiert effektiv unnütze Zweige und Knoten aus dem Baum und verringert dadurch die Gesamtbaumstruktur.
  • Bei Schritt 60 wandelt das Kompressionsprogramm den Baum zurück zu einer Routing-Tabelle von IP-Adressen um. Die neue Routing-Tabelle ist kleiner als die ursprüngliche Tabelle, ist jedoch ansonsten gegenüber der ursprünglichen Tabelle funktionell gleichwertig.
  • Der Prozess der drei Durchläufe bietet viele Vorteile. Intuitiv sollten kürzere Präfixe an oder nahe dem Stamm des Baums Routing zu den populärsten oder prävalentesten nächsten Sprüngen durchführen. Längere Präfixe nahe den Blättern des Baums sollten Routing zu weniger prävalenten nächsten Sprüngen durchführen. Der Prozess der drei Durchläufe bewegt die prävalentesten nächsten Sprünge aufwärts zu dem Baumstamm und die weniger prävalenten nächsten Sprünge abwärts zu den Blättern, während gleichzeitig eine maximale Anzahl von Routen aus dem Baum entfernt wird.
  • Der Kompressionsprozess stellt in Anbetracht einer Routing-Tabelle, die Weiterleitungsinformationen für IP-Adressen unter Verwendung der längsten Präfix-Übereinstimmung bereitstellt, eine Routing-Tabelle bereit, die (a) dieselben Weiterleitungsinformationen bereitstellt und (b) die geringstmögliche Anzahl von Einträgen aufweist. Der Prozess hat in Experimenten unter Verwendung von Ipv4-Präfixen nachgewiesen, dass er die Anzahl von Präfixen in einem großen Backbone-Router um ungefähr 40 % verringert.
  • Ausführliches Beispiel für den Kompressionsschritt 52
  • 5 zeigt einen vereinfachten, aber beispielhaften Binärbaum 80, der aus einer Gruppe von Adresspräfixen für vier Routen konstruiert ist. Tabelle 1 verzeichnet die Routen und dazugehörige nächste Sprünge zum Indexieren in die Tabelle 32 nächsten Sprungs. Tabelle 1 verzeichnet außerdem die entsprechenden Knoten, die mit den Werten nächsten Sprungs gekennzeichnet sind.
    IP-Adresse/Nächster Sprung Knoten
    * → 1 82
    00* → 2 84
    10* → 2 86
    11* → 3 88
  • Der Stammknoten 82 stellt ein Null-Präfix dar, wobei durch den Wert nächsten Sprungs 1 auf eine Standard-Route verwiesen wird. Der Knoten 84 stellt das Adress-Präfix 00* dar und der Wert nächsten Sprungs, der zu diesem Präfix gehört, ist 2. Der Knoten 86 stellt das Adress-Präfix 10* mit einem dazugehörigen Wert nächsten Sprungs von 2 dar. Der Knoten 88 stellt das Adress-Präfix 11* mit einem dazugehörigen Wert nächsten Sprungs von 3 dar.
  • Durchlauf 1: Blattknoten nächste Sprünge zuweisen (Schritt 54)
  • Der erste Durchlauf des Kompressionsschritts 52 (d.h. Schritt 54 in 3) normalisiert die Binärbaum-Darstellung der Routing-Tabelle in Vorbereitung des zweiten und dritten Durchlaufes. Er stellt sicher, dass jeder Knoten in dem Baum entweder null oder zwei Kindknoten hat. Der erste Durchlauf erzeugt neue Blattknoten und initialisiert den nächsten Sprung für einen neuen Knoten mit dem nächsten Sprung, den der neue Knoten von seinem am nächsten liegenden Vorgänger, der einen nächsten Sprung aufweist, erbt.
  • Der erste Durchlauf könnte eine vorsinnige Durchquerung des Binärbaums oder alternativ eine Durchquerung nach Stufen von dem Stamm abwärts verwenden. In jedem Fall schiebt die Durchquerung Werte nächsten Sprungs von Elternknoten abwärts zu Kindknoten, die keinen nächsten Sprung haben, wobei neue Kindknoten erzeugt werden, wenn ein Elternknoten lediglich ein Kind aufweist.
  • 6 zeigt den Binärbaum 80 nach Abschluss des ersten Durchlaufs. Es ist zu beachten, dass der erste Durchlauf einen neuen Blattknoten 90 erzeugt hat, der durch das Präfix 01* adressiert wird. Dieser neue Blattknoten 80 erbt den nächsten Sprung von seinem am nächsten liegenden Vorgänger, der in diesem Fall der Wert nächsten Sprungs 1 von dem Großeltern-Stammknoten 82 ist. Sobald der Baum vollständig mit Blattknoten besetzt ist, sind die nächsten Sprünge für innere Knoten nicht mehr relevant und können verworfen werden. In diesem Beispiel wird der Wert nächsten Sprungs 1 für den Stammknoten 82 verworfen.
  • Durchlauf 2: Supernetting (Schritt 56)
  • Der zweite Durchlauf des Kompressionsschritts 52 (d.h. Schritt 56 in 3) berechnet die prävalentesten nächsten Sprünge der Routing-Tabelle durch Aufwärts-Perkolieren von Gruppen populärer nächster Sprünge in dem Baum. Der zweite Durchlauf setzt eine aufsteigende Durchquerung ein, die mit den Blattknoten 84, 86, 88 und 90 beginnt. An jedem Elternknoten, der bei der aufsteigenden Durchquerung aufgesucht wird, wird eine Gruppe nächster Sprünge A * B für den Elternknoten auf Basis der bei den Kindknoten A und B festgestellten nächsten Sprünge gemäß der folgenden Operation berechnet: A·B = A ∪ B, wenn A ∩ B = ϕ A ∩ B, wenn A ∩ B ≠ ϕ
  • Wenn es gemeinsame nächste Sprünge zwischen den zwei Kindknoten gibt (d.h. A ∩ B ≠ ϕ), sind sie die nächsten Sprünge, die auf der Stufe des Elternknotens die prävalentesten sind. Folglich wird lediglich bei den gemeinsamen nächsten Sprüngen Aufwärts-Migration zu dem Elternknoten gemäß der Schnittoperation A ∩ B durchgeführt. Andernfalls werden, wenn es keine gemeinsamen nächsten Sprünge zwischen den zwei Kindknoten gibt (d.h. A ∩ B = ϕ), alle der nächsten Sprünge von den Kindknoten gemäß der Vereinigungsoperation A ∪ B aufwärts zu dem Elternknoten getragen. Wenn der zweite Durchlauf abgeschlossen ist, ist jeder Knoten in dem Baum durch eine Gruppe potenzieller nächster Sprünge gekennzeichnet.
  • 7 zeigt den Binärbaum 80 nach Abschluss des zweiten Durchlaufs. Bei den Geschwisterknoten 84 und 90 ist „A" die Gruppe nächster Sprünge des Knotens 84 (d.h. {2}) und „B" ist die Gruppe nächster Sprünge des Knotens (d.h. {1}). Der zweite Durchlauf bestimmt, dass die Gruppen A und B keinen gemeinsamen nächsten Sprung haben, und trägt folglich die Vereinigung dieser Gruppen {1, 2} zu ihrem Elternknoten 92. Ähnlich stellt der zweite Durchlauf bei den Geschwisterknoten 86 und 88, bei denen „A" die Gruppe nächster Sprünge des Knotens 86 (d.h. {2}) ist und „B" die Gruppe nächster Sprünge des Knotens 88 (d.h. {3}) ist, fest, dass die Gruppen keinen gemeinsamen nächsten Sprung haben, und trägt folglich die Vereinigung dieser Gruppen {2, 3) zu ihrem Elternknoten 94.
  • Bei den Geschwisterknoten 92 und 94, bei denen „A" die Gruppe nächster Sprünge des Knotens 92 (d.h. {1, 2}) ist und „B" die Gruppe nächster Sprünge des Knotens 94 (d.h. {2, 3}) ist, stellt der zweite Durchlauf fest, dass die Gruppen einen gemeinsamen nächsten Sprung 2 haben, und breitet die Schnittmenge dieser zwei Gruppen (d.h. {2}) zu dem Eltern- und Stammknoten 82 aus. Es ist zu beachten, dass der zweite Durchlauf effektive Migration des prävalentesten nächsten Sprungs 2 zu dem Stammknoten 82 durchführt.
  • Durchlauf 3: Subnetting (Schritt 58)
  • Der dritte Durchlauf des Kompressionsschritts 52 (d.h. Schritt 56 in 3) bewegt sich in dem Baum abwärts, um nächste Sprünge für Präfixe auszuwählen und redundante Routen über Subnetting zu eliminieren. Der dritte Durchlauf kann entweder eine vorsinnige Durchquerung des Baums oder eine Durchquerung nach Stufen von dem Stamm abwärts verwenden. Jeder aufgesuchte Knoten weist eine Gruppe möglicher nächster Sprünge auf, die in dem zweiten Durchlauf berechnet wurden. Abgesehen von dem Stammknoten erbt der Knoten einen nächsten Sprung von dem am nächsten liegenden Vorgängerknoten, der einen nächsten Sprung aufweist. Wenn der geerbte nächste Sprung ein Element der Gruppe potenzieller nächster Sprünge des Knotens ist, benötigt der Knoten keinen eigenen nächsten Sprung: Er erbt einen geeigneten nächsten Sprung. Wenn jedoch der geerbte nächste Sprung kein Element der Gruppe potenzieller nächster Sprünge des Knotens ist, benötigt der Knoten keinen nächsten Sprung. Es kann ein Element der Gruppe potenzieller nächster Sprünge des Knotens als nächster Sprung des Knotens gewählt werden. Dieser Prozess wird durch die folgende Prüfung zusammengefasst:
    Prüfung: Wenn der ausgewählte nächste Elternsprung ein Element der Gruppe nächster Kindsprünge ist, wird die Gruppe nächster Kindsprünge entfernt; ansonsten einen neuen nächsten Sprung aus der Gruppe nächster Kindsprünge wählen.
  • Nach dem zweiten Durchlauf ist der Stammknoten mit einer Einermengen-Gruppe nächsten Sprungs {2} gekennzeichnet, daher wählt der dritte Durchlauf den nächsten Sprung 2 für den Stamm aus. Da der nächste Sprung 2 ein Element der Gruppen {1, 2} und {2, 3} der zwei Kindknoten 92 und 94 ist, können diese Gruppen nächster Sprünge bei den Kindknoten des Stamms entfernt werden. Beginnend an dem Knoten 92 weisen die zwei Kindknoten 84 und 90 jeweilige Gruppen {2} und {1} auf. Der Prozess wählt den nächsten Sprung 2 für den Kindknoten 84 und den nächsten Sprung 1 für den Kindknoten 90. Auf ähnliche Weise wählt der Prozess in Bezug auf den Elternknoten 94 den nächsten Sprung 2 für den Kindknoten 86 und den nächsten Sprung 3 für den Kindknoten 88.
  • 8 zeigt den Binärbaum 80 während des dritten Durchlaufs, nachdem die absteigende Prüfungsprozedur alle Knoten aufgesucht hat. Während der dritte Durchlauf fort schreitet, kann der Baum 80 redundante Routen aufweisen, die entfernt werden können, um die Tabelle zu komprimieren. In diesem Beispiel benötigen zwei Blattknoten 84 und 86 keine nächsten Sprünge, da die nächsten Sprünge in der Stammgruppe enthalten sind. Folglich können diese Blattknoten einen geeigneten nächsten Sprung von dem Stamm erben und können als redundant aus dem Baum weggelassen werden. Alternativ können die redundanten Routen an dem Ende des dritten Durchlaufs entfernt werden.
  • 9 zeigt den Binärbaum 80 nach Abschluss des dritten Durchlaufs. Der endgültige Baum hat zwei Blattknoten 88 und 90 und drei Routen *, 01* und 11*. Tabelle 2 verzeichnet die Routen und den dazugehörigen Wert nächsten Sprungs für den komprimierten Baum sowie den entsprechenden Knoten.
    IP-Adresse/Nächster Sprung Knoten
    * → 2 82
    01* → 1 90
    11* → 3 88
  • Im Vergleich zu der ursprünglichen Routing-Tabelle gemäß der Darstellung durch den Baum von 5 und die Tabelle 1 hat der resultierende Baum gemäß der Darstellung durch 9 und Tabelle 2 eine Route weniger und ist insofern effizienter, als sich der prävalentere nächste Sprung 2 nun an dem Stammknoten und nicht an den Blattknoten befindet.
  • Aus dem Kompressionsprozess der drei Durchlaufe ergibt sich eine Ausgangs-Routing-Tabelle (9), die die kleinstmögliche Anzahl von Präfixen aufweist, während sie weiterhin dasselbe Weiterleitungsverhalten wie die ursprüngliche Routing-Tabelle (5) wahrt. In dem dritten Durchlauf kann das Kompressionsprogramm einen nächsten Sprung aus einer Gruppe potenzieller nächster Sprünge auswählen. Das bedeutet, dass der Prozess viele unterschiedliche Ausgangs-Routing-Tabellen für eine vorgegebene Eingangstabelle erzeugen kann. Jedoch sind alle der möglichen Ausgangs-Routing-Tabellen von derselben Größe und funktionell gleichwertig.
  • Alternative Implementierungen
  • Es gibt mehrere Möglichkeiten, die Anzahl von Schritten in dem Kompressionsprozess zu verringern, um dadurch die Leistung zu verbessern. Eine Möglichkeit besteht darin, den ersten und zweiten Durchlauf zu kombinieren. Wenn der kombinierte Durchlauf auf einen Elternknoten mit nur einem Kindknoten trifft, kann der Prozess zu diesem Zeitpunkt einen neuen Kindknoten erzeugen und dem neuen Kind einen geerbten nächsten Sprung zuweisen. Zwischenknoten zwischen dem neuen Kind und dem Vorgänger, von dem es erbt, kann dieser geerbte nächste Sprung ebenfalls zugewiesen werden. Dies kann zum Beschleunigen späterer Vererbungsoperationen beitragen.
  • Als Beispiel wird die Baumstruktur in 6 betrachtet. Während des ersten Durchlaufs, wenn das Kompressionsprogramm einen neuen Kindknoten 90 erzeugt, könnte es dann den nächsten Sprung 2 dem Elternknoten 92 zuweisen.
  • Eine andere Leistungsverbesserung spart einige Arbeit in dem dritten Durchlauf ein, indem diese in dem zweiten Durchlauf vorweggenommen wird. In dem zweiten Durchlauf können, wenn einem Elternknoten die Schnittmenge der Gruppen potenzieller nächster Sprünge seiner Kindknoten zugewiesen wird, die Werte nächsten Sprungs für die zwei Kindknoten gelöscht werden. Als Beispiel werden die Kindknoten 92 und 94 in 7 betrachtet. Dem Elternknoten 82 wird die Schnittmenge der nächsten Sprünge dieser Knoten, {1, 2} und {2, 3}, oder Gruppe {2} zugewiesen. An diesem Punkt in dem zweiten Durchlauf kann das Kompressionsprogramm die Gruppen {1, 2} und {2, 3} an den Knoten 92 und 94 löschen, da sie ansonsten während des dritten Durchlaufs entfernt würden, wie in 8 gezeigt.
  • Diese Leistungsverbesserung entfernt sofort diese Präfixe aus der Routing-Tabelle. Dies ist eine sichere Optimierung, da ein Element der Schnittmenge der zwei Gruppen per Definition ein Element beider Gruppen ist. In dem dritten Durchlauf wird diesem Elternknoten ein nächster Sprung aus der Schnittmenge zugewiesen (oder er erbt einen solchen nächsten Sprung). Wenn der dritte Durchlauf die Kindknoten verarbeiten würde, würde er feststellen, dass sie einen nächsten Sprung erben, der ein Element ihrer potenziellen Gruppe ist, und sie zu diesem Zeitpunkt entfernen.
  • Bei einer anderen Leistungsverbesserung kann es in einigen Situationen vorteilhaft sein, eine Routing-Tabelle zu komprimieren, ohne sie „unnötig" zu ändern. Zwei kleine Modifizierungen der Auswahl nächster Sprünge in dem dritten Durchlauf verbessern die Stabilität so, dass eine Tabelle nicht unnötig geändert wird. Es wird angenommen, dass während des dritten Durchlaufs das Kompressionsprogramm einen nächsten Sprung für einen Elternknoten aus einer Gruppe X potenzieller nächster Sprünge auswählen muss. Wenn das Präfix dieser Knoten einen nächsten Sprung in der Eingangs-Routing-Tabelle hat und dieser nächste Sprung ein Element von X ist, dann ist dies die logische Wahl. Dies verbessert die Stabilität, da der nächste Sprung dieses Präfixes erhalten bleibt.
  • Wenn das Kompressionsprogramm einen nächsten Sprung für einen Elternknoten wählen muss, aber sein Präfix keinen nächsten Sprung in der Eingangs-Routing-Tabelle hat, dann möchte man zum Verbessern der Stabilität das Präfix aus der optimierten Routing-Tabelle entfernen, statt ihm einen nächsten Sprung zuzuweisen. Dies ist eine sichere Modifizierung, wenn die Gruppe potenzieller nächster Sprünge des Elternknotens durch Vereinigung der Gruppen seiner zwei Kindknoten gebildet wurde. In jedem Fall erzeugen der Elternknoten und seine zwei Kindknoten zwei Routen in der Ausgangs-Routing-Tabelle.
  • Das oben in Bezug auf die 5 bis 9 beschriebene Beispiel geht inhärent von zwei Annahmen aus. Die erste Annahme besteht darin, dass die Eingangs-Routing-Tabelle eine Standard-Route (einen nächsten Sprung für das Null-Präfix) enthält. Die zweite Annahme besteht darin, dass die Eingangstabelle einen einzelnen nächsten Sprung für ihre Präfixe enthält. Jedoch können die oben beschriebenen Prozesse in Situationen verwendet werden, in denen die Annahmen nicht standhalten.
  • In Bezug auf die erste Annahme verwenden einige Backbone-Router in dem Internet „standardlose" Routing-Tabellen. In solchen Fällen besteht ein Ansatz darin, eine Standard-Route zu einem leeren nächsten Sprung von 0 an dem Beginn des ersten Durchlaufs einzuführen. An dem Ende des dritten Durchlaufs wird sie, wenn die Leer-Route an dem Stamm in der Ausgangstabelle vorhanden ist, entfernt. Es ist zu beachten, dass die Ausgangstabelle Routen zu dem nächsten Sprung 0 enthalten kann. Das Weiterleiten zu dem nächsten Sprung 0 wird einfach als ein Fehler erachtet, als wäre kein übereinstimmendes Präfix gefunden worden.
  • In Bezug auf die zweite Annahme, dass die Eingangstabelle lediglich einen nächsten Sprung enthält, gibt es Situationen, in denen Routing-Tabellen mehrere nächste Sprünge einsetzen. Es gibt mehrere Möglichkeiten, mehreren nächsten Sprüngen Rechnung zu tragen. Erstens kann der beste nächste Sprung für jedes Präfix durch einige Metrik gewählt werden, bevor die Kompressionsprozedur zum Optimieren der resultierenden Routing-Tabelle angewendet wird. Dies ist ein geeignetes Verfahren, wenn die Metrik einen einzelnen besten nächsten Sprung aus der Gruppe nächster Sprünge für ein Präfix auswählen kann.
  • Wenn mehrere nächste Sprünge für den besten in Frage kommen, kann der Kompressionsprozess die Flexibilität verwenden, die er durch das Vorliegen mehrere nächster Sprünge, aus denen er wählen kann, erhält, um bessere Kompression zu erreichen. Bei dieser Technik enthält die Eingangstabelle mehrere nächste Sprünge. Der erste Durchlauf wird geringfügig so modifiziert, dass ein neuer Kindknoten mehrere nächste Sprünge von seinem Vorgänger erben kann. Die Operation des zweiten und dritten Durchlaufs wird nicht beeinflusst. Dieser Ansatz ermöglicht, dass der Kompressionsprozess stärkere Kompression erreicht, da er eine bessere Chance hat, prävalente nächste Sprünge auf höheren Stufen des Baums zu finden. Dieser Ansatz bewahrt jedoch nicht die Gruppen nächster Sprünge in der Eingangs-Routing-Tabelle.
  • Wenn es wichtig ist, die Gruppen nächster Sprünge in der Eingangs-Routing-Tabelle zu bewahren, besteht ein anderer modifizierter Ansatz darin, „virtuelle" nächste Sprünge zu erzeugen, bei denen jeder virtuelle nächste Sprung eine unterschiedliche Gruppe nächster Sprünge darstellt, die in der Eingangs-Routing-Tabelle gefunden wurde. Das Kompressionsprogramm optimiert unter Verwendung der virtuellen nächsten Sprünge, so dass es an Stelle des Bearbeitens von Gruppen nächster Sprünge in Wirklichkeit Gruppen von Gruppen nächster Sprünge bearbeitet.
  • Pfad-Kompressionsoptimierung
  • Eine andere verbessernde Modifizierung besteht darin, Pfad-Kompressionstechniken selektiv auf Abschnitte des Binärbaums anzuwenden, um die Kompressionsgeschwindigkeit zu verbessern. 10 zeigt einen Eingangsbaum 100 und einen verarbeiteten Baum 102 nach Abschluss des ersten und zweiten Durchlaufs. Der Eingangsbaum 100 hat einen Stammknoten mit einer Gruppe D nächsten Sprungs und Blattknoten mit Gruppen A und D nächsten Sprungs. Zwischen dem Stamm- und den Blattknoten gibt es viele einzelne verzweigende Knoten. Der erste Durchlauf des Kompressionsverfahrens erzeugt Kindknoten von jedem Elternknoten mit nur einem Kind und weist eine geerbte Gruppe nächsten Sprungs von dem am nächsten liegenden Vorgänger, der in diesem Fall der Stammknoten ist, zu. Somit wird allen neuen Kindknoten der Satz D nächsten Sprungs zugewiesen, wie in dem verarbeiteten Baum 102 gezeigt.
  • Das Anwenden des zweiten Durchlaufs auf den Baum bewirkt Aufwärts-Migration der Gruppen des prävalentesten nächsten Sprungs. In diesem Fall befindet sich die Gruppe D nächsten Sprungs letztendlich an dem Stammknoten D. Viele duplizierende Schritte haben zu dem Erreichen dieses Endergebnisses beigetragen. Darüber hinaus scheint diese Arbeit überflüssig zu sein, da sich die Gruppe D nächsten Sprungs an dem Stammknoten als Ergebnis des ersten und zweiten Schritts nicht geändert hat.
  • Die Anzahl von Operationen zum Durchführen der Kompression wird durch die Formel O(nw) angegeben, wobei „O" eine wohlverstandene Notation ist, die im Wesentlichen bedeutet, dass eine Obergrenze einer Anzahl von Operationen zu „nw" proportional ist. Die Variable „n" ist die Anzahl von Präfixen (oder Routen), die durch einen Binärbaum dargestellt wird, und die Variable „w" ist die Länge der Präfixe. Bei 32-Bit-IP-Adressen ist die Anzahl von Operationen 32n.
  • Pfad-Kompressionstechniken können verwendet werden, um die Anzahl von Operationen von O(nw) auf O(n) weiter zu verringern. 11 zeigt eine verdichtete Darstellung 110 des Eingangsbaum 100. Ein Kästchen 112 stellt den Elternknoten vor einer Folge einzelner verzweigender Knoten dar und der Punkt 114 stellt den Kindknoten an dem Ende der Folge dar. Der gekrümmte Pfad 116 stellt die Folge von Zweigen dar. Die Variable X beschreibt die Gruppe nächster Sprünge an dem Knoten 114 (d.h. A ∪ B) und die Variable Y beschreibt die Gruppe nächster Sprünge an dem Knoten 112 (d.h. D). Bei Antreffen dieser Struktur setzt das Kompressionsprogramm die folgenden Operationen ein:
    wenn X ∩ Y = ϕ, Y an erstem Knoten und X an letztem Knoten zuweisen,
    wenn X ∩ Y ≠ ϕ, X ∩ Y an erstem Knoten und X ∩ Y an letztem Knoten zuweisen.
  • In diesem Fall hat die Gruppe X nächster Sprünge (d.h. A ∪ B) an dem „Punktknoten" 114 keinen gemeinsamen Wert mit der Gruppe D an dem „Kästchenknoten" 112. Folglich wird dem „Kästchenknoten" 112 die Gruppe D zugewiesen und dem „Punktknoten" 114 wird die Gruppe X zugewiesen.
  • In dem verdichteten Baum 100 kann es, wenn es „n" Präfixe gibt, höchstens 3n Knoten geben. Folglich beträgt die maximale Anzahl von Operationen höchstens „3n". Die Kästchenknoten werden lediglich verwendet, wenn der komprimierte Pfad in ihnen eine Länge von wenigstens 2 aufweist. Andernfalls werden Punktknoten verwendet.
  • Schlussfolgerung
  • Die Kompressionstechniken werden oben in dem Kontext des Komprimierens von Routing-Tabellen in Routern beschrieben. Im Allgemeineren können dieselben Techniken angewendet werden, um die Größe einer Gruppe von Präfixen optimal zu verringern, wobei die Präfixe gemäß dem Algorithmus des längsten übereinstimmenden Präfixes ausgewählt werden.
  • Auch wenn die Erfindung sprachlich spezifisch in Bezug auf strukturelle Merkmale und/oder methodologische Schritte beschrieben wurde, versteht sich, dass die in den angehängten Ansprüchen definierte Erfindung nicht notwendigerweise auf die beschriebenen spezifischen Merkmale oder Schritte beschränkt ist. Vielmehr werden die spezifischen Merkmale und Schritte als bevorzugte Formen der Implementierung der beanspruchten Erfindung offengelegt.

Claims (22)

  1. Verfahren zum Komprimieren (52) einer Routing-Tabelle (30), dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte umfasst: Konstruieren (50) einer Binärbaum-Darstellung (70, 80, 100, 102, 110) der Routing-Tabelle, wobei der Binärbaum Knoten (72, 82-94, 112, 114) hat, die verschiedene Routen in der Routing-Tabelle darstellen; Zuweisen (54) nächster Sprünge (Hops) zu den Knoten; Durchführen von Supernetting (56) von Gruppen populärer nächster Sprünge, wobei der Schritt des Supernetting einen Schritt der Aufwärts-Migration der populären nächsten Sprünge in dem Baum umfasst; Durchführen von Subnetting (58) ausgewählter nächster Sprünge aus den Gruppen populärer nächster Sprünge, um redundante Routen zu eliminieren, wobei der Schritt des Subnetting einen Schritt des Eliminierens redundanter Zweige in dem Baum zum Erzeugen eines Ausgabe-Baums umfasst; und Umwandeln (60) des Ausgabe-Baums in eine neue Routing-Tabelle.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Zuweisens einen Schritt des Erzeugens neuer Kindknoten (90) für Elternknoten, die nur einen Kindknoten haben, und des Zuweisens nächster Sprünge von dem Elternknoten zu den neuen Kindknoten umfasst.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Schritt des Supernetting einen Schritt der Migration der populären nächsten Sprünge gemäß der folgenden Operation A·B = A ∪ B, wenn A ∩ B = ϕ A ∩ B, wenn A ∩ B ≠ ϕ umfasst, wobei A·B eine Gruppe nächster Sprünge ist, die aus Gruppen nächster Sprünge A und B gebildet wird.
  4. Verfahren nach Anspruch 1 oder 2, wobei der Schritt der Migration einen Schritt der Aufwärts-Migration der populären nächsten Sprünge in dem Baum gemäß der folgenden Operation A·B = A ∪ B, wenn A ∩ B = ϕ A ∩ B, wenn A ∩ B ≠ ϕumfasst, wobei A·B eine Gruppe nächster Sprünge ist, die an einem Elternknoten (72, 82, 92, 94) aus Gruppen nächster Sprünge A und B für ein Paar Kindknoten (72, 92, 94, 84, 90, 86, 88) gebildet wird, die dem Elternknoten entsprechen.
  5. Verfahren nach Anspruch 1 oder 2, wobei der Schritt der Migration einen Schritt des Anwendens von Pfad-Kompression auf eine Reihe einzelner Zweige umfasst, die an einem ersten Knoten (112) beginnen und an einem letzten Knoten (114) enden, wobei X eine Gruppe nächster Sprünge an dem letzten Knoten darstellt und Y eine Gruppe nächster Sprünge an dem ersten Knoten darstellt, und der Aufwärts-Migration nächster Sprünge in dem Baum gemäß der folgenden Operation wenn X ∩ Y = ϕ, Y an einem ersten Knoten und X an einem letzten Knoten zuweisen wenn X ∩ Y ≠ ϕ, X ∩ Y an einem ersten Knoten und X ∩ Y an einem letzten Knoten zuweisen umfasst.
  6. Verfahren nach Anspruch 1, das des Weiteren zum Komprimieren der Binärbaum-Darstellung (70, 80, 100, 102, 110) der Routing-Tabelle konfiguriert ist, wobei der Binärbaum mehrere Knoten (72, 8294, 112, 114) auf mehreren Stufen aufweist, die verschiedene Routen in der Routing-Tabelle darstellen, ein Elternknoten (72, 82, 92, 94) auf einer Stufe so eingerichtet ist, dass er zu null, eins oder zwei Kindknoten (72, 92, 94, 84, 90, 86, 88) auf einer nächst niedrigeren Stufe verzweigt, und einige der Knoten dazugehörige nächste Sprünge aufweisen, wobei das Verfahren des Weiteren umfasst: Normalisieren (54) des Baums durch Schaffen neuer Kindknoten (90) für Elternknoten, die nur einen Kindknoten haben, und Zuweisen nächster Sprünge von den Elternknoten zu den neuen Kindknoten; wobei der Schritt des Supernetting einen Schritt der Aufwärts-Migration der populären nächsten Sprünge in dem Baum durch Supernetting von Gruppen nächster Sprünge A und B für entsprechende Paare von Kindknoten an Elternknoten gemäß der folgenden Operation A·B = A U B, wenn A ∩ B = ϕ A ∩ B, wenn A ∩ B ≠ ϕumfasst, wobei A·B eine Gruppe nächster Sprünge ist, die an dem Elternknoten erzeugt wird; und wobei der Schritt des Subnetting einen Schritt des Abwärts-Subnetting an dem Baum umfasst, um redundante Zweige zu eliminieren, die Kindknoten mit wenigstens einem nächsten Sprung haben, der in der Gruppe nächster Sprünge entsprechender am nächsten liegender, nicht leerer Vorgängerknoten enthalten ist.
  7. Verfahren nach Anspruch 6, wobei die Schritte des Normalisierens, Supernetting und Subnetting in drei Durchläufen durch den Baum durchgeführt werden.
  8. Verfahren nach Anspruch 6, wobei die Schritte des Normalisierens und des Supernetting in einem einzelnen Durchlauf durch den Baum durchgeführt werden.
  9. Verfahren nach einem der Ansprüche 6 bis 8, wobei in einem Fall, in dem A·B = A ∩ B für einen einzelnen Elternknoten ist der Schritt des Subnetting des Weiteren einen Schritt des Löschens der nächsten Sprünge an dem Paar Kindknoten, die zu dem einzelnen Elternknoten gehören, umfasst.
  10. Verfahren nach Anspruch 1, das des Weiteren dazu dient, die Binärbaum-Darstellung (70, 80, 100, 102, 110) der Routing-Tabelle zu komprimieren, wobei der Binärbaum mehrere Knoten (72, 82-94, 112, 114) auf mehreren Stufen aufweist, die verschiedene Routen in der Routing-Tabelle darstellen, und ein Elternknoten (72, 82, 92, 94) auf einer Stufe so eingerichtet ist, dass er zu null oder zwei Kindknoten (72, 92, 94, 84, 90, 86, 88) auf einer nächst niedrigeren Stufe verzweigt, wobei der Schritt des Supernetting einen Schritt der Aufwärts-Migration der populären nächsten Sprünge in dem Baum gemäß der folgenden Operation A·B = A ∪ B, wenn A ∩ B = ϕ A ∩ B, wenn A ∩ B ≠ ϕumfasst, wobei A·B eine Gruppe nächster Sprünge ist, die an einem Elternknoten ausgebildet ist, aus Gruppen nächster Sprünge und B für ein Paar Kindknoten ist, die dem Elternknoten entsprechen, gebildet wird.
  11. Verfahren nach Anspruch 10, wobei in einem Fall, in dem A·B = A ∩ B für einen einzelnen Elternknoten ist der Schritt des Subnetting des Weiteren einen Schritt des Löschens der nächsten Sprünge an dem Paar Kindknoten, die zu dem einzelnen Elternknoten gehören, vor dem Schritt des Eliminierens umfasst.
  12. Verfahren nach einem der Ansprüche 1 bis 11, wobei der Schritt des Eliminierens die folgenden Schritte umfasst: Auswählen eines nächsten Sprungs aus einem nächst gelegenen, nicht leeren Vorgängerknoten; und Prüfen eines Kindknotens, der von dem Elternknoten abzweigt, um festzustellen, ob der ausgewählte nächste Sprung ein Element nächster Sprünge für den Kindknoten ist, und wenn dies der Fall ist, Eliminieren der nächsten Sprünge für den Kindknoten.
  13. Verfahren nach Anspruch 12, wobei der Schritt des Auswählens einen Schritt des Auswählens eines nächsten Sprungs umfasst, der versucht, Änderungen der Baumstruktur zu vermeiden.
  14. Verfahren nach Anspruch 1, wobei der Schritt des Supemetting einen Schritt des Ausbreitens der Gruppen populärer nächster Sprünge von spezifischeren Routen zu allgemeineren Routen umfasst, wobei spezifischere Routen durch IP-Adressen mit mehr Präfix-Bits als IP-Adressen für allgemeinere Routen definiert werden; und wobei der Schritt des Subnetting einen Schritt des Auswählens nächster Sprünge aus den Gruppen populärer nächster Sprünge umfasst, um spezifischere Routen neu zu definieren.
  15. Verfahren nach Anspruch 14, wobei der Schritt des Subnetting des Weiteren einen Schritt des Eliminierens redundanter Routen mit gemeinsamen IP-Adressen umfasst.
  16. Verfahren nach Anspruch 14 oder 15, wobei der Schritt des Ausbreitens einen Schritt der Migration der populären nächsten Sprünge gemäß der folgenden Operation A·B = A ∪ B, wenn A ∩ B = ϕ A ∩ B, wenn A ∩ B ≠ ϕumfasst, wobei A·B eine Gruppe nächster Sprünge ist, die aus Gruppen nächster Sprünge A und B gebildet wird.
  17. Router (28, 28(1)28(N)), der umfasst: einen Speicher (44) zum Speichern einer Routing-Tabelle (30); und einen Prozessor (42), der mit dem Speicher verbunden ist, um Routing von Nachrichten gemäß in der Routing-Tabelle aufgelisteter Routen durchzuführen, dadurch gekennzeichnet, dass der Router des Weiteren eine Tabellen-Kompressionseinrichtung umfasst, die so eingerichtet ist, dass sie die Routing-Tabelle komprimiert (52), indem sie die folgenden Schritte durchführt: Konstruieren (50) einer Binarbaum-Darstellung (70, 80, 100, 102, 110) der Routing-Tabelle, wobei der Binärbaum Knoten (72, 82-94, 112, 114) hat, die verschiedene Routen in der Routing-Tabellen darstellen; Zuweisen (54) nächster Sprünge zu den Knoten; Durchführen von Supernetting (56) von Gruppen populärer nächster Sprünge, wobei der Schritt des Supernetting einen Schritt der Aufwärts-Migration der populären nächsten Sprünge in dem Baum umfasst; Durchführen von Subnetting (58) ausgewählter nächster Sprünge aus den Gruppen populärer nächster Sprünge, um redundante Routen zu eliminieren, wobei der Schritt des Subnetting einen Schritt des Eleminierens redundanter Zweige in dem Baum zum Erzeugen eines Ausgabe-Baums umfasst; und Umwandeln (60) des Ausgabe-Baums in eine neue Routing-Tabelle.
  18. Router nach Anspruch 17, wobei die Tabellen-Kompressionseinrichtung des Weiteren zum Durchführen des Verfahrens nach einem der Ansprüche 2 bis 16 eingerichtet ist.
  19. Router nach Anspruch 17 oder 18, wobei die Tabellen-Kompressionseinrichtung ein Programm (48) in dem Speicher ist, das auf dem Prozessor ausgeführt wird.
  20. Router nach Anspruch 17 oder 18, wobei die Tabellen-Kompressionseinrichtung als eine integrierte Schaltungsvorrichtung ausgeführt ist.
  21. Computerlesbares Medium, das durch Computer ausführbare Befehle umfasst, die, wenn sie durch Computervorrichtungen ausgeführt werden, die Computervorrichtungen veranlassen, ein Verfahren zum Komprimieren (52) einer Routing-Tabelle (30) durchzuführen, dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte umfasst: Konstruieren (50) einer Binärbaum-Darstellung (70, 80, 100, 102, 110) der Routing-Tabelle, wobei der Binärbaum Knoten (72, 82-94, 112, 114) hat, die verschiedene Routen in der Routing-Tabelle darstellen; Zuweisen (54) nächster Sprünge zu den Knoten; Durchführen von Supernetting (56) von Gruppen populärer nächster Sprünge, wobei der Schritt des Supernetting einen Schritt der Aufwärts-Migration der populären Sprünge in dem Baum umfasst; Durchführen von Subnetting (58) ausgewählter nächster Sprünge aus den Gruppen populärer nächster Sprünge, um redundante Routen zu eliminieren, wobei der Schritt des Subnetting einen Schritt des Eliminierens redundanter Zweige in dem Baum zum Erzeugen eines Ausgabe-Baums umfasst; und Umwandeln (60) des Ausgabe-Baums in eine neue Routing-Tabelle.
  22. Computerlesbares Medium nach Anspruch 21, das des Weiteren durch Computer ausführbare Befehle umfasst, die, wenn sie durch die Computervorrichtungen ausgeführt werden, die Computervorrichtungen veranlassen, das Verfahren nach einem der Ansprüche 2 bis 16 durchzuführen.
DE69937248T 1998-11-06 1999-08-31 Routers und verfahren für optimale leitwegtabellenkomprimierung Expired - Lifetime DE69937248T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/188,014 US6385649B1 (en) 1998-11-06 1998-11-06 Routers and methods for optimal routing table compression
US188014 1998-11-06
PCT/US1999/019995 WO2000028704A1 (en) 1998-11-06 1999-08-31 Routers and methods for optimal routing table compression

Publications (2)

Publication Number Publication Date
DE69937248D1 DE69937248D1 (de) 2007-11-15
DE69937248T2 true DE69937248T2 (de) 2008-01-17

Family

ID=22691416

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69937248T Expired - Lifetime DE69937248T2 (de) 1998-11-06 1999-08-31 Routers und verfahren für optimale leitwegtabellenkomprimierung

Country Status (7)

Country Link
US (1) US6385649B1 (de)
EP (1) EP1127433B1 (de)
JP (1) JP4268337B2 (de)
AT (1) ATE375047T1 (de)
AU (1) AU5798699A (de)
DE (1) DE69937248T2 (de)
WO (1) WO2000028704A1 (de)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1305103B1 (it) * 1998-12-30 2001-04-10 Cit Alcatel Metodo di smistamento di pacchetti di informazione associati aindirizzi rappresentati tramite stringhe numeriche e relativo apparato
TW468116B (en) * 1999-02-08 2001-12-11 Wen-Shian Chen High speed Internet protocol address lookups method for saving memory
FR2789778B1 (fr) * 1999-02-12 2001-09-14 France Telecom Procede pour associer des references d'acheminement a des paquets de donnees au moyen d'une memoire trie, et routeur de paquets appliquant ce procede
US6772220B1 (en) * 1999-09-29 2004-08-03 International Business Machines Corporation Next hop command level addressing and routing
US6952740B1 (en) * 1999-10-04 2005-10-04 Nortel Networks Limited Apparatus and method of maintaining a route table
US6618755B1 (en) * 1999-12-07 2003-09-09 Watchguard Technologies, Inc. Automatically identifying subnetworks in a network
US6581106B1 (en) * 2000-01-13 2003-06-17 Pierluigi Crescenzi Fast address lookup in routing tables
US6766343B1 (en) * 2000-02-04 2004-07-20 Harris Corporation Method and apparatus for coordinate system conversions
JP2004508743A (ja) * 2000-06-14 2004-03-18 ウィリアムズ コミュニケーションズ, エルエルシー インターネットルート非集合およびルート選択参照
US7966421B2 (en) * 2000-06-21 2011-06-21 SAtech Group, A.B. Limited Liability Company Method and apparatus for logically expanding the length of a search key
US20020089937A1 (en) 2000-11-16 2002-07-11 Srinivasan Venkatachary Packet matching method and system
US7106732B2 (en) * 2000-12-27 2006-09-12 Mosaid Technologies Incorporated Default route coding
US6680916B2 (en) * 2001-01-22 2004-01-20 Tut Systems, Inc. Method for using a balanced tree as a base for a routing table
US7133410B2 (en) * 2001-02-12 2006-11-07 Tellabs Operations, Inc. Method and system for designing ring-based telecommunications networks
US7506058B2 (en) * 2001-12-28 2009-03-17 International Business Machines Corporation Method for transmitting information across firewalls
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
US7733880B2 (en) * 2002-06-14 2010-06-08 Alcatel-Lucent Usa Inc. Managing routes in a router utilizing threshold-specific discard algorithms
US7433304B1 (en) * 2002-09-06 2008-10-07 Packeteer, Inc. Classification data structure enabling multi-dimensional network traffic classification and control schemes
US6934252B2 (en) * 2002-09-16 2005-08-23 North Carolina State University Methods and systems for fast binary network address lookups using parent node information stored in routing table entries
US6954794B2 (en) * 2002-10-21 2005-10-11 Tekelec Methods and systems for exchanging reachability information and for switching traffic between redundant interfaces in a network cluster
US7162481B2 (en) * 2002-12-06 2007-01-09 Stmicroelectronics, Inc. Method for increasing storage capacity in a multi-bit trie-based hardware storage engine by compressing the representation of single-length prefixes
US7099881B2 (en) * 2002-12-06 2006-08-29 Stmicroelectronics, Inc. Method for increasing average storage capacity in a bit-mapped tree-based storage engine by using remappable prefix representations and a run-length encoding scheme that defines multi-length fields to compactly store IP prefixes
US7426518B2 (en) * 2003-03-28 2008-09-16 Netlogic Microsystems, Inc. System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size
US7571156B1 (en) 2003-03-28 2009-08-04 Netlogic Microsystems, Inc. Network device, storage medium and methods for incrementally updating a forwarding database
US7437354B2 (en) * 2003-06-05 2008-10-14 Netlogic Microsystems, Inc. Architecture for network search engines with fixed latency, high capacity, and high throughput
US8301738B1 (en) * 2003-07-31 2012-10-30 Novell, Inc. Systems and methods for private network addressing in IP protocols
US7487255B2 (en) * 2003-08-14 2009-02-03 Hewlett-Packard Development Company, L.P. Routing cache management with route fragmentation
US7379424B1 (en) * 2003-08-18 2008-05-27 Cray Inc. Systems and methods for routing packets in multiprocessor computer systems
US7702882B2 (en) * 2003-09-10 2010-04-20 Samsung Electronics Co., Ltd. Apparatus and method for performing high-speed lookups in a routing table
WO2005036839A2 (en) 2003-10-03 2005-04-21 Avici Systems, Inc. Rapid alternate paths for network destinations
US8346960B2 (en) * 2005-02-15 2013-01-01 At&T Intellectual Property Ii, L.P. Systems, methods, and devices for defending a network
US7694068B1 (en) 2005-12-08 2010-04-06 Netlogic Microsystems, Inc. Re-entrant processing in a content addressable memory
US8023517B2 (en) * 2006-04-05 2011-09-20 Cisco Technology, Inc. System and method for improving network performance and security by controlling topology information
EP2014027B1 (de) * 2006-04-28 2014-01-01 Telecom Italia S.p.A. Verfahren zur bestimmung von potentiellen peering-partnern für einen internet-dienstanbieter
EP2074534B1 (de) 2006-10-20 2017-01-25 Oricane AB Verfahren, einrichtung, computerprogrammprodukt und system zum repräsentieren einer partition von n w-bit-intervallen, die mit d-bit-daten in einem datenkommunikationsnetz assoziiert sind
SE531557C2 (sv) 2006-10-20 2009-05-19 Oricane Ab Förfarande, klassificeringsanordning, datorprogramprodukt och system för att representera en del av n w-bit-intervall hörande till d-bit data i ett datakommunikationsnätverk
US7933282B1 (en) 2007-02-08 2011-04-26 Netlogic Microsystems, Inc. Packet classification device for storing groups of rules
US9014047B2 (en) 2007-07-10 2015-04-21 Level 3 Communications, Llc System and method for aggregating and reporting network traffic data
US8654763B2 (en) * 2008-10-15 2014-02-18 Board Of Trustees Of Michigan State University Systematic approach towards minimizing packet classifiers
CN101404617B (zh) * 2008-11-04 2011-03-23 刘显福 一种流体动态生成树的形成方法
CN101741708B (zh) * 2008-11-13 2012-11-21 华为技术有限公司 一种存储数据的方法和装置
US8036126B2 (en) * 2009-02-17 2011-10-11 At&T Intellectual Property Llp System and method for compressing internet protocol routing tables
JP2010226340A (ja) * 2009-03-23 2010-10-07 Alaxala Networks Corp 通信装置
US8780926B2 (en) * 2009-12-01 2014-07-15 Polytechnic Institute Of New York University Updating prefix-compressed tries for IP route lookup
US8375165B2 (en) 2010-01-08 2013-02-12 Board Of Trustees Of Michigan State University Bit weaving technique for compressing packet classifiers
US8363662B2 (en) 2010-03-19 2013-01-29 Cisco Technology, Inc. Alternate down paths for directed acyclic graph (DAG) routing
US8438330B2 (en) 2010-05-17 2013-05-07 Netlogic Microsystems, Inc. Updating cam arrays using prefix length distribution prediction
US8769148B1 (en) 2010-07-30 2014-07-01 Google Inc. Traffic distribution over multiple paths in a network
CN102143076B (zh) * 2011-03-29 2014-10-22 中兴通讯股份有限公司 一种多重保护叠加的保护组实现方法和装置
US9716592B1 (en) 2011-06-10 2017-07-25 Google Inc. Traffic distribution over multiple paths in a network while maintaining flow affinity
US20150363510A1 (en) * 2013-01-31 2015-12-17 Hewlett-Packard Development Company, L.P. Indexed shaped graph creation
KR101640733B1 (ko) * 2015-01-23 2016-07-20 주식회사 리얼타임테크 인-메모리 데이터베이스 기반의 데이터 관리 시스템 및 그 방법
WO2016149905A1 (en) * 2015-03-24 2016-09-29 Hewlett-Packard Development Company, L.P. Field programmable gate array memory allocation
US10298491B2 (en) * 2016-08-25 2019-05-21 Cisco Technology, Inc. Efficient path detection and validation between endpoints in large datacenters
US10284472B2 (en) 2017-01-24 2019-05-07 Cisco Technology, Inc. Dynamic and compressed trie for use in route lookup
CN110557330B (zh) * 2018-05-30 2022-03-25 中兴通讯股份有限公司 一种备份路径计算方法、装置及计算机存储介质
EP3618389B1 (de) * 2018-08-27 2020-10-07 Ovh Systeme und verfahren zum betreiben eines netzwerkgeräts
DK3618355T3 (da) 2018-08-27 2020-11-16 Ovh Systemer og fremgangsmåder til at drive en netværksindretning
CN109308284B (zh) * 2018-09-28 2023-09-19 中国平安财产保险股份有限公司 报表菜单生成方法、装置、计算机设备及存储介质
CN112565072B (zh) * 2020-11-02 2022-08-09 鹏城实验室 一种路由表压缩方法、路由器及存储介质
EP4162669B1 (de) * 2021-01-05 2024-07-10 VMware LLC Komprimierung von routentabellen unter verwendung von schlüsselwerten
CN116896518B (zh) * 2023-09-11 2023-11-24 腾讯科技(深圳)有限公司 路由对账方法、装置、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490258A (en) * 1991-07-29 1996-02-06 Fenner; Peter R. Associative memory for very large key spaces
US5095480A (en) 1989-06-16 1992-03-10 Fenner Peter R Message routing system for shared communication media networks
JP3361865B2 (ja) 1993-12-13 2003-01-07 富士通株式会社 スタティックなルーティング情報の自動設定方法およびルーティング情報の自動設定を行うコンピュータ
US5546390A (en) * 1994-12-29 1996-08-13 Storage Technology Corporation Method and apparatus for radix decision packet processing
US5751971A (en) * 1995-07-12 1998-05-12 Cabletron Systems, Inc. Internet protocol (IP) work group routing
US5826262A (en) 1996-03-22 1998-10-20 International Business Machines Corporation Parallel bottom-up construction of radix trees
US5881241A (en) * 1996-06-19 1999-03-09 Sun Microsystems, Inc. System for transmitting data packet after matching data packet's routing pattern with predetermined data routes stored in a route table
US6011795A (en) 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US5933849A (en) * 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US6018524A (en) * 1997-09-09 2000-01-25 Washington University Scalable high speed IP routing lookups
US6061712A (en) 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6067574A (en) 1998-05-18 2000-05-23 Lucent Technologies Inc High speed routing using compressed tree process
US6192051B1 (en) * 1999-02-26 2001-02-20 Redstone Communications, Inc. Network router search engine using compressed tree forwarding table

Also Published As

Publication number Publication date
JP4268337B2 (ja) 2009-05-27
WO2000028704A1 (en) 2000-05-18
EP1127433B1 (de) 2007-10-03
US6385649B1 (en) 2002-05-07
ATE375047T1 (de) 2007-10-15
AU5798699A (en) 2000-05-29
EP1127433A1 (de) 2001-08-29
DE69937248D1 (de) 2007-11-15
JP2002530011A (ja) 2002-09-10

Similar Documents

Publication Publication Date Title
DE69937248T2 (de) Routers und verfahren für optimale leitwegtabellenkomprimierung
DE69331054T2 (de) Verfahren und Gerät zur automatischen Verteilung einer Netztopologie in Haupt- und Nebentopologie
DE69825596T2 (de) System und verfahren für ein vielschicht-netzelement
DE69331013T2 (de) System und verfahren für ruf-zu-ruf leitweglenkung mit auf regeln basierter rücklenkung
DE69433126T2 (de) Verfahren zum Einrichten von virtuellen Mehrfachsendeverbindungen
DE69533535T2 (de) Verfahren zur effizienten aggregation von verbindungsmetriken
DE68918765T2 (de) Verfahren zur wirksamen Aktualisierung der Knotentopologiedatenbanken in einem Datenkommunikationsnetzwerk.
DE68920490T2 (de) Verfahren zur Auswahl des geringstwertigen Weges in einem Kommunikationsnetz.
DE69330675T2 (de) Verbesserte Paketstruktur für Netzschicht
DE60026229T2 (de) Verfahren und Vorrichtung für Klassifizierung von Datenpaketen
EP0872090B1 (de) Verfahren zum bilden von leitweginformation
DE69025846T2 (de) Verfahren zur Verwendung gespeicherter partieller Bäume zur Berechnung eines Weges in einem Datenkommunikationsnetz
DE69610761T2 (de) Verfahren und vorrichtung zur gewährleistung der kommunikation mit mobilen endgeräten in einem paketübertragungssystem
DE69328647T2 (de) Verfahren und Vorrichtung zur optimalen Wegeauswahl in Paketübertragungsnetzen
DE60129643T2 (de) Verfahren und Gerät für die Ermittlung vom längsten Prefixzusammenbringen in einem Kommunikationsnetz
DE102004008720B4 (de) Vorrichtung und Verfahren zur Durchführung von Verkehrsflussschablonen-Paketfilterung gemäß Internet-Protokollversionen in einem mobilen Kommunikationssystem
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE69207822T2 (de) Weglenkung in Kommunikationsnetzwerken
DE60125954T2 (de) Adressierung und routen von datenpaketen in einem computer-netzwerk mit hilfe von inhaltsbeschreibenden labeln
DE60222575T2 (de) Verfahren zur Generierung eines DFA-Automaten, wobei Übergänge zwecks Speichereinsparung in Klassen gruppiert werden
DE69602753T2 (de) Netzwerkaddressierungsanordnung fur rückwarts kompatible leitweglenkung mit einem erweiterten addressraum
DE69328044T2 (de) Verfahren zur verbindung von lokalen netzen oder netzsegmenten und einer lokalen netzwerkbrücke
DE69325398T2 (de) Weiterleitung von bandbreitenreservierten verbindungen in informationsnetzwerken
DE69937185T2 (de) Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen
DE60000396T2 (de) "multicommodity flow"-Verfahren zur Verteilung des Verkehrs in einem Packetnetz mit mehreren Diensten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition