DE102015119890A1 - Paralleles Verarbeiten von Service-Funktionen in Service-Funktionsketten - Google Patents

Paralleles Verarbeiten von Service-Funktionen in Service-Funktionsketten Download PDF

Info

Publication number
DE102015119890A1
DE102015119890A1 DE102015119890.8A DE102015119890A DE102015119890A1 DE 102015119890 A1 DE102015119890 A1 DE 102015119890A1 DE 102015119890 A DE102015119890 A DE 102015119890A DE 102015119890 A1 DE102015119890 A1 DE 102015119890A1
Authority
DE
Germany
Prior art keywords
service function
service
computing device
executed
network packet
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.)
Withdrawn
Application number
DE102015119890.8A
Other languages
English (en)
Inventor
Patrick Connor
Iosif Gasparakis
Andrew J. Herdrich
Tsung-Yuan C. Tai
Ira Weiny
Alexander W. Min
Dinesh Kumar
Brian J. Skerry
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102015119890A1 publication Critical patent/DE102015119890A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Technologien für das Ermitteln von Service-Funktionen, die in einer Service-Funktionskette parallel ausgeführt werden können, umfassen eine Rechnervorrichtung für das Betreiben einer oder mehrerer virtueller Maschinen für jede einer Vielfalt an Service-Funktionen auf Basis einer bevorzugten Service-Funktionskette, die ausgewählt wird. Zur Ermittlung, welche Service-Funktionen parallel ausgeführt werden können, kann die Rechnervorrichtung bestimmen, welche Service-Funktionen nicht auf einem kritischen Pfad der Service-Funktionskette ausgeführt werden müssen, und/oder welche Service-Funktionen nicht in Echtzeit ausgeführt werden müssen. Zusätzlich dazu kann das Auswählen der bevorzugten Service-Funktionskette auf Auswahlkriterien basieren.

