DE10393053B4 - Bereichsbasierte Mehrfeldkorrelation - Paketklassifizierung mit logorithmischem Zeitverhalten - Google Patents

Bereichsbasierte Mehrfeldkorrelation - Paketklassifizierung mit logorithmischem Zeitverhalten Download PDF

Info

Publication number
DE10393053B4
DE10393053B4 DE10393053T DE10393053T DE10393053B4 DE 10393053 B4 DE10393053 B4 DE 10393053B4 DE 10393053 T DE10393053 T DE 10393053T DE 10393053 T DE10393053 T DE 10393053T DE 10393053 B4 DE10393053 B4 DE 10393053B4
Authority
DE
Germany
Prior art keywords
filter
identifier
search
data packet
identifiers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10393053T
Other languages
English (en)
Other versions
DE10393053T5 (de
Inventor
Priya Hillsboro Govindarajan
Chun-Yang Beaverton Chiu
David Hillsboro Durham
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE10393053T5 publication Critical patent/DE10393053T5/de
Application granted granted Critical
Publication of DE10393053B4 publication Critical patent/DE10393053B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

Verfahren mit den folgenden Schritten:
Kombinieren eines Filterelements und einer Richtlinienkennung zur Bildung einer Filterkennung, wobei die Richtlinienkennung eine für Datenpakete mit spezifizierten Einträgen in Datenpaket-Klassifiziererfeldern geltende Richtlinie identifiziert;
Bestimmen jeweiliger Mengen einer oder mehrerer Filterkennungen, wobei jede Menge einem entsprechenden Datenpaket-Klassifiziererfeld zugeordnet ist; und
Erzeugen einer Ergebnismenge von Filterkennungen auf der Basis einer Schnittmenge der Filterkennungsmengen.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft die Netzwerkpaketklassifizierung durch einen bereichsbasierten Mehrfeld-Korrelations-Paketklassifizierer mit logorithmischem Zeitverhalten.
  • ALLGEMEINER STAND DER TECHNIK
  • Mit Netzwerkeinrichtungen können an durch diese fließenden Datenpaketen Aktionen durchgeführt werden. Die durchgeführten Aktionen können mit der Art von durch die Einrichtung fließendem Datenverkehr und den in der Einrichtung eingerichteten Richtlinien variieren. Zum Beispiel kann die Einrichtung eine Richtlinie aufweisen, allen Verkehr aus einem bestimmten Subnetz mit hoher Priorität zu markieren, spezifische Ströme durch einen bestimmten MPLS-Tunnel (Multi-protocol Label Switch) oder ein VPN (Virtual Private Network) zu senden oder für jeden Strom Statistiken für Buchhaltungs-/Gebührenberechnungszwecke zu sammeln.
  • Paketklassifizierer dienen zur Bestimmung der von der Netzwerkeinrichtung angewandten Richtlinie. Die auf das Paket angewandten Richtlinien können zum Beispiel aus einer Durchsuchung der Felder in dem Paketkopfteil bestimmt werden. Die (auch als „Filter" bekannten) Paketklassifizierer für die Richtlinien können jedesmal, wenn ein Paket an der Einrichtung ankommt, nach Übereinstimmungen mit dem Paketkopfteilfeld durchsucht werden.
  • DE 100 58 443 A1 offenbart eine Umwandlung einer Original-Regel-Datenbank zum Speichern in das Format einer Regel-Abbildungstabelle. Die Regel-Abbildungstabelle wird dadurch gebildet, daß ein Eingangsschlüssel in eine Mehrzahl von Unterschlüssel aufgeteilt wird und dann nacheinander der Inhalt jedes Unterschlüssels mit dem Unterschlüsselfeld jeder Regel verglichen wird.
  • Aus der Druckschrift WO 02/15488 A1 ist bekannt, zur Paket-Klassifikation mehrere Regeln auf unterschiedliche Blöcke anzuwenden und die Ergebnisse mit einer AND-Verknüpfung auszuwerten.
  • US 6,289,013 B1 beschreibt einen Paket-Filter, der die Ergebnisse mehrerer Paketfeldüberprüfungen mit AND verknüpft.
  • EP 1 227 630 A2 offenbart ein Verfahren zum Kreieren einer dynamisch aktualisierbaren und suchbaren Datenbank für Paket-Klassifizierung, wobei Iterationen sowie hierarchische Regelunterteilungen verwendet werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Es ist daher Aufgabe der Erfindung, ein effizienteres und schnelleres Suchverfahren im Gebiet der Netzwerkpaket-Klassifizierung bereitzustellen.
  • Die Aufgabe wird erfindungsgemäß durch ein Verfahren nach Patentanspruch 1, einen Artikel nach Anspruch 9, eine Vorrichtung nach Anspruch 15 und ein System nach Anspruch 21 gelöst. Weiterbildungen sind in den abhängigen Patentansprüchen angegeben.
  • 1 ist ein Beispiel für ein Netzwerk zum Senden und Empfangen von Datenpaketen.
  • 2 ist eine beispielhafte Tabelle von Richtlinien und assoziierten Datenpaket-Kopfteilfeldfiltern
  • 3 ist ein Quellenadressen-Filterbaumdiagramm für die Tabelle von 2.
  • 4 ist ein Zieladressen-Filterbaumdiagramm für die Tabelle von 2.
  • 5 ist ein Quellenport-Filterbaumdiagramm für die Tabelle von 2.
  • 6 ist ein Flußdiagramm für einen Prozeß zur Bestimmung der mit einem Paketkopfteilfeld assoziierten Richtlinien.
  • 7 ist ein Flußdiagramm eines Prozesses zur Bestimmung der Datenpaketklassifikation.
  • 8 ist eine Tabelle, die Filterkennungen darstellt.
  • 9 zeigt die Tabelle von 8 nach Filter-ID sortiert.
  • 10 zeigt die Tabelle von 8 nach Datenpaketklassifizierer-Feldeinträgen sortiert.
  • 11 zeigt die Tabelle von 10 nach Filter-ID sortiert.
  • 12 ist ein Flußdiagramm eines Prozesses zum Assoziieren zweier Richtlinien-ID-Mengen mit jedem Knoten eines Filterbaums.
  • 13 ist ein Quellenport-Filterbaumdiagramm für die Tabelle von 2 mit zwei mit jedem Baumknoten assoziierten Richtlinien-ID-Mengen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 zeigt ein Netzwerk 10, mit dem Informationspakete zwischen den Knoten 12, 14 und 16 weitergeleitet werden können. Obwohl nur drei Knoten gezeigt sind, kann das Netzwerk 10 viele Knoten koppeln. Die Knoten 12, 14 und 16 enthalten die Netzwerkeinrichtungen 18, 20 bzw. 22. Der Knoten 16 zeigt beispielsweise, daß ein Knoten auch einen Prozessor 24 und Speicher 26 enthalten kann. Die Netzwerkeinrichtung 22 kann in Verbindung mit dem Prozessor 24 und Speicher 26 zur Bereitstellung von Netzwerkdiensten an den an dem Knoten 16 empfangenen Informationspaketen verwendet werden. Datenpakete können zwischen Knoten in dem Netzwerk transferiert werden.
  • Ein von einem Knoten empfangenes Datenpaket kann ein Datenpaketkopfteilfeld enthalten, um eine oder mehrere Eigenschaften der Daten anzuzeigen. Zum Beispiel kann der Kopfteil eine Adresse angeben, von der das Datenpaket gesendet wurde, eine Adresse, an die das Datenpaket gesendet werden soll, eine an allen Daten oder einem Teil der Daten durchzuführende Operation usw.
  • Mit Netzwerkknoten sind Richtlinien assoziiert. Die auf Richtlinien basierende Vernetzung ist die Verwaltung eines Netzwerks dergestalt, daß verschiedene Arten von Verkehr (z. B. Daten, Sprache und Video) die Priorität der Verfügbarkeit und Bandbreite erhalten, die notwendig ist, um die Benutzer des Netzwerks effektiv zu versorgen.
  • Die Richtlinien können in einem Richtlinienrepositorium, wie zum Beispiel einem Speicher 26, gespeichert werden. Die Netzwerkeinrichtung kann die Datenpaket-Kopfteilfeldeinträge zu einem Prozessor 24 übermitteln. Der Prozessor 24 operiert an den Einträgen, um das Datenpaket im Hinblick auf die für das Datenpaket geltenden Richtlinien zu klassifizieren. Die geltenden Richtlinien können aus dem Richtlinienrepositorium in dem Speicher 26 von dem Prozessor abgerufen werden.
  • Die Richtlinien, die für ein bestimmtes Datenpaket gelten, können aus den Einträgen in den Datenpaket-Kopfteilfeldern bestimmt werden. Eine Richtlinie kann in einem konkreten Beispiel für alle Datenpakete gelten, die von einer bestimmten Quellenadresse stammen. Andere Richtlinien können auf Bereichen basieren. „Auf Bereichen basierende" Richtlinien sind Richtlinien, die für Datenpakete gelten, die Kopfteilfeldeinträge aufweisen, die in einen Bereich von Werten fallen. Zum Beispiel kann eine Richtlinie für alle Datenpakete gelten, die aus einer Quelle mit einer Adresse innerhalb eines Bereichs von Adressen stammen. Die Richtlinien weisen in dem konkreten Beispiel eine Quellenadresse oder einen Bereich von Adressen auf, um die Datenpakete zu filtern und zu bestimmen, für welche Pakete eine Richtlinie gilt.
  • Eine Implementierung der Paketklassifizierung verwendet einen Rot-Schwarz-Ausgleichsbinärbaum, der für jeden Filterelementtyp erzeugt wird, der einem bestimmten Datenpaket-Kopfteilfeld entspricht. 2 zeigt eine konkrete Implementierung mit einer Menge von Richtlinien, einer Richtlinien-ID (Richtlinien-Kennung) 202, assoziiert mit einer 3-Tupel-Paketklassifizierung aus Quellenadresse 204, Zieladresse 206 und Quellenport 208. 3, 4 und 5 zeigen in Baumform die Quellenadresse, Zieladresse bzw. Quellenportfilter der in 2 dargestellten Richtlinien. Die Anzahl der in der Klassifizierung verwendeten Paket-Kopfteilfelder ist nicht auf die spezifischen dargestellten Felder beschränkt.
  • Als ein Beispiel für die Baumkonstruktion zeigt 3 einen Quellenadressenbaum 300 der Quellenadressen 204, die mit den Richtlinien-IDs 202 von 2 assoziiert sind. Jeder der Filterknoten 310320 ist eine Adresse aus den Quellenadressen 204 von 2. Die Filterknoten 310320 sind in der Reihenfolge ihres Werts angeordnet. In dem dargestellten Baum werden die Filterknoten in aufsteigender Reihenfolge ihres Adressenwerts von links nach rechts angeordnet. Die Filterknoten können jedoch in anderen hierarchischen Reihenfolgen angeordnet werden. Die mit jedem der Filterknoten 310320 assoziierten Richtlinien sind in Referenzrichtlinienkästen 322332 dargestellt.
  • Jeder der Referenzrichtlinienkästen 322332 hält einen Verweis auf die Liste von Richtlinien, die mit dem Filterknoten übereinstimmen. Mit Bezug auf 2 fällt zum Beispiel eine Paketkopfteil-Quellenadresse von 7.8.9.10 in den Bereich von Quellenadressen, der die durch die Richtlinien-IDs P1, P2, P3 und P5 identifizierten Richtlinien impliziert. Diese Richtlinien-IDs sind in 3, Referenzrichtlinienkasten 326, dargestellt. Die übrigen Referenzrichtlinienkästen 322, 324 und 328332 werden ähnlich bestimmt. Die Referenzrichtlinienkästen 410420 für den Zieladressenbaum 400 von 4 und die Referenzrichtlinienkästen 510516 für den Quellenportbaum 500 von 5 können auf analoge Weise bestimmt werden.
  • Die Richtlinie mit der Richtlinien-ID von P3 in 2 wird auf Pakete angewandt, die die folgenden Einträge in den Kopfteilfeldern aufweisen: (1) eine Quellenadresse im Bereich von Adressen von 1.2.3.4 bis 10.10.10.10, (2) eine Zieladresse im Bereich von Adressen von 11.12.13.10 bis 11.12.13.50 und (3) einen Quellenport von 3000.
  • 6 zeigt einen Prozeß zur Bestimmung der mit einem Paketkopfteil assoziierten Richtlinien. Der Prozeß kann als ein Programm implementiert werden, das durch einen Prozessor oder unter Verwendung anderer Schaltungen ausführbar ist. In 602 wird ein Baum ausgewählt. In 604 wird der gewählte Baum nach dem mit dem Wert in dem Paketkopfteil übereinstimmenden Wert durchsucht. Wenn ein Filterknoten mit einem mit dem Wert in dem Paketkopfteil übereinstimmenden Wert gefunden wird (606), werden die mit dem gefundenen Filterknoten assoziierten Referenzrichtlinien bestimmt (608) und das Programm schreitet zu 614 voran.
  • Wenn in 606 keine Übereinstimmung für den Paketkopfteilwert gefunden wird, werden sowohl der Filterknoten mit einem nächstniedrigeren Wert und der Filterknoten mit einem nächsthöheren Wert als der Paketkopfteilwert ausgewählt (610). Ein nicht existierender Knoten für höher oder niedriger wird als eine Nullmenge betrachtet. Die Liste von Übereinstimmungen für diesen Paketkopfteilwert ist die Schnittmenge der mit diesen Filterknoten assoziierten Richtlinien und wird in 612 bestimmt.
  • Die Blöcke 602612 werden wiederholt, bis die Richtlinienlisten aus jedem Baum erhalten sind (614). Eine Schnittmenge aller erhaltenen Listen liefert die Menge von Richtlinien, die mit den Datenpaketen übereinstimmen (616).
  • In einem veranschaulichenden Beispiel kann man mit den Bäumen von 35 die Menge von Richtlinien bestimmen, die mit einem Paket mit einer Quellenadresse 5.6.7.8, einer Zieladresse 11.12.13.40 und einem Quellenport 3000 übereinstimmen.
  • Mit Bezug auf 3 besitzt der Quellenadressenbaum einen Filterknoten 312, der eine Übereinstimmung für die Paketkopfteil-Quellenadresse 5.6.7.8 darstellt. Die erhaltene Menge von Richtlinien ist {P1, P3, P5}, wie in dem Referenzrichtlinienkasten 324 dargestellt.
  • Mit Bezug auf 4 besitzt der Zieladressenbaum keinen Filterknoten, der eine Übereinstimmung für die Paketkopfteil-Zieladresse 11.12.13.40 darstellt. Der Filterknoten mit einem Wert gerade unterhalb dieser Adresse ist der Filterknoten 406, der den Wert 11.12.13.10 aufweist. Die Menge von für den Filterknoten 406 erhaltenen Richtlinien ist {P1, P3}, wie in dem Referenzrichtlinienkasten 414 dargestellt. Der Filterknoten mit einem Wert gerade oberhalb der Paketkopfteil-Zieladresse ist der Filterknoten 408, der den Wert 11.12.13.50 aufweist. Die Menge der für den Filterknoten 408 erhaltenen Richtlinien ist {P3}, wie in dem Referenzrichtlinienkasten 416 dargestellt. Die Schnittmenge der beiden erhaltenen Richtlinienmengen ist
    {P1, P3} ∩ {P3} = {P3}
  • Dies ist die Menge der mit der Zieladresse 11.12.13.40 dieses Beispiels assoziierten Richtlinien.
  • Mit Bezug auf 5 besitzt der Quellenportbaum einen Filterknoten 508, der eine Übereinstimmung für die Paketkopfteil-Quellenportadresse 3000 darstellt. Die erhaltene Menge von Richtlinien ist {P3, P4, P5}, wie in dem Referenzrichtlinienkasten 514 dargestellt.
  • Die Schnittmenge von Richtlinien, die aus allen Bäumen erhalten wird, ist
    {P1, P3, P5} ∩ {P3} ∩ {P3, P4, P5} = {P3}
  • Das Ergebnis ist {P3} wie die Richtlinien-ID-Übereinstimmung für dieses Paket.
  • Bei einer anderen Implementierung zeigt 12 einen Prozeß 800 zum Erzeugen eines Baums, wobei die Schnittmengen für die Bäume berechnet werden können, wenn die Richtlinien in dem Baum installiert werden, statt in der Ausführungszeit, wenn das Paket ankommt. Bei dieser Implementierung können mit jedem Knotenwert eines Baums wie nachfolgend beschrieben zwei Mengen von Richtlinien-IDs assoziiert werden. Es wird eine Tabelle von mit einem Paketkopfteil-Klassifiziererfeld assoziierten Richtlinien ausgewählt (802). Für jeden Filterknoten wird ein Filterknoten in den Baum eingegeben (804). Mit jedem Knoten wird eine erste Menge von Richtlinien-IDs assoziiert (806). Die erste Menge ist eine Menge von Richtlinien-IDs aus der Tabelle, die für Pakete gelten können, die Paketkopfteil-Klassifiziererfeldwerte aufweisen, die genau mit dem Knotenwert übereinstimmen. Die erste Menge kann als die Menge der genauen Übereinstimmung bezeichnet werden. Eine zweite Menge von Richtlinien-IDs wird mit jedem Knoten assoziiert (808). Die zweite Menge enthält die Richtlinien-IDs aus der Tabelle, die auf Pakete angewandt werden können, die Paketkopfteil-Klassifiziererfeldwerte zwischen dem Knotenwert und dem nächst höheren Knotenwert in dem Baum aufweisen. Die zweite Menge kann als die auf Bereichen basierende Menge bezeichnet werden. Diese Assoziation zweier Mengen von Richtlinien-IDs kann für jedes Paketkopfteil-Klassifiziererfeld erreicht werden.
  • 13 zeigt einen Quellenportfilterknotenbaum 900 der Richtlinientabelle von 2 mit einer ID-Menge für Richtlinien mit genauer Übereinstimmung und einer ID-Menge für auf Bereichen basierenden Richtlinien, die in jedem Filterknoten zugeordnet sind. Jeder der Filterknoten 902908 ist eine Adresse aus dem Quellenport von 2. Die Filterknoten 902908 sind in der Reihenfolge ihres Werts angeordnet. In dem dargestellten Baum sind die Filterknoten in ansteigender Reihenfolge ihres Werts von links nach rechts angeordnet. Die Filterknoten können jedoch in anderen hierarchischen Reihenfolgen angeordnet werden. Die mit jedem der Filterknoten 902908 assoziierten Richtlinien sind in Referenzrichtlinienkästen 910916 dargestellt.
  • Jeder Knoten ist mit zwei Richtlinien-ID-Mengen assoziiert: Einer ID-Menge 910916 von Richtlinien mit genauer Übereinstimmung und einer ID-Menge 918924 von auf Bereichen basierenden Richtlinien. Die ID-Menge von Richtlinien mit genauer Übereinstimmung ist eine Menge von Richtlinien, die mit dem Filterknoten übereinstimmen. Zum Beispiel fällt mit Bezug auf 2 ein Paketkopfteil-Quellenport von 1000 in den Bereich von Quellenadressen, die die durch die Richtlinien-IDs P1, P2 und P5 identifizierten Richtlinien implizieren. Diese Richtlinien-IDs sind in 13 dargestellt (Menge 910 der genauen Übereinstimmungen). Die übrigen Mengen 912, 914 und 916 der genauen Übereinstimmungen werden ähnlich bestimmt.
  • Die mit einem Knoten assoziierte Menge der genauen Übereinstimmungen wird auf ein Paket mit einem Paketkopfteil-Quellenportwert angewandt, der genau mit dem Knotenwert übereinstimmt.
  • Die ID-Menge für auf Bereichen basierende Richtlinien ist eine Menge von Richtlinien, die auf ein Paket angewandt werden kann, das einen Paketkopfteil-Klassifiziererfeldwert aufweist, der keine genaue Übereinstimmung für einen Knotenwert darstellt. Die auf Bereichen basierende Menge ist die Schnittmenge zwischen einem Knoten und dem nächst höherwertigen Knoten. Zum Beispiel ist die auf Bereichen basierende Menge 918 dem Knoten 902 mit der Menge der genauen Übereinstimmungen 910 = {P1, P2, P5} zugeordnet. Der nächsthöhe re Knoten ist 904 mit der Menge der genauen Übereinstimmungen 912 = {P2, P4, P5}. Die Schnittmenge der beiden erhaltenen Richtlinienmengen ist
    {P1, P2, P5} ∩ {P2, P4, P5} = {P2, P5}
  • Die Menge {P2, P5} ist die auf Bereichen basierende Menge 918, die dem Knoten 902 zugeordnet ist.
  • Eine Menge der genauen Übereinstimmungen eines nichtexistierenden Knotens wird als die Nullmenge definiert. Der Knoten 908 besitzt eine Menge der genauen Übereinstimmungen {P5}. Da nach dem Knoten 908 kein nächsthöherer Knoten kommt, ist die Menge der genauen Übereinstimmung des nächsthöheren Knotens die Nullmenge. Die Schnittmenge ist
    {P5} ∩ {null} = {null}
  • Die Nullmenge {null} ist die dem Knoten 908 zugeordnete auf Bereichen basierende Menge 924.
  • Auf Bereichen basierende Knoten 920, 922, die mit dem Knoten 904 bzw. 906 assoziiert sind, können auf ähnliche Weise wie oben beschrieben bestimmt werden.
  • Bestimmte Implementierungen, die die auf Bereichen basierende Menge vor der Ausführungszeit berechnen, haben den Vorteil, die Leistungsfähigkeit des Suchverfahrens in der Ausführungszeit zu verbessern, weil die Schnittmengen bereits berechnet wurden. Ein weiterer Vorteil bestimmter Implementierungen besteht darin, daß die Schnittmenge für sukzessive Ankünfte von Paketen mit Paketkopfteil-Klassifiziererfeldern, die Werte aufweisen, die keine genauen Übereinstimmungen für einen Knotenwert in einem Baum darstellen, nicht neu berechnet werden müssen.
  • Als Beispiel nehme man an, daß ein Paket ein Paketkopfteil-Quellenfeld von 2000 aufweist. Mit Bezug auf 13 weist der Quellenportwert eine genaue Übereinstimmung mit dem mit dem Knoten 902 assoziierten Wert auf. Die Menge der genauen Übereinstimmung der Richtlinien-IDs 912 ist {P2, P4, P5}. Wenn der Quellenportwert 2500 ist, gibt es keinen Knoten in dem Baum mit einer genauen Übereinstimmung für diesen Wert. Die auf Bereichen basierenden Richtlinien-IDs der mit dem Knotenwert gerade unterhalb des Paketwerts assoziierten Menge gelten für das Paket. Bei diesem Beispiel ist der Knoten 904 mit einem Wert von 2000 der Knoten gerade unterhalb des Paketkopfteil-Quellenportwerts von 2500. Die für dieses beispielhafte Paket relevanten Richtlinien bilden die auf Bereichen basierende Menge {P4, P5}.
  • Auf ähnliche Weise können die für andere Paketkopfteil-Klassifiziererfelder des Pakets relevanten Richtlinien aus Bäumen mit einer ID-Menge für Richtlinien mit genauer Übereinstimmung und einer ID-Menge für auf Bereichen basierenden Richtlinien bestimmt werden, die jedem Knoten zugeordnet sind.
  • Das Verfahren assoziiert Filter-IDs mit Richtlinien. Die Filter-IDs können eine Möglichkeit geben, die Richtlinien auf logische Weise zu gruppieren. Das Verfahren kann die für ein Paket geltenden Richtlinien identifizieren, indem die Filter-IDs zu elementfremden Mengen gruppiert und die Mengen für jedes Filterelement durch Verwendung eines weiteren Ausgleichsbinärbaums (balanced binary tree) geordnet werden. Mit diesem Verfahren ist es möglich, die Zeit zur Bestimmung der Schnittmenge so weit zu verkürzen, daß sie sich O (log n) für jeden durchsuchten Filterelementtyp nähert. Dies kann zu einer Suchzeit von ungefähr [O(log n) Nachschlagvorgänge pro übereinstimmender Filter-ID]·[Anzahl durchsuchter Filterelementtypen] führen.
  • Die Filter-IDs werden logisch unterteilt, um die Zufälligkeit zu entfernen, die die ungünstigste Effektivität von O((log n)·n) verursachen würde. Logisch nicht geltende Filter-IDs können durch Verwendung der in Verbindung mit 8 und 9 beschriebenen Technik übersprungen werden.
  • Bei einer Implementierung kann der Filter-ID ein Bitmaskendeskriptor vorausgehen. Jedes Bit in der Bitmaske repräsentiert ein bestimmtes Filtertypelement. Wenn das Bit gesetzt ist, repräsentiert dieses bestimmte Filtertypelement einen Bereich. Wenn das Bit nicht gesetzt ist, ist das Filterelement ein exakter Wert (nicht ein Bereich mehrerer Werte).
  • Mit Bezug auf 2 nehme man an, daß die Filter-ID acht Bit aufweist, wobei die drei höchstwertigen Bit die Bitmaske für die drei Filterelemente (Quellenadresse, Zieladresse und Quellenport in dieser Reihenfolge) repräsentieren. Dann kann man die Filter-IDs für die Richtlinien P1 bis P5 folgendermaßen bestimmen:
    P1: 10000001
    P2: 00100010
    P3: 11000011
    P4: 00100100
    P5: 11100101
  • Für die Richtlinie P1 identifizierten bei dem dargestellten Fall die unteren 5 Bit P1 als 00001. In diesem Fall wurden 5 Bit für eine Richtliniennummer zugeteilt, obwohl dies keine Einschränkung der Offenbarung ist. Die höchstwertigen 3 Bit sind die Bitmaske. Das höchstwer tige Bit wird auf 1 gesetzt, um anzuzeigen, daß das Quellenadressenfilter für P1 auf Bereichen basiert. Die nächsten beiden Bit werden auf 0 gesetzt, um anzuzeigen, daß das Zieladressen- und Quellenportfilter exakte Werte sind. Die Kombination der binären Bitmaske 100 und der P1-Kennung von 00001 führt zu einer Filter-ID von dezimal 129. Die Richtlinien P2–P5 werden für dieses Beispiel auf ähnliche Weise bestimmt. Die Tabelle kann nach Filter-ID sortiert werden, wodurch die Filter-IDs auf der Basis der Bitmaske logisch gruppiert werden.
  • 7 zeigt ein Verfahren zum Berechnen der Schnittmenge aus den für jedes Datenpaket-Kopfteilfeld erhaltenen Mengen. In 710 kann mit jeder Richtlinien-ID in einer Richtlinien-ID-Tabelle für jedes Paketkopfteilfeld wie oben beschrieben eine Filter-ID assoziiert werden. Die Richtlinientabellen können dann nach Filter-ID sortiert werden (712).
  • Eine für jedes Datenpaket-Kopfteilfeld geltende Menge von Filter-IDs kann unter Aufrechterhaltung der sortierten Reihenfolge erhalten werden (714). In 718 wird die niedrigste Filter-ID als Such-ID aus einer Menge von Filter-IDs ausgewählt, die aus der größten Filter-ID aus jeder Datenpaket-Kopfteilmenge besteht. Die übrigen Datenpaketmengen werden nach einer Übereinstimmung für die Such-ID durchsucht (720).
  • Wenn in 722 eine Übereinstimmung für die Such-ID gefunden wird, wird die der Such-ID entsprechende Filter-ID zu der Ergebnis-Schnittmenge hinzugefügt (724). Es wird ein Test 722 auf eine Übereinstimmung der Such-ID durchgeführt. Wenn in 722 die Such-ID nicht gefunden wird, wird ein Test 726 durchgeführt, um zu bestimmen, ob das Ende irgendeiner Datenpaketmenge erreicht wurde. Wenn in 726 kein Ende einer Datenpaketmenge bestimmt wird, wird als eine neue Such-ID die nächstgrößte Filter-ID ausgewählt, die die Such-ID nicht übersteigt (730). Der Prozessor kehrt dann in einer Schleife zu 720 zurück, wo die anderen Datenpaketmengen wiederum nach einer Übereinstimmung durchsucht werden. Die Blöcke 720730 werden wiederholt, bis das Ende einer Datenpaketmenge bestimmt wird (726) und der Prozeß anhält (728).
  • Als ein veranschaulichendes Beispiel ist 8 eine Richtlinientabelle mit zwei Filterelementen (Zielport und Quellenport) und zwölf Richtlinieneinträgen. Eine Bitmaske kann wie oben beschrieben einer Richtliniennummer vorangestellt werden, um eine Bitrepräsentation und resultierende Filter-ID für jede Richtlinie in der Tabelle zu ergeben. Die Tabelle kann dann nach Filter-ID sortiert werden, um die Tabelle von 9 zu ergeben.
  • Bei einem weiteren veranschaulichenden Beispiel wird angenommen, daß ein Paket mit einem Quellenporteintrag von 4300, einem Zielporteintrag von 1300 und einer Quellenadresse von 8300 an der Netzwerkeinrichtung ankommt. Mit Bezug auf 9 lautet die Menge von Richtlinien-IDs und assoziierten Filter-IDs, die für jede Paketkopfteil-Feldadressen erhalten werden, wie folgt:
    Quellenport: {P7, P8, P9, P10, P11, P12, P4} = {71, 72, 73, 74, 75, 76, 132}
    Zielport: {P9, P1, P2, P3, P4, P5, P6} = {73, 129, 130, 131, 132, 133, 134}
    Quellenadresse: {P8, P9, P11, P1, P4, P6} {72, 73, 75, 129, 132, 134}
  • Die aus jeder Menge erhaltene Menge größter Filter-IDs lautet {Quellenport, Zielport, Quellenadresse} = {132, 134, 134}. Die niedrigste dieser Filter-IDs (132) wird als die Such-ID ausgewählt.
  • Die übrigen Mengen werden nach einer Filter-ID durchsucht, die mit der Such-ID übereinstimmt. Bei dem dargestellten Beispiel werden die Zielport- und Quellenadressenmengen von der höchsten in Richtung der niedrigsten Filter-ID durchsucht. Die Such-ID 132 findet sich in allen übrigen Mengen und wird zu der Ergebnis-Schnittmenge hinzugefügt.
  • Da das Verfahren die Filter-IDs in keiner Menge erschöpft hat wird die nächstgrößte Filter-ID, die die Such-ID nicht übersteigt, aus den Mengen ausgewählt. Diese Filter-ID wird als die neue Such-ID benutzt. Bei dem dargestellten Beispiel sind die Filter-IDs, die nicht in den Mengen durchsucht wurden, Quellenport = {71, 72, 73, 74, 75, 76}, Zielport = {73, 129, 130, 131} und Quellenadresse = {72, 73, 75, 129}. Die Menge größter Filter-IDs ist {76, 131, 129}. Die niedrigste dieser (Filter-ID = 76) wird als die neue Such-ID ausgewählt.
  • Die übrigen Mengen werden nach einer Filter-ID durchsucht, die mit der neuen Such-ID übereinstimmt. Die Zielport- und Quellenadressenmengen von Filter-IDs unterhalb der vorherigen Such-ID werden in Richtung der niedrigsten Filter-ID auf eine Übereinstimmung mit der neuen Such-ID durchsucht. In diesem Beispiel findet sich die Such-ID 76 nicht in allen übrigen Mengen und wird nicht zu der Ergebnis-Schnittmenge hinzugefügt.
  • Da das Verfahren immer noch in keiner Menge die Filter-IDs erschöpft hat, wird die nächst größte Filter-ID, die die Such-ID nicht übersteigt, aus den Mengen ausgewählt. Diese Filter-ID wird als die neue Such-ID verwendet. Bei dem dargestellten Beispiel sind die Filter-IDs, die nicht in den Mengen durchsucht wurden, Quellenport = {71, 72, 73, 74, 75}, Zielport = {73} und Quellenadresse = {72, 73}. Die Menge größter Filter-IDs ist {75, 73, 73}. Die niedrigste dieser (Filter-ID = 73) wird als die neue Such-ID ausgewählt.
  • Die übrigen Mengen werden nach einer Filter-ID durchsucht, die mit der Such-ID übereinstimmt. Bei dem dargestellten Beispiel werden die Zielport- und Quellenportmengen von der höchsten in Richtung der niedrigsten Filter-ID durchsucht. Bei diesem Beispiel findet sich die Such-ID 73 in allen übrigen Mengen und wird zu der Ergebnis-Schnittmenge hinzugefügt.
  • Das Verfahren hat die niedrigstwertige Filter-ID der Quellenportmenge erreicht und das Verfahren ist abgeschlossen. Die Ergebnis-Schnittmenge ist {P4/132), P9 (73)}.
  • Bei einer anderen Implementierung kann eine hierarchische Reihenfolge der Datenpaket-Klassifiziererfelder als eine Filter-ID zum Ordnen der Filter verwendet werden. Zum Beispiel könnte ein Filter, das einen Quellenportfeldeintrag von 10, einen Zielportfeldeintrag von 20 und eine Quellenadresse von 30 aufweist, eine Filter-ID von (10, 20, 30) aufweisen. Bei diesem Beispiel ist die Reihenfolge der Signifikanz für Sortierzwecke der Quellenport-Feldeintrag, der Zielport-Feldeintrag und dann der Quellenadressen-Feldeintrag. Die Filter-ID kann ebenfalls aus den Paketfeldeinträgen abgeleitet werden. Als ein Beispiel kann es sich bei der Filter-ID um einen oder mehrere der Klassifiziererfeldwerte handeln, die durch eine Konstante dividiert, oder auf eine beliebige Weise, die eine logische Sequenzierung der Filter-IDs erzeugt, bearbeitet werden. Die Sortiereigenschaften der Filterpaketfelder sind nicht auf die Anzahl, Art und hierarchische Reihenfolge der Filter-IDs beschränkt.
  • 10 zeigt die Filter-IDs, die aus der Filtertabelle von 8 unter Verwendung von Quellenport-Feldeintrag, Zielport-Feldeintrag und Quellenadressen-Feldeintrag wie oben beschrieben als Filter-ID abgeleitet werden.
  • 11 ist die Richtlinientabelle von 10 sortiert nach Filter-ID von niedrigster zu höchster. Die Reihenfolge der Richtlinien wird durch Vergleichen des Quellenportfeldes, dann des Zielportfeldes und dann des Quellenadressenfeldes mit der Filter-ID bestimmt, um die hierarchische Reihenfolge der Filter-IDs zu bestimmen.
  • Weiter in Bezug auf das dargestellte Beispiel wird angenommen, daß ein Paket mit einem Quellenporteintrag von 4300, einem Zielporteintrag von 1300 und einem Quellenadresseneintrag von 8300 an der Netzwerkeinrichtung ankommt. Mit Bezug auf 11 lautet die Menge, die aus Richtlinien-IDs und assoziierten Filter-IDs für alle Paketkopfteilfeldadressen erhalten wird:
    • Quellenport: {P7(4000, 1100, 8100), P8(4000, 1200, 8300), P9(4000, 1300, 8300), P10(4000, 4400, 8400), P11(4000, 1500, 8300), P12 (4000, 2000, 9500), P4(4300, 1000, 8300)}
    • Zielport: {P1(4000, 1000, 8300), P9(4000, 1300, 8300), P2(4100, 1000, 8100), P3(4200, 1000, 8200), P4(4300, 1000, 8300), P5(4400, 1000, 8400), P6(4500, 1000, 8300)}
    • Quellenadresse: {P1(4000, 1000, 8300, P8(4000, 1200, 2300), P9(4000, 1300, 8300), P11(4000, 1500, 8300), P4(4300, 1000, 8300), P6(4500, 1000, 8300)}
    • Die erhaltene Menge größter Filter-IDs aus jeder Menge lautet {P4(4300, 1000, 8300), P6 (4500, 1000, 8300), P6(4500, 1000, 8300). Die niedrigste dieser Filter-IDs P4(4300, 1000, 8300), wird als die Such-ID ausgewählt.
  • Die übrigen Mengen werden nach einer Filter-ID durchsucht, die mit der Such-ID übereinstimmt. Bei dem dargestellten Beispiel werden die Zielport- und Quellenadressenmengen von der höchsten in Richtung der niedrigsten Filter-ID durchsucht. Die Such-ID (4300, 1000, 8300) findet sich in allen übrigen Mengen und wird zu der Ergebnis-Schnittmenge hinzugefügt.
  • Weil das Verfahren noch in keiner Menge die Filter-IDs erschöpft hat, wird die nächstgrößte Filter-ID, die die Such-ID nicht übersteigt, aus den Mengen ausgewählt. Diese Filter-ID wird als die neue Such-ID verwendet. Bei dem dargestellten Beispiel sind die Filter-IDs, die noch nicht in Mengen durchsucht wurden, die folgenden:
    • Quellenport: = {P7(4000, 1100, 8100), P8(4000, 1200, 8300), P9(4000, 1300, 8300), P10(4000, 1400, 8400), P11(4000, 1500, 8300), P12(4000, 2000, 9500)}
    • Zielport: {P1(4000, 1000, 8300), P9(4000, 1300, 8300), P2(4100, 1000, 8100), P3(4200, 1000, 8200)}
    • Quellenadresse: {P1(4000, 1000, 8300), P8(4000, 1200, 8300), P9(4000, 1300, 8300), P11(4000, 1500, 8300)}
  • Die Menge größter Filter-IDs lautet {P12(4000, 2000, 9500), P3(4200, 1000, 8200), P11 (4000, 1500, 8300). Die niedrigste dieser Filter-IDs P11(4000, 1500, 8300), wird als die Such-ID ausgewählt.
  • Die übrigen Mengen werden nach einer Filter-ID durchsucht, die mit der neuen Such-ID übereinstimmt. Die Quellenportmenge von Filter-IDs unterhalb der vorherigen Such-ID wird in Richtung der niedrigsten Filter-ID auf eine Übereinstimmung mit der neuen Such-ID durchsucht. In diesem Fall findet sich die Such-ID P11(4000, 1500, 8300) nicht in allen übrigen Mengen und wird nicht zu der Ergebnis-Schnittmenge hinzugefügt.
  • Da das Verfahren noch in keiner Menge die Filter-IDs erschöpft hat, wird die nächstgrößte Filter-ID, die die Such-ID nicht übersteigt, aus den Mengen ausgewählt. Diese Filter-ID wird als die neue Such-ID verwendet. Bei dem dargestellten Beispiel sind die Filter-IDs, die noch nicht in den Mengen durchsucht wurden, die folgenden:
    • Quellenport: = {P7(4000, 1100, 8100), P8(4000, 1200, 8300), P9(4000, 1300, 8300), P10(4000, 1400, 8400)}
    • Zielport: {P1(4000, 1000, 8300), P9(4000, 1300, 8300)}
    • Quellenadresse: {P1(4000, 1000, 8300), P8(4000, 1200, 8300), P9(4000, 1300, 8300))
  • Die Menge größter Filter-IDs lautet {P10(4000, 1400, 8400), P9(4000, 1300, 8300), P9 (4000, 1300, 8300)}. Die niedrigste dieser Filter-IDs = P9(4000, 1300, 8300), wird als die neue Such-ID ausgewählt.
  • Die übrigen Mengen werden nach einer Filter-ID durchsucht, die mit der Such-ID übereinstimmt. Bei dem dargestellten Beispiel werden die Zielport- und die Quellenadressenmengen von der höchsten in Richtung der niedrigsten Filter-ID durchsucht. Die Such-ID P9 (4000, 1300, 8300) findet sich in allen übrigen Mengen und wird zu der Ergebnis-Schnittmenge hinzugefügt.
  • Weil das Verfahren noch in keiner Menge die Filter-IDs erschöpft hat, wird die nächstgrößte Filter-ID, die die Such-ID nicht übersteigt, aus den Mengen ausgewählt. Diese Filter-ID wird als die neue Such-ID verwendet. Bei dem dargestellten Beispiel sind die Filter-IDs, die noch nicht in den Mengen durchsucht wurden, die folgenden:
    • Quellenport: = {P7(4000, 1100, 8100), P8(4000, 1200, 8300)}
    • Zielport: {P1(4000, 1000, 8300)}
    • Quellenadresse: {P1(4000, 1000, 8300), P8(4000, 1200, 8300)}
  • Die Menge größter Filter-IDs lautet {P8(4000, 1200, 8300), P1(4000, 1000, 8300), P8 (4000, 1200, 8300)}. Die niedrigste dieser Filter-IDs = P1(4000, 1000, 8300), wird als die neue Such-ID ausgewählt.
  • Die übrigen Mengen werden nach einer Filter-ID durchsucht, die mit der Such-ID übereinstimmt. Die Quellenportmenge von Filter-IDs unterhalb der vorherigen Such-ID wird in Richtung der niedrigsten Filter-ID nach einer Übereinstimmung mit der neuen Such-ID durch sucht. Die Such-ID P1(4000, 1000, 8300) findet sich nicht in allen übrigen Mengen und wird nicht zu der Ergebnis-Schnittmenge hinzugefügt.
  • Das Verfahren in dem obigen Beispiel hat die niedrigstwertige Filter-ID der Quellenportmenge erreicht und das Verfahren ist abgeschlossen. Die Ergebnis-Schnittmenge ist {P4(4300, 1000, 8300), P9(4000, 1300, 8300)}.
  • Verschiedene Merkmale des Systems können in Hardware, Software oder in einer Kombination von Hardware und Software implementiert werden. Zum Beispiel können bestimmte Aspekte des Systems in auf programmierbaren Computer ausgeführten Computerprogrammen implementiert werden. Jedes Programm kann in einer prozeduralen oder objektorientierten höheren Programmiersprache implementiert werden, um mit einem Computersystem zu kommunizieren.
  • Ferner kann jedes solches Computerprogramm auf einem Speichermedium gespeichert werden, wie zum Beispiel Nurlesespeicher (ROM), das von einem Meterzweck- oder speziellen programmierbaren Computer lesbar ist, um den Computer zu konfigurieren und zu betreiben, wenn das Speichermedium durch den Computer gelesen wird, um die oben beschriebenen Funktionen durchzuführen.

Claims (22)

  1. Verfahren mit den folgenden Schritten: Kombinieren eines Filterelements und einer Richtlinienkennung zur Bildung einer Filterkennung, wobei die Richtlinienkennung eine für Datenpakete mit spezifizierten Einträgen in Datenpaket-Klassifiziererfeldern geltende Richtlinie identifiziert; Bestimmen jeweiliger Mengen einer oder mehrerer Filterkennungen, wobei jede Menge einem entsprechenden Datenpaket-Klassifiziererfeld zugeordnet ist; und Erzeugen einer Ergebnismenge von Filterkennungen auf der Basis einer Schnittmenge der Filterkennungsmengen.
  2. Verfahren nach Anspruch 1, weiterhin mit den folgenden Schritten: Charakterisieren der spezifizierten Einträge in den Datenpaket-Klassifiziererfeldern entweder als einen auf Bereichen basierenden Wert oder einen exakten Wert; und Generieren einer Bitmaske aus der Charakterisierung, wobei jedes Bit in der Bitmaske einem Filterelement entspricht.
  3. Verfahren nach Anspruch 2, wobei das Generieren einer Bitmaske weiterhin folgendes umfaßt: Setzen eines Bit in der Bitmaske auf 1, falls sein entsprechendes Filterelement einen auf Bereichen basierten Wert aufweist; und Setzen eines Bit in der Bitmaske auf 0, falls sein entsprechendes Filterelement einen exakten Wert aufweist.
  4. Verfahren nach Anspruch 1, wobei das Erzeugen der Ergebnismenge folgendes umfaßt: Auswählen einer bestimmten Filterkennung aus einer der Datenpaket-Klassifiziererfeldmengen als eine Suchkennung; Durchsuchen der anderen Datenpaket-Klassifiziererfeldmengen nach einer Übereinstimmung mit der Suchkennung; und Hinzufügen der Suchkennung zu einer Ergebnismenge, wenn sich die Suchkennung in jeder anderen Menge findet.
  5. Verfahren nach Anspruch 4, weiterhin umfassend ein iteratives Wiederholen des Auswählens, Durchsuchens und Hinzufügens in bezug auf mindestens eine nachfolgende Filterkennung, bis in irgendeiner Menge eine letzte Filterkennung erreicht wird.
  6. Verfahren nach Anspruch 5, weiterhin mit den folgenden Schritten: Versetzen der Filterkennungen in eine hierarchische Reihenfolge; und Durchführen des Durchsuchens ausgehend von einer Filterkennung mit einem höchsten Wert zu einer Filterkennung mit einem niedrigsten Wert in der Hierarchie.
  7. Verfahren nach Anspruch 6, wobei das Auswählen einer bestimmten Filterkennung folgendes umfaßt: Auswählen einer anfänglichen Filterkennung aus jeder Datenpaket-Klassifiziererfeldmenge, wobei die anfängliche Filterkennung unter den Filterkennungen in dieser Datenpaket-Klassifiziererfeldmenge einen höchsten Wert aufweist; und Auswählen einer der anfänglichen Filterkennungen als die bestimmte Filterkennung, wobei die eine der anfänglichen Filterkennungen unter den anfänglichen Filterkennungen einen niedrigsten Wert aufweist.
  8. Verfahren nach Anspruch 7, wobei das iterative Auswählen einer nachfolgenden Filterkennung folgendes umfaßt: Auswählen einer Filterkennung aus jeder Datenpaket-Klassifiziererfeldmenge, wobei die Filterkennung unter den Filterkennungen in dieser Datenpaket-Klassifiziererfeldmenge einen höchsten Wert aufweist, der niedriger als der Suchkennungswert ist; und Auswählen einer der Filterkennungen als die iterative bestimmte Filterkennung, wobei eine der iterativen Filterkennungen unter den iterativen Filterkennungen einen niedrigsten Wert aufweist.
  9. Artikel mit einem maschinenlesbaren Medium, das maschinenausführbare Anweisungen speichert, die, wenn sie auf eine Maschine angewandt werden, bewirken, daß die Maschine die folgenden Schritte ausführt: Kombinieren eines Filterelements und einer Richtlinienkennung zur Bildung einer Filterkennung, wobei die Richtlinienkennung eine für Datenpakete mit spezifizierten Einträgen in Datenpaket-Klassifiziererfeldern geltende Richtlinie identifiziert; Bestimmen jeweiliger Mengen einer oder mehrerer jeweiligen Datenpaket-Klassifiziererfeldern zugeordneter Filterkennungen; und Erzeugen einer Ergebnismenge von Filterkennungen, die auf einer Schnittmenge der Filterkennungsmengen basiert.
  10. Artikel nach Anspruch 9, weiterhin mit maschinenausführbaren Anweisungen, zum Bewirken, daß die Maschine die spezifizierten Einträge in den Filterelementen entweder als einen auf Bereichen basierenden Wert oder einen exakten Wert charakterisiert; und daß die Maschine eine Bitmaske aus der Charakterisierung generiert, wobei jedes Bit in der Bitmaske einem Filterelement entspricht.
  11. Artikel nach Anspruch 9, welcher die maschinenausführbaren Anweisungen umfaßt, die bewirken, daß die Maschine folgendes ausführt: Auswählen einer bestimmten Filterkennung aus einer der Datenpaket-Klassifiziererfeldmengen als eine Suchkennung; Durchsuchen der anderen Datenpaket-Klassifiziererfeldmengen nach einer Übereinstimmung mit der Suchkennung; Hinzufügen der Suchkennung zu einer Ergebnismenge, wenn sich die Suchkennung in allen anderen Mengen findet; und iteratives Wiederholen der Auswahl, Suche und Hinzufügung in bezug auf mindestens eine nachfolgende Filterkennung, bis in irgendeiner Menge eine letzte Filterkennung erreicht ist.
  12. Artikel nach Anspruch 11, weiterhin mit maschinenausführbaren Anweisungen zum Bewirken, daß die Maschine folgendes ausführt: Versetzen der Filterkennungen in eine hierarchische Ordnung; und Suchen von einer Filterkennung mit einem höchsten Wert aus in Richtung einer Filterkennung mit einem niedrigsten Wert in der Hierarchie.
  13. Artikel nach Anspruch 12, wobei die maschinenausführbaren Anweisungen zur Auswahl einer bestimmten Filterkennung weiterhin Anweisungen umfassen, die bewirken, daß die Maschine folgendes ausführt: Auswählen einer anfänglichen Filterkennung aus jeder Datenpaket-Klassifiziererfeldmenge, wobei die anfängliche Filterkennung unter den Filterkennungen in dieser Datenpaket-Klassifiziererfeldmenge einen höchsten Wert aufweist; und Auswählen einer der anfänglichen Filterkennungen als die bestimmte Filterkennung, wobei die eine der anfänglichen Filterkennungen unter den anfänglichen Filterkennungen einen niedrigsten Wert aufweist.
  14. Artikel nach Anspruch 13, weiterhin mit den maschinenausführbaren Anweisungen zum Bewirken, daß die Maschine folgendes ausführt: Auswählen einer Filterkennung aus jeder Datenpaket-Klassifiziererfeldmenge, wobei die Filterkennung unter den Filterkennungen in dieser Datenpaket-Klassifiziererfeldmenge einen höchsten Wert aufweist, der niedriger als der Suchkennungswert ist; und Auswählen einer der Filterkennungen als die iterative bestimmte Filterkennung, wobei die eine iterative Filterkennung unter den iterativen Filterkennungen einen niedrigsten Wert aufweist.
  15. Vorrichtung, umfassend: einen Netzwerkschnittstellenadapter; eine kommunikativ an den Netzwerkschnittstellenadapter angekoppelte erste Schaltung zum Kombinieren eines Filterelements und einer Richtlinienkennung zur Bildung einer Filterkennung, wobei die Richtlinienkennung eine für Datenpakete mit spezifizierten Einträgen in Datenpaket-Klassifiziererfeldern geltende Richtlinie identifiziert; eine kommunikativ an den Netzwerkschnittstellenadapter angekoppelte zweite Schaltung zur Bestimmung jeweiliger Mengen einer oder mehrerer Filterkennungen, die jeweiligen Datenpaket-Klassifiziererfeldern zugeordnet sind; und eine kommunikativ an den Netzwerkschnittstellenadapter angekoppelte dritte Schaltung zum Erzeugen einer Ergebnismenge von Filterkennungen, die auf einer Schnittmenge der Filterkennungsmengen basiert.
  16. Vorrichtung nach Anspruch 15, weiterhin mit einer kommunikativ an den Netzwerkschnittstellenadapter angekoppelten vierten Schaltung zum Charakterisieren der spezifizierten Einträge in den Filterelementen entweder als einen auf Bereichen basierenden Wert oder einen exakten Wert; und zum Generieren einer Bitmarke aus der Charakterisierung, wobei jedes Bit in der Bitmaske einem Filterelement entspricht.
  17. Vorrichtung nach Anspruch 16, weiterhin mit einer kommunikativ an den Netzwerkschnittstellenadapter angekoppelten fünften Schaltung für folgendes: Auswählen einer bestimmten Filterkennung aus einer der Datenpaket-Klassifiziererfeldmengen als eine Suchkennung; Durchsuchen der anderen Datenpaket-Klassifiziererfeldmengen nach einer Übereinstimmung mit der Suchkennung; Hinzufügen der Suchkennung zu einer Ergebnismenge, wenn sich die Suchkennung in allen anderen Mengen findet; und iteratives Wiederholen der Auswahl, Suche und Hinzufügung in bezug auf mindestens eine nachfolgende Filterkennung, bis in irgendeiner Menge eine letzte Filterkennung erreicht ist.
  18. Vorrichtung nach Anspruch 17, weiterhin mit einer kommunikativ an den Netzwerkschnittstellenadapter angekoppelten sechsten Schaltung für folgendes: Versetzen der Filterkennungen in eine hierarchische Ordnung; und Suchen von einer Filterkennung mit einem höchsten Wert aus in Richtung einer Filterkennung mit einem niedrigsten Wert in der Hierarchie.
  19. Vorrichtung nach Anspruch 18, weiterhin mit einer kommunikativ an den Netzwerkschnittstellenadapter angekoppelten siebten Schaltung für folgendes: Auswählen einer anfänglichen Filterkennung aus jeder Datenpaket-Klassifiziererfeldmenge, wobei die anfängliche Filterkennung unter den Filterkennungen in dieser Datenpaket-Klassifiziererfeldmenge einen höchsten Wert aufweist; und Auswählen einer der anfänglichen Filterkennungen als die bestimmte Filterkennung, wobei diese eine anfängliche Filterkennung unter den anfänglichen Filterkennungen einen niedrigsten Wert aufweist.
  20. Vorrichtung nach Anspruch 19, weiterhin mit einer kommunikativ an den Netzwerkschnittstellenadapter angekoppelten achten Schaltung für folgendes: Auswählen einer Filterkennung aus jeder Datenpaket-Klassifiziererfeldmenge, wobei die Filterkennung unter den Filterkennungen in dieser Datenpaket-Klassifiziererfeldmenge einen höchsten Wert aufweist, der niedriger als der Suchkennungswert ist; und Auswählen einer der Filterkennungen als die iterative bestimmte Filterkennung, wobei die eine iterative Filterkennung unter den iterativen Filterkennungen einen niedrigsten Wert aufweist.
  21. System, umfassend: ein Netzwerk; und eine kommunikativ an das Netzwerk angekoppelte Netzwerkeinrichtung, wobei die Einrichtung einen Prozessor und Anweisungen enthält, die durch den Prozessor ausführbar sind, um zu bewirken, daß der Prozessor folgendes ausführt: Kombinieren eines Filterelements und einer Richtlinienkennung zur Bildung einer Filterkennung, wobei die Richtlinienkennung eine für Datenpakete mit spezifizierten Einträgen in Datenpaket-Klassifiziererfeldern geltende Richtlinie identifiziert; Bestimmen jeweiliger Mengen einer oder mehrerer Filterkennungen, die entsprechenden Datenpaket-Klassifiziererfeldern zugeordnet sind; und Erzeugen einer Ergebnismenge von Filterkennungen, die auf einer Schnittmenge der Filterkennungsmengen basiert.
  22. System nach Anspruch 21, weiterhin mit Anweisungen, die bewirken, daß der Prozessor folgendes ausführt: Auswählen einer bestimmten Filterkennung aus einer der Datenpaket-Klassifiziererfeldmengen als eine Suchkennung; Durchsuchen der anderen Datenpaket-Klassifiziererfeldmengen nach einer Übereinstimmung mit der Suchkennung; Hinzufügen der Suchkennung zu einer Ergebnismenge, wenn sich die Suchkennung in allen anderen Mengen findet; und iteratives Wiederholen von Auswahl, Suche und Hinzufügen in Bezug auf mindestens eine nachfolgende Filterkennung, bis in irgendeiner Menge eine letzte Filterkennung erreicht ist.
DE10393053T 2002-08-08 2003-08-04 Bereichsbasierte Mehrfeldkorrelation - Paketklassifizierung mit logorithmischem Zeitverhalten Expired - Fee Related DE10393053B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/216,051 US7684400B2 (en) 2002-08-08 2002-08-08 Logarithmic time range-based multifield-correlation packet classification
US10/216,051 2002-08-08
PCT/US2003/024346 WO2004015937A2 (en) 2002-08-08 2003-08-04 Logarithmic time range-based multifield-correlation packet classification

Publications (2)

Publication Number Publication Date
DE10393053T5 DE10393053T5 (de) 2005-08-25
DE10393053B4 true DE10393053B4 (de) 2009-05-07

Family

ID=31494997

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10393053T Expired - Fee Related DE10393053B4 (de) 2002-08-08 2003-08-04 Bereichsbasierte Mehrfeldkorrelation - Paketklassifizierung mit logorithmischem Zeitverhalten

Country Status (6)

Country Link
US (1) US7684400B2 (de)
AU (1) AU2003261356A1 (de)
DE (1) DE10393053B4 (de)
GB (1) GB2408169B (de)
HK (1) HK1073026A1 (de)
WO (1) WO2004015937A2 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040177157A1 (en) * 2003-02-13 2004-09-09 Nortel Networks Limited Logical grouping of VPN tunnels
CN1275422C (zh) * 2004-04-09 2006-09-13 华为技术有限公司 一种分组数据业务中增强计费规则及进行操作的方法
US7870565B2 (en) * 2005-06-30 2011-01-11 Intel Corporation Systems and methods for secure host resource management
WO2008061211A2 (en) * 2006-11-15 2008-05-22 Qualcomm Incorporated Systems and methods for applications using channel switch frames
US8806059B1 (en) * 2007-04-05 2014-08-12 Juniper Networks, Inc. Rule tree for network device
US7808990B2 (en) * 2008-07-25 2010-10-05 Samsung Electronics Co., Ltd. Method and system for data filtering for data packets
US7961734B2 (en) * 2008-09-30 2011-06-14 Juniper Networks, Inc. Methods and apparatus related to packet classification associated with a multi-stage switch
US7796541B1 (en) 2008-09-30 2010-09-14 Juniper Networks, Inc. Methods and apparatus for range matching during packet classification based on a linked-node structure
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US8798057B1 (en) 2008-09-30 2014-08-05 Juniper Networks, Inc. Methods and apparatus to implement except condition during data packet classification
US7738454B1 (en) * 2008-09-30 2010-06-15 Juniper Networks, Inc. Methods and apparatus related to packet classification based on range values
US7835357B2 (en) 2008-09-30 2010-11-16 Juniper Networks, Inc. Methods and apparatus for packet classification based on policy vectors
US8675648B1 (en) 2008-09-30 2014-03-18 Juniper Networks, Inc. Methods and apparatus for compression in packet classification
US8032660B2 (en) * 2008-12-30 2011-10-04 Intel Corporation Apparatus and method for managing subscription requests for a network interface component
US8111697B1 (en) 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US7889741B1 (en) 2008-12-31 2011-02-15 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8488588B1 (en) 2008-12-31 2013-07-16 Juniper Networks, Inc. Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric
US8064457B2 (en) 2009-04-22 2011-11-22 Samsung Electronics Co., Ltd. System and method for filtering a data packet using a common filter
US8089966B2 (en) * 2009-04-22 2012-01-03 Samsung Electronics Co., Ltd. System and method for filtering a data packet using a combined filter
CN101888369B (zh) * 2009-05-15 2013-04-03 北京启明星辰信息技术股份有限公司 一种进行网络报文规则匹配的方法和装置
US9282060B2 (en) 2010-12-15 2016-03-08 Juniper Networks, Inc. Methods and apparatus for dynamic resource management within a distributed control plane of a switch
US9426067B2 (en) * 2012-06-12 2016-08-23 International Business Machines Corporation Integrated switch for dynamic orchestration of traffic
US9137205B2 (en) 2012-10-22 2015-09-15 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9565213B2 (en) 2012-10-22 2017-02-07 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9203806B2 (en) 2013-01-11 2015-12-01 Centripetal Networks, Inc. Rule swapping in a packet network
US9124552B2 (en) 2013-03-12 2015-09-01 Centripetal Networks, Inc. Filtering network data transfers
US9094445B2 (en) 2013-03-15 2015-07-28 Centripetal Networks, Inc. Protecting networks from cyber attacks and overloading
US9264370B1 (en) 2015-02-10 2016-02-16 Centripetal Networks, Inc. Correlating packets in communications networks
US9866576B2 (en) 2015-04-17 2018-01-09 Centripetal Networks, Inc. Rule-based network-threat detection
US9917856B2 (en) 2015-12-23 2018-03-13 Centripetal Networks, Inc. Rule-based network-threat detection for encrypted communications
US11729144B2 (en) 2016-01-04 2023-08-15 Centripetal Networks, Llc Efficient packet capture for cyber threat analysis
US10503899B2 (en) 2017-07-10 2019-12-10 Centripetal Networks, Inc. Cyberanalysis workflow acceleration
US10284526B2 (en) 2017-07-24 2019-05-07 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US11233777B2 (en) 2017-07-24 2022-01-25 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US10333898B1 (en) 2018-07-09 2019-06-25 Centripetal Networks, Inc. Methods and systems for efficient network protection
US11362996B2 (en) 2020-10-27 2022-06-14 Centripetal Networks, Inc. Methods and systems for efficient adaptive logging of cyber threat incidents
US11159546B1 (en) 2021-04-20 2021-10-26 Centripetal Networks, Inc. Methods and systems for efficient threat context-aware packet filtering for network protection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289013B1 (en) * 1998-02-09 2001-09-11 Lucent Technologies, Inc. Packet filter method and apparatus employing reduced memory
DE10058443A1 (de) * 2000-03-22 2001-10-04 Ind Technology Res Inst Hsinch Verfahren zum Klassifizieren von Datenpaketen
WO2002015488A1 (en) * 2000-08-17 2002-02-21 Redback Networks Inc. Methods and apparatus for packet classification with multiple answer sets
EP1227630A2 (de) * 2001-01-26 2002-07-31 Broadcom Corporation Verfahren, Vorrichtung und Rechnerprogrammprodukt zum Klassifizieren eines Paketstroms mit einer Bitmaske

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041053A (en) * 1997-09-18 2000-03-21 Microsfot Corporation Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards
US5956721A (en) * 1997-09-19 1999-09-21 Microsoft Corporation Method and computer program product for classifying network communication packets processed in a network stack
US6341130B1 (en) * 1998-02-09 2002-01-22 Lucent Technologies, Inc. Packet classification method and apparatus employing two fields
US6522632B1 (en) * 1998-05-06 2003-02-18 Avici Systems Apparatus and method for efficient prefix search
SE521814C2 (sv) 1998-05-14 2003-12-09 Telia Ab Ett kommunikationsnätverk eller ett ip-nätverk vilket innefattar en paketklassificerare
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6691168B1 (en) * 1998-12-31 2004-02-10 Pmc-Sierra Method and apparatus for high-speed network rule processing
US6594268B1 (en) * 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
US6798788B1 (en) * 1999-11-24 2004-09-28 Advanced Micro Devices, Inc. Arrangement determining policies for layer 3 frame fragments in a network switch
US6587463B1 (en) * 1999-12-13 2003-07-01 Ascend Communications, Inc. Packet classification engine
US7043467B1 (en) 2000-02-08 2006-05-09 Mips Technologies, Inc. Wire-speed multi-dimensional packet classifier
US7039641B2 (en) * 2000-02-24 2006-05-02 Lucent Technologies Inc. Modular packet classification
US20020038419A1 (en) 2000-03-20 2002-03-28 Garrett John W. Service selection in a shared access network using tunneling
US6963565B1 (en) 2000-08-14 2005-11-08 Advanced Micro Devices, Inc. Apparatus and method for identifying data packet at wire rate on a network switch port
AU2000266750A1 (en) 2000-08-17 2002-02-25 Redback Networks, Inc. Methods and apparatus for packet classification with multi-level data structure
US6718326B2 (en) * 2000-08-17 2004-04-06 Nippon Telegraph And Telephone Corporation Packet classification search device and method
EP1211610A1 (de) * 2000-11-29 2002-06-05 Lafayette Software Inc. Methode zum Organisieren von Daten und zum Bearbeiten von Anfragen in einem Datenbanksystem
US6680916B2 (en) * 2001-01-22 2004-01-20 Tut Systems, Inc. Method for using a balanced tree as a base for a routing table
JP2004524617A (ja) * 2001-02-14 2004-08-12 クリアスピード・テクノロジー・リミテッド クロック分配システム
US7170891B2 (en) * 2001-08-30 2007-01-30 Messenger Terabit Networks, Inc. High speed data classification system
US7386525B2 (en) * 2001-09-21 2008-06-10 Stonesoft Corporation Data packet filtering
US7899067B2 (en) * 2002-05-31 2011-03-01 Cisco Technology, Inc. Method and apparatus for generating and using enhanced tree bitmap data structures in determining a longest prefix match
US7444318B2 (en) * 2002-07-03 2008-10-28 University Of Florida Research Foundation, Inc. Prefix partitioning methods for dynamic router tables
US7508825B2 (en) * 2002-08-05 2009-03-24 Intel Corporation Data packet classification
US7554980B1 (en) * 2002-10-18 2009-06-30 Alcatel Lucent Packet classification using relevance scoring
US7382777B2 (en) * 2003-06-17 2008-06-03 International Business Machines Corporation Method for implementing actions based on packet classification and lookup results
US7317723B1 (en) * 2004-02-03 2008-01-08 Cisco Technology, Inc. Action based termination of multidimensional lookup

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289013B1 (en) * 1998-02-09 2001-09-11 Lucent Technologies, Inc. Packet filter method and apparatus employing reduced memory
DE10058443A1 (de) * 2000-03-22 2001-10-04 Ind Technology Res Inst Hsinch Verfahren zum Klassifizieren von Datenpaketen
WO2002015488A1 (en) * 2000-08-17 2002-02-21 Redback Networks Inc. Methods and apparatus for packet classification with multiple answer sets
EP1227630A2 (de) * 2001-01-26 2002-07-31 Broadcom Corporation Verfahren, Vorrichtung und Rechnerprogrammprodukt zum Klassifizieren eines Paketstroms mit einer Bitmaske

Also Published As

Publication number Publication date
GB2408169A (en) 2005-05-18
GB2408169B (en) 2007-02-28
GB0502953D0 (en) 2005-03-16
HK1073026A1 (en) 2005-09-16
WO2004015937A2 (en) 2004-02-19
AU2003261356A1 (en) 2004-02-25
DE10393053T5 (de) 2005-08-25
US7684400B2 (en) 2010-03-23
US20040028046A1 (en) 2004-02-12
WO2004015937A3 (en) 2004-07-29

Similar Documents

Publication Publication Date Title
DE10393053B4 (de) Bereichsbasierte Mehrfeldkorrelation - Paketklassifizierung mit logorithmischem Zeitverhalten
DE60026229T2 (de) Verfahren und Vorrichtung für Klassifizierung von Datenpaketen
DE60026676T2 (de) Paketklassifizierungsautomat
DE69838180T2 (de) Verfahren und rechnerprogrammprodukt zur klassifizierung von in einem netzwerkstack verarbeiteten netzübertragungspaketen
DE60214670T2 (de) Verfahren und vorrichtung zur leitweglenkungstabellenverwaltung
DE60307241T2 (de) Vlan tabellenverwaltungssystem in hardwarebasierten paketvermittlungsstellen für speichereffizientes auslesen und einschreiben
DE19617381C2 (de) Objektumwandlungsvorrichtung von einem flachen Objektraum in einen Klassen-strukturierten Raum
DE69636761T2 (de) Speichern und wiederauffinden von geordneten schlüsselmengen in einem kompakten 0-kompletten baum
DE69926109T2 (de) Paketversendegerät mit einer Flussnachweistabelle
DE60300333T2 (de) Verfahren und Vorrichtung für ein flexibles Rahmenverarbeitungs und Klassifikationssystem
DE60316696T2 (de) Verfahren zum Routen von Datenpaketen und Routing-Vorrichtung
DE10058443A1 (de) Verfahren zum Klassifizieren von Datenpaketen
DE60120321T2 (de) Dienstqualitätenanpassung und -bereitstellung für einen Datenkommunikationsschalter und zugehöriges Verfahren
DE60032674T2 (de) Verfahren zum Suchen von Adressen
DE69937185T2 (de) Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen
DE60015186T2 (de) Verfahren und system für rahmen- und protokollklassifikation
DE602004005785T2 (de) Dynamische Leitweglenkung in einem inhaltbasierten verteilten Netzwerk
DE10297269T5 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache
DE102004004320A1 (de) System und Verfahren für den Zugriff auf und die Übertragung von verschiedenen Datenrahmen in einem digitalen Übertragungsnetz
DE60225785T2 (de) Verfahren zur codierung und decodierung eines pfades in der baumstruktur eines strukturierten dokuments
DE60303444T2 (de) Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten
DE112016001193T5 (de) Protokollunabhängiger, programmierbarer Schalter für durch Software definierte Datenzentrumsnetzwerke
DE60114299T2 (de) Verfahren und Vorrichtung zum Übersetzen von IP Telekommunikationsnetzwerkadressen mit einem gesteuerten undichten Speicher
DE69919118T2 (de) Verfahren und Anordnung zur Verkehrsweglenkung von Nachrichtenpaketen mit durch numerische Ketten repräsentierten Adressen
DE602004001046T2 (de) System und Verfahren zum Testen eines Routers

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10393053

Country of ref document: DE

Date of ref document: 20050825

Kind code of ref document: P

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130301