-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung.
-
Diese Erfindung betrifft eine Übertragung digitaler Informationen über Paketvermittlungsnetzwerke. Genauer genommen bezieht sich diese Erfindung auf das Überlastungsmanagement in Paketvermittlungsnetzwerken.
-
Beschreibung des verwandten Technik.
-
Die Bedeutungen bestimmter Akronyme und Abkürzungen, die hier verwendet werden, sind in Tabelle 1 aufgeführt.
Tabelle 1 - Akronyme und Abkürzungen
ASIC | Anwendungsspezifischer integrierter Schaltkreis |
BTH | Basis- Transport-Header |
CNP | Überlastungsbenachrichtigungspaket |
DC | Dynamisch verbunden |
DIP | Ziel-IP-Adresse |
DSCP | Differenzierter Services Code Punkt |
ECN | Explizite Überlastungs-Benachrichtigung |
FPGA | feldprogrammierbares Gate Array |
HCA | Host-Kanal-Adapter |
IETF | Internet Engineering Task Force |
IP | Internet-Protokoll |
IPv4 | Internet-Protokoll Version 4 |
IPv6 | Internet-Protokoll Version 6 |
LAN | Lokales Flächen-Netzwerk |
MAC | Medienzugriffssteuerunq |
NIC | Netzwerk-Schnittstellen-Controller |
QoS | Dienstqualität |
QP | Warteschlangen-Paar |
RCM | RoCEV2 Überlastunqsmanaqement |
RD | Geeignetes Dataqramm |
RDMA | Remote-Direktspeicherzugriff |
RoCE | RDMA über konverqiertes Ethernet |
RoCEV2 | Eine Erweiterung des RoCE-Protokolls |
RTT | Rundlaufzeit |
SIP | Quellen-IP-Adresse |
UD | Unqeeiqnetes Datagramm |
VXLAN | VXLAN Virtuell erweiterbares LAN |
WRED | gewichtete Zufalls-Früherkennunq |
-
RDMA ist ein direkter Speicherzugriff von einem Speicher eines Computers auf den Speicher eines Anderen ohne Beteiligung des Betriebssystems von einem der beiden. Ein gemeinsames Netzwerk-RDMA-Protokoll ist RDMA über konvergiertes Ethernet (RoCE). RoCEV2 ist eine Erweiterung des RoCE-Protokolls. Seine Spezifikation findet sich in dem Dokument, Supplement to InfiniBandTM Architecture Specification, Volume 1, Release 1.2.1, Annex A17 (RoCEV2), das hier durch Verweis mit aufgenommen ist.
-
Gegenwärtige Hochleistungsanwendungen tragen zu einer unvorhersehbaren explosionsartigen Zunahme des Verkehrs in den Netzwerken der Datenzentren bei, der zu Netzwerküberlastung führt und die Netzwerk- und Anwendungsleistung verschlechtert. Aktuelle Überlastungssteuerungsprotokolle zeigen Verkehrsquellen an, die zur Überlastung des Netzwerks beitragen. Mit Hilfe der Anzeige reduzieren die Verkehrsquellen die Einspeiserate des Verkehrs. Die Leistung des Überlastungssteuerungsmechanismus hängt von mehreren Faktoren ab, z. B. von der Benachrichtigungsverzögerung und der Genauigkeit der Benachrichtigung.
-
RoCEv2 Überlastungsmanagement (RCM) ermöglicht die Vermeidung von Überlastungs-Hotspots und optimiert den Durchsatz des Netzes. Mit RCM wird eine beginnende Überlastung in dem Netz schließlich an die Verkehrsquellen zurückgemeldet, die ihrerseits mit einer Drosselung ihrer Einspeiseraten reagieren und so die negativen Auswirkungen einer Netzpuffersättigung und erhöhter Wartezeiten in den Warteschlangen verhindern. Die konventionelle RoCEV2-Überlastungssteuerung stützt sich auf die explizite Überlastungsbenachrichtigung (ECN), bei der ein Switch bzw. eine Vermittlungsstelle das Paket kennzeichnet, und auf ein Überlastungsbenachrichtigungspaket (CNP), das von dem Zielknoten des Pakets an den Quellenknoten des Pakets gesendet wird. Allgemein bekannt offenbart die US-Patentanmeldung mit der Veröffentlichungsnummer 2013/0135999 von Bloch et al., die hier durch Verweis mit aufgenommen ist, ein solches Überlastungsmanagement, das in InfiniBand-Netzwerken von Knoten, die Host-Kanaladapter verwenden, implementiert wird.
-
KURZFASSUNG DER ERFINDUNG
-
Die Erfindung wird durch die Ansprüche definiert. Um die Erfindung zu veranschaulichen, werden hier Aspekte und Ausführungsformen beschrieben, die in den Anwendungsbereich der Ansprüche fallen können oder auch nicht.
-
Die hier offengelegte Erfindung stellt ein Überlastungssteuerungsprotokoll mit einer besseren Leistung als bei bekannten Konkurrenten dar. Um die Benachrichtigungsverzögerung zu reduzieren, erzeugt der überlastete Switch bzw. Vermittlungsstelle ein CNP und sendet dieses durch das Netz zum Paketquellenknoten. Die Motivation besteht darin, die Überlastungsschleife der Überlastungssteuerung zu verkürzen, indem ein danach folgendes Segment zwischen dem überlasteten der Vermittlungsstelle und dem Paketzielknoten vermieden wird. Eine bessere Überlastungsleistung des Überlastungssteuerungsalgorithmus führt zu besseren Ergebnissen. Die Verkürzung der Überlastungs-Steuerungsschleife ist umso vorteilhafter, je größer der Abstand zwischen den Knoten wird, z.B. bei Langstrecken-RoCE, bei denen die RTT sehr lang ist. In Ausführungsformen der Erfindung wird der Zielpaketknoten nicht in die Steuerungsschleife einbezogen. Vielmehr wird das CNP von einem Zwischenknoten an den Paketausgangsknoten gesendet. Die Anwendung der erfindungsgemäßen Prinzipien ist besonders wirksam, wenn Überlastungen in Edge-Routern von Datenzentren und in Spine-Switches bzw. Vermittlungsstellen eines Rückgrats eines Netzes auftreten, da die Steuerungsschleife in diesen Fällen maximal verkürzt wird.
-
Gemäß den Ausführungsformen der Erfindung ist ein Kommunikationsverfahren vorgesehen, das durch ein Senden von Paketen über ein Netzwerk von einer Quellen-Netzwerkschnittstelle zu einer Ziel-Netzwerkschnittstelle, ein Empfangen eines der Pakete in einer Zwischenvermittlungsstelle des Netzwerks, ein Bestimmen, dass die Zwischenvermittlungsstelle eine Netzwerküberlastung erfährt, ein Erzeugen eines Überlastungsbenachrichtigungspakets für das empfangene Paket in der Zwischenvermittlungsstelle und ein Übertragen des Überlastungsbenachrichtigungspakets von der Zwischenvermittlungsstelle zu der Quellen-Netzwerkschnittstelle über das Netzwerk, ausgeführt wird. Das Verfahren wird ferner in Reaktion auf das Überlastungsbenachrichtigungspaket ausgeführt, indem eine Paketübertragungsrate zu der Ziel-Netzwerkschnittstelle von der Quellen-Netzwerkschnittstelle modifiziert und das empfangene Paket von der Zwischenvermittlungsstelle zu der Ziel-Netzwerkschnittstelle weitergeleitet wird.
-
Ein Aspekt des Verfahrens beinhaltet vor der Weiterleitung des empfangenen Pakets die Markierung des empfangenen Pakets als ungeeignet, um andere Zwischenvermittlungsstellen des Netzwerkes zu veranlassen, neue Überlastungsbenachrichtigungspakete zu erzeugen und zu übertragen.
-
Nach einem weiteren Aspekt des Verfahrens ist das empfangene Paket RoCEV2-konform.
-
Nach einem weiteren Aspekt des Verfahrens ist das empfangene Paket ein Tunnelpaket.
-
Nach noch einem weiteren Aspekt des Verfahrens werden ein Senden und Empfangen der Pakete unter Verwendung eines Quellen-Warteschlangen-Paares (Quellen-QP) und eines Ziel-Warteschlangen-Paares (Ziel-QP) durchgeführt, wobei ein Erzeugen des Überlastungs-Benachrichtigungspakets ein Erhalten des Quellen-QP beinhaltet, mittels Führen einer Übersetzungstabelle zwischen dem Ziel-QP und dem Quellen-QP in der Zwischenvermittlungsstelle.
-
Nach einem zusätzlichen Aspekt des Verfahrens umfasst eine Erzeugung des Überlastungs-Benachrichtigungspakets ein Berechnen einer Hash-Funktion für eine Zieladresse und die Ziel-QP des empfangenen Pakets.
-
Darüber hinaus wird entsprechend den Ausführungsformen der Erfindung ein Kommunikationssystem bereitgestellt, die eine Quellen-Netzwerkschnittstelle und eine Ziel-Netzwerkschnittstelle umfasst. Die Quellen-Netzwerkschnittstelle ist zum Senden von Paketen über ein Netzwerk in Richtung der Ziel-Netzwerkschnittstelle betreibbar und die Ziel-Netzwerkschnittstelle ist zum Annehmen der Pakete von der Quellen-Netzwerkschnittstelle betreibbar. Die Vorrichtung enthält eine Zwischenvermittlungsstelle in dem Netzwerk, die eines der Pakete empfängt. Die Zwischenvermittlungsstelle ist betreibbar zum Feststellen, dass eine Netzwerküberlastung vorliegt, zum Erzeugen eines Überlastungsbenachrichtigungspakets für das empfangene Paket, zum Übertragen des Überlastungsbenachrichtigungspaket über das Netzwerk an die Quellen-Netzwerkschnittstelle und zum Weiterleiten des empfangenen Pakets an die Ziel-Netzwerkschnittstelle. Die Quellen-Netzwerkschnittstelle ist in der Lage, in Reaktion auf das Überlastungsbenachrichtigungspaket eine Paketübertragungsrate an die Ziel-Netzwerkschnittstelle zu modifizieren.
-
In einer Ausführungsform umfasst das System ferner andere Zwischenvermittlungsschnittstellen im Netzwerk, wobei die Zwischenvermittlungsschnittstelle dazu dient vor der Weiterleitung des empfangenen Pakets das empfangene Paket als unzulässig zu markieren, um die anderen Zwischenvermittlungsschnittstellen des Netzwerks zu veranlassen, neue Überlastungsbenachrichtigungspakete zu erzeugen und zu übertragen.
-
Das empfangene Paket kann RoCEV2-konform sein.
-
Das empfangene Paket kann ein Tunnelpaket sein.
-
Das Senden der Pakete von der Quell-Netzwerkschnittstelle und das Annehmen der Pakete in der Ziel-Netzwerkschnittstelle kann unter Verwendung eines Quell-Warteschlangenpaares (Quell-QP) bzw. eines Ziel-Warteschlangenpaares (Ziel-QP) durchgeführt werden, wobei der Schritt des Erzeugens das Erhalten des Quell-QP durch Führen einer Übersetzungstabelle zwischen dem Ziel-QP und dem Quell-QP in der Zwischenvermittlung umfasst.
-
Das Senden der Pakete von der Quell-Netzwerkschnittstelle und das Akzeptieren der Pakete in der Ziel-Netzwerkschnittstelle kann jeweils unter Verwendung eines Quell-Warteschlangenpaares (Quell-QP) und eines Ziel-Warteschlangenpaares (Ziel-QP) durchgeführt werden, wobei der Schritt des Erzeugens die Berechnung einer Hash-Funktion für eine Zieladresse und den Ziel-QP des empfangenen Pakets umfasst.
-
Das System kann ein Gerät sein.
-
Jedes Merkmal in einem Aspekt oder einer Ausführungsform kann auf andere Aspekte oder Ausführungsformen in jeder geeigneten Kombination angewandt werden. Insbesondere kann jedes Merkmal eines Aspektes oder einer Ausführungsform eines Verfahrens auf einen Aspekt oder eine Ausführungsform einer Vorrichtung angewandt werden und umgekehrt.
-
Figurenliste
-
Zum besseren Verständnis der vorliegenden Erfindung sei beispielhaft auf die ausführliche Beschreibung der Erfindung verwiesen, die in Verbindung mit den folgenden Zeichnungen zu lesen ist, wobei für gleiche Elemente gleiche Bezugszahlen vergeben sind und in denen:
- 1 ein Blockdiagramm ist, das schematisch ein Kommunikationssystem in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
- 2 eine Tabelle ist, die das Format eines herkömmlichen RoCEV2-Paketkopfes veranschaulicht;
- 3 eine Tabelle ist, die das Format eines herkömmlichen CNP-Headers veranschaulicht; [0018] 3 ist eine Tabelle ist, die das Format eines herkömmlichen CNP-Headers veranschaulicht;
- 4 ein Flussdiagramm eines Verfahrens zur Bewältigung von Netzwerkengpässen in Übereinstimmung mit einer Ausführungsform der Erfindung ist;
- 5 ein Diagramm ist, das einen Tunnelpaket-Header zur Verwendung in Übereinstimmung mit einer Ausführungsform der Erfindung veranschaulicht; und
- 6 ein Diagramm ist, das einen Tunnel-CNP-Header zur Verwendung in Übereinstimmung mit einer Ausführungsform der Erfindung zeigt.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der verschiedenen Prinzipien der vor der Erfindung gemachten Angaben zu ermöglichen. Für den Fachmann wird es jedoch offensichtlich sein, dass nicht alle diese Einzelheiten notwendigerweise immer für die Ausübung der vorliegenden Erfindung benötigt werden. In diesem Fall sind bekannte Schaltungen, eine Steuerlogik und die Einzelheiten von Computerprogrammanweisungen für konventionelle Algorithmen und Prozesse nicht im Detail gezeigt worden, um einen Durchblick auf die allgemeinen Konzepte nicht unnötig zu hemmen.
-
Dokumente, die durch Verweis hierin aufgenommen wurden, sind als integraler Bestandteil der Anmeldung zu betrachten, mit der Ausnahme, dass, soweit in diesen aufgenommenen Dokumenten Begriffe in einer Weise definiert sind, die im Widerspruch zu Definitionen steht, die explizit oder implizit in der vorliegenden Spezifikation gemacht werden, nur die Definitionen in der vorliegenden Spezifikation berücksichtigt werden sollten.
-
Systembeschreibung
-
1 ist ein Blockdiagramm, das ein Kommunikationssystem 20 in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung schematisch veranschaulicht. In dem vorliegenden Beispiel weist das System 20 ein System wie z.B. ein InfiniBand (IB)-System auf, in dem zwei Host-Kanaladapter, ein Quellen-HCA 24 und ein Ziel-HCA 25, über ein IB-Netzwerk 32 kommunizieren. In alternativen Ausführungsformen kann das System 20 jeden anderen geeigneten Netzwerktyp umfassen, in dem Netzwerk-Schnittstellengeräte, z.B. Netzwerk-Schnittstellen-Controller (NICs), miteinander kommunizieren. Jeder HCA ist mit einem entsprechenden Host 28, z.B. einem Computer verbunden. Die Abbildung zeigt der Übersichtlichkeit halber nur zwei HCAs. Real existierende Systeme können jedoch eine große Anzahl von Hosts und HCAs umfassen. Jeder HCA besteht aus einer Paketverarbeitungsschaltkreis 36, die Kommunikationspakete sendet und empfängt, um zwischen den Hosts 28 zu kommunizieren. Ein Schaltkreis 36 besteht aus einem oder mehreren Warteschlangen-Paaren (QPs) 40. Jedes QP besteht aus einer Sende- und einer Empfangswarteschlange (nicht abgebildet). In einem bestimmten QP reiht die Sende-Warteschlange Pakete ein, die zur Übertragung vom HCA zum Netzwerk 32 anstehen, und die Empfangs-Warteschlange reiht Pakete ein, die vom Netzwerk empfangen wurden und zur Dekodierung in dem HCA anstehen. Im vorliegenden Kontext wird jedes Warteschlangen-Paar als eine Art Transportdienstinstanz betrachtet, die zum Senden und Empfangen von Paketen über das Netzwerk verwendet wird. In alternativen Ausführungsformen können auch andere geeignete Arten von Transportdienstinstanzen verwendet werden.
-
Jeder HCA umfasst eine Überlastungssteuerungseinheit 44, die Maßnahmen zur Minderung der Überlastung durch Pakete in dem Netzwerk 32 ergreift. Eine Überlastungssteuerungseinheit 44 umfasst eine Ansammlung von Ratenbegrenzern 48 (RL), die die Übertragungsrate von Paketen regulieren. Die von der Überlastungssteuerungseinheit 44 angewandten Überlastungssteuerungsverfahren werden weiter unten ausführlich beschrieben.
-
Das Beispiel in 1 bezieht sich auf die Paketübertragung von HCA 24 zu HCA 25. Diese Bezugnahme erfolgt jedoch nur aus Gründen der Übersichtlichkeit. Typischerweise kann jeder HCA bei einigen Paketen als Quellen-HCA und bei anderen Paketen als Ziel-HCA fungieren. Ein bestimmter HCA kann Pakete an mehrere HCAs senden und Pakete von mehreren HCAs empfangen. Die Ratenbegrenzer 48 sind in der Abbildung aus Gründen der Übersichtlichkeit nur für HCA 24 dargestellt, obwohl HCA 25 normalerweise auch eine Ansammlung von Ratenbegrenzern umfasst.
-
Pakete, die von HCA 24 an HCA 25 gesendet werden, können verschiedene Netzwerkelemente in dem Netzwerk 32 durchlaufen. Im vorliegenden Beispiel durchqueren die Pakete einen bestimmten Pfad in dem Netzwerk, der über eine Vermittlungsstelle 52 verläuft. Die Vermittlungsstelle 52 umfasst mehrere Warteschlangen 56, welche die die Vermittlungsstelle durchlaufenden Pakete in eine Warteschlange einreihen, und die in dem vorliegenden Beispiel stellvertretend als vier Warteschlangen dargestellt sind. In alternativen Ausführungsformen können die Pakete verschiedene Pfade durchlaufen, die jeweils mehrere Netzwerkelemente durchlaufen können.
-
Die HCAs 24, 25, die Vermittlungsstelle 52 und die in 1 gezeigten Systemkonfigurationen sind beispielhafte Konfigurationen, die rein aus Gründen der konzeptionellen Klarheit gewählt wurden. In alternativen Ausführungsformen kann jede andere geeignete HCA-, Netzwerk-Element- und Systemkonfiguration verwendet werden. Bestimmte Elemente der HCAs 24, 25 können durch Hardware implementiert werden, wie z.B. durch die Verwendung einer oder mehrerer anwendungsspezifischer integrierter Schaltkreise (ASICs) oder feldprogrammierbarer Gate-Arrays (FPGAs). Alternativ können einige HCA-Elemente in Software oder unter Verwendung einer Kombination aus Hardware- und Software-Elementen implementiert werden.
-
In einigen Ausführungsformen können bestimmte HCA-Funktionen unter Verwendung eines Allzweck-Rechners implementiert werden, der in einer Software zur Ausführung der hier beschriebenen Funktionen programmiert ist. In einer Beispielausführung können solche Funktionen von einem Prozessor des Host 28 ausgeführt werden. Die Software kann in elektronischer Form, z.B. über ein Netzwerk, auf den Computer heruntergeladen werden, oder sie kann alternativ oder zusätzlich auf nicht vorübergehenden materiellen Medien, wie z.B. magnetischen, optischen oder elektronischen Speichern, bereitgestellt und/oder gespeichert werden.
-
In einigen praktischen Fällen werden bestimmte Komponenten der Netzwerkelemente in dem Netzwerk 32 mit starkem Datenverkehr belastet und können große Verzögerungen oder sogar Paketverluste verursachen. In dem Beispiel von 1 können eine oder mehrere der Warteschlangen 56 in der Vermittlungsstelle 52 mit einer großen Menge von Paketen belastet sein. Solche Szenarien werden hier als Netzwerküberlastung bezeichnet. In Ausführungsformen der unten beschriebenen Erfindung wendet die Vermittlungsstelle 52 ein Überlastungssteuerungsschema an, das die Netzwerküberlastung mildert.
-
Überlastungssteuerungsschema
-
Ein RoCEV2-Paket hat das in
2 gezeigte Format, das ein L2-MAC-Segment
58, ein L3-IP-Segment
60 (IPv4 oder IPv6), ein 2-Bit-ECN-Feld
62 und einen Basis-Transport-Header (BTH)
64 enthält. Die Bedeutung der Bits in dem ECN-Feld
62 ist in Tabelle 2 gemäß der Definition in IETF RFC 3168 angegeben, die hier durch Verweis aufgenommen wurde. Das L3-IP-Segment
60 hat andere Felder (nicht dargestellt), wie z.B. ein DSCP-Feld (Differentiated Services Code Point).
Tabelle 2
ECT-Feld |
00 | Nicht ECT-fähig |
01 | ECT-fähig |
10 | ECT-fähig |
11 | Überlastungen aufgetreten |
-
In konventionellen RoCE-Netzwerken signalisieren die Weichen eine Überlastung, indem sie das ECN-Feld 62 auf den binären Wert 11 setzen. Das Paket setzt dann seine Überführung durch das Netzwerk fort und erreicht einen Zielknoten. Sobald der Zielknoten ein Paket empfängt, dessen ECN-Feld den Binärwert 11 hat, erzeugt er ein CNP, das für den Sender des empfangenen Pakets bestimmt ist. Das CNP hat das in 3 gezeigte Format, einschließlich eines L2-MAC-Segments 66 und eines L3-IP-Segments 68. Die IP-Adressen in dem L3-IP-Segment 68 eines CNPs sind die Swap-Adressen des L3-IP-Segments 60 in dem empfangenen Paket. Die Adressen des L2-MAC-Segments 66 werden nicht vertauscht, sondern bleiben so, wie sie von dem Router definiert sind, der das Paket an den DIP (den ursprünglichen SIP des Pakets) weiterleitet und der auch die Quellen-MAC des Routers ist.
-
In Ausführungsformen der Erfindung erzeugt eine zwischengeschaltete Netz-Vermittlungsstelle, die ein Paket empfängt, das eine Verkehrsüberlastung erfährt, ein Überlastungsbenachrichtigungspaket (CNP). Eine lokale Überlastung an einer Vermittlungsstelle kann mit bekannten Verfahren erkannt werden, z.B. weil ihre Warteschlangen gefüllt sind. Anstatt jedoch die ECN-Felder zu markieren, wird ein CNP generiert. Das CNP wird von der Vermittlungsstelle an den Quellenknoten des empfangenen Pakets gesendet. Wenn der Quellenknoten das CNP empfängt, reduziert er die Verkehrseingaberate des überlastenden Flusses, so als ob das CNP von dem Zielknoten des Pakets erzeugt worden wäre. Der Begriff „Vermittlungsstelle“ bzw. Switch umfasst Netzwerkelemente oder Knoten, die Netzwerkschnittstellen haben, wie z.B. NICs, in denen die Netzwerkelemente die Funktion einer Vermittlungsstelle erfüllen.
-
Die Vermittlungsstelle kann so konfiguriert werden, dass sie jede der folgenden Ausführungsformen erfüllen kann:
- Erste Ausführungsform (Nicht-virtualisierte Netzwerke, die „native Pakete“ verarbeiten)
-
RoCEV2-konforme Vermittlungsstellen sind ECN-fähig, und Vermittlungsstellen zeigen Netzwerküberlastungen an, indem sie das ECN-Feld 62 binär als 11 markieren.
-
Hinsichtlich des CNP sind in dem Format von 3 die Felder (nicht dargestellt außer ECN) in dem L3-IP-Segment 60 wie folgt zugeordnet:
- DIP = ursprüngliches Paket SIP;
- SIP = Router SIP oder ursprüngliches Paket DIP;
- DSCP = dedizierter Wert mit hoher Priorität, um sicherzustellen, dass das CNP den Quellenknoten so schnell wie möglich erreicht;
- ECN = Binär 00 (CNP sind nicht für die ECN-Kennzeichnung geeignet).
-
Ein L2-MAC-Segment 66 ist so aufgebaut, wie es für den normalen Router-Fluss in der Vermittlungsstelle definiert ist. Felder des L3-IP-Segments 68 werden gemäß dem RoCEV2-Standard zugewiesen.
-
Es wird nun auf 4 verwiesen, bei der es sich um ein Flussdiagramm eines Verfahrens des Netzwerk-Überlastungsmanagements in Übereinstimmung mit einer Ausführungsform der Erfindung handelt. Die Prozessschritte sind zur Verdeutlichung der Darstellung in einer bestimmten linearen Abfolge dargestellt. Es wird jedoch deutlich, dass viele von ihnen parallel, asynchron oder in unterschiedlicher Reihenfolge durchgeführt werden können. Diejenigen, die sich auf diesem Gebiet auskennen, werden auch anerkennen, dass ein Prozess alternativ als eine Reihe von zusammenhängenden Zuständen oder Ereignissen dargestellt werden kann, z.B. in einem Zustandsdiagramm. Darüber hinaus sind möglicherweise nicht alle dargestellten Prozessschritte erforderlich, um die Verfahren zu implementieren.
-
In dem Anfangsschritt 70 wird ein RoCEV2-Paket, das im Allgemeinen zu einem Fluss gehört, in einer Netzwerk-Vermittlungsstelle oder einem anderen Netzwerkelement empfangen.
-
Als nächstes wird in dem Entscheidungsschritt 72 bestimmt, ob an der Vermittlungsstelle ein Zustand der Netzwerküberlastung vorliegt. Diese Bestimmung wird durch jedes geeignete, in der Technik bekannte Verfahren der Überlastungsbestimmung vorgenommen. Beispielsweise kann die Vermittlungsstelle ihre internen Warteschlangen überwachen. Wenn die Bestimmung in dem Entscheidungsschritt 72 negativ ist, dann ist das empfangene Paket nicht überlastet. Die Steuerung geht zum letzten Schritt 74 über, wo das nicht überlastete Paket von der Vermittlungsstelle in Übereinstimmung mit seinen Routing-Informationen konventionell weitergeleitet oder verarbeitet wird.
-
Wenn die Bestimmung in dem Entscheidungsschritt 72 positiv ausfällt, fährt die Steuerung mit dem Entscheidungsschritt 76 fort, wo bestimmt wird, ob das empfangene Paket (als „überlastetes Paket“ bezeichnet), um den Schalter zu veranlassen ein CNP zu übertragen.. Mit erneutem Bezug auf 2 und 3, wird festgestellt, ob bestimmte Bedingungen erfüllt sind, bevor ein CNP erzeugt werden kann:
-
- 1) Das überlastete Paket ist RoCEV2-konform. Die RoCEV2-Konformität erfordert, dass das ECN-Feld in dem L3-IP-Segment 60 für die Signalisierung von Überlastungen verfügbar ist.
- 2) Das überlastete Paket ist für die ECN-Kennzeichnung geeignet. Ein Paket mit dem binären Wert 00 in dem ECN-Feld 62 ist nicht geeignet.
- 3) Das überlastete Paket ist, wie oben beschrieben, tatsächlich mit einer Überlastung konfrontiert.
- 4) Das überlastete Paket wird von der Vermittlungsstelle nicht verworfen (ausgenommen Pufferüberlastung). Es ist von Vorteil, dass ein CNP an den Quellenknoten gesendet wird, auch wenn das Paket aufgrund einer Pufferüberlastung verworfen wird. In konventionellen Netzwerken, in denen der Zielknoten das CNP erzeugt, würde in diesem Fall kein CNP erzeugt werden.
-
Wenn die Bestimmung bei dem Entscheidungsschritt 76 negativ ist, endet der Prozess bei dem Endschritt 74.
-
Wenn die Bestimmung in dem Entscheidungsschritt 76 positiv ist, dann wird in Schritt 78 ein CNP durch die Vermittlungsstelle erzeugt. Schritt 78 umfasst die Schritte 80, 82 und 84. In Schritt 80 werden DIP und SIP aus dem L3-IP-Segment 60 des überlasteten Pakets ausgelesen und dann in dem L3-IP-Segment 68 des CNP ausgetauscht, so dass das SIP des überlasteten Paketes zum DIP des CNP und das DIP des überlasteten Paketes zum SIP des CNP wird. In einigen Ausführungsformen kann die IP-Adresse der Vermittlungsstelle selbst als SIP des CNP verwendet werden. Die L2-MAC-Segmente 58 werden keiner Adressvertauschung unterzogen, sondern wie oben beschrieben behandelt.
-
In Schritt 82 wird das DSCP-Feld des L3-IP-Segments des CNP-Headers auf einen hohen Prioritätswert gesetzt, um sicherzustellen, dass das CNP den Quellenknoten des überlasteten Pakets so schnell wie möglich erreicht.
-
Ein CNP ist nicht für die ECN-Kennzeichnung geeignet. Das ECN-Feld des L3-IP-Segments des CNP wird in Schritt 84 auf den binären Wert 00 gesetzt, so dass der CNP während seiner Überführung durch das Netzwerk nicht von Überlastungsmanagementverfahren anderer Knoten beeinflusst wird.
-
Sobald sich die Vermittlungsstelle verpflichtet hat, ein CNP zu erzeugen, wäre es unerwünscht, dass nachgeschaltete Vermittlungsstellen die Prozedur wiederholen, wenn sie das überlastete Paket nacheinander bearbeiten, da der Quellenknoten des Pakets dann mehrere CNPs bezüglich eines einzelnen Pakets erhalten würde. Der Quellenknoten des Pakets könnte darauf mit einer stärkeren Drosselung des Flusses als nötig reagieren, möglicherweise QoS-Anforderungen verletzen und sogar dazu führen, dass der Fluss an dem Ziel unbrauchbar wird.
-
Als nächstes werden die ECN-Felder des L3-IP-Segments des überlasteten Pakets in Block 86 zurückgesetzt, in dem je nach Leistungsfähigkeit der Vermittlungsstellen in dem Netzwerk eine aus einer Reihe von Optionen ausgewählt wird. Die Sequenz beginnt beim Entscheidungsschritt 88, wo festgestellt wird, ob alle Vermittlungsstellen in dem Netzwerk interoperabel bzw. übergreifend betreibbar sind, was in diesem Zusammenhang bedeutet, dass sie alle in der Lage sind, das Verfahren der gewichteten zufälligen Früherkennung (Weighted Random Early Detection, WRED) nicht auf nicht ECN-fähige Pakete anzuwenden, während sie die ECN-Markierung für ECN-fähige Pakete anwenden. WRED ist eine bekannte Art von Warteschlangen, bei der Pakete auf der Grundlage der IP-Priorität selektiv verworfen werden.
-
Wenn die Bestimmung in dem Entscheidungsschritt 88 positiv ausfällt, dann ist das Netzwerk ideal für die Anwendung der Prinzipien der Erfindung geeignet. Die Steuerung geht weiter zu Schritt 90, wo das ECN-Feld des L3-IP-Segments in dem überlasteten Paket auf binär 00 gesetzt wird. Zum Zwecke des Überlastungsmanagements wird das überlastete Paket in den nachfolgenden Iterationen des Entscheidungsschritts 76 in den nachgeschalteten Netzknoten als ungeeignet betrachtet. Die Durchführung von Schritt 90 stellt sicher, dass genau ein CNP für das überlastete Paket erzeugt wird. Dieses Verhalten ähnelt einer CNP-Erzeugung an einem Ende, an dem alle Vermittlungsüberlastungen entlang des Pfades zu einer einzigen CNP-Erzeugung zusammenfließen.
-
Wenn die Bestimmung bei Entscheidungsschritt 88 negativ ist, wird bei dem Entscheidungsschritt 92 bestimmt, ob die Netzwerkknoten so konfiguriert oder konfigurierbar sind, dass sie nur einen ausgewählten der binären Werte 01 und 10 als Hinweis auf die Paketeignung in Schritt 90 erkennen. In dem Beispiel werden in Frage kommende Pakete durch den binären Wert 01 bezeichnet, während der Binärwert 10 (ebenso wie der Wert 00) die fehlende Eignung anzeigt. Die binären Werte „01“ und „10“ werden hier willkürlich verwendet, um die Paketeignung von der Nicht-Eignung zu unterscheiden. Die binären Werte in diesem Beispiel haben keine Bedeutung in Bezug auf die tatsächliche Konfiguration des Verfahrens.
-
Wenn die Bestimmung in dem Entscheidungsschritt 92 positiv ausfällt, dann wird in Schritt 94 das ECN-Feld auf den binären Wert 10 gesetzt. Netzwerk-Vermittlungsstellen, die so konfiguriert sind, dass sie Schritt 94 ausführen, erzeugen CNP-Pakete nur für Pakete mit dem ausgewählten ECN-Feldwert, der die Eignung für die CNP-Erzeugung anzeigt, in diesem Beispiel binär 01, und verhindern die mehrfache CNP-Erzeugung, indem sie das ECN-Feld so einstellen, dass es die Nicht-Eignung anzeigt. Dadurch wird eine einzelne CNP-Erzeugung pro Paket gewährleistet.
-
Wenn die Bestimmung bei Entscheidungsschritt 92 negativ ist, wird das ECN-Feld des überlasteten Pakets unverändert gelassen. In Fällen, in denen keine anderen Vermittlungsstellen in dem Pfad des überlasteten Pakets eine Überlastung erfahren, entsteht kein Fehler, da nur ein CNP erzeugt wird. Nur wenn mehrere Netzwerküberlastungspunkte vorhanden sind, können mehrere CNPs als unerwünschte Wirkung auftreten.
-
Nach Verlassen von Block 86 in dem letzten Schritt 96 wird das überlastete Paket gemäß seinen Routing-Anweisungen weitergeleitet, und der CNP wird durch das Netzwerk in Richtung des Quellenknotens des überlasteten Pakets übertragen.
-
Zweite Ausführungsform (Virtualisierte Netzwerke, die „Tunnelpakete“ verarbeiten)
-
Wie in der Technik bekannt ist, ist ein „Tunneling“-Protokoll ein Kommunikationsprotokoll, das die Bewegung von Daten von einem Netzwerk zu einem anderen ermöglicht. Die Nutzdaten eines Tunnelpakets kapseln ein anderes Paket ein, das mit einem anderen Protokoll konform ist, und sie transportieren die Nutzdaten des anderen Pakets. Diese Ausführungsform wird am Beispiel des Protokolls Virtual Extensible LAN (VXLAN) beschrieben, das in IETF RFC 7348 beschrieben ist und hier durch Verweis einbezogen wird. VXLAN ist ein Layer-2-Overlay-Schema in einem Layer-3-Netzwerk.
-
Ein RoCEV2-over-VXLAN-Tunnelpaket (je nach Fall als „nicht überlastetes Tunnelpaket“ oder als „überlastetes Tunnelpaket“ bezeichnet) hat das in 5 gezeigte Format. Es enthält ein VXLAN-Segment oder den äußeren Header 98. Der äußere Header 98 kapselt einen inneren Header 100, wobei letzterer einem ursprünglichen MAC-Rahmen entspricht. Der äußere Header 98 und der innere Header 100 haben beide jeweils ein L3-IP-Segment, die Segmente 102 bzw. 104, die jeweils ein ECN-Feld haben, wie oben in der vorherigen Ausführungsform beschrieben, und das L2-MAC-Segment 106, 108. Die L3-IP-Segmente 102, 104 sind nicht unbedingt 1 identisch. Wenn eine nicht überlastete Vermittlungsstelle ein nicht überlastetes Tunnelpaket empfängt und weiterleitet, d.h. die Vermittlungsstelle keine Verkapselung oder Entkapselung durchführt, wird das nicht überlastete Tunnelpaket entsprechend dem ECN-Feld des L3-IP-Segments 102 in dem äußeren Header 98 verarbeitet.
-
Bei der Weiterleitung eines überlasteten Tunnelpakets bezeichnet das L3-IP-Segment 102 in dem äußeren Header 98 jede Überlastung in dem unterlagerten Netzwerk. Sobald das Paket entkapselt ist, können die ECN-Markierungen des L3-IP-Segments 102 in das L3-IP-Segment 104 in dem inneren Header 100 kopiert werden.
-
Ein CNP-over-VXLAN hat das in 6 gezeigte Format. Der äußere Header 110 enthält das L2-MAC-Segment 112 und das L3-IP-Segment 114. Ein innerer Header 116 umfasst ein L2-MAC-Segment 118 und ein L3-IP-Segment 120. Beim Aufbau eines CNP-over-VXLAN ist es notwendig, sich mit dem äußeren Header 110 und dem inneren Header 116 zu befassen.
-
In dem Falle des inneren Headers 116 wird Schritt 78 (3) durchgeführt, in dem das SIP und DIP der inneren Header 100, 116 vertauscht werden. Die Vertauschung wird separat auf den L2-MAC-Segmenten 108, 118 und auf den L3-IP-Segmenten 104, 120 durchgeführt.
-
Bezüglich des äußeren Headers 110 werden das L2-MAC-Segment 112 und das L3-IP-Segment 114 genauso behandelt wie das L2-MAC-Segment 66 und das L3-IP-Segment 68 eines CNP für reguläre RoCEV2-überlastete Pakete (Schritt 78, 4).
Einzelheiten der Implementierung.
-
Eine der Herausforderungen bei der Erzeugung eines CNP bzw. Überlastungsbenachrichtigungspakets besteht darin, das Bestimmungs-QP bzw. Bestimmungs-Warteschlangen-Paar für das CNP abzurufen.
-
Für zuverlässige Verbindungstransportdienste kann das Quellen-QP in dem Paket-Header des überlasteten Pakets (oder des überlasteten Tunnelpakets) möglicherweise nicht verfügbar sein. Dieses Problem kann durch eine der folgenden Optionen gelöst werden:
-
Zwischen {Ziel-IP, Ziel-QP} und dem Quellen-QP kann in der Vermittlungsstelle eine Übersetzungstabelle geführt werden. Eine solche Tabelle existiert normalerweise in einem NIC bzw. Netzwerk-Schnittstellen-Controller und kann bei der Erzeugung des CNP benutzt werden. Es ist möglich, diese Tabelle in der Vermittlungsstelle bereitzustellen; allerdings können dadurch Probleme der Skalierung entstehen. Darüber hinaus muss ein zentraler Netzwerk-Controller das gesamte Netzwerk kennen, um die Vermittlungsstelle konfigurieren zu können.
-
Anstatt das QP zu verwenden, zeichnet der NIC ein CNP zu einem Überlastungssteuerungskontext durch ein anderes Feld auf. Eine typische Lösung ist die Berechnung einer Hash-Funktion für die folgenden Felder:
- Ziel-IP (des ursprünglichen Pakets, das die SIP des CNP-Pakets ist);
und
- Ziel-QP des ursprünglichen Pakets.
-
Diese Option erfordert, dass das CNP-Paket diese Ziel-QP wiedergibt. Da das Quellen-QP des ursprünglichen Pakets nicht verfügbar ist (andernfalls gibt es kein Problem), gibt die Vermittlungsstelle das Ziel-QP in dem CNP wieder.
-
Bei einem geeigneten Verbindungstransportdienst kann der Quellenknoten IP oder andere Alternativen wie eine Hashtabelle für Korrelationen zwischen einem Paket und seinem Überlastungssteuerungskontext zu verwenden.
-
Wenn der Zielknoten das CNP erzeugt, wird normalerweise das Ziel-QP des CNP-Pakets (welches das Quellen-QP des überlasteten Pakets ist) aus einer Nachschlagetabelle über das Ziel-QP des überlasteten Pakets abgerufen. Dies kann für geeignete Transportdienste verwendet werden, bei denen das Quellen-QP in dem Paket nicht angegeben ist. Obwohl dieser Ansatz von einer Zwischenvermittlungsstelle verwendet werden kann, ist er schwieriger zu skalieren als die oben genannten Optionen.
-
Der Fachmann wir anerkennen, dass die vorliegende Erfindung nicht auf das beschränkt ist, was oben genau gezeigt und beschrieben wurde. Vielmehr umfasst der Anwendungsbereich der vorliegenden Erfindung sowohl Kombinationen und Unterkombinationen der verschiedenen oben beschriebenen Merkmale als auch Variationen und Modifikationen davon, die nicht zum Stand der Technik gehören, die jedoch dem Fachmann beim Lesen der vorstehenden Beschreibung in den Sinn kommen.
-
Es wird davon ausgegangen, dass Aspekte und Ausführungsformen voranstehend nur beispielhaft beschrieben werden und dass im Rahmen der Ansprüche Detailänderungen vorgenommen werden können.
-
Jede Vorrichtung, jedes Verfahren und jedes Merkmal, die in der Beschreibung offenbart werden, sowie (gegebenenfalls) die Ansprüche und Zeichnungen können unabhängig voneinander oder in jeder geeigneten Kombination erfindungswesentlich werden.
-
In den Ansprüchen enthaltene Bezugszahlen dienen lediglich der Illustration und haben keine einschränkende Wirkung auf den Umfang der Ansprüche.