-
Technisches Gebiet
-
Verschiedene Ausführungsformen betreffen im Allgemeinen eine Vorrichtung und ein Verfahren zum Abwickeln eines eingehenden Kommunikations-Datenrahmens.
-
Hintergrund
-
Eine Mustererkennung in Datenrahmen kann in einem Kommunikationskontext wichtig sein, insbesondere in Bezug auf Datenrahmen, die in ein Datenverarbeitungssystem eingehen. Die Mustererkennung kann zum Beispiel in einer Firewall, zur Intrusionserkennung, Filterung und Datenflusssteuerung verwendet werden.
-
Vorrichtungen und Prozesse zum Unterscheiden von gewünschten/erwarteten eingehenden Kommunikations-Datenrahmen von unerwünschten/unerwarteten eingehenden Kommunikations-Datenrahmen, die im Stand der Technik verfügbar sind, weisen möglicherweise einen begrenzten Erfolg auf. Zum Beispiel können sie unerwünschte Datenrahmen passieren lassen und können gewünschte Datenrahmen ablehnen.
-
Die
WO 2011 / 006 117 A2 offenbart eine Vorrichtung, die eine Mehrzahl von Mikrocode-gesteuerten Zustandsmaschinen und eine Verteilungsschaltung aufweist, die Eingabedaten an die Vielzahl von Mikrocode-gesteuerten Zustandsmaschinen weiterleitet, so dass die Vielzahl von Mikrocode-gesteuerten Zustandsmaschinen Regeln auf die Eingabedaten anwenden, um Übereinstimmungen zu bestimmen und Prioritätsindikatoren zu erzeugen , wobei jeder Übereinstimmung eine Prioritätsanzeige zugeordnet ist. Mindestens eine der Übereinstimmungen wird anhand der Prioritätsindikatoren ausgewählt.
-
Kurzdarstellung
-
Es wird eine Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens, der eine Vielzahl von Bits enthält, bereitgestellt. Die Vorrichtung kann aufweisen: eine Vielzahl von Daten-Matchern, wobei jeder Daten-Matcher eingerichtet ist, eine Teilmenge der Vielzahl von Bits des Datenrahmens mit einem vorgegebenen Datenmuster aus einer Vielzahl von Datenmustern zu vergleichen und eine Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, eine Vielzahl von Auswahleinrichtungen, wobei jede Auswahleinrichtung eingerichtet ist, eine Teilmenge der Ausgaben von der Vielzahl von Daten-Matchern mit einem vorgegebenen Auswahlmuster einer Vielzahl von Auswahlmustern zu vergleichen und eine Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, und ein Rahmenfilter, das eingerichtet ist, den eingehenden Rahmen an einen Anwendungslogikblock nur dann zu übertragen, wenn die Ausgaben der Vielzahl von Auswahleinrichtungen mit einem vorgegebenen Filtermuster übereinstimmen, und auch um die Ausgaben der Vielzahl von Auswahleinrichtungen an die Anwendungslogik zu übertragen.
-
Kurze Beschreibung der Zeichnungen
-
In den Zeichnungen beziehen sich gleiche Bezugszeichen in den verschiedenen Ansichten im Allgemeinen auf gleiche Elemente. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, wobei die Betonung stattdessen im Allgemeinen auf der Veranschaulichung der Prinzipien der Erfindung liegt. In der nachstehenden Beschreibung werden verschiedene Ausführungsformen der Erfindung unter Bezugnahme auf die folgenden Zeichnungen beschrieben. Es zeigen:
- sowohl 1A als auch 1B eine schematische Darstellung einer Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens gemäß dem Stand der Technik;
- 2 eine schematische Darstellung einer Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens gemäß verschiedenen Ausführungsformen;
- 3A eine schematische Darstellung eines Daten-Matchers einer Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens gemäß verschiedenen Ausführungsformen;
- 3B eine schematische Darstellung einer Auswahleinrichtung einer Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens gemäß verschiedenen Ausführungsformen;
- 3C eine schematische Darstellung eines Rahmenfilters einer Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens gemäß verschiedenen Ausführungsformen;
- 3D eine Tabelle, die einen Beispielrahmenfilterprozess des Rahmenfilters von 3C darstellt;
- 4A eine schematische Darstellung eines Daten-Matchers einer Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens gemäß verschiedenen Ausführungsformen; und 4B für ein Ausführungsbeispiel, wie der Daten-Matcher von 4A arbeitet;
- 5A eine schematische Darstellung einer Auswahleinrichtung einer Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens gemäß verschiedenen Ausführungsformen; und 5B und 5C für Ausführungsbeispiele, wie die Auswahleinrichtung von 5A arbeitet;
- 6A eine schematische Darstellung eines Rahmenfilters einer Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens gemäß verschiedenen Ausführungsformen; und 6B bis 6H stellen Ausführungsbeispiele dar, wie das Rahmenfilter von 6A arbeitet;
- 7 ein Ablaufdiagramm eines Verfahrens zum Abwickeln eines eingehenden Kommunikations-Datenrahmens, der eine Vielzahl von Bits enthält, gemäß verschiedenen Ausführungsformen.
-
Beschreibung
-
Die nachstehende ausführliche Beschreibung nimmt auf die begleitenden Zeichnungen Bezug, die veranschaulichend konkrete Einzelheiten und Ausführungsformen zeigen, in denen die Erfindung umgesetzt werden kann.
-
Der Begriff „beispielgebend“ wird hier in der Bedeutung „als ein Beispiel, eine Instanz oder Veranschaulichung dienend“ verwendet. Jede Ausführungsform oder jede Ausgestaltung, die hier als „beispielgebend“ beschrieben wird, ist nicht notwendigerweise als bevorzugt oder vorteilhaft gegenüber anderen Ausführungsformen oder Ausgestaltungen zu verstehen.
-
Es werden verschiedene Aspekte der Offenbarung für Vorrichtungen bereitgestellt, und verschiedene Aspekte der Offenbarung werden für Verfahren bereitgestellt. Es versteht sich, dass grundlegende Eigenschaften der Vorrichtungen auch für die Verfahren gelten und umgekehrt. Daher können der Kürze halber Wiederholungsbeschreibungen solcher Eigenschaften ausgelassen werden.
-
Einige der hier beschriebenen Elemente können eine Vielzahl von ähnlicher oder identischer Elemente umfassen oder daraus bestehen, auf die als eine Gruppe von Elementen mit einem generischen Bezugszeichen verwiesen werden kann. Um einzelne Elemente der Gruppe anzusprechen, können sie z.B. durch angehängte Nummern voneinander unterschieden werden. Um eine Überlastung zu vermeiden, können einige der Bezugszeichen in den Figuren weggelassen sein.
-
Sowohl 1A als auch 1B zeigen eine schematische Darstellung einer Vorrichtung 100 zum Abwickeln eines eingehenden Kommunikations-Datenrahmens 110 (der auch als Datenrahmen oder Rahmen bezeichnet wird) gemäß dem Stand der Technik.
-
Die Vorrichtung 100 kann eine Vielzahl von Filtern 102, 104, 106, 108 aufweisen, von denen jedes eine Vielzahl von Filterelementen 1021, ..., 102i, 1041, ..., 104j usw. aufweisen kann.
-
Jedes der Filterelemente 1021, 1022, ..., 1041, ... 104j usw. kann derart eingerichtet sein, dass es einen eingehenden Kommunikations-Datenrahmen 110 auf der Grundlage einer Analyse eines Abschnitts des Datenrahmens 110 entweder akzeptiert oder ablehnt.
-
Diese Art mehrschichtiger Filterung muss möglicherweise zum Beispiel unerwartete Rahmen 110, die durch Systemfehler ausgelöst werden können, und/oder unbeabsichtigte Rahmen 110, wie z.B. durch Angriffe ausgelöst, verarbeiten und es kann von ihr erwartet werden, dass sie solche Rahmen 110 ablehnt.
-
Wie in 1A dargestellt, kann für jedes der Filter 102, 104, 106, 108 ein Filterungsergebnis von den anderen Filtern 102, 104, 106, 108 unabhängig sein. Dies kann zu einer Situation, wie in 1A dargestellt, führen, in der zwei Datenrahmen 110, die als Rahmen 1 und Rahmen 2 angezeigt sind, die durch die Vorrichtung 100 akzeptiert werden sollen, tatsächlich all die Filter 102, 104, 106, 108 durchlaufen, jedoch auch ein dritter Datenrahmen 110, der als Rahmen 3 angezeigt wird und der Datenrahmenabschnitte des Rahmens 1 und des Rahmens 2 kombiniert, all die Filter 102, 104, 106, 108 durchläuft, auch wenn er durch die Vorrichtung 100 abgelehnt werden soll.
-
Der Datenrahmen 110 kann zum Beispiel ein Ethernet-Rahmen gemäß einem entsprechenden Standard (z.B. IEEE 802.3) sein und kann Nutzdaten einer Vielzahl von Kommunikationsprotokollschichten aufweisen.
-
Jedes aus der Vielzahl von Filtern 102, 104, 106, 108 kann eine Vielzahl von Filterelementen 1021, ..., 102i, 1041, ..., 104j usw. für eine der Kommunikationsprotokollschichten bereitstellen. Zum Beispiel kann das Filter 102 Filterelemente 1021, 1022, ..., 102i für zu genehmigende MAC-Adressen bereitstellen, das Filter 104 kann Filterelemente 1041, 1042, ..., 104i für zu genehmigende VLAN-Tags bereitstellen usw.
-
In Abhängigkeit davon, welche der Filter 102, 104, 106, 108 bereitgestellt sind, können die Beispiel-Ethernet-Rahmen 110 auf der Grundlage lediglich des MAC-Adressfilters 102 oder der MAC-Adresse und des VLAN-Tags oder zum Beispiel der MAC-Adresse, des VLAN-Tags, der IP-Adresse und der Portnummer und/oder konkreter proprietärer Rahmenelemente usw. gefiltert und verarbeitet werden.
-
Für jede der Kommunikationsprotokollschichten kann die Vorrichtung 100 eingerichtet sein, zu überprüfen, ob der Datenrahmen 110 eines der Filterelemente (z.B. 1021, 1022, ..., 102i) des entsprechenden Filters (z.B. 102) durchläuft, und einen durchgelaufenen Datenrahmen 110 an eine Überprüfung im Hinblick auf einen nachfolgenden Filter (z.B. 104) zu übergeben.
-
Daher ist, wie in 1A dargestellt, die Vorrichtung 100 mit der mehrschichtigen Filterung, die durch unabhängige Filter 102, 104, 106, 108 für die verschiedenen Schichten bereitgestellt ist, möglicherweise nicht in der Lage, eine eindeutige Pfadfilterung, mit anderen Worten nicht in der Lage, eindeutige Ergebnisse bereitzustellen. Wenn sichergestellt werden soll, dass der unbeabsichtigte Rahmen 3 verworfen wird, muss ein zusätzlicher Aufwand unternommen werden.
-
Des Weiteren kann, wie in 1B dargestellt, ein fehlerhaftes Filterelement 1021 alle eingehenden Rahmen 110, auch diejenigen, die abgelehnt werden sollen, passieren lassen, oder das ausgefallene Filterelement 1021 kann alle eingehenden Rahmen 110 ablehnen, auch diejenigen, die durchlaufen sollten.
-
Daher ist die Vorrichtung 100 mit dieser Art mehrschichtiger Filterung möglicherweise nicht in der Lage, Verfügbarkeit und Zuverlässigkeit zum Beispiel von Anwendungen bereitzustellen, die mit erwarteten eingehenden Datenrahmen 110 beliefert werden müssen, während sie vor defekten und/oder gefährlichen Datenrahmen 110 geschützt werden.
-
In verschiedenen Ausführungsformen werden eine Vorrichtung und ein Verfahren bereitgestellt, die eingehende Kommunikations-Datenrahmen eindeutig erkennen/identifizieren/verarbeiten.
-
Die Vorrichtung kann auf hardwarefähigen Agenten basieren. Dadurch kann eine Überlastung der begrenzten Ressourcen eines Host-Prozessors vermieden werden
-
Diese Vorrichtung, von der angenommen werden kann, dass sie eine Mustererfassungsmaschine bildet, kann konfigurierbar sein, mit anderen Worten sie kann flexibel arbeiten. Außerdem kann die Vorrichtung zu einem sicheren, deterministischen und eindeutigen Filterungsergebnis führen. Diese können zum Beispiel in Fahrzeugen, die für autonomes Fahren verwendet werden, zum Beispiel bei ihren Angriffserkennungs- und -Präventionsystemen (IDPS) erforderlich sein.
-
2 zeigt eine schematische Darstellung einer Vorrichtung 200 zum Abwickeln eines eingehenden Kommunikations-Datenrahmens 110 gemäß verschiedenen Ausführungsformen.
-
Der Kommunikations-Datenrahmen 110 kann eine Vielzahl von Bits enthalten. Jeder Datenrahmen 110 kann zum Beispiel Nutzdaten einer Vielzahl von Kommunikationsprotokollschichten aufweisen. Der Datenrahmen 110 kann zum Beispiel dem im Kontext von 1A und 1B beschriebenen Datenrahmen 110 ähnlich oder mit ihm identisch sein. Der Datenrahmen 110 kann zum Beispiel ein Ethernet-Rahmen sein.
-
Die Vorrichtung 200 kann eine Vielzahl von Daten-Matchern 220 aufweisen. Die einzelnen Daten-Matcher weisen Bezugszeichen 220_0, ..., 220_1, ..., 220_n für n größer gleich 1 auf. Jeder der Daten-Matcher 220_1, ..., 220_n kann eingerichtet sein, eine Teilmenge der Vielzahl von Bits des Datenrahmens 110 mit einem vorgegebenen Datenmuster (das aus einer Vielzahl von vorgegebenen Datenmustern ausgewählt sein kann) zu vergleichen und eine Ausgabe 220R bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen. Die einzelnen Ergebnisse weisen Bezugszeichen 220R_0, ..., 220R_1, ..., 220R_n auf. Einzelheiten der Daten-Matcher 220 werden nachstehend unter Bezugnahme auf 3A und auf die in 4A und 4B dargestellten Beispiele erläutert.
-
Die Vorrichtung 200 kann außerdem eine Vielzahl von Auswahleinrichtungen 222 aufweisen. Die einzelnen Auswahleinrichtungen weisen Bezugszeichen 222_0, ..., 222_1, ..., 222_m für m größer gleich 1 auf. Die Anzahl von Daten-Matchern 220 kann von der Anzahl der Auswahleinrichtungen 222 verschieden oder mit ihr identisch sein. Jede der Auswahleinrichtungen 222 kann eingerichtet sein, eine Teilmenge der Ausgaben 220R der Vielzahl von Daten-Matchern 220 mit einem vorgegebenen Muster (das aus einer Vielzahl von vorgegebenen Auswahlmustern ausgewählt sein kann) zu vergleichen und eine Ausgabe 222R bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen. Die einzelnen Ergebnisse weisen Bezugszeichen 222R_0, ..., 222R_1, ..., 222R_m auf. Einzelheiten der Auswahleinrichtungen 222 werden nachstehend unter Bezugnahme auf 3B und auf die in 5A bis 5C dargestellten Beispiele erläutert.
-
Die Vorrichtung 200 kann außerdem ein Rahmenfilter 224 aufweisen, das eingerichtet ist, den eingehenden Rahmen 110 an einen Anwendungslogikblock 226 nur dann zu übertragen, wenn die Ausgaben 222R der Vielzahl von Auswahleinrichtungen 222 mit einem vorgegebenen Filtermuster übereinstimmen, und auch die Ausgaben 222R der Vielzahl von Auswahleinrichtungen 222 an die Anwendungslogik 226 zu übertragen. Einzelheiten des Rahmenfilters 224 werden nachstehend unter Bezugnahme auf 3C beschrieben.
-
Sowohl 3A als auch 4A zeigen eine schematische Darstellung eines Daten-Matchers 220_0 einer Vorrichtung 200 zum Abwickeln eines eingehenden Kommunikations-Datenrahmens 110 gemäß verschiedenen Ausführungsformen, und 4B zeigt für ein Ausführungsbeispiel, wie der Daten-Matcher 220_0 von 4A arbeitet. Außerdem sind die Daten-Matcher 220_1, ..., 220_n schematisch derart angezeigt, dass sie hinter dem Daten-Matcher 220_0 gestapelt sind, um gemeinsam die Vielzahl von Daten-Matchern 220 zu bilden.
-
Der Daten-Matcher 220_0 kann ein einzelner Daten-Matcher 220 sein, der in den Figuren auch als DDMU (für „dynamische Datenvergleichseinheit“) gekennzeichnet ist und der eingerichtet ist, auf eine dynamische und deterministische Weise eine Erkennung/Suche/Identifikation eines (Teil-)Datenmusters durchzuführen.
-
Mit anderen Worten kann ein einzelner Daten-Matcher 220_0 eingerichtet sein, eine deterministische Einzelmustercharakteristik in einem bestimmten Abgleichsfenster der Vielzahl von Bits des Kommunikations-Datenrahmens 110, die ein Datenmuster (DP) bilden, zu detektieren. Das Abgleichsfenster und die Mustercharakteristik können flexibel sein.
-
Das Datenmuster kann Mengen von Teildatenmustern, mit anderen Worten Teilmengen aus der Vielzahl von Bits des Datenrahmens, aufweisen oder daraus bestehen. Erkennen einiger von Teildatenmustern kann es ermöglichen, das vollständige Datenmuster zu identifizieren. Dadurch kann eine Evaluierung des Datenrahmens 110 (im Sinne von bestanden/fehlgeschlagen) ermöglicht werden. Daher können die Daten-Matcher 220_1, ..., 220_n gemeinsam gruppiert werden, um die Vielzahl von Daten-Matchern 220 zu bilden, um das vorgegebene Datenmuster zu detektieren/suchen/identifizieren.
-
Jeder der Daten-Matcher 220_1, ..., 220_n kann unabhängig konfigurierbar/programmierbar sein, um bestimmte vorgegebene (Teil-)Datenmuster aus dem eingehenden Rahmen 110 zu detektieren/suchen/identifizieren. Die vorgegebenen Datenmuster können aus einer Vielzahl von vorgegebenen Datenmustern ausgewählt werden.
-
In verschiedenen Ausführungsformen kann jeder der Daten-Matcher 220_1, ..., 220_n eingerichtet sein, eine andere Teilmenge aus der Vielzahl von Bis des Datenrahmens 110 mit einem anderen vorgegebenen Datenmuster der Vielzahl von vorgegebenen Datenmustern abzugleichen. Mit anderen Worten kann der Abgleichsprozess eine Diversität bereitstellen.
-
In einer Vorrichtung 200 gemäß verschiedenen Ausführungsformen, die eingerichtet ist, Diversität bereitzustellen, kann ein erster Daten-Matcher 220_1 der Vielzahl von Daten-Matchern 220 eingerichtet sein, eine erste Teilmenge der Vielzahl von Bits des Datenrahmens 110 mit einem ersten vorgegebenen Datenmuster der Vielzahl von Datenmustern zu vergleichen und eine erste Ausgabe 220R _1 bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, dass ein zweiter Daten-Matcher 220_2 der Vielzahl von Daten-Matchern 220 eingerichtet sein kann, eine zweite Teilmenge der Vielzahl von Bits des Datenrahmens 110 mit einem zweiten vorgegebenen Datenmuster der Vielzahl von Datenmustern zu vergleichen und eine zweite Ausgabe 220R_2 bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, dass die erste Teilmenge der Vielzahl von Bits des Datenrahmens 110 von einer anderen Position im Datenrahmen stammt als die zweite Teilmenge der Vielzahl von Bits des Datenrahmens 110, und dass das erste vorgegebene Datenmuster vom zweiten vorgegebenen Datenmuster verschieden ist.
-
In verschiedenen Ausführungsformen kann die erste Teilmenge der Vielzahl von Bits aus einer ersten Schicht einer Vielzahl von Kommunikationsprotokollschichten, die im Datenrahmen 110 aufgenommen sind, stammen, und die zweite Teilmenge der Vielzahl von Bits kann aus einer zweiten Schicht der Vielzahl von Kommunikationsprotokollschichten stammen.
-
In verschiedenen Ausführungsformen können zwei oder mehr der Daten-Matcher 220_1, ..., 220_n eingerichtet sein, die gleiche Teilmenge der Vielzahl von Bits des Datenrahmens 110 mit demselben vorgegebenen Datenmuster zu vergleichen. Mit anderen Worten können zwei oder mehr redundante Daten-Matcher 220_1, ..., 220_n zum Beispiel zum Identifizieren defekter Daten-Matcher 220 und/oder zum Begrenzen ihrer schädlichen Auswirkung bereitgestellt sein. Beispiele für eine solche Ausgestaltung werden im Kontext von 6A bis 6H beschrieben.
-
In einer Vorrichtung 200 gemäß verschiedenen Ausführungsformen, die eingerichtet ist, Redundanz bereitzustellen, kann ein dritter Daten-Matcher 220_3 der Vielzahl von Daten-Matchern 220 eingerichtet sein, eine dritte Teilmenge der Vielzahl von Bits des Datenrahmens 110 mit einem dritten vorgegebenen Datenmuster der Vielzahl von Datenmustern zu vergleichen und eine dritte Ausgabe 220R_3 bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, und dass ein vierter Daten-Matcher 220_4 der Vielzahl von Daten-Matchern 220 eingerichtet sein kann, die dritte Teilmenge der Vielzahl von Bits des Datenrahmens 110 mit dem dritten vorgegebenen Datenmuster der Vielzahl von Datenmustern zu vergleichen und eine vierte Ausgabe 220R_4 bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen.
-
In verschiedenen Ausführungsformen können jedes der vorgegebenen Auswahlmuster und das vorgegebene Filtermuster auf eine solche Weise eingestellt werden, dass ein durch das Rahmenfilter bereitgestelltes Endergebnis eine Übereinstimmung nur dann anzeigt (und den Datenrahmen 110 an die Anwendungslogik 226 überträgt), wenn die dritte Ausgabe mit der vierten Ausgabe übereinstimmt, da unterschiedliche Ergebnisse für redundante Überprüfungen einen Filterdefekt, z.B. eines defekten Daten-Matchers 220, anzeigen würden.
-
In verschiedenen Ausführungsformen kann eine Benachrichtigung durch die Nicht-Übereinstimmung ausgelöst werden. Die Benachrichtigung kann eine Identifizierung der betroffenen Daten-Matcher 220 aufweisen. Dies ermöglicht eine Rekonfiguration zur Eliminierung des defekten Daten-Matchers 220.
-
In verschiedenen Ausführungsformen kann die Vorrichtung 200 sowohl für einen diversen als auch redundanten Abgleich des Datenrahmens 110 eingerichtet sein.
-
Die Daten-Matcher 220_1, ..., 220_n können in verschiedenen Ausführungsformen mit einer anfänglichen Konfiguration/Programmierung bereitgestellt sein, die für einen ersten Betrieb der Vorrichtung 100 verfügbar sein kann. In verschiedenen Ausführungsformen kann erforderlich sein, dass ein Benutzer die Konfiguration/Programmierung der Daten-Matcher 220_1, ..., 220_n auch für einen ersten Betrieb der Vorrichtung 200 bereitstellt. In verschiedenen Ausführungsformen können die Daten-Matcher 220_1, ..., 220_n nach einem Beginn von Operationen der Vorrichtung 200, z.B. während einer Lebensdauer der Vorrichtung, konfigurierbar/programmierbar sein.
-
Im Allgemeineren können in verschiedenen Ausführungsformen das vorgegebene Auswahlmuster, die Vielzahl von Datenmustern, das vorgegebene Auswahlmuster, die Vielzahl von Auswahlmustern und/oder das vorgegebene Filtermuster während eines Betriebs der Vorrichtung 200 konfigurierbar sein.
-
In verschiedenen Ausführungsformen kann jeder der Daten-Matcher 220 eine Abgleichslogik 334, eine Fensterauswahleinrichtung 330 und einen Speicher 332 aufweisen.
-
Die Fensterauswahleinrichtung 330 kann eingerichtet sein, die Teilmenge der Vielzahl von Bits des Datenrahmens 110, die mit dem vorgegebenen Datenmuster verglichen werden soll, auszuwählen. Wie in 4B dargestellt, kann die Fensterauswahleinrichtung 330 zum Beispiel eingerichtet sein, ein Anfangsbit und eine Anzahl von Bits des Datenrahmens 110 zu spezifizieren, die an einen Vergleichsoperator 440, z.B. ein Hardwarewerkzeug zum Durchführen der Vergleichs-/Abgleichsoperation, z.B. ein XOR-Gatter, bereitgestellt werden sollen.
-
Der Speicher 332 kann zum Beispiel ein Schieberegister sein, und kann für eine vorübergehende Speicherung des eingehenden Kommunikations-Datenrahmens 110 eingerichtet sein. Die Teilmenge der Vielzahl von Bits des Datenrahmens 110, wie durch die Fensterauswahleinrichtung 330 definiert, kann auch an den Vergleichsoperator 440 bereitgestellt werden.
-
Die Abgleichslogik 334 kann in verschiedenen Ausführungsformen eine Filterungsmaske 444 aufweisen, um eine bitweise Auswahl/Abwahl der Bits im durch die Fensterauswahleinrichtung 330 ausgewählten Fenster zu ermöglichen. Die Filterungsmaske 444 kann es ermöglichen, Permutationen von Bitmustern zu detektieren, mit anderen Worten zu identifizierende Bitmuster zu spezifizieren, bei denen erforderlich sein kann, dass sie feste Bitwerte an bestimmten vordefinierten Bitpositionen aufweisen, und einen variablen (z.B. irrelevanten) Bitwert an bestimmten anderen vordefinierten Bitpositionen aufweisen.
-
Dies ist in 4B veranschaulicht. Das vorgegebene Datenmuster, das in einem weiteren Speicher 442 des Daten-Matchers 220 (z.B. der Abgleichslogik 334) gespeichert werden kann, kann „100000011“ sein. Die Teilmenge der Vielzahl von Bits des Datenrahmens 110 (wie durch die Fensterauswahleinrichtung 330 definiert) kann „100000010“ sein. Folglich kann der Vergleichsoperator 440 eine Übereinstimmung für die ersten acht Bits und eine Nicht-Übereinstimmung für das letzte Bit der Teilmenge der Vielzahl von Bits anzeigen. Da eine XOR-Operation durch den Beispielvergleichsoperator 440 angewendet wird, ist das Ergebnis ein Bitmuster von acht „1“ und einer „0“.
-
Die Filterungsmaske 444 kann eingestellt werden, um eine Nicht-Übereinstimmung im letzten Bit (und nur im letzten Bit) zu ignorieren, was dadurch angezeigt wird, dass das letzte Bit der Filterungsmaske 444 auf „0“ und die anderen Bits auf „1“ gesetzt werden. Mit anderen Worten wird die Teilmenge der Vielzahl von Bits als übereinstimmend mit dem vorgegebenen Datenmuster identifiziert, wenn die ersten acht Bits übereinstimmen, z.B. die Teilmenge der Vielzahl von Bits, die die Werte „100000011“ aufweisen, und die Teilmenge der Vielzahl von Bits, die die Werte „100000010“ aufweisen (die als Permutationen eines Bitmusters betrachtet werden können) werden unter Berücksichtigung der Filterungsmaske „111111110" beide als mit dem vorgegebenen Datenmuster „100000011“ übereinstimmend betrachtet.
-
Eine jeweilige Ausgabe 220R_0, 220R_1, ..., 220R_n jedes der Vielzahl von Daten-Matchern 220_0, 220_1, ..., 220_n kann ein haftendes Abgleichsergebnis sein, das (z.B. unter Verwendung eines Latches 448) nach dem Abgleichsfenster verriegelt werden kann (z.B. kann WAHR bedeuten, dass das vorgegebene Datenmuster im eingehenden Kommunikations-Datenrahmen 110 gefunden wurde, FALSCH kann bedeuten, dass das vorgegebene Datenmuster im eingehenden Kommunikations-Datenrahmen 110 nicht gefunden wurde).
-
In verschiedenen Ausführungsformen können zwei (oder mehr) der Vielzahl von Daten-Matchern 220_0, 220_1, ..., 220_n eingerichtet sein, die gleiche Teilmenge der Vielzahl von Bits des Datenrahmens 110 mit demselben vorgegebenen Datenmuster zu vergleichen.
-
Dies kann für zumindest einige aus der Vielzahl von Daten-Matchern 220_0, 220_1, ..., 220_n in jedem der in 6D bis 6F gezeigten Ausführungsbeispiele, die nachstehend beschrieben werden, der Fall sein.
-
In verschiedenen Ausführungsformen können zwei (oder mehr) der Vielzahl von Daten-Matchern 220_0, 220_1, ..., 220_n , insbesondere die jeweiligen Vergleichsoperatoren 440, implementiert werden, indem verschiedene logische Operationen/Vorrichtungen zu Zwecken der Diversitätsüberprüfung aufgenommen werden. Zum Beispiel kann ein XOR-Gatter für einen oder mehrere der Vergleichsoperatoren 440 (z.B. von den Daten-Matchern 220_2 und 220_3 von 6F) verwendet werden, und ein XNOR-Gatter kann für den anderen oder die mehreren anderen der Vergleichsoperatoren 440 (z.B. von den Daten-Matchern 220_6 und 220_7 von 6F) verwendet werden.
-
3B zeigt eine schematische Darstellung einer Auswahleinrichtung 222_1 einer Vorrichtung 200 zum Abwickeln eines eingehenden Kommunikations-Datenrahmens 110 gemäß verschiedenen Ausführungsformen. Weitere Auswahleinrichtungen 222_2, ..., 222_m sind derart angezeigt, dass sie hinter der Auswahleinrichtung 222_1 gestapelt sind, und gemeinsam bilden sie die Vielzahl von Auswahleinrichtungen 222.
-
Jede der Auswahleinrichtungen 222 kann in verschiedenen Ausführungsformen eine Auswahllogik 336 und einen Voter 338 aufweisen. Der Voter 338 kann einen Addierer 560, eine Abstimmlogik 562 und einen Speicher 550, der einen Referenzwert speichert, aufweisen.
-
Jede der Auswahleinrichtungen 222 (auch als PoU für „Pick out Unit“ (Auswahleinheit) bezeichnet) kann als eine Eingabe die Ausgaben 220R_0, ..., 220R_1, ..., 220R_n empfangen, die die Ergebnisse des durch die Vielzahl von Daten-Matchern 220 durchgeführten Vergleichs anzeigen. Zum Beispiel kann jede der Auswahleinrichtungen 222_1, ..., 222_m alle der Ausgaben 220R_0, ..., 220R_1, ..., 220R_n empfangen.
-
Mit all den Ausgaben 220R_0, ..., 220R_1, ..., 220R_n der flexibel programmierbaren Daten-Matcher 220, die an jede der Auswahleinrichtungen 222_1, ..., 222_m bereitgestellt werden, kann die Vielzahl von Auswahleinrichtungen 222 derart eingerichtet sein, dass sie die Auswahllogik 336 zum Auswählen von jenen aus den bereitgestellten Ausgaben 220R_0, ..., 220R_1, ..., 220R_n verwendet, die für die Abstimmung verwendet werden.
-
Der kombinierte Auswahl- und Abstimmungsprozess kann in verschiedenen Ausführungsformen verwendet werden, um eine Bewertung nicht nur einer Anwesenheit oder Abwesenheit von Übereinstimmungen zwischen dem Kommunikations-Datenrahmen 110 und den vorgegebenen Datenmustern, sondern auch der Daten-Matcher 220, zum Beispiel zum Detektieren, ob einer oder mehrere der Daten-Matcher 220_0, 220_1, ..., 220_n defekt sind, zu ermöglichen.
-
Die Auswahllogik 336 kann eingerichtet sein, nur ausgewählte Ausgaben der Ausgaben 220R_0, ..., 220R_1, ..., 220R_n an den Voter 338 weiterzuleiten. Der Addierer 560 kann eingerichtet sein, einen vordefinierten Typ von den zwei Typen von Bitwerten von lediglich den ausgewählten Ausgaben von den Ausgaben 220R_0, ..., 220R_1, ..., 220R_n zu summieren und die Summe an die Abstimmlogik 562 bereitzustellen.
-
Die Abstimmlogik 562 kann eingerichtet sein, die empfangene Summe mit einem vordefinierten Referenzwert, der durch den Speicher 550 bereitgestellt wird, zu vergleichen.
-
Mit anderen Worten kann jede der Auswahleinrichtungen 220_1, ..., 222_m die Ausgabe 220R_0, ..., 220R_1, ..., 220R_n des Abgleichsergebnisses der einzelnen ausgewählten Daten-Matcher 220 aufgreifen, eine Teilmenge der Ausgaben 220R zur Bewertung auswählen, und kann das Abstimmergebnis 222R (z.B. wahr oder falsch, behalten oder verwerfen, 1 oder 0) auf der Grundlage des vordefinierten Referenzzählwertes, der einen statistischen Schwellenwert bilden kann, berechnen.
-
5A zeigt eine schematische Darstellung einer Auswahleinrichtung 222 einer Vorrichtung 200 zum Abwickeln eines eingehenden Kommunikations-Datenrahmens 110 gemäß verschiedenen Ausführungsformen, und 5B und 5C zeigen für Ausführungsbeispiele, wie die Auswahleinrichtung von 5A arbeitet. Um ein Überladen zu vermeiden, wurden einige der Bezugszeichen in 5B und 5C weggelassen.
-
Wie im Ausführungsbeispiel von 5B dargestellt, kann die Auswahllogik 336 eingerichtet sein, nur eine Teilmenge der Ausgaben 220R_0, ..., 220R_1, ..., 220R_n, die sie empfängt, für den Addierer 560 auszuwählen. In diesem Fall können die Ausgaben 220R_1, 220R_2 und 220R_3 (jeweils 1, 1 bzw. 0) an den Addierer 560 weitergeleitet werden. Die Auswahllogik 336 kann eine Vielzahl von Hardware-Schaltern zum Auswählen der Ausgaben 220R_0, ..., 220R_1, ..., 220R_n, die weitergeleitet werden, aufweisen.
-
Der Addierer 560 (auch als Bit-Zähler bezeichnet) kann eingerichtet sein, die „1“-er unter den Bitwerten der ausgewählten Ausgaben 220R_1, 220R_2 und 220R_3 zu addieren (zählen). Die Summe (in diesem Fall 2) kann mit dem vordefinierten Referenzwert (in diesem Fall 3) verglichen werden. Da die Summe kleiner ist als der vordefinierte Referenzwert, kann eine „fehlgeschlagen“-Anzeige als die Ausgabe 222R_1 der Auswahleinrichtung 222_1 bereitgestellt werden.
-
Im Ausführungsbeispiel von 5C können die Ausgaben 220R_1, 220R_2 und 220R_3 (jeweils 1, 1 bzw. 1) an den Addierer 560 weitergeleitet werden. Der Addierer 560 kann eingerichtet sein, die „1“-er unter den Bitwerten der ausgewählten Ausgaben 220R_1, 220R_2 und 220R_3 zu addieren (zählen). Die Summe (in diesem Fall 3) kann mit dem vordefinierten Referenzwert (in diesem Fall 3) verglichen werden. Da die Summe gleich dem vordefinierten Referenzwert ist, kann eine „wahr“-Anzeige als die Ausgabe 222R_1 der Auswahleinrichtung 222_1 bereitgestellt werden.
-
3C zeigt eine schematische Darstellung eines Rahmenfilters 224 einer Vorrichtung 200 zum Abwickeln eines eingehenden Kommunikations-Datenrahmens 110 gemäß verschiedenen Ausführungsformen, und 3D zeigt eine Tabelle, die einen Beispiel-Rahmenfilterprozess des Rahmenfilters 224 von 3C darstellt.
-
Die Entscheidung über das Verwerfen oder Behalten des eingehenden Rahmens 110, mit anderen Worten, ob er an die Anwendungslogik 226 weitergeleitet werden soll oder nicht, kann von der Rahmenfilterung 224 abhängen, die auch als Rahmenfilterungslogik (FFL) bezeichnet wird.
-
Das Rahmenfilter 224 kann in verschiedenen Ausführungsformen einen Vektorgenerator 354, eine Entscheidungslogik 350 und einen Schalter 352 aufweisen. Außerdem kann das Rahmenfilter 224 fakultativ einen Timer 342 aufweisen.
-
Die jeweiligen Ausgaben 222R_1, ..., 222R_m der Vielzahl von Auswahleinrichtungen 222_1, ..., 222_m können an das Rahmenfilter 224 bereitgestellt werden.
-
Der Vektorgenerator 354 des Rahmenfilters 224 kann in verschiedenen Ausführungsformen eingerichtet sein, aus der Vielzahl von Auswahleinrichtungsausgaben 222R_1, .., 222R_m einen Vektor 222R zu erzeugen, der als Abstimmergebnisvektor bezeichnet werden kann.
-
Die Entscheidungslogik 350 kann eingerichtet sein, auf der Grundlage des Vektors 222R und einer Entscheidungsreferenz, zum Beispiel einer Nachschlagetabelle 370 oder einer Vektortabelle, zu entscheiden, ob der eingehende Datenrahmen 110 behalten oder verworfen wird. Ein Beispiel einer Nachschlagetabelle 370 ist in 3D dargestellt.
-
Die durch die Entscheidungslogik 350 erzeugte Entscheidung 350R kann an den Schalter 352 bereitgestellt werden, der eingerichtet sein kann, den Datenrahmen 110 an die Anwendungslogik 226 weiterzuleiten, wenn die Entscheidung 350R „bestanden“ lautet, und zu verhindern, dass der Datenrahmen 110 an die Anwendungslogik 226 weitergeleitet wird, wenn die Entscheidung 350R „verwerfen“ lautet.
-
In verschiedenen Ausführungsformen kann der Timer 342 zum Erzeugen eines Zeitstempels eingerichtet sein. Der Zeitstempel kann einen bestimmten vordefinierten Zeitpunkt während der Verarbeitung des Datenrahmens 110 repräsentieren, zum Beispiel den Zeitpunkt, zu dem der Vektor 222R erzeugt wird, den Zeitpunkt, zu dem die Entscheidung 350R an den Schalter 352 weitergeleitet wird, oder dergleichen.
-
Der Zeitstempel kann an die Anwendungslogik 226 zusammen mit dem gefilterten Datenrahmen 110 weitergeleitet werden. In verschiedenen Ausführungsformen kann der Vektor 222R, der die Ausgaben 222R_1, ..., 222R_m der Auswahleinrichtung 222 repräsentiert, zusätzlich an die Anwendungslogik 226 zusammen mit dem gefilterten Datenrahmen 110 weitergeleitet werden. Der Abstimmergebnisvektor 222R kann durch die Anwendungslogik 226 verwendet werden, um eine dedizierte Charakteristik des Datenrahmens 110 zu ermitteln.
-
Der Vektor 222R und/oder der Zeitstempel können zum Beispiel an den Datenrahmen 110 angehängt werden oder können mit einer Anzeige des Datenrahmens 110 bereitgestellt werden, mit dem sie assoziiert sind.
-
Die Anwendungslogik 226 kann eine Speichervorrichtung, z.B. einen Speicher, aufweisen, um den empfangenen gefilterten ursprünglichen Rahmen 110 und fakultativ den Abstimmergebnisvektor 222R und/oder den Zeitstempel zu speichern.
-
Die Vorrichtung 220 ist vorstehend im Kontext ihrer verschiedener Funktionselemente derart beschrieben, dass sie (z.B. fakultativ) Speicher für verschiedene Funktionselemente aufweist, zum Beispiel einen Speicher zum Speichern des eingehenden Datenrahmens 110, zum Speichern der Vielzahl von Datenmustern usw. In verschiedenen Ausführungsformen können die Speicher als getrennte Speicher, z.B. individuelle Schieberegister oder dergleichen, für jeden Zweck oder jedes Element bereitgestellt sein.
-
In verschiedenen Ausführungsformen kann die Vorrichtung 200 mindestens einen Speicher aufweisen, der eingerichtet ist, mehrere der zu speichernden Elemente zu speichern, zum Beispiel die Vielzahl von Auswahlmustern und das vorgegebene Filtermuster oder dergleichen.
-
In verschiedenen Ausführungsformen kann die Vorrichtung 200 einen einzelnen Speicher aufweisen, der eingerichtet ist, alle der während des Filterprozesses zu speichernden Elemente zu speichern, zum Beispiel um die Vielzahl von Datenmustern, die Vielzahl von Auswahlmustern und das vorgegebene Filtermuster zu speichern.
-
Die in 6A bis 6H dargestellten Ausführungsbeispiele der Vorrichtung 200 werden verwendet, um zu veranschaulichen, wie eine Datenmustererkennung mit Redundanz, Diversität, Flexibilität und Konfigurierbarkeit zum Detektieren, Erkennen und Filtern von Datenmustern auf eine deterministische Weise bereitgestellt wird.
-
Die in 6A bis 6H gezeigten Vorrichtungen 200 sind der Vorrichtung von 2 ähnlich oder mit ihr identisch. Eine allgemeine Funktionalität der Vorrichtung 200 von 6A bis 6H ist daher vorstehend im Kontext von 2 und 3A bis 5B beschrieben, die Einzelheiten der Vorrichtung 200 darstellen. 6A bis 6H konzentrieren sich auf das Bereitstellen von Beispielen für bestimmte Aufbauten der Daten-Matcher 220.
-
In 6A sind viele der Elemente mit Bezugszeichen für eine spätere Referenz, insbesondere beim Beschreiben der Beispiele von 6B bis 6H, in denen die Bezugszeichen zur Vermeidung einer Überfüllung weggelassen sind, versehen.
-
In jeder von 6A bis 6H enthalten die Kästen, die die einzelnen Daten-Matcher 220_0, ..., 220_n anzeigen, Informationen über die Teilmenge des abzugleichenden Datenrahmens 110 (die obere Zeile spezifiziert das Startbit des Datenrahmens 110, und der Anfang der zweiten Zeile spezifiziert die Länge der Teilmenge), und über das vorgegebene Datenmuster, das mit der Teilmenge abgeglichen werden soll (am Ende der zweiten Zeile, im hexadezimalen Format).
-
Zum Beispiel ist in 6A der Daten-Matcher 220_1 eingerichtet, acht Bits des Datenrahmens 110, beginnend mit dem 7. Bit, mit dem vorgegebenen Datenmuster 0xaa, das dem binären Muster „10101010“ entspricht, abzugleichen. Gleichermaßen ist der Daten-Matcher 220_5 eingerichtet, acht Bits des Datenrahmens 110, beginnend mit dem y-ten Bit, mit dem vorgegebenen Datenmuster Oxdd, das dem binären Muster „11011101“ entspricht, abzugleichen.
-
Jede von 6B bis 6H zeigt einen schematischen eingehenden Kommunikations-Datenrahmen 110 (einen Ethernet-Rahmen) auf der Oberseite mit Teilmengen der Vielzahl von Bits, die er enthält, die im hexadezimalen Format angezeigt sind. Die Teilmengen sind an jeweiligen vordefinierten Positionen des Ethernet-Rahmens angezeigt, die den Kommunikationsprotokollschichten entsprechen. In den Beispielen von 6B bis 6H kann, von links gezählt, die erste Teilmenge einer MAC-Adresse, die zweite Teilmenge einem VLAN-Tag, die dritte Teilmenge einem IP-Header, z.B. einer IP-Adresse, entsprechen und die vierte Teilmenge kann TCP/UP, z.B. einer Portnummer, entsprechen.
-
In den Beispielvorrichtungen 200 von 6A bis 6H können verschiedene Gruppen von Daten-Matchern 220 und Auswahleinrichtungen 222 eingerichtet sein, um redundante und diverse Überprüfung durchzuführen.
-
In 6B sind jeweils der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3 und 220_4 eingerichtet, vier verschiedene Teilmengen, wie vorstehend beschrieben, zu überprüfen, indem jede von ihnen mit einem anderen vorgegebenen Datenmuster verglichen wird. Außerdem sind jeweils der siebte und achte Daten-Matcher 220_7 und 220_8 eingerichtet, zwei weitere verschiedene Teilmengen zu überprüfen, indem jede von ihnen mit einem anderen vorgegebenen Datenmuster verglichen wird. Mit anderen Worten sind die sechs Daten-Matcher 220_1, 220_2, 220_3, 220_4, 220_7 und 220_8 für diverse Überprüfungen eingerichtet.
-
Der fünfte Daten-Matcher 220_5 ist eingerichtet, die gleiche Teilmenge wie der erste Daten-Matcher 220_1 zu überprüfen, aber um sie mit einem anderen vorgegebenen Datenmuster zu vergleichen als dasjenige, das für den ersten Daten-Matcher 220_1 verwendet wird. Gleichermaßen ist der sechste Daten-Matcher 220_6 eingerichtet, die gleiche Teilmenge wie der zweite Daten-Matcher 220_2 zu überprüfen, aber um sie mit einem anderen vorgegebenen Datenmuster zu vergleichen als dasjenige, das für den zweiten Daten-Matcher 220_2 verwendet wird. Daher sind also jeweils der fünfte und der sechste Daten-Matcher 220_5 und 220_6 für diverse Überprüfungen eingerichtet.
-
Der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3, 220_4 verwenden vorgegebene Datenmuster, die mit den jeweiligen an sie bereitgestellten Teilmengen nicht übereinstimmen (hier und nachstehend immer in aufsteigender Reihenfolge und als vorgegebenes Datenmuster vs. Teilmenge spezifiziert: 0xaa vs. 0x11, Oxbb vs. 0x22, 0xcc vs. 0x33 und Oxdd vs. 0x44). Folglich ist die Ausgabe 220R jedes von dem ersten bis vierten Daten-Matcher 220_1, 220_2, 220_3, 220_4 „0“, wodurch eine Nicht-Übereinstimmung angezeigt wird.
-
Der fünfte bis achte Daten-Matcher 220_5, 220_6, 220_7, 220_8 verwenden vorgegebene Datenmuster, die mit den jeweiligen an sie bereitgestellten Teilmengen übereinstimmen (0x11 vs. 0x11, 0x22 vs. 0x22, 0x33 vs. 0x33 und 0x44 vs. 0x44). Folglich ist die Ausgabe 220R jedes von dem fünften bis achten Daten-Matcher 220_5, 220_6, 220_7, 220_8 „1“, wodurch eine Übereinstimmung angezeigt wird.
-
Die Auswahleinrichtungen 222 können derart eingerichtet sein, dass lediglich die durch den fünften bis achten Daten-Matcher 220_5, 220_6, 220_7, 220_8 bereitgestellten Ausgaben durch die erste Auswahleinrichtung 222_1 ausgewertet werden, und lediglich der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3, 220_4 durch die vierte Auswahleinrichtung 222_4 evaluiert werden. Jede von der ersten Auswahleinrichtung 222_1 und der vierten Auswahleinrichtung 222_4 kann derart eingerichtet sein, dass sie vier „1“-er erwartet, um ein „bestanden“ anzuzeigen. Die durch die erste Auswahleinrichtung 222_1 evaluierte Kombination und die durch die vierte Auswahleinrichtung 222_4 evaluierte Kombination können zum Beispiel jeweils hinreichend sein, um zu ermitteln, dass der Rahmen, der das kombinierte Datenmuster aufweist, behalten werden soll, und dass ein Rahmen, der das kombinierte Datenmuster nicht aufweist, abzulehnen ist.
-
Folglich kann das Rahmenfilter 224 eingerichtet sein, aus der Ausgabe der ersten Auswahleinrichtung 222_1 zu ermitteln, dass der Datenrahmen 110 an die Anwendungslogik 226 weitergeleitet werden soll, und dass der erzeugte Ergebnisvektor 222R_4 (1 0 0 0) ebenfalls an die Anwendungslogik 226, fakultativ zusammen mit einem erzeugten Zeitstempel, übertragen werden soll.
-
Das Rahmenfilter 224 kann ferner eingerichtet sein, aus der Ausgabe der vierten Auswahleinrichtung 222_4 zu ermitteln, dass der Datenrahmen 110 abgelehnt werden soll. Dies hat jedoch geringe oder keine Auswirkung auf die Anwendung 226, da sie den Datenrahmen 110 durch Genehmigung der ersten Auswahleinrichtung 222_1 empfängt.
-
Das Beispiel von 6B zeigt daher, dass die Vorrichtung 200 derart eingerichtet sein kann, dass sie eine Vielfalt von Datenrahmen 110 mit vollkommen verschiedenen Eigenschaften weiterleitet.
-
In 6C sind jeweils der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3 und 220_4 eingerichtet, vier verschiedene Teilmengen, wie vorstehend beschrieben, zu überprüfen, indem jede von ihnen mit einem anderen vorgegebenen Datenmuster verglichen wird. Außerdem sind jeweils der siebte und achte Daten-Matcher 220_7 und 220_8 eingerichtet, zwei weitere verschiedene Teilmengen zu überprüfen, indem jede von ihnen mit einem anderen vorgegebenen Datenmuster verglichen wird. Mit anderen Worten sind die sechs Daten-Matcher 220_1, 220_2, 220_3, 220_4, 220_7 und 220_8 für diverse Überprüfungen eingerichtet.
-
Der fünfte Daten-Matcher 220_5 ist eingerichtet, die gleiche Teilmenge wie der erste Daten-Matcher 220_1 zu überprüfen, aber um sie mit einem anderen vorgegebenen Datenmuster zu vergleichen als dasjenige, das für den ersten Daten-Matcher 220_1 verwendet wird. Gleichermaßen ist der sechste Daten-Matcher 220_6 eingerichtet, die gleiche Teilmenge wie der zweite Daten-Matcher 220_2 zu überprüfen, aber um sie mit einem anderen vorgegebenen Datenmuster zu vergleichen als dasjenige, das für den zweiten Daten-Matcher 220_2 verwendet wird. Daher sind also jeweils der fünfte und der sechste Daten-Matcher 220_5 und 220_6 für diverse Überprüfungen eingerichtet.
-
Der erste, zweite, vierte und siebte Daten-Matcher 220_1, 220_2, 220_4, 220_7 verwenden vorgegebene Datenmuster, die mit den jeweiligen an sie bereitgestellten Teilmengen nicht übereinstimmen (0xaa vs. 0x11, Oxbb vs. 0x22, Oxdd vs. 0x44 und 0x33 vs. 0xcc). Folglich ist die Ausgabe 220R jedes von dem ersten, zweiten , vierten und siebten Daten-Matcher 220_1, 220_2, 220_4, 220_7 „0“, wodurch eine Nicht-Übereinstimmung angezeigt wird.
-
Der dritte und fünfte, sechste und achte Daten-Matcher 220_3, 220_5, 220_6, 220_8 verwenden vorgegebene Datenmuster, die mit den jeweiligen an sie bereitgestellten Teilmengen übereinstimmen (0xcc vs. 0xcc, 0x11 vs. 0x11, 0x22 vs. 0x22 und 0x44 vs. 0x44). Folglich ist die Ausgabe 220R jedes von dem dritten und fünften, sechsten und achten Daten-Matcher 220_3, 220_5, 220_6, 220_8 „1“, wodurch eine Übereinstimmung angezeigt wird.
-
Die Auswahleinrichtungen 222 können derart eingerichtet sein, dass lediglich die durch den fünften bis achten Daten-Matcher 220_5, 220_6, 220_7, 220_8 bereitgestellten Ausgaben durch die erste Auswahleinrichtung 222_1 ausgewertet werden, und lediglich der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3, 220_4 durch die vierte Auswahleinrichtung 222_4 evaluiert werden. Jede von der ersten Auswahleinrichtung 222_1 und der vierten Auswahleinrichtung 222_4 kann eingerichtet sein, nur im Fall, in dem die Ausgaben 220R aller vier Daten-Matcher 220, die die jeweilige Auswahleinrichtung 222_1 bzw. 222_4 empfängt, Übereinstimmungen sind, zu ermitteln, dass der Datenrahmen 110 eine Übereinstimmung ist. Mit anderen Worten kann die erwartete Anzahl von „1“-er in jeder von der ersten Auswahleinrichtung 222_1 und der vierten Auswahleinrichtung 222_4 vier sein. Daher kann die erste Auswahleinrichtung 222_1 eine Nicht-Übereinstimmung anzeigen, da sie lediglich drei „1“-er empfängt, und die vierte Auswahleinrichtung 222_4 kann ebenfalls eine Nichtübereinstimmung anzeigen, dass sie lediglich eine „1“ empfängt.
-
Das Rahmenfilter 224 kann eingerichtet sein, aus jeder von den Ausgaben der ersten Auswahleinrichtung 222_1 („0“) und der vierten Auswahleinrichtung 222_4 („0“) zu ermitteln, dass der Datenrahmen 110 abgelehnt werden soll.
-
Das Beispiel von 6C zeigt daher, dass es womöglich nicht hinreichend ist, dass alle der getesteten Teilmengen irgendwo in den vorgegebenen Datenmustern vorhanden sind (erste Teilmenge im fünften Daten-Matcher 220_1, zweite Teilmenge im sechsten Daten-Matcher 220_2, dritte Teilmenge im dritten Daten-Matcher 220_7 und vierte Teilmenge im achten Daten-Matcher), sondern dass das Rahmenfilter 224 eine anschließende Evaluation bereitstellen kann, indem die Ergebnisse der einzelnen Daten-Matcher 220R_1, ..., 220R_8 auf eine solche Weise gruppiert werden, dass lediglich Rahmen, die eine vollständig akzeptable Kombination von Teilmengen aufweisen, an die Anwendungslogik 226 weitergegeben werden. Mit anderen Worten wird eine eindeutige Entscheidung durch die Vorrichtung 200 bereitgestellt.
-
In 6D sind jeweils der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3 und 220_4 eingerichtet, vier verschiedene Teilmengen, wie vorstehend beschrieben, zu überprüfen, indem jede von ihnen mit einem anderen vorgegebenen Datenmuster verglichen wird. Mit anderen Worten sind die vier Daten-Matcher 220_1, 220_2, 220_3, 220_4 für diverse Überprüfungen eingerichtet.
-
Der fünfte Daten-Matcher 220_5 ist eingerichtet, die gleiche Teilmenge wie der erste Daten-Matcher 220_1 zu überprüfen, und um sie mit demselben vorgegebenen Datenmuster zu vergleichen, das für den ersten Daten-Matcher 220_1 verwendet wird. Gleichermaßen ist der sechste Daten-Matcher 220_6 eingerichtet, dieselbe Teilmenge zu überprüfen wie der zweite Daten-Matcher 220_2 und sie mit demselben vorgegebenen Datenmuster zu vergleichen wie dasjenige, das für den zweiten Daten-Matcher 220_2 verwendet wird, der siebte Daten-Matcher 220_7 ist eingerichtet, dieselbe Teilmenge zu überprüfen wie der dritte Daten-Matcher 220_3 und sie mit demselben vorgegebenen Datenmuster zu vergleichen wie dasjenige, das für den dritten Daten-Matcher 220_3 verwendet wird, und der achte Daten-Matcher 220_8 ist eingerichtet, dieselbe Teilmenge zu überprüfen wie der vierte Daten-Matcher 220_4 und sie mit dem vorgegebenen Datenmuster zu vergleichen wie dasjenige, das für den vierten Daten-Matcher 220_4 verwendet wird.
-
Daher sind jeweils der fünfte bis achte Daten-Matcher 220_5 bis 220_8 für eine redundante Überprüfung der ersten bis vierten Daten-Matcher 220_1 bis 220_4 eingerichtet (oder umgekehrt).
-
Der fünfte bis achte Daten-Matcher 220_5, 220_6, 220_7, 220_8 verwenden vorgegebene Datenmuster, die mit den jeweiligen an sie bereitgestellten Teilmengen übereinstimmen (0x11 vs. 0x11, 0x22 vs. 0x22, 0x33 vs. 0x33 und 0x44 vs. 0x44). Folglich ist die Ausgabe 220R jedes von dem fünften bis achten Daten-Matcher 220_5, 220_6, 220_7, 220_8 „1“, wodurch eine Übereinstimmung angezeigt wird.
-
Da, wie vorstehend erläutert, der fünfte bis achte Daten-Matcher 220_5, 220_6, 220_7, 220_8 einen redundanten Aufbau zu dem ersten bis vierten Daten-Matcher 220_1, 220_2, 220_3, 220_4 aufweisen, ist daher die Ausgabe 220R jedes von dem ersten bis vierten Daten-Matcher 220_1, 220_2, 220_3, 220_4 „1“, was eine Übereinstimmung anzeigt.
-
Die Auswahleinrichtungen 222 können derart eingerichtet sein, dass lediglich die durch den fünften bis achten Daten-Matcher 220_5, 220_6, 220_7, 220_8 bereitgestellten Ausgaben durch die erste Auswahleinrichtung 222_1 ausgewertet werden, und lediglich der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3, 220_4 durch die vierte Auswahleinrichtung 222_4 evaluiert werden. Jede von der ersten Auswahleinrichtung 222_1 und der vierten Auswahleinrichtung 222_4 kann eingerichtet sein, nur im Fall, in dem die Ausgaben 220R aller vier Daten-Matcher 220, die die jeweilige Auswahleinrichtung 222_1 bzw. 222_4 empfängt, Übereinstimmungen sind, zu ermitteln, dass der Datenrahmen 110 eine Übereinstimmung ist. Mit anderen Worten kann jede Auswahleinrichtung 222 vier „1“-er erwarten. Dies ist hier der Fall, daher stellt jede von der ersten Auswahleinrichtung 222_1 und der vierten Auswahleinrichtung 222_4 „1“ als Ausgabe bereit. Wenn dies nicht der Fall wäre, kann eine Benachrichtigung ausgegeben werden, wie vorstehend beschrieben.
-
Das Rahmenfilter 224 kann derart eingerichtet sein, dass es eine zusätzliche Bedingung für die redundante Überprüfung anwendet, dass der Datenrahmen 110 an die Anwendungslogik 226 nur in dem Fall weitergegeben werden kann, in dem die erste Auswahleinrichtung 222_1 und die vierte Auswahleinrichtung 222_4 jeweils eine Übereinstimmung anzeigen, was hier der Fall ist, so dass der Datenrahmen 110 an die Anwendungslogik 226 weitergegebenen wird. Außerdem kann das Ergebnis von der Auswahleinrichtung (10 0 1) und fakultativ der Zeitstempel an die Anwendungslogik übertragen werden.
-
Das Beispiel von 6D zeigt daher, dass es möglich sein kann, einen Fehler bei den Daten-Matcher 220 zu detektieren, indem die redundante Überprüfung angewendet wird.
-
In 6E sind jeweils der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3 und 220_4 eingerichtet, vier verschiedene Teilmengen, wie vorstehend beschrieben, zu überprüfen, indem jede von ihnen mit einem anderen vorgegebenen Datenmuster verglichen wird. Mit anderen Worten sind die vier Daten-Matcher 220_1, 220_2, 220_3, 220_4 für diverse Überprüfungen eingerichtet.
-
Der fünfte Daten-Matcher 220_5 ist eingerichtet, die gleiche Teilmenge wie der erste Daten-Matcher 220_1 zu überprüfen, und sie mit demselben vorgegebenen Datenmuster zu vergleichen, das für den ersten Daten-Matcher 220_1 verwendet wird. Gleichermaßen ist der sechste Daten-Matcher 220_6 eingerichtet, die gleiche Teilmenge wie der zweite Daten-Matcher 220_2 zu überprüfen, und sie mit dem gleichen vorgegebenen Datenmuster zu vergleichen, das für den zweiten Daten-Matcher 220_2 verwendet wird. Der siebte und der achte Daten-Matcher 220_7, 220_8 sind eingerichtet, Teilmengen zu überprüfen, die von den vorgegebenen Datenmustern der anderen Daten-Matcher 220 und voneinander verschieden sind.
-
Daher sind jeweils der fünfte und sechste Daten-Matcher 220_5 bis 220_6 für eine redundante Überprüfung des ersten und des zweiten Daten-Matchers 220_1 bis 220_2 eingerichtet (oder umgekehrt).
-
Alle acht Daten-Matcher 220_1, ..., 220_8 verwenden vorgegebene Datenmuster, die mit jeweiligen an sie bereitgestellten Teilmengen übereinstimmen. Folglich ist die Ausgabe 220R aller acht Daten-Matcher 220_1, ..., 220_8 „1“, wodurch eine Übereinstimmung angezeigt wird.
-
Die Auswahleinrichtungen 222 können derart eingerichtet sein, dass lediglich die durch den fünften bis achten Daten-Matcher 220_5, 220_6, 220_7, 220_8 bereitgestellten Ausgaben durch die erste Auswahleinrichtung 222_1 ausgewertet werden, und lediglich der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3, 220_4 durch die vierte Auswahleinrichtung 222_4 evaluiert werden. Jede von der ersten Auswahleinrichtung 222_1 und der vierten Auswahleinrichtung 222_4 kann eingerichtet sein, nur in dem Fall, in dem die Ausgaben 220R aller vier Daten-Matcher 220, die die jeweilige Auswahleinrichtung 222_1 bzw. 222_4 empfängt, Übereinstimmungen sind, zu ermitteln, dass der Datenrahmen 110 eine Übereinstimmung ist. Mit anderen Worten kann jede der Auswahleinrichtungen 222_1 und 222_4 vier „1“-er erwarten. Dies ist hier der Fall, demzufolge stellt jede von der ersten Auswahleinrichtung 222_1 und der vierten Auswahleinrichtung 222_4 „1“ als Ausgabe bereit. Wenn dies nicht der Fall wäre, kann eine Benachrichtigung ausgegeben werden, wie vorstehend beschrieben.
-
Das Rahmenfilter 224 kann derart eingerichtet sein, dass es eine zusätzliche Bedingung für die redundante Überprüfung anwendet, dass der Datenrahmen 110 an die Anwendungslogik 226 nur in dem Fall weitergegeben werden kann, in dem die erste Auswahleinrichtung 222_1 und die vierte Auswahleinrichtung 222_4 jeweils eine Übereinstimmung anzeigen, was hier der Fall ist, so dass der Datenrahmen 110 an die Anwendungslogik 226 weitergegebenen wird. Außerdem kann das Ergebnis von der Auswahleinrichtung (10 0 1) und fakultativ der Zeitstempel an die Anwendungslogik übertragen werden.
-
Das Beispiel von 6E zeigt daher, dass es möglich ist, zusätzliche Diversitäts- und redundante Überprüfungen zu kombinieren, oder, um es anders auszudrücken, eine im Hinblick auf Filterdiversität sichere Filterung bereitzustellen.
-
Das in 6F dargestellte Beispiel kann im Wesentlichen mit dem vorstehend beschriebenen Beispiel von 6D, in dem eine redundante Überprüfung beschrieben ist, identisch sein.
-
Das Ausführungsbeispiel von 6F unterscheidet sich vom Ausführungsbeispiel von 6D darin, dass der dritte Daten-Matcher 220_3 und der vierte Daten-Matcher 220_4 eingerichtet sind, einen ersten Typ von Logik für den Abgleich zu verwenden (z.B. eine XOR-Logik), während der siebte Daten-Matcher 220_7 und der achte Daten-Matcher 220_8 eingerichtet sein können, einen zweiten Typ der Logik, der vom ersten Typ von Logik verschieden sein kann, für den Abgleich zu verwenden. Der zweite Logiktyp kann zum Beispiel eine XNOR-Logik sein. Diese Art von Hardware-Diversität kann einen zusätzlichen Grad an Robustheit bereitstellen.
-
In 6G sind jeweils der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3 und 220_4 eingerichtet, vier verschiedene Teilmengen, wie vorstehend beschrieben, zu überprüfen, indem jede von ihnen mit einem anderen vorgegebenen Datenmuster verglichen wird. Außerdem sind jeweils der siebte und achte Daten-Matcher 220_7 und 220_8 eingerichtet, zwei weitere verschiedene Teilmengen zu überprüfen, indem jede von ihnen mit einem anderen vorgegebenen Datenmuster verglichen wird. Mit anderen Worten sind die sechs Daten-Matcher 220_1, 220_2, 220_3, 220_4, 220_7 und 220_8 für diverse Überprüfungen eingerichtet.
-
Der fünfte Daten-Matcher 220_5 ist eingerichtet, die gleiche Teilmenge wie der erste Daten-Matcher 220_1 zu überprüfen, aber sie mit einem anderen vorgegebenen Datenmuster zu vergleichen als dasjenige, das für den ersten Daten-Matcher 220_1 verwendet wird. Gleichermaßen ist der sechste Daten-Matcher 220_6 eingerichtet, die gleiche Teilmenge wie der zweite Daten-Matcher 220_2 zu überprüfen, aber sie mit einem anderen vorgegebenen Datenmuster zu vergleichen als dasjenige, das für den zweiten Daten-Matcher 220_2 verwendet wird. Daher sind also jeweils der fünfte und der sechste Daten-Matcher 220_5 und 220_6 für diverse Überprüfungen eingerichtet.
-
Der erste bis vierte und achte Daten-Matcher 220_1, 220_2, 220_3, 220_4, 220_8 verwenden vorgegebene Datenmuster, die nicht mit den jeweiligen an sie bereitgestellten Teilmengen übereinstimmen (0xaa vs. 0x11, Oxbb vs. 0x22, 0xcc vs. 0x33, Oxdd vs. 0x44 und 0x77 vs. 0x44). Folglich ist die Ausgabe 220R jedes von dem ersten bis vierten Daten-Matcher 220_1, 220_2, 220_3, 220_4 „0“, wodurch eine Nicht-Übereinstimmung angezeigt wird.
-
Der fünfte bis siebte Daten-Matcher 220_5, 220_6, 220_7 verwenden vorgegebene Datenmuster, die mit den jeweiligen an sie bereitgestellten Teilmengen übereinstimmen (0x11 vs. 0x11, 0x22 vs. 0x22 und 0x33 vs. 0x33). Folglich ist die Ausgabe 220R jedes von dem fünften bis siebten Daten-Matcher 220_5, 220_6, 220_7 „1“, wodurch eine Übereinstimmung angezeigt wird.
-
Die Auswahleinrichtungen 222 können derart eingerichtet sein, dass lediglich die durch den fünften bis achten Daten-Matcher 220_5, 220_6, 220_7, 220_8 bereitgestellten Ausgaben durch die erste Auswahleinrichtung 222_1 ausgewertet werden, und lediglich der erste bis vierte Daten-Matcher 220_1, 220_2, 220_3, 220_4 durch die vierte Auswahleinrichtung 222_4 evaluiert werden. Jede von der ersten Auswahleinrichtung 222_1 und der vierten Auswahleinrichtung 222_4 kann eingerichtet sein, lediglich drei oder mehr „1“-er zu erwarten, um ein „bestanden“ anzuzeigen, mit anderen Worten um ein statistisches Kriterium anzuwenden, um den Rahmen als eine Übereinstimmung zu betrachten, wenn 75 % der evaluierten Teilmengen übereinstimmen. Das Kriterium ist durch die Ausgaben des fünften bis achten Daten-Matchers 220_5, 220_6, 220_7, 220_8 erfüllt (1 1 1 0, daher drei „1“-er), aber durch die Ausgaben des ersten bis vierten Daten-Matchers 220_1, 220_2, 220_3, 220_4 nicht erfüllt (alle null).
-
Folglich kann das Rahmenfilter 224 eingerichtet sein, aus der Ausgabe der ersten Auswahleinrichtung 222_1 zu ermitteln, dass der Datenrahmen 110 an die Anwendungslogik 226 weitergeleitet werden soll, und dass der erzeugte Ergebnisvektor 222R_1 (1 0 0 0) ebenfalls an die Anwendungslogik 226, fakultativ zusammen mit einem erzeugten Zeitstempel, übertragen werden soll.
-
Der Ergebnisvektor 222R_1 kann eine tiefere Analysis von Rahmeninformationen ermöglichen, was besonders in einem Fall wie diesem von Bedeutung sein kann, in dem ein statistisches Kriterium für ein Bestehen angewendet wird. Auf der Grundlage des Bitmusters des Auswahleinrichtungsergebnisses 222R kann abgeleitet werden, welche und was für eine Einstellung in der Auswahleinrichtung und im Daten-Matcher 220 vorhanden ist. Die bereitgestellte Information kann es ferner ermöglichen, in einem Fall einer Abweichung zu ermitteln, welcher Teil (welche Teile) des Datenrahmens 110 von einem 100-%-Übereinstimmungsrahmen verschieden ist/sind.
-
Das Rahmenfilter 224 kann ferner eingerichtet sein, aus der Ausgabe der vierten Auswahleinrichtung 222_4 zu ermitteln, dass der Datenrahmen 110 abgelehnt werden soll. Dies hat jedoch geringe oder keine Auswirkung auf die Anwendung 226, da sie den Datenrahmen 110 durch eine Genehmigung der ersten Auswahleinrichtung 222_1 empfängt.
-
Das Ausführungsbeispiel von 6H kann im Hinblick auf die Daten-Matcher 220 und auch im Hinblick auf die Auswahleinrichtungen 222, von denen jede wiederum eingerichtet sein kann, vier „1“-er zu erwarten, um eine Übereinstimmung zu ermitteln, genau denselben Aufbau aufweisen wie das Ausführungsbeispiel von 6C.
-
Jedoch kann, anders als im Beispiel von 6C, das Rahmenfilter 224 eingerichtet sein, den Datenrahmen 110 (und fakultativ die Ausgabe der Auswahleinrichtung(en) 222R und/oder den Zeitstempel) an die Anwendungslogik im Fall von zwei Nichtübereinstimmungen weiterzugeben.
-
Diese Option kann besonders in einem Fall nützlich sein, in dem die Anwendungslogik 226 zum Analysieren von fehlgeschlagenen Datenrahmen 110 verwendet wird, zum Beispiel wenn ein Datenrahmenversorger wiederholt korrupte Datenrahmen 110 bereitstellt, die nicht an eine Anwendungslogik 226, die dafür da wäre, von den Datenrahmen 110 Gebrauch zu machen, weitergegeben werden. In diesem Fall kann die Vorrichtung 200 verwendet werden, um die korrupten Datenrahmen 110 zu identifizieren und sie an eine andere Anwendungslogik 226 für eine weitere Analyse umzuleiten.
-
Gleichermaßen können schädliche Dateien, die zum Beispiel durch Angreifer geliefert worden sein können, identifiziert und absichtlich an eine dedizierte Anwendungslogik 226 zur Analyse weitergegeben werden.
-
Mit anderen Worten kann die Vorrichtung 200, obwohl sich ein Großteil der vorstehenden Beschreibung auf ein Verwenden der Vorrichtung 200 zum Identifizieren „guter“ Datenrahmen 110, die bestimmten Kriterien für eine weitere Verwendung entsprechen, konzentrierte, auch verendet werden, um „schlechte“ Datenrahmen 110, die spezifizierten Kriterien nicht entsprechen, zu identifizieren und sie an eine Anwendungslogik 226, vorwiegend zur Rahmenanalyse, weiterzugeben.
-
7 zeigt ein Ablaufdiagramm 700 eines Verfahrens zum Abwickeln eines eingehenden Kommunikations-Datenrahmens, der eine Vielzahl von Bits enthält, gemäß verschiedenen Ausführungsformen.
-
Das Verfahren kann aufweisen: Vergleichen, in jedem von einer Vielzahl von Daten-Matchern, einer Teilmenge der Vielzahl von Bits des Datenrahmens mit einem vorgegebenen Datenmuster einer Vielzahl von Datenmustern (in 710), Bereitstellen einer Ausgabe, um das Ergebnis des Vergleichs anzuzeigen (in 720), Vergleichen, in einer Vielzahl von Auswahleinrichtungen, einer Teilmenge der Ausgaben der Vielzahl von Daten-Matchern mit einem vorgegebenen Auswahlmuster einer Vielzahl von Auswahlmustern (in 730), Bereitstellen einer Ausgabe, um das Ergebnis des Vergleichs anzuzeigen (in 740), Vergleichen der Ausgaben der Vielzahl von Auswahleinrichtungen mit einem vorgegebenen Filtermuster (in 750), Bereitstellen einer Ausgabe, um das Ergebnis des Vergleichs anzuzeigen (in 760), und lediglich wenn die Ausgabe anzeigt, dass die Ausgabe der Vielzahl von Auswahleinrichtungen mit dem vorgegebenen Filtermuster übereinstimmt (Bedingung 770), Übertragen des eingehenden Rahmens an einen Anwendungslogikblock (in 780), und Übertragen der Ausgaben der Vielzahl von Auswahleinrichtungen an die Anwendungslogik (in 790).
-
Verschiedene Beispiele werden nachstehend veranschaulicht:
-
Beispiel 1 ist eine Vorrichtung zum Abwickeln eines eingehenden Kommunikations-Datenrahmens, der eine Vielzahl von Bits enthält. Die Vorrichtung kann aufweisen: eine Vielzahl von Daten-Matchern, wobei jeder Daten-Matcher eingerichtet ist, eine Teilmenge der Vielzahl von Bits des Datenrahmens mit einem vorgegebenen Datenmuster aus einer Vielzahl von Datenmustern zu vergleichen und eine Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, eine Vielzahl von Auswahleinrichtungen, wobei jede Auswahleinrichtung eingerichtet ist, eine Teilmenge der Ausgaben von den Vielzahl von Daten-Matchern mit einem vorgegebenen Auswahlmuster einer Vielzahl von Auswahlmustern zu vergleichen und eine Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, und ein Rahmenfilter, das eingerichtet ist, den eingehenden Rahmen an einen Anwendungslogikblock lediglich dann zu übertragen, wenn die Ausgaben der Vielzahl von Auswahleinrichtungen mit einem vorgegebenen Filtermuster übereinstimmen, und auch um die Ausgaben der Vielzahl von Auswahleinrichtungen an die Anwendungslogik zu übertragen.
-
In Beispiel 2 kann der Gegenstand von Beispiel 1 fakultativ mindestens einen Speicher aufweisen, der eingerichtet ist, die Vielzahl von Datenmustern, die Vielzahl von Auswahlmustern und/oder das vorgegebene Filtermuster zu speichern.
-
In Beispiel 3 kann der Gegenstand von Beispiel 1 oder 2 fakultativ aufweisen, dass das vorgegebene Auswahlmuster, die Vielzahl von Datenmustern, das vorgegebene Auswahlmuster, die Vielzahl von Auswahlmustern und/oder das vorgegebene Filtermuster während eines Betriebs der Vorrichtung konfigurierbar sind.
-
In Beispiel 4 kann der Gegenstand nach einem der Beispiele 1 bis 3 fakultativ aufweisen, dass ein erster Daten-Matcher der Vielzahl von Daten-Matchern eingerichtet ist, eine erste Teilmenge der Vielzahl von Bits des Datenrahmens mit einem ersten vorgegebenen Datenmuster aus der Vielzahl von Datenmustern zu vergleichen und eine erste Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, und dass ein zweiter Daten-Matcher der Vielzahl von Daten-Matchern eingerichtet ist, eine zweite Teilmenge der Vielzahl von Bits des Datenrahmens mit einem zweiten vorgegebenen Datenmuster aus der Vielzahl von Datenmustern zu vergleichen und eine zweite Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen.
-
In Beispiel 5 kann der Gegenstand von Beispiel 4 fakultativ aufweisen, dass die erste Teilmenge der Vielzahl von Bits des Datenrahmens von einer anderen Position im Datenrahmen stammt als die zweite Teilmenge der Vielzahl von Bits des Datenrahmens, und dass das erste vorgegebene Datenmuster vom zweiten vorgegebenen Datenmuster verschieden ist.
-
In Beispiel 6 kann der Gegenstand von Beispiel 4 oder 5 fakultativ aufweisen, dass eine Hardware-Konfiguration, z.B. eine Operationslogik, des ersten Daten-Matchers von einer Hardware-Konfiguration, z.B. einer Operationslogik, des zweiten Daten-Matchers verschieden ist.
-
In Beispiel 7 kann der Gegenstand von Beispiel 4 oder 5 fakultativ aufweisen, dass eine Hardware-Konfiguration, z.B. eine Operationslogik, des ersten Daten-Matchers gleich einer Hardware-Konfiguration, z.B. einer Operationslogik, des zweiten Daten-Matchers ist.
-
In Beispiel 8 kann der Gegenstand nach einem der Beispiele 4 bis 7 fakultativ aufweisen, dass jeder Datenrahmen Nutzdaten einer Vielzahl von Kommunikationsprotokollschichten umfasst, dass die erste Teilmenge der Vielzahl von Bits von einer ersten Schicht der Vielzahl von Kommunikationsprotokollschichten stammt, und dass die zweite Teilmenge der Vielzahl von Bits von einer zweiten Schicht der Vielzahl von Kommunikationsprotokollschichten stammt.
-
In Beispiel 9 kann der Gegenstand nach einem der Beispiele 1 bis 8 fakultativ aufweisen, dass ein dritter Daten-Matcher der Vielzahl von Daten-Matchern eingerichtet ist, eine dritte Teilmenge der Vielzahl von Bits des Datenrahmens mit einem dritten vorgegebenen Datenmuster aus der Vielzahl von Datenmustern zu vergleichen und eine dritte Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, und dass ein vierter Daten-Matcher der Vielzahl von Daten-Matchern eingerichtet ist, die dritte Teilmenge der Vielzahl von Bits des Datenrahmens mit dem dritten vorgegebenen Datenmuster aus der Vielzahl von Datenmustern zu vergleichen und eine vierte Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen.
-
In Beispiel 10 kann der Gegenstand von Beispiel 9 fakultativ aufweisen, dass jedes der vorgegebenen Auswahlmuster und das vorgegebene Filtermuster eingestellt sind, zu einer Übereinstimmung zu führen, wenn die dritte Ausgabe mit der vierten Ausgabe übereinstimmt.
-
In Beispiel 11 kann der Gegenstand von Beispiel 9 oder 10 fakultativ aufweisen, dass eine Hardware-Konfiguration, z.B. eine Operationslogik, des dritten Daten-Matchers von einer Hardware-Konfiguration, z.B. einer Operationslogik, des vierten Daten-Matchers verschieden ist.
-
In Beispiel 12 kann der Gegenstand von Beispiel 9 oder 10 fakultativ aufweisen, dass eine Hardware-Konfiguration, z.B. eine Operationslogik, des dritten Daten-Matchers gleich einer Hardware-Konfiguration, z.B. einer Operationslogik, des vierten Daten-Matchers ist.
-
In Beispiel 13 kann der Gegenstand nach einem der Beispiele 1 bis 12 fakultativ aufweisen, dass in jeder Auswahleinrichtung das vorgegebene Auswahlmuster eingerichtet ist, die Bits der Ausgabe des Ergebnisses des Vergleichs zwischen der Vielzahl von Bits des Datenrahmens und dem vorgegebenen Datenmuster auszuwählen oder abzuwählen.
-
In Beispiel 14 kann der Gegenstand nach einem der Beispiele 1 bis 13 fakultativ eine Timer-Schaltung aufweisen, die eingerichtet ist, einen Zeitstempel für jeden abgewickelten Datenrahmen zu erzeugen, wobei das Rahmenfilter ferner eingerichtet ist, im Fall einer Übertragung des Datenrahmens an die Anwendungslogik, auch den entsprechenden Zeitstempel an die Anwendungslogik zu übertragen.
-
In Beispiel 15 kann der Gegenstand nach einem der Beispiele 1 bis 14 fakultativ ferner eine Rahmenzähler-Schaltung aufweisen, die eingerichtet ist, einen Rahmenidentifizierer für jeden abgewickelten Datenrahmen zu erzeugen, wobei das Rahmenfilter ferner eingerichtet ist, im Fall einer Übertragung des Datenrahmens an die Anwendungslogik, auch den entsprechenden Rahmenidentifizierer an die Anwendungslogik zu übertragen.
-
Beispiel 16 ist ein Verfahren zum Abwickeln eines eingehenden Kommunikations-Datenrahmens, der eine Vielzahl von Bits enthält. Das Verfahren kann aufweisen: Vergleichen, in jedem aus einer Vielzahl von Daten-Matchern, einer Teilmenge der Vielzahl von Bits des Datenrahmens mit einem vorgegebenen Datenmuster einer Vielzahl von Datenmustern, Bereitstellen einer Ausgabe, um das Ergebnis des Vergleichs anzuzeigen, Vergleichen, in einer Vielzahl von Auswahleinrichtungen, einer Teilmenge der Ausgaben der Vielzahl von Daten-Matchern mit einem vorgegebenen Auswahlmuster einer Vielzahl von Auswahlmustern, Bereitstellen einer Ausgabe, um das Ergebnis des Vergleichs anzuzeigen, Vergleichen der Ausgaben der Vielzahl von Auswahleinrichtungen mit einem vorgegebenen Filtermuster, Bereitstellen einer Ausgabe, um das Ergebnis des Vergleichs anzuzeigen, und nur wenn die Ausgabe anzeigt, dass die Ausgabe der Vielzahl von Auswahleinrichtungen mit dem vorgegebenen Filtermuster übereinstimmt, Übertragen des eingehenden Rahmens an einen Anwendungslogikblock und Übertragen der Ausgaben der Vielzahl von Auswahleinrichtungen an die Anwendungslogik.
-
In Beispiel 17 kann der Gegenstand von Beispiel 16 fakultativ ferner ein Speichern der Vielzahl von Datenmustern, der Vielzahl von Auswahlmustern und/oder des vorgegebenen Filtermusters aufweisen.
-
In Beispiel 18 kann der Gegenstand von Beispiel 16 oder 17 fakultativ ferner ein Konfigurieren, während eines Betriebs der Vorrichtung, des vorgegebenen Auswahlmusters, der Vielzahl von Datenmustern, des vorgegebenen Auswahlmusters, der Vielzahl von Auswahlmustern und/oder des vorgegebenen Filtermusters aufweisen.
-
In Beispiel 19 kann der Gegenstand nach einem der Beispiele 16 bis 18 fakultativ ferner aufweisen: Vergleichen einer ersten Teilmenge der Vielzahl von Bits des Datenrahmens mit einem ersten vorgegebenen Datenmuster der Vielzahl von Datenmustern und Bereitstellen einer ersten Ausgabe, um das Ergebnis des Vergleichs anzuzeigen, Vergleichen einer zweiten Teilmenge der Vielzahl von Bits des Datenrahmens mit einem zweiten vorgegebenen Datenmuster der Vielzahl von Datenmustern und Bereitstellen einer zweiten Ausgabe, um das Ergebnis des Vergleichs anzuzeigen.
-
In Beispiel 20 kann der Gegenstand von Beispiel 19 fakultativ ferner aufweisen, dass die erste Teilmenge der Vielzahl von Bits des Datenrahmens von einer anderen Position im Datenrahmen stammt als die zweite Teilmenge der Vielzahl von Bits des Datenrahmens, und dass das erste vorgegebene Datenmuster vom zweiten vorgegebenen Datenmuster verschieden ist.
-
In Beispiel 21 kann der Gegenstand nach Beispiel 19 oder 20 fakultativ ferner aufweisen, dass jeder Datenrahmen Nutzdaten einer Vielzahl von Kommunikationsprotokollschichten aufweist, dass die erste Teilmenge der Vielzahl von Bits von einer ersten Schicht der Vielzahl von Kommunikationsprotokollschichten stammt, und dass die zweite Teilmenge der Vielzahl von Bits von einer zweiten Schicht der Vielzahl von Kommunikationsprotokollschichten stammt.
-
In Beispiel 22 kann der Gegenstand nach einem der Beispiele 16 bis 21 fakultativ ferner aufweisen, dass ein dritter Daten-Matcher der Vielzahl von Daten-Matchern eingerichtet ist, eine dritte Teilmenge der Vielzahl von Bits des Datenrahmens mit einem dritten vorgegebenen Datenmuster aus der Vielzahl von Datenmustern zu vergleichen und eine dritte Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen, und dass ein vierter Daten-Matcher der Vielzahl von Daten-Matchern eingerichtet ist, die dritte Teilmenge der Vielzahl von Bits des Datenrahmens mit dem dritten vorgegebenen Datenmuster aus der Vielzahl von Datenmustern zu vergleichen und eine vierte Ausgabe bereitzustellen, um das Ergebnis des Vergleichs anzuzeigen.
-
In Beispiel 23 kann der Gegenstand von Beispiel 22 fakultativ ferner aufweisen, dass jedes der vorgegebenen Auswahlmuster und das vorgegebene Filtermuster eingestellt sind, zu einer Übereinstimmung zu führen, wenn die dritte Ausgabe mit der vierten Ausgabe übereinstimmt.
-
In Beispiel 24 kann der Gegenstand nach einem der Beispiele 16 bis 23 fakultativ ferner aufweisen, dass in jeder Auswahleinrichtung das vorgegebene Auswahlmuster eingerichtet ist, die Bits der Ausgabe des Ergebnisses des Vergleichs zwischen der Vielzahl von Bits des Datenrahmens und dem vorgegebenen Datenmuster auszuwählen oder abzuwählen.
-
In Beispiel 25 kann der Gegenstand nach einem der Beispiele 16 bis 24 fakultativ ferner aufweisen: Erzeugen eines Zeitstempels für jeden abgewickelten Datenrahmen, und beim Übertragen des Datenrahmens an die Anwendungslogik, Übertragen des entsprechenden Zeitstempels an die Anwendungslogik.
-
In Beispiel 26 kann der Gegenstand nach einem der Beispiele 16 bis 25 fakultativ ferner aufweisen: Erzeugen eines Rahmenidentifizierers für jeden abgewickelten Datenrahmen, und beim Übertragen des Datenrahmens an die Anwendungslogik, Übertragen des entsprechenden Rahmenidentifizierers an die Anwendungslogik.
-
In Beispiel 27 kann der Gegenstand nach einem der Beispiele 16 bis 26 fakultativ ferner aufweisen, dass das Vergleichen in jedem von der Vielzahl von Daten-Matchern parallel durchgeführt wird.
-
In Beispiel 28 kann der Gegenstand nach einem der Beispiele 16 bis 27 fakultativ ferner aufweisen, dass das Vergleichen in jeder von der Vielzahl von Auswahleinrichtungen parallel durchgeführt wird.
-
Obwohl die Erfindung unter Bezugnahme auf konkrete Ausführungsformen besonders gezeigt und beschrieben wurde, wird es für einen Fachmann offensichtlich sein, dass daran verschiedene Änderungen der Form und der Einzelheiten vorgenommen werden können, ohne vom Erfindungsgedanken und Umfang der Erfindung, wie sie durch die beigefügten Ansprüche definiert sind, abzuweichen. Der Umfang der Erfindung ist somit durch die beigefügten Ansprüche angegeben und alle Änderungen, die innerhalb der Bedeutung und des Bereichs der Äquivalenz der Ansprüche liegen, sollen daher angenommen werden.