-
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.