DE202014010967U1 - Multi-Master-Auswahl in einem Software-basierten Netzwerk - Google Patents

Multi-Master-Auswahl in einem Software-basierten Netzwerk Download PDF

Info

Publication number
DE202014010967U1
DE202014010967U1 DE202014010967.2U DE202014010967U DE202014010967U1 DE 202014010967 U1 DE202014010967 U1 DE 202014010967U1 DE 202014010967 U DE202014010967 U DE 202014010967U DE 202014010967 U1 DE202014010967 U1 DE 202014010967U1
Authority
DE
Germany
Prior art keywords
controller
network device
control
network
devices
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
DE202014010967.2U
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 DE202014010967U1 publication Critical patent/DE202014010967U1/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/067Generation of reports using time frame reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/044Network management architectures or arrangements comprising hierarchical management structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities

Landscapes

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

Abstract

Netzwerkvorrichtung umfassend eine Vielzahl von Netzwerkschnittstellenanschlüssen, Speicherkapazität-Konfigurationsdaten und mindestens einem Prozessor, konfiguriert zum: Empfangen einer ersten Verfügbarkeitsbenachrichtigung der Steuerung von einer ersten Steuerungsvorrichtung aus einer Vielzahl von Steuerungsvorrichtungen, wobei die Vielzahl von Steuerungsvorrichtungen mindestens eine zweite Steuerungsvorrichtung umfasst; Auswählen einer der ersten und der zweiten Steuerungsvorrichtungen als eine Steuerung für die Netzwerkvorrichtung, die mindestens auf der ersten Verfügbarkeitsbenachrichtigung der Steuerung basiert, die von der ersten Steuerungsvorrichtung empfangen wird; und Melden der Auswahl der Steuerungsvorrichtung für die Netzwerkvorrichtung an jede der mehreren Steuerungsvorrichtungen.

