DE69925599T2 - Kommunikationsnetz oder ip-netz mit einem paketklassifizierer - Google Patents

Kommunikationsnetz oder ip-netz mit einem paketklassifizierer Download PDF

Info

Publication number
DE69925599T2
DE69925599T2 DE69925599T DE69925599T DE69925599T2 DE 69925599 T2 DE69925599 T2 DE 69925599T2 DE 69925599 T DE69925599 T DE 69925599T DE 69925599 T DE69925599 T DE 69925599T DE 69925599 T2 DE69925599 T2 DE 69925599T2
Authority
DE
Germany
Prior art keywords
packet
network
classifier
node
filters
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 - Lifetime
Application number
DE69925599T
Other languages
English (en)
Other versions
DE69925599D1 (de
Inventor
Niklas Borg
Malin Flodin
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.)
Telia AB
Original Assignee
Telia AB
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 Telia AB filed Critical Telia AB
Publication of DE69925599D1 publication Critical patent/DE69925599D1/de
Application granted granted Critical
Publication of DE69925599T2 publication Critical patent/DE69925599T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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

Description

  • Technisches Gebiet
  • Ein Kommunikationsnetz oder ein IP-Netz, dass einen Paketklassifizierer in einem Endsystem oder einem Router einschließt, der jedes ankommende Paket beruhend auf Information in den Paketköpfen inspiziert und entscheidet, wie jedes Paket behandelt werden sollte.
  • Stand der Technik
  • Ein Paketklassifizierer ist ein Programm in einem Endsystem oder einem Router, der jedes ankommende Paket inspiziert und beruhend auf der Information in den Paketköpfen entscheidet, wie jedes Paket behandelt werden sollte. Ein Paketklassifizierer teilt so Pakete in unterschiedliche Klassen auf.
  • Ein Betriebssystem kann von einem Paketklassifizierer auf viele unterschiedliche Weisen vorteilhaft Gebrauch machen. Erstens kann ein Paketklassifizierer in einem Endsystem entscheiden, welcher Vorgang aktiviert werden soll, sich um die Pakete zu kümmern (z. B. einen Protokollstapel auf der Ebene des Benutzers zu starten: D. R. Engler und M. F. Kaashoek: DPF: Fast, Flexible Message Demultiplexing using Dynamic Code Generation [schnelle flexible Meldungsdemultiplexierungs unter Verwendung von dynamischer Codeerzeugung], Proc. of ACM SIGCOMM'96, August 1996.).
  • Zweitens kann ein Router einen Paketklassifizierer verwenden, um die Verwaltung von Paketströmen wirksamer durch Markieren von Paketen zu machen. Dies erleichtert ihre Verarbeitung, wenn sie zum nächsten Sprungrouter (hop router) gesendet werden, so genanntes Markierungs- oder IP-Schalten (Y. Rekhter, B. Davie, D. Katz, E. Rosen, G. Swallow and D. Farinacci: Tag Switching Architecture-Overview. [Markierungsschaltungsarchitektur-Überblick], Internet Draft, Juli 1997. In Arbeit. und (IP Switching: The intelligence of Routing, the Performance of Switching [die Intelligenz von Leitwegleitung, das Verhalten von Schalten oder Vermittlung], Ipsilon Networts white paper, Februar 1996, http://www.ipsilon.com/productinfo/
    wp- ipswitch.html.).
  • Drittens kann ein Paketklassifizierer in Firewalls verwendet werden. Z. B. ist ein Unternehmen nicht an irgendeinem Verkehr zu seinem lokalen Netzwerk mit der Ausnahme von www-Verkehr zu einem besonderen Computer, ftp-Verkehr zu einem anderen und PPP-Verbindungen zu einem dritten Computer interessiert. Diese Regeln sind als Filter in einem Paketklassifizierer eingefügt, und die Pakete, die mit einem dieser Kriterien übereinstimmen, sind die einzigen, denen es erlaubt wird, durch die Firewall zu gelangen.
  • Viertens kann ein Paketklassifizierer bei Quality of Service, QoS Lösungen (Qualität des Dienstes) verwendet werden. Traditionell hat das Internet nur Dienste größter Anstrengungen unterstützt, wobei keine Garantien bezüglich Verzögerung und Verzögerungsvariation (Jitter) durch das Netz gegeben worden ist. Um unterschiedliche Niveaus von Dienst anzubieten, müssen Pakete klassifiziert werden, so dass der Planer jedem Paket den angeforderten Dienst geben kann. Paketklassifizierung wird dadurch gemacht, dass eine Anzahl von Feldern in den Paketköpfen untersucht wird. Ge biete des Interesses sind z. B.: Quellenadresse, Bestimmungsadresse, Quellenanschluss und Bestimmungsanschluss. Diese Felder werden mit den Filtern verglichen, die im Paketklassifizierer gespeichert sind. Mit jedem Filter ist auch eine Aktion gespeichert. Die Aktion beschreibt, was zu tun ist, wenn das ankommende Paket mit dem Filter zusammenpasst. Die entsprechende Aktion hängt von dem Zusammenhang ab, in dem der Paketklassifizierer verwendet wird.
  • US-A-5 574 910 beschreibt ein Verfahren und eine Vorrichtung für Behandlung von Paketen in Abhängigkeit von Information in den Paketköpfen. Ein binärer Suchbaum, der eine große Anzahl von Filtern einschließt, wird verwendet, um zu entscheiden, wie die Pakete behandelt werden sollten.
  • Technisches Problem
  • Die Erfindung ist bestrebt, einen wirksamen Paketklassifizierer zu schaffen, der bei Anwendungen der oben erwähnten Art implementiert werden kann.
  • Der Klassifizierer soll nicht ein einziges Problem lösen, sondern ist stattdessen so ausgebildet, dass er eine Gruppe von Problemen löst und insbesondere Paketklassifizierung, wenn eine große Menge von Filtern gespeichert ist.
  • Offenbarung der Erfindung
  • Gemäß einem Gesichtspunkt der vorliegenden Erfindung wird ein Paketklassifizierer geschaffen, wie er in Anspruch 1 angegeben ist.
  • Vorteilhafte Wirkungen der Erfindung
  • Ein Paketklassifizierer, der in Übereinstimmung mit der Erfindung ausgebildet ist, hat eine Anzahl von Vorteilen. Die Datenstruktur des Paketklassifizierers kann gut skalieren, wenn zusätzliche Filter eingefügt werden, die Filterspezifikation allgemein genug ist, um Klassifizierung auf Unternetzen zu unterstützen, und die Datenstruktur ist Speichereffizient. Die Vorteile des implementierten Paketklassifizierers können als die Folgenden zusammengefasst werden:
    • 1. Skalierbare Datenstruktur
    • 2. Allgemeine Filterspezifikation
    • 3. Geringer Speichergebrauch
  • Ausführungsformen der Erfindung sollen nun beispielsweise unter Bezugnahme auf die beigefügten Zeichnungen beschrieben werden. Es zeigen:
  • 1 in schematischer Form einen Paketklassifizierer gemäß unserer Erfindung, und unterschiedliche Teile des Klassifizierers;
  • 2 einen IP- und UDP-Kopfsatz;
  • 3 die binomialen Bäume der Datenstruktur;
  • 4 den Filter [SP=16, TOS=0) als den ersten eingefügten Filter;
  • 5 dass Filter 0100 und 010x eingesetzt sind;
  • 6, dass der Trie-Baum mit Filtern 01xx, 1000 und 1001 erweitert ist.
  • Der implementierte Paketklassifizierer ist in 1 dargestellt und zeigt drei mehr oder weniger voneinander getrennte Teile. Diese sind: das Reservierungsprogramm 1, das ein alleinstehendes Programm ist, die Schnittstelle zwischen den Paketflüssen 2 und der Datenstruktur 3 und die Datenstruktur selbst. Der Hauptteil, die Datenstruktur 3 und die Schnittstelle 4 zwischen ihr und den Paketen ist als Teil eines Kernels 5 im Betriebssystem NetBSD implementiert. Dies wird gemacht, um die Paketklassifizierung zu beschleunigen und um auf natürliche Weise Zugriff zu den ankommenden Paketen zu erhalten. Das Reservierungsprogramm hat nicht dieselben Anforderungen an die Geschwindigkeit, und es wird auch keine Wechselwirkung mit den ankommenden Paketen benötigt. Daher wird es in Benutzerraum angeordnet.
  • Die Implementierung des Paketklassifizierers ist verhältnismäßig allgemein. Der Klassifizierer ist nicht optimiert, um ein einziges Problem zu lösen, sondern ist stattdessen so ausgebildet, dass er eine Gruppe von Problemen löst, nämlich Paketklassifizierung, wenn eine große Menge von Filtern gespeichert ist.
  • Filter
  • Ein Filter besteht aus einer Reservierung und einer Anzahl von Feldern in den Paketköpfen. Ein Filter kann aus jeglicher Kombination von sechs Filtern bestehen, die in 2 gezeigt sind.
  • Die folgenden Abkürzungen werden für diese Felder eingeführt:
    Figure 00060001
  • Der Grund, diese Felder auszuwählen, besteht darin, dass sie einen Fluss spezifizieren können. Gewisser Stand der Technik verwendet die SA, DA, DP und Prot-Felder, um diese Flüsse und Filter zu spezifizieren. Differenzielle Dienste verwenden das TOS Feld in einigen Vorschlägen des Standes der Technik.
  • Zur Startzeit ist es möglich, verschiedene Prioritätsordnungen den Feldern zu geben, auf denen klassifiziert werden soll (z. B. kann der Paketklassifizierer so konfiguriert werden, dass er dem Quellenadressfeld höhere Priorität als dem Protokollfeld gibt). Eine Prioritätsreihenfolge zwischen den unterschiedlichen Feldern ist notwendig, da ein ankommendes Paket mit mehr als einem Filter zusammenpassen kann. Zum Beispiel kann ein Paket mit einem Filter zusammenpassen, der mit den Quellen- und Bestimmungsanschlüssen zusammenpasst und gleichzeitig mit einem anderen Filter übereinstimmt, der auf den Quellen- und Bestimmungsadressen beruht. Die Prioritätsreihenfolge entscheidet dann, welcher Filter gewählt werden wird.
  • Körnigkeit von Flüssen
  • Eine wichtige Qualität für einen schnellen Paketklassifizierer besteht darin, dass Filter nicht nur mit individuellen Flüssen übereinstimmen können, sondern auch mit Gruppen von Flüssen. Die Eigenschaft, die anzeigt, auf welchem Detailniveau ein Fluss spezifiziert wird, wird Körnigkeit genannt. Bei einer gröberen Körnigkeit muss nicht jeder einzelne Fluss spezifiziert werden, wenn der selbe Filter für viel Flüsse gemacht wird, so dass ein vollständiges Unternetz mit nur einem Filter spezifiziert werden kann. Der Vorteil, eine gröbere Körnigkeit zu verwenden, besteht darin, dass viele Flüsse einen einzigen Filter teilen können, was bedeutet, dass man weniger Filter hat. Dies führt zu schnellerer Paketklassifizierung. Der Nachteil ist ein niedrigeres Niveau des Details. Ein Fluss kann nicht von dem anderen getrennt werden. Unser Paketklassifizierer unterstützt Filterspezifikationen auf Unternetze. Quellen- und Bestimmungsadressen können Unternetzfilter haben, die auf bit-Niveau hergestellt sind. Die Bezeichnung 131.115.22.11/29 bedeutet, dass ein Filter auf den 29 Bits hoher Ordnung in der Adresse aufgebaut ist.
  • Das Reservierungsprogramm
  • Das Reservierungsprogramm ist der Teil des Paketklassifizierers, wo neue Filter gemacht werden und alte beseitigt werden. Filter bestehen aus Kopfdatenfeldern und einer entsprechenden Reservierung. Filter werden eingefügt, sowie der Benutzer die Filter in eine Konfigurationsdatei einfügt. Danach kompiliert der Benutzer die Konfigurationsdatei mit dem Reservierungsprogramm. Das Reservierungsprogramm gibt, wenn die Konfigurationsdatei syntaktisch richtig ist, eine kompilierte Datei zurück. Diese Datei wird dann durch den Benutzer über eine Einrichtung herunter zum Kernel kopiert.
  • Schnittstelle zwischen den ankommenden Paketen und der Datenstruktur
  • Die Schnittstelle leitet ankommende Pakete zur Datenstruktur weiter. Sie berücksichtigt die Unterbrechungen, die erzeugt werden, wenn neue Filter auf den Kernel herunterkopiert werden. Wenn diese Filter ankommen, ist es die Schnittstelle, die sich um sie kümmert und sie in die Datenstruktur einfügt oder sie von derselben entfernt.
  • Die Datenstruktur
  • Die Filter und ihre Reservierungen sind in der Datenstruktur gespeichert. Dies ist der wichtigste Teil eines schnellen Paketklassifizierers, zumindestens, wenn viele Filter gespeichert sind. Der Grund hierfür besteht darin, dass die Kosten für Nachschlagen von Filtern in einer linearen Struktur (einem Array oder einer verknüpften Liste) proportional zur Anzahl von Filtern sind. Dies ist kein Problem, wenn der Paketklassifizierer nur eine kleine Anzahl von Filtern zur gleichen Zeit speichern muss. Da die Anzahl der Filter klein ist, wird die Nachschlagzeit auch klein sein. Für einen Paketklassifizierer, der in einem Router benutzt werden soll, der QoS-Angelegenheiten handhabt, sind die Arbeitsbedingungen vollständig verschieden. Die Anzahl von gleichzeitig gespeicherten Filtern kann häufig in den 1000ern gezählt werden, und es ist nicht zweckmäßig, eine lineare Datenstruktur zu verwenden. In diesem Falle ist es wichtig, zusammenpassende Filter zu finden, ohne dass man über alle von ihnen gehen muss. Je schneller, wie man eine Übereinstimmung zwischen den ankommenden Paket und einem Filter finden kann, umso besser ist dies. Wir haben es gewählt, unsere Struktur als eine Kombination zwischen binomialen Bäumen und Tries zu bauen. Wir haben eine neue Datenstruktur mit sechs binomialen Bäumen geschaffen, wo jeder Knoten im binomialen Baum ein Trie ist.
  • Binomiale Struktur
  • Wie ein Filter in die Datenstruktur eingesetzt wird, hängt von der Prioritätsreihenfolge zwischen den unterschiedlichen Feldern ab. Wenn wir annehmen, dass SA die höchste Priorität hat, gefolgt von DA, SP, DP, TOS und PROT, besteht unsere Datenstruktur aus sechs binomialen Bäumen, die wie in 3 strukturiert sind. Es gibt sechs Bäume, wo der erste und der zweite Baum derselben binomialen Struktur wie die unten angegebenen folgt. Bitte beachten Sie, dass nur die vier kleinsten Bäume in 3 abgebildet sind.
  • Der erste Baum enthält alle Filter, die mit dem höchsten Prioritätsfeld verknüpft sind (das heißt, wenn ein Filter das Feld höchster Priorität enthält, werden alle Filter im ersten Baum eingesetzt). Wenn der Filter dieses Felds nicht einschließt, sondern das zweithöchste, so werden alle Felder des Filters in den zweiten Baum eingesetzt, usw. Wenn DP eine höhere Priorität als SP bei der Konfiguration gegeben ist, würde DP in der Stellung von SP in 3 gefunden werden, und umgekehrt.
  • Diese binomialen Bäume sind ein wenig komplexer als gewöhnliche binomiale Bäume. In 3 stellen die Knoten kleinere Bäume dar. Diese kleineren Bäume sind Trie-Bäume und werden weiter unten beschrieben werden. Wenn ein Filter in diese Struktur eingesetzt wird, so setzen wir zuerst das Feld höchster Priorität in den Trie-Baum an der Spitze des entsprechenden binomialen Baums ein. Alle Knoten in einem Trie-Baum haben Zeiger zu ihren folgenden binomialen Bäumen. Wenn das Feld hoher Priorität eingesetzt ist, wird der Rest der Felder rekursiv in den folgenden binomialen Bäumen eingesetzt, auf die durch diese neu eingesetzten Knoten gezeigt wird. Demgemäß zeigt jeder Knoten in einem binomialen Baum zu vielfachen kleineren binomialen Bäumen. Die Quellenreservierung wird im Knoten gespeichert, der das letzte eingefügte Feld enthält.
  • 4 zeigt den dritten Baum nachdem der Filter (SP=16, TOS=0) eingesetzt ist. Der Knoten in dem Trie-Baum enthält Zeiger zu den folgenden binomialen Bäumen. In diesem Beispiel wird dieselbe Prioritätsreihenfolge wie oben erwähnt (SA, DA, SP, DP, TOS, PROT) angenommen.
  • Wenn der Paketklassifizierer in einem Router verwendet wird, muss der Router jedes ankommende Packet klassifizieren, um herauszufinden, ob ihm besondere Ressourcen zugeordnet sind. Dies wird dadurch gemacht, dass die Filter durchsucht werden, um einen zu finden, der mit dem ankommenden Packet zusammenpasst. Die Suche beginnt im ersten binomialen Baum. Wenn in diesem Baum ein zusammenpassender Filter gefunden wird, wird die damit verknüpfte Aktion durchgeführt, ansonsten wird die Suche im zweiten Baum fortgesetzt, usw. Wenn kein Filter in irgendeinem der sechs Bäume gefunden wird, dann wird eine Vorgabeaktion durchgeführt.
  • Trie-Baum Struktur
  • Die kleinen Bäume, die als Knoten in 3 erscheinen, sind Trie-Bäume. Die Knoten in diesen kleinen Bäumen sind auf solche Weise gruppiert, dass, wenn ein Nachschlagen durchgeführt wird und ein Knoten, der nicht mit dem ankommenden Packet zusammenpasst, gefunden wird, das Nachschlagen nicht weiter in diesem Baum herab durchgeführt werden muss.
  • Jeder Knoten im Baum enthält die Anzahl von Bits des Feldes im ankommenden Paket, das verglichen werden soll, und auch, was diese Bits sein sollten, um eine Übereinstimmung zu erhalten. Wenn es eine Übereinstimmung gibt, wird das Feld des ankommenden Pakets um diese vorgegebenen Anzahl von Bits verschoben und der nächste Bit im ankommenden Paket entscheidet, welcher der beiden Kinderknoten oder Knoten niedrigeren Niveaus als nächster besucht werden sollte. Dieser Bit wird verschoben, und es wird ein neuer Vergleich im entsprechenden Kinderknoten durchgeführt.
  • Da der am besten zusammenpassende Filter die längste Zusammenpassung ist, muss die Suche fortfahren mit dem Ehrgeiz, eine längere Zusammenpassung zu finden, sogar wenn schon eine Reservierung gefunden worden ist. Eine Zusammenpassung ist besser als eine vorhergehende Zusammenpassung, wenn sie ein längeres Adressenpräfix enthält oder wenn sie mehr Felder enthält. Nicht nur die Anzahl der Felder im Filter entscheidet jedoch, ob dies eine bessere Zusammenpassung ist, sondern auch die Prioritätsreihenfolge. Wenn wir dieselbe Prioritätsreihenfolge wie oben erwäht (SA, DA, SP, DP, TOS, PROT) haben, würde der Filter (SP, DP) eine bessere Zusammenpassung ergeben als (SP, TOS, PROT), obwohl er weniger Felder aufweist, aufgrund der Tatsache, dass DP höhere Priorität als sowohl TOS als auch PROT hat. Dies nimmt natürlich an, dass diese beiden Filter mit dem ankommenden Paket zusammenpassen. Wenn wir daher einen zusammenpassenden Filter in einem Knoten finden, wird mit der Suche fortgefahren, entweder herab im Trie-Baum oder, wenn dies nicht möglich ist, in den folgenden binomialen Bäumen, beginnend bei diesem besonderen Knoten.
  • In 5 und 6 zeigen wir, wie die Einfügung von Filtern in diese Trie-Bäume arbeitet. Wir veranschaulichen die Verwendung von Feldern von maximal vier Bits, wo Einfügung von Präfix möglich ist.
  • 5 zeigt die Einführung der Felder 0100 und 010x, wobei x bezeichnet, dass dieser Bit nicht im Filter eingeschlossen ist. In jedem Knoten wird die Anzahl von Verschiebungen, die durchgeführt werden soll, das Verschiebungsergebnis und ob eine Reservierung in diesem Knoten existiert, gespeichert.
  • 6 zeigt die Einführung von 0100 und 010x wie beim vorhergehenden Beispiel, jedoch auch 01xx, 1000 und 10++01.
  • Speichererweiterungen
  • Jeder Filter, der in unserer Datenstruktur gehalten wird, ist als eine Anzahl von Zellen gespeichert. Wegen der Struktur unseres Algorithmus sind diese Zellen verhältnismäßig zahlreich, ungefähr zehn pro Filter. Sie sind auch verhältnismäßig klein. Diese Zellen sind kleiner als die kleinste Größe des Speichers, die der Kernel von NetBSD zuordnen kann, was bedeutet, dass wir Speicher verschwenden, jedes Mal, wenn wir einen Filter machen. Um damit zurechtzukommen und um Zeit zu sparen, wenn neue Filter eingefügt werden, ist eine neue Speicherzuordnungsstruktur implementiert worden. Diese neue Struktur vereinigt eine Anzahl von kleinen Zellen in größere Zellen, die zugeordnet werden, wenn dies erforderlich ist. Sie entfernt auch größere Zellen, wenn keine kleinere Zelle in ihr verwendet wird.
  • Im Abschnitt über den Stand der Technik wurden einige Anwendungsgebiete von Paketklassifizierern aufgezählt. Unsere Erfindung hat die größten Vorteile in der Hauptsache für zwei derselben; Paketklassifizierer die in Firewalls verwendet werden und Paketklassifizierer, die im QoS-Zusammenhang verwendet werden. Was diese beiden Anwendungsgebiete gemeinsam haben, ist in erster Linie, dass die Anzahl von gespeicherten Filtern häufig groß ist und Klassifikation schnell gemacht werden muss. Dies bedeutet, dass der Paketklassifizierer, der in diesen Gebieten verwendet wird, gut in Bezug auf Zeit skalieren muss, wenn viele Filter eingefügt werden. Dies ist es, wofür unsere Erfindung beabsichtigt ist.
  • Unser Paketklassifizierer in Firewalls
  • Ein Klassifizierer ist ein notwendiger und unverzichtbarer Teil einer Firewall. Größere Anforderungen werden erhoben an die Firewalls, wenn sie fortgeschrittener werden und größere Bereiche schützen. Das Verhalten muss dasselbe trotz der Tatsache bleiben, dass mehr Filter gespeichert sind. Neu durchgeführte Versuche haben gezeigt, dass das Betriebsverhalten einer der schwächsten Punkte der heutigen Firewalls ist. In dem Versuch wurden virtuelle Klienten anstelle von realen Klienten verwendet. Wenn die Anzahl von virtuellen Klienten über 48 wächst, fällt das Betriebsverhalten schnell für viele der untersuchten Firewalls ab. Ein großer Anteil dieses Anwachsen in der Nachschlagzeit hängt wahrscheinlich von angewachsenen Kosten von Paketklassifizierung ab. Um diese neuen Anforderungen zu erfüllen, versucht unser Paketklassifizierer, die Skalierungseigenschaften bezüglich der Nachschlagzeit der Datenstruktur des Paketklassifizierers zu verbessern.
  • Unser Paketklassifizierer wirkt schon als ein Paketfilter. Wenn unser Paketklassifizierer als ein Gateway auf Schaltungsniveau arbeiten sollte, müssen Erweiterungen wie z. B. Sitzungsspeicher auch implementiert werden. Eine Anzahl von Filtern und ihre entsprechenden Aktionen müssen ebenfalls implementiert werden, damit die Firewall weiß, was sie mit den Paketen nach Klassifizierung machen muss. Die üblichsten Aktionen sind "Annehmen", "Verweigern" und "Verweigern und Berichten". Ein Annahmefilter lässt alle zusammenpassenden Pakete durch. Ein Verweigerungsfilter verweigert alle zusammenpassenden Pakete und ein Verweigern- und Melden- Filter verweigert zusammenpassende Pakete und berichtet über sie. Ein Modul, der die Reaktion auf diese Filter übernimmt, muss ebenfalls implementiert werden, dies ist jedoch eine Frage kleinerer Einstellungen des gegenwärtigen Codes.
  • Unser Paketklassifizierer in einem QoS-Zusammenhang
  • Unabhängig davon, welches Model von QoS im Netz eingeführt ist, werden Paketklassifizierer benötigt. Diese Paketklassifizierer werden häufig mit großen Mengen von Flüssen und großen Mengen von Reservierungen arbeiten. Um damit schnell zurechtzukommen, müssen neue Paketklassifizierer mit besserem Betriebsverhalten entwickelt werden. In dieser Hinsicht ist unser Paketklassifizierer interessant.
  • In einem QoS freigegebenen Netz müssen Pakete mit gespeicherten Reservierungen verglichen werden, um herauszufinden, welcher Klasse von Dienst einem Paket gegeben werden soll. Ob dies in jedem involvierten Knoten wie bei RSVP gemacht wird, oder ob dies an den Grenzroutern des Netzwerks wie in vielen DiffServ Vorschlägen gemacht wird, spielt für den Paketklassifizierer keine Rolle. Dieselben Felder im Paketkopf werden von Interesse sein, und die Anzahl von Filtern wird in beiden Fällen groß sein.
  • Eine andere Anwendung für unseren Paketklassifizierer in einem QoS-Zusammenhang ist als eine Überwachungseinheit. Eine Überwachungseinheit, wie dies oben erwähnt wurde, unterscheidet Flüsse, die zu viele Daten senden. Dies kann mit einem Paketklassifizierer und neuen Modulen realisiert werden, die erinnern, wie viele Daten jeder Fluss gesendet hat.
  • Die Überwachungseinheit vergleicht alle ankommenden Pakete gegen die gespeicherten Filter. Wenn ein Paket mit einem Filter und der entsprechenden Reservierung zusammenpasst, wird der Fluss untersucht, ob er das einhält, was vereinbart worden ist, oder ob er mehr sendet. Wenn mehr Pakete als vereinbart gesendet werden, werden die Pakete entweder in bester Anstrengung verschlechtert oder einfach fallengelassen. In diesem Fall wird ebenfalls erfordert, dass der Paketklassifizierer im Stande sein muss, ankommende Pakete schnell mit einer großen Menge von Filtern zu vergleichen.
  • Die Erfindung soll nur auf den Schutzbereich des Anspruchs begrenzt sein, so dass die Beschreibung nicht als die Erfindung einschränkend angesehen werden sollte.

Claims (8)

  1. Kommunikationsnetz oder IP-Netz, das in einem Endsystem oder einem Router einen Paket-Classifier beinhaltet, der eingerichtet ist, um jedes eingehende Paket in einem Suchbaum mit einer Anzahl Knoten auf Grundlage von Informationen in Feldern in den Paketköpfen zu überprüfen und zu entscheiden, wie jedes Paket behandelt werden soll, wobei der Paket-Classifier eingerichtet ist, um Pakete, wenn eine große Zahl Filter gespeichert ist, durch Abgleichen jedes eingehenden Pakets mit einem aus der großen Zahl von Filtern in Klassen aufzuteilen, dadurch gekennzeichnet, dass der Paket-Classifier eine Datenstruktur (3) beinhaltet, die als eine Kombination aus binomialen Bäumen und Trie-Bäumen erstellt ist, wobei jeder Knoten in einem binomialen Baum ein Trie-Baum ist, in der die Filter zwecks Verbesserung der Leistung der Datenstruktur (3) gespeichert sind, dass ein Feld-Präfix in jedem Knoten in den Trie Bäumen gespeichert ist und dass der Paket-Classifier eingerichtet ist, um das Feld-Präfix mit einem entsprechenden Bitfeld des eingehenden Pakets zu vergleichen.
  2. Kommunikationsnetz oder IP-Netz gemäß Anspruch 1, dadurch gekennzeichnet, dass jeder Knoten in dem Trie-Baum außerdem gespeicherte Daten über die Zahl der Shift-Schritte, die in einem Bitfeld des Pakets auszuführen sind, über das Ergebnis des Shifts und darüber enthält, ob eine Reservierung für den Knoten vorliegt.
  3. Kommunikationsnetz oder IP-Netz gemäß Anspruch 2, dadurch gekennzeichnet, dass der Paket-Classifier in dem Kernel (5) eines Betriebssystems implementiert ist.
  4. Kommunikationsnetz oder IP-Netz gemäß Anspruch 1, dadurch gekennzeichnet, dass der Paket Classifier ein Teil einer Firewall des Netzes ist.
  5. Kommunikationsnetz oder IP-Netz gemäß Anspruch 1, dadurch gekennzeichnet, dass das Netz ein QoS Enabled Netz ist.
  6. Kommunikationsnetz oder IP-Netz gemäß jedem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass der Paket Classifier aus drei separaten Teilen besteht, die sind: das Reservierungsprogramm (1), das ein eigenständiges Programm ist, eine Schnittstelle (4), zwischen den Paketströmen (2) und der Datenstruktur (3), und die Datenstruktur (3) selbst, und wo der Hauptteil, die Datenstruktur (3) und die Schnittstelle (4), als ein Teil des Kernels (5) in das Betriebssystem NetBSD implementiert ist.
  7. Kommunikationsnetz oder IP-Netz gemäß jedem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass Knoten, die darunter liegende Kindknoten haben, Reservierungen für Teilnetze gespeichert haben können.
  8. Verfahren in einem Kommunikationsnetz zum Verwalten von Paketen in einem Paket-Classifier, der in einem Endsystem oder einem Router angeordnet ist, das jedes eingehende Paket in einem Suchbaum mit einer Vielzahl von Knoten untersucht und auf Grundlage von Information in Feldern in den Paketköpfen entscheidet, wie je des Paket behandelt werden soll, gekennzeichnet durch die Schritte: – Ausstatten des Paket-Classifiers mit einer Datenstruktur (3), die als eine Kombination aus binomialen Bäumen und Trie-Bäumen erstellt ist, wobei jeder Knoten in einem binomialen Baum ein Trie-Baum ist; – Speichern von Filtern in der Datenstruktur (3); – Vergleichen eines Bitfeldes eines eingehenden Pakets mit einem Feld-Präfix, das in einem Knoten in einem Trie-Baum gespeichert ist; – Beenden der Suche in diesem Trie-Baum, falls das Feld-Präfix nicht mit dem Bitfeld des eingehenden Pakets zusammenpasst; – Verschieben des Bitfelds des eingehenden Pakets um die Anzahl von Schritten, die in dem Knoten, der besucht wird, angegeben ist, falls das Feld-Präfix mit dem Bitfeld des eingehenden Pakets zusammenpasst; – Mit dem nächsten Bit in dem Bitfeld entscheiden, welcher Kindknoten als nächster besucht wird.
DE69925599T 1998-05-14 1999-05-11 Kommunikationsnetz oder ip-netz mit einem paketklassifizierer Expired - Lifetime DE69925599T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9801744A SE521814C2 (sv) 1998-05-14 1998-05-14 Ett kommunikationsnätverk eller ett ip-nätverk vilket innefattar en paketklassificerare
SE9801744 1998-05-14
PCT/SE1999/000788 WO1999059303A2 (en) 1998-05-14 1999-05-11 A communications network or an ip-network which incorporates a packet classifier

Publications (2)

Publication Number Publication Date
DE69925599D1 DE69925599D1 (de) 2005-07-07
DE69925599T2 true DE69925599T2 (de) 2006-04-27

Family

ID=20411357

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69925599T Expired - Lifetime DE69925599T2 (de) 1998-05-14 1999-05-11 Kommunikationsnetz oder ip-netz mit einem paketklassifizierer

Country Status (6)

Country Link
EP (1) EP1088430B1 (de)
DE (1) DE69925599T2 (de)
EE (1) EE04732B1 (de)
NO (1) NO332171B1 (de)
SE (1) SE521814C2 (de)
WO (1) WO1999059303A2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807183B1 (en) * 2000-05-09 2004-10-19 Advanced Micro Devices, Inc. Arrangement for reading a prescribed location of a FIFO buffer in a network switch port
US7149216B1 (en) * 2000-09-05 2006-12-12 Cisco Technology, Inc. M-trie based packet processing
US7246173B2 (en) 2001-04-16 2007-07-17 Nokia Corporation Method and apparatus for classifying IP data
US7684400B2 (en) * 2002-08-08 2010-03-23 Intel Corporation Logarithmic time range-based multifield-correlation packet classification
GB2422507A (en) 2005-01-21 2006-07-26 3Com Corp An intrusion detection system using a plurality of finite state machines

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994001828A1 (en) * 1992-07-02 1994-01-20 Wellfleet Communications Data packet processing method and apparatus
US5473607A (en) * 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
US5509006A (en) * 1994-04-18 1996-04-16 Cisco Systems Incorporated Apparatus and method for switching packets using tree memory
US5802320A (en) * 1995-05-18 1998-09-01 Sun Microsystems, Inc. System for packet filtering of data packets at a computer network interface
AU2820697A (en) * 1996-04-30 1997-11-19 3Com Corporation Packet filtering based on socket or application identification

Also Published As

Publication number Publication date
SE521814C2 (sv) 2003-12-09
SE9801744L (sv) 1999-11-15
NO332171B1 (no) 2012-07-16
DE69925599D1 (de) 2005-07-07
WO1999059303A3 (en) 2000-03-09
NO20005629D0 (no) 2000-11-08
SE9801744D0 (sv) 1998-05-14
EE200000649A (et) 2002-04-15
EP1088430A2 (de) 2001-04-04
NO20005629L (no) 2001-01-10
EE04732B1 (et) 2006-10-16
EP1088430B1 (de) 2005-06-01
WO1999059303A2 (en) 1999-11-18

Similar Documents

Publication Publication Date Title
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE602005006058T2 (de) Skalierbare Gruppierung von virtuellen lokalen Netzwerken (VLAN) bei einem Stadtbereichnetzwerkbetreiber
DE69825596T2 (de) System und verfahren für ein vielschicht-netzelement
DE69937248T2 (de) Routers und verfahren für optimale leitwegtabellenkomprimierung
DE602005006070T2 (de) Interner Lastausgleich in einem Datenschalter mit verteiltem Netzwerkprozess
DE69934644T2 (de) Netzwerkvermittlungseinrichtung mit auf der Basis von Benutzung verteilten Umleitungsdatenbanken
DE69919569T2 (de) Verwaltung von verbindungsorientierten diensten über das internet-protokoll
DE60217253T2 (de) Centrale und regelbasierte Verkehrsverwaltung
DE60300333T2 (de) Verfahren und Vorrichtung für ein flexibles Rahmenverarbeitungs und Klassifikationssystem
DE60128733T2 (de) Regelbasiertes weitersenden in OSPF Netzwerken
DE69938239T2 (de) Verbund-fernverbindung
DE69936847T2 (de) Verfahren und einrichtungen zur zuweisung von zeitschlitzen zu leitungsvermittelten kanälen
DE60127120T2 (de) Verfahren und netzwerk zur ausbreitung von statusinformationen
DE69926477T2 (de) Verfahren und Vorrichtung zur dynamischen Steuerung der Bereitstellung von differenzierter Diensten
DE602004005785T2 (de) Dynamische Leitweglenkung in einem inhaltbasierten verteilten Netzwerk
DE102007011143A1 (de) Ein Verfahren zum Optimieren des Leitens von Anforderungen in einem Netz
DE102005053688B4 (de) Verfahren und Mechanismus zum Identifizieren eines nicht-verwalteten Schalters in einem Netz
DE602004008618T2 (de) System und verfahren zum einheitlichen weiterleiten von paketen über drahtlose und verdrahtete netzwerke
DE60023718T2 (de) Verfahren und system um datenflüsse durch eine mehrport vermittlungsanlage (multi-switch) kontrollieren zu können
DE602004004364T2 (de) Schicht 2 Netzwerk mit VPLS
DE602005006035T2 (de) Vorrichtung und Verfahren zur Bearbeitung von Rahmen mit multiprotokollverwendungsfeldern für ein Kommunikationsnetzwerk
EP1629642A1 (de) Verfahren für eine Verkehrsverteilung mittels Hash-Codes entsprechend einer Soll-Verkehrsverteilung in einem paketorientierten Netz mit Mehrwege-Routing
DE60035836T2 (de) Dynamische Burst-Zusammenstellung basiert auf voll/teilweis gemeinsame Mehrfachübertragungsentitäten
DE60309611T2 (de) Verfahren und Vorrichtung zur Verarbeitung von Datenpaketen
DE69925599T2 (de) Kommunikationsnetz oder ip-netz mit einem paketklassifizierer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition