-
Hintergrund
-
Die Netzwerkfunktions-Virtualisierung bezieht sich auf eine Technologie zum Virtualisieren verschiedener Netzwerkfunktionen innerhalb eines Netzwerks. Mit der Netzwerkfunktions-Virtualisierung können virtuelle Netzwerkfunktionen (VNFs) eingesetzt werden, um entsprechende netzwerkbezogene Aufgaben zu erfüllen. Die VNFs können in einem Rechenknoten oder in einer Anzahl von Rechenknoten ausgeführt werden.
-
Die
WO 2017/215756 A1 betrifft Cloud-Computing und insbesondere eine Technik zur Behebung eines Verbindungsausfalls, der auf einer Verbindung zwischen einer ersten und einer zweiten VNF auftritt.
-
Kurzbeschreibung der Zeichnungen
-
Einige Realisierungen der vorliegenden Offenbarung werden in Bezug auf die folgenden Figuren beschrieben.
- 1 ist ein Blockschaubild einer Netzwerkanordnung, welche virtuelle Netzwerkfunktionen (VNFs) umfasst, gemäß einigen Beispielen.
- 2A und 2B veranschaulichen die Kommunikation von Steuerungsinformationen zwischen einer VNF und einer Zieleinheit über entsprechende Kommunikationskanäle gemäß einigen Beispielen.
- 3 ist ein Blockschaubild eines Speichermediums, welches maschinenlesbare Befehle speichert, gemäß einigen Beispielen.
- 4 ist ein Blockschaubild eines Systems gemäß einigen Beispielen.
- 5 ist ein Blockschaubild eines Verfahrens gemäß einigen Beispielen.
-
In den Zeichnungen sind durchweg mit identischen Bezugszahlen ähnliche, aber nicht notwendigerweise identische Elemente gekennzeichnet. Die Figuren sind nicht notwendigerweise maßstabsgetreu und die Größe einiger Teile kann übertrieben dargestellt sein, um das dargestellte Beispiel deutlicher werden zu lassen. Außerdem werden in den Zeichnungen Beispiele und/oder Realisierungen dargestellt, die zu der Beschreibung passen; die Beschreibung ist jedoch nicht auf die Beispiele und/oder Realisierungen beschränkt, die in den Zeichnungen dargestellt werden.
-
Detaillierte Beschreibung
-
Die Probleme im Zusammenhang mit Dienstunterbrechungen in einem Netzwerk werden unten erläutert; die vorliegende Erfindung zur mindestens teilweisen Lösung dieser Probleme ist gemäß den unabhängigen Ansprüchen 1, 10 und 16 definiert. Ausführungsformen der Erfindung sind Gegenstand der jeweiligen abhängigen Ansprüche.
-
In der vorliegenden Offenbarung soll die Verwendung des Begriffs „ein“, „eine“ oder „der“, „die“, „das“ auch die Pluralformen umfassen, sofern nicht durch den Kontext eindeutig anders angegeben. Außerdem spezifiziert der Begriff „umfasst“, „umfassen“ „umfassend“, „weist auf“, „aufweisen“ oder „aufweisend“, wenn er in der vorliegenden Offenbarung verwendet wird, das Vorliegen der angegebenen Elemente, schließt jedoch nicht das Vorliegen oder das Hinzufügen anderer Elemente aus.
-
Eine virtuelle Netzwerkfunktion (VNF) kann sich auf eine virtuelle Einheit beziehen, welche entsprechende netzwerkbezogene Aufgaben erfüllt. Eine VNF kann als maschinenlesbare Befehle realisiert sein, die auf einem Rechenknoten ausgeführt werden. Wie hier verwendet, kann sich ein „Rechenknoten“ auf einen Computer, einen Prozessor, mehrere Prozessoren oder irgendeine andere physische Infrastruktur beziehen, die in der Lage ist, maschinenlesbare Befehle auszuführen.
-
Das Einsetzen von VNFs als Teil einer Netzwerkfunktions-Virtualisierung kann mit verschiedenen beispielhaften Vorteilen in Verbindung stehen. Beispielsweise kann eine VNF in einem Netzwerk schneller entwickelt, konfiguriert und eingesetzt werden als eine Hardware-Netzwerkkomponente. Außerdem sind VNFs im Allgemeinen kostengünstiger als entsprechende Hardware-Netzwerkkomponenten zum Erfüllen entsprechender netzwerkbezogener Aufgaben. Ferner ist eine VNF einfacher an Zielspezifikationen verschiedener Benutzer anpassbar als Hardware-Netzwerkkomponenten.
-
Eine Zusammenstellung verbundener VNFs kann auf einem Rechenknoten oder auf mehreren Rechenknoten eingesetzt werden. In einigen Beispielen umfasst die Zusammenstellung verbundener VNFs eine Kette von VNFs, wobei die verschiedenen VNFs in der Kette erfolgreich entsprechende netzwerkbezogene Aufgaben erfüllen können. In anderen Beispielen kann eine Zusammenstellung verbundener VNFs eine Teilgruppe der VNFs in einer Kette verbunden und eine andere Teilgruppe der VNFs parallel verbunden umfassen. Allgemeiner bezieht sich eine Zusammenstellung verbundener VNFs auf eine beliebige Gruppe von VNFs, welche funktionell, logisch und/oder physisch miteinander verbunden sind oder miteinander in Beziehung stehen.
-
Beispiele für verschiedene Arten von VNFs umfassen die folgenden: eine virtualisierte Lastenausgleichsvorrichtung zum Ausgleichen der Netzwerkkommunikation über mehrere Netzwerkpfade eines Netzwerks, eine virtualisierte Firewall, welche ein Netzwerk vor einem unberechtigten Eindringen von außerhalb des Netzwerks schützt, eine virtualisierte Erfassungsvorrichtung für ein Eindringen, um ein Eindringen in ein Netzwerk durch eine unberechtigte Einheit zu erfassen, einen virtualisierten Schalter oder Router zum Schalten oder Leiten von Datenpaketen auf der Grundlage von Netzwerkadressen und möglicherweise anderen Feldern in den Datenpaketen usw.
-
Wenn eine gegebene VNF in einer Zusammenstellung verbundener VNFs einen Fehler aufweist, z.B. dadurch, dass die gegebene VNF abstürzt oder einen Fehler aufweist (oder ein Rechenknoten, auf dem die VNF ausgeführt wird, abstürzt oder einen Fehler aufweist), dann kann in einem Netzwerk, das die Zusammenstellung verbundener VNFs umfasst, eine Dienstunterbrechung auftreten. Eine Dienstunterbrechung kann sich auf jede Unterbrechung der Datenkommunikation innerhalb eines Kommunikationsflusses beziehen, der zwischen Host-Einheiten eingerichtet ist, wobei der Kommunikationsfluss durch die Zusammenstellung verbundener VNFs führt. Ein Kommunikationsfluss kann sich auf einen identifizierbaren Datenfluss zwischen Einheiten beziehen, die mit einem Netzwerk verbunden sind. Die Identifikation des Flusses kann auf einer Netzwerkadresse, einer Anschlussnummer, welche einen Anschluss identifiziert, usw. oder einer Kombination davon basieren.
-
Eine „Host-Einheit“ kann sich auf eine elektronische Vorrichtung oder ein Programm (welches maschinenlesbare Befehle umfasst) beziehen, das in einer physischen Maschine oder einer virtuellen Maschine ausführbar ist, wobei die Host-Einheit in der Lage ist, einen Kommunikationsfluss mit einer anderen Host-Einheit einzurichten. Eine Host-Einheit kann ein Endpunkt des Kommunikationsflusses sein. In einigen Beispielen kann der Kommunikationsfluss, der zwischen Host-Einheiten eingerichtet sein kann, ein Transmission-Control-Protocol- (TCP-) Fluss sein, wobei es sich um ein Kommunikationsprotokoll handelt, das für eine zuverlässige, geordnete und fehlerüberprüfte Übermittlung von Daten zwischen TCP-Schichten sorgt, die zu den Host-Einheiten gehören. Obwohl in einigen Beispielen auf TCP Bezug genommen wird, sei angemerkt, dass in anderen Beispielen die Kommunikationsflüsse zwischen den Host-Einheiten durch andere Kommunikationsprotokolle geregelt werden können.
-
Ein Kommunikationsfluss, wie z.B. ein TCP-Fluss, kann mit einer Beschränkungszeit verbunden sein, die von einem Timer verfolgt wird. Der Timer kann in Reaktion auf ein spezielles Ereignis gestartet werden, wie z.B. das Senden eines Datenpakets durch den Sender. Wenn innerhalb der Beschränkungszeit keine Bestätigung empfangen wird, läuft der Timer ab. Allgemeiner kann durch eine spezifizierte Inaktivität in dem Kommunikationsfluss das Ablaufen einer Beschränkungszeit bewirkt werden, die einem Kommunikationsfluss zugeordnet ist. Das Ablaufen der Beschränkungszeit kann einer Host-Einheit ein Zeichen dafür geben, dass in dem Netzwerk eine Dienstunterbrechung aufgetreten ist. Die Beschränkungszeit ist im Allgemeinen relativ lang (z.B. mehrere Sekunden oder Minuten). Somit kann das Warten auf den Ablauf der Beschränkungszeit zum Erfassen einer Dienstunterbrechung eine Verzögerung bei der Wiederherstellung nach der Dienstunterbrechung bewirken.
-
Außerdem liefert das Erfassen einer Dienstunterbrechung auf Grundlage des Ablaufs einer Beschränkungszeit keinerlei Hinweis auf eine Netzwerkposition (innerhalb eines Netzwerks), die zu der Dienstunterbrechung gehört. Als Ergebnis davon kann ein System zur Wiederherstellung nach der Dienstunterbrechung darauf beschränkt sein, den Kommunikationsfluss abzubrechen und einen neuen Kommunikationsfluss einzurichten. Es kann sein, dass keine anderen Wiederherstellungsoptionen verfügbar oder praktikabel sind. Das Abbrechen eines Kommunikationsflusses und das Aufbauen eines neuen Kommunikationsflusses kann eine relativ lange Zeit in Anspruch nehmen und kann Netzwerk-Bandbreite und Verarbeitungsressourcen verbrauchen.
-
Gemäß einigen Realisierungen der vorliegenden Offenbarung ist eine erste VNF innerhalb einer Zusammenstellung verbundener VNFs (wobei sich eine „erste“ VNF auf eine beliebige der VNFs der Zusammenstellung verbundener VNFs beziehen kann) in der Lage, eine Dienstunterbrechung in einem Netzwerk zu erfassen, welches die Zusammenstellung verbundener VNFs umfasst. In Reaktion auf das Erfassen der Dienstunterbrechung kann die erste VNF Steuerungsinformationen an eine Zieleinheit senden, wobei die Steuerungsinformationen eine Position der Dienstunterbrechung anzeigen und eine Handlung zum Ändern eines Kommunikationsflusses durch die Zusammenstellung verbundener VNFs spezifizieren. Die Zieleinheit, an welche die Steuerungsinformationen gesendet werden, kann eine zweite VNF oder eine Host-Einheit umfassen.
-
In einigen Beispielen befindet sich die Zieleinheit, an welche die Steuerungsinformationen gesendet werden, stromaufwärts der ersten VNF. Die Zieleinheit wird als „stromaufwärts“ der ersten VNF gelegen angesehen, wenn die Datenkommunikation, die durch die Dienstunterbrechung unterbrochen wird, in eine Richtung von der Zieleinheit zu der ersten VNF verläuft. Die Steuerungsinformationen können zusätzlich oder alternativ an eine stromabwärts gelegene Zieleinheit gesendet werden. Die Zieleinheit kann eine andere VNF oder eine Host-Einheit sein.
-
Die Fähigkeit einer VNF, eine Dienstunterbrechung zu erfassen und Steuerungsinformationen an eine Zieleinheit zu senden, um das Vorliegen einer Dienstunterbrechung anzuzeigen, kann eine schnellere Wiederherstellung nach der Dienstunterbrechung ermöglichen (z.B. muss das System nicht auf den Ablauf einer Beschränkungszeit warten, was lange dauern kann). Außerdem ermöglicht die Fähigkeit einer VNF, Steuerungsinformationen, welche eine Dienstunterbrechung anzeigen, stromaufwärts zu senden, stromaufwärts gelegenen Einheiten (Host-Einheiten oder VNFs), Kenntnis über eine stromabwärts gelegene Dienstunterbrechung zu erhalten. Ferner kann die Fähigkeit, Informationen bereitzustellen, welche die Position der Dienstunterbrechung anzeigen, ermöglichen, dass die Zieleinheit eine intelligentere Entscheidung hinsichtlich einer vorzunehmenden Korrekturhandlung trifft, um eine Wiederherstellung nach der Dienstunterbrechung zu erreichen. Überdies kann die Zieleinheit in der Lage sein, schnell zu bestimmen, welche Korrekturhandlung die richtige ist, indem Informationen in die Steuerungsinformationen einbezogen werden, welche eine vorgeschlagene vorzunehmende Handlung zum Beheben der Dienstunterbrechung betreffen.
-
1 ist ein Blockschaubild einer beispielhaften Netzwerkanordnung, welche eine erste Host-Einheit 102 und eine zweite Host-Einheit 104 umfasst, die in der Lage sind, einen Kommunikationsfluss 106 zwischen den Host-Einheiten 102 und 104 einzurichten. Obwohl in dem Beispiel der 1 ein Kommunikationsfluss zwischen einem Paar Host-Einheiten 102 und 104 dargestellt ist, sei angemerkt, dass in anderen Beispielen der Kommunikationsfluss 106 zwischen mehr als zwei Host-Einheiten eingerichtet sein kann. Beispielsweise kann die Host-Einheit 102 einen Sender umfassen, welcher Daten an mehrere Empfänger sendet.
-
Der Kommunikationsfluss 106 ist so abgebildet, dass er ein Fluss von der Host-Einheit 102 zu der Host-Einheit 104 ist. In anderen Beispielen kann der Kommunikationsfluss 106 von der Host-Einheit 104 zu der Host-Einheit 102 verlaufen oder der Kommunikationsfluss 106 kann bidirektional sein.
-
1 zeigt außerdem eine Zusammenstellung verbundener VNFs 108 zwischen den Host-Einheiten 102 und 104. Die Zusammenstellung verbundener VNFs 108 ist Teil eines Transportnetzwerks 109 zum Transportieren von Daten zwischen Host-Einheiten. In dem Beispiel, das in 1 dargestellt ist, umfasst die Zusammenstellung verbundener VNFs 108 VNFs 108-1, 108-2 und 108-3, die in einer Kette verbunden sind. In anderen Beispielen können zumindest einige der VNFs parallel zwischen den Host-Einheiten 102 und 104 verbunden sein. Obwohl in 1 drei VNFs als Teil einer Zusammenstellung dargestellt sind, sei angemerkt, dass in anderen Beispielen eine andere Anzahl (zwei oder mehr als zwei) an VNFs in einer Zusammenstellung verwendet werden kann.
-
Bei den VNFs 108-1 bis 108-3 kann es sich um den gleichen VNF-Typ handeln (z.B. einen Router oder einen Schalter) oder mindestens zwei der VNFs 108-1 bis 108-3 können unterschiedliche VNF-Typen sein (z.B. eine VNF ist ein Router oder ein Schalter, während eine andere VNF eine Firewall oder eine virtuelle Vorrichtung zum Erfassen eines Eindringens ist).
-
Die Zusammenstellung verbundener VNFs 108 kann in einem einzelnen Rechenknoten ausgeführt werden oder alternativ auf mehreren Rechenknoten. Jede VNF kann als maschinenlesbare Befehle realisiert sein, z.B. als maschinenlesbare Befehle, welche in einer entsprechenden virtuellen Maschine ausgeführt werden. Eine virtuelle Maschine bezieht sich auf eine virtuelle Umgebung, welche in einem physischen Rechenknoten eingerichtet ist. In einer physischen Maschine können mehrere VMs die physischen Ressourcen der physischen Maschine gemeinsam nutzen.
-
In einigen Beispielen kann das Transportnetzwerk 109 Teil eines Software-definierten Netzwerks (SDN) sein. Ein Typ eines SDN ist ein Software-definiertes Fernbereichsnetz (Software-Defined Wide Area Network, SD-WAN), welches mehrere Netzwerke über einen weiten geographischen Bereich miteinander verbindet. Ein SDN ist in eine Steuerungsebene und eine Datenebene unterteilt. Die Datenebene umfasst Netzwerkeinheiten (z.B. physische Netzwerkvorrichtungen und/oder VNFs), die zum Transportieren von Datenpaketen entlang Netzwerkpfaden verwendet werden. Der Transport der Datenpakete kann auf der Nutzung von Weiterleitungsinformationen (z.B. Weiterleitungstabellen, Leitwegtabellen usw.) basieren, auf welche die Netzwerkeinheiten zugreifen können, welche Datenpakete entlang ausgewählten Netzwerkpfaden auf der Grundlage von Netzwerkadressen (z.B. Internet-Protocol-(IP-) Adressen, Medium-Access-Control- (MAC-) Adressen usw.) und möglicherweise anderen Feldern der Datenpakete weiterleiten. Das Weiterleiten der Datenpakete erfolgt durch Router oder Schalter (physische oder virtuelle). In weiteren Beispielen können einige Netzwerkeinheiten (physische oder virtuelle) auch andere Handlungen vornehmen, z.B. Firewall-Schutz, Erfassen eines Eindringens usw.
-
Obwohl in 1 das Transportnetzwerk 109 als VNFs umfassend dargestellt ist, sei angemerkt, dass das Transportnetzwerk 109 in einigen Beispielen außerdem physische Netzwerkeinheiten umfassen kann.
-
Die Steuerungsebene eines SDN umfasst eine Netzwerksteuerung 112, welche im SDN-Kontext als eine SDN-Steuerung bezeichnet werden kann. Die Netzwerksteuerung 112 kann unter Verwendung eines Rechenknotens oder mehrerer Rechenknoten realisiert werden. Die Netzwerksteuerung 112 kann verwendet werden, um die Netzwerkeinheiten des Transportnetzwerks 109 zu konfigurieren, einschließlich des Bereitstellens von Weiterleitungsinformationen an Router und Schalter und des Konfigurierens anderer Netzwerkeinheiten, entsprechende Handlungen vorzunehmen.
-
In anderen Beispielen können Techniken oder Mechanismen gemäß einigen Realisierungen der vorliegenden Offenbarung statt mit einem SDN mit einem anderen Netzwerk-Typ angewendet werden.
-
1 zeigt, dass das VNF 108-1 eine Dienstunterbrechungs-Verwaltungslogik 110-1 umfasst und das VNF 108-2 eine Dienstunterbrechungs-Verwaltungslogik 110-2 umfasst. Obwohl nicht dargestellt, kann außerdem das VNF 108-3 eine Dienstunterbrechungs-Verwaltungslogik 110-3 umfassen.
-
Eine Dienstunterbrechungs-Verwaltungslogik kann unter Verwendung von maschinenlesbaren Befehlen realisiert werden. Im Allgemeinen ist die Dienstunterbrechungs-Verwaltungslogik in der Lage, das Vorliegen einer Dienstunterbrechung zu erfassen und auf die Dienstunterbrechung zu reagieren, wie nachstehend in einigen Beispielen beschrieben.
-
In dem Beispiel der 1 wird angenommen, dass eine Dienstunterbrechung 114 an der VNF 108-3 aufgetreten ist. Die Dienstunterbrechung 114 kann daran liegen, dass die VNF 108-3 abstürzt oder einen Fehler aufweist, der rechenknoten, auf welchem die VNF 108-3 ausgeführt wird, abstürzt oder einen Fehler aufweist oder eine Verbindung, welche mit der VNF 108-3 verbindet, einen Fehler aufweist oder ein anderer Grund vorliegt. Allgemeiner kann die Dienstunterbrechung 114 durch ein Versagen oder einen Fehler einer physischen Maschine, einer virtuellen Maschine oder eines Programms verursacht werden oder sie kann durch Handlungen von bösartiger Software oder durch einen menschlichen Angreifer verursacht werden.
-
Die Dienstunterbrechungs-Verwaltungslogik 110-2 in der VNF 108-2 ist in der Lage, die Dienstunterbrechung 114 zu erfassen, die der VNF 108-3 zugeordnet ist. Beispielsweise können benachbarte VNFs der Zusammenstellung verbundener VNFs 108 Vitalzeichen miteinander austauschen. Ein „Vitalzeichen“ kann sich auf ein beliebiges Signal, eine beliebige Mitteilung oder ein beliebiges Informationselement beziehen, welches gesendet wird, um ein Zeichen zu geben, dass eine Netzwerkeinheit, z.B. eine VNF, noch funktioniert. Ein Vitalzeichen kann periodisch gesendet werden oder kann unregelmäßig in Reaktion auf bestimmte Ereignisse gesendet werden.
-
Ein fehlender Empfang eines Vitalzeichens von einer zweiten VNF durch eine erste VNF innerhalb einer festgelegten Zeit kann ein Zeichen dafür sein, dass bei der zweiten VNF eine Dienstunterbrechung vorliegt. In Reaktion auf das Erfassen der Dienstunterbrechung 114 sendet die Dienstunterbrechungs-Verwaltungslogik 110-2 in der VNF 108-2 Steuerungsinformationen 116 an eine Zieleinheit. In einigen Beispielen können die Steuerungsinformationen 116 in Form eines Steuerungspakets (oder einer Anzahl von Steuerungspaketen) vorliegen.
-
In einigen Beispielen können die Steuerungsinformationen 116 ein UDP-Paket umfassen. Alternativ können die Steuerungsinformationen 116 ein Paket gemäß einem Internet Control Message Protocol (ICMP) umfassen. In anderen Beispielen können andere Typen von Steuerungsinformationen 116 verwendet werden.
-
In einem spezielleren Beispiel können die Steuerungsinformationen 116 ein Fluss-Tupel umfassen, welches den Kommunikationsfluss 106 identifiziert. In einigen Beispielen kann das Fluss-Tupel eine Quell-Netzwerkadresse (z.B. eine Quell-IP-Adresse) der Host-Einheit 102, welche den Kommunikationsfluss 106 sendet, eine Ziel-Netzwerkadresse (z.B. eine Ziel-IP-Adresse) der Host-Einheit 104, welche den Kommunikationsfluss empfängt, eine Quellanschlussnummer und eine Zielanschlussnummer umfassen.
-
Die Steuerungsinformationen 116 können ferner Informationen umfassen, um die Zieleinheit bei der Bestimmung zu unterstützen, welche vorgeschlagene Handlung(en) vorzunehmen ist (sind). Die Zieleinheit, an welche die Steuerungsinformationen 116 gesendet werden, kann eine andere VNF, z.B. die VNF 108-1, oder die Host-Einheit 102 oder sowohl die VNF 108-1 als auch die Host-Einheit 102 umfassen. In 1 werden die Steuerungsinformationen 116 in einem Beispiel, wobei der Kommunikationsfluss 106 von der Host-Einheit 102 zu der Host-Einheit 104 verläuft, stromaufwärts gesendet. Die Steuerungsinformationen 116 können zusätzlich oder alternativ stromabwärts gesendet werden.
-
In einigen Beispielen umfassen die Steuerungsinformationen 116 eine Positionsanzeige 118 und Handlungsinformationen 120. Die Positionsanzeige 118 zeigt eine Netzwerkposition innerhalb des Transportnetzwerks 109 an, wo die Dienstunterbrechung 114 aufgetreten ist. Beispielsweise kann die Positionsanzeige 118 in Form einer Kennung (z.B. einer Netzwerkadresse oder einer anderen Art einer Kennung) der VNF 108-3 in Verbindung mit der Dienstunterbrechung 114 erfolgen. In anderen Beispielen kann die Positionsanzeige 118 Informationen umfassen, welche einen Rechenknoten, ein Teilnetz oder einen anderen Netzwerkabschnitt identifizieren, in welchem die Dienstunterbrechung 114 aufgetreten ist.
-
Die Positionsanzeige 118 kann von der Zieleinheit (z.B. durch die Dienstunterbrechungslogik 110-1 in der VNF 108-1 oder eine Dienstunterbrechungslogik 122 in der Host-Einheit 102) verwendet werden, um zu bestimmen, wo in dem Transportnetzwerk 109 die Dienstunterbrechung 114 aufgetreten ist. Die Position des Transportnetzwerks 109, wo die Dienstunterbrechung 114 aufgetreten ist, kann bei der Bestimmung von Nutzen sein, welche Handlung vorzunehmen ist, z.B. beim Auswählen aus den folgenden möglichen Handlungen: Abbrechen des Kommunikationsflusses 106 und Einrichten eines neune Kommunikationsflusses, Bewirken der Leitens von Daten um die Dienstunterbrechung 114 herum entlang einem anderen Netzwerkpfad usw.
-
Die Handlungsinformationen 120 in den Steuerungsinformationen 116 spezifizieren eine vorzunehmende Handlung (oder Handlungen), um einen Kommunikationsfluss durch die Zusammenstellung verbundener VNFs 108 zu verändern. Beispielsweise können die Handlungsinformationen 120 beliebige oder eine Kombination der folgenden Handlungen spezifizieren: Anpassen (Verkleinern oder Vergrößern) einer TCP-Fenstergröße, Abbrechen des Kommunikationsflusses 106, Einrichten einer Flusssteuerung des Kommunikationsflusses 106, wobei die Flusssteuerung das Ändern einer Datenkommunikationsgeschwindigkeit in dem Kommunikationsfluss 106, das Auswählen einer anderen Route durch das Netzwerk, z.B. als Teil der Durchführung eines Lastenausgleichs, und das Ändern einer Dienstqualitäts- (Quality-of-Service, QoS-) Strategie umfassen kann.
-
Eine TCP-Fenstergröße bezieht sich auf die Datenmenge (in Bytes), welche ein Empfänger zu einem Zeitpunkt empfangen möchte. Lastenausgleich bezieht sich auf eine Technik zum Ausgleichen einer Auslastung über verschiedene Netzwerkpfade in einem Netzwerk. Eine QoS-Strategie spezifiziert eine Dienstgüte, die für den Kommunikationsfluss bereitzustellen ist. Eine höhere Dienstgüte bedeutet, dass die Datenkommunikation in dem Kommunikationsfluss 106 mit einer höheren Datengeschwindigkeit, mit höherer Zuverlässigkeit usw. erfolgen kann als bei einer niedrigeren Dienstgüte.
-
Die Handlung, die von einer Zieleinheit in Reaktion auf die Steuerungsinformationen 116 vorgenommen wird, um nach der Dienstunterbrechung für eine Wiederherstellung zu sorgen, kann eine Handlung sein, die von den Handlungsinformationen 120 in den Steuerungsinformationen 116 spezifiziert wird oder nicht.
-
Die Korrekturhandlung, die von der Zieleinheit (oder spezieller von der Dienstunterbrechungs-Verwaltungslogik in der Zieleinheit) vorgenommen wird, um nach der Dienstunterbrechung 114 für eine Wiederherstellung zu sorgen, kann eine Korrekturhandlung auf Grundlage einer Strategie sein. Wie in 1 dargestellt, kann ein Strategiesteuerungs-Dienstprogramm 124 der Dienstunterbrechungs-Verwaltungslogik, die in einer der Host-Einheiten 102 und 104 und der VNFs 108-1, 108-2 und 108-3 ausgeführt wird, eine Strategie 126 (oder mehrere Strategien) bereitstellen.
-
In einigen Beispielen kann das Strategiesteuerungs-Dienstprogramm 124 maschinenlesbare Befehle umfassen, welche von der Netzwerksteuerung 112 ausführbar sind. In anderen Beispielen kann das Strategiesteuerungs-Dienstprogramm 124 ein Programm oder eine Maschine umfassen, die von der Netzwerksteuerung 112 getrennt sind.
-
Jede Strategie 126 kann eine Regel umfassen, die auf der Grundlage eines Faktors (oder mehrerer Faktoren) bestimmt, welche Korrekturhandlung vorzunehmen ist. Beispielsweise kann einer der Faktoren, die von einer Dienstunterbrechungs-Verwaltungslogik berücksichtigt werden, eine Netzwerkposition der Dienstunterbrechung 114 sein. Die Strategie 126 kann spezifizieren, dass, wenn die Netzwerkposition die Position X ist (oder stromaufwärts oder stromabwärts der Position X liegt), der Kommunikationsfluss 106 abgebrochen und ein neuer Kommunikationsfluss eingerichtet werden müsste. Andererseits kann die Strategie 122 spezifizieren, dass, wenn die Netzwerkposition nicht die Position X ist (oder nicht stromaufwärts oder stromabwärts der Position X liegt), die Korrekturhandlung das Auswählen eines anderen Pfades umfassen kann, der für den Kommunikationsfluss 106 in dem Transportnetzwerk 109 zu nehmen ist.
-
Andere Faktoren, die auf Grundlage der Strategie 126 von der Dienstunterbrechungs-Verwaltungslogik berücksichtigt werden können, können eine Menge an Datenpaketen, die in dem Kommunikationsfluss 106 übertragen werden, eine aktuelle Belastung von Netzwerkeinheiten entlang einem Pfad, eine aktuelle QoS, die dem Kommunikationsfluss 106 zugeordnet ist usw. umfassen.
-
Die Korrekturhandlung, die von einer Dienstunterbrechungs-Verwaltungslogik vorgenommen wird, um nach der Dienstunterbrechung 114 für eine Wiederherstellung zu sorgen, kann auf der Strategie 126 beruhen, ebenso wie auf der Handlung (den Handlungen), die durch die Handlungsinformationen 120 in den Steuerungsinformationen 116 spezifiziert sind.
-
Die vorgenommene Korrekturhandlung kann eine andere sein als die Handlung, die durch die Handlungsinformationen 120 in den Steuerungsinformationen 116 spezifiziert wird. Beispielsweise können die Handlungsinformationen 120 in den Steuerungsinformationen 116 das Abbrechen des Kommunikationsflusses 106 und das Einrichten eines neuen Kommunikationsflusses spezifizieren. Die Strategie 122 kann jedoch spezifizieren, dass es die richtige in Reaktion auf die Dienstunterbrechung 114 vorzunehmende Korrekturhandlung ist, einen anderen Netzwerkpfad zum Herumführen um die Dienstunterbrechung 114 auszuwählen.
-
Die Steuerungsinformationen 116, die von einer VNF gesendet werden können, können über einen Kommunikationskanal zwischen der VNF und der Zieleinheit gesendet werden. 2A zeigt ein Beispiel, wobei der Kommunikationskanal einen spezifizierten Anschluss 202 umfasst, der einer Zieleinheit 204 zugeordnet ist. Der Anschluss 202 kann ein TCP-Anschluss, ein User-Datagram-Protocol- (UDP-) Anschluss oder ein anderer Anschluss-Typ sein. Die Steuerungsinformationen 116 werden von einer Dienstunterbrechungs-Verwaltungslogik 208 in einer VNF 206 an den spezifizierten Anschluss 202 gesendet. Beispielsweise kann ein Steuerungspaket, welches die Steuerungsinformationen 116 umfasst, eine Anschlussnummer des spezifizierten Anschlusses 202 umfassen. Eine Dienstunterbrechungs-Verwaltungslogik 210 in der Zieleinheit 204 erkennt in Reaktion auf eine Dienstunterbrechung Informationen, die an dem spezifizierten Anschluss 202 empfangen werden, als Steuerungsinformationen.
-
2B zeigt ein anderes Beispiel, wobei der Kommunikationskanal eine gemeinsam genutzte Datenstruktur 212 umfasst, die in einem Speichermedium 214 gespeichert ist. Das Speichermedium 214 kann unter Verwendung einer Speichervorrichtung (oder mehrerer Speichervorrichtungen), einer Permanentspeichervorrichtung (oder mehrerer Permanentspeichervorrichtungen) oder einer beliebigen Kombination davon realisiert werden.
-
Das Speichermedium 214 kann Teil eines Rechenknotens 200 sein, welcher die Zieleinheit 204 und die VNF 206 umfasst. In anderen Beispielen können die Zieleinheit 204 und die VNF 206 Teil unterschiedlicher Rechenknoten sein, aber auf das Speichermedium 214 kann von der Zieleinheit 204 und der VNF 206 zugegriffen werden.
-
Die gemeinsam genutzte Datenstruktur 212 umfasst Steuerungsinformations-Einträge 216. Beispielsweise kann die gemeinsam genutzte Datenstruktur 212 in Form einer Tabelle oder irgendeiner anderen Datenstruktur vorliegen.
-
Die Dienstunterbrechungs-Verwaltungslogik 208 in der VNF 206 kann Steuerungsinformationen (z.B. 116 in 1) in einen Steuerungsinformations-Eintrag der gemeinsam genutzten Datenstruktur 212 schreiben. Eine andere Dienstunterbrechungs-Verwaltungslogik in entsprechenden anderen VNFs kann Steuerungsinformationen in entsprechende andere Steuerungsinformations-Einträge 216 schreiben.
-
Eine Benachrichtigungseinheit 218 umfasst maschinenlesbare Befehle, welche in dem Rechenknoten 200 ausführbar sind. Die Benachrichtigungseinheit 218 kann das Hinzufügen neuer Steuerungsinformationen zu einem Steuerungsinformations-Eintrag 216 in der gemeinsam genutzten Datenstruktur 212 erfassen. In Reaktion auf eine solche Erfassung kann die Benachrichtigungseinheit 218 die neuen Steuerungsinformationen der Zieleinheit 204 (oder mehreren Zieleinheiten) offenlegen. In anderen Beispielen kann eine Zieleinheit 204, anstatt die Benachrichtigungseinheit 218 zu verwenden, einen Empfänger umfassen, welcher die gemeinsam genutzte Datenstruktur 212 nach Aktualisierungen der Steuerungsinformations-Einträge 216 in der Datenstruktur 212 abfragt.
-
3 ist ein Blockschaubild eines nicht-flüchtigen maschinenlesbaren oder computerlesbaren Speichermediums 300, welches maschinenlesbare Befehle speichert, die nach Ausführung bewirken, dass ein System verschiedene Aufgaben erfüllt. Die maschinenlesbaren Befehle umfassen Dienstunterbrechungs-Erfassungsbefehle 302 zum Erfassen einer Dienstunterbrechung in einem Netzwerk, welches eine Zusammenstellung verbundener VNFs umfasst, durch eine erste VNF, welche Teil der Zusammenstellung verbundener VNFs ist. Die Erfassung der Dienstunterbrechung kann auf einem fehlenden Empfang eines Vitalzeichens von einer benachbarten VNF beruhen. Der fehlende Empfang eines Vitalzeichens von einer zweiten VNF durch eine erste VNF innerhalb einer festgelegten Zeit kann ein Zeichen dafür sein, dass die zweite VNF eine Dienstunterbrechung aufweist.
-
Die maschinenlesbaren Befehle umfassen ferner Steuerungsinformations-Sendebefehle 304 zum Senden von Steuerungsinformationen an eine Zieleinheit durch die erste VNF in Reaktion auf das Erfassen der Dienstunterbrechung, wobei die Steuerungsinformationen eine vorzunehmende Handlung spezifizieren, um einen Kommunikationsfluss durch die Zusammenstellung verbundener VNFs zu ändern. In einigen Beispielen können die Steuerungsinformationen ferner eine Netzwerkposition anzeigen, die der Dienstunterbrechung zugeordnet ist. Die Zieleinheit, an welche die Steuerungsinformationen gesendet werden, können eine zweite VNF und/oder eine Host-Einheit umfassen. Bei der ersten VNF und der zweiten VNF kann es sich um denselben VNF-Typ oder um unterschiedliche VNF-Typen handeln. Das Senden der Steuerungsinformationen kann über einen Kommunikationskanal zu der Zieleinheit erfolgen, wie z.B. über den Kommunikationskanal, der in 2A oder 2B dargestellt ist.
-
In Reaktion auf die Steuerungsinformationen kann die Zieleinheit eine Korrekturhandlung durchführen, welche auf den Steuerungsinformationen basiert, um den Kommunikationsfluss zu ändern. Beispiele für Korrekturhandlungen umfassen eines oder eine Kombination aus Folgendem: Anpassen einer Größe eines TCP-Fensters, Abbrechen des Kommunikationsflusses, Auswählen einer anderen Route durch das Netzwerk, Ändern einer QoS-Strategie usw.
-
In weiteren Beispielen kann jede Zieleinheit (z.B. eine VNF oder eine Host-Einheit), an welche Steuerungsinformationen zu senden sind, eine Strategie empfangen, z.B. von dem Strategiesteuerungs-Dienstprogramm 124 der 1. Die Korrekturhandlung, die in Reaktion auf die Steuerungsinformationen an der Zieleinheit durchgeführt wird, kann auf der Strategie beruhen.
-
In einigen Fällen kann die erste VNF, welche die Steuerungsinformationen gesendet hat, ebenfalls eine Korrekturhandlung durchführen, die auf der Strategie beruht, um die Dienstunterbrechung zu anzugehen. Die Korrekturhandlung an der ersten VNF ist mit der Korrekturhandlung an der Zieleinheit vereinbar. „Miteinander vereinbare“ Korrekturhandlungen, die an mehreren Einheiten durchgeführt werden, können sich auf eine gleiche Korrekturhandlung, die an den mehreren Einheiten durchgeführt wird, oder auf Korrekturhandlungen beziehen, die an den mehreren Einheiten vorgenommen werden, welche die Dienstunterbrechung auf Weisen angehen, die nicht im Widerspruch zueinander stehen. Durch Vornehmen miteinander vereinbarer Korrekturhandlungen an den mehreren Einheiten, um nach der Dienstunterbrechung für eine Wiederherstellung zu sorgen, können im Widerspruch stehende Korrekturhandlungen an den mehreren Einheiten vermieden werden, so dass keine Fehler in einem Kommunikationsfluss entstehen.
-
4 ist ein Blockschaubild eines Systems 400, welches einen Rechenknoten oder mehrere Rechenknoten umfassen kann. Das System 400 umfasst einen Hardware-Prozessor 402 (oder mehrere Hardware-Prozessoren). Ein Hardware-Prozessor kann einen Mikroprozessor, einen Kern eines Mehrkern-Mikroprozessors, einen Mikrocontroller, eine programmierbare integrierte Schaltung, ein programmierbares Gate-Array oder eine andere Hardware-Verarbeitungsschaltung umfassen.
-
Das System 400 umfasst ferner eine Zusammenstellung verbundener VNFs 404. Eine erste VNF 404-1 der Zusammenstellung verbundener VNFs ist auf dem Hardware-Prozessor ausführbar, um verschiedene Aufgaben zu erfüllen. Die Aufgaben umfassen eine Dienstunterbrechungs-Erfassungsaufgabe 406 zum Erfassen einer Dienstunterbrechung in einem Netzwerk, welches die Zusammenstellung verbundener VNFs 404 umfasst. Wie oben angegeben, kann die Erfassung auf einem fehlenden Empfang eines Vitalzeichens beruhen.
-
Die Aufgaben umfassen ferner eine Steuerungsinformations-Sendeaufgabe 408 zum Senden von Steuerungsinformationen an eine Zieleinheit, die sich stromaufwärts der ersten VNF befindet, unter Verwendung eines Kommunikationskanals in Reaktion auf das Erfassen der Dienstunterbrechung, wobei die Steuerungsinformationen eine vorzunehmende Handlung spezifizieren, um einen Kommunikationsfluss zu ändern, der zwischen Host-Einheiten durch die Zusammenstellung verbundener VNFs eingerichtet ist.
-
In einigen Beispielen umfasst der Kommunikationskanal einen spezifizierten Anschluss (z.B. 202 in 2A) oder eine gemeinsam genutzte Datenstruktur (z.B. 212 in 2B), die in einem Speichermedium gespeichert ist.
-
Die Steuerungsinformationen bewirken, dass die Zieleinheit eine Korrekturhandlung durchführt, um die Dienstunterbrechung anzugehen, ohne zuerst auf den Ablauf einer Beschränkungszeit eines Kommunikationsprotokolls zu warten, welches den Kommunikationsfluss regelt.
-
5 ist ein Ablaufplan eines Verfahrens, welches von einem System durchgeführt werden kann, das einen Hardware-Prozessor umfasst. Das Verfahren der 5 umfasst das Erfassen (bei 502) einer Dienstunterbrechung in einem Netzwerk, welches eine Zusammenstellung verbundener VNFs umfasst, durch eine erste VNF, welche Teil der Zusammenstellung verbundener VNFs ist. Das Verfahren umfasst das Senden (bei 504) von Steuerungsinformationen an eine zweite VNF, die sich stromaufwärts der ersten VNF befindet, in Reaktion auf das Erfassen der Dienstunterbrechung, wobei die Steuerungsinformationen eine Netzwerkposition anzeigen, die der Dienstunterbrechung zugeordnet ist, und eine vorzunehmende Handlung spezifizieren, um einen Kommunikationsfluss durch die Zusammenstellung verbundener VNFs zu ändern. Die Steuerungsinformationen können die Netzwerkposition anzeigen, indem sie eine VNF, einen Abschnitt des Netzwerks oder eine Vorrichtung identifizieren, welche einen Fehler aufweisen, der die Dienstunterbrechung verursacht.
-
Das Verfahren umfasst das Durchführen (bei 506) einer Korrekturhandlung, welche auf der Netzwerkposition und den Steuerungsinformationen beruht, durch die zweite VNF.
-
Das Speichermedium 300 der 3 kann eines oder eine Kombination von Folgendem umfassen: eine Halbleiter-Speichervorrichtung, wie z.B. einen dynamischen oder statischen Direktzugriffsspeicher (einen DRAM oder einen SRAM), einen löschbaren und programmierbaren Nur-Lese-Speicher (EPROM), einen elektrisch löschbaren und programmierbaren Nur-Lese-Speicher (EEPROM) und einen Flash-Speicher; eine Magnetplatte, wie z.B. eine Festplatte, eine Diskette und eine entnehmbare Platte; ein anderes magnetisches Medium, z.B. ein Band; ein optisches Medium, wie z.B. eine Compact Disc (CD) oder eine Digital Video Disk (DVD) oder eine andere Art einer Speichervorrichtung. Es sei angemerkt, dass die oben beschriebenen Befehle auf einem computerlesbaren oder maschinenlesbaren Speichermedium bereitgestellt werden können oder alternativ auf mehreren computerlesbaren oder maschinenlesbaren Speichermedien bereitgestellt werden können, die in einem großen System verteilt sind, welches möglicherweise mehrere Knoten aufweist. Ein solches computerlesbares oder maschinenlesbares Speichermedium oder solche computerlesbaren oder maschinenlesbaren Speichermedien wird (werden) als Teil eines Gegenstands (oder Herstellungsgegenstands) angesehen. Ein Herstellungsgegenstand kann sich auf eine beliebige hergestellte einzelne Komponente oder beliebige hergestellte mehrere Komponenten beziehen. Das Speichermedium oder die Speichermedien kann (können) entweder in der Maschine angeordnet sein, auf welcher die maschinenlesbaren Befehle ablaufen, oder an einer entfernten Stelle angeordnet sein, von welcher maschinenlesbare Befehle über ein Netzwerk zur Ausführung heruntergeladen werden können.
-
In der vorstehenden Beschreibung werden zahlreiche Einzelheiten ausgeführt, um für ein Verständnis des hierin offenbarten Gegenstands zu sorgen. Es können jedoch Realisierungen ohne einige dieser Einzelheiten erfolgen. Andere Realisierungen können Modifikationen und Variationen der oben beschriebenen Einzelheiten umfassen. Die anhängenden Patentansprüche sollen solche Modifikationen und Variationen abdecken.