Description

  • HINTERGRUND
  • Ein Software-basiertes Netzwerk („SDN”) besteht aus einem Satz aus Netzwerkvorrichtungen in einem Datennetzwerk, das mindestens eine Netzwerkvorrichtung beinhaltet, die auf eine unabhängige Steuerung für die Konfigurationsinformationen angewiesen ist, wie etwa Aktualisierungen an die Tabellen für Routing-Netzverkehr. Normalerweise weist das SDN nur eine Steuerung auf.
  • ZUSAMMENFASSUNG
  • In einem Aspekt betrifft die Offenbarung eine Netzwerkvorrichtung mit einer Vielzahl von Netzwerkschnittstellenanschlüssen, Speicherkapazität-Konfigurationsdaten und mindestens einen Prozessor, der so konfiguriert ist, dass er eine erste Verfügbarkeitsbenachrichtigung der Steuerung aus einer ersten Steuerungsvorrichtung aus einer Vielzahl von Steuerungsvorrichtungen empfängt, die mindestens eine zweite Steuerungsvorrichtung beinhalten, eine der ersten Steuerungsvorrichtungen als Steuerung für eine Netzwerkvorrichtung, basierend mindestens auf der ersten Verfügbarkeitsbenachrichtigung der Steuerung, die von der ersten Steuerungsvorrichtung empfangen wird, auswählt und die Auswahl der Steuerungsvorrichtung an die ausgewählte Steuerungsvorrichtung meldet.
  • In einigen Ausführungsformen ist mindestens der eine Prozessor so konfiguriert, dass er einen ersten Wert für ein Leistungsmerkmal der ersten Steuerungsvorrichtung und einen zweiten Wert für das Leistungsmerkmal der zweiten Steuerungsvorrichtung ermittelt und einen der ersten und zweiten Steuerungsvorrichtungen als Mastersteuerung für eine Netzwerkvorrichtung anhand eines Vergleichs des ersten und zweiten Wertes auswählt. In einigen Ausführungsformen besteht das Leistungsmerkmal aus einer Anzahl aus Netzwerkvorrichtungen, die durch jede Steuerungsvorrichtung gesteuert werden. In einigen Ausführungsformen ist das Leistungsmerkmal eine mittlere Latenz für eine Steuerungsvorrichtung.
  • In einigen Ausführungsformen meldet die Netzwerkvorrichtung die Auswahl an jede der mehreren Steuerungsvorrichtungen. In einigen Ausführungsformen wählt die Netzwerkvorrichtung die zweite Steuerungsvorrichtung als Back-Up-Steuerung für eine Netzwerkvorrichtung aus.
  • In einem Aspekt betrifft die Offenbarung ein Verfahren. Das Verfahren beinhaltet das Empfangen einer ersten Verfügbarkeitsbenachrichtigung der Steuerung durch eine Netzvorrichtung aus einer ersten Steuerungsvorrichtung aus einer Vielzahl von Steuerungsvorrichtungen, das mindestens eine zweite Steuerungsvorrichtung beinhaltet, wobei eine der ersten Steuerungsvorrichtungen als Steuerung für eine Netzwerkvorrichtung, basierend mindestens auf der ersten Verfügbarkeitsbenachrichtigung der Steuerung, die von der ersten Steuerungsvorrichtung empfangen wird, ausgewählt wird und die Auswahl der Steuerungsvorrichtung an die ausgewählte Steuerungsvorrichtung meldet. In einigen Ausführungsformen basiert die Auswahl auf einem Vergleich eines oder mehrerer Leistungsmerkmale für die Steuerungsvorrichtungen. Die Leistungsmerkmale können eine Anzahl von Netzwerkvorrichtungen beinhalten, die durch jede Steuerungsvorrichtung und/oder eine mittlere Latenz für jede Steuerungsvorrichtung gesteuert werden.
  • In einem Aspekt betrifft die Offenbarung ein körperliches computerlesbares Speichermedium, das nicht-flüchtige prozessorausführbare Befehle speichert, die, wenn sie durch ein Computergerät ausgeführt werden, das das Speichermedium und einen oder mehrere Prozessoren umfasst, den einen oder die mehreren Prozessoren zum Ausführen der Funktionen des Empfangens einer ersten Verfügbarkeitsbenachrichtigung der Steuerung aus einer ersten Steuerungsvorrichtung aus einer Vielzahl von Steuerungsvorrichtungen, die mindestens eine zweite Steuerungsvorrichtung beinhaltet, das Auswählen einer der ersten Steuerungsvorrichtungen als Steuerung für eine Netzwerkvorrichtung, basierend mindestens auf der ersten Verfügbarkeitsbenachrichtigung der Steuerung, die von der ersten Steuerungsvorrichtung empfangen wird und das Melden der Auswahl der Steuerungsvorrichtung an die ausgewählte Steuerungsvorrichtung. In einigen Ausführungsformen basiert die Auswahl auf einem Vergleich eines oder mehrerer Leistungsmerkmale für die Steuerungsvorrichtungen. Die Leistungsmerkmale können eine Anzahl von Netzwerkvorrichtungen beinhalten, die durch jede Steuerungsvorrichtung und/oder eine mittlere Latenz für jede Steuerungsvorrichtung gesteuert werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und zugehörigen Zwecke, Merkmale und Vorteile der vorliegenden Offenbarung werden unter Bezugnahme auf die folgende detaillierte Beschreibung in Verbindung mit den folgenden Figuren besser verständlich, wobei:
  • 1 ein Blockdiagramm eines exemplarischen Software-definierten Netzwerks ist;
  • 2 ein Blockdiagramm einer exemplarischen Software-definierten Netzwerk-Steuerung und einer Netzwerkvorrichtung ist, die durch einen Control-Plane-Link getrennt sind;
  • 3 ein Flussdiagramm für ein exemplarisches Verfahren ist, in dem eine Netzwerkvorrichtung eine Steuerung auswählt;
  • 4 ein Flussdiagramm für ein exemplarisches Verfahren ist, in dem eine Netzwerkvorrichtung eine erste verfügbare Steuerung auswählt;
  • 5 ein Flussdiagramm für ein exemplarisches Verfahren ist, in dem eine Netzwerkvorrichtung eine Steuerung anhand der Leistungsmerkmale auswählt;
  • 6 ein Flussdiagramm für ein exemplarisches Verfahren ist, in dem eine Netzwerkvorrichtung die Latenz als Leistungsmerkmal misst; und
  • 7 ein Blockdiagramm eines Computersystems gemäß einer veranschaulichten Ausführungsform ist.
  • Entsprechende Referenznummern und Kennzeichnungen in den verschiedenen Zeichnungen verweisen auf entsprechende Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Aspekte und Ausführungsformen der vorliegenden Offenbarung betreffen im Allgemeinen die Auswahl einer Steuerung durch eine Netzwerkvorrichtung in einem Software-definierten Netzwerk („SDN”). Ein Merkmal eines SDN ist, dass Netzwerkvorrichtungen durch entsprechende unabhängige Steuerungen gesteuert werden. Routingvorrichtungen können beispielsweise Routing-Konfigurationsregeln von einer Mastersteuerung empfangen. Eine SDN-Vorrichtung kann normalerweise jeweils eine Mastersteuerung ausweisen. Hierin ist ein SDN beschrieben, wobei mindestens eine Netzwerkvorrichtung eine Mastersteuerung aus einer Vielzahl von Steuerungen auswählt. Eine Netzwerkvorrichtung kann erkennen, dass sie eine Mastersteuerung (z. B. wenn die Netzwerkvorrichtung eingeleitet ist oder wenn ihre Steuerungen versagen) und eine Steuerung als Mastersteuerung auswählen muss und die ausgewählte Steuerung von der Auswahl benachrichtigen muss. Die Auswahl kann auf einer oder mehreren Betrachtungen basieren, wie hierin beschrieben.
  • 1 ist ein Blockdiagramm eines exemplarischen Software-definierten Netzwerks („SDN”). Ein SDN ist im Allgemeinen ein Datennetzwerk, in dem einige oder alle Netzwerkvorrichtungen im Netzwerk durch unabhängige Steuerungen gesteuert werden. In einem allgemeinen Überblick ist eine exemplarische SDN 110 veranschaulicht, in der sich eine Vielzahl von SDN-Steuerungen 120 (a-n) (im Allgemeinen als Steuerungen 120 bezeichnet) befinden, die mit einer Vielzahl von Netzwerkvorrichtungen 130 über eine Control Plane 112 verbunden sind. Die Netzwerkvorrichtungen 130 sind miteinander (und/oder mit Vorrichtungen in anderen Datennetzwerken) über eine Data Plane 116 verbunden.
  • Jede Netzwerkvorrichtung 130 beteiligt sich in einem Datennetzwerk durch die Verbindung anderer Vorrichtungen. Netzwerkvorrichtungen ermöglichen einen Datenaustausch und wenden normalerweise die unteren Schichten des OSI an, z. B. physikalische Schichten, Datenverbindungsschichten und Netzwerkschichtprotokolle. Beispiele von Netzwerkvorrichtungen beinhalten, sind jedoch nicht beschränkt auf Hubs, Brücken, Schalter und Router. Die Netzwerkvorrichtungen 130 in einem SDN fügen sich der Steuerung durch eine unabhängige Steuerung 120. Ein Router in einem SDN ermöglicht beispielsweise einer unabhängigen Steuerung die Routingtabellen, die durch den Router verwendet werden, zu pflegen. Normalerweise ist jede Netzwerkvorrichtung 130 jeweils durch eine Steuerung 120 gesteuert. In einigen Ausführungsformen empfängt die Netzwerkvorrichtung 130 zusätzliche Konfigurationsanweisungen von einer zweiten Steuerung; in diesen Ausführungsformen sind diese zusätzlichen Konfigurationsanweisungen Standard- oder Ersatzkonfigurationen. In einigen Ausführungsformen empfängt eine Netzwerkvorrichtung 130 erste Konfigurationsanweisungen von einer ersten oder Mastersteuerung 120, die die Standardoder Ersatzkonfigurationen überschreiben. In einigen Ausführungsformen kann die Netzwerkvorrichtung 130, im Falle eines Fehlerereignisses oder Bestimmung zum Beenden der Steuerung durch die Mastersteuerung, eine der ersten Konfigurationsanweisungen löschen und auf die Standard- oder Ersatzkonfigurationen zurückgreifen.
  • Die Steuerungen 120 pflegen die Netzwerkvorrichtungen 130 in dem SDN 110. Die Steuerungen können Computersysteme sein, die durch eine Control Plane 112 mit den Netzwerkvorrichtungen verbunden sind. In einigen Ausführungsformen werden die Steuerungen als virtuelle Maschinen angewendet. In anderen Ausführungsformen werden die Steuerungen als Spezialcomputersysteme oder als Satz aus computerlesbaren Befehlssätzen, die in einem zugänglichen Computerspeicher gespeichert sind und durch einen oder mehrere Computing-Prozessoren ausgeführt werden, angewendet. In einigen Ausführungsformen tauscht jede Steuerung 120 Informationen aus, z. B. Synchronisationsinformationen mit den anderen Steuerungen 120. In einigen Ausführungsformen sendet jede Steuerung 120 regelmäßige Status- und Verfügbarkeitsbenachrichtigungen an die Netzwerkvorrichtungen 130.
  • Eine Data Plane 116 verbindet die Netzwerkvorrichtungen 130 zusammen in einem Netzwerk. Die Data Plane 116 ist in 1 als Satz einzelner Verbindungen veranschaulicht, die die Netzwerkvorrichtungen 130 direkt miteinander verbindet. In einigen Ausführungsformen werden die Netzwerkvorrichtungen 130 durch eine Data Plane verbunden, die einen geschalteten Stoff beinhaltet. Die Data Plane 116 trägt Datenpakete, die das Netzwerk durchlaufen.
  • Eine Control Plane 112 verbindet jede Netzwerkvorrichtung 130 mit den Steuerungen 120. Die Control Plane 112 ist in 1 als einzelne Verbindung veranschaulicht, die die Netzwerkvorrichtungen 130 direkt mit den SDN-Steuerungen 120 verbinden. In einigen Ausführungsformen werden die Netzwerkvorrichtungen 130 mit den Steuerungen 120 durch eine Control Plane verbunden, die einen geschalteten Stoff beinhaltet. In einigen Ausführungsformen überschneiden sich die Control Plane 112 und die Data Plane 116 und teilen Links oder sind die gleichen physikalischen Links. In einigen Ausführungsformen ist die Control Plane drahtlos. Die Control Plane 112 trägt Konfigurationsdaten und Steuerungsinformationen zwischen den SDN-Steuerungen 120 und den Netzwerkvorrichtungen 130.
  • 2 ist ein Blockdiagramm einer exemplarischen Software-definierten Netzwerk(„SDN”)-Steuerung 220 und einer Netzwerkvorrichtung 230, die durch einen Control-Plane-Link 112 getrennt sind. In einem allgemeinen Überblick beinhaltet die SDN-Steuerung 220 ein Steuermodul 242 und einen Speicher 226, die Konfigurations- und Routingdaten speichern. Die Netzwerkvorrichtung 230 beinhaltet ein Steuermodul 244 und einen Speicher 236, die Konfigurations- und Routingdaten speichern. Die Netzwerkvorrichtung 230 beinhaltet ein Weiterleitungsmodul 234, das die Konfigurations- und Routingdaten im Speicher 236 verwendet, um den Datenverkehr an den Netzwerkschnittstellen 238 (a-n) (im Allgemeinen als Netzwerkschnittstelle oder Netzwerkschnittstellenanschlüsse 238 bezeichnet) zu verwalten. Die SDN-Steuerung 220 und die Netzwerkvorrichtung 230 sind zum Verwenden als SDN-Steuerungen 120 und Netzwerkvorrichtungen 130 geeignet, veranschaulicht in 1.
  • Mit detaillierterer Bezugnahme auf 2 beinhaltet die SDN-Steuerung 220 ein Steuermodul 242 und einen Speicher 226, die Konfigurations- und Routingdaten speichern. Das Steuermodul 242 verwendet die Konfigurations- und Routingdaten, die im Speicher 226 zum Konfigurieren der Netzwerkvorrichtung 230 gespeichert sind. In einigen Ausführungsformen ist das Steuermodul 242 als Spezialschaltung (z. B. einer ASIC) angewendet. In einigen Ausführungsformen ist das Steuermodul 242 als Satz aus computerlesbaren Befehlssätzen angewendet, die in einem zugänglichen Computerspeicher gespeichert sind und durch einen oder mehrere Computing-Prozessoren ausgeführt werden. In einigen Ausführungsformen sendet das Steuermodul 242 regelmäßige Status- und Verfügbarkeitsbenachrichtigungen an die Netzwerkvorrichtungen 230.
  • Die Netzwerkvorrichtung 230 beinhaltet ein Steuermodul 244 und einen Speicher 236, die Konfigurations- und Routingdaten speichern. Das Netzwerkvorrichtungs-Steuermodul 244 empfängt die Konfigurations- und Routinginformationen vom SDN-Steuerungs-Steuermodul 242 (über die Control Plane 112) und aktualisiert die Konfigurations- und Routingdaten, die im Speicher 236 gespeichert sind. In einigen Ausführungsformen ist das Steuermodul 244 als Spezialschaltung (z. B. einer ASIC) angewendet. In einigen Ausführungsformen ist das Steuermodul 244 als Satz aus computerlesbaren Befehlssätzen angewendet, die in einem zugänglichen Computerspeicher gespeichert sind und durch einen oder mehrere Computing-Prozessoren ausgeführt werden.
  • Die Netzwerkvorrichtung 230 beinhaltet einen Satz Netzwerkschnittstellenanschlüsse 238. Jeder Netzwerkschnittstellenanschluss 238 kann mit einer Data Plane 116 verbunden sein. In einigen Ausführungsformen sind die Verbindungen bidirektionale Datenlinks. In einigen Ausführungsformen sind die Verbindungen unidirektionale Datenlinks, wobei jeder Link entweder ein- oder ausgeht. Vorrichtungen, die mit der Netzwerkvorrichtung 230 über einen oder mehrere Netzwerkschnittstellenanschlüsse 238 verbunden sind, tauschen Datenpakete mit der Netzwerkvorrichtung 230 über die Data Plane 116 aus. Ein Datenpaket kann beispielsweise an der Netzwerkvorrichtung 230 über eine erste Schnittstelle (z. B. Netzwerkschnittstelle 238 (a)) ankommen, was die Netzwerkvorrichtung 230 zum Verarbeiten des empfangenen Datenpakets veranlasst und dieses an einen entsprechenden nächsten Hop über eine zweite Schnittstelle (z. B. Netzwerkschnittstelle 238 (b)) weiterleitet. Das Weiterleitungsmodul 234 ermittelt, welche Netzwerkschnittstellen 238 zum Weiterleiten jedes empfangenen Datenpakets verwendet werden.
  • Das Weiterleitungsmodul 234 verwendet die Konfigurations- und Routingdaten 236 im Speicher, um den Datenverkehr an den Netzwerkschnittstellenanschlüssen 238 zu verwalten. Die Konfigurations- und Routingdaten im Speicher 236 werden durch die SDN-Steuerung 220 über das Steuermodul 244 gesteuert.
  • In einigen Ausführungsformen ist die Netzwerkvorrichtung 230 mit einer Vielzahl von SDN-Steuerungen 220 verbunden. In solchen Ausführungsformen ermittelt die Netzwerkvorrichtung 230, welcher der mehreren SDN-Steuerungen 220 die Konfigurations- und Routinginformationen senden kann; das heißt, die Netzwerkvorrichtung 230 fügt sich der Steuerung durch eine SDN-Steuerung 220, die durch eine Netzwerkvorrichtung 230 ausgewählt ist. Das Netzwerkvorrichtungs-Steuermodul 244 wählt die SDN-Steuerung 220 für die Netzwerkvorrichtung 230 aus. In einigen Ausführungsformen ermittelt das Netzwerkvorrichtungs-Steuermodul 244 das Auswählen einer SDN-Steuerung und zum Einleiten der Auswahlroutine. Das Netzwerkvorrichtungs-Steuermodul 244 benachrichtigt dann die ausgewählte SDN-Steuerung, dass sich die Netzwerkvorrichtung 230 der Steuerung durch die ausgewählte SDN-Steuerung fügen wird.
  • Der SDN-Steuerungs-Speicher 226 und der Netzwerkvorrichtungs-Speicher 236 können jeweils jede geeignete Vorrichtung zum Speichern von computerlesbaren Daten sein. Der Speicher kann dem Speicher 770 ähnlich sein, veranschaulicht in 7 und im Folgenden beschrieben. Beispiele beinhalten, sind jedoch nicht beschränkt auf, Halbleiterspeichervorrichtungen, wie etwa EPROM, EEPROM, SDRAM und Flash-Speichergeräte. Eine SDN-Steuerung 220 kann jede Anzahl von Speichervorrichtungen 226 aufweisen. Eine Netzwerkvorrichtung 230 kann jede Anzahl von Speichervorrichtungen 236 aufweisen.
  • 36 sind Flussdiagramme, die Verfahren veranschaulichen, die beim Auswählen einer Mastersteuerung für eine Netzwerkvorrichtung verwendet werden. In jedem Verfahren wählt eine Netzwerkvorrichtung eine SDN-Steuerung als Mastersteuerung für die Netzwerkvorrichtung aus. Im Allgemeinen gibt es viele Gründe dafür, warum eine Netzwerkvorrichtung eine Mastersteuerung wählen könnte. Diese beinhalten zum Beispiel: die Netzwerkvorrichtung kann sich in einer Initialisierungsphase befinden, z. B. nach der Installation oder einem Neustart und weist somit noch keine Mastersteuerung auf; die Netzwerkvorrichtung kann eine Steuerungsbenachrichtigung empfangen, die diese zum Auswählen einer neuen Mastersteuerung anweist, z. B. kann die Steuerung die Netzwerkvorrichtung ausdrücklich ablehnen; die Netzwerkvorrichtung kann so konfiguriert sein, dass sie regelmäßig eine Mastersteuerung neu auswählt; oder es kann ein Fehler in der Kommunikation mit der Mastersteuerung auftreten, z. B. können eine Steuerung oder eine Kommunikationsverbindung an eine Steuerung versagen. Eine Netzwerkvorrichtung kann einen Fehler durch die Überwachung für regelmäßige Benachrichtigungen von einer Steuerung oder durch regelmäßiges Testen des Status seiner Mastersteuerung erkennen. In einigen Ausführungsformen senden die SDN-Steuerungen 120 regelmäßige Benachrichtigungen (z. B. Keep-Alive-Benachrichtigungen) an die Netzwerkvorrichtung 130. Die Benachrichtigungen können an alle Netzwerkvorrichtungen oder nur an die Vorrichtungen gesendet werden, für die die Steuerung verantwortlich ist. In einigen Ausführungsformen senden die Steuerungen 120 regelmäßig Verfügbarkeitsbenachrichtigungen an alle Netzwerkvorrichtungen und diese Verfügbarkeitsbenachrichtigungen fungieren als Keep-Alive-Benachrichtigungen. In einigen Ausführungsformen fordern die Netzwerkvorrichtungen regelmäßig eine Reaktion von ihren entsprechenden Mastersteuerungen an, z. B. durch das Senden eines ICMP Echo-Requests („Ping”).
  • 3 ist ein Flussdiagramm für ein exemplarisches Verfahren 300, in dem eine Netzwerkvorrichtung eine Steuerung auswählt. In einem allgemeinen Überblick beginnt das Verfahren 300 mit einer Netzwerkvorrichtung in einem SDN, das bestimmt, dass es eine neue SDN-Mastersteuerung (Phase 310) auswählt und eine Auswahl der Steuerung (Phase 330) einleitet. Die Netzwerkvorrichtung empfängt eine oder mehrere Verfügbarkeitsbenachrichtigungen der Steuerung von einem oder mehreren Steuerungen aus einer Vielzahl von Steuerungen, die im SDN beinhaltet sind (Phase 340). Die Netzwerkvorrichtung wählt eine Steuerung aus, aus einer Vielzahl von Steuerungen der SDN-Steuerungen als eine Mastersteuerung für die Netzwerkvorrichtung anhand der empfangenen Verfügbarkeitsbenachrichtigungen der Steuerung (Phase 350). Die Netzwerkvorrichtung meldet dann die Auswahl der Mastersteuerung an die ausgewählte Mastersteuerung (Phase 360) und fügt sich der Steuerung durch die ausgewählte Mastersteuerung (Phase 370).
  • In Verfahren 300 ist das Ermitteln der Netzwerkvorrichtung in einem SDN zum Einleiten der Auswahl der Steuerung (Phase 310) näher beschrieben. Die Bestimmung kann wie oben beschrieben verfahren. In einigen Ausführungsformen kann die Netzwerkvorrichtung das Einleiten einer Auswahl der Steuerung ermitteln, die auf das Erkennen, dass sie keine Mastersteuerung aufweist, reagiert. In einigen Ausführungsformen kann die Netzwerkvorrichtung das Einleiten einer Auswahl der Steuerung ermitteln, die auf ein Ereignis reagiert, wie etwa das Empfangen einer Benachrichtigung, die die Netzwerkvorrichtung zum Auswählen einer neuen Mastersteuerung oder dem Ablauf eines Timers anweist.
  • In einigen Ausführungsformen kann die Netzwerkvorrichtung einen beliebigen Zeitraum (Phase 320) zwischen der Ermittlung warten, zum Auswählen einer neuen Mastersteuerung (Phase 310) und zum Einleiten der Auswahl der Steuerung (330). In bestimmten Szenarien können eine Vielzahl von Netzwerkvorrichtungen gleichzeitig eine Ersatz-Mastersteuerung auswählen. Eine bisherige Mastersteuerung kann beispielsweise versagen, wobei viele Netzwerkvorrichtungen ohne Mastersteuerung verbleiben. In anderen exemplarischen Szenarien beinhalten Situationen, in denen eine Kommunikationsverbindung an die bisherige Mastersteuerung versagt hat und wobei eine Anzahl neuer Netzwerkvorrichtungen gemeinsam installiert werden. In einigen Ausführungsformen wartet jede Netzwerkvorrichtung einen beliebigen Zeitraum (Phase 320) nach der Ermittlung des Auswählens einer Mastersteuerung (Phase 310) vor dem Fortschreiten mit der Auswahl des Verfahrens, um zu vermeiden, dass eine Vielzahl von Netzwerkvorrichtungen gleichzeitig ausgewählt werden und dieselbe Mastersteuerung überladen. In einigen Ausführungsformen kann dieser Wartezeitraum als Teil der Einleitung der Auswahl der Steuerung (Phase 330) angewendet werden; das heißt, die Einleitung kann eine beliebige Verzögerungsphase beinhalten.
  • In Verfahren 300 leitet die Netzwerkvorrichtung, als Reaktion auf die Ermittlung in Phase 310, die Auswahl der Steuerung (Phase 330) ein. In einigen Ausführungsformen leitet die Netzwerkvorrichtung eine Auswahlroutine ein, die das Sammeln und Verarbeiten von Informationen für die Auswahl einer Mastersteuerung beinhaltet. In einigen Ausführungsformen sammelt die Netzwerkvorrichtung routinemäßig Informationen und ist in der Lage eine Mastersteuerung auszuwählen, die auf die Ermittlung, dass sie dieses tun muss, reagiert.
  • In einigen Ausführungsformen weist die Netzwerkvorrichtung jeweils eine Mastersteuerung und eine Back-Up-Steuerung auf. In diesen Ausführungsformen verwendet die Netzwerkvorrichtung die empfangenen Konfigurationsanweisungen von der Back-Up-Steuerung, wenn die Netzwerkvorrichtung das Auswählen einer neuen Mastersteuerung ermittelt bis eine neue Mastersteuerung durch die Netzwerkvorrichtung ausgewählt ist. In einigen Ausführungsformen kann die Back-Up-Steuerung die Rolle der Mastersteuerung annehmen und die Netzwerkvorrichtung leitet die Auswahl einer neuen Back-Up-Steuerung ein, anstatt der Auswahl einer neuen Mastersteuerung, wenn die Netzwerkvorrichtung ermittelt, dass ein Wechsel zu einer neuen Mastersteuerung angebracht ist.
  • Die Netzwerkvorrichtung empfängt eine oder mehrere Verfügbarkeitsbenachrichtigungen der Steuerung von einem oder mehreren Steuerungen aus einer Vielzahl von Steuerungen, die im SDN beinhaltet sind (Phase 340). In einigen Ausführungsformen senden die SDN-Steuerungen 120 regelmäßig Verfügbarkeitsbenachrichtigungen. In einigen dieser Ausführungsformen werden diese Benachrichtigungen zu regelmäßigen Intervallen gesendet. In einigen Ausführungsformen werden regelmäßige Benachrichtigungen zu unregelmäßigen Intervallen gesendet, wie etwa einem zufälligen Intervall plus einem zufälligen Zeitraum, sodass die Steuerungen nicht ständig gleichzeitig die Verfügbarkeit senden. In einigen Ausführungsformen senden die SDN-Steuerungen 120 Verfügbarkeitsbenachrichtigungen, die auf eine Anfrage reagieren, z. B. eine Anfrage aus der Netzwerkvorrichtung 130, die eine Steuerung benötigt.
  • In einigen Ausführungsformen werden Verfügbarkeitsbenachrichtigungen durch das SDN gesendet. In einigen Ausführungsformen senden die SDN-Steuerungen 120 Benachrichtigungen an spezifische Netzwerkadressen, z. B. Adressen für Netzwerkvorrichtungen. Eine SDN-Steuerung kann beispielsweise eine Adressliste oder Adressbereiche für Netzwerkvorrichtungen pflegen, die die Steuerung voraussichtlich steuern wird. In einigen Ausführungsformen unterscheidet sich die SDN-Control Plane 112 physisch von der Data Plane 116 und ein Sendevorgang auf der Control Plane 112 ist gezielt auf die Netzwerkvorrichtungen 130 ausgerichtet, die durch die Steuerungen 120 gesteuert werden können.
  • In einigen Ausführungsformen sind die Verfügbarkeitsbenachrichtigungen einfache Kennungen, die den Empfänger alarmieren, dass die, durch die Benachrichtigung identifizierte Steuerung, verfügbar ist. In einigen Ausführungsformen beinhalten die Verfügbarkeitsbenachrichtigungen einen oder mehrere Informationspunkte, einschließlich beispielsweise Benachrichtigungen einer Anzahl von Netzwerkvorrichtungen, die durch die Steuerung, eine Kapazitätsanzeige, eine Maschinenidentifikation, eine geografische Identifikation, einen Zeitstempel, eine aktive Zeit, einen Lamport-Zeitstempel, eine Sequenznummer, eine Versionsnummer oder Statusinformationen gesteuert sind.
  • Bei der Fortsetzung des Verfahrens 300 wählt die Netzwerkvorrichtung eine Steuerung aus, aus einer Vielzahl von Steuerungen der SDN-Steuerungen als eine Mastersteuerung für die Netzwerkvorrichtung anhand der empfangenen Verfügbarkeitsbenachrichtigungen der Steuerung (Phase 350). Die Netzwerkvorrichtung 130 sammelt und verarbeitet die eine oder mehrere Verfügbarkeitsbenachrichtigungen, die in Phase 240 empfangen werden. Die Netzwerkvorrichtung 130 verwendet die Informationen, die in oder geschlussfolgert aus der einen oder mehreren Benachrichtigungen angezeigt werden, um eine Steuerung 120 zum Verwenden als eine Mastersteuerung für eine Netzwerkvorrichtung 130 auszuwählen. In einigen Ausführungsformen, wie im Folgenden mit Bezugnahme auf 4 beschrieben, wählt die Netzwerkvorrichtung 130 die erste SDN-Steuerung 120 aus, aus der sie eine Verfügbarkeitsbenachrichtigung nach der Einleitung der Auswahl der Steuerung bei Phase 330 empfängt. In einigen Ausführungsformen wählt die Netzwerkvorrichtung 130 die Steuerung 120 mit den wünschenswertesten Eigenschaften aus. Die Netzwerkvorrichtung kann, wie im Folgenden mit Bezugnahme auf 5 beschrieben, beispielsweise eine oder mehrere Eigenschaften (oder Werte, die die Eigenschaften repräsentieren) der verfügbaren SDN-Steuerungen vergleichen und die Auswahl auf dem Vergleich basieren. In einigen Ausführungsformen wählt die Netzwerkvorrichtung 120 für eine Steuerung 120 mit einer niedrigeren Belastung, größerer Kapazität, weniger Latenz, genauerer Nähe oder einer wünschenswerten Kombination diesen aus. Die Netzwerkvorrichtung 130 kann, wie im Folgenden mit Bezugnahme auf 6 beschrieben, beispielsweise die Latenz der Steuerkommunikationszeit messen und die Latenzmesswerte zum Auswählen einer Steuerung 120 als Mastersteuerung für eine Netzwerkvorrichtung 130 verwenden.
  • Wie oben beschrieben wählt die Netzwerkvorrichtung 130 in einigen Ausführungsformen ebenfalls eine zweite Steuerung 120 zum Verwenden als zweite (oder Backup-)Steuerung. In einigen Ausführungsformen verwaltet eine zweite Steuerung Standard- oder Ersatzkonfigurationsdetails für die Netzwerkvorrichtung 130, sodass die Mastersteuerung volle Kontrolle hat, die Netzwerkvorrichtung jedoch auf eine Änderung vorbereitet ist. Die Netzwerkvorrichtung 130 kann beispielsweise Standardkonfigurationsdaten pflegen, die von der ausgewählten zweiten Steuerung empfangen werden. Die Netzwerkvorrichtung 130 kann die Standardkonfigurationsdaten bei Abwesenheit von spezifischen Konfigurationsdaten verwenden. Wenn die Netzwerkvorrichtung 130 spezifische Konfigurationsdaten von der Mastersteuerung empfängt, werden die spezifischen Konfigurationsdaten den Standardkonfigurationsdaten vorgezogen. Somit hat die Mastersteuerung Kontrolle über die Netzwerkvorrichtung 130. Im Falle eines Fehlerereignisses oder der Beendigung der Netzwerkvorrichtung/Mastersteuerung-Beziehung, kann die Netzwerkvorrichtung die von der Mastersteuerung empfangenen Konfigurationsdaten löschen und auf die Standardkonfigurationen, die durch die zweite Steuerung eingestellt sind, zurückgreifen. In einigen Ausführungsformen wartet die Netzwerkvorrichtung eine gewisse Zeit nach dem besagten Ausfall oder der Beendigung bevor sie die spezifischen, von der Mastersteuerung empfangenen Konfigurationsdaten, löscht. In einigen Ausführungsformen wählt die Netzwerkvorrichtung automatisch die zweite Steuerung als Mastersteuerung und wählt erst bei Phase 350 eine zweite Steuerung.
  • Die Netzwerkvorrichtung meldet dann die Auswahl der Mastersteuerung an die ausgewählte Mastersteuerung (Phase 360). Die Netzwerkvorrichtung 130 benachrichtigt die ausgewählte Steuerung 120, um das Senden der Steuerungsbenachrichtigungen zu beginnen und sich den Steuerungsbenachrichtigungen zu fügen, die von der ausgewählten SDN-Steuerung 120 empfangen werden. In einigen Ausführungsformen sendet die Netzwerkvorrichtung 120 die Auswahlbenachrichtigungen an alle Steuerungen im SDN, um diese über die als Mastersteuerung ausgewählte Steuerung zu benachrichtigen. In einigen Ausführungsformen wählt die Netzwerkvorrichtung eine zweite Steuerung als Back-Up- oder Ersatzsteuerung aus. In einigen Ausführungsformen wählt die Netzwerkvorrichtung eine Mastersteuerung und eine zweite Steuerung aus, wobei die Netzwerkvorrichtung Benachrichtigungen an jede Steuerung zum Benachrichtigen dieser über die Auswahl sendet. Wenn eine ausgewählte Steuerung 120 sich nicht auswählen lässt (z. B. ist die ausgewählte Steuerung überladen oder anderweitig nicht zum Annehmen der Auswahl in der Lage), kann die Netzwerkvorrichtung 130 das Verfahren 300 wiederholen und eine neue SDN-Steuerung 130 auswählen. In einigen dieser Ausführungsformen kann die Netzwerkvorrichtung die Steuerung, die die Auswahl abgelehnt hat, disqualifizieren oder anderweitig die Chance einer erneuten Auswahl einer Steuerung, die die Auswahl abgelehnt hat, verringern. Die Netzwerkvorrichtung 130 kann beispielsweise die Auswahl einer Steuerung 120 vermeiden, die die Auswahl innerhalb eines festgelegten Zeitraums (z. B. der letzten 30 Sekunden) abgelehnt hat, sodass die Steuerung 120 später als Option wiederhergestellt wird, wodurch die Chance verringert wird, dass es der Netzwerkvorrichtung 130 nicht an einer SDN-Steuerungen 120 mangelt.
  • Die Netzwerkvorrichtung 130 fügt sich dann der Steuerung durch die ausgewählte Mastersteuerungsvorrichtung (Phase 370). Die Netzwerkvorrichtung 130 kann Steuerungsbenachrichtigungen von der ausgewählten Mastersteuerung empfangen. Die Netzwerkvorrichtung 130 kann Konfigurationen und/oder Routinganweisungen von der ausgewählten Mastersteuerung empfangen. Die Netzwerkvorrichtung 130 kann Benachrichtigungen priorisieren, die von der ausgewählten Mastersteuerung 120 empfangen wurden und kann die Anweisung von anderen Steuerungen 120 im SDN verweigern. In einigen Ausführungsformen wählt die Netzwerkvorrichtung 130, wie oben angezeigt, ebenfalls eine zweite Steuerung 120 als Back-Up- oder Ersatzsteuerung aus. In solchen Ausführungsformen kann die Netzwerkvorrichtung ebenfalls Steuerungsbenachrichtigungen von der ausgewählten zweiten Steuerung empfangen und verarbeiten. Die zweite Steuerung kann beispielsweise die Standardkonfigurationen für die Netzwerkvorrichtung 130 verwalten, wie oben beschrieben.
  • 4 ist ein Flussdiagramm für ein Verfahren 400, in dem eine Netzwerkvorrichtung eine erste verfügbare Steuerung auswählt. In einem allgemeinen Überblick beginnt das Verfahren 400 mit einer Netzwerkvorrichtung in einem SDN, die die Auswahl einer Mastersteuerung (Phase 430) einleitet. Die Netzwerkvorrichtung empfängt eine Verfügbarkeitsbenachrichtigung der Steuerung von mindestens einer SDN-Steuerung aus einer Vielzahl von Steuerungsvorrichtungen, die im SDN (Phase 440) beinhaltet sind. Die Netzwerkvorrichtung wählt eine SDN-Steuerung als Mastersteuerung für die Netzwerkvorrichtung anhand des Empfangens der Verfügbarkeitsbenachrichtigungen der Steuerung für diese SDN-Steuerung vor dem Empfangen irgendeiner anderen Verfügbarkeitsbenachrichtigung der Steuerung aus irgendeiner der mehreren Steuerungen im SDN (Phase 450).
  • Ausführlicher beschrieben, leitet die Netzwerkvorrichtung im Verfahren 400 die Auswahl der Steuerung (Phase 430) ein. Wie oben in Bezugnahme auf 3 beschrieben, ermittelt die Netzwerkvorrichtung 130 das Auswählen einer neuen Mastersteuerung 120 und leitet die Auswahl der Steuerung ein. In einigen Ausführungsformen kann die Netzwerkvorrichtung 130 einen beliebigen Zeitraum zwischen der Ermittlung warten, zum Auswählen einer neuen Mastersteuerung 120 und zum Einleiten der Auswahl der Steuerung. In einigen Ausführungsformen beinhaltet das Einleiten der Auswahl der Steuerung bei Phase 430 das Beginnen des Wartens auf Verfügbarkeitsbenachrichtigungen der Steuerung (das heißt, dass die Netzwerkvorrichtung 130 in einigen Ausführungsformen routinemäßig Verfügbarkeitsbenachrichtigungen der Steuerung empfangen und ignorieren kann – sofern die Netzwerkvorrichtung 130 das Auswählen einer neuen Mastersteuerung 120 ermittelt hat und in einigen Ausführungsformen beginnt die Netzwerkvorrichtung 130 nach einer kurzen zufälligen Verzögerung mit dem Verarbeiten der empfangenen Verfügbarkeitsbenachrichtigungen der Steuerung, um eine Auswahl zu treffen).
  • Die Netzwerkvorrichtung 130 empfängt eine Verfügbarkeitsbenachrichtigung der Steuerung von mindestens einer Steuerung 120 aus einer Vielzahl von Steuerungen, die im SDN (Phase 440) beinhaltet sind. In einigen Ausführungsformen überträgt jede SDN-Steuerung 120 regelmäßig Verfügbarkeitsbenachrichtigungen. Eine Netzwerkvorrichtung 130 empfängt diese Benachrichtigungen während der Auswahl einer neuen Mastersteuerung 120 (Phase 430). Die Netzwerkvorrichtung kann eine Vielzahl von Verfügbarkeitsbenachrichtigungen empfangen. In einigen Ausführungsformen ordnet die Netzwerkvorrichtung die Verfügbarkeitsbenachrichtigungen danach, wann diese empfangen wurden. In einigen Ausführungsformen ordnet die Netzwerkvorrichtung die Verfügbarkeitsbenachrichtigungen nach Sequenzinformationen in den Benachrichtigungen, z. B. Steuerungszeitstempeln, Netzwerkzeitstempeln oder Lamport-Zeitstempeln. In einigen Ausführungsformen erhält die Netzwerkvorrichtung einen Zwischenspeicher für die aktuellsten empfangenen Verfügbarkeitsbenachrichtigungen aufrecht, wobei jede Benachrichtigung jede bisherige Information ersetzt.
  • Die Netzwerkvorrichtung 130 wählt eine SDN-Steuerung 120 als Mastersteuerung für die Netzwerkvorrichtung 130 anhand des Empfangens der Verfügbarkeitsbenachrichtigungen der Steuerung vor dem Empfangen irgendwelcher anderen Verfügbarkeitsbenachrichtigungen der Steuerung aus irgendeiner der mehreren Steuerungen 120 im SDN (Phase 450). Das heißt, die Netzwerkvorrichtung 130 wählt die erste SDN-Steuerung 120 aus, aus der sie eine Verfügbarkeitsbenachrichtigung nach der Einleitung der Auswahl der Steuerung bei Phase 430 empfängt. In einigen Ausführungsformen wählt die Netzwerkvorrichtung 130 die erste SDN-Steuerung 120 aus, aus der sie eine Verfügbarkeitsbenachrichtigung nach dem Abwarten eines beliebigen Zeitraums empfängt (z. B. wie im Folgenden mit Bezugnahme auf Phase 320 beschrieben). In einigen Ausführungsformen wählt die Netzwerkvorrichtung 130 die Mastersteuerung 120 aus, die die ersten empfangenen Verfügbarkeitsbenachrichtigungen der Steuerung sendet, wenn die Netzwerkvorrichtung 130 keine zusätzlichen Verfügbarkeitsbenachrichtigungen der Steuerung nach einer gewissen Zeit empfangen hat.
  • 5 ist ein Flussdiagramm für ein Verfahren 500, in dem eine Netzwerkvorrichtung eine Steuerung anhand der Leistungsmerkmale auswählt. In einem allgemeinen Überblick beginnt das Verfahren 500 mit einer Netzwerkvorrichtung in einem SDN, die die Auswahl einer Mastersteuerung (Phase 510) einleitet. Die Netzwerkvorrichtung empfängt Verfügbarkeitsbenachrichtigungen der Steuerung von zwei oder mehreren Steuerungen aus einer Vielzahl von Steuerungen, die im SDN beinhaltet sind (Phase 520). Die Netzwerkvorrichtung bestimmt einen entsprechenden Wert für das Leistungsmerkmal der Steuerungen für jede der zwei oder mehreren SDN-Steuerungen aus der diese Verfügbarkeitsbenachrichtigungen der Steuerung empfangen hat (Phase 530). Die Netzwerkvorrichtung vergleicht die entsprechenden Werte für die SDN-Steuerungen (Phase 540). Die Netzwerkvorrichtung wählt eine Steuerung aus der Vielzahl von Steuerungen als Mastersteuerung für die Netzwerkvorrichtung anhand des Vergleichs aus (Phase 550).
  • Ausführlicher beschrieben, leitet die Netzwerkvorrichtung im Verfahren 500 die Auswahl der Steuerung (Phase 510) ein. Wie oben in Bezugnahme auf 3 beschrieben, ermittelt die Netzwerkvorrichtung 130 das Auswählen einer neuen Mastersteuerung 120 und leitet die Auswahl der Steuerung ein. In einigen Ausführungsformen kann die Netzwerkvorrichtung 130 einen beliebigen Zeitraum zwischen der Ermittlung warten, zum Auswählen einer neuen Mastersteuerung 120 und zum Einleiten der Auswahl der Steuerung. In einigen Ausführungsformen beinhalten die Einleitung der Auswahl der Steuerung bei Phase 510 das Beginnen des Wartens aus Verfügbarkeitsbenachrichtigungen der Steuerung.
  • Die Netzwerkvorrichtung 130 empfängt Verfügbarkeitsbenachrichtigungen der Steuerung von zwei oder mehreren Steuerungen 120 aus einer Vielzahl von Steuerungen, die im SDN beinhaltet sind (Phase 520). In einigen Ausführungsformen verarbeitet die Netzwerkvorrichtung jede Verfügbarkeitsbenachrichtigung während jede Benachrichtigung zum Identifizieren von Informationen über die Steuerung, die die Benachrichtigungen sendet, ankommt. In einigen Ausführungsformen erhält die Netzwerkvorrichtung einen Zwischenspeicher für die mehreren Verfügbarkeitsbenachrichtigungen aufrecht und platziert eingehende Verfügbarkeitsbenachrichtigungen im Zwischenspeicher bis diese verarbeitet werden können.
  • Die Netzwerkvorrichtung bestimmt einen entsprechenden Wert für das Leistungsmerkmal der Steuerungen für jede der zwei oder mehreren Steuerungen aus der diese Verfügbarkeitsbenachrichtigungen der SDN-Steuerungen empfangen hat (Phase 530). Die Netzwerkvorrichtung 130 empfängt die Verfügbarkeitsbenachrichtigungen der Steuerung (in Phase 520) und verarbeitet diese zum Ermitteln der Merkmalsinformationen über die sendenden SDN-Steuerungen 120. Die Netzwerkvorrichtung 130 kann beispielsweise von der Verfügbarkeitsbenachrichtigung der Steuerung eine Identität der sendenden SDN-Steuerung 120, einen aktuellen Belastungsstand für die sendenden SDN-Steuerungen 120, Kapazitätslevel für die sendenden SDN-Steuerungen 120 und/oder die Kommunikationslaufzeit von dem Zeitpunkt an dem die Verfügbarkeitsbenachrichtigung gesendet und empfangen wurde, ermitteln. In einigen Ausführungsformen verarbeitet die Netzwerkvorrichtung jede Verfügbarkeitsbenachrichtigung der Steuerung unabhängig davon, ob die Netzwerkvorrichtung eine Mastersteuerung auswählt. Wenn die Netzwerkvorrichtung die Verfügbarkeitsbenachrichtigungen der Steuerung empfangen und verarbeitet hat, kann die Netzwerkvorrichtung die Informationen erhalten haben, die sie zum Auswählen einer Mastersteuerung verwenden wird.
  • Das Leistungsmerkmal kann eine Anzahl der Netzwerkvorrichtungen sein, die durch eine entsprechende Steuerung entweder als Mastersteuerung, als zweite Steuerung oder beide gesteuert werden. Das Leistungsmerkmal kann ein Indikator der Kapazität an der entsprechenden Steuerung sein, z. B. wie viel mehr Netzwerkvorrichtungen die Steuerung steuern könnte. Das Leistungsmerkmal kann ein Messwert der Latenz für die Kommunikation zwischen der Netzwerkvorrichtung und der entsprechenden Steuerung sein. Die Latenz kann beispielsweise unter Verwendung des in 6 und im Folgenden beschriebenen veranschaulichten Verfahrens gemessen werden. In einigen Ausführungsformen wird die Latenz über das Senden einer Anfrage und das Messen eines Zeitraums, bis eine Reaktion auf die Anfrage empfangen ist, gemessen. In einigen Ausführungsformen wird die Latenz über das Vergleichen eines gesendeten Zeitstempels in einer Verfügbarkeitsbenachrichtigung an eine aktuelle Zeit an der Netzwerkvorrichtung (z. B. unter Verwendung von Uhren, die durch das NTP-Netzwerk-Zeitprotokoll synchronisiert sind) gemessen. Das Leistungsmerkmal kann ein Indikator für den Abstand zur SDN-Steuerung, z. B. einer Anzahl von Hops durch die Control Plane, sein.
  • Die Netzwerkvorrichtung vergleicht dann die entsprechenden Werte für die SDN-Steuerungen (Phase 540) und wählt eine Steuerung aus der Vielzahl von Steuerungen als Mastersteuerung für die Netzwerkvorrichtung anhand des Vergleichs aus (Phase 550). Die Netzwerkvorrichtung 130 kann eine Mastersteuerung 120 anhand der bevorzugten Merkmalwerte einzeln oder in Kombination auswählen. Die Netzwerkvorrichtung kann beispielsweise eine Steuerung mit der niedrigsten Anzahl an Netzwerkvorrichtungen unter ihrer Kontrolle oder die Steuerung mit der niedrigsten Latenz auswählen. In einigen Ausführungsformen werden eine Vielzahl von Merkmalen für den Vergleich verwendet (bei Phase 540). Die Netzwerkvorrichtung kann beispielsweise ein Verhältnis der Steuerungskapazität zur Latenz ermitteln und die Steuerung mit dem besten Verhältnis auswählen. Dieses kann in einer Auswahl einer Steuerung mit weniger Kapazität resultieren, jedoch ebenfalls weniger Latenz oder der Auswahl einer Steuerung mit höherer Kapazität, jedoch nicht der niedrigsten Latenz. Nach dem Auswählen der Mastersteuerung sendet die Netzwerkvorrichtung eine Benachrichtigung an die Mastersteuerung (wie in Phase 360 in 3) und fügt sich der Steuerung durch die ausgewählte Mastersteuerung (wie in Phase 370 in 3).
  • 6 ist ein Flussdiagramm für ein Verfahren, in dem eine Netzwerkvorrichtung die Latenz als Leistungsmerkmal misst. In einem allgemeinen Überblick sendet in Verfahren 600 eine Netzwerkvorrichtung 130 in einem SDN 110 Anfragen an die Steuerungen 120 im SDN (Phase 610). Die Netzwerkvorrichtung 130 misst über einen Zeitraum für jede SDN-Steuerung 120, bis sie eine Reaktion von der entsprechenden Steuerung empfängt (Phase 620). Die Netzwerkvorrichtung aktualisiert einen Durchschnitt der Latenzmesswerte (für jede Steuerung) anhand des gemessenen Zeitraums (Phase 630). Die Netzwerkvorrichtung 130 wiederholt den Ablauf der Phasen 610630 bis die Netzwerkvorrichtung eine Auswahl der Steuerung einleitet (z. B. Phase 330 in 3 oder Phase 510 in 5). Wenn die Netzwerkvorrichtung die Auswahl einer Mastersteuerung (Phase 640) eingeleitet hat, vergleicht die Netzwerkvorrichtung die mittlere Latenz für jede SDN-Steuerung mit den mittleren Latenzmesswerten für eine oder mehrere Steuerungen im SDN (Phase 650). Die Netzwerkvorrichtung wählt dann die SDN-Steuerung 120 als Mastersteuerung für die Netzwerkvorrichtung 130 anhand des Vergleichs aus (Phase 660).
  • Ausführlicher beschrieben sendet in Verfahren 600 eine Netzwerkvorrichtung in einem SDN eine Anfrage an eine Steuerung im SDN (Phase 610). In einigen Ausführungsformen sendet die Netzwerkvorrichtung 130 beispielsweise einen ICMP-Echo-Request (einen ”Ping”) oder eine Anfragebenachrichtigung, um eine Reaktion von der SDN-Steuerung 120 zu veranlassen. In einigen Ausführungsformen sendet die Netzwerkvorrichtung 130 regelmäßig Anfragen, z. B. zu vorbestimmten Intervallen. Die Intervalle können eine durch die SDN-Steuerung 120 gesteuerte Konfigurationen sein. In einigen Ausführungsformen sendet die Netzwerkvorrichtung 130 eine Anfrage als Reaktion auf ein Ereignis. Die Netzwerkvorrichtung 130 sendet beispielsweise die Anfrage durch eine Netzwerkvorrichtung 130 von einer Verfügbarkeitsbenachrichtigung von der Steuerung 120 an die SDN-Steuerung 120 nachdem ein vorbestimmter Zeitraum seit dem Empfang abgelaufen ist.
  • Für jede SDN-Steuerungen misst die Netzwerkvorrichtung einen Zeitraum bis sie eine Reaktion von der SDN-Steuerung (Phase 620) empfängt. Jede Anfrage, die in Phase 610 an die Steuerung gesendet wird, veranlasst eine Reaktion der entsprechenden Steuerung; die Netzwerkvorrichtung 130 misst die Zeitspanne, von der die spezifische Anfrage durch die Netzwerkvorrichtung gesendet wurde bis die veranlasste Reaktion durch die Netzwerkvorrichtung empfangen ist. Diese Zeitspanne beinhaltet die Zeitspanne des Verbleibs der Anfragebenachrichtigung im Transit, Zeitspanne des Verbleibs der Steuerung 120 beim Verarbeiten der Anfrage und die Zeitspanne der Reaktion im Transit. Somit umfasst die Messung eine Netzwerküberlastung in beide Richtungen und das Verarbeiten von Verzögerungen an der bestimmten Steuerung 120. In einigen Ausführungsformen empfängt die Netzwerkvorrichtung 130 keine Reaktion von der SDN-Steuerung 120 innerhalb eines konfigurierbaren Zeitraums, wobei die Netzwerkvorrichtung 130 von einer hohen Latenz ausgeht und einen Platzhalterwert der gemessenen Latenz für diese Steuerung verwendet.
  • Die Netzwerkvorrichtung aktualisiert dann den laufenden Durchschnitt der Latenzmesswerte für jede SDN-Steuerung anhand des gemessenen Zeitraums für eine Reaktion von der entsprechenden Steuerung (Phase 630). In einigen Ausführungsformen berechnet die Netzwerkvorrichtung eine mittlere Latenz (Lmittel) als Mittel der vorherigen n Latenzmesswerte, die die Netzwerkvorrichtung im Speicher aufrechterhält (z. B. einen runden Zwischenspeicher): Lmittel = Summe (LMesswerte)/n. In einigen Ausführungsformen berechnet die Netzwerkvorrichtung eine mittlere Latenz (Lmittel) als Zeitraum (Lneu) gemessen in Phase 620 multipliziert mit dem Gewicht (z. B. einem Wert zwischen Null und eins) plus den bisherigen Mittelwert (Lalt_mittel) multipliziert mit einem zweiten Gewicht (z. B. 1 – a): Lmittel = aLneu + (1 – a)Lalt_mittel Das Gewicht (a) kann zum Betonen oder Herunterspielen der aktuellsten Messwerte ausgewählt werden.
  • Wie oben z. B. in Bezugnahme auf 3 beschrieben, leitet die Netzwerkvorrichtung die Auswahl einer neuen Mastersteuerung ein. Wenn die Netzwerkvorrichtung keine Auswahl der Steuerung (Phase 640) eingeleitet hat, kann es einen festgelegten beliebigen Zeitraum warten und dann die Phasen 610630 wiederholen, um die laufenden Mittelwerte der Latenz für die unterschiedlichen Steuerungen im SDN 110 zu aktualisieren. Wenn die Netzwerkvorrichtung eine Auswahl der Steuerung (Phase 640) eingeleitet hat, fährt sie mit dem Verwenden der Latenzmesswerte beim Auswählen einer neuen Mastersteuerung fort.
  • Die Netzwerkvorrichtung vergleicht die mittlere Latenz für jede Steuerung mit den mittleren Latenzmessungen für eine oder mehrere Steuerungen im SDN (Phase 650). Das heißt, dass die Netzwerkvorrichtung 130 mittlere Latenzmesswerte für jede Steuerung 120 im SDN 110 pflegt und die eingepflegten mittlere Latenzmesswerte miteinander vergleicht. Die Netzwerkvorrichtung 130 wählt dann eine SDN-Steuerung 120 als Mastersteuerung für die Netzwerkvorrichtung 130 anhand des Vergleichs aus (Phase 660). In einigen Ausführungsformen wählt die Netzwerkvorrichtung die Steuerung mit der geringsten mittleren Latenz („am wenigsten latente Steuerung”) aus, wie im Vergleich zur gemessenen mittleren Latenz für die anderen Steuerungen im SDN. Die am wenigsten latente Steuerung kann weniger Überlastung in der Control Plane und/oder eine höhere Steuerungskapazität aufweisen.
  • Nach dem Auswählen der Mastersteuerung sendet die Netzwerkvorrichtung eine Benachrichtigung an die Mastersteuerung (wie in Phase 360 in 3) und fügt sich der Steuerung durch die ausgewählte Mastersteuerung (wie in Phase 370 in 3).
  • 7 ist ein Blockdiagramm eines Computersystems für die Verwendung beim Anwenden der hierin beschriebenen computergestützten Komponenten, gemäß einer veranschaulichten Ausführungsform. In einem allgemeinen Überblick beinhaltet das Computersystem mindestens einen Prozessor 750 für das Durchführen von Handlungen gemäß den Anweisungen und ein oder mehrere Speichergeräte 770 oder 775 für das Speichern von Anweisungen und Daten. Das veranschaulichte exemplarische Computersystem 710 beinhaltet einen oder mehrere Prozessoren 750, die in Kommunikation über einen Bus 715 mit mindestens einer Netzwerkschnittstellensteuerung 720 mit den Netzwerkschnittstellenanschlüssen 722 (a-n) stehen, die sich mit Netzwerkvorrichtungen 712 (a-n), dem Speicher 770 und jeder anderen Vorrichtung 780, z. B. einer I/O-Schnittstelle, verbinden. Im Allgemeinen wird der Prozessor 750 die vom Speicher empfangenen Anweisungen ausführen. Der veranschaulichte Prozessor 750 verbindet oder ist direkt verbunden mit einem Cache-Speicher 775.
  • Ausführlicher beschrieben kann der Prozessor 750 jede Logikschaltung umfassen, die Anweisungen verarbeitet, z. B. Anweisungen, die vom Speicher 770 oder Cache 775 abgerufen werden. In vielen Ausführungsformen ist der Prozessor 750 eine Mikroprozessoreinheit oder ein Spezialprozessor. Das Computergerät 710 kann auf jedem Prozessor oder Satz aus Prozessoren basieren, der/die in der Lage ist/sind wie hierin beschrieben zu arbeiten. Der Prozessor 750 kann einen Single-Core- oder einen Multi-Core-Prozessor umfassen. Der Prozessor 750 kann aus einer Vielzahl von Prozessoren bestehen.
  • Der Speicher 770 kann jede geeignete Vorrichtung sein, die computerlesbare Daten speichern kann. Der Speicher 770 kann eine Vorrichtung mit festem Speicher oder eine Vorrichtung 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 Computersystem 710 kann jede Anzahl von Speichervorrichtungen 770 aufweisen.
  • Der Cache-Speicher 775 ist im Allgemeinen ein Computerspeicher, der in der Nähe des Prozessors 750 für schnelle Lesezeiten angebracht ist. In einigen Ausführungsformen ist der Cache-Speicher 775 Teil von oder befindet sich auf dem gleichen Chip wie der Prozessor 750. In einigen Ausführungsformen gibt es eine Vielzahl von Cache-Levels 775, z. B. L2 und L3 Cache-Schichten.
  • Die Netzwerkschnittstellensteuerung 720 verwaltet Datenaustausche über die Netzwerkschnittstellen 722 (a-n) (auch als Netzwerkschnittstellenanschlüsse bezeichnet). Die Netzwerkschnittstellensteuerung 720 handhabt die physischen und Datenverbindungsschichten des OSI-Modells für die Netzwerkkommunikation. In einigen Ausführungsformen werden einige Aufgaben der Netzwerkschnittstellensteuerung durch den Prozessor 750 gehandhabt. In einigen Ausführungsformen ist die Netzwerkschnittstellensteuerung 720 Teil des Prozessors 750. In einigen Ausführungsformen weist das Computersystem 710 eine Vielzahl von Netzwerkschnittstellensteuerungen 720 auf. Die Netzwerkschnittstellen 722 (a-n) sind Verbindungspunkte für physische Netzwerkverbindungen. In einigen Ausführungsformen unterstützt die Netzwerkschnittstellensteuerung 720 drahtlose Netzwerkverbindungen und ein Schnittstellenanschluss 722 ist ein Funk-Empfänger/-Sender. Im Allgemeinen tauscht das Computergerät 710 Daten mit anderen Computergeräten 712 (a-n) über eine physische oder drahtlose Verbindung an eine Netzwerkschnittstelle 722 (a-n) aus. In einigen Ausführungsformen wendet die Netzwerkschnittstellensteuerung 720 ein Netzwerkprotokoll, wie etwa das Ethernet, an.
  • Die anderen Computergeräte 712 (a-n) sind mit dem Computergerät 710 über einen Netzwerkschnittstellenanschluss 722 verbunden. Die anderen Computergeräte 712 (a-n) können gleichrangige Computergeräte, Netzwerkvorrichtungen oder jedes andere Computergerät mit einer Netzwerkfunktionalität sein. Ein erstes Computergerät 712 (a) kann beispielsweise eine Netzwerkvorrichtung, wie etwa einen Hub, eine Brücke, ein Schalter oder ein Router sein, die das Computergerät 710 mit einem Datennetzwerk, wie etwa dem Internet, verbinden.
  • Die anderen Vorrichtungen 780 können I/O-Schnittstellen, externe serielle Gerätanschlüsse und jeden zusätzlichen Coprozessor beinhalten. Ein Computersystem 710 kann beispielsweise eine Schnittstelle (z. B. eine Universal-Serial-Bus(USB)-Schnittstelle) zum Verbinden von Eingabevorrichtungen (z. B. einem Keyboard, einem Mikrofon, einer Maus oder anderen Zeigegeräten), Ausgabevorrichtungen (z. B. einer Videoanzeige, einem Lautsprecher oder Drucker) oder zusätzlichen Speichervorrichtungen (z. B. einem Wechsellaufwerk oder einer externen Festplatte) beinhalten. In einigen Ausführungsformen beinhaltet das Computergerät 710 eine zusätzliche Vorrichtung 780, wie etwa einen Coprozessor, z. B. einen arithmetischen Coprozessor, der den Prozessor 750 bei hochpräzisen oder komplexen Berechnungen unterstützen kann.
  • Ausführungsformen des Gegenstands und die in dieser Spezifikation beschriebenen Vorgänge können in digitalen elektronischen Schaltungen oder in Computer-Software, Firmware oder Hardware implementiert werden, einschließlich der in dieser Spezifikation offengelegten Strukturen und ihrer strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer aus diesen. 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 Vorgänge können als Vorgänge implementiert werden, die von einer datenverarbeitenden Vorrichtung mit Daten durchgeführt werden, die auf einem oder mehreren computerlesbaren Speichergeräten gespeichert werden oder von anderen Quellen empfangen werden.
  • Ein Computerprogramm (auch bezeichnet als Programm, Software, Softwareanwendung, Script oder Code) kann in einer beliebigen Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder verfahrensorientierter Sprachen, und das Programm kann in jeder beliebigen Form eingesetzt sein, darunter als unabhängiges Programm oder als ein Modul, eine Komponente, eine Subroutine, ein Objekt oder eine andere Einheit, die zur Benutzung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält (z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann auf einem Computer oder mehreren Computern eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind. Beispiele für Kommunikationsnetzwerke umfassen ein lokales Netzwerk („LAN”), ein Fernnetzwerk („WAN”), eine netzübergreifende Verbindung (z. B. das Internet) und Peer-to-Peer-Netzwerke (z. B. Ad-hoc-Peer-to-Peer-Netzwerke).
  • Die in dieser Spezifikation beschriebenen Verfahren und logischen Abläufe können durch einen oder mehrere programmierbare Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme zum Durchführen von Handlungen aufgrund von Eingangsdaten ausführen und Ausgabedaten erstellen. 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).
  • Zwar enthält diese Spezifikation viele spezifische Details der Ausführungsform, jedoch sollten diese nicht als Beschränkungen des Umfangs oder des Anspruchs ausgelegt werden, sondern vielmehr als Beschreibungen spezifischer Merkmale bestimmter Ausführungsformen bestimmter Erfindungen. 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 einigen 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.
  • Ebenso werden Tätigkeiten in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, aber dies sollte nicht als Erfordernis verstanden werden, dass solche Tätigkeiten in der bestimmten gezeigten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge durchgeführt werden müssen oder dass alle dargestellten Tätigkeiten durchgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Implementierungen nicht als eine solche Trennung in allen Implementierungen erfordernd aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme grundsätzlich zusammen in ein einziges Softwareprodukt integriert oder zu mehreren Softwareprodukten verkapselt werden können.
  • Bezugnahmen auf „oder” können so ausgelegt sein, dass alle beschriebenen Begriffe die „oder” verwenden, einen einzelnen, mehr als einen und alle der beschriebenen Ausdrücke anzeigen können. Die Bezeichnungen „erste”, „zweite”, „dritte”, usw. geben nicht notwendigerweise eine Anordnung an und werden im Allgemeinen lediglich dazu verwendet, zwischen ähnlichen oder ähnlichen Punkten oder Elementen zu unterscheiden.
  • Folglich wurden bestimmte Ausführungsformen des Gegenstands 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. Bei bestimmten Implementierungen können Multitasking oder eine Parallelbearbeitung verwendet werden.

Claims (11)

  1. Netzwerkvorrichtung umfassend eine Vielzahl von Netzwerkschnittstellenanschlüssen, Speicherkapazität-Konfigurationsdaten und mindestens einem Prozessor, konfiguriert zum: Empfangen einer ersten Verfügbarkeitsbenachrichtigung der Steuerung von einer ersten Steuerungsvorrichtung aus einer Vielzahl von Steuerungsvorrichtungen, wobei die Vielzahl von Steuerungsvorrichtungen mindestens eine zweite Steuerungsvorrichtung umfasst; Auswählen einer der ersten und der zweiten Steuerungsvorrichtungen als eine Steuerung für die Netzwerkvorrichtung, die mindestens auf der ersten Verfügbarkeitsbenachrichtigung der Steuerung basiert, die von der ersten Steuerungsvorrichtung empfangen wird; und Melden der Auswahl der Steuerungsvorrichtung für die Netzwerkvorrichtung an jede der mehreren Steuerungsvorrichtungen.
  2. Netzwerkvorrichtung nach Anspruch 1, wobei mindestens der eine Prozessor konfiguriert ist zum: Auswählen der ersten Steuerungsvorrichtung als Steuerung für die Netzwerkvorrichtung anhand des Empfangens der ersten Verfügbarkeitsbenachrichtigung der Steuerung vor dem Empfangen irgendeiner anderen Verfügbarkeitsbenachrichtigungen der Steuerung aus irgendeiner der mehreren Steuerungsvorrichtungen.
  3. Netzwerkvorrichtung nach Anspruch 1, wobei mindestens der eine Prozessor konfiguriert ist zum: Ermitteln eines ersten Wertes für ein Leistungsmerkmal der ersten Steuerungsvorrichtung, die auf das Empfangen der ersten Verfügbarkeitsbenachrichtigung der Steuerung reagiert; Empfangen einer zweiten Verfügbarkeitsbenachrichtigung der Steuerung von der zweiten Steuerungsvorrichtung aus der Vielzahl von Steuerungsvorrichtungen; Ermitteln eines zweiten Wertes für das Leistungsmerkmal der zweiten Steuerungsvorrichtung, die auf das Empfangen der ersten Verfügbarkeitsbenachrichtigung der Steuerung reagiert; und Auswählen einer der ersten und der zweiten Steuerungsvorrichtungen als die Steuerung für die Netzwerkvorrichtung, die mindestens auf einem Vergleich des ersten und zweiten Wertes basiert.
  4. Netzwerkvorrichtung nach Anspruch 3, wobei das Leistungsmerkmal aus einer Anzahl von Netzwerkvorrichtungen besteht, die durch jede Steuerungsvorrichtung gesteuert werden und mindestens der eine Prozessor konfiguriert ist zum: Empfangen einer ersten Zählung anderer Netzwerkvorrichtungen, die durch die erste Steuerungsvorrichtung gesteuert ist und einer zweiten Zählung anderer Netzwerkvorrichtungen, die durch die zweite Steuerungsvorrichtung gesteuert ist; und Auswählen der Steuerung mit der niedrigeren Zählung des anderen Netzwerks unter dessen Steuerung.
  5. Netzwerkvorrichtung nach Anspruch 3, wobei das Leistungsmerkmal aus der Latenz für jede Steuerungsvorrichtung besteht, wobei mindestens der eine Prozessor konfiguriert ist zum: Messen der entsprechenden Kommunikationslatenzen zwischen der Netzwerkvorrichtung und den ersten und zweiten Steuerungen; und Auswählen der Steuerung mit der niedrigsten Latenz.
  6. Netzwerkvorrichtung nach Anspruch 1, wobei mindestens der eine Prozessor so konfiguriert ist, dass er einen beliebigen Zeitraum vor der Auswahl der Steuerungsvorrichtung wartet.
  7. Netzwerkvorrichtung nach Anspruch 1, wobei sich die Netzwerkvorrichtung in einer Vielzahl von Netzwerkvorrichtungen befindet, die mindestens eine zweite Netzwerkvorrichtung umfasst, die durch die zweite Steuerungsvorrichtung gesteuert ist.
  8. Netzwerkvorrichtung nach Anspruch 1, wobei mindestens der eine Prozessor so konfiguriert ist, dass er die andere der ersten Steuerungsvorrichtung und die zweite Steuerungsvorrichtung als Back-Up-Steuerung für die Netzwerkvorrichtung auswählt;
  9. Netzwerkvorrichtung nach Anspruch 8, wobei mindestens der eine Prozessor so konfiguriert ist, dass er an die erste und zweite Steuerungsvorrichtung die Auswahl der Back-Up-Steuerung für die Netzwerkvorrichtung meldet.
  10. Körperliches computerlesbares Speichermedium, die nicht-flüchtige prozessorausführbare Befehle speichern, die, wenn sie durch ein Computergerät ausgeführt werden, Speichermedien und einen oder mehrere Prozessoren umfassen, der den einen oder mehrere Prozessoren zum Ausführen von Funktionen veranlassen: Empfangen einer ersten Verfügbarkeitsbenachrichtigung der Steuerung von einer ersten Steuerungsvorrichtung aus einer Vielzahl von Steuerungsvorrichtungen, wobei die Vielzahl von Steuerungsvorrichtungen mindestens eine zweite Steuerungsvorrichtung umfasst; Auswählen einer der ersten und der zweiten Steuerungsvorrichtungen als eine Steuerung für die Netzwerkvorrichtung, die mindestens auf der ersten Verfügbarkeitsbenachrichtigung der Steuerung basiert, die von der ersten Steuerungsvorrichtung empfangen wird; und Melden der Auswahl der Steuerungsvorrichtung für die Netzwerkvorrichtung an jede der mehreren Steuerungsvorrichtungen.
  11. Computerlesbares Speichermedium nach Anspruch 10, wobei die Anweisungen ferner den einen oder mehrere Prozessor(en) veranlassen zum: Ermitteln eines ersten Wertes für ein Leistungsmerkmal der ersten Steuerungsvorrichtung, die auf das Empfangen der ersten Verfügbarkeitsbenachrichtigung der Steuerung reagiert; Ermitteln eines zweiten Wertes für das Leistungsmerkmal einer zweiten Steuerungsvorrichtung, die auf das Empfangen der ersten Verfügbarkeitsbenachrichtigung der Steuerung reagiert; und Auswählen einer der ersten und der zweiten Steuerungsvorrichtungen als die Steuerung für die Netzwerkvorrichtung, die mindestens auf einem Vergleich des ersten und zweiten Wertes basiert.
DE202014010967.2U 2014-01-06 2014-11-10 Multi-Master-Auswahl in einem Software-basierten Netzwerk Active DE202014010967U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/148,423 2014-01-06
US14/148,423 US20150195162A1 (en) 2014-01-06 2014-01-06 Multi-Master Selection in a Software Defined Network

Publications (1)

Publication Number Publication Date
DE202014010967U1 true DE202014010967U1 (de) 2017-02-07

Family

ID=52001083

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202014010967.2U Active DE202014010967U1 (de) 2014-01-06 2014-11-10 Multi-Master-Auswahl in einem Software-basierten Netzwerk

Country Status (8)

Country Link
US (1) US20150195162A1 (de)
EP (1) EP3092752B1 (de)
JP (1) JP6306741B2 (de)
KR (1) KR101881409B1 (de)
DE (1) DE202014010967U1 (de)
DK (1) DK3092752T3 (de)
HK (1) HK1231644A1 (de)
WO (1) WO2015102750A1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2463228C (en) 2003-04-04 2012-06-26 Evertz Microsystems Ltd. Apparatus, systems and methods for packet based transmission of multiple data signals
US9124506B2 (en) 2013-06-07 2015-09-01 Brocade Communications Systems, Inc. Techniques for end-to-end network bandwidth optimization using software defined networking
US20150200813A1 (en) * 2014-01-15 2015-07-16 Electronics And Telecommunications Research Institute Server connection apparatus and server connection method
KR20150088559A (ko) * 2014-01-24 2015-08-03 한국전자통신연구원 네트워크의 장애를 복구하는 방법 및 장치
US10187801B2 (en) * 2014-10-02 2019-01-22 Cisco Technology, Inc. Mobile application specific networks
US10439674B2 (en) * 2014-11-30 2019-10-08 Integrated Silicon Solution Israel Ltd. Domain establishment, registration and resignation via a push button mechanism
CN105721235B (zh) * 2014-12-05 2019-06-11 华为技术有限公司 一种检测连通性的方法和装置
US10355935B2 (en) * 2014-12-09 2019-07-16 Ciena Corporation Reduced link bandwidth update systems and methods for improved scalability, efficiency, and performance
US9853874B2 (en) 2015-03-23 2017-12-26 Brocade Communications Systems, Inc. Flow-specific failure detection in SDN networks
US9912536B2 (en) 2015-04-01 2018-03-06 Brocade Communications Systems LLC Techniques for facilitating port mirroring in virtual networks
US9749401B2 (en) 2015-07-10 2017-08-29 Brocade Communications Systems, Inc. Intelligent load balancer selection in a multi-load balancer environment
US10129184B1 (en) * 2015-09-28 2018-11-13 Amazon Technologies, Inc. Detecting the source of link errors in a cut-through forwarding network fabric
CN106559254A (zh) * 2015-12-29 2017-04-05 国网智能电网研究院 基于双端口交换机的sdn多域网络装置及实现方法
EP3582453B1 (de) * 2017-02-01 2021-07-21 Nec Corporation Verwaltungssystem, verwaltungsverfahren und programm
US10389647B2 (en) * 2017-04-19 2019-08-20 The Boeing Company Controller coordination system
CN110741399A (zh) * 2017-04-28 2020-01-31 爱普多斯公司 用于销售点数据同步的系统和方法
US10469357B2 (en) 2018-01-12 2019-11-05 Juniper Networks, Inc. Node representations of packet forwarding path elements
US10536375B2 (en) * 2018-01-12 2020-01-14 Juniper Networks, Inc. Individual network device forwarding plane reset
US20190342380A1 (en) 2018-05-07 2019-11-07 Microsoft Technology Licensing, Llc Adaptive resource-governed services for performance-compliant distributed workloads
CN108881059B (zh) * 2018-05-29 2022-05-24 新华三技术有限公司 控制器角色确定方法、网络交换设备、控制器及网络系统
US11876730B2 (en) * 2021-11-30 2024-01-16 Tencent America LLC Method and apparatus for using high availability controller with local area network (LAN) for local cloud
US20230171310A1 (en) * 2021-11-30 2023-06-01 Tencent America LLC Method and apparatus for using nonstop controller with local area network (lan) for local cloud

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010715B2 (en) * 2001-01-25 2006-03-07 Marconi Intellectual Property (Ringfence), Inc. Redundant control architecture for a network device
US7230920B1 (en) * 2001-09-14 2007-06-12 Cisco Technology, Inc. System and method for optimizing throughput using response time as a metric
US7127633B1 (en) * 2001-11-15 2006-10-24 Xiotech Corporation System and method to failover storage area network targets from one interface to another
US8855020B2 (en) * 2007-01-09 2014-10-07 Sandvine Incorporated Ulc Automatically maximizing network link utilization using virtual networks
US8661116B2 (en) * 2008-12-15 2014-02-25 Verizon Patent And Licensing Inc. Network testing
US8948067B2 (en) * 2009-04-23 2015-02-03 Honeywell International Inc. Wireless controller grids for process control and other systems and related apparatus and method
US8583958B2 (en) * 2010-11-15 2013-11-12 Microsoft Corporation Systems and methods of providing fast leader elections in distributed systems of simple topologies
US20120178449A1 (en) * 2011-01-11 2012-07-12 Liao Ching-Yu Apparatuses and methods for handling mobility management (mm) back-offs
JP5821641B2 (ja) * 2012-01-11 2015-11-24 日本電気株式会社 ネットワークシステム、スイッチ、及びスイッチ間設定通知方法
CN104094565B (zh) * 2012-02-02 2017-06-27 日本电气株式会社 控制器、用于分配负载的方法、计算机系统和控制设备
US9729424B2 (en) * 2012-06-11 2017-08-08 Futurewei Technologies, Inc. Defining data flow paths in software-defined networks with application-layer traffic optimization
JP2014032576A (ja) * 2012-08-06 2014-02-20 Hitachi Solutions Ltd ネットワーク装置又はサーバ装置の多重化方式
JP5253617B1 (ja) * 2012-10-18 2013-07-31 三菱電機株式会社 管理装置、管理システム、管理方法及びプログラム
US9104643B2 (en) * 2013-03-15 2015-08-11 International Business Machines Corporation OpenFlow controller master-slave initialization protocol
US9432257B2 (en) * 2013-12-27 2016-08-30 Huawei Technologies Co., Ltd. Traffic behavior driven dynamic zoning for distributed traffic engineering in SDN

Also Published As

Publication number Publication date
EP3092752A1 (de) 2016-11-16
EP3092752B1 (de) 2019-01-30
JP6306741B2 (ja) 2018-04-04
KR20160106149A (ko) 2016-09-09
DK3092752T3 (da) 2019-05-06
WO2015102750A1 (en) 2015-07-09
JP2017502627A (ja) 2017-01-19
HK1231644A1 (zh) 2017-12-22
US20150195162A1 (en) 2015-07-09
KR101881409B1 (ko) 2018-07-24

Similar Documents

Publication Publication Date Title
DE202014010967U1 (de) Multi-Master-Auswahl in einem Software-basierten Netzwerk
DE102013209118B4 (de) Beibehaltung und Änderung von Netzwerküberlastungsbenachrichtigungen während der Übertragung von Netzwerkdaten zwischen einem physischen Netzwerk und einem virtuellen Netzwerk
DE102004052270B4 (de) Verarbeitungsvorrichtungs-Managementsystem
DE102018204859A1 (de) Dynamischer Lastenausgleich in Netzschnittstellenkarten für eine optimale Leistung auf Systemebene
DE112020001459T5 (de) Konsistente Route-Ankündigungen zwischen redundanten Controllern im globalen Netzwerk-Access-Point
DE112013000506B4 (de) Verwaltungsprotokoll für verteilte Strukturen
DE112016002114T5 (de) System zur Netzwerkentdeckung und -Synchronisierung
CN109960634B (zh) 一种应用程序监控方法、装置及系统
DE102017122738A1 (de) Virtueller Router mit dynamischer Flussauslagerungsfähigkeit
DE202016008213U1 (de) System für die nahtlose Mobilität von Benutzersitzungen mit Mehrfachzugang-Konnektivität
DE112016003242T5 (de) System und verfahren zum handhaben von verbindungsverlust in einem netzwerk
DE102013200031A1 (de) Verwaltung einer globalen Weiterleitungstabelle in einem verteilten Switch
DE112016007094B4 (de) Kommunikationsvorrichtung, kommunikationsverfahren und kommunikationsprogramm
DE102019104942A1 (de) Kommunikation einer Nachricht unter Verwendung einer Netzwerkschnittstellensteuerung in einem Subnetz
DE102016105595A1 (de) Bedarfsleistungsmanagement in einer vernetzten Computerumgebung
DE112013001512T5 (de) Paketweiterleitung vor einem Hintergrund eines Stacking-Systems mit Sterntopologie
DE102015101583A1 (de) Reduzierung der Grösse von IPV6-Routertabellen unter Verwendung eines Bypasstunnels
DE102016203598A1 (de) Gemeinschaftliche sammlung von diagnosedaten von softwareprogrammen
DE102015111820A1 (de) Auswählen eines Netzwerkes
DE112014006431T5 (de) Gruppenneubildungs-Mechanismus zum Reduzieren von Disruptionszeit in drahtlosen Peer-to-Peer-Netzwerken
DE102022101068A1 (de) Absichts-basierte dynamische northbound-anwendungsschnittstelle
EP3501140A1 (de) Verfahren zum betrieb eines mehrere kommunikationsgeräten umfassenden kommunikationsnetzes eines industriellen automatisierungssystems und steuerungseinheit
DE112013000469T5 (de) Switch-Erkennungsprotokoll für ein verteiltes Struktursystem
DE202015009265U1 (de) Einheitliche api zur programmierung beider server und des fabric für die feinoptimieirung von netzwerken
DE112014001020T5 (de) Synchronisieren von Multicast-Gruppen

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
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

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: H04L0012771000

Ipc: H04L0045600000

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