DE202015009259U1 - Präfix-orientierte reduzierung von multipath-gruppen nach gewichteten kosten - Google Patents

Präfix-orientierte reduzierung von multipath-gruppen nach gewichteten kosten Download PDF

Info

Publication number
DE202015009259U1
DE202015009259U1 DE202015009259.4U DE202015009259U DE202015009259U1 DE 202015009259 U1 DE202015009259 U1 DE 202015009259U1 DE 202015009259 U DE202015009259 U DE 202015009259U DE 202015009259 U1 DE202015009259 U1 DE 202015009259U1
Authority
DE
Germany
Prior art keywords
routing entries
multipath
routing
network
entries
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.)
Active
Application number
DE202015009259.4U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202015009259U1 publication Critical patent/DE202015009259U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • 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
    • 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/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop

Abstract

Ein System, umfassend: einen Paket-Switch mit einer Weiterleitungstabelle; und einen Routen-Manager für den Paket-Switch, wobei der Routen-Manager konfiguriert ist für: Identifizieren einer Vielzahl von Multipath-Gruppen, die jeweils einer jeweiligen Anfangsmenge an Routing-Einträgen in der Weiterleitungstabelle entspricht; Generieren für eine oder mehrere Multipath-Gruppen in der Vielzahl an Multipath-Gruppen in einer Weiterleitungstabelle eines Paket-Switch von mindestens einer Ersatzmenge von Routing-Einträgen mit weniger Routing-Einträgen als die ursprüngliche Anzahl an Routing-Einträgen, die der jeweiligen Multipath-Gruppe entsprechen; eine auf Kostenmetrik zur Verkehrsreduzierung basierende Auswahl von ein oder mehreren der Ersatzmengen der Routing-Einträge, wobei jede ausgewählte Ersatzmenge einer anderen jeweiligen Multipath-Gruppe in der Vielzahl an Multipath-Gruppen entspricht; und Austausch der anfänglichen Menge an Routing-Einträgen für jede Multipath-Gruppe, die einer ausgewählten Austauschmenge der Routing-Einträge in der Weiterleitungstabelle des Paket-Switch entspricht, durch die jeweils entsprechende Ersatzmenge an Routing-Einträgen.

Description

  • HINTERGRUND
  • Informationen werden zwischen Computersystemen in der Form von Netzwerkpaketen übertragen, die von Netzwerkgerät zu Netzwerkgerät, wie z. B. Switches, in einem oder mehreren verbundenen Netzwerken weitergereicht werden. Jedes Netzwerkgerät gibt die empfangenen Pakete an ein Ziel weiter, das in den Header-Informationen des Pakets angegeben ist. Die Zieladresse kann die Adresse eines Geräts in einem anderen Netzwerk sein, das von einem Dritten kontrolliert wird, und die Pakete können mehrere verschiedene Netzwerke zwischen der Quelle und dem Ziel durchlaufen.
  • Einige Netzwerkgeräte, in der Regel Switches, beinhalten Speicher, der für eine Weiterleitungstabelle reserviert ist. Wenn das Netzwerkgerät ein Paket empfängt, kann das Netzwerkgerät die Informationen in der Weiterleitungstabelle verwenden, um festzustellen, wie das empfangene Paket verarbeitet werden soll. Beispielsweise könnte die Weiterleitungstabelle einen Routing-Eintrag enthalten, der einen Ausgangsanschluss spezifiziert, der mit einem Next-Hop-Knoten entlang eines Pfades zu einem Netzwerkziel verbunden ist.
  • In einigen Netzwerkkonfigurationen kann es mehrere geeignete Pfade von einem Netzwerkgerät zu einem bestimmten Netzwerkziel geben. Das ECMP-Routing (Equal-Cost Multi-Path (mehrere Pfade zu gleichen Kosten)) gestattet, dass eine Weiterleitungstabelle Routing-Einträge für jeden der verschiedenen Pfade enthält. Ein Switch, der ECMP unterstützt, kann dann den Netzwerkverkehr über die verschiedenen Routen in einer ECMP-Routenmenge verteilen. WCMP-Routing (Weighted-Cost Multi-Path (mehrere Pfade mit gewichteten Kosten)) gestattet, dass einige der verschiedenen geeigneten Pfade in einer Multipath- Routenmenge mehr als andere Pfade in derselben Menge verwendet werden. Routing-Einträge für eine WCMP-Routenmenge können jedoch einen maßgeblichen Teil des Speichers verbrauchen, der für die Weiterleitungstabelle reserviert ist.
  • ZUSAMMENFASSUNG
  • In einem Aspekt bezieht sich die Offenbarung auf ein Verfahren, eine Weiterleitungstabelle für einen Paket-Switch zu generieren. Das Verfahren beinhaltet das Identifizieren von mehreren Multipath-Gruppen in einer Weiterleitungstabelle eines Paket- Switch, die jeweils einer Anfangsmenge an Routing-Einträge in der Weiterleitungstabelle entsprechen. Das Verfahren beinhaltet die Generierung von mindestens einer Ersatzmenge an Routing-Einträgen mit weniger Routing-Einträgen als in der anfänglichen Menge an Routing- Einträgen enthalten, die jeweils der Multipath-Gruppe entsprechen, für eine Multipath-Gruppe oder mehrere Multipath-Gruppen innerhalb der Vielzahl an Multipath-Gruppen. Das Verfahren beinhaltet die auf einer Kostenmetrik zur Verkehrsreduzierung basierende Auswahl von einer oder mehrere Ersatzmengen von Routing-Einträgen, wobei jede ausgewählte Ersatzmenge jeweils einer anderen Multipath-Gruppe der Vielzahl an Multipath-Gruppen entspricht, und in der Weiterleitungstabelle des Paket-Switch die anfängliche Menge von Routing-Einträgen für Multipath-Gruppen, die einer ausgewählten Ersatzmenge an Routing-Einträgen entspricht, durch die jeweils entsprechende ausgewählte Ersatzmenge an Routing-Einträgen ersetzt. Bei einigen Implementierungen beinhaltet die Kostenmetrik für die Verkehrsreduzierung eine erste Verkehrscharakteristik.
  • In einem weiteren Aspekt bezieht sich die Offenbarung auf ein System. Das System beinhaltet einen Paket-Switch mit einer Weiterleitungstabelle und einen Routen-Manager für den Paket-Switch. Der Routen-Manager ist so konfiguriert, dass er in der Weiterleitungstabelle eine Vielzahl an Multipath-Gruppen identifiziert, die jeweils einer anfänglichen Menge an Routing-Einträgen in der Weiterleitungstabelle entsprechen, und für eine oder mehrere Multipath-Gruppen innerhalb der Vielzahl an Multipath-Gruppen mindestens eine Ersatzmenge mit Routing-Einträgen mit weniger Routing-Einträgen als in der Anfangsmenge der Routing-Einträge enthalten generiert, die der jeweiligen Multipath-Gruppe entsprechen. Der Routen-Manager ist so konfiguriert, dass er basierend auf einer Kostenmetrik zur Verkehrsreduzierung eine oder mehrere Ersatzmengen von Routing-Einträgen auswählt, wobei jede ausgewählte Ersatzmenge jeweils einer anderen Multipath-Gruppe aus der Vielzahl an Multipath-Gruppen entspricht, und in der Weiterleitungstabelle die anfängliche Menge von Routing-Einträgen für Multipath-Gruppen, die einer ausgewählten Ersatzmenge an Routing- Einträgen entspricht, durch die jeweils entsprechende ausgewählte Ersatzmenge an Routing- Einträgen ersetzt. Bei einigen Implementierungen beinhaltet die Kostenmetrik für die Verkehrsreduzierung eine erste Verkehrscharakteristik. Bei einigen Implementierungen ist der Paket-Switch Teil eines SDN (Software-Defined Network), und der Routen-Manager ist Teil eines SDN-Controllers für den Paket-Switch.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und ähnlichen Objekte, Merkmale und Vorteile der vorliegenden Offenbarung sind anhand der folgenden detaillierten Beschreibung und in Verbindung mit den folgenden Figuren besser verständlich, wobei gilt:
  • 1 ist ein Blockdiagramm für ein exemplarisches Netzwerk;
  • 2 ist ein Blockdiagramm für ein exemplarisches Netzwerkgerät;
  • 3A3C sind Blockdiagramme für Weiterleitungstabellen;
  • 4 ist ein Ablaufdiagramm für ein Verfahren mit einer präfix-orientierten WCMP-Gruppenreduzierung;
  • 5 ist ein Ablaufdiagramm für ein Verfahren für eine WCMP- Gruppenreduzierung für Multipath-Mengen, die nicht verwendet werden, um wichtigen Netzwerkverkehr zu übertragen; und
  • 6 ist ein Blockdiagramm eines Rechensystems in Übereinstimmung mit einer veranschaulichenden Implementierung.
  • Ähnliche Referenznummern und Bezeichnungen in den verschiedenen Zeichnungen kennzeichnen ähnliche Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Blockdiagramm für eine exemplarische Netzwerkumgebung, bestehend aus mehreren unabhängigen Netzwerken, die an verschiedenen Verbindungspunkten verknüpft sind. Wie gezeigt, kommuniziert ein lokales Netzwerk 110 mit einem Zielnetzwerk 150 über ein oder mehrere Zwischennetzwerke 130. Das lokale Netzwerk 110 ist mit den Zwischennetzwerken 130 über die Netzwerkgeräte 124 und 126 an der Grenze des lokalen Netzwerks 110 verbunden. Diese „Grenz“-Netzwerkgeräte sind Teil von drei gezeigten Netzwerkpfaden durch die Zwischennetzwerke 130: Pfad „A“ 144, Pfad „B“ 146 und Pfad „C“ 148. Jeder Pfad 144, 146 und 148 ist eine andere Route durch die Netzwerke 110, 130 und 150 zu einem Zielgerät 154 im Zielnetzwerk 150. Ein Netzwerkgerät 122 im lokalen Netzwerk 110 kann ein an das Zielgerät 154 adressiertes Paket an ein Grenzgerät 124 oder 126 weiterleiten, sodass das Paket das Zielnetzwerk 150 erreicht. Das bedeutet, das Netzwerkgerät 122 kann ein Multipath-Routing implementieren.
  • Unter Verweis auf 1 bedeutet dies im Detail, dass das lokale Netzwerk 110 verschiedene Netzwerkgeräte 122, 124 und 126 enthält. Bei dem lokalen Netzwerk 110 kann es sich um ein beliebiges Datennetzwerk handeln, das die Kommunikation zwischen mehreren Rechensystemen vereinfacht. Ein Netzwerkgerät 122 im lokalen Netzwerk 110 kann Pakete an andere Netzwerkgeräte im lokalen Netzwerk 110 senden (übertragen) und empfangen, einschließlich der Netzwerkgeräte 124 und 126 an der Grenze des lokalen Netzwerks 110. Bei einigen Implementierungen ist das lokale Netzwerk 110 ein SDN (Software-Defined Network), wobei ein oder mehrere der Netzwerkgeräte von einem SDN-Controller gesteuert werden (in 1 nicht gezeigt). 2 zeigt ein Beispiel für ein von einem SDN-Controller gesteuertes Netzwerkgerät. 7 zeigt ein Beispiel für ein Rechensystem, das verwendet werden kann, um ein Netzwerkgerät zu implementieren.
  • In weiterer Bezugnahme auf 1 verbinden die Grenz-Netzwerkgeräte 124 und 126 das lokale Netzwerk 110 mit anderen Netzwerken 130. Bei einigen Implementierungen hat ein Grenz-Gerät eine Netzwerkschnittstelle, die mit einem Netzwerk verbunden ist, und eine weitere Netzwerkschnittstelle, die mit einem anderen Netzwerk verbunden ist, sodass das „multi-homed“-Gerät an beiden Netzwerken teilnehmen kann. Bei einigen Implementierungen ist ein Grenz-Gerät mit einem Grenz-Gerät eines anderen Netzwerks über eine Netzwerkverbindung verbunden, beispielsweise durch eine Verknüpfung, die von einem dritten Internet Exchange Provider (DO) bereitgestellt wird. Die Grenz-Geräte 124 und 126 verhalten sich als Gateways zwischen dem lokalen Netzwerk 110 und einem anderen Netzwerk 130. Bei einigen Implementierungen implementieren die Grenz-Geräte 124 und 126 Routing-Protokolle, wie beispielsweise das BGP (Border Gateway Protocol). Damit ein Paket aus dem lokalen Netzwerk 110 zu einem Zielgerät 154 außerhalb des lokalen Netzwerks 110 gelangen kann, wird das Paket innerhalb des lokalen Netzwerks 110 an ein Grenz-Gerät entlang eines Netzwerkspfads zum Zielnetzwerk 150 geleitet, in dem sich das Zielgerät 154 befindet. Ein Grenz-Netzwerkgerät 124 ist so dargestellt, dass es an mindestens zwei verschiedenen Pfaden, Pfad „A“ 144 und Pfad „B“ 146, durch die Zwischennetzwerke 130 zum Zielnetzwerk 150 teilnimmt. Ein weiteres Grenz-Netzwerkgerät 126 ist so dargestellt, dass es an einem dritten unterschiedlichen Pfad, Pfad „C“ 148, durch die Zwischennetzwerke 130 zum Zielnetzwerk 150 teilnimmt. Das bedeutet, es gibt mindestens drei verschiedene Pfade vom lokalen Netzwerk 110 zum Zielnetzwerk 150.
  • Die Zwischennetzwerke 130 sind Datennetzwerke, die die Kommunikation zwischen mehreren Rechensystemen vereinfachen. Bei einigen Implementierungen wird ein Zwischennetzwerk 130 durch dieselbe Partei kontrolliert, die auch das lokale Netzwerk 110 kontrolliert, z. B. innerhalb eines autonomen Systems. Bei einigen Implementierungen wird ein Zwischennetzwerk 130 durch eine dritte Partei kontrolliert. Bei einigen Implementierungen ist ein Zwischennetzwerk 130 ein Trägernetzwerk. Bei einigen Implementierungen durchläuft ein Paket, das vom lokalen Netzwerk 110 zu einem Zielnetzwerk 150 übertragen wird, mehrere Zwischennetzwerke 130.
  • Das Zielgerät 154 ist ein Rechensystem oder Netzwerkgerät, das Netzwerkpakete empfangen kann. Das Zielgerät 154 ist mindestens einer Netzwerkadresse zugeordnet, die es im Netzwerkadressraum des Zielnetzwerks 150 einordnet. Das Zielgerät 154 kann jedes Rechensystem sein, das in der Lage ist, Pakete von einem Netzwerk zu empfangen. Beispielsweise kann das Zielgerät 154 ein Client-Gerät sein, das so konfiguriert ist, dass es die vom Zielnetzwerk 150 empfangenen Informationen einem Computerbenutzer präsentiert. Bei einigen Implementierungen ist das Zielgerät 154 ein Server. Beispielsweise kann das Zielgerät 154 ein nicht am Standort befindliches Datenspeichersystem sein. Ein Beispiel für ein Rechensystem, das verwendet werden kann, um ein Zielgerät 154 zu implementieren, ist in 7 gezeigt.
  • Bei dem Zielnetzwerk 150 kann es sich um ein beliebiges Datennetzwerk handeln, das die Kommunikation zwischen mehreren Rechensystemen vereinfacht. Bei einigen Implementierungen ist das Zielnetzwerk 150 ein ISP-Netzwerk (Internet Service Provider).
  • Das lokale Netzwerk 110, die Zwischennetzwerke 130 und das Zielnetzwerk 150 können jedes beliebige Datennetzwerk sein, das die Kommunikation zwischen mehreren Rechensystemen vereinfacht. Beispielsweise kann jedes Netzwerk 110, 130 und/oder 150 ein LAN (Local Area Network), ein WAN (Wide Area Network) oder ein virtuelles Netzwerk sein. Jedes Netzwerk hat die OSI-Eigenschaften für Bitübertragungsschichten und arbeitet unter Verwendung von OSI-Protokollen der Sicherungsschicht, z. B. Ethernet. Jedes Netzwerk kann weitere Netzwerkgeräte beinhalten, die nicht in 1 gezeigt sind, z. B. Hubs, Bridges, Switches oder Router. Jedes der Netzwerke 110, 130 und/oder 150 kann ein SDN (Software- Defined Network) sein.
  • Bei einigen Implementierungen können alle Netzwerkgeräte 122, 124, 126 und 154 statt sich lokal in unterschiedlichen Netzwerk zu befinden, sich auch im selben Netzwerk befinden. Beispielsweise können sich die Geräte alle im selben software-definierten Rechenzentrumsnetzwerk befinden. Einige Rechenzentrumsnetzwerke enthalten große Mengen an Servern, die in Racks angeordnet sind, die jeweils einen oder mehrere für das Rack eingerichtete Switches enthalten. Die Server kommunizieren dann mit den anderen Servern im Rechenzentrum über einen oder mehrere Switches der Aggregationsschicht. In einem solchen Netzwerk kann ein Switch für ein Rack beispielsweise mit mehreren Switches der Aggregationsschicht verbunden und so konfiguriert sein, dass er ein Multipath-Routing verwendet, um den Verkehr, der von den in seinem Rack befindlichen Servern ausgegeben wird, über mehrere Switches in einer bestimmten Aggregationsschicht des Netzwerks verteilt. Analog dazu können die Aggregationsschicht-Switches auch ein Multipath-Routing verwenden.
  • 2 ist ein Blockdiagramm für einen exemplarischen SDN-Controller 220 und ein Netzwerkgerät 230, voneinander getrennt durch eine Steuerungsverbindung 112. Ganz allgemein enthält der SDN-Controller 220 ein Steuerungsmodul 242 und einen Speicher 226, z. B. zum Speichern der Netzwerkkonfiguration und der Routing-Daten. Das Netzwerkgerät 230 enthält ein Steuerungsmodul 244 und einen Speicher 236, z. B. zum Speichern der Netzwerkkonfiguration und der Routing-Daten. Das Netzwerkgerät 230 enthält eine Weiterleitungs-Engine 234, die die im Speicher 236 gespeicherte Gerätekonfiguration und Routingdaten verwendet, um den Datenverkehr an den Netzwerkschnittstellen 238 zu verwalten. Das Netzwerkgerät 230 ist geeignet für die Verwendung als ein beliebiges der Netzwerkgeräte 122, 124 und 126, wie in 1 gezeigt.
  • Unter Verweis auf 2 bedeutet dies im Detail, dass der SDN-Controller 220 ein Steuerungsmodul 242 und Speicher 226 beinhaltet. Das Steuerungsmodul 242 verwendet die im Speicher 246 gespeicherte Netzwerkkonfiguration und Routingdaten, um das Netzwerkgerät 230 zu konfigurieren. In einigen Ausführungsformen sendet das Steuermodul 242 regelmäßige Status- und Verfügbarkeitsbenachrichtigungen an die Netzwerkvorrichtungen 230. Bei einigen Implementierungen generiert der SDN-Controller 220 Weiterleitungstabellen und veröffentlicht die Weiterleitungstabellen auf einem oder mehreren Netzwerkgeräten 230.
  • Das Netzwerkgerät 230 beinhaltet ein Steuerungsmodul 244 und Speicher 236. Das Steuerungsmodul 244 des Netzwerkgeräts empfängt Konfigurations- und Routinginformationen vom Steuerungsmodul 242 des SDN-Controllers (über die Steuerungsverbindung 112) und aktualisiert die im Speicher 236 abgelegten Daten.
  • Das Netzwerkgerät 230 beinhaltet eine Menge von Netzwerkschnittstellen 238. Jede Netzwerkschnittstelle 238 kann mit einem Datennetzwerk verbunden sein. Beispielsweise kann das Netzwerkgerät 230 Datenpakete für das erste Netzwerk über eine erste Netzwerkschnittstelle erhalten (z. B. Netzwerkschnittstelle 238a). Das Netzwerkgerät 230 gibt die empfangenen Datenpakete über eine weitere Schnittstelle (z. B. Netzwerkschnittstelle 238b) an einen geeigneten Next-Hop weiter. Bei einigen Implementierungen bestimmt die Weiterleitungs-Engine 234, welche Netzwerkschnittstelle 238 für ein empfangenes Datenpaket jeweils verwendet werden soll. Bei einigen Implementierungen verwendet die Weiterleitungs- Engine 234 eine im Speicher 236 gespeicherte Weiterleitungstabelle, um zu bestimmen, welche Netzwerkschnittstelle 238 verwendet werden soll.
  • Die Weiterleitungs-Engine 234 verwendet im Speicher 236 abgelegte Konfigurations- und Routingdaten, um den Datenverkehr an den Netzwerkschnittstellen-Ports 238 zu verwalten. Die Konfigurations- und Routingdaten im Speicher 236 werden durch die SDN-Steuerung 220 über das Steuermodul 244 gesteuert. Bei einigen Implementierungen aktualisiert die Weiterleitungs-Engine 234 Paket-Header, bevor sie die Pakete an einen Netzwerkschnittstellen-Ausgangsanschluss 238 weiterleitet. Beispielsweise kann die Weiterleitungs-Engine 234 die ECN (Explicit Congestion Notification), den Hop-Zähler (TTL) oder die Prüfsummeninformation in den Paket-Headern aktualisieren.
  • Der Speicher 226 und der Speicher 236 können jeweils ein beliebiges Gerät sein, das dafür geeignet ist, computer-lesbare Daten zu speichern. Beispiele hierfür sind u.a. Halbleiterspeichergeräte, wie z.B. EPROM, EEPROM, SRAM und Flash-Speichergeräte. Bei einigen Implementierungen handelt es sich bei dem Speicher 236 um TCAM (Ternary Content-Addressable Memory). Bei einigen Implementierungen beinhaltet der Speicher 236 eines Netzwerkgeräts 230 Speicher, der speziell dafür vorgesehen ist, Paketdatenströme zu puffern, während sie das Netzwerkgerät 230 durchlaufen. Eine Netzwerkvorrichtung 230 kann jede Anzahl von Speichervorrichtungen 236 aufweisen. Ein SDN-Controller 220 kann beliebig viele Speichergeräte 246 haben.
  • Die 3A, 3B und 3C zeigen Beispiele für Weiterleitungstabellen, die von einem Netzwerkgerät verwendet werden können, um einen Ausgangsanschluss für ein Paket zu identifizieren.
  • 3A zeigt eine vereinfachte Weiterleitungstabelle 310. Jeder Routing-Eintrag in der Tabelle 310 gibt ein Übereinstimmungsmuster 316 und eine Weiterleitungsanweisung 318 an. Das Übereinstimmungsmuster 316, z. B. „Muster A“, wird von Paketen erfüllt, die unter Verwendung der entsprechenden Weiterleitungsanweisung 318 verarbeitet werden sollen, z. B. „Weiterleiten entlang von Pfad A“. In einigen Fällen stimmt das Übereinstimmungsmuster 316 mit allen Paketen überein, die an ein bestimmtes Netzwerk oder autonomes System gerichtet sind. Beispielsweise kann das Übereinstimmungsmuster 316 mit einem Teil der Zieladresse eines Pakets übereinstimmen, und die entsprechende Weiterleitungsanweisung 318 kann einen Ausgangsanschluss von dem Netzwerkgerät zu einem Next-hop-Netzwerkgerät entlang eines Netzwerkpfads zu allen Netzwerkadressen identifizieren, die mit dem Muster 316 übereinstimmen. In einigen Fällen stimmt das Übereinstimmungsmuster 316 nur mit Paketen aus einem bestimmten Datenstrom überein. Jeder Routing-Eintrag in der Weiterleitungstabelle 310 ist mit einem Index 312 gezeigt, der den Routing-Eintrag eindeutig identifiziert. Bei einigen Implementierungen hat die Weiterleitungstabelle keinen spezifischen Index 312.
  • 3B zeigt eine Multipath-Routingtabelle 330 mit Indizes 332, Übereinstimmungsmustern 336 und Weiterleitungsanweisungen 338. Die Multipath- Routingtabelle 330 enthält eine Multipath-Menge 342 mit Routing-Einträgen mit demselben Muster 336, „Muster A“, aber unterschiedlichen Weiterleitungsanweisungen 338: Weiterleitung entlang „Pfad A“, „Pfad B“ bzw. „Pfad C“. Außerdem werden eine zusätzliche Multipath-Menge 344 und ein Nicht-Multipath-Routingeintrag 348 gezeigt. Dieselbe Weiterleitungstabelle 330 kann sowohl für Multipath-Routingeinträge als auch für Singlepath- Routingeinträge verwendet werden.
  • ECMP-Routing (Equal-Cost Multi-Path) behandelt Pfade zu einem Ziel allgemein als äquivalent. Ein Netzwerk-Switch kann Verkehr durch einen der verschiedenen äquivalenten Pfade weiterleiten, um dasselbe Ziel zu erreichen. Bei einigen Implementierungen von ECMP verteilt das Netzwerkgerät Verkehr an das Ziel über mehrere Pfade, wenn es mehrere Routing- Einträge in der Weiterleitungstabelle 330 für dasselbe Ziel gibt. Es gibt mehrere Möglichkeiten, wie der Verkehr verteilt werden kann. Beispielsweise kann das Netzwerkgerät einfach die Routing-Einträge durchlaufen, sodass jedes Paket einen anderen Pfad nimmt. Bei einigen Implementierungen ist jedem neuen Datenstrom, der durch das Netzwerkgerät verläuft, ein bestimmter Pfad zugeordnet. Dieser Ansatz verteilt direkte Datenströme über die verschiedenen Pfadoptionen, während die verschiedenen Pakete eines einzigen Datenstroms über denselben Pfad übertragen werden. Bei einigen Implementierungen ist ein Teil der Header-Information für jedes Paket gehasht, und die am wenigsten signifikanten Bits des Hash-Ergebnisses werden verwendet, um einen Routing-Eintrag für das Paket zu identifizieren, z. B. nach dem Index 332. Die Teile der Header-Information werden so ausgewählt, dass Pakete desselben Datenstroms denselben Hash-Wert erzeugen. Bei einigen Implementierungen werden beispielsweise die Header-Bits, die eine Zieladresse und einen Protokolltyp darstellen, gehasht. Die in 3B gezeigte Multipath-Weiterleitungstabelle 330 beinhaltet eine Multipath-Menge 344 mit zwei Pfaden für ein Übereinstimmungsmuster 336 „Muster B“. Als vereinfachtes Beispiel für die Verteilung von Datenströmen über die Pfade in der Menge 344 können Paket-Header für Datenströme, die mit Muster B übereinstimmen, gehasht werden. Wenn der Hash-Wert in diesem Beispiel gerade ist, wird der Routing-Eintrag mit Index „1344“ für Muster B verwendet, um Pakete entlang Pfad D zu übertragen, und wenn der Hash- Wert ungerade ist, wird der Routing-Eintrag mit Index „1345“ für Muster B verwendet, um Pakete entlang Pfad E zu übertragen.
  • Außerdem ist es möglich, einige Routingpfade gegenüber anderen zu bevorzugen, indem ein WCMP-Routing (Weighted-Cost Multi-Path) verwendet wird. Eine Möglichkeit, WCMP zu implementieren, ist die Eingabe zusätzlicher Routing-Einträge in eine Multipath- Menge mit demselben Pfad. Beispielsweise könnte Pfad D die doppelte Bandbreite im Vergleich zu Pfad E haben und sollte deshalb doppelt so oft verwendet werden. Die Multipath- Menge 344 könnte um einen zusätzlichen Eintrag (nicht gezeigt) erweitert werden, der das Übereinstimmungsmuster 336 und die Weiterleitungsanweisung 338 für Pfad D (Eintragsindex „1344“) wiederholt. Der Netzwerkverkehr wird dann über die drei Routing-Einträge verteilt, was zu doppelt so viel Verkehr wie für die Verwendung von Pfad D im Vergleich zu Pfad E führt. Diese WCMP-Menge (Weighted-Cost Multi-Path) kann als „{Dx 2, Ex 1}“ oder einfach „{2, 11}“ dargestellt werden. Die erweiterte Darstellung von Multipath-Mengen in einer Weiterleitungstabelle kann jedoch einen maßgeblichen Teil des Speichers verbrauchen, der für die Weiterleitungstabelle reserviert ist.
  • 3C zeigt eine Multipath-Routingtabelle 350 mit gewichteten Routing-Einträgen. Die Multipath-Routingtabelle 350 ist mit Indizes 352, Übereinstimmungsmustern 356 und Weiterleitungsanweisungen 358 gezeigt. Die Multipath-Routingtabelle 350 enthält eine Multipath-Menge 362 mit Routing-Einträgen mit demselben Muster 356, „Muster A“, aber drei möglichen Weiterleitungsanweisungen 358: Leite entlang „Pfad A“ für eine Untermenge 364, entlang „Pfad B“ für eine Untermenge 366 und entlang „Pfad C“ für eine Untermenge 368 weiter. Ebenfalls gezeigt sind eine zusätzliche Multipath-Menge 374 und ein Nicht-Multipath-Routingeintrag 376; diese entsprechen den Mengen 344 bzw. 348, wie in 3B gezeigt. Weiterhin in Bezug auf 3C kann dieselbe Weiterleitungstabelle 350 sowohl für Multipath-Routingeinträge als auch für Singlepath-Routingeinträge verwendet werden.
  • Die 3B und 3C zeigen, dass minimale Änderungen der Pfadgewichtung einen dramatischen Einfluss auf die Weiterleitungstabelle haben können. Die Multipath-Menge 342 in 3B entspricht drei Pfaden, A, B und C (z. B. in Bezug auf 1 den drei Pfaden 144, 146 und 148). Jeder der Pfade hat das Gewicht 1/3 = 0,333, sodass sie alle gleich sind. Die Multipath-Menge 362 in 3C entspricht denselben drei Pfaden, A, B und C, aber mit einem etwas reduzierten Gewicht für den dritten Pfad, Pfad C. Die Änderung bewirkt, dass Pfad C ein Drittel weniger Verkehr verarbeitet als Pfad A und Pfad B. In der Multipath-Weiterleitungstabelle 350, die in 3C gezeigt ist, gibt es drei Routing-Einträge 364 für Pfad A und drei Routing-Einträge 366 für Pfad B, aber nur zwei Routing-Einträge 368 für Pfad. Das bedeutet, Pfad A und Pfad B haben die Gewichte 3/8 = 0,375, während Pfad C ein Gewicht von 2/8 = 0,250 hat. Die Multipath-Menge 362 verwendet jedoch acht Einträge {3, 3, 2} in der Multipath-Tabelle 350, während die Multipath-Menge 342 nur drei Einträge {1, 1, 1} in der Weiterleitungstabelle 330 verwendete.
  • 4 ist ein Ablaufdiagramm für Verfahren 400 mit einer präfix-orientierten WCMP-Gruppenreduzierung; Das Verfahren 400 beginnt mit einem Routen-Manager, der eine oder mehrere Multipath-Mengen identifiziert, die jeweils eine minimale Anzahl an Routing-Einträgen in einer Weiterleitungstabelle überschreiten, z. B. Mengen, die drei oder mehr Routing-Einträge haben (Phase 410). Für jede der identifizierten Multipath-Mengen erhält der Routen-Manager eine Bewertung, die dem Gewicht des über die Multipath-Menge übertragenen Netzwerkverkehrs entspricht (Phase 420). Der Routen-Manager erzeugt dann basierend auf den erhaltenen Bewertungen eine oder mehrere potenzielle Ersatzmengen für jede identifizierte Multipath-Menge (Phase 430). Der Routen-Manager vergleicht die möglichen Ersatzmengen (Phase 440) und wählt eine oder mehrere potenzielle Ersatzmengen aus, die einem Reduzierungsziel für einen Tabelleneintrag und einem Netzwerkleistungskritierium entsprechen (Phase 450). Der Routen-Manager ersetzt dann in der Weiterleitungstabelle die Routing-Einträge für eine oder mehrere Multipath-Mengen durch Routing-Einträge für die entsprechenden ausgewählten Ersatzmengen (460). In Bezug auf 2 ist in einigen Implementierungen der Routen-Manager ein SDN-Controller 220 oder ein Teil davon.
  • In Bezug auf 4 beginnt das Verfahren 400 im Detail mit einem Routen-Manager, der eine oder mehrere Multipath-Mengen identifiziert, die eine minimale Anzahl an Routing-Einträgen in einer Weiterleitungstabelle überschreiten (Phase 410). Ist beispielsweise die Mindestanzahl an Routing-Einträgen 5, dann werden nur Mengen mit sechs oder mehr Einträgen für die Reduzierung in Betracht gezogen. Ist die Mindestanzahl an Routing-Einträgen 2, werden nur Mengen mit drei oder mehr Einträgen für die Reduzierung in Betracht gezogen. Der Routen-Manager identifiziert Multipath-Mengen in einer Weiterleitungstabelle mit dem Ziel, die Anzahl der Einträge in der Tabelle zu reduzieren, die von den identifizierten Multipath-Mengen verwendet werden. Bei einigen Implementierungen wird das Verfahren 400 in regelmäßigen Intervallen ausgeführt. Bei einigen Implementierungen wird das Verfahren 400 ausgeführt, wenn die Weiterleitungstabelle mit mehr als einer Schwellenanzahl an Einträgen gefüllt ist. Bei einigen Implementierungen wird das Verfahren 400 von einem Administrator veranlasst.
  • Für jede der identifizierten Multipath-Mengen erhält der Routen-Manager eine Bewertung, die dem Gewicht des über die Multipath-Menge übertragenen Netzwerkverkehrs entspricht (Phase 420). Bei einigen Implementierungen ist diese Bewertung Teil der Kostenmetrik für die Verkehrsreduzierung. Bei einigen Implementierungen verwaltet der Routen-Manager eine Bewertung (eine „Gewichtungsbewertung“) basierend auf den Typen der übertragenen Pakete. Bei einigen Implementierungen werden Datenströme, die bestimmte Protokolle verwenden, als gewichtiger als andere Datenströme betrachtet. Beispielsweise werden bei einigen Implementierungen Netzwerkübertragungen, die ein statusbehaftetes Transportschicht-Protokoll verwenden, als gewichtiger erachtet als Übertragungen, die statuslose Transportschicht-Protokolle verwenden. Beispiele für ein statusbehaftetes Transportschicht-Protokoll sind TCP (Transmission Control Protocol), DCCP (Datagram Congestion Control Protocol) und SCTP (Stream Control Transmission Protocol), jedoch nicht darauf begrenzt. Ein Beispiel für ein statusloses Transportschicht-Protokoll ist UDP (User Datagram Protocol). Bei einigen Implementierungen wird ein Datenstrom, der eine Größenbeschränkung überschreitet, als gewichtiger als andere Netzwerkübertragungen betrachtet. Bei einigen Implementierungen werden die Quell- und/oder Zielnetzwerkadresse (oder das Netzwerkadresspräfix) verwendet, um zu erkennen, ob Netzwerkverkehr wichtig ist. Bei einigen Implementierungen werden Netzwerkpaketadressen, die an eine bestimmte Netzwerkadresse gerichtet sind, oder an einen Netzwerkadressbereich, als gewichtiger (oder weniger gewichtiger) erachtet als andere Netzwerkübertragungen. Bei einigen Implementierungen ist die Gewichtungsbewertung eine laufende Bewertung, die das Gewicht des während eines Zeitintervalls übertragenen Netzwerkverkehrs misst. Bei einigen Implementierungen beeinflusst die Datenmenge, die über einen Multipath-Menge übertragen wird, die Gewichtungsbewertung. Bei einigen Implementierungen ist die Gewichtungsbewertung ein Boolescher Wert, der angibt, ob die Daten wichtig oder nicht wichtig sind. Bei einigen Implementierungen ist die Gewichtungsbewertung ein numerischer Wert.
  • Der Routen-Manager erzeugt dann basierend auf den erhaltenen Bewertungen eine oder mehrere potenzielle Ersatzmengen für jede identifizierte Multipath-Menge (Phase 430). Wenn bei einigen Implementierungen eine Multipath-Menge eine vergleichsweise niedrige Gewichtungsbewertung aufweist, oder wenn die Bewertung darauf hinweist, dass die Multipath-Menge nicht gewichtig ist, verwendet der Routen-Manager das in 5 gezeigte Verfahren 500, um eine minimale Menge verschiedener Routing-Einträge für die unwichtige Multipath-Menge auszuwählen. Bei einigen Implementierungen wird für eine WCMP-Menge (Weighted-Cost Multi-Path) eine potenzielle Ersatzmenge generiert, indem die WCMP-Menge in eine ECMP-Menge (Equal-Cost Multi-Path) umgewandelt wird. Beispielsweise kann eine WCMP-Menge {4, 4, 2, 1} abgeflacht werden auf {1, 1, 1, 1}. Bei einigen Implementierungen werden für eine WCMP-Menge ein oder mehrere niedriger gewichtete Pfade aus der Menge entfernt. Beispielsweise kann eine WCMP-Menge {4, 4, 2, 1} abgeflacht umgewandelt werden in {4, 4, 2}, was aufgelöst wird zu {2, 2, 1}. Dies kann wiederholt werden, um z. B. {2, 2, 1} weiter zu {1, 1} zu reduzieren. Bei einigen Implementierungen wird die WCMP-Menge modifiziert, indem sowohl ein oder mehrere Pfade entfernt werden, als auch, indem die restlichen Pfade in eine ECMP-Menge abgeflacht werden, wobei jeder Pfad in der Menge nur einmal vertreten ist. Beispielsweise kann eine WCMP-Menge {4, 4, 2, 1} reduziert werden zu {1, 1, 1}.
  • Der Routen-Manager vergleicht die möglichen Ersatzmengen (Phase 440) und wählt ein oder mehrere potenzielle Ersatzmengen aus, die ein Reduzierungsziel für die Tabelleneinträge und ein Netzwerkleistungskriterium (Phase 450) erfüllen. Jede potenzielle Ersatzmenge reduziert, wenn sie anstelle einer entsprechenden Multipath-Menge verwendet wird, die Anzahl der verwendeten Einträge in der Weiterleitungstabelle Jede potenzielle Ersatzmenge stellt, wenn sie anstelle einer entsprechenden Multipath-Menge verwendet wird, auch den Netzwerkverkehr unter Verwendung der Multipath-Menge mit der reduzierten Netzwerkleistung bereit. Wird beispielsweise aus einer Multipath-Menge ein Pfad entfernt, verliert der Verkehr den Zugriff auf die Bandbreite, die der entfernte Pfad beigetragen hat. Dieser Verlust kann durch andere Faktoren aufgewogen werden. Die potenzielle Änderung der Netzwerkleistung wird als Kostenmetrik für die Verkehrsreduzierung gemessen.
  • Bei einigen Implementierungen wird die potenzielle Änderung der Netzwerkleistung nach der in Phase 420 erhaltenen Gewichtungsbewertung gewichtet. Das bedeutet, es kann für Verkehr mit geringem oder mittlerem Gewicht akzeptabler sein, eine bestimmte Änderung der Netzwerkleistung zu tolerieren, und weniger akzeptabel für Verkehr mit hohem Gewicht, dieselbe spezielle Änderung der Netzwerkleistung zu tolerieren.
  • Die Vergleiche in Phase 440 können ein oder mehrere der folgenden Dinge umfassen: Vergleich von mindestens zwei Ersatzmengen von Routing-Einträgen, die derselben Multipath-Gruppe entsprechen; Vergleich von Ersatzmengen von Routing-Einträgen, die mindestens zwei verschiedenen Multipath-Gruppen entsprechen; und Vergleich von mindestens zwei Aggregationen von mehreren Ersatzmengen mit Routing-Einträgen, die jeweils mehreren Multipath-Gruppen entsprechen.
  • Bei einigen Implementierungen vergleicht der Routen-Manager die Möglichkeiten und wählt (Phase 450) eine oder mehrere potenzielle Ersatzmengen aus, sodass mindestens eine Zielanzahl von Routing-Einträgen in der Weiterleitungstabelle mit einem akzeptabel geringem Einfluss auf die Netzwerkleistung entfernt wird. Bei einigen Implementierungen verwendet der Routen-Manager eine Kombination von Ersetzungen über mehrere Multipath-Mengen, um das Reduzierungsziel für die Tabelle zu erreichen. Bei einigen Implementierungen berechnet der Routen-Manager den möglichen Bandbreitenverlust, der sich aus der Verwendung von ein oder mehreren der potenziellen Ersatzmengen ergibt, und verwendet die Ergebnisse dieser Berechnungen, um zu bestimmen, welche der potenziellen Ersatzmengen in Phase 450 auszuwählen sind. Bei einigen Implementierungen berichtet der Routen-Manager den erwarteten Bandbreitenverlust, der einer oder mehreren der ausgewählten Ersatzmengen zuzuordnen ist, einem Netzwerkmonitor.
  • Als veranschaulichendes Beispiel in Bezug auf 1 und 3C sind die gezeigten Pfade 144, 146 und 148 durch die Zwischennetzwerke 130 eine Multipath-Menge. Sie werden in einer Multipath-Weiterleitungstabelle 350 als Multipath-Menge 362 dargestellt, z. B. {3, 3, 2}. Pfad A 144 und Pfad B 146 verwenden ein erstes Grenz-Gerät 124, während Pfad C 148 ein zweites Grenz-Gerät 126 verwendet. Die beiden Grenzgeräte 124 und 126 könnten mit unterschiedlichen Zwischennetzwerken 130 verbunden sein, oder andere Implementierungscharakteristiken haben, die bewirken, dass Pfad C 148 mit einer geringeren Kapazität arbeitet als Pfad A oder Pfad B. Die Multipath-Menge {3, 3, 2} verwendet acht Einträge in der Multipath-Weiterleitungstabelle 350. Bei einigen Implementierungen kann das Verfahren 400 {1, 1} als potenzielle Ersatzmenge für {3, 3, 2} generieren, indem der dritte Pfad weggelassen wird, d. h. Pfad D. Diese potenzielle Ersatzmenge würde nur zwei Einträge in der Multipath-Weiterleitungstabelle verwenden, sodass sich 6 Tabelleneinträge weniger ergeben. Der Wegfall von Pfad C führt jedoch auch zu einem Verlust der Netzwerkkapazität, die durch Pfad C beigetragen wurde. Insbesondere hat Pfad C zwei von acht Routingoptionen (25 %) beigetragen, die nach dem Entfernen von Pfad C aus der Multipath-Menge nicht mehr zur Verfügung stehen. Bei einigen Implementierungen ist die Multipath-Menge einem Wert für eine Gewichtungsmetrik zugeordnet, die dem über die betreffende Multipath-Menge übertragen Verkehr entspricht. Bei einigen Implementierungen ist beispielsweise der Wert für die Gewichtungsmetrik die Gewichtungsbewertung aus Phase 420. Bei einigen Implementierungen ist jeder potenziellen Ersatzmenge eine Einflussbewertung zugeordnet, die gleich dem Wert für die Gewichtungsmetrik ist, multipliziert mit dem Prozentsatz der entfernten Routing-Optionen. Wird das Beispiel mit der Reduzierung von {3, 3, 2} auf {1, 1} mit der Annahme fortgesetzt, dass der Verkehr, der über die Multipath-Menge übertragen wird, einen Gewichtungswert von X hat, wäre die Einflussbewertung X mal 0,25. Bei einigen Implementierungen wird diese Gewichtungsbewertung verglichen mit den Bewertungen für einige (oder alle) mögliche Reduzierungen von Multipath-Gruppen in der Weiterleitungstabelle, und anschließend wird der Gruppenersatz (oder eine Kombination aus Gruppenersätzen) mit der niedrigsten Einflussbewertung ausgewählt.
  • Als Beispielszenario könnte es drei WCMP-Mengen geben, dargestellt als die Gruppen G1, G2 und G3, die jeweils Netzwerkdatenströme übertragen, die mit einem von vier Mustern P1, P2, P3 und P4 übereinstimmen. Der Netzwerkverkehr für jedes Muster wird dann einer entsprechenden Gewichtungsbewertung zugeordnet: Cpl = 32, Cp2 = 3, Cp3 = 3, Cp4 = 8. Datenströme, die mit Muster P1 übereinstimmen, verwenden die Netzwerkrouten von Multipath-Menge G1 {2, 2, 2, 2, 1, 1}; Datenströme, die mit den Mustern P2 oder P3 übereinstimmen, verwenden die Netzwerkrouten der Multipath-Menge G2, {3, 3, 2, 2}; und Datenströme, die mit Muster P4 übereinstimmen, verwenden die Netzwerkrouten der Multipath-Menge G4, {3, 3, 3, 1}. Dieses Beispielszenario ist nachfolgend in Tabelle 1 gezeigt. Zwei Beispiele für die Reduzierung dieser WCMP-Mengen (G1, G2 und G3) sind nachfolgend in den Tabellen 2 und 3 gezeigt. In Tabelle 2 ist das Ziel, mindestens fünf Einträge in einer Weiterleitungstabelle freizugeben. In Tabelle 3 ist das Ziel, mindestens zwölf Einträge in einer Weiterleitungstabelle freizugeben. TABELLE 1: WCMP-Mengen für Reduzierungsbeispiele
    WCMP-Menge Muster für den zugeordneten Verkehr Anzahl der verwendeten Einträge Gewichtungsbewertung für den Verkehr
    G1: {2, 2, 2, 2, 1, 1} P1 10 32
    {3, 3, 2, 2} P2 & P3 10 3 + 3 = 6
    {3, 3, 3, 1} P4 10 8
  • Die nachfolgend gezeigte Tabelle 2 zeigt einige der Reduzierungsoptionen für ein Beispiel, bei dem das Ziel ist, mindestens 5 Einträge in einer Weiterleitungstabelle freizugeben. Die Multipath-Menge G1, {2, 2, 2, 2, 1, 1}, könnte durch Menge {1, 1, 1, 1} ersetzt werden, die eine Menge darstellt, die die beiden am niedrigsten gewichteten Pfade weglässt und die restlichen Pfade als gleich behandelt. Das Ergebnis ist, sechs Einträge aus der Weiterleitungstabelle freizugeben, wobei nur zwei der zehn Routingoptionen verlorengehen. Der Kapazitätsverlust von 20 Prozent wird durch das Gewicht des Verkehrs bewertet (d. h. die Summe der Gewichtungsbewertungen für Netzwerkdatenströme, die mit den Mustern übereinstimmen, die verwendet werden, um Verkehr in die Multipath-Gruppe zu leiten), um eine gewichtete Bewertung für den Reduzierungseinfluss von 6,4 zu generieren. Die Multipath-Menge G2, {3, 3, 2, 2}, könnte durch Menge {1, 1, 1, 1} ersetzt werden, die alle Pfade beibehält und sie als gleich behandelt. Das Ergebnis ist, sechs Einträge aus der Weiterleitungstabelle freizugeben, wobei nur zwanzig Prozent der zehn Routingoptionen verlorengehen. Der Kapazitätsverlust von zwanzig Prozent wird gewichtet durch das Gewicht des Übereinstimmungsmusters P2 für den Verkehr und des Übereinstimmungsmusters P3 für den Verkehr, um eine gewichtete Bewertung für den Reduzierungseinfluss von 1,2 zu generieren. Die Multipath-Menge G3, {3, 3, 3, 1}, könnte durch Menge {1, 1, 1} ersetzt werden, die eine Menge darstellt, die den am niedrigsten gewichteten Pfad weglässt und die restlichen Pfade als gleich behandelt. Das Ergebnis ist, sieben Einträge aus der Weiterleitungstabelle freizugeben, wobei nur zehn Prozent der Routingoptionen verlorengehen. Die gewichtete Bewertung für den Reduzierungseinfluss beträgt 0,8, was die niedrigste Einflussbewertung der drei Optionen ist. Aus diesem Grund würde die dritte Option der drei Optionen ausgewählt. TABELLE 2: WCMP-Reduzierungsbeispiel 1
    WCMP-Menge Potenzielle Ersatzmenge Anzahl der freigegebenen Einträge Verlorene Netzwerkkapazität Gewichtungsbewertung für den Verkehr Gewichtete Bewertung für den Reduzierungseinfluss
    G1: {2, 2, 2, 2, 1, 1} {1, 1, 1, 1} 6 20 % 32 32 × 20 % = 6,4
    G2: {3, 3, 2, 2} {1, 1, 1, 1} 6 20 % 6 6 × 20 % = 1,2
    G3: {3, 3, 3, 1} {1, 1, 1} 7 10 % 8 8 × 10 % = 0,8
  • Die nachfolgend gezeigte Tabelle 3 zeigt einige der Reduzierungsoptionen für ein Beispiel, wobei das Ziel ist, mindestens zwölf Einträge in einer Weiterleitungstabelle freizugeben. Die Multipath-Menge G1, {2, 2, 2, 2, 1, 1}, könnte durch die Menge {1, 1, 1, 1} ersetzt werden, wie in Beispiel 1, oder durch noch kleinere Multipath-Mengen {1, 1, 1}, {1, 1} oder {1}, die jeweils eine Menge darstellen, die zusätzliche Pfade weglässt. Keine dieser Optionen für sich allein gibt jedoch zwölf Einträge in der Weiterleitungstabelle frei. Dasselbe gilt für die Ersatzoptionen für Multipath-Mengen G2, {3, 3, 2, 2}, und für die Multipath-Menge G3, {3, 3, 3, 1}. Eine Kombination der beiden Optionen mit den niedrigsten Einflussbewertungen jedoch gibt dreizehn Einträge in der Weiterleitungstabelle frei, womit das Ziel erreicht ist. Wenn es in einigen Implementierungen keine einzelne Option gibt, die die Anzahl der in der Weiterleitungstabelle verwendeten Einträge auf die Zielanzahl reduziert, unterteilt ein Routen-Manager die Zielanzahl in zwei oder mehr partielle Ziele, deren Summe gleich dem Originalziel ist. Beispielsweise kann ein Ziel, zwölf Einträge aus der Weiterleitungstabelle zu entfernen, erreicht werden, indem sechs Einträge entfernt werden, und indem anschließend versucht wird, weitere sechs Einträge zu entfernen. Das bedeutet, das Ziel (12) wird in die Ziele (6, 6) unterteilt. Bei einigen Implementierungen werden mehrere mögliche Unterteilungen versucht, z. B. (6, 6), (7, 5), (8, 4), (4, 4, 4), (5, 4, 3) usw. In dem in Tabelle 3 gezeigten Beispiel würde die Suche nach einer Ersatzmenge, um sechs Einträge freizugeben, zu der Auswahl von {1, 1, 1} führen, um G3 zu ersetzen, und eine weitere Suche nach einer Ersatzmenge, um weitere sechs Einträge freizugeben, würde zur Auswahl von {1, 1, 1, 1} führen, um G2 zu ersetzen. Diese Kombination aus Ersatzmengen führt zu einer Reduzierung von dreizehn Einträgen aus der Weiterleitungstabelle, womit das ursprüngliche Ziel erfüllt wird, zwölf Einträge freizugeben. TABELLE 3: WCMP-Reduzierungsbeispiel 2
    WCMP-Menge Potenzielle Anzahl Verlorene Gewichtung Gewichtete
    Ersatzmenge der freigegebe nen Einträge Netzwerkka pazität sbewertung für den Verkehr Bewertung für den Reduzierungs einfluss
    G1: {2, 2, 2, 2, 1, 1} {1, 1, 1, 1} 6 20 % 32 6,4
    G1: {2, 2, 2, 2, 1, 1} {1, 1, 1} 7 40 % 32 12,8
    G1: {2, 2, 2, 2, 1, 1} {1, 1} 8 60 % 32 19,2
    G1: {2, 2, 2, 2, 1, 1} {1} 9 80 % 32 25,6
    G2: {3, 3, 2, 2} {1, 1, 1, 1} 6 20 % 6 1,2
    G2: {3, 3, 2, 2} {1, 1, 1} 7 40 % 6 2,4
    G2: {3, 3, 2, 2} {1, 1} 8 40 % 6 2,4
    G2: {3, 3, 2, 2} {1} 9 70 % 6 4,2
    G3: {3, 3, 3, 1} {1, 1, 1} 7 10 % 8 0,8
    G3: {3, 3, 3, 1} {1, 1} 8 40 % 8 3,2
    G3: {3, 3, 3, 1} {1} 9 70 % 8 5,6
  • Bei einigen Implementierungen wird ein umfangreicher Vergleich über alle möglichen Ersatzmengen durchgeführt, oder über alle möglichen Ersatzmengen innerhalb einer Menge einschränkender Parameter. Bei einigen Implementierungen ist der umfangreiche Vergleich auf eine Untermenge möglicher Ersatzmengen begrenzt, die als Kandidaten-Ersatzmengen generiert werden. Beispielsweise werden bei einigen Implementierungen Optionen für Multipath-Ersatzmengen nur für WCMP-Mengen generiert, die verwendet werden, um Verkehr mit einer Gewichtungsbewertung unterhalb eines Schwellenwert zu transportieren. Bei einigen solcher Implementierungen wird der Schwellenwert inkrementell erhöht, bis eine durchführbare Option identifiziert ist. Bei einigen Implementierungen beinhaltet der umfassende Vergleich den Vergleich potenzieller Kombinationen aus Ersatzmengen. Beispielsweise wurde in dem in Tabelle 3 dargestellten Beispiel eine Kombination aus Ersatzmengen verwendet.
  • In Bezug auf 4 ersetzt der Routen-Manager dann in der Weiterleitungstabelle die Routing-Einträge für eine oder mehrere Multipath-Mengen durch Routing-Einträge für die entsprechenden ausgewählten Ersatzmengen (460). Bei einigen Implementierungen erzeugt der Routen-Manager eine neue Weiterleitungstabelle mit den ausgewählten Ersatz-Multipath-Mengen und lässt die entsprechenden ersetzten Mengen weg.
  • 5 ist ein Ablaufdiagramm für ein Verfahren 500 für eine WCMP-Gruppenreduzierung für Multipath-Mengen, die nicht verwendet werden, um wichtigen Netzwerkverkehr zu übertragen. Ähnlich zu Verfahren 400 beginnt das Verfahren 500 mit einem Routen-Manager, der eine Multipath-Menge identifiziert, die eine minimale Anzahl an Routing-Einträgen in einer Weiterleitungstabelle überschreitet (Phase 510). Der Routen-Manager stellt fest, ob die identifizierte Multipath-Menge nicht verwendet wird, um wichtigen Netzwerkverkehr zu transportieren (Phase 520), und wählt eine Mindestmenge verschiedener Routing-Einträge für die Multipath-Menge aus (Phase 530). Der Routen-Manager entfernt alle anderen Routing-Einträge für die Multipath-Menge aus der Weiterleitungstabelle, bei denen es sich nicht um die ausgewählten Einträge handelt (Phase 540).
  • In Bezug auf 5 detaillierter beschrieben, beginnt das Verfahren 500 mit einem Routen-Manager, der eine Multipath-Menge identifiziert, die mehr als eine Mindestanzahl an Routing-Einträgen in der Weiterleitungstabelle hat (Phase 510), und feststellt, ob die identifizierte Multipath-Menge nicht verwendet wird, um wichtigen Netzwerkverkehr zu transportieren (Phase 520). Dies ist ein Sonderfall der Phasen 410 und 420, wie in 4 gezeigt, wobei eine Multipath-Menge mit mehr als einer Mindestanzahl an (z. B. 2) Routing-Einträgen in der Weiterleitungstabelle identifiziert wird, entweder keinen Verkehr oder Verkehr mit wenig Gewicht zu transportieren.
  • Weiterhin in Bezug auf 5 gilt im Detail, dass der Routen-Manager eine Mindestmenge verschiedener Routingeinträge für die Multipath-Menge auswählt (Phase 530). Bei einigen Implementierungen entspricht eine Mindestmenge zwei Routen. Bei einigen Implementierungen wird eine größere Mindestmenge verwendet. Der Routen-Manager wählt Routen-Einträge aus, die nicht identischen Pfaden entsprechen, sodass die resultierende Ersatz-Multipath-Menge eine Pfaddiversität besitzt. Bei einigen Implementierungen wählt der Routen-Manager die höchstgewichteten nicht identischen Pfade für die Aufnahme in die Mindestmenge aus. Bei einigen Implementierungen berechnet der Routen-Manager den potenziellen Bandbreitenverlust, der entstehen würde, wenn die verschiedenen Routing-Einträge entfernt oder ersetzt würden, und wählt Routing-Einträge aus, die einem akzeptablen Niveau einer Bandbreitenreduzierung zugeordnet sind. Bei einigen solcher Implementierungen minimiert die Auswahl den Bandbreitenverlust. Bei einigen Implementierungen berichtet der Routen-Manager den erwarteten Bandbreitenverlust, der einer oder mehreren der ausgewählten Ersatzmengen zuzuordnen ist, einem Netzwerkmonitor. Bei einigen Implementierungen wählt der Routen-Manager die nicht identischen Pfade zufällig oder nach einem anderen Auswahlkriterium aus. Bei einigen Implementierungen ist die Auswahl in Phase 530 ähnlich der Auswahl, die in Bezug auf Phase 450 für das in 4 gezeigte Verfahren beschrieben ist.
  • Weiterhin in Bezug auf 5 aktualisiert der Routen-Manager die Weiterleitungstabelle, um die Multipath-Routenmenge durch die ausgewählte Mindestmenge verschiedener Routen zu ersetzen (Phase 540). Der Routen-Manager entfernt alle anderen Routing-Einträge für die Multipath-Menge aus der Weiterleitungstabelle, bei denen es sich nicht um die ausgewählten Einträge handelt.
  • 6 ist ein Blockdiagramm eines Rechensystems 910, das geeignet für die Verwendung bei der Implementierungen der hier beschriebenen Rechenkomponenten ist. Ganz allgemein beinhaltet das Rechensystem 910 mindestens einen Prozessor 950 für die Ausführung von Operationen in Übereinstimmung mit Anweisungen, und ein oder mehrere Speichergeräte 970 und/oder 975 für das Speichern von Anweisungen und Daten. Das gezeigte Beispiel-Rechensystem 910 enthält ein oder mehrere Prozessoren 950, die über einen Bus 915 mit dem Speicher 970 kommunizieren, und mit mindestens einem Netzwerkschnittstelle-Controller 920 mit einer Netzwerkschnittstelle 922 für den Anschluss an externe Netzwerkgeräte 924, die z. B. zu einem Netzwerk gehören (wie beispielsweise den Netzwerken 110, 130 und 150 in 1 gezeigt). Der eine oder die mehreren Prozessoren 950 kommunizieren auch über den Bus 915 mit beliebigen I/O-Geräten an ein oder mehreren I/O-Schnittstellen 930 und allen anderen Geräten 980. Der gezeigte Prozessor 950 beinhaltet Cache-Speicher 975 oder ist direkt damit verbunden. Allgemein führt ein Prozessor Anweisungen aus, die vom Speicher empfangen wurden.
  • Im Detail gilt, dass der Prozessor 950 jede Logikschaltung sein kann, die Anweisungen verarbeitet, z. B. Anweisungen, die aus dem Speicher 970 oder dem Cache 975 abgerufen werden. In vielen Ausführungsformen ist der Prozessor 950 eine Mikroprozessoreinheit oder ein spezieller Prozessor. Das Rechengerät 910 kann auf einem beliebigen Prozessor oder einer beliebigen Prozessormenge basieren, die in der Lage sind, wie hier beschrieben zu arbeiten. Bei dem Prozessor 950 kann es sich um einen Prozessor mit einem oder mit mehreren Kernen handeln. Bei dem Prozessor 950 kann es sich um mehrere Prozessoren handeln.
  • Der Speicher 970 kann ein beliebiges Gerät sein, das dafür geeignet ist, computer-lesbare Daten zu speichern. Der Speicher 970 kann ein Gerät mit festem Speicher oder ein Gerät zum Lesen von Wechselspeichermedien sein. Beispiele beinhalten alle Formen von nicht-flüchtigen Speichern, Medien und Speichervorrichtungen, Halbleiterspeichervorrichtungen (z. B. EPROM, EEPROM und Flash-Speichergeräten), Magnetplatten, magnetoptische Platten und optische Platten (z. B. CD-ROM-, DVD-ROM- und Blu-Ray®-Disks). Ein Rechensystem 910 kann beliebig viele Speichergeräte 970 haben.
  • Der Cache-Speicher 975 ist im Allgemeinen eine Form Computerspeicher, der in enger Nähe zum Prozessor 950 angeordnet ist, um schnelle Lesezeiten zu erzielen. Bei einigen Implementierungen ist der Cache-Speicher 975 Teil des Prozessors 950 oder befindet sich auf demselben Chip. Bei einigen Implementierungen gibt es mehrere Ebenen des Cache 975, z. B. die Cache-Ebenen L2 und L3.
  • Der Netzwerkschnittstellen-Controller 920 verwaltet den Datenaustausch über die Netzwerkschnittstelle 922. Der Netzwerkschnittstellen-Controller 920 verwaltet die Bitübertragungs- und Sicherungsschicht des OSI-Modells für die Netzwerkkommunikation. Bei einigen Implementierungen wird ein Teil der Aufgaben des Netzwerkschnittstellen-Controllers vom Prozessor 950 übernommen. Bei einigen Implementierungen ist der Netzwerkschnittstellen-Controller 920 Teil des Prozessors 950. Bei einigen Implementierungen hat ein Rechensystem 910 mehrere Netzwerkschnittstellen-Controller 920. Bei einigen Implementierungen ist die Netzwerkschnittstelle 922 ein Verbindungspunkt für eine physische Netzwerkverbindung, z. B. ein RJ 45-Steckverbinder. Bei einigen Implementierungen unterstützt der Netzwerkschnittstelle-Controller 920 Funknetzwerkverbindungen, und ein Schnittstellenanschluss 922 ist ein Funkempfänger/-sender. Allgemein tauscht ein Rechengerät 910 Daten mit anderen Rechengeräten 924 über physische oder Funkverbindungen mit einer Netzwerkschnittstelle 922 aus. Bei einigen Implementierungen implementiert der Netzwerkschnittstellen-Controller 920 ein Netzwerkprotokoll, wie beispielsweise Ethernet.
  • Die anderen Rechengeräte 924 sind über einen Netzwerkschnittstellenanschluss 922 mit dem Rechengeräte 910 verbunden. Das andere Rechengerät 924 kann ein gleichrangiges Rechengerät sein, ein Netzwerkgerät oder ein anderes Rechengerät mit Netzwerkfunktion. Beispielsweise kann ein Rechengerät 924 ein Netzwerkgerät sein, wie beispielsweise ein Hub, eine Bridge, ein Switch oder ein Router, die das Rechengerät 910 mit einem Datennetzwerk verbinden, wie beispielsweise dem Internet.
  • Bei einigen Verwendungszwecken unterstützt die I/O-Schnittstelle 930 ein Eingabegerät und/oder ein Ausgabegerät (nicht gezeigt). Bei einigen Verwendungszwecken sind das Eingabegerät und das Ausgabegerät in dieselbe Hardware integriert, z. B. in einem Touchscreen. Bei einigen Verwendungszwecken, wie beispielsweise in einem Server-Kontext, gibt es keine I/O-Schnittstelle 930, oder die I/O-Schnittstelle 930 wird nicht verwendet. Bei einigen Verwendungszwecken kommunizieren zusätzliche weitere Komponenten 980 mit dem Computersystem 910, z. B. externen Geräten, die über USB (Universal Serial Bus) verbunden sind.
  • Die anderen Geräte 980 können eine I/O-Schnittstelle 930, externe serielle Geräteanschlüsse und beliebige zusätzliche Co-Prozessoren enthalten. Beispielsweise kann ein Rechensystem 910 eine Schnittstelle (z. B. eine USB-Schnittstelle (Universal Serial Bus)) für den Anschluss von Eingabegeräten (z. B. eine Tastatur, ein Mikrophon, eine Maus oder ein anderes Zeigegerät), Ausgabegeräten (z. B. eine Grafikanzeige, Lautsprecher, ein aktualisierbares Braille-Terminal oder einen Drucker) oder zusätzliche Speichergeräte (z. B. ein tragbares Flash-Laufwerk oder ein externes Datenträgerlaufwerk) enthalten. Bei einigen Implementierungen ist ein I/O-Gerät in das Rechensystem 910 eingebaut, z. B. ein Touchscreen oder ein Tablet. Bei einigen Implementierungen enthält ein Rechengerät 910 ein zusätzliches Gerät 980, wie einen Co-Prozessor, z. B. einen mathematischen Co-Prozessor, der dem Prozessor 950 bei Berechnungen mit hoher Genauigkeit oder bei komplexen Berechnungen unterstützen kann.
  • Implementierungen des Themas und der Operationen, die in dieser Spezifikation beschrieben sind, können in einem digitalen Schaltkreis implementiert werden, oder in Computer-Software auf einem berührbaren Medium, in Firmware oder Hardware, einschließlich der in dieser Spezifikation offenbarten Strukturen und ihren strukturellen Äquivalenten, oder in Kombinationen von einer oder mehreren davon. Implementierungen des in dieser Spezifikation beschriebenen Gegenstandes können als ein oder mehrere Computerprogramme auf einem physischen Medium, d. h. als ein oder mehrere Module von Computerprogrammbefehlen implementiert werden, die auf einem oder mehreren Computerspeichermedien für die Ausführung durch oder die Steuerung des Betriebes eines datenverarbeitenden Apparates kodiert werden. Bei einem Computer-Speichermedium kann es sich um ein maschinell lesbares Speichergerät, einen maschinell lesbaren Speicherträger, ein zufälliges oder serielles Speicher-Array oder Speichergerät oder um eine Kombination aus einem oder mehreren dieser Geräte handeln oder in ihnen enthalten sein. Bei dem Computer-Speichermedium kann es sich auch um eine oder mehrere unterschiedliche physische Komponenten oder Medien (z. B. mehrere CDs, Disks oder andere Speichergeräte) handeln, bzw. kann das Speichermedium darin enthalten sein. Das Computerspeichermedium kann physischer Art und nicht flüchtig sein.
  • Die in dieser Spezifikation beschriebenen Operationen können als Operationen implementiert werden, die von einem Datenverarbeitungsapparat für Daten ausgeführt werden, die auf einem oder mehreren computer-lesbaren Speichergeräten gespeichert sind oder aus anderen Quellen empfangen wurden. Die Prozesse und die logischen Abläufe können auch durch logische Sonderzweckschaltungen durchgeführt werden, und der Apparat kann als Sonderzweckschaltungen implementiert werden, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung).
  • Obwohl diese Spezifikation viele spezifischen Implementierungsdetails enthält, sollten diese nicht als Einschränkung des Umfangs von Erfindungen oder den Ansprüchen betrachtet werden, sondern vielmehr als Beschreibungen von Funktionen, die spezifisch für bestimmte Implementierungen oder bestimmte Erfindungen sind. Bestimmte Eigenschaften, die in dieser Spezifikation im Kontext gesonderter Implementierungen beschrieben sind, können auch in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene, im Kontext einer einzelnen Implementierung beschriebene Merkmale auch in mehreren Implementierungen separat oder in einer beliebigen geeigneten Unterkombination implementiert werden. Außerdem können ein oder mehrere Merkmale einer beanspruchten Kombination in manchen Fällen aus der Kombination herausgelöst werden, auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar als eine Kombination beansprucht werden, und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.
  • Referenzen mit „oder“ können als einschließend konstruiert werden, sodass alle Begriffe, die unter Verwendung von „oder“ beschrieben werden, für einen, mehrere oder alle der beschriebenen Begriffe stehen können. Die Angaben „erstes“, „zweites“, „drittes“ usw. sind nicht unbedingt als Reihenfolge zu verstehen und werden im Allgemeinen nur verwendet, um zwischen ähnlichen oder vergleichbaren Komponenten oder Elementen zu unterscheiden.
  • Somit wurden spezifische Implementierungen des Themas beschrieben. Diese und andere Ausführungsformen fallen in den Umfang der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen beschriebenen Handlungen in einer anderen Reihenfolge ausgeführt werden und dennoch erwünschte Ergebnisse erzielen. Zusätzlich erfordern die in den beigefügten Figuren dargestellten Prozesse nicht notwendigerweise die bestimmte gezeigte Reihenfolge oder aufeinanderfolgende Reihenfolge, um erwünschte Ergebnisse zu erzielen. In bestimmten Implementierungen kann eine Multitasking- oder Parallelverarbeitung verwendet werden.

Claims (10)

  1. Ein System, umfassend: einen Paket-Switch mit einer Weiterleitungstabelle; und einen Routen-Manager für den Paket-Switch, wobei der Routen-Manager konfiguriert ist für: Identifizieren einer Vielzahl von Multipath-Gruppen, die jeweils einer jeweiligen Anfangsmenge an Routing-Einträgen in der Weiterleitungstabelle entspricht; Generieren für eine oder mehrere Multipath-Gruppen in der Vielzahl an Multipath-Gruppen in einer Weiterleitungstabelle eines Paket-Switch von mindestens einer Ersatzmenge von Routing-Einträgen mit weniger Routing-Einträgen als die ursprüngliche Anzahl an Routing-Einträgen, die der jeweiligen Multipath-Gruppe entsprechen; eine auf Kostenmetrik zur Verkehrsreduzierung basierende Auswahl von ein oder mehreren der Ersatzmengen der Routing-Einträge, wobei jede ausgewählte Ersatzmenge einer anderen jeweiligen Multipath-Gruppe in der Vielzahl an Multipath-Gruppen entspricht; und Austausch der anfänglichen Menge an Routing-Einträgen für jede Multipath-Gruppe, die einer ausgewählten Austauschmenge der Routing-Einträge in der Weiterleitungstabelle des Paket-Switch entspricht, durch die jeweils entsprechende Ersatzmenge an Routing-Einträgen.
  2. System nach Anspruch 1, worin die Verkehrsreduzierungs-Kostenmetrik eine erste Verkehrscharakteristik beinhaltet; und wobei der Routen-Manager konfiguriert ist für die auf der Verkehrsreduzierungs-Kostenmetrik basierenden Auswahl einer Ersatzmenge an Routing-Einträgen, die einer Multipath-Gruppe entsprechen, die die erste Verkehrscharakteristik hat, durch die Auswahl einer Ersatzmenge von Routing-Einträgen mit weniger als einer maximalen Anzahl an Routing-Einträgen, wobei jeder Routing-Eintrag in der Ersatzmenge einem anderen Netzwerkpfad entspricht.
  3. System nach Anspruch 2, worin die Ersatzmenge der Routing-Einträge mit weniger als der maximalen Anzahl an Routing-Einträgen genau zwei Routing-Einträge hat.
  4. System nach Anspruch 2, worin die Multipath-Gruppe mit der ersten Netzwerkverkehr-Charakteristik keine Netzwerkpakete an die Multipath-Gruppe überträgt, bei denen es sich um eines oder mehrere handelt von: Netzwerkpakete unter Verwendung eines statusbehafteten Transportschicht-Protokolls, Netzwerkpakete für einen Datenstrom, der eine Größenbegrenzung überschreitet, und Netzwerkpakete, die an einen bestimmten Netzwerkadressbereich adressiert sind.
  5. System nach Anspruch 1, worin der Prozessor weiterhin konfiguriert ist für: Vergleich eines ersten Werts einer Verkehrsreduzierungs-Kostenmetrik für eine erste generierte Ersatzmenge von Routing-Einträgen, die einer ersten Multipath-Gruppe entsprechen, mit einem zweiten Wert einer Verkehrsreduzierungs-Kostenmetrik für eine zweite generierte Ersatzmenge von Routing-Einträgen, die der ersten Multipath-Gruppe entsprechen; und Auswahl der ersten generierten Ersatzmenge von Routing-Einträgen basierend auf dem Vergleich.
  6. System nach Anspruch 1, worin der Prozessor weiterhin konfiguriert ist für: Vergleich eines ersten Werts einer Verkehrsreduzierungs-Kostenmetrik für eine erste generierte Ersatzmenge von Routing-Einträgen, die einer ersten Multipath-Gruppe entsprechen, mit einem zweiten Wert einer Verkehrsreduzierungs-Kostenmetrik für eine zweite generierte Ersatzmenge von Routing-Einträgen, die der ersten Multipath-Gruppe entsprechen; und Auswahl der zweiten generierten Ersatzmenge von Routing-Einträgen basierend auf dem Vergleich.
  7. System nach Anspruch 1, worin der Prozessor weiterhin konfiguriert ist für: Vergleich eines ersten Werts einer Verkehrsreduzierungs-Kostenmetrik für eine Vielzahl generierter Ersatzmengen von Routing-Einträgen, die jeweils einer ersten Vielzahl von Multipath-Gruppen entsprechen, mit einem zweiten Wert einer Verkehrsreduzierungs-Kostenmetrik für eine zweite Vielzahl generierter Ersatzmengen von Routing-Einträgen, die jeweils der ersten Multipath-Gruppe entsprechen; und Auswahl der ersten generierten Ersatzmengen von Routing-Einträgen basierend auf dem Vergleich.
  8. System nach Anspruch 1, worin der Routen-Manager konfiguriert ist für den Ersatz der anfänglichen Menge an Routing-Einträgen durch die Ersatzmenge an Routing-Einträgen, der die Anzahl der Routing-Einträge in der Weiterleitungstabelle um mindestens eine vordefinierte Anzahl reduziert.
  9. System nach Anspruch 1, worin die Verkehrsreduzierungs-Kostenmetrik eine Netzwerk-Bandbreitenmetrik enthält, gewichtet nach einer Bewertung, die dem Verkehr entspricht, der die Multipath-Gruppe durchläuft.
  10. System nach Anspruch 1, worin der Paket-Switch ein Teil eines SDN (Software-Defined Network) ist, und wobei der Routen-Manager Teil eines SDN-Controllers ist, und der SDN-Controller konfiguriert ist für den Ersatz der anfänglichen Menge der Routing-Einträge in der Weiterleitungstabelle des Paket-Switch durch die Ersatzmenge der Routing-Einträge, indem er Anweisungen an einen Paket-Switch überträgt.
DE202015009259.4U 2014-05-12 2015-04-03 Präfix-orientierte reduzierung von multipath-gruppen nach gewichteten kosten Active DE202015009259U1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461991969P 2014-05-12 2014-05-12
US61/991,969 2014-05-12
US14/643,712 2015-03-10
US14/643,712 US9736067B2 (en) 2014-05-12 2015-03-10 Prefix-aware weighted cost multi-path group reduction

Publications (1)

Publication Number Publication Date
DE202015009259U1 true DE202015009259U1 (de) 2017-01-19

Family

ID=54368811

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202015009259.4U Active DE202015009259U1 (de) 2014-05-12 2015-04-03 Präfix-orientierte reduzierung von multipath-gruppen nach gewichteten kosten

Country Status (9)

Country Link
US (1) US9736067B2 (de)
EP (1) EP3143734B1 (de)
JP (1) JP6383805B2 (de)
KR (1) KR101922536B1 (de)
CN (1) CN106664250B (de)
DE (1) DE202015009259U1 (de)
DK (1) DK3143734T3 (de)
SG (1) SG11201609475QA (de)
WO (1) WO2015175110A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9565114B1 (en) 2014-03-08 2017-02-07 Google Inc. Weighted load balancing using scaled parallel hashing
US9832105B2 (en) * 2014-06-04 2017-11-28 Console Connect Inc. Method and apparatus for identifying different routing paths between networks
TWI542172B (zh) * 2014-09-22 2016-07-11 財團法人工業技術研究院 路徑更換方法與系統及其控制器
US10924381B2 (en) * 2015-02-19 2021-02-16 Arista Networks, Inc. System and method of processing in-place adjacency updates
US10003519B2 (en) * 2015-11-13 2018-06-19 Nanning Fugui Precision Industrial Co., Ltd. Data delivery method based on software defined networking and software defined networking controller using the method
US10313197B1 (en) * 2016-03-09 2019-06-04 Senseware, Inc. System, method and apparatus for controlled entry of a sensor network node into a discovery state
US10015096B1 (en) * 2016-06-20 2018-07-03 Amazon Technologies, Inc. Congestion avoidance in multipath routed flows
US10027571B2 (en) * 2016-07-28 2018-07-17 Hewlett Packard Enterprise Development Lp Load balancing
US10069734B1 (en) 2016-08-09 2018-09-04 Amazon Technologies, Inc. Congestion avoidance in multipath routed flows using virtual output queue statistics
US10116567B1 (en) 2016-08-11 2018-10-30 Amazon Technologies, Inc. Load balancing for multipath group routed flows by re-routing the congested route
US10097467B1 (en) * 2016-08-11 2018-10-09 Amazon Technologies, Inc. Load balancing for multipath groups routed flows by re-associating routes to multipath groups
US10009275B1 (en) 2016-11-15 2018-06-26 Amazon Technologies, Inc. Uniform route distribution for a forwarding table
US10084687B1 (en) * 2016-11-17 2018-09-25 Barefoot Networks, Inc. Weighted-cost multi-pathing using range lookups
US10397097B2 (en) * 2017-01-18 2019-08-27 Futurewei Technologies, Inc. Weighted next hop selection at a router using an equal cost multipath process
CN108259334A (zh) 2017-01-25 2018-07-06 新华三技术有限公司 一种等价路由表项建立方法和装置
CN108881035B (zh) * 2018-09-13 2020-11-06 杭州迪普科技股份有限公司 一种报文转发方法和装置
KR102553167B1 (ko) * 2018-10-19 2023-07-06 주식회사 케이티 다중 경로 전송 시스템, 그리고 이의 다중 경로 전송 방법
US11178046B2 (en) * 2019-11-27 2021-11-16 Google Llc Weighted bandwidth allocation for adaptive routing
US11095552B1 (en) * 2020-01-31 2021-08-17 Avago Technologies International Sales Pte. Limited Weighted cost multipath packet processing
US11425030B2 (en) * 2020-10-08 2022-08-23 Cisco Technology, Inc. Equal cost multi-path (ECMP) failover within an automated system (AS)
CN113194030B (zh) * 2021-05-06 2021-12-24 中国人民解放军国防科技大学 一种基于网络前缀切分的多路径报文转发方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594261B1 (en) * 1999-12-22 2003-07-15 Aztech Partners, Inc. Adaptive fault-tolerant switching network with random initial routing and random routing around faults
US7366100B2 (en) * 2002-06-04 2008-04-29 Lucent Technologies Inc. Method and apparatus for multipath processing
GB0230330D0 (en) * 2002-12-31 2003-02-05 British Telecomm Communications routing
US7453883B1 (en) * 2003-04-14 2008-11-18 Cisco Technology, Inc. Method for compressing route data in a router
US7701858B2 (en) 2003-07-17 2010-04-20 Sensicast Systems Method and apparatus for wireless communication in a mesh network
JP2005057487A (ja) * 2003-08-04 2005-03-03 Nippon Telegr & Teleph Corp <Ntt> 複数経路を選択する経路制御装置、経路選択方法およびそのプログラムと記録媒体
DE102004003547B3 (de) * 2004-01-23 2005-06-30 Siemens Ag Hinsichtlich der Netzauslastung optimiertes Shortest Path Routing
JP4388464B2 (ja) 2004-12-07 2009-12-24 株式会社日立製作所 パケット中継装置およびパケット通信ネットワーク
US20060133282A1 (en) * 2004-12-21 2006-06-22 Nortel Networks Limited Systems and methods for multipath routing
US20070147255A1 (en) * 2005-12-23 2007-06-28 Ozgur Oyman Routing in wireless mesh networks
US8208463B2 (en) * 2006-10-24 2012-06-26 Cisco Technology, Inc. Subnet scoped multicast / broadcast packet distribution mechanism over a routed network
US7898959B1 (en) 2007-06-28 2011-03-01 Marvell Israel (Misl) Ltd. Method for weighted load-balancing among network interfaces
US8014278B1 (en) * 2007-12-17 2011-09-06 Force 10 Networks, Inc Adaptive load balancing between ECMP or LAG port group members
US20110164527A1 (en) * 2008-04-04 2011-07-07 Mishra Rajesh K Enhanced wireless ad hoc communication techniques
US8160063B2 (en) * 2008-06-09 2012-04-17 Microsoft Corporation Data center interconnect and traffic engineering
JP5044537B2 (ja) * 2008-12-15 2012-10-10 株式会社日立製作所 トランスポート制御サーバ、ネットワークシステム及び集約パス決定方法
US8036126B2 (en) 2009-02-17 2011-10-11 At&T Intellectual Property Llp System and method for compressing internet protocol routing tables
US20130114619A1 (en) * 2010-07-29 2013-05-09 Shaun K Wakumoto Device and method for egress packet forwarding using mesh tagging
WO2012109377A1 (en) * 2011-02-09 2012-08-16 Citrix Systems, Inc. Systems and methods for ntier cache redirection
US8693341B2 (en) * 2011-06-10 2014-04-08 Force10 Networks, Inc. Method and apparatus for optimizing data traffic path through a stacked switch LAG configuration
US9071541B2 (en) * 2012-04-25 2015-06-30 Juniper Networks, Inc. Path weighted equal-cost multipath
US8972602B2 (en) 2012-06-15 2015-03-03 Citrix Systems, Inc. Systems and methods for using ECMP routes for traffic distribution
KR102069501B1 (ko) * 2012-10-19 2020-01-23 한국전자통신연구원 에너지 사용 효율을 향상할 수 있는 멀티패스 통신장치 및 이의 에너지 사용 효율 향상을 위한 트래픽 분배방법
CN103051985B (zh) * 2013-01-06 2015-08-12 中兴通讯股份有限公司 一种以太网光纤通道路由转发数据的方法及其设备
US8964752B2 (en) * 2013-02-25 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Method and system for flow table lookup parallelization in a software defined networking (SDN) system
CN105122743A (zh) 2013-03-06 2015-12-02 日本电气株式会社 通信系统、交换机、控制装置、分组处理方法和程序
US9065721B2 (en) * 2013-03-15 2015-06-23 Dell Products L.P. Dynamic network load rebalancing
CN104144120A (zh) * 2013-05-07 2014-11-12 杭州华三通信技术有限公司 转发信息配置方法及装置
CN105745886B (zh) * 2013-09-23 2019-06-04 迈克菲有限公司 在两个实体之间提供快速路径
US9467384B2 (en) * 2013-12-05 2016-10-11 Mediatek Singapore Pte. Ltd. Packet forwarding apparatus and method using flow subgroup based path selection for dynamic load balancing
US9246821B1 (en) * 2014-01-28 2016-01-26 Google Inc. Systems and methods for implementing weighted cost multi-path using two-level equal cost multi-path tables
US9391896B2 (en) * 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9485115B2 (en) * 2014-04-23 2016-11-01 Cisco Technology, Inc. System and method for enabling conversational learning in a network environment

Also Published As

Publication number Publication date
US9736067B2 (en) 2017-08-15
US20150326476A1 (en) 2015-11-12
KR101922536B1 (ko) 2018-11-27
WO2015175110A1 (en) 2015-11-19
CN106664250B (zh) 2020-08-14
JP6383805B2 (ja) 2018-08-29
CN106664250A (zh) 2017-05-10
DK3143734T3 (en) 2018-10-08
JP2017516387A (ja) 2017-06-15
SG11201609475QA (en) 2016-12-29
EP3143734A1 (de) 2017-03-22
KR20160142884A (ko) 2016-12-13
EP3143734B1 (de) 2018-06-20

Similar Documents

Publication Publication Date Title
DE202015009259U1 (de) Präfix-orientierte reduzierung von multipath-gruppen nach gewichteten kosten
DE102015102871B4 (de) Technologien für verteilten Leitweglenkungstabellennachschlag
DE112020002493T5 (de) Fat-tree adaptive leitweglenkung
DE60016977T2 (de) Verfahren und system zur datenübertragung über einen optimierten datenpfad in einem netzwerk
DE112013001426B4 (de) Dynamische Optimierung einer Multicast-Baumhierarchie für einen verteilten Switch
DE60312355T2 (de) Dynamisches peer tunneling mit leistungsoptimierung
DE112011100339B4 (de) System zum Gegensteuern bei Netzwerk-Datenüberlastungen
DE112012006642B4 (de) Bandbreitengarantie und Arbeitskonservierung
DE112013005059B4 (de) Mehrweg-Kommunikationsvorrichtung, die eine Energienutzungseffizienz verbessern kann, und Verkehrsverteilungsverfahren zum Verbessern einer Energienutzungseffizienz davon
EP1588531B1 (de) Verfahren zur anpassung der link-gewichte im hinblick auf eine optimierte verkehrsverteilung
DE112013004976T5 (de) Adaptive Präfixdelegierung
DE112016002952T5 (de) Systeme und Verfahren zum Verarbeiten von Paketen in einem Computernetz
DE202014010912U1 (de) Konsistentes Hashing anhand genauer Übereinstimmung mit Anwendung für Hardware-Lastausgleich
DE102015101583A1 (de) Reduzierung der Grösse von IPV6-Routertabellen unter Verwendung eines Bypasstunnels
DE102020120554A1 (de) Gruppenbasierte Politik Multicast-Weiterleitung
DE112017006045B4 (de) Übertragungsvorrichtung und verfahren zum hinzufügen einer route
EP2775677B1 (de) Verfahren zur Übertragung von Datenpaketen in einem Datennetz aus einer Vielzahl von Netzknoten
DE60220747T2 (de) Verfahren zur Übertragungswegeauswahl und Kommunikationssnetz dafür
DE102016211189B4 (de) Weiterleitungsvorrichtung
DE102005003260B4 (de) Iteratives Routing-Verfahren mit pfadabhängiger Routing-Metrik
DE60024686T2 (de) Verfahren und vorrichtung zum übertragen von datenpaketen auf einem netzwerk
DE112017003386B4 (de) Kommunikationssystem und Kommunikationsverfahren
DE102021108581A1 (de) Nicht isolierte topologien in computernetzwerkumgebungen
DE102019218061A1 (de) Weiterleitungsgerät
DE112018002716B4 (de) Virtuelles Kanalrouting

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: MAIKOWSKI & NINNEMANN PATENTANWAELTE PARTNERSC, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012701000

Ipc: H04L0045000000

R152 Utility model maintained after payment of third maintenance fee after eight years