Description

  • HINTERGRUND
  • Moderne Rechnervorrichtungen sind universelle Tools für den Eigengebrauch, Geschäftsgebrauch und für gesellschaftliche Zwecke geworden. Als solche sind viele moderne Rechnervorrichtungen fähig, eine Verbindung mit verschiedenen Datennetzwerken herzustellen, die das Internet und gemeinsame Intranets umfassen, um Datenübermittlungen (d.h. Netzwerkpakete) von Fern-Rechnervorrichtungen (beispielsweise Server, Datenbanken etc.) abzurufen und zu übertragen und/oder zu empfangen. Mehrfach-Fern-Rechnervorrichtungen (d.h. aus dem Blickwinkel einer Client-Rechnervorrichtung) können miteinander vernetzt werden, um ein Datenzentrum zu bilden, in dem typischerweise eine oder mehrere Fern-Rechnervorrichtungen vorgesehen sind, um bestimmte Netzwerkfunktionen (beispielsweise Paket-Inspektion, Angriffserkennung, und Firewalls) auszuführen. Während herkömmliche Fern-Rechnervorrichtungen zugehörige Hardware zur Ausführung der bestimmten Netzwerkfunktionen integriert haben, werden Netzwerkfunktionen zunehmend virtualisiert. Die Netzwerkfunktionenvirtualisierung (NFV) ist beispielsweise ein Netzwerkarchitekturkonzept, auf das sich Datenzentrumsverwalter zum Aufbauen von dynamischen virtualisierten Netzwerken unter Anwendung von virtuellen Maschinen (VMs) stützen. Da die virtualisierten Netzwerkfunktionen zunehmend auf VMs ausgeführt werden, können die virtualisierten Netzwerkfunktionen auf Standard-Servern mit Allzweckprozessoren ausgeübt werden.
  • Virtualisierte Netzwerkfunktionen oder Service-Funktionen können dynamisch miteinander verkettet sein, um eine Service-Funktionskette in einem Verfahren zu bilden, das als Service-Verkettung bezeichnet wird. In einer Service-Funktionskette wird jede Service-Funktion durch eine oder mehrere VMs ausgeführt, die zur Ausführung einer bestimmten Service-Funktion der Service-Funktionskette speziell hochgedreht sind. Welche Service-Funktionen in einer Service-Funktionskette integriert sind, kann auf eine Eigenschaft zugeschnitten sein, die einem Netzwerkpaket (beispielsweise Nutzdaten-Typ, Netzwerkpaket-Overhead) zugeordnet ist. Beispielsweise kann ein Administrator eines Datenzentrums eine Service-Funktionskette von Sicherheits-Service-Funktionen (beispielsweise eine virtualisierte Firewall-Funktion, eine virtualisierte Angriffserkennungsfunktion etc.) definieren, wobei jede davon konfiguriert sein kann, in einer bestimmten Reihenfolge Netzwerkpakete zu verarbeiten, die von einer Rechnervorrichtung empfangen werden. Jedoch kann das Verarbeiten der Netzwerkpakete in einer solchen serien-basierenden Reihenfolge Latenz und Engpässe durch Mehrfach-Service-Funktionen der Service-Funktionskette einleiten. Beispielsweise wird die langsamste Service-Funktion in der Service-Funktionskette die Begrenzungseinheit für den Ausführungsmaßstab.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die hierin beschriebenen Konzepte sind beispielhaft und nicht einschränkend in den begleitenden Zeichnungen veranschaulicht. Der Einfachheit halber und zum besseren Verständnis sind die in den Figuren dargestellten Elemente nicht notwendigerweise maßstabgetreu wiedergegeben. Wo es für angemessen gehalten wird, sind Referenzkennzeichen unter den Figuren wiederholt dargestellt, um entsprechende oder analoge Elemente anzuzeigen.
  • 1 ist ein vereinfachtes Blockschaltbild von mindestens einer Ausführungsform eines Systems zur Verarbeitung von Netzwerkpaketen durch eine Service-Funktionskette hindurch, die eine Reihe von Service-Funktionen umfasst;
  • 2 ist ein vereinfachtes Blockschaltbild von mindestens einer Ausführungsform einer Fern-Rechnervorrichtung des Systems von 1;
  • 3 ist ein vereinfachtes Blockschaltbild von mindestens einer Ausführungsform von einer Umgebung der Fern-Rechnervorrichtung der 1 und 2;
  • 4 ist ein vereinfachtes Flussdiagramm von mindestens einer Ausführungsform eines Verfahrens zur Verarbeitung eines Netzwerkpakets durch einen Service-Funktionspfad hindurch, der durch die Fern-Rechnervorrichtung der 1 und 2 ausgeführt werden kann;
  • 5 ist ein vereinfachtes Flussdiagramm von mindestens einer Ausführungsform eines Verfahrens zur Identifizierung von Service-Funktionen, die parallel in einer Service-Funktionskette ausgeführt werden können, die durch die Fern-Rechnervorrichtung der 1 und 2 ausgeführt werden kann;
  • 6 ist ein vereinfachtes Blockschaltbild von mindestens einer Ausführungsform einer Service-Funktionskette, die durch die Verfahren von den 4 und 5 erzeugt werden kann;
  • 7 ist ein vereinfachtes Blockschaltbild einer weiteren Ausführungsform einer Service-Funktionskette, die durch die Verfahren der 4 und 5 erzeugt werden kann;
  • 8 ist ein vereinfachtes Blockschaltbild einer weiteren Ausführungsform einer Service-Funktionskette, die durch die Verfahren der 4 und 5 erzeugt werden kann; und
  • 9 ist ein vereinfachtes Blockschaltbild einer weiteren Ausführungsform einer Service-Funktionskette, die durch die Verfahren der 4 und 5 erzeugt werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Obwohl die Konzepte der vorliegenden Offenbarung offen für verschiedene Abänderungen und alternative Formen sind, sind spezifische Ausführungsformen davon beispielhaft in den Zeichnungen dargestellt worden und werden nachstehend ausführlich beschrieben werden. Es wird jedoch darauf hingewiesen, dass eine Einschränkung der Konzepte der vorliegenden Offenbarung auf die offenbarten, bestimmten Formen nicht beabsichtigt ist, sondern vielmehr eine Abdeckung aller Abänderungen, Äquivalente und Alternativen, die mit der vorliegenden Offenbarung und den beigefügten Ansprüchen in Einklang stehen, beabsichtigt ist.
  • Die Bezugnahme in der Beschreibung auf “eine (einzige) Ausführungsform”, “eine Ausführungsform”, “eine veranschaulichende Ausführungsform” etc. weist darauf hin, dass die beschriebene Ausführungsform ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft umfassen kann, jede Ausführungsform diese(s) bestimmte Merkmal, Struktur oder Eigenschaft umfassen kann, jedoch vielleicht nicht notwendigerweise umfasst. Überdies beziehen sich derartige Ausdrücke nicht notwendigerweise auf dieselbe Ausführungsform. Ferner wird, wenn ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft im Zusammenhang mit einer Ausführungsform beschrieben wird, zu bedenken gegeben, dass es in der Kenntnis des Fachmanns liegt, auf ein(e) solche(s) Merkmal, Struktur oder Eigenschaft im Zusammenhang mit anderen Ausführungsformen einzuwirken, unabhängig davon, ob diese ausdrücklich beschrieben sind oder nicht. Zusätzlich dazu wird darauf hingewiesen, dass die in einer Liste in der Form von “mindestens einer/eine/eines von A, B und C“ umfassten Begriffe (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B, und C) bedeuten können. Auf ähnliche Art und Weise können in der Form von “mindestens einer/eine/eines von A, B, oder C” aufgelistete Begriffe (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B, und C) bedeuten.
  • Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Software oder jeder beliebigen Kombination davon implementiert sein. Die offenbarten Ausführungsformen können auch als Befehle implementiert sein, die durch ein oder mehrere flüchtige oder nicht-flüchtige maschinenlesbare (beispielsweise computerlesbare) Speichermedien getragen, oder darauf gespeichert sind, die von einem oder mehreren Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Speichermedium kann als jede(r) beliebige Speichervorrichtung, Mechanismus oder andere physische Struktur für das Speichern oder Übermitteln von Informationen in einer durch eine Maschine lesbare Form (beispielsweise einen flüchtigen oder nicht-flüchtigen Speicher, eine Media-Disk oder andere Medienvorrichtungen) ausgeführt sein.
  • In den Zeichnungen können einige Struktur- oder Verfahrens-Merkmale in spezifischen Anordnungen und/oder Reihenfolgen dargestellt sein. Es wird jedoch darauf hingewiesen, dass derartige spezifische Anordnungen und/oder Reihenfolgen vielleicht nicht erforderlich sind. Derartige Merkmale können in einigen Ausführungsformen vielmehr auf unterschiedliche Art und Weise und/oder Reihenfolge angeordnet sein, als in den veranschaulichenden Figuren dargestellt ist. Darüber hinaus will die Integrierung eines Struktur- oder Verfahrens-Merkmals in einer bestimmten Figur nicht daraus hinauslaufen, dass ein derartiges Merkmal in allen Ausführungsformen erforderlich ist, und, dass es in einigen Ausführungsformen vielleicht nicht integriert ist oder mit anderen Merkmalen kombiniert sein kann.
  • Nunmehr wird Bezug auf 1 genommen, in der in einer veranschaulichenden Ausführungsform ein System 100 zur Verarbeitung von Netzwerkpaketen durch eine Service-Funktionskette hindurch eine Rechnervorrichtung 102 umfasst, die mit einer Fern-Rechnervorrichtung 106, umfassend eine Netzwerk-Steuerungseinheit 108 (beispielsweise die Steuerungsebene), verbunden ist. In einigen Ausführungsformen kann die Fern-Rechnervorrichtung 106 in einem Datenzentrum 110 angeordnet sein. Das Datenzentrum 110 kann eine hoch-heterogene Datenzentrumsumgebung sein, die eine beliebige Anzahl an Fern-Rechnervorrichtungen 106 umfasst. In einigen Ausführungsformen kann, wie in 1 dargestellt ist, die Netzwerksteuerungseinheit 108 in der Fern-Rechnervorrichtung 106 integriert sein, oder außen an der Fern-Rechnervorrichtung 106 angeordnet sein, je nach Netzwerkarchitektur und der Anzahl von Fern-Rechnervorrichtungen 106 im Datenzentrum 110. In Verwendung werden Netzwerkpakete zwischen der Rechnervorrichtung 102 und der Fern-Rechnervorrichtung 106 über ein Netzwerk 104 übertragen. Jedes geeignete Kommunikationsprotokoll (beispielsweise TCP/IP) kann verwendet werden, um eine Übertragung der Netzwerkpakete zwischen den entsprechenden Vorrichtungen je nach beispielsweise dem bestimmten Typ oder der Konfiguration der Fern-Rechnervorrichtung 106 durchzuführen.
  • In Verwendung bestimmt, wie nachstehend ausführlich beschrieben sein wird, bei Empfang eines Netzwerkpakets von der Rechnervorrichtung 102, die Fern-Rechnervorrichtung 106, welche Netzwerkfunktionen oder Services (beispielsweise Firewall-Services, Netzwerkadressenübersetzungs(NAT)-Services, Lastensymmetrie-Services, Deep-Packet-Inspection(DPI)-Services, Übertragungssteuerungsprotokoll(TCP)-Optimierungs-Services etc.) zur Ausführung auf dem Netzwerkpaket erforderlich sind. In einigen Ausführungsformen können die erforderlichen Services auf Basis von Durchfluss-Strategien oder -Regelungen bestimmt sein, die dem Netzwerkpaket zugeordneten, charakteristischen Eigenschaften entsprechen, beispielsweise einem Netzwerkpaket-Typ. Beispielsweise kann ein Web-Verkehrs-Netzwerk einen Angriffserkennungs-Service, einen Anwendungsauslieferungs-Steuerungseinheits-Service und einen Firewall-Service erfordern. Die dem Netzwerkpaket zugeordneten charakteristischen Eigenschaften können sich über verschiedene Schichten des Kommunikation-offener-Systeme(OSI)-Modells erstrecken. Die charakteristischen Eigenschaften können beispielsweise Anwendungsschicht-Informationen, Internet-Protokoll(IP)-Header-Informationen, Bestimmungsinformationen (beispielsweise Bestimmungs-Port, IP, DNS etc.) und/oder ähnliches umfassen.
  • In herkömmlichen Netzwerkarchitekturen wird jeder Service typischerweise auf einer separaten physischen Vorrichtung ausgeführt, die eine Service-spezifische Hardware umfasst, die zur Ausführung von einem bestimmten Service konfiguriert ist. Im Gegensatz dazu können auf Software basierende Netzwerkarchitekturen (beispielsweise Software-definierte Vernetzung (SDN) und Netzwerkfunktionsvirtualisierung (NFV)) eine Software anwenden, um virtuelle Beispiele der für das empfangene Netzwerkpaket in einer Service-Funktionskette erforderlichen Netzwerkfunktionen oder -Services zu realisieren. Service-Funktionsverkettung ist ein Verfahren, die virtualisierten Service-Beispiele oder Service-Funktionen in eine geordnete Reihenfolge zu bringen und eine oder mehrere virtuelle Maschinen (VMs) über eine oder mehrere physische Fern-Rechnervorrichtungen, wie beispielsweise die Fern-Rechnervorrichtung 106, hinweg zu gestalten.
  • In einer herkömmlichen Service-Funktionskettenoperation muss ein empfangenes Netzwerkpaket, nachdem es durch eine (einzige) Service-Funktion verarbeitet worden ist, an die nächste Service-Funktion zur Verarbeitung auf Basis der durch die Service-Funktionskette definierten Reihenfolge weitergeleitet werden. Darüber hinaus wird in der herkömmlichen Service-Funktionskettenoperation eine Serien-Netzwerkpaket-Verarbeitungspipeline ausgestaltet, in der jede Service-Funktion das Beenden durch die vorangegangene Service-Funktion abwartet, bevor sie beginnen kann. Wie nachstehend ausführlich erörtert werden wird, bestimmt die Netzwerksteuerungseinheit 108 eine geeignete Service-Funktionskette auf Basis der erforderlichen Services, und realisiert eine oder mehrere VMs zur Ausführung der virtuellen Service-Funktionen gemäß der Service-Funktionskette. Einige Service-Funktionen, wie beispielsweise DPI, Angriffserkennungssysteme (IDS) und Angriffsverhinderungssysteme (IPS) erfordern typischerweise eine Verarbeitungs-intensive Analyse, was zu Engpässen aufgrund der der Ausführung der Service-Funktionen zugeordneten Latenz führen kann.
  • Gewisse Service-Funktionen, beispielsweise DPI oder IDS, müssen vielleicht nicht auf dem kritischen Pfad der Service-Funktionskette ausgeführt werden. Mit anderen Worten hängen gewisse Service-Funktionen der Service-Funktionskette vielleicht nicht von anderen Service-Funktionen der Service-Funktions-Kette ab. Daher können die unabhängigen Service-Funktionen gleichzeitig (d.h. parallel) mit einer oder mehreren der anderen Service-Funktionen der Service-Funktionskette ausgeführt werden. Beispielsweise wird die Netzwerksteuerungseinheit 108 vielleicht nicht bestimmen, ob das Netzwerkpaket fallengelassen oder weiter übertragen werden soll, bis alle Service-Funktionen der Service-Funktionskette ausgeführt sind. Als solches kann der DPI-Service programmiert sein, parallel mit einer oder mehreren der anderen Service-Funktionen der Service-Funktionskette aufzutreten, wobei die dem DPI-Service zugeordnete Latenz verdeckt, und die allen der Service-Funktionen der Service-Funktionskette zugeordnete Gesamtlatenz gesenkt wird. Ferner können aufgrund der Tatsache, dass die Service-Funktionskette in VMs ausgestaltet wird, die Service-Funktionen der Service-Kette und deren Reihenfolge darin dynamisch abgeändert werden. Beispielsweise kann eine Service-Funktion, die ausgeführt wird, eine Benachrichtigung an die Netzwerksteuerungseinheit 108 auslösen, eine zusätzliche Service-Funktion (d.h. eine Service-Funktion zur Service-Funktionskette hinzufügen) auf Basis der Benachrichtigung auszuführen. In einem weiteren Beispiel kann eine Service-Funktion, die ausgeführt wird, eine Benachrichtigung an die Netzwerksteuerungseinheit 108 auslösen, dass die bestimmte Service-Funktion eine länger als erwartete Latenzzeit aufweisen kann und dass eine weitere Service-Funktion, wenn vorhanden, parallel ausgeführt werden kann. Zusätzlich oder alternativ zur parallelen Ausführung können derartige Service-Funktionen, die für fähig befunden werden, parallel ausgeführt zu werden, asynchron ausgeführt werden, sodass die Ergebnisse Einfluss auf einen zukünftigen Zustand der Service-Funktionskette zeitversetzt später (d.h. nicht notwendigerweise unmittelbar ausgeführt) haben.
  • Die Rechnervorrichtung 102 kann als jede beliebige Art einer Rechnervorrichtung enthalten sein, oder diese andernfalls umfassen, die einen Server-Computer, einen Desktop-Computer, eine Laptop-Rechnervorrichtung, eine Heim-Automatisierungs-Gateway-Vorrichtung, eine programmierbare Logik-Steuerungseinheit, ein Smart-Gerät, eine Verbraucher-Elektronik-Vorrichtung, einen Drahtlos-Zugangspunkt, einen Netzwerkschalter, einen Netzwerk-Router, eine mobile Rechnervorrichtung, ein Mobiltelephon, ein Smartphone, eine Tablet-Rechnervorrictung, einen persönlichen digitalen Assistent, eine tragbare Datenverarbeitungsvorrichtung und/oder eine andere Art einer Rechnervorrichtung umfassen, aber nicht darauf beschränkt sein. Als solche kann die Rechnervorrichtung 102 Vorrichtungen und Strukturen umfassen, die für gewöhnlich in einer Rechnervorrichtung, beispielsweise Prozessoren, Speichervorrichtungen, einem Kommunikationsschaltkreis und Datenspeicher vorzufinden sind, die aus Gründen eines besseren Verständnises der Beschreibung nicht in 1 dargestellt sind. In einigen Ausführungsformen kann die Fern-Rechnervorrichtung 106 konfiguriert sein, Netzwerkpakete an die/von der Rechnervorrichtung 102 zu übertragen und/oder zu empfangen.
  • Das Netzwerk 104 kann als jede beliebige Art eines drahtgebundenen oder drahtlosen Kommunikationsnetzwerks konfiguriert sein, das Mobilfunknetze (beispielsweise das Globalsystem für Mobilkommunikation (GSM)), digitale Teilnehmeranschlussleitung(DSL)-Netzwerke, Kabelnetzwerke, Telefonie-Netzwerke, regionale oder überregionale Netzwerke, globale Netzwerke (beispielsweise das Internet) oder jede beliebige Kombination davon umfasst. Darüber hinaus kann das Netzwerk 104 eine beliebige Anzahl an zusätzlichen Netzwerkkommunikationsvorrichtungen (beispielsweise Router, Schalter, Netzknoten etc.) umfassen, die für eine Erleichterung der Kommunikation zwischen den jeweiligen Vorrichtungen erforderlich sind.
  • In Verwendung ist die Fern-Rechnervorrichtung 106 konfiguriert, mit der Rechnervorrichtung 102 über das Netzwerk 104 zu kommunizieren. Wie nachstehend ausführlich erörtert werden wird, ist die Fern-Rechnervorrichtung 106 ferner konfiguriert, das Hervorbringen von VMs zur Ausführung von Service-Funktionen von Service-Funktionsketten zu erleichtern. Zusätzlich oder alternativ dazu kann die Fern-Rechnervorrichtung 106 in einigen Ausführungsformen separate Threads, Verfahren oder Behältnisse für die Ausführung von Service-Funktionen von Service-Funktionsketten ausgestalten. Die Fern-Rechnervorrichtung 106 kann als jede beliebige Art einer Rechnungs- oder Rechnervorrichtung realisiert werden, die zur Ausführung der hierin beschriebenen Funktionen fähig ist, und ohne Einschränkung einen Computer, ein Smartphone, einen Tablet-Computer, einen Laptop-Computer, einen Notebook-Computer, eine mobile Rechnervorrichtung, eine tragbare Rechnervorrichtung, ein Multiprozessorsystem, einen Server, einen Rackmount-Server, einen Blade-Server, ein Netzwerkgerät, ein Web-Gerät, ein verteiltes Rechensystem, ein Prozessor-basiertes System und/oder eine Verbraucher-Elektronik-Vorrichtung umfasst. In einigen Ausführungsformen kann die Fern-Rechnervorrichtung 106 zum Betrieb in einem Datenzentrum 110 unter Einsatz einer SDN-Architektur und/oder einer NFV-Architektur fähig sein.
  • In Verwendung ist die Netzwerksteuerungseinheit 108 konfiguriert, die Ausgestaltung von Service-Funktions-VMs zu steuern und die durch die Fern-Rechnervorrichtung 106 empfangenen Netzwerkpakete durch die ausgestalteten Service-Funktions-VMs (d.h. einen Service-Funktionspfad) hindurchzuführen. Wie nachstehend ausführlich beschrieben, weist die Netzwerksteuerungseinheit 108 die Fern-Rechnervorrichtung 106 oder Mehrfach-Fern-Rechnervorrichtungen 106 an, eine oder mehrere VMs für jede Service-Funktion in der Service-Funktionskette auszugestalten. Zusätzlich dazu kann die Netzwerksteuerungseinheit 108 Befehle bereitstellen, die der Fern-Rechnervorrichtung 106 eher signalisieren, wie die Netzwerkpakete durch den Service-Funktionspfad hindurchzuführen sind, als dass sie die Netzwerkpakete selbst direkt durch den Service-Funktionspfad hindurchführt. Die Netzwerksteuerungseinheit 108 kann als eine beliebige Art von Hardware, Software und/oder Firmware realisiert sein oder diese andernfalls umfassen, die zur Erzeugung von Service-Funktionspfaden und zur Steuerung des Durchziehens der Netzwerkpakete durch die Service-Funktionspfade hindurch fähig ist. In einigen Ausführungsformen kann die Netzwerksteuerungseinheit 108 Fern-Rechnervorrichtungs 106 -intern, Fern-Rechnervorrichtungs 106 -extern und/oder beides sein. Beispielsweise kann die Netzwerksteuerungseinheit 108 Fern-Rechnervorrichtungs 106 -intern als ein Hypervisor oder ein virtueller Rechenmanager (VMM), oder Fern-Rechnervorrichtungs 106 -extern als eine SDN-Steuerungseinheit oder ein NFV-Manager und Orchestrator (MANO) realisiert sein. In derartigen Ausführungsformen, in denen die Netzwerksteuerungseinheit 108 Fern-Rechnervorrichtungs 106 -extern realisiert sein kann, wird darauf hingewiesen, dass die Netzwerksteuerungseinheit in einer anderen Fern-Rechnervorrichtung realisiert sein kann, die im Datenzentrum 110 angeordnet sein kann.
  • Das Datenzentrum 110 kann als ein herkömmliches Datenzentrum, Rechen-Cluster oder eine andere Rechner-Ansammlung realisiert sein, das/die eine beliebige Anzahl an Fern-Rechnervorrichtungen 106 in Kommunikation über das Netzwerk 104 umfasst. Das Datenzentrum 110 kann zusätzlich ein Netzwerkschaltgefüge, ein Speicherbereichsnetzwerk und/oder andere typische Datenzentrumskomponenten umfassen, die aus Gründen eines besseren Verständnisses der Beschreibung in 1 nicht dargestellt sind. In einigen Ausführungsformen kann das Datenzentrum 110 eine SDN-Architektur und/oder eine NFV-Architektur einsetzen.
  • Nunmehr wird Bezug auf 2 genommen, in der eine veranschaulichende Fern-Rechnervorrichtung 106 einen Prozessor 202, ein Eingabe-/Ausgabe(I/O)-Untersystem 204, einen Speicher 206, eine Datenspeicherungsvorrichtung 208 und einen Kommunikationsschaltkreis 210 umfasst. Selbstverständlich kann die Fern-Rechnervorrichtung 106 andere oder zusätzliche Komponenten umfassen, beispielsweise jene, die für gewöhnlich in einem Computer (beispielsweise in verschiedenen Eingabe-/Ausgabe-Vorrichtungen) in anderen Ausführungsformen vorzufinden sind. Darüber hinaus können in einigen Ausführungsformen eine oder mehrere der veranschaulichenden Komponenten in einer weiteren Komponente integriert sein oder andernfalls einen Abschnitt davon bilden. Der Speicher 206 oder Abschnitte davon können beispielsweise im Prozessor 202 in einigen Ausführungsformen integriert sein.
  • Der Prozessor 202 kann als eine beliebige Art eines Prozessors realisiert sein, der zur Ausführung der hierin beschriebenen Funktionen fähig ist. Beispielsweise kann der Prozessor 202 als (ein) Einzel- oder Mehr-Kern-Prozessor(en), ein digitaler Signalprozessor, eine Mikro-Steuerungseinheit oder als ein anderer Prozessor oder verarbeitender/steuernder Schaltkreis realisiert sein. Auf ähnliche Art und Weise kann der Speicher 206 als jede beliebige Art eines flüchtigen oder nicht-flüchtigen Speichers oder einer Datenspeicherung, die zur Ausführung der hierin beschriebenen Funktionen fähig sind, realisiert sein. In Betrieb kann der Speicher 206 verschiedene Daten und Software, die während des Betriebs der Fern-Rechnervorrichtung 106 angewandt werden, speichern, beispielsweise Betriebssysteme, Anwendungen, Programme, Bibliotheken und Treiber. Der Speicher 206 ist mit dem Prozessor 202 über das I/O-Untersystem 204 kommunikativ gekoppelt, das als Schaltkreis und/oder Komponenten realisiert sein kann, um Eingabe-/Ausgabe-Operationen mit dem Prozessor 202, dem Speicher 206 und anderen Komponenten der Fern-Rechnervorrichtung 106 zu erleichtern. Beispielsweise kann das I/O-Untersystem 204 als Speichersteuerungseinheitsnetzknoten, Eingabe-/Ausgabe-Steuerungseinheitsknoten, Firmware-Vorrichtungen, Kommunikationsverbindungen (d.h. Punkt-Punkt-Verbindungen, Bus-Verbindungen, Drähte, Kabel, Lichtleiter, Leiterplatten-Ablaufverfolgungen etc.) und/oder andere Komponenten und Untersysteme zur Erleichterung der Eingabe-/Ausgabe-Operationen realisiert sein oder andernfalls vorgenannte Elemente umfassen. In einigen Ausführungsformen kann das I/O-Untersystem 204 einen Abschnitt eines System-on-a-Chip (SoC) bilden und gemeinsam mit dem Prozessor 202, dem Speicher 206 und anderen Komponenten der Fern-Rechnervorrichtung 106 auf einem Einzel-integrierten-Schaltkreis-Chip integriert sein.
  • Die Datenspeicherungsvorrichtung 208 kann als jede beliebige Art einer Vorrichtung oder Vorrichtungen realisiert sein, die zur kurzfristigen oder langfristigen Speicherung von Daten konfiguriert sind, beispielsweise Speichervorrichtungen und Schaltkreise, Speicherkarten, Festplattenlaufwerke, Festkörperlaufwerke oder andere Datenspeicherungsvorrichtungen. Der Kommunikationsschaltkreis 210 kann als jede(r) beliebige Kommunikationsschaltkreis, Vorrichtung oder Ansammlung davon realisiert sein, die zur Ermöglichung von Kommunikation zwischen der Rechnervorrichtung 102 über das Netzwerk 104, die Netzwerksteuerungseinheit 108 und andere Fern-Rechnervorrichtungen 106 fähig ist. Der Kommunikationsschaltkreis 210 kann zur Anwendung einer beliebigen oder mehrerer Kommunikationstechnologien (beispielsweise drahtlose oder drahtgebundene Kommunikationen) und zugeordneten Protokollen (beispielsweise Ethernet, Bluetooth®, Wi-Fi®, WiMAX, etc.) konfiguriert sein, um eine solche Kommunikation zu bewirken. In einigen Ausführungsformen umfasst der Kommunikationsschaltkreis 210 Zell-zu-Zell-Kommunikationsschaltkreise und/oder andere weitreichende drahtlose Kommunikationsschaltkreise. Der Kommunikationsschaltkreis 210 kann eine (nicht dargestellte) Netzwerkkarte (NIC) umfassen. Die NIC kann die Fern-Rechnervorrichtung 106 mit einer oder mehreren Rechnervorrichtungen 102, Netzwerkvorrichtungen, Schaltern, Remote-Hosts oder anderen Vorrichtungen verbinden. Die NIC kann als eine oder mehrere Add-In-Boards, Daughtercards, Netzwerkkarten, Steuerungseinheits-Chips, Chips-Sätze oder andere Vorrichtungen realisiert sein, die durch die Fern-Rechnervorrichtung 106 für Netzwerkkommunikationen mit Rechnervorrichtungen 102 eingesetzt werden können. Die NIC kann beispielsweise als eine Erweiterungskarte realisiert sein, die mit dem I/O-Untersystem 204 über einen Erweiterungsbus, wie beispielsweise PCI-Express, gekoppelt ist.
  • Mit nunmehriger Bezugnahme auf 3 stellt die Fern-Rechnervorrichtung 106 in Betrieb eine Umgebung 300 während des Betriebs her. Die veranschaulichende Umgebung 300 umfasst ein Service-Funktionenbestimmungsmodul 302, ein Service-Funktionskettenbestimmungsmodul 306 und ein Service-Funktionspfadsteuerungsmodul 308. Die veranschaulichende Umgebung 300 umfasst zusätzlich Service-Funktionsstrategiedaten 304, die Informationen über Service-Funktionen, beispielsweise dahingehend umfassen können, welche Service-Funktionen auf bestimmte Netzwerkpakete anzuwenden sind, Abhängigkeiten zwischen Service-Funktionen und/oder ähnliches.
  • Die verschiedenen Module der Umgebung 300 können als Hardware, Firmware, Software oder als eine Kombination davon realisiert sein. Beispielsweise können die verschiedenen Module, die Logik und andere Komponenten der Umgebung 300 einen Abschnitt des Prozessors 202 und/oder andere Hardware-Komponenten der Fern-Rechnervorrichtung 106 bilden, oder andernfalls dadurch erstellt sein. Als ein solches kann ein oder können mehrere der Module der Umgebung 300 als ein Schaltkreis oder eine Ansammlung von elektrischen Vorrichtungen (beispielsweise ein Service-Funktionenbestimmungsschaltkreis, ein Service-Funktionskettentopologiebestimmungsschaltkreis und ein Service-Funktionspfadsteuerungsschaltkreis etc.) realisiert sein. Selbstverständlich kann die Fern-Rechnervorrichtung 106 andere Komponenten, Unterkomponenten, Module und Vorrichtungen umfassen, die für gewöhnlich in einer Rechnervorrichtung vorzufinden sind, die aus Gründen der besseren Verständlichkeit der Beschreibung in 3 nicht dargestellt sind.
  • Das Service-Funktionenbestimmungsmodul 302 ist konfiguriert, zu bestimmen, welche Service-Funktionen für jedes durch die Fern-Rechnervorrichtung 106 empfangene Netzwerkpaket erforderlich sind. In einigen Ausführungsformen kann das Bestimmen der erforderlichen Service-Funktionen auf Durchfluss-Strategien basieren, die einem Typ (beispielsweise E-Mail-, Video-, Audio-, Web- etc.) und/oder Nutzdaten des Netzwerkpakets entsprechen. Zusätzlich oder alternativ dazu können in einigen Ausführungsformen die Durchfluss-Strategien durch die Fern-Rechnervorrichtung 106 von einer extern angeordneten Netzwerksteuerungseinheit empfangen, und in einer Nachschlagetabelle in den Service-Funktionsstrategiedaten 304 gespeichert werden.
  • Das Service-Funktionskettenbestimmungsmodul 306 ist zur Bestimmung einer bevorzugten Service-Funktionskette auf Basis der erforderlichen Service-Funktionen konfiguriert, die durch das Service-Funktionenbestimmungsmodul 302 bestimmt sind. Das Service-Funktionskettenbestimmungsmodul 306 kann die bevorzugte Service-Funktionskette auf Basis von Service-Funktionsabhängigkeitsinformationen (beispielsweise Sequenz-Abhängigkeiten, Zeit-Abhängigkeiten etc.) bestimmen. In einigen Ausführungsformen können die Service-Funktionsabhängigkeitsinformationen von der extern angeordneten Netzwerksteuerungseinheit empfangen werden und/oder in einer Nachschlagetabelle oder Datenbank in den Service-Funktionsstrategiedaten 304 gespeichert sein. Das Service-Funktionskettenbestimmungsmodul 306 kann mehr als eine mögliche Service-Funktionskette erzeugen und die möglichen Service-Funktionsketten auf Basis von vorliegenden Bedingungen der Fern-Rechnervorrichtung 106 vergleichen. Die vorliegenden Bedingungen (d.h. Service-Funktionskettenauswahlkriterien) können die Anzahl und den Typ der aktuell laufenden VMs auf der Fern-Rechnervorrichtung 106, die Anzahl von verfügbaren Fern-Rechnervorrichtungen 106, Netzwerkbandbreitenverfügbarkeit/-Anwendung, Dienstgüte(QoS)-Erfordernisse, und/oder Komponenteneigenschaften der Fern-Rechnervorrichtung(en) 106 (beispielsweise aktuelle Kapazität des Prozessors 202, verfügbares Speicher 206 -Ausmaß, verfügbares Datenspeicherungsausmaß in der Datenspeicherungsvorrichtung 208 etc.) umfassen. Wie nachstehend ausführlich beschrieben wird, kann zur Bestimmung der bevorzugten Service-Funktionskette das Service-Funktionskettenbestimmungsmodul 306 konfiguriert sein, zu bestimmen, welche erforderlichen Service-Funktionen erforderlich sind, um auf dem kritischen Netzwerkpaketverarbeitungspfad ausgeführt zu werden, welche erforderlichen Service-Funktionen zur Ausführung in Echtzeit erforderlich sind und/oder welche erforderlichen Service-Funktionen parallel mit einer oder mehreren anderen erforderlichen Service-Funktionen ausgeführt werden können.
  • Das Service-Funktionspfadsteuerungsmodul 308 ist zur Steuerung der Erzeugung des Service-Funktionspfades und zur Verwaltung des Netzwerkpakets konfiguriert, wie es durch jede erforderliche Service-Funktion des Service-Funktionspfades hindurch verarbeitet wird. In einigen Ausführungsformen erzeugt das Service-Funktionspfadsteuerungsmodul 308 den Service-Funktionspfad auf Basis der bevorzugten Service-Funktionskette, die durch das Service-Funktionskettenbestimmungsmodul 306 bestimmt ist. Um das durchzuführen, kann das Service-Funktionspfadsteuerungsmodul 308 ein VM-Steuerungsmodul 310 umfassen, um eine oder mehrere VMs zur Verarbeitung oder andernfalls Ausführung einer bestimmten Service-Funktion auf dem Netzwerkpaket hervorzubringen. Natürlich kann das Service-Funktionspfadsteuerungsmodul 308 zusätzlich oder alternativ dazu eine bereits hervorgebrachte VM auswählen, um die bestimmte Service-Funktion auf dem Netzwerkpaket auszuführen. Zusätzlich oder alternativ dazu kann das Service-Funktionspfadsteuerungsmodul 308 separate Threads, Verfahren oder Behältnisse ausgestalten, um eine bestimmte Service-Funktion auf dem Netzwerkpaket auszuführen. Es wird darauf hingewiesen, dass der Service-Funktionspfad alle der Service-Funktionen der Service-Funktionskette umfasst, aus der der Service-Funktionspfad erzeugt wird. Mit anderen Worten umfasst der Service-Funktionspfad sowohl die Service-Funktionen, die dem kritischen Pfad entlang ausgeführt werden, als auch alle Service-Funktionen, die parallel zum kritischen Pfad ausgeführt werden.
  • Wie zuvor angemerkt, kann jede VM zur Ausführung einer Service-Funktion auf dem Netzwerkpaket konfiguriert sein, wie beispielsweise ein oder mehrere Firewall-Services, NAT-Services, Lastensymmetrie-Services, DPI-Services und/oder TCP-Optimierungs-Services, von denen einige parallel ausgeführt werden können. Wie nachstehend ausführlich beschrieben wird, umfasst die bevorzugte Service-Funktionskette gegebenenfalls Verzweigungen, um identifizierte Service-Funktionen parallel zu den Service-Funktionen, die gerade auf dem kritischen Pfad ausgeführt werden, auszuführen. In einigen Ausführungsformen kann das Service-Funktionskettenbestimmungsmodul 306 ein Netzwerkpaketanführungsmodul 312 umfassen, um Netzwerkpaketweiterleitungsstrategien (d.h. die Netzwerkpakete von einer VM zur nächsten VM auf Basis des Service-Funktionspfads über Service-Weiterleitungsinstanzen anführen) geltend zu machen. In einigen Ausführungsformen können die Netzwerkpaketweiterleitungsstrategien von der extern angeordneten Netzwerksteuerungseinheit empfangen, und/oder in einer Nachschlagtabelle in den Service-Funktionsstrategiedaten 304 gespeichert werden.
  • Unter nunmehriger Bezugnahme auf 4 kann die Fern-Rechnervorrichtung 106 in Verwendung ein Verfahren 400 zur Verarbeitung eines Netzwerkpakets durch eine Service-Funktionskette hindurch ausführen, die eine Vielzahl an Service-Funktionen umfasst. Wie zuvor angemerkt, kann die Netzwerksteuerungseinheit 108 in einigen Ausführungsformen Fern-Rechnervorrichtungs 106 -intern (beispielsweise ein virtueller Rechenmanager, ein Hypervisor etc.) und/oder Fern-Rechnervorrichtungs 106 -extern (beispielsweise eine SDN-Steuerungseinheit, ein MANO etc.) sein. Um die Beschreibung weiterhin verständlich zu gestalten, wird das Verfahren 400 als durch eine Fern-Rechnervorrichtung 106 ausgeführt beschrieben werden, die die Netzwerksteuerungseinheit 108 umfasst, wie in 1 dargestellt ist. Natürlich kann die Fern-Rechnervorrichtung 106 Befehle von einer extern angeordneten Netzwerksteuerungseinheit empfangen, die die Fern-Rechnervorrichtung 106 zur Ausführung der Handlungen des hierin beschriebenen Verfahrens 400 anwenden kann.
  • Das Verfahren 400 beginnt bei Block 402, in dem die Fern-Rechnervorrichtung 106 bestimmt, ob ein Netzwerkpaket empfangen worden ist. Ein Netzwerkpaket kann beispielsweise von der Rechnervorrichtung 102 empfangen werden, die Daten anfordert, die auf der Fern-Rechnervorrichtung 106 abgelegt sind. In einem weiteren Beispiel kann ein Netzwerkpaket von der Rechnervorrichtung 102 empfangen werden, die Daten anfordert, die Fern-Rechnervorrichtungs 106 -extern sind, auf welche die Fern-Rechnervorrichtung 106 Zugriff hat. Mit anderen Worten kann die Fern-Rechnervorrichtung 106 beispielsweise als eine Sicherheitsvorrichtung oder Firewall, die zwischen zwei Edge-Routern, welche die Rechnervorrichtung 102 trennen, und einem Fern-Content-Server angeordnet ist, arbeiten. In einigen Ausführungsformen kann das Verfahren 400 bei Erhalt des Netzwerkpakets eingeleitet (d.h. gestartet) werden, im Gegensatz zum Einsatz eines Abfrageverfahrens (d.h. ein Abtasten zu vorbestimmten Zeitintervallen, um zu bestimmen, ob ein Netzwerkpaket empfangen worden ist). Ist ein Netzwerkpaket nicht empfangen worden, springt das Verfahren 400 zu Block 402 zurück, um zu bestimmen, ob ein Netzwerkpaket empfangen worden ist.
  • Ist ein Netzwerkpaket an der Fern-Rechnervorrichtung 106 empfangen worden, rückt das Verfahren 400 zu Block 404 vor, um eine Service-Funktionskette für das empfangene Netzwerkpaket zu bestimmen. In einigen Ausführungsformen erzeugt die Fern-Rechnervorrichtung 106 einen Satz von erforderlichen Service-Funktionen, die für das Netzwerkpaket in Block 406 erforderlich sind. Wie zuvor angemerkt, kann der Satz der erforderlichen Service-Funktionen auf Durchfluss-Strategien basieren, die einem Typ entsprechen, der dem Netzwerkpaket zugeordnet ist. In einigen Ausführungsformen sind die Durchfluss-Strategien der Fern-Rechnervorrichtung 106 von der Netzwerksteuerungseinheit 108 bereitgestellt. Beispielsweise kann, worin ein Netzwerkpaket einer E-Mail-Nachricht zugeordnet ist, eine Beispiel-Durchfluss-Strategie, die Netzwerkpaketen entspricht, die E-Mail-Nachrichten zugeordnet sind, eine oder mehrere Angriffserkennungssystem-Service-Funktionen, umfassend verschiedene Transaktions-Proxies, beispielsweise eine Virus-Scan-Service-Funktion, eine Spam-Scan-Service-Funktion und eine Phish-Scan-Service-Funktion, erfordern. Zusätzlich dazu kann die Netzwerksteuerungseinheit 108 zusätzliche und/oder alternative Service-Funktionen vorausbestimmen, die auf Basis anderer Charakteristiken des Netzwerkpakets (beispielsweise Netzwerk-Port, Source-IP-Adresse etc.) erforderlich sein können.
  • In einigen Ausführungsformen stellt die Fern-Rechnervorrichtung 106 fest, welche Service-Funktionen parallel im Block 408 ausgeführt werden können. Wie nachstehend ausführlich beschrieben werden wird, können ein oder mehrere Parameter (beispielsweise ob die Latenz-induzierende Service-Funktion eine Voraussetzung für eine weitere Service-Funktion ist) zur Bestimmung angewandt werden, ob eine der Service-Funktionen parallel ausgeführt werden kann. Beispielsweise sind gewisse Service-Funktionen, beispielsweise DPI, typisch Netzwerk-intensive und Latenz-induzierende Service-Funktionen. Als solche können diese gewissen Service-Funktionen Engpässe werden, wenn sie in herkömmliche reihenweise angeordnete Netzwerk-Service-Ketten integriert werden. Im Unterschied zu reihenweise angeordneten Netzwerk-Service-Ketten, in denen jede Service-Funktion in der Service-Kette beendet sein muss, bevor die fortsetzende Service-Funktion starten kann, kann ein paralleles Positionieren dieser gewissen Service-Funktionen die Gesamtlatenz des Netzwerkpakets herabsetzen, das durch den Service-Funktionspfad hindurch verarbeitet wird.
  • In einigen Ausführungsformen erzeugt die Fern-Rechnervorrichtung 106 eine oder mehrere Service-Funktionsketten für das Netzwerkpaket in Block 410. Verschiedene Service-Funktionskettentopologien können durch die Fern-Rechnervorrichtung 106 einfach auf Basis der erforderlichen Service-Funktionen erzeugt werden. Beispielsweise können für ein Netzwerkpaket, das eine Virus-Scan-Service-Funktion, eine Spam-Scan-Service-Funktion und eine Phish-Scan-Service-Funktion erfordert, die Scan-Service-Funktionen in beliebiger Reihenfolge ausgeführt werden. Ein Beispiel eines Service-Funktionspfads auf Basis einer reihenweise angeordneten Service-Funktionskette ist in 6 dargestellt, was nachstehend ausführlich beschrieben werden wird. Zusätzliche Service-Funktionskettentopologien können durch ein Positionieren der Service-Funktionen, die als parallel ausführbar fähig identifiziert sind, in die Service-Funktionskette hinein parallel zu anderen Service-Funktionen erzeugt werden.
  • Erneut wird auf 4 Bezug genommen, worin in einigen Ausführungsformen die Fern-Rechnervorrichtung 106 eine bevorzugte Service-Funktionskette aus den erzeugten Service-Funktionsketten in Block 412 auswählen kann. In einigen Ausführungsformen kann die Netzwerksteuerungseinheit 108 der Fern-Rechnervorrichtung 106 Befehle bereitstellen, die anzeigen, welche Service-Funktionskette auszuwählen ist. Wie zuvor angemerkt, kann die Fern-Rechnervorrichtung 106 Service-Funktionskettenauswahlkriterien auf Basis gewisser Bedingungen in Erwägung ziehen, die in dem Zeitpunkt eintreten, in dem die bevorzugte Service-Funktionskette ausgewählt wird. Die Service-Funktionskettenauswahlkriterien können beispielsweise eine Anzahl von VMs, die aktuell auf der Fern-Rechnervorrichtung 106 laufen, die verfügbare Anzahl von Fern-Rechnervorrichtungen 106, Netzwerkbandbreitenverfügbarkeit/Anwendung, QoS-Erfordernisse und/oder Eigenschaften der Komponenten der Fern-Rechnervorrichtung(en) 106 (beispielsweise Prozessorkapazität, verfügbarer Speicher, verfügbare Datenspeicherung etc.) umfassen. Als solche müssen empfangene Netzwerkpakete von ähnlichem Typ nicht unbedingt unter Anwendung derselben Service-Funktionskette verarbeitet werden. Zusätzlich dazu ist, unter gewissen Bedingungen, das parallele Ausführen einiger Service-Funktionen bei gleichzeitigem reihenmäßigen Ausführen anderer Service-Funktionen vielleicht nicht so effektiv wie das Identifizieren bestimmter Service-Funktionsverfahren zur Handhabung bestimmter Service-Funktionen.
  • Bei Block 414 erzeugt die Fern-Rechnervorrichtung 106 einen Service-Funktionspfad, der der bestimmten Service-Funktionskette (beispielsweise der in Block 412 ausgewählten, bevorzugten Service-Funktionskette) entspricht. In Verwendung realisiert die Fern-Rechnervorrichtung 106 eine oder mehrere VMs für jede Service-Funktion in der Service-Funktionskette, was zu einem Service-Funktionspfad führt. Bei Block 416 führt die Fern-Rechnervorrichtung 106 das Netzwerkpaket zur ersten Service-Funktion im Service-Funktionspfad. In einigen Ausführungsformen steuert die Netzwerksteuerungseinheit 108 den Netzwerkpaketfluss direkt zwischen den Netzwerkfunktionen über Service-Weiterleitungs-Instanzen auf der Fern-Rechnervorrichtung 106 hindurch. In einigen Ausführungsformen stellt die Netzwerksteuerungseinheit 108 der Fern-Rechnervorrichtung 106 Befehle bereit, das Netzwerkpaket zwischen den Netzwerkfunktionen weiterzuleiten.
  • Bei Block 418 bestimmt die Fern-Rechnervorrichtung 106, ob das Netzwerkpaket auf Basis der Ausgabe der Service-Funktion fallengelassen wird, die das Netzwerkpaket zuletzt verarbeitet hat. Wenn nicht, dann rückt das Verfahren 400 zu Block 420 vor, um zu bestimmen, ob der Service-Funktionspfad rekonfiguriert werden soll. Wenn die Fern-Rechnervorrichtung 106 bestimmt, das Netzwerkpaket fallenzulassen, dann wird das Netzwerkpaket fallengelassen, und das Verfahren springt zu Block 402 zurück, um zu bestimmen, ob ein weiteres Netzwerkpaket empfangen worden ist. Natürlich wird in gewissen Service-Funktionspfaden die Bestimmung, ob das Netzwerkpaket fallengelassen wird, vielleicht nicht getroffen, bis alle Service-Funktionen im Service-Funktionspfad beendet worden sind.
  • Bei Block 420 bestimmt die Fern-Rechnervorrichtung 106, ob der Service-Funktionspfad auf Basis der Ausgabe der Service-Funktion, die das Netzwerkpaket zuletzt verarbeitet hat, rekonfiguriert wird. Wenn nicht, fährt das Verfahren mit Block 422 fort, um zu bestimmen, ob die zuletzt ausgeführte Service-Funktion die letzte Service-Funktion im Service-Funktionspfad ist. Bestimmt die Fern-Rechnervorrichtung 106, den Service-Funktionspfad zu rekonfigurieren, springt das Verfahren 400 zu Block 404 zurück, um eine rekonfigurierte Service-Funktionskette für das Netzwerkpaket als Antwort auf die Ausgabe der Service-Funktion zu bestimmen, ie das Netzwerkpaket zuletzt verarbeitet hat. Eine Service-Funktions-Ausgabe in Block 420 kann beispielsweise darauf hinweisen, dass eine weitere Inspektion des Netzwerkpakets erforderlich ist. In einer solchen Ausführungsform kann die Fern-Rechnervorrichtung 106 den Abschnitt der Service-Funktionskette dynamisch einstellen, die auf die Service-Funktion folgt, die die Rekonfiguration ausgelöst hat, um eine DPI-Service-Funktion in Block 404 zu integrieren, sowie den Service-Funktionspfad demgemäß in Block 414 abzuändern. Eine Darstellung eines solchen Beispiels ist in den 7 und 8 zu sehen, was nachstehend ausführlich beschrieben werden wird. Mit erneuter Bezugnahme auf 4 kann in einem weiteren Beispiel eine Service-Funktionsausgabe in Block 420 darauf hinweisen, das seine Service-Funktion, die folgerichtig früher im Service-Funktionspfad ist, zu einer Service-Funktion führen kann, die folgerichtig später im Service-Funktionspfad ist, der ungültig wird. Die Netzwerksteuerungseinheit 108 kann beispielsweise vorausbestimmt haben, dass eine DPI-Service-Funktion auf Basis einer Eigenschaft des Netzwerkpakets erforderlich ist, und die DPI-Service-Funktion ist ans Ende der Service-Funktionskette positioniert worden. Falls eine Service-Funktion, die stromaufwärts der vorgesehenen DPI-Service-Funktion ausgeführt wird, den Bedarf nach der vorausbestimmten DPI-Service-Funktion in der Folge ungültig macht, dann kann der Service-Funktionspfad eventuell rekonfiguriert werden müssen, wobei die vorausbestimmte DPI-Service-Funktion möglicherweise entfernt wird. Bestimmt die Fern-Rechnervorrichtung 106, den Service-Funktionspfad nicht zu rekonfigurieren, rückt das Verfahren 400 zu Block 422 vor.
  • Bei Block 422 bestimmt die Fern-Rechnervorrichtung 106, ob die zuletzt ausgeführte Service-Funktion die letzte Service-Funktion im Service-Funktionspfad ist. Wenn nicht, springt das Verfahren zu Block 416 zurück, wo die Fern-Rechnervorrichtung 106 das Netzwerkpaket zur nächsten Service-Funktion im Service-Funktionspfad führt. Bestimmt die Fern-Rechnervorrichtung 106, dass die zuletzt ausgeführte Service-Funktion die letzte Service-Funktion im Service-Funktionspfad ist, rückt das Verfahren 400 zu Block 424 vor. Bei Block 424 wird das Netzwerkpaket an eine Target-Vorrichtung übertragen, bevor das Verfahren 400 zu Block 402 zurückspringt, um zu bestimmen, ob ein weiteres Netzwerkpaket empfangen worden ist.
  • Nunmehr wird auf 5 Bezug genommen, in der die Fern-Rechnervorrichtung 106 in Verwendung ein Verfahren 500 zur Identifizierung von Service-Funktionen ausführen kann, die parallel in einer Service-Funktionskette ausgeführt werden können (siehe Block 408 des Verfahrens 400). Die Fern-Rechnervorrichtung 106 bestimmt, welche Service-Funktionen der Service-Funktionskette parallel auf Basis des Netzwerkpakets ausgeführt werden können, das durch die Fern-Rechnervorrichtung 106 empfangen wird. Das Verfahren 500 beginnt bei Block 502, in dem die Fern-Rechnervorrichtung 106 einen Satz von erforderlichen Service-Funktionen auf Basis einer Zeit-Sequenz-Abhängigkeit ordnet. Mit anderen Worten ordnet die Fern-Rechnervorrichtung 106 den Satz von erforderlichen Service-Funktionen auf Basis der Tatsache an, welche erforderlichen Service-Funktionen verarbeitet werden müssen, bevor andere erforderliche Service-Funktionen ausgeführt werden können. Natürlich können eine oder mehrere der erforderlichen Service-Funktionen keinerlei Abhängigkeiten aufweisen, oder können von mehr als einer Service-Funktion abhängen.
  • Bei Block 504 wird die erste erforderliche Service-Funktion vom Zeit-Sequenz-Ordnungs-Satz durch die Fern-Rechnervorrichtung 106 abgerufen. In Block 506 bestimmt die Fern-Rechnervorrichtung 106, ob die aktuell abgerufene Service-Funktion erforderlich ist, um auf dem kritischen Pfad ausgeführt zu werden. Wenn die aktuell abgerufene Service-Funktion auf dem kritischen Pfad ausgeführt werden muss, rückt das Verfahren 500 zu Block 514 vor, wo die Fern-Rechnervorrichtung 106 bestimmt, ob die aktuell abgerufene Service-Funktion die letzte Service-Funktion im geordneten Satz ist. Wenn die Fern-Rechnervorrichtung 106 bestimmt, dass die aktuell abgerufene Service-Funktion nicht auf dem kritischen Pfad ausgeführt werden muss, rückt das Verfahren 500 zu Block 508 vor, wo die Fern-Rechnervorrichtung 106 bestimmt, ob die aktuell abgerufene Service-Funktion in Echtzeit ausgeführt werden muss. Wenn die aktuell abgerufene Service-Funktion in Echtzeit ausgeführt werden muss, rückt das Verfahren 500 zu Block 514 vor, wobei die Fern-Rechnervorrichtung 106 bestimmen soll, ob die aktuell abgerufene Service-Funktion die letzte Funktion im geordneten Satz ist.
  • Bestimmt die Fern-Rechnervorrichtung 106, dass die aktuell abgerufene Service-Funktion nicht in Echtzeit ausgeführt werden muss, rückt das Verfahren 500 zu Block 510 vor, um zu bestimmen, ob die aktuell abgerufene Service-Funktion parallel zu (einer) beliebigen anderen Service-Funktion(en) ausgeführt werden kann. Beispielsweise kann ein Netzwerkpaket, das eine Verschlüsselungs-Service-Funktion erfordert, Zeit-Sequenz-abhängig von allen anderen Service-Funktionen sein, die vor dem Verschlüsselungs-Service ausgeführt werden, sodass es als letztes im Zeit-Sequenz-Ordnungs-Satz von erforderlichen Service-Funktionen positioniert werden kann; die Verschlüsselungs-Service-Funktion wird jedoch vielleicht nicht auf dem kritischen Pfad in Echtzeit ausgeführt werden müssen. Als solche kann die Netzwerksteuerungseinheit 108 bestimmen, dass die Verschlüsselungs-Service-Funktion parallel zu einer oder mehreren anderen Service-Funktionen, beispielsweise einer DPI-Service-Funktion und/oder einer IPS-Service-Funktion, ausgeführt wird, die die Gesamtlatenz der Service-Funktions-Kette(n) herabsetzen kann, in der/denen die Verschlüsselungs-Service-Funktion parallel ausgeführt wird. Es wird darauf hingewiesen, dass die Blöcke 506, 508 und 510 in beliebiger Reihenfolge ausgeführt werden können, und dass einige Ausführungsformen vielleicht nicht alle der Blöcke 506, 508 und 510 umfassen werden. Ferner wird darauf hingewiesen, dass einige Ausführungsformen zusätzliche und/oder alternative Identifizierungsmittel für das Identifizieren von Service-Funktionen umfassen können, die parallel ausgeführt werden können.
  • Wenn die aktuell abgerufene Service-Funktion parallel zu (einer) beliebigen anderen Service-Funktion(en) ausgeführt werden kann, fährt das Verfahren 500 mit Block 512 fort, um die aktuell abgerufene Service-Funktion als zu der/den anderen Service-Funktion(en) parallel-fähig zu kennzeichnen. Wenn die aktuell abgerufene Service-Funktion nicht parallel zu (einer) beliebigen anderen Service-Funktion(en) ausgeführt werden kann, rückt das Verfahren 500 zu Block 514 vor. In Block 514 bestimmt die Fern-Rechnervorrichtung 106, ob die aktuell abgerufene Service-Funktion die letzte Service-Funktion im geordneten Satz ist. Wenn nicht, springt das Verfahren 500 zu Block 504 zurück, um die als nächstes erforderliche Service-Funktion aus dem Zeit-Sequenz-Ordnungs-Satz abzurufen. Wenn die aktuell abgerufene Service-Funktion die letzte Service-Funktion im geordneten Satz ist, rückt das Verfahren 500 zu Block 516 vor, wo die Fern-Rechnervorrichtung 106 die Service-Funktionen in eine oder mehrere Service-Funktionsketten anordnet, bevor sie das Verfahren 500 beendet.
  • Mit nunmehriger Bezugnahme auf 6 umfasst eine veranschaulichende Service-Funktionskette 600 eine Lastverteiler-Service-Funktion 602, eine verteilte-Firewall-Service-Funktion 604, eine Virus-Scan-Service-Funktion 606, eine Spam-Scan-Service-Funktion 608 und eine Phish-Scan-Service-Funktion 610, wobei jede jeweils in Serie auf einem kritischen Pfad ausgeführt wird. Jede Service-Funktion der Service-Funktionskette 600 stellt eine abstrahierte Service-Funktion dar, die als eine oder mehrere VMs auf einer oder mehrerer Fern-Rechnervorrichtungen 106 zu starten ist, worin jede VM mindestens einen Abschnitt einer bestimmten Service-Funktion ausführen soll. In einigen Ausführungsformen können eine oder mehrere der Service-Funktionen an mehr als einer Fern-Rechnervorrichtung 106 (d.h. in einer verteilten Umgebung) ausgeführt werden, auch jene Service-Funktionen, die parallel zu (einer) anderen Service-Funktion(en) ausgeführt werden können. Die Firewall-Service-Funktion 604 kann beispielsweise mehr als ein Firewall-Service-Funktions-Exemplar umfassen, das als eine verteilte Service-Funktion ausgeführt wird. Mit anderen Worten wird jedes Firewall-Service-Funktions-Exemplar mindestens einen Abschnitt der erforderlichen Firewall-Service-Funktion ausführen. Beliebige oder alle der Firewall-Service-Funktions-Exemplare können auf derselben Fern-Rechnervorrichtung 106 oder auf unterschiedlichen Fern-Rechnervorrichtungen 106 hochgedreht werden. Jedes Firewall-Service-Funktions-Exemplar kann mit einem gespiegelten oder verdoppelten Netzwerkpaket versehen sein, auf dem ein bestimmter Unter-Satz der Firewall-Service-Funktion auszuführen ist. Beispielsweise kann dort, wo das Netzwerkpaket ein E-Mail-artiges Paket ist, ein Firewall-Service-Funktions-Exemplar nachprüfen, ob der dem Netzwerkpaket zugeordnete Port einem zulässigen Port entspricht, während ein anderes Firewall-Service-Funktions-Exemplar nachprüfen kann, ob E-Mail-Server-Informationen (beispielsweise Simple Mail Transfer Protocol (SMTP), Internet Message Access Protocol (IMAP) oder Post Office Protocol (POP), Hypertext Transfer Protocol (HTTP), etc.), die dem Netzwerkpaket zugeordnet sind, zulässig sind.
  • Unter gewissen Bedingungen des/der Fern-Rechnervorrichtung(en) 106 (d.h. Verarbeitungskapazität, verfügbare Bandbreite etc.) kann die Service-Funktionskette 600 durch die Netzwerk-Steuerungseinheit 108 als eine bevorzugte Service-Funktionskette bestimmt werden. Die Netzwerksteuerungseinheit 108 kann eine Ausgabe an jeder Service-Funktion, die ausgeführt wird, empfangen, was einen Hinweis darauf geben kann, ob dem Netzwerkpaket ein Fortsetzen zu gestatten ist, das Netzwerkpaket fallengelassen werden soll oder einen Hinweis darauf, dass das Netzwerkpaket eine weitere Bearbeitung erfordert. Wobei die Virus-Scan-Service-Funktion 606 beispielsweise anzeigt, dass das Netzwerkpaket eine weitere Inspektion (d.h. eine DPI-Service-Funktion) erfordert. Demgemäß kann der aus der Service-Funktionskette 600 erzeugte Service-Funktionspfad vielleicht nicht mehr länger geeignet sein, um das Netzwerkpaket weiter zu bearbeiten, da er die nunmehr erforderliche DPI-Service-Funktion nicht umfasst.
  • Mit nunmehriger Bezugnahme auf 7 umfasst eine veranschaulichende Service-Funktionskette 700 die Service-Funktionen von 6 und eine DPI-Service-Funktion 702, die in Serie auf dem kritischen Pfad positioniert ist, der auf die Virus-Scan-Service-Funktion 606 folgt (d.h. die Service-Funktion, welche die Rekonfiguration ausgelöst hat). Unter gewissen Bedingungen der Fern-Rechnervorrichtung(en) 106 (d.h. Verarbeitungskapazität, verfügbare Bandbreite etc.) kann die Service-Funktionskette 700 durch die Netzwerksteuerungseinheit 108 als die bevorzugte Kette bestimmt werden. Alternativ dazu kann die Netzwerksteuerungseinheit 108 gewisse Service-Funktionen identifiziert haben, die parallel ausgeführt werden können (d.h. sie müssen nicht auf dem kritischen Pfad ausgeführt werden). Unter Bedingungen, die der/den Fern-Rechnervorrichtung(en) 106 eine parallele Ausführung identifizierter Service-Funktionen ermöglichen, wird der aus der Service-Funktionskette 700 erzeugte Service-Funktionspfad anderen Service-Funktionskettenmöglichkeiten gegenüber vielleicht nicht bevorzugt, die eine oder mehrere der identifizierten Service-Funktionen umfassen, die parallel ausgeführt werden, wie beispielsweise die in 8 dargestellte Service-Funktionskette.
  • Mit nunmehriger Bezugnahme auf 8 umfasst eine veranschaulichende Service-Funktionskette 800 die Service-Funktionen von 7, wobei die DPI-Service-Funktion 702 parallel zur Spam-Scan-Service-Funktion 608 und der Phish-Scan-Service-Funktion 610 angeordnet ist. Die Netzwerksteuerungseinheit 108 kann eine oder mehrere Service-Funktionsketten (beispielsweise die Service-Funktionsketten, die durch die Netzwerksteuerungseinheit 108 angewandt wird, um die Service-Funktionsketten 700, 800 der 7 und 8 zu erzeugen) erzeugen und die bevorzugte Service-Funktionskette auf Basis der vorliegenden Bedingungen der Fern-Rechnervorrichtung(en) 106 und/oder davon, welche Service-Funktionen parallel ausgeführt werden können, auswählen. Die Netzwerksteuerungseinheit 108 kann bestimmen, dass die DPI-Service-Funktion 702 parallel zu den übrigen Service-Funktionen 608, 610 ausgeführt werden können. Auf diese Art und Weise kann die Netzwerksteuerungseinheit 108 bestimmen, dass das Ausführen der DPI-Service-Funktion 702 nicht von den übrigen Service-Funktionen 608, 610 abhängt, und dass zumindest ein Teil der Latenz, die dem Ausführen der DPI-Service-Funktion 702 zugeordnet ist, maskiert sein kann, während die Service-Funktionen 608, 610 parallel ausgeführt werden. Infolgedessen ist die dem Ausführen der DPI-Service-Funktion 702 zugeordnete Latenz herabgesetzt, und unter gewissen Bedingungen kann sie zur Gänze maskiert sein. In einigen Ausführungsformen kann das Netzwerkpaket ein gespiegeltes oder verdoppeltes Netzwerkpaket sein. In einer Fern-Rechnervorrichtung 106 mit gemeinsamen Speicher müssen die Netzwerkpakete natürlich nicht verdoppelt werden, um die parallelen Service-Funktionen auszuführen; ist das Netzwerkpaket jedoch abgeändert, sollte die Fern-Rechnervorrichtung 106 konfiguriert sein, die Abänderung quer über den Service-Funktionspfad zu bewältigen, um Datenkorruption und/oder Fehler während der Verarbeitung des Netzwerkpakets vermeiden.
  • Mit nunmehriger Bezugnahme auf 9 umfasst eine veranschaulichende Service-Funktionskette 900 die Service-Funktionen von 6, wobei die Virus-Scan-Service-Funktion 606 parallel zur Spam-Scan-Service-Funktion 608 und zur Phish-Scan-Service-Funktion 610 angeordnet ist. Die Service-Funktionskette 900 kann eine alternative Service-Funktionskette zur Service-Funktionskette 600 von 6 sein. Die Netzwerksteuerungseinheit 108 kann bestimmen, dass die Virus-Scan-Service-Funktion 606, die Spam-Scan-Service-Funktion 608 und die Phish-Scan-Service-Funktion 610 in jeder beliebigen Reihenfolge ausgeführt werden können und/oder dass jede der Service-Funktionen 606, 608, 610 nicht von den anderen abhängig sind, die in einer Zeit-Sequenz-Abhängigkeits-Reihenfolge ausgeführt werden. Zusätzlich oder alternativ dazu kann die Netzwerksteuerungseinheit 108 bestimmen, dass ein Ausführen der Virus-Scan-Service-Funktion 606 parallel zur Spam-Scan-Service-Funktion 608 und der Phish-Scan-Service-Funktion 610 die Gesamtlatenz herabsetzen kann, die dem Ausführen der Service-Funktionen der Service-Funktionskette 600 von 6 serienmäßig zugeordnet ist. Als solche kann die Netzwerksteuerungseinheit 108 bestimmen, dass die Service-Funktionskette 900 der Service-Funktionskette 600 gegenüber bevorzugt wird. Natürlich können, wie zuvor angemerkt, gewisse Bedingungen der Fern-Rechnervorrichtung 106 vorliegen, sodass die Service-Funktionskette 600 der Service-Funktionskette 900 gegenüber bevorzugt wird.
  • BEISPIELE
  • Veranschaulichende Beispiele der hierin offenbarten Technologien werden nachstehend bereitgestellt. Eine Ausführungsform der Technologien kann jedes beliebige oder mehrere der nachstehend beschriebenen Beispiele oder Kombinationen davon umfassen.
  • Beispiel 1 umfasst eine Rechnervorrichtung zur Bearbeitung eines Netzwerkpakets durch einen Service-Funktionspfad hindurch, wobei die Rechnervorrichtung ein Service-Funktionenbestimmungsmodul zur Bestimmung, auf Basis des Netzwerkpakets, eines Service-Funktionen-Satzes, der auf dem Netzwerkpaket ausgeführt werden soll; ein Service-Funktionskettenbestimmungsmodul zur Bestimmung eines Unter-Satzes des Service-Funktionen-Satzes, der parallel zu anderen Service-Funktionen im Service-Funktionen-Satz ausgeführt werden kann, zur Erzeugung einer oder mehrerer Service-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes, und zur Auswahl einer bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis eines Auswahlkriteriums; und ein Service-Funktionspfadsteuerungsmodul zur Erzeugung eines Service-Funktionspfades auf Basis der bevorzugten Service-Funktionskette umfasst.
  • Beispiel 2 umfasst den Gegenstand von Beispiel 1, und worin das Bestimmen des Unter-Satzes des Service-Funktions-Satzes, der parallel ausgeführt werden kann, das Ermitteln, welche Service-Funktionen zur Ausführung auf einem kritischen Weg der Service-Funktionskette nicht erforderlich sind, umfasst.
  • Beispiel 3 umfasst den Gegenstand eines der Beispiele 1 und 2, und worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln, welche Service-Funktionen nicht in Echtzeit ausgeführt werden müssen, umfasst.
  • Beispiel 4 umfasst den Gegenstand eines der Beispiele 1–3, und worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln, welche Service-Funktionen für die Ausführung auf einem kritischen Pfad der Service-Funktionskette nicht erforderlich sind, und nicht in Echtzeit ausgeführt werden müssen, umfasst.
  • Beispiel 5 umfasst den Gegenstand eines der Beispiele 1–4, und worin das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets das Bestimmen des Service-Funktionen-Satzes auf Basis eines Paket-Typs umfasst, der dem Netzwerkpaket zugeordnet ist.
  • Beispiel 6 umfasst den Gegenstand eines der Beispiele 1–5, und worin das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets das Bestimmen des Service-Funktionen-Satzes auf Basis von Informationen umfasst, die im Header des Netzwerkpakets enthalten sind.
  • Beispiel 7 umfasst den Gegenstand von einem der Beispiel 1–6, und worin das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets das Bestimmen des Service-Funktionen-Satzes auf Basis von Informationen umfasst, die in den Nutzdaten des Netzwerkpakets enthalten sind.
  • Beispiel 8 umfasst den Gegenstand eines der Beispiele 1–7, und worin das Service-Funktionenbestimmungsmodul ferner den Service-Funktionen-Satz auf Basis einer von einer der Service-Funktionen des Service-Funktionspfads empfangenen Ausgabe neu bestimmen soll, die anzeigt, dass der Service-Funktionspfad eine Rekonfiguration erfordert, wobei das Service-Funktionskettenbestimmungsmodul ferner den Unter-Satz des Service-Funktions-Satzes neu bestimmen soll, der parallel zu anderen Service-Funktionen im Service-Funktionen-Satz in Antwort auf die empfangene Ausgabe ausgeführt werden kann, eine oder mehrere Service-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes wiedererzeugen soll, und die bevorzugte Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis des Auswahlkriteriums, das auf die Rekonfiguration der einen oder der mehreren Service-Funktionsketten folgt, neu auswählen soll, und das Service-Funktionspfadsteuerungsmodul ferner den Service-Funktionspfad für jede Funktion des Service-Funktionen-Satzes auf Basis der bevorzugten Service-Funktionskette wiedererzeugen soll, das auf die Neu-Auswahl der bevorzugten Service-Funktionskette folgt.
  • Beispiel 9 umfasst den Gegenstand von einem der Beispiele 1–8, und worin das Service-Funktionskettenbestimmungsmodul ferner den Service-Funktionen-Satz auf Basis einer Zeit-Sequenz-Abhängigkeit ordnet.
  • Beispiel 10 umfasst den Gegenstand von einem der Beispiele 1–9, und worin das Auswählen der bevorzugten Service-Funktionskette das Bestimmen einer Gesamtlatenz umfasst, die der Verarbeitung des Netzwerkpakets durch jede der Service-Funktionen hindurch für jede der Service-Funktionskette zugeordnet ist, um zu bestimmen, welche Service-Funktionskette die niedrigste Gesamtlatenz aufweist, und um die bevorzugte Service-Funktionskette auf Basis der Service-Funktionskette auszuwählen, die die niedrigste Gesamtlatenz aufweist.
  • Beispiel 11 umfasst den Gegenstand eines der Beispiele 1–10, und worin das Erzeugen des Service-Funktionspfades das Erzeugen einer oder mehrerer virtueller Maschinen für jede Funktion des Service-Funktionen-Satzes umfasst.
  • Beispiel 12 umfasst den Gegenstand von einem der Beispiele 1–11, und worin das Service-Funktionspfadsteuerungsmodul ferner das Netzwerkpaket zwischen die virtuellen Maschinen hindurchführen soll.
  • Beispiel 13 umfasst den Gegenstand von einem der Beispiele 1–12, und worin das Erzeugen des Service-Funktionspfades das Erzeugen einer oder mehrerer virtueller Maschinen für jede Funktion des Service-Funktionen-Satzes auf einer oder mehreren anderen Rechnervorrichtungen umfasst.
  • Beispiel 14 umfasst den Gegenstand von einem der Beispiele 1–13, und worin das Auswahlkriterium mindestens eines aus einer Anzahl an auf der Rechnervorrichtung aktiven VMs, einer Verfügbarkeit an Netzwerkbandbreite, einer Anwendung von Netzwerkbandbreite, einer Dienstgüte(QoS)-Erfordernis, einer aktuellen Kapazität eines Prozessors der Rechnervorrichtung, einer Speicher-Verfügbarkeit der Rechnervorrichtung oder einem verfügbaren Datenspeicherungsumfang in einer Datenspeicherungsvorrichtung der Rechnervorrichtung umfasst.
  • Beispiel 15 umfasst ein Verfahren zur Erzeugung von Service-Funktionsketten, wobei das Verfahren das Bestimmen, durch eine Rechnervorrichtung, eines Service-Funktionen-Satzes, der auf dem Netzwerkpaket auf Basis des Netzwerkpakets auszuführen ist; das Bestimmen, durch die Rechnervorrichtung, eines Unter-Satzes des Service-Funktionen-Satzes, der parallel zu anderen Service-Funktionen im Service-Funktionen-Satz ausgeführt werden kann; das Erzeugen, durch die Rechnervorrichtung, einer oder mehrerer Service-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes; das Auswählen, durch die Rechnervorrichtung, einer bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis eines Auswahlkriteriums, und das Erzeugen, durch die Rechnervorrichtung, eines Service-Funktionspfades auf Basis der bevorzugten Service-Funktionskette umfasst.
  • Beispiel 16 umfasst den Gegenstand von Beispiel 15, und worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln der Tatsache umfasst, welche Service-Funktionen nicht auf einem kritischen Pfad der Service-Funktionskette ausgeführt werden müssen.
  • Beispiel 17 umfasst den Gegenstand von einem der Beispiele 15 und 16, und worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln der Tatsache umfasst, welche Service-Funktionen nicht in Echtzeit ausgeführt werden müssen.
  • Beispiel 18 umfasst den Gegenstand von einem der Beispiele 15–17, und worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln der Tatsache umfasst, welche Service-Funktionen nicht auf einem kritischen Pfad der Service-Funktionskette ausgeführt werden müssen, und nicht in Echtzeit ausgeführt werden müssen.
  • Beispiel 19 umfasst den Gegenstand von einem der Beispiele 15–18, und worin das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets das Bestimmen des Service-Funktionen-Satzes auf Basis eines Paket-Typs umfasst, der dem Netzwerkpaket zugeordnet ist.
  • Beispiel 20 umfasst den Gegenstand von einem der Beispiele 15–19, und worin das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets das Bestimmen des Service-Funktionen-Satzes auf Basis von Informationen umfasst, die im Header des Netzwerkpakets enthalten sind.
  • Beispiel 21 umfasst den Gegenstand von einem der Beispiele 15–20, und worin das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets das Bestimmen des Service-Funktionen-Satzes auf Basis von Informationen umfasst, die in den Nutzdaten des Netzwerkpakets enthalten sind.
  • Beispiel 22 umfasst den Gegenstand von einem der Beispiele 15–21, und wobei es ferner das Empfangen einer Ausgabe von einer der Service-Funktionen des Service-Funktionspfades unter Hinweis darauf, dass der Service-Funktionspfad eine Rekonfiguration erfordert; das Neu-Bestimmen des Service-Funktionen-Satzes in Antwort auf das Empfangen der Ausgabe; das Neu-Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel zu anderen Service-Funktionen im Service-Funktionen-Satz ausgeführt werden kann; das Wiedererzeugen einer oder mehrerer Service-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes; das Neu-Auswählen der bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis des Auswahlkriteriums, das auf das Wiedererzeugen von einer oder mehreren Service-Funktionsketten folgt; und das Wiedererzeugen des Service-Funktionspfades auf Basis der bevorzugten Service-Funktionskette umfasst, das auf das Neu-Auswählen der bevorzugten Service-Funktionskette folgt.
  • Beispiel 23 umfasst den Gegenstand von einem der Beispiele 15–22, und umfasst ferner das Ordnen des Service-Funktionen-Satzes auf Basis einer Zeit-Sequenz-Abhängigkeit.
  • Beispiel 24 umfasst den Gegenstand von einem der Beispiele 15–23, und worin das Auswählen der bevorzugten Service-Funktionskette das Bestimmen einer Gesamtlatenz, die dem Verarbeiten des Netzwerkpakets durch jede der Service-Funktionen für jede der Service-Funktionsketten hindurch zugeordnet ist; das Bestimmen, welche Service-Funktion eine niedrigste Gesamtlatzenz aufweist; und das Auswählen der bevorzugten Service-Funktionskette auf Basis der Service-Funktionskette mit der niedrigsten Gesamtlatenz umfasst.
  • Beispiel 25 umfasst den Gegenstand von einem der Beispiele 15–24, und worin das Erzeugen des Service-Funktionspfads das Erzeugen einer oder mehrerer virtueller Maschinen für jede Service-Funktion des Service-Funktionen-Satzes umfasst.
  • Beispiel 26 umfasst den Gegenstand von einem der Beispiele 15–25, und umfasst ferner das Führen des Netzwerkpakets zwischen die virtuellen Maschinen hindurch.
  • Beispiel 27 umfasst den Gegenstand von einem der Beispiele 15–26, und worin das Erzeugen des Service-Funktionspfads das Erzeugen einer oder mehrerer virtueller Maschinen für jede Service-Funktion des Service-Funktionen-Satzes auf einer oder mehreren anderen Rechnervorrichtungen umfasst.
  • Beispiel 28 umfasst den Gegenstand von einem der Beispiele 15–27, und worin das Auswählen der bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis des Auswahlkriteriums das Auswählen der bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis mindestens eines von einer Anzahl an VMs, die auf der Rechnervorrichtung aktiv sind, einer Verfügbarkeit an Netzwerkbandbreite, einer Anwendung von Netzwerkbandbreite, einer Dienstgüte(QoS)-Erfordernis, einer aktuellen Kapazität eines Prozessors der Rechnervorrichutng, einer Speicher-Verfügbarkeit der Rechnervorrichtung oder einem verfügbaren Datenspeicherungsumfang in einer Datenspeicherungsvorrichtung der Rechnervorrichtung umfasst.
  • Beispiel 29 umfasst eine Rechnervorrichtung, die einen Prozessor und einen Speicher umfasst, der darin eine Vielzahl an Befehlen gespeichert hat, die, bei Ausführung durch den Prozessor, die Rechnervorrichtung veranlassen, das Verfahren von einem der Ansprüche 15–28 auszuführen.
  • Beispiel 30 umfasst ein oder mehrere maschinenlesbare Medien, die eine Vielzahl an darauf gespeicherten Befehlen umfassen, die, in Antwort darauf, ausgeführt zu werden, in eine Rechnervorrichtung münden, die das Verfahren von einem der Ansprüche 15–28 ausführt.
  • Beispiel 31 umfasst eine Rechnervorrichtung für das Erzeugen von Service-Funktionsketten, wobei die Rechnervorrichtung Mittel für das Bestimmen, auf Basis des Netzwerkpakets, eines auf dem Netzwerkpaket auszuführenden Service-Funktionen-Satzes; Mittel für das Bestimmen eines Unter-Satzes des Service-Funktionen-Satzes, der parallel zu anderen Service-Funktionen im Service-Funktionen-Satz ausgeführt werden kann; Mittel für das Erzeugen einer oder mehrerer Service-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes; Mittel zum Auswählen einer bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis eines Auswahlkriteriums; und Mittel für das Erzeugen eines Service-Funktionspfads auf Basis der bevorzugten Service-Funktionskette umfasst.
  • Beispiel 32 umfasst den Gegenstand von Beispiel 31, und worin die Mittel für das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, Mittel für das Ermitteln dahingehend umfassen, welche Service-Funktionen für die Ausführung auf einem kritischen Pfad der Service-Funktionskette nicht erforderlich sind.
  • Beispiel 33 umfasst den Gegenstand von einem der Beispiele 31 und 32, und worin die Mittel für das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, Mittel für das Ermitteln dahingehend umfassen, welche Service-Funktionen nicht in Echtzeit ausgeführt werden müssen.
  • Beispiel 34 umfasst den Gegenstand von einem der Beispiele 31–33, und worin die Mittel für das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, Mittel für das Ermitteln dahingehend umfassen, welche Service-Funktionen nicht auf einem kritischen Pfad der Service-Funktionskette ausgeführt werden müssen, und nicht in Echtzeit ausgeführt werden müssen.
  • Beispiel 35 umfasst den Gegenstand von einem der Beispiele 31–34, und worin die Mittel für das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets Mittel für das Bestimmen des Service-Funktionen-Satzes auf Basis eines Paket-Typs umfassen, der dem Netzwerkpaket zugeordnet ist.
  • Beispiel 36 umfasst den Gegenstand von einem der Beispiele 31–35, und worin die Mittel für das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets Mittel für das Bestimmen des Service-Funktionen-Satzes auf Basis von Informationen umfassen, die im Header des Netzwerkpakets enthalten sind.
  • Beispiel 37 umfasst den Gegenstand von einem der Beispiele 31–36, und worin die Mittel für das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets Mittel für das Bestimmen des Service-Funktionen-Satzes auf Basis von Informationen umfassen, die in den Nutzdaten des Netzwerkpakets enthalten sind.
  • Beispiel 38 umfasst den Gegenstand von einem der Beispiele 31–37, und umfasst ferner Mittel für das Empfangen einer Ausgabe von einer der Service-Funktionen des Service-Funktionspfads unter Hinweis darauf, dass der Service-Funktionspfad eine Rekonfiguration erfordert; Mittel für die Neubestimmung des Service-Funktionen-Satzes in Antwort auf das Empfangen der Ausgabe; Mittel für die Neubestimmung des Unter-Satzes des Service-Funktionen-Satzes, der parallel zu anderen Service-Funktionen im Service-Funktionen-Satz ausgeführt werden kann; Mittel für das Wiedererzeugen einer oder mehrerer Servicel-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes; Mittel für das Neu-Auswählen der bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis des Auswahlkriteriums, das auf das Wiedererzeugen einer oder mehrerer Service-Funktionsketten folgt; und Mittel für das Wiedererzeugen des Service-Funktionspfads auf Basis der bevorzugten Service-Funktionskette, das auf das Neu-Auswählen der bevorzugten Service-Funktionskette folgt.
  • Beispiel 39 umfasst den Gegenstand von einem der Beispiele 31–38, und umfasst ferner Mittel für das Ordnen des Service-Funktionen-Satzes auf Basis einer Zeit-Sequenz-Abhängigkeit.
  • Beispiel 40 umfasst den Gegenstand von einem der Beispiele 31–39, und worin die Mittel für das Auswählen der bevorzugten Service-Funktionskette Mittel für das Bestimmen einer Gesamtlatenz, die dem Verarbeiten des Netzwerkpakets durch jede der Service-Funktionen für jede der Service-Funktionsketten zugeordnet ist; Mittel für das Bestimmen dahingehend, welche Service-Funktion eine niedrigste Gesamtlatenz aufweist; und Mittel für das Auswählen der bevorzugten Service-Funktionskette auf Basis der Service-Funktionskette umfassen, welche die niedrigste Gesamtlatenz aufweist.
  • Beispiel 41 umfasst den Gegenstand von einem der Beispiele 31–40, und worin die Mittel für das Erzeugen des Service-Funktionspfads Mittel für das Erzeugen einer oder mehrerer virtueller Maschinen für jede Service-Funktion des Service-Funktionen-Satzes umfassen.
  • Beispiel 42 umfasst den Gegenstand von einem der Beispiele 31–41, und umfasst ferner Mittel für das Führen des Netzwerkpakets zwischen die virtuellen Maschinen hindurch.
  • Beispiel 43 umfasst den Gegenstand von einem der Beispiele 31–42, und worin die Mittel für das Erzeugen des Service-Funktionspfads Mittel für das Erzeugen einer oder mehrerer virtueller Maschinen für jede Service-Funktion des Service-Funktionen-Satzes auf einer oder mehreren anderen Rechnervorrichtungen umfassen.
  • Beispiel 44 umfasst den Gegenstand von einem der Beispiele 31–43, und worin die Mittel für das Auswählen der bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis des Auswahlkriteriums Mittel für das Auswählen der bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis mindestens eines aus einer Anzahl an VMs, die auf der Rechnervorrichtung aktiv sind, einer Verfügbarkeit an Netzwerkbreite, einer Anwendbarkeit von Netzwerkbreite, einer Dienstgüte(QoS)-Erfordernis, einer aktuellen Kapazität eines Prozessors der Rechnervorrichtung, einer Speicher-Verfügbarkeit der Rechnervorrichtung oder einem verfügbaren Datenspeicherungsumfang in einer Datenspeicherungsvorrichtung der Rechnervorrichtung umfassen.

Claims (25)

  1. Rechnervorrichtung zur Verarbeitung eines Netzwerkpakets durch einen Service-Funktionspfad hindurch, wobei die Rechnervorrichtung Folgendes umfasst: ein Service-Funktionenbestimmungsmodul zum Bestimmen eines Service-Funktionen-Satzes, der auf dem Netzwerkpaket auszuführen ist, auf Basis des Netzwerkpakets; ein Service-Funktionskettenbestimmungsmodul (i) zur Bestimmung eines Unter-Satzes des Service-Funktionen-Satzes, der parallel zu anderen Service-Funktionen im Service-Funktionen-Satz ausgeführt werden kann, (ii) zur Erzeugung einer oder mehrerer Service-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes, und (iii) zur Auswahl einer bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis eines Auswahlkriteriums; und ein Service-Funktionspfadsteuerungsmodul zur Erzeugung eines Service-Funktionspfads auf Basis der bevorzugten Service-Funktionskette.
  2. Rechnervorrichtung nach Anspruch 1, worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln dahingehend umfasst, welche Service-Funktionen nicht auf einem kritischen Pfad der Service-Funktionskette ausgeführt werden müssen.
  3. Rechnervorrichtung nach Anspruch 1, worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln dahingehend umfasst, welche Service-Funktionen nicht in Echtzeit ausgeführt werden müssen.
  4. Rechnervorrichtung nach Anspruch 1, worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln dahingehend umfasst, welche Service-Funktionen nicht auf einem kritischen Pfad der Service-Funktionskette ausgeführt werden müssen, und nicht in Echtzeit ausgeführt werden müssen.
  5. Rechnervorrichtung nach Anspruch 1, worin das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets das Bestimmen des Service-Funktionen-Satzes auf Basis von mindestens einem von einem Paket-Typ, der dem Netzwerkpaket zugeordnet ist, Informationen, die im Header des Netzwerkpakets enthalten sind, oder Informationen, die in den Nutzdaten des Netzwerkpakets enthalten sind, umfasst.
  6. Rechnervorrichtung nach Anspruch 1, worin: das Service-Funktionenbestimmungsmodul ferner den Service-Funktionen-Satz auf Basis einer von einer der Service-Funktionen des Service-Funktionspfads empfangenen Ausgabe neu bestimmen soll, die angibt, dass der Service-Funktionspfad eine Rekonfiguration erfordert, das Service-Funktionskettenbestimmungsmodul ferner (i) den Unter-Satz des Service-Funktionen-Satzes, der parallel zu anderen Service-Funktionen im Service-Funktionen-Satz ausgeführt werden kann, als Antwort auf die empfangene Ausgabe neu bestimmen soll, (ii) eine oder mehrere Service-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes wiedererzeugen soll, und (iii) die bevorzugte Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis der Auswahlkriterien neu auswählen soll, die auf die Wiedererzeugung der einen oder den mehreren Service-Funktionsketten folgen, und das Service-Funktionspfadsteuerungsmodul ferner den Service-Funktionspfad für jede Service-Funktion des Service-Funktionen-Satzes auf Basis der bevorzugten Service-Funktionskette wiedererzeugen soll, die auf die Neu-Auswahl der bevorzugten Service-Funktionskette folgt.
  7. Rechnervorrichtung nach Anspruch 1, worin das Service-Funktionskettenbestimmungsmodul ferner den Service-Funktionen-Satz auf Basis einer Zeit-Sequenz-Abhängigkeit ordnen soll.
  8. Rechnervorrichtung nach Anspruch 1, worin das Auswählen der bevorzugten Service-Funktionskette das Bestimmen einer Gesamtlatenz umfasst, die der Verarbeitung des Netzwerkpakets durch jede der Service-Funktionen für jede der Service-Funktionsketten hindurch zugeordnet ist, um zu bestimmen, welche Service-Funktionskette die niedrigste Gesamtlatenz aufweist, und um die bevorzugte Service-Funktionskette auf Basis der Service-Funktionskette auszuwählen, welche die niedrigste Gesamtlatenz aufweist.
  9. Rechnervorrichtung nach Anspruch 1, worin das Erzeugen des Service-Funktionspfads das Erzeugen einer oder mehrerer virtueller Maschinen für jede Service-Funktion des Service-Funktionen-Satzes umfasst.
  10. Rechnervorrichtung nach Anspruch 9, worin das Service-Funktionspfadsteuerungsmodul ferner das Netzwerkpaket zwischen die virtuellen Maschinen hindurchführen soll.
  11. Rechnervorrichtung nach Anspruch 1, worin das Erzeugen des Service-Funktionspfads das Erzeugen einer oder mehrerer virtueller Maschinen für jede Service-Funktion des Service-Funktionen-Satzes auf einer oder mehreren Rechnervorrichtungen umfasst.
  12. Rechnervorrichtung nach Anspruch 1, worin die Auswahlkriterien mindestens eines aus einer Anzahl an VMs, die auf der Rechnervorrichtung aktiv sind, einer Verfügbarkeit an Netzwerkbandbreite, einer Anwendung von Netzwerkbandbreite, einer Dienstgüte(QoS)-Erfordernis, einer aktuellen Kapazität eines Prozessors der Rechnervorrichtung, einer Speicher-Verfügbarkeit der Rechnervorrichtung oder einem verfügbaren Datenspeicherungsumfang in einer Datenspeicherungsvorrichtung der Rechnervorrichtung umfassen.
  13. Verfahren zur Erzeugung von Service-Funktionsketten, wobei das Verfahren Folgendes umfasst: Bestimmen eines Service-Funktionen-Satzes, der auf dem Netzwerkpaket auf Basis des Netzwerkpakets auszuführen ist, durch eine Rechnervorrichtung; Bestimmen eines Unter-Satzes des Service-Funktionen-Satzes, der parallel zu anderen Service-Funktionen im Service-Funktionen-Satz ausgeführt werden kann, durch die Rechnervorrichtung; Erzeugen einer oder mehrerer Service-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes durch die Rechnervorrichtung; Auswählen einer bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis eines Auswahlkriteriums durch die Rechnervorrichtung; und Erzeugen eines Service-Funktionspfads durch die Rechnervorrichtung auf Basis der bevorzugten Service-Funktionskette.
  14. Verfahren nach Anspruch 13, worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln dahingehend umfasst, welche Service-Funktionen nicht auf einem kritischen Pfad der Service-Funktionskette ausgeführt werden müssen.
  15. Verfahren nach Anspruch 13, worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln dahingehend umfasst, welche Service-Funktionen nicht in Echtzeit ausgeführt werden müssen.
  16. Verfahren nach Anspruch 13, worin das Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel ausgeführt werden kann, das Ermitteln dahingehend umfasst, welche Service-Funktionen nicht auf dem kritischen Pfad der Service-Funktionskette ausgeführt werden müssen, und nicht in Echtzeit ausgeführt werden müssen.
  17. Verfahren nach Anspruch 13, worin das Bestimmen des Service-Funktionen-Satzes auf Basis des Netzwerkpakets das Bestimmen des Service-Funktionen-Satzes auf Basis von mindestens einem von einem Paket-Typ, der dem Netzwerkpaket zugeordnet ist, Informationen, die im Header des Netzwerkpakets enthalten sind oder Informationen, die in den Nutzdaten des Netzwerkpakets enthalten sind, umfasst.
  18. Verfahren nach Anspruch 13, ferner umfassend: Empfangen einer Ausgabe von einer der Service-Funktionen des Service-Funktionspfads, welche angibt, dass der Service-Funktionspfad eine Rekonfiguration erfordert; Neu-Bestimmen des Service-Funktionen-Satzes als Antwort auf das Empfangen der Ausgabe; Neu-Bestimmen des Unter-Satzes des Service-Funktionen-Satzes, der parallel zu anderen Service-Funktionen im Service-Funktions-Satz ausgeführt werden kann; Wiedererzeugen einer oder mehrerer Service-Funktionsketten auf Basis des Service-Funktionen-Satzes und des Unter-Satzes des Service-Funktionen-Satzes; Neu-Auswahl der bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis der Auswahlkriterien, die dem Wiedererzeugen einer oder mehrerer Service-Funktionsketten folgen; und Wiedererzeugen des Service-Funktionspfads auf Basis der bevorzugten Service-Funktionskette, die der Neu-Auswahl der bevorzugten Service-Funktionskette folgt.
  19. Verfahren nach Anspruch 13, ferner umfassend: Ordnen des Service-Funktionen-Satzes auf Basis einer Zeit-Sequenz-Abhängigkeit.
  20. Verfahren nach Anspruch 13, worin das Auswählen der bevorzugten Service-Funktionskette Folgendes umfasst: Bestimmen einer Gesamtlatenz, die der Verarbeitung des Netzwerkpakets durch jede der Service-Funktionen für jede der Service-Funktionsketten zugeordnet ist; Bestimmen, welche Service-Funktion eine niedrigste Gesamtlatenz aufweist; und Auswählen der bevorzugten Service-Funktionskette auf Basis der Service-Funktionskette, die die niedrigste Gesamtlatenz aufweist.
  21. Verfahren nach Anspruch 13, worin das Erzeugen des Service-Funktionspfads das Erzeugen einer oder mehrerer virtueller Maschinen für jede Service-Funktion des Service-Funktionen-Satzes umfasst.
  22. Verfahren nach Anspruch 13, worin das Erzeugen des Service-Funktionspfads das Erzeugen einer oder mehrerer virtueller Maschinen für jede Service-Funktion des Service-Funktions-Satzes auf einer oder mehreren anderen Rechenvorrichtungen umfasst.
  23. Verfahren nach Anspruch 13, worin das Auswählen der bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis der Auswahlkriterien das Auswählen der bevorzugten Service-Funktionskette aus der einen oder den mehreren Service-Funktionsketten auf Basis mindestens eines aus einer Anzahl an VMs, die auf der Rechenvorrichtung aktiv sind, einer Verfügbarkeit an Netzwerkbandbreite, einer Anwendung von Netzwerkbandbreite, einer Dienstgüte(QoS)-Erfordernis, einer aktuellen Kapazität eines Prozessors der Rechenvorrichtung, einer Speicher-Verfügbarkeit der Rechnervorrichtung oder einem verfügbaren Datenspeicherungsumfang in einer Datenspeicherungsvorrichtung der Rechnervorrichtung umfasst.
  24. Rechnervorrichtung, umfassend: einen Prozessor; und einen Speicher, der darin eine Vielzahl an Befehlen gespeichert hat, die bei Ausführung durch den Prozessor die Rechnervorrichtung veranlassen, das Verfahren von einem der Ansprüche 15–23 auszuführen.
  25. Ein oder mehrere maschinenlesbare Speicherungsmedien, die eine Vielzahl an darin gespeicherten Befehlen umfassen, die als Antwort darauf, ausgeführt zu werden, in eine Rechnervorrichtung münden, die das Verfahren von einem der Ansprüche 15–23 ausführt.
DE102015119890.8A 2014-12-23 2015-11-17 Paralleles Verarbeiten von Service-Funktionen in Service-Funktionsketten Withdrawn DE102015119890A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/580,826 2014-12-23
US14/580,826 US9462084B2 (en) 2014-12-23 2014-12-23 Parallel processing of service functions in service function chains

Publications (1)

Publication Number Publication Date
DE102015119890A1 true DE102015119890A1 (de) 2016-06-23

Family

ID=56097801

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015119890.8A Withdrawn DE102015119890A1 (de) 2014-12-23 2015-11-17 Paralleles Verarbeiten von Service-Funktionen in Service-Funktionsketten

Country Status (3)

Country Link
US (1) US9462084B2 (de)
CN (1) CN105721535B (de)
DE (1) DE102015119890A1 (de)

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794379B2 (en) 2013-04-26 2017-10-17 Cisco Technology, Inc. High-efficiency service chaining with agentless service nodes
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
CN103346980B (zh) * 2013-07-02 2016-08-10 华为技术有限公司 一种业务调度方法、装置及网络设备
US10135737B2 (en) 2014-09-30 2018-11-20 Nicira, Inc. Distributed load balancing systems
US11496606B2 (en) 2014-09-30 2022-11-08 Nicira, Inc. Sticky service sessions in a datacenter
US9531590B2 (en) 2014-09-30 2016-12-27 Nicira, Inc. Load balancing across a group of load balancers
US20160119253A1 (en) * 2014-10-23 2016-04-28 Kt Corporation Method and system of performing service function chaining
US9660909B2 (en) 2014-12-11 2017-05-23 Cisco Technology, Inc. Network service header metadata for load balancing
USRE48131E1 (en) 2014-12-11 2020-07-28 Cisco Technology, Inc. Metadata augmentation in a service function chain
US9794193B2 (en) * 2015-01-30 2017-10-17 Gigamon Inc. Software defined visibility fabric
US20160261505A1 (en) * 2015-03-04 2016-09-08 Alcatel-Lucent Usa, Inc. Localized service chaining in nfv clouds
US9582306B2 (en) * 2015-03-31 2017-02-28 At&T Intellectual Property I, L.P. Method and system to dynamically instantiate virtual repository for any services
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
WO2017037193A1 (en) * 2015-09-02 2017-03-09 Telefonaktiebolaget Lm Ericsson (Publ) Methods and network nodes for scalable top-of-chain selection in mobile service chaining
US9749294B1 (en) 2015-09-08 2017-08-29 Sprint Communications Company L.P. System and method of establishing trusted operability between networks in a network functions virtualization environment
US10542115B1 (en) 2015-10-01 2020-01-21 Sprint Communications Company L.P. Securing communications in a network function virtualization (NFV) core network
US9781016B1 (en) * 2015-11-02 2017-10-03 Sprint Communications Company L.P. Dynamic addition of network function services
US10110707B2 (en) * 2015-12-11 2018-10-23 International Business Machines Corporation Chaining virtual network function services via remote memory sharing
US10187306B2 (en) * 2016-03-24 2019-01-22 Cisco Technology, Inc. System and method for improved service chaining
US10235211B2 (en) * 2016-04-22 2019-03-19 Cavium, Llc Method and apparatus for dynamic virtual system on chip
US10931793B2 (en) 2016-04-26 2021-02-23 Cisco Technology, Inc. System and method for automated rendering of service chaining
US10419550B2 (en) 2016-07-06 2019-09-17 Cisco Technology, Inc. Automatic service function validation in a virtual network environment
US10320664B2 (en) 2016-07-21 2019-06-11 Cisco Technology, Inc. Cloud overlay for operations administration and management
US10218616B2 (en) 2016-07-21 2019-02-26 Cisco Technology, Inc. Link selection for communication with a service function cluster
US10225270B2 (en) * 2016-08-02 2019-03-05 Cisco Technology, Inc. Steering of cloned traffic in a service function chain
WO2018023692A1 (en) 2016-08-05 2018-02-08 Nokia Shanghai Bell Co., Ltd. Security-on-demand architecture
US10218593B2 (en) 2016-08-23 2019-02-26 Cisco Technology, Inc. Identifying sources of packet drops in a service function chain environment
EP3513531B1 (de) * 2016-09-18 2021-06-23 Alcatel Lucent Vereinheitlichte sicherheitsarchitektur
US10250498B1 (en) 2016-10-03 2019-04-02 Sprint Communications Company L.P. Session aggregator brokering of data stream communication
US10439882B2 (en) * 2016-11-15 2019-10-08 T-Mobile Usa, Inc. Virtualized networking application and infrastructure
CN108574712B (zh) * 2017-03-13 2021-06-01 阿里巴巴集团控股有限公司 一种容器服务集群的创建方法及装置
US10225187B2 (en) 2017-03-22 2019-03-05 Cisco Technology, Inc. System and method for providing a bit indexed service chain
US10462047B2 (en) * 2017-04-10 2019-10-29 Cisco Technology, Inc. Service-function chaining using extended service-function chain proxy for service-function offload
US10884807B2 (en) 2017-04-12 2021-01-05 Cisco Technology, Inc. Serverless computing and task scheduling
US10257033B2 (en) 2017-04-12 2019-04-09 Cisco Technology, Inc. Virtualized network functions and service chaining in serverless computing infrastructure
US10333855B2 (en) 2017-04-19 2019-06-25 Cisco Technology, Inc. Latency reduction in service function paths
US10554689B2 (en) 2017-04-28 2020-02-04 Cisco Technology, Inc. Secure communication session resumption in a service function chain
US10824454B2 (en) * 2017-06-15 2020-11-03 At&T Intellectual Property I, L.P. 5G dynamic slice and network identity instantiation, termination, and access management system and method
EP3639147A4 (de) * 2017-06-16 2020-04-22 Drivenets Ltd. Parallele informationsverarbeitung auf multicore-computerplattformen
US10735275B2 (en) 2017-06-16 2020-08-04 Cisco Technology, Inc. Releasing and retaining resources for use in a NFV environment
US10798187B2 (en) 2017-06-19 2020-10-06 Cisco Technology, Inc. Secure service chaining
US10528625B2 (en) * 2017-06-21 2020-01-07 Cisco Technology, Inc. Client cloud synchronizer
US10397271B2 (en) 2017-07-11 2019-08-27 Cisco Technology, Inc. Distributed denial of service mitigation for web conferencing
US10601961B2 (en) * 2017-07-12 2020-03-24 Cisco Technology, Inc. Service function chain dynamic classification
US10673698B2 (en) 2017-07-21 2020-06-02 Cisco Technology, Inc. Service function chain optimization using live testing
CN107689885A (zh) * 2017-08-04 2018-02-13 清华大学 网络功能虚拟化架构
US11005732B1 (en) * 2017-08-23 2021-05-11 F5 Networks, Inc. Methods for improved service chain classification and management and devices thereof
US11063856B2 (en) 2017-08-24 2021-07-13 Cisco Technology, Inc. Virtual network function monitoring in a network function virtualization deployment
US10348488B1 (en) 2017-08-25 2019-07-09 Sprint Communications Company L.P. Tiered distributed ledger technology (DLT) in a network function virtualization (NFV) core network
US10791065B2 (en) 2017-09-19 2020-09-29 Cisco Technology, Inc. Systems and methods for providing container attributes as part of OAM techniques
US11018981B2 (en) 2017-10-13 2021-05-25 Cisco Technology, Inc. System and method for replication container performance and policy validation using real time network traffic
US10541893B2 (en) 2017-10-25 2020-01-21 Cisco Technology, Inc. System and method for obtaining micro-service telemetry data
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
CN107947965B (zh) * 2017-11-07 2020-06-19 清华大学 服务链编译器
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
CN108092803B (zh) * 2017-12-08 2020-07-17 中通服咨询设计研究院有限公司 网络功能虚拟化环境中实现网元级并行化服务功能的方法
CN107995045B (zh) * 2017-12-19 2020-10-13 上海海事大学 网络功能虚拟化的可适性服务功能链路径选择方法及系统
US10432524B2 (en) 2017-12-20 2019-10-01 At&T Intellectual Property I, L.P. Parallelism for virtual network functions in service function chains
CN107920023B (zh) * 2017-12-29 2021-01-19 深信服科技股份有限公司 一种安全资源池的实现方法及系统
CN108494574B (zh) * 2018-01-18 2020-06-19 清华大学 一种nfv中网络功能并行处理基础架构
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US10951633B1 (en) * 2018-03-30 2021-03-16 Citigroup Technology, Inc. Serverless auto-remediating security systems and methods
US10153978B1 (en) 2018-05-04 2018-12-11 Nefeli Networks, Inc. Distributed anticipatory bidirectional packet steering for software network functions
JP6973300B2 (ja) * 2018-06-04 2021-11-24 日本電信電話株式会社 サービスチェイン設計装置、サービスチェイン設計方法、および、サービスチェイン設計プログラム
US10666612B2 (en) 2018-06-06 2020-05-26 Cisco Technology, Inc. Service chains for inter-cloud traffic
FR3081644A1 (fr) * 2018-06-22 2019-11-29 Orange Procede de decouverte de fonctions intermediaires et de selection d'un chemin entre deux equipements de communication
CN108923961B (zh) * 2018-06-25 2020-02-21 电子科技大学 一种多入口网络服务功能链优化方法
CN108990067B (zh) * 2018-07-09 2021-11-12 常熟理工学院 一种应用于超密集异构网络的能效控制方法
CN108990109B (zh) * 2018-07-09 2021-07-27 常熟理工学院 一种应用于超密集异构网络的基于双重博弈的负载均衡方法
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10680842B2 (en) 2018-11-01 2020-06-09 Vmware, Inc. Parallel execution of services of a serial service chain on packets using multicast-based service insertion
US10649805B1 (en) * 2018-11-01 2020-05-12 Vmware, Inc Parallel execution of services on packets using multicast-based service insertion
US10805221B2 (en) * 2018-11-06 2020-10-13 Nanning Fugui Precision Industrial Co., Ltd. Service function chain (SFC) path selection method and system
US11146506B2 (en) * 2018-12-14 2021-10-12 At&T Intellectual Property I, L.P. Parallel data processing for service function chains spanning multiple servers
US10805164B2 (en) 2018-12-14 2020-10-13 At&T Intellectual Property I, L.P. Controlling parallel data processing for service function chains
US11288088B2 (en) 2019-02-22 2022-03-29 Vmware, Inc. Service control plane messaging in service data plane
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
EP3991393A1 (de) * 2019-10-30 2022-05-04 VMware, Inc. Verteilte dienstkette über mehrere clouds
CN111163004B (zh) * 2019-12-31 2023-03-31 奇安信科技集团股份有限公司 服务链数据处理方法、装置和计算机设备
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11368387B2 (en) 2020-04-06 2022-06-21 Vmware, Inc. Using router as service node through logical service plane
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
CN112333035B (zh) * 2020-12-30 2021-04-02 中国人民解放军国防科技大学 一种实时的混合型服务功能链嵌入代价优化方法及设备
CN113225211B (zh) * 2021-04-27 2022-09-02 中国人民解放军空军工程大学 细粒度的服务功能链扩展方法
US11831540B2 (en) * 2021-10-01 2023-11-28 International Business Machines Corporation Service chain instance pool sizing
CN115086220B (zh) * 2022-06-30 2024-05-17 绿盟科技集团股份有限公司 一种网络报文转发方法、装置、设备及介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769124B1 (en) * 1998-07-22 2004-07-27 Cisco Technology, Inc. Persistent storage of information objects
US6505228B1 (en) * 1998-07-22 2003-01-07 Cisco Technology, Inc. Dynamic determination of execution sequence
JP2002290708A (ja) * 2001-03-27 2002-10-04 Fujitsu Ltd サービス機能実行システムにおける安全性確保方式
JP3915663B2 (ja) * 2002-11-06 2007-05-16 ソニー株式会社 データ処理システム、情報処理装置、および方法、並びにコンピュータ・プログラム
US8804747B2 (en) * 2010-09-23 2014-08-12 Cisco Technology, Inc. Network interface controller for virtual and distributed services
US9246799B2 (en) * 2013-05-10 2016-01-26 Cisco Technology, Inc. Data plane learning of bi-directional service chains
US9178812B2 (en) * 2013-06-05 2015-11-03 Cisco Technology, Inc. Stacking metadata contexts for service chains
US9917745B2 (en) * 2013-09-27 2018-03-13 Futurewei Technologies, Inc. Validation of chained network services
US9942099B2 (en) * 2013-11-13 2018-04-10 Futurewei Technologies, Inc. Methodology and apparatus for topology discovery and mapping of chained network services
US9614739B2 (en) * 2014-01-30 2017-04-04 Cisco Technology, Inc. Defining service chains in terms of service functions
US9967175B2 (en) * 2014-02-14 2018-05-08 Futurewei Technologies, Inc. Restoring service functions after changing a service chain instance path
US9548919B2 (en) * 2014-10-24 2017-01-17 Cisco Technology, Inc. Transparent network service header path proxies

Also Published As

Publication number Publication date
CN105721535A (zh) 2016-06-29
CN105721535B (zh) 2019-03-01
US9462084B2 (en) 2016-10-04
US20160182684A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
DE102015119890A1 (de) Paralleles Verarbeiten von Service-Funktionen in Service-Funktionsketten
DE112015004008B4 (de) Selektives abtasten von netzwerkpaketverkehr unter verwendung von virtuelle-maschinen-werkzeugplattformen auf cloud-basis
DE102016222048B4 (de) Dynamisch definierte virtuelle private netzwerktunnel in hybriden cloud-umgebungen
DE112013006417B4 (de) Verlustfreie Schalterstruktur mit niedriger Latenzzeit zum Gebrauch in einem Rechenzentrum
DE112013003180B4 (de) Verfahren, Zonenserver und Speichermedium zum Verwalten von Server-Hardware-Ressourcen in einer Cloud-Datenzentrum-Umgebung
DE102016103492B4 (de) Datenverarbeitungsvorrichtung und Verfahren zum Überwachen von Netzwerkverkehr und Maschinenlesbares Speichermedium
DE102015119889A1 (de) Verfahren für Netzwerkvorrichtungsfluss-Look-up-Verwaltung
DE112013000731B4 (de) Skalierbare virtuelle Geräte-Cloud
DE102018214774A1 (de) Technologien zum dynamischen Managen der Zuverlässigkeit disaggregierter Betriebsmittel in einem gemanagten Knoten
DE102013208431B4 (de) Großer verteilter Switch auf Fabric-Basis unter Verwendung virtueller Switches und virtueller Steuereinheiten
DE112016004347T5 (de) Lokale und globale Datenzentrumsnetzoptimierungen in Echtzeit basierend auf Plattformtelemetriedaten
DE102015118711B4 (de) Technologien zur Netzwerkpaketcacheverwaltung
DE102015118705A1 (de) Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren
DE202015009244U1 (de) Routing von Datenverkehr innerhalb von und zwischen autonomen Systemen
DE102016104264B4 (de) Übertragen von Mehrfachzielpaketen in Overlay-Netzwerken
US10341195B1 (en) Virtual network function (VNF) resource management in a software defined network (SDN)
US10992553B2 (en) Method and apparatus for tap aggregation and network data truncation
DE102014117460A1 (de) Programmierbares verteiltes Networking
CN110710160A (zh) 生成用于网络策略分析的全网络逻辑模型
DE112013001904T5 (de) Paketvermittlung auf der Ebene 2 ohne Nachschlagetabelle für Ethernet-Switches
DE102018202432A1 (de) Strukturunterstützung für die Dienstgüte
DE102018129112A1 (de) Systemdecoder für Trainingsbeschleuniger
DE102019103932A1 (de) Technologien für optimierte Dienstgütebeschleunigung
DE102018204577A1 (de) Techniken zum Erfüllen von Dienstgüteanforderungen für eine Fabric-Punkt-zu-Punkt-Verbindung
Siracusano et al. Is it a SmartNIC or a key-value store? both!

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee