-
GEBIET DER
ERFINDUNG
-
Diese
Erfindung bezieht sich im Allgemeinen auf das Gebiet von Computersystemen.
Genauer gesagt, betrifft die vorliegende Erfindung verteilte Netzwerke,
und Verfahren und Systeme zum Befähigen von Netzwerkknoten, dass
sie unzulässige
Paketübermittlungen
in einem Netzwerk identifizieren und verwerfen, einschließlich einer
eventuell großen
Anzahl von anhängigen
Netzwerkanfragen zwischen einer großen Anzahl von Anfragenden
und Antwortenden.
-
HINTERGRUND
DER ERFINDUNG
-
Es
gibt einen allgemeinen Bedarf zum Implementieren von Netzwerkprotokollen,
um die schädlichen
Effekte von unerlaubten (gefälschten,
fehlerhaften, korrupten) Messages (Nachrichten), die in einem Netzwerk übermittelt
werden, zu erkennen und zu reduzieren. Solche Messages sind in der
Vergangenheit durch, z. B., Firewalls behandelt worden, die Statusinformationen
speichern, die sich auf Anfragen und Blockantworten und/oder andere
Messages aus einem Netzwerk, die im Widerspruch zu den Statusinformationen
stehen, beziehen.
-
Es
wird auch angemerkt, dass viele Netzwerke Übertragungsprotokolle einbeziehen,
wobei Netzwerkknoten Messages zwischen einem anfragenden Knoten
und einem Antwortknoten verbreiten. In solchen Netzwerken erstellt
der anfragende Knoten eine Anfragemessage, die durch einen oder
mehrere Knoten innerhalb des Netzwerks empfangen und anschließend weitergeleitet
wird. Die Netzwerkknoten geben die Anfrage zu einem oder mehreren
anderen Knoten weiter, bis die Anfrage den antwortenden Knoten erreicht.
Der antwortende Knoten formuliert und übermittelt daraufhin eine Antwort
zu dem anfragenden Knoten über
einen oder mehrere Zwischenknoten (dazwischenliegende Knoten – intermediate nodes).
-
Zwischenknoten
variieren in ihrem Grad der Teilnahme an Netzwerkprotokollen. Manche
leiten Anfragen lediglich weiter, ohne irgendeine Intelligenz anzuwenden.
In bestimmten Netzwerktypen (z. B. Peer-to-Peer) ist es jedoch für solche
Zwischenknoten wünschenswert, übermittelte
Informationen innerhalb der Pakete, die durch die Knoten geleitet werden,
zu filtern/lesen und Informationen, die in den Paketen enthalten
sind, in ihre Datenspeicher einzubeziehen. Ein Beispiel eines Protokolls,
das auf Netzwerken ausgeführt
wird, das Zwischenknoten allgemein einsetzt, um Anfragen an einen
antwortenden Netzwerkknoten weiterzugeben, und wobei die Zwischenknoten
ausgewählte
Informationen innerhalb bestimmter weitergeleiteter Pakete (z. B.
Namensauflistungsantworten) einbeziehen, ist das Peer-to-Peer-Namensauflösungsprotokoll (peer-to-peer
Name Resolution Protocol – PNRP).
-
PNRP
ermöglicht
das Auflösen
einer eindeutigen 256-Bit-PNRP-Identifkation, die in eine Anfrage nach
einer bestimmten Internetprotokolladresse (IP-Adresse) und -Port,
die in einem Antwortpaket enthalten ist, das zu dem Absender der
Anfrage zurückgeschickt
wird, eingebettet ist. PNRP verwendet keine zentrale Autorität (authority),
sondern verlässt sich
eher auf mehrere, dezentralisierte Namensauflösungsautoritäten, um
IP-Adressantworten
auf PNRP-Anfragen bereitzustellen. Ein Absender einer Anfrage gibt
eine Namens-(ID)-Auflösungsanfrage
an einen oder mehrere Zwischenknoten weiter, die wiederum die Anfrage
(in einem ausgehenden Paket eingebettet) an eine Namensauflösungseinrichtung
propagieren. Eine von möglicherweise
vielen Namenauflösungseinrichtungen
in dem Netzwerk ermittelt eine entsprechende IP-Adresse und -Port.
Die entsprechende IP-Adresse und -Port werden in eine Antwortmessage
(in ein eingehendes Paket eingebettet) platziert, die an den Absender
der Anfrage über
möglicherweise
einen oder mehrere der "überwachenden" Zwischenknoten zurückgegeben
wird. Gemäß PNRP ist
es Netzwerkeinheiten (einschließlich
Clients auf Zwischenknoten) erlaubt, nach veröffentlichten Namens-/Adress-Paarungsinformationsübermittlungen
(z. B. Benennungsantworten (naming responses)) in dem Netzwerk zu
lauschen (to listen). Solch eine Namens-/Adressinformationsverbreitung erhöht die Wahrscheinlichkeit,
die Adresse/Port einer benannten Einheit zu einer späteren Zeit
erfolgreich zu lokalisieren. Insbesondere in einer PNRP-Umgebung
erlangen Netzwerkclients durch das Lesen von Namensauflösungsantworten,
die durch einen Knoten, die den Netzwerkclient enthalten, empfangen wurden,
Adresskenntnisse. Weil es keine zentralisierte Autorität gibt,
ist es für
die Knoten wichtig, genaue Namens-/Adressinformationen zu pflegen.
-
Das
Verfahren zur Aquisition von Netzwerk-Namens-/Adresskenntnissen,
das oberhalb für eine
Peer-to-Peer-Netzwerknamensauflösungsumgebung
beschrieben wurde, setzt jedoch Clients im Überwachungsmodus (listening
clients) auf den Netzwerkknoten der Kontaminierung ihrer Namens-/Adressauflösungsinformationen
durch Netzwerkeinheiten aus, die Namensauflösungsantworten publizieren,
die falsche/ungenaue Adressinformationen enthalten. Solche falschen
Informationen werden dann in dem Namenauflösungsdatenspeicherplatz der
Netzwerkclients im Überwachungsmodus gespeichert,
wenn solche Clients ihre Namens-/Adressinformationen gemäß der unerbetenen/falschen
Namensantworten aktualisieren. Solche eine Verwundbarkeit für falsche
Ant worten stellt ein hohes Maß an
Risiko für
Netzwerke dar, die es erlauben, einen Namensauflösungszwischenspeicher auf einen
Zwischenknoten durch das Überwachen (Horchen)
von Namensantwortpaketen aufzubauen.
-
Es
ist für
Firewalls und andere Paketfiltermechanismen bekannt, Statusinformationen
zu untersuchen, wenn ein Paket zunächst übermittelt wird. Zusätzlich zu
der Ermittlung, ob die Übermittlung
des Pakets blockiert werden soll, behalten die Paketfiltermechanismen
die Statusinformationen zum Zweck des Verarbeitens von nachfolgenden
Antworten, um sicherzustellen, dass sie autorisiert sind. Paketfilterung,
die Statusinformationen verwendet, stellt natürlich eine Belastung für den Computerknoten
dar, der solche Maßnahmen
implementiert. Besonders das Erzeugen, Speichern und Entfernen von
Statusinformationen wird aufwändig
und eine potenziell signifikante Last für die Systemressourcen, wenn
Tausende von solchen Stati gleichzeitig durch einen Netzwerkknoten
geführt
werden.
-
Tripunitara
M.V. und andere "A
Middleware Approach to Asynchronous and Backward Compatible Detection
and Prevention of ARP Cache Poisoning", Computer Security Application Conference 1999,
IEEE Comput. Soc., 6. Dezember 1999, Seiten 303 bis 309, beziehen
sich auf das Erkennen und das Verhindern des Vergiftens eines Adressauflösungsprotokoll-Zwischenspeichers
(ARP-Cache), welches die Tat eines böswilligen Host in einem LAN
ist, und des Einbringens einer gefälschten IP-zu-Ethernet-Adresszuordnung in
den ARP-Zwischenspeicher eines anderen Host. Die Anordnungsüberlegungen schließen eine
bevorzugte Middleware-Lösung
ein, durch welche manche Komponenten, ohne irgendeine Veränderung
an existierenden Komponenten, in die Netzwerkuntersysteme eingeführt werden.
Es gibt vier Ereignisse von möglichem
Interesse: Empfangen einer ARP-Anfrage, Empfangen einer ARP-Antwort,
Senden einer Anfrage und Senden einer Antwort. Des Weiteren führt ein "Zwischenspeichervergiftungsüberprüfer"-Modul ("cache posoning checker" – CPC) zwei Warteschlangen
(queues) mit IP-Adressen, Warteschlange für angefragte (requestedQ) und
Warteschlange für
Antworten (respondedQ). Die Ziel-IP-Adresse einer ARP-Anfrage wird in
der requestedQ aufgezeichnet, welche anschließend daraufhin überprüft wird,
ob eine Anfrage für eine
IP-Adresse einer Antwort aussteht. Der Eintrag, der der Anfrage
entspricht, wird von der requestedQ zu der respondedQ verschoben.
Wenn kein Eintrag in der requestedQ gefunden wird, der einer Antwort entspricht,
wird es des Weiteren ermittelt, ob eine Antwort unerbeten oder doppelt
ist, darauf basierend, ob eine Anfrage entsprechend dieser Antwort
in der respondedQ ist oder nicht.
-
US-B-6
219 706 bezieht sich auf Netzwerkfirewalls, die dynamische Zugriffskontrolllisten
haben, die Zugriffskriterien führen.
Diese Listen können Netzwerk-
und Transport-Layer-Informationen
enthalten, wie z. B. Adressen und Ports für zulässige Quell- und Zielpaare.
Ein beschriebener Ansatz zeigt, wie Zugriffskontrollelemente basierend
auf dem Kontext einer Anwendungs-Konversation dynamisch erzeugt
und entfernt werden können.
Im Einzelnen wird eine Anwendung, die mit einem empfangenen Paket
verbunden ist, identifiziert, und es wird ermittelt, ob das empfangene
Paket eine vordefinierte Quell- oder Zieladresse oder -Port besitzt.
Eine weitere Ermittlung findet statt, ob die Ladung (payload) des
Pakets auch untersucht werden soll. Dieser letzte Prozess kann auch
das Ermitteln einschließen, ob
ein zusätzlicher
Kanal einer unbekannten Portnummer geöffnet werden kann. Zum Beispiel
ist die Verbindung ein FTP-Kontrollkanal oder ein H.323-Kanal. Deshalb werden
Kanäle
durch die Firewall basierend auf den Kenntnissen über den
Typ der Anwendung und des Protokolls (Kontext), die in der Konversation
eingesetzt werden, die einen Knoten in dem lokalen Netzwerk involviert,
dynamisch zugewiesen.
-
Frantzen
M. und andere, "A
Framework for Understanding Vulnerabilities in Firewalls Using a Dataflow
Model of Firewall Internats",
Computers & Security,
Elsevier Science Publishers, Amsterdam, NL, Vol. 20, Nr. 3, 1. Mai
2001, Seiten 263 bis 270, bezieht sich auf die Verletzbarkeiten
in Firewalls unter Verwendung eines Datenflussmodells von Firewalleinbauten
(firewall internals), und beschreibt unter anderem die Link-Layer-Filterung und einen
dynamischen Regelsatz. Eine Firewall mit Link-Layer-Filterungsvermögen kann
eine bestimmte IP-Adresse auf eine spezifische Hardwareadresse arretieren (lock),
welches ein potenziell sehr vorteilhaftes Merkmal angesichts der
konstanten Bedrohung durch veralberte (spoofed) Adressen ist. Die
nächste
Stufe in der Behandlung eingehender Pakete ist das Anwenden des
dynamischen Regelsatzes (alias: die Statustabelle), welche dazu
dient, jedes Paket mit seinem entsprechenden Verbindungsstrom zu
assoziieren. Wenn eine Firewall ein Paket durchschleust, generiert
sie einen Eintrag in der Statustabelle. Wenn zukünftige Pakete in dem Strom
ankommen und durch den Eintrag in der Tabelle in Übereinstimmung sind,
können
sie alle nachfolgenden Filterungsregeln umgehen. Es wird des Weiteren
beschrieben, dass eine Firewall im Allgemeinen die Statustabelle
als eine Hashtabelle implementiert, welche sehr schnell ist, aber
auf der anderen Seite die Tabelle mit fester Größe somit ein erstklassiger
Kandidat für
eine Ressourcen-Entkräftungs-Attacke
(resource starvation attack) ist. Deshalb wird es vorgeschlagen,
Kollisionsketten (collision chains) zu verwenden. Jeder Eintrag
in der Hashtabelle zeigt auf eine verknüpfte Liste mit Tabelleneinträgen, die
alle zu diesem Ort einen Hash bilden (hash to that location). Sofern
nicht jeglicher verfügbare Speicher
verbraucht ist, kann die Tabelle nicht durch einen Angreifer physisch
gefüllt
werden. Des Weiteren muss jedes neue Paket, das empfangen wird,
das zu derselben Kette einen Hash bildet (hashes), gegen die gesamte
Kette verglichen werden, bevor die Firewall weiß, dass das Paket nicht ein
Mitglied irgendeines Statustabelleneintrags ist.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist die Aufgabe der Erfindung, ein effektives Verfahren und System
zum Schützen
eines Namensauflösungszwischenspeichers
bereitzustellen.
-
Diese
Aufgabe wird durch die Erfindung, wie in den unabhängigen Ansprüchen beansprucht,
gelöst.
-
Bevorzugte
Ausführungsformen
werden durch die abhängigen
Ansprüche
definiert.
-
Die
vorliegende Erfindung umfasst ein Verfahren und System zum Abgleichen
eingehender Pakete mit vorher weitergeleiteten ausgehenden Paketen
innerhalb eines Netzwerkknotens. Das/die hier offenbarte Verfahren
und Vorrichtung stellt sicher, dass eine Antwortmessage, die durch
einen Netzwerkknoten empfangen wird, einer vorher weitergeleiteten
Anfragemessage entspricht. Der Netzwerkknoten, der eine Zuordnungsfunktion
(z. B. Hash) einschließt,
empfängt
ein ausgehendes Paket, einschließlich Statusinformationen.
Der Netzwerkknoten berechnet einen Zuordnungsfunktionswert (mapping function
value) basierend auf den Statusinformationen. Danach setzt der Netzwerkknoten
einen Eintrag in einer Bitmap auf einer Position, die dem Wert entspricht.
Der Netzwerkknoten empfängt
auch ein eingehendes Paket, von dem behauptet wird, dass es eine
Reaktion auf ein vorher ausgehendes Paket ist. Das eingehende Paket
schließt
Statusinformationen von einem Typ entsprechend den Statusinformationen
eines ausgehenden Pakets ein. Der Netzwerkknoten berechnet einen
Zuordnungsfunktionswert basierend auf den Statusinformationen in
dem eingehenden Paket. Der Netzwerkknoten testet anschließend einen
Eintrag entsprechend dem Zuordnungsfunktionswert in einer oder mehreren
Bitmaps, die Bits einschließen,
die an Positionen entsprechend vorher weitergeleiteten ausgehenden
Paketen gesetzt sind. Wenn das entsprechende Bit nicht in mindestens
einer der Bitmaps gesetzt ist, verwirft der Netzwerkknoten dann
das entsprechende Paket. Letztendlich, um eine relativ spärliche Bitmap
zu führen,
werden die Einträge
nach dem Erkennen eines Löschungsschwellenwertereignisses
zurückgesetzt.
-
Es
wird angemerkt, dass die vorliegende Erfindung in einen Netzwerkknoten
(z. B. einen Netzwerkzwischenknoten) eingebaut worden ist, um die Verbreitung
von unerbetenen (gefälschten)
eingehenden Paketen, die durch einen schurkenhaften (rogue) Versender übermittelt
wurden, zu blocken, die möglicherweise
Namens-/Adressauflösungszwischenspeicher
kontaminieren und/oder Netzwerkressourcen durch die Verbreitung
und Verarbeitung nutzloser Informationen zuschnüren. Die vorliegende Erfindung
ist jedoch basierend auf dem Abgleichen von Anfragen und Antworten
durch eine Zuordnungsfunktion und eine oder mehrere Bitmaps, die
gesetzte Einträge
entsprechend zugeordneten Paketstatuswerten einschließen, auf
eine Vielfalt von anderen Diensten anwendbar, die durch einen zwischenliegenden
Knoten (intermediate node) in einem Netzwerk ausgeführt werden.
Zum Beispiel ist die auf Übereinstimmung
basierende Filterfunktion auf ein Datenpaket-Verteilungs-/-Filterungsverfahren
anwendbar, wobei eine Reihe von zwischenliegenden Knoten (z. B.
Firewalls) empfangene Antwortpakete filtern, so dass nur der Zwischenknoten,
der vorher eine Anfrage (wie in der Bitmap nachgewiesen) weitergab,
eine nachfolgend empfangene Antwort weiterleiten wird.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Während die
anhängigen
Ansprüche
die Merkmale der vorliegenden Erfindung mit Genauigkeit darlegen,
kann die Erfindung zusammen mit ihren Aufgaben und Vorteilen am
Besten von der nachfolgenden detaillierten Beschreibung in Verbindung mit
den angefügten
Zeichnungen verstanden werden, von denen:
-
1 eine
vereinfachte schematische Darstellung einer Computergerätearchitektur
eines Computergerätes
ist, auf welchem Ausführungsformen der
Erfindung ausgeführt
werden können;
-
2 ein
Diagramm eines exemplarischen Teils einer Netzwerkumgebung ist,
in der die Erfindung eingesetzt wird;
-
3 ein
schematisches Diagramm ist, das die primären funktionellen Komponenten
eines zwischenliegenden Netzwerkknotens, der Sicherheitsmaßnahmen
einbezieht, die die vorliegende Erfindung ausdrücken, bildlich darstellt;
-
4 ein
schematisches Diagramm einer alternativen Bitmapanordnung ist, die
eine gewünschte variable
Verzögerung
unterstützt;
-
5 ein
Flussdiagramm ist, das die Paketübereinstimmungsfunktion
zusammenfasst, die durch einen Netzwerkknoten gemäß einer
Ausführungsform
der vorliegenden Erfindung ausgeführt wird; und
-
6 ein
Flussdiagramm ist, das die Schritte zum Führen von relativ spärlichen
Bitmapstrukturen zum Ausführen
der Übereinstimmungsfunktionalität gemäß einer
Ausführungsform
der vorliegenden Erfindung zusammenfasst.
-
DETAILLIERTE
BESCHREIBUNG DER ZEICHNUNGEN
-
Gemäß einer
exemplarischen Ausführungsform
der Erfindung, die hier unterhalb beschrieben ist, wird ein Verfahren
und eine Netzwerksicherheitskomponente innerhalb eines Netzwerkknotens
offenbart, die möglicherweise
zum Erkennen eines großen Prozentsatzes
von falschen (hereinlegenden) Antworten geeignet sind. Die Sicherheitskomponente schließt eine
Zuordnungsfunktion (z. B. Hash) ein, die basierend auf Statusinformationen,
die in einem ausgehenden (z. B. Anfrage, anfängliches "SYN", etc.)
Paket enthalten sind, welches durch den Netzwerkknoten empfangen
wurde, einen zugeordneten Wert zwischen 0 und N-1 (z. B. 0 bis 220-1) wiedergibt. Der zugeordnete Wert ermittelt
eine Position, die in einer Bitmap gesetzt ist, die N Einträge umfasst. Die
gesetzte Position entspricht somit dem ausgehenden Paket. Die illustrative
Ausführungsform
enthält
auch einen Mechanismus zum Löschen
der Bitmaps nach dem Erreichen eines Schwellenwertereignisses (z.
B. dem Ablaufen einer Zeitspanne).
-
Des
Weiteren schliesst in einer beispielhaften Ausführungsform der Erfindung die
Netzwerksicherheitskomponente auch eine aktuelle Bitmap und eine
letztere (recent) Bitmap ein. Jede Bitmap enthält N Einträge. Jedes Mal, wenn die Sicherheitskomponente
einen Zuordnungsfunktionswert von den Statusinformationen berechnet,
die in einem ausgehenden Paket bereitgestellt sind (genauso wie
in einem reagierenden (responsive) eingehenden Paket), wird ein Bitmapeintrag
entsprechend dem Zuordnungsfunktionswert in der aktuellen Bitmap
aktualisiert (z. B. gesetzt), um die ausstehende Anfrage wiederzuspiegeln.
In der exemplarischen Ausführungsform
werden Inhalte der aktuellen Bitmap von der aktuellen Bitmap zu
der letzteren Bitmap verschoben, wenn ein Schwellenwertereignis
entdeckt wird (z. B. ein Zeitspannenzeitnehmer läuft ab). Die letztere Bitmap
ermöglicht
es durch das Führen
des Status der aktuellen Bitmap für eine volle Periode, die aktuelle
Bitmap periodisch zu löschen,
während
es sichergestellt ist, dass jeder gesetzte Bitmapeintrag in den
Bitmaps für eingehende
Paketfilterung für
eine Zeitspanne zwischen Schwellenwertereignissen dargestellt wird.
-
Wenn
der Netzwerkknoten ein eingehendes Paket (z. B. Antwort, SYN-ACK,
etc.) empfängt,
das behauptet, einem vorher übermittelten
ausgehenden Paket zu entsprechen, wendet die Sicherheitskomponente
die Zuordnungsfunktion auf Statusinformation in dem eingehenden
Paket an. Wenn die eingehenden Paketinformationen einem vorher ausgehenden Paket
entsprechen, das durch den Netzwerkknoten weitergeleitet wurde,
dann wird das Anwenden der Zuordnungsfunktion auf Statusinformation
in dem eingehenden Paket einen Wert wiedergeben, der einen vorher
gesetzten Eintrag in entweder der ak tuellen oder letzteren Bitmaps
entsprechen – vorausgesetzt
die Antwort war nicht zu sehr verzögert und das entsprechende
gesetzte Bit ist von den Bitmaps gelöscht worden. Wenn die Sicherheitskomponente
ermittelt, dass der Zuordnungsfunktionswert (z. B. Hash) des eingehenden
Pakets einem gesetzten Bit in einer der eingehenden Paketfilterungsbits
entspricht, dann wird das Paket verarbeitet. Andernfalls, wenn das
entsprechende Bit nicht in den Paketfilterungsbitmaps gesetzt ist,
dann wird das eingehende Paket verworfen.
-
Die
Sicherheitskomponente arbeitet im Zusammenhang mit anderen Komponenten,
die wie oben erwähnt
auf dem Netzwerkknoten ausgeführt werden,
wie z. B. einem Namens- oder
Adressauflösungszwischenspeicher
und Paketweiterleitungsfunktionen. Diese zusätzlichen Komponenten sind lediglich
illustrative Beispiele von Anwendungen, deren Leistung möglicherweise
von dem Schutz profitiert, der durch die Sicherheitskomponente bereitgestellt wird,
die hier oberhalb als Beispiel mit Bezug auf die Zeichnungen offenbart
wird.
-
Als
Beispiel in dem Kontext eines Knotens, der einen PNRP-Client einschließt, wenn
eine Bitmapeintragsübereinstimmung
für einen
Zuordnungsfunktionswert (z. B. Hash) für Statusinformationen in einem
Namensauflösungsantwortpaket
entweder innerhalb der aktuellen oder letzteren Bitmaps identifiziert
wird, dann ist die Antwort wahrscheinlich eine gültige Antwort auf eine vorher
ausgestellte Namensauflösungsanfrage.
Daher verarbeitet der Knoten das empfangene Paket. Solch eine Verarbeitung schließt mindestens
das Weiterleiten des Paketes ein. In einer Ausführungsform der Erfindung, wenn der
zwischenliegende Knoten selbst einen Namensauflösungszwischenspeicher unterhält, dann
wird eine weitere Verarbeitung ausgeführt, um möglicherweise die Namensauflösungsinformationen,
die in dem Antwortpaket enthalten sind, zu einem Namens-/Adresszwischenspeicher,
der durch den zwischenliegenden Knoten unterhalten wird, hinzuzufügen. Wenn
der Zuordnungsfunktionswert für
die Statusinformationen des Antwortpakets nicht mit einem gesetzten
Eintrag in den Bitmaps übereinstimmt, dann
ist die Antwort unseriös
(entweder überschritt die
Antwort eine erwartete Antwortzeit oder ist eine hereinlegende Antwort
(spoofed response), mit der Absicht, den Namens-/Adresszwischenspeicher
des zwischenliegenden Knotens zu korumpieren), und das verdächtige Paket
wird verworfen.
-
Der
Erfolg der oben zusammengefassten Sicherheitsmaßnahmen ist stark abhängig von
einem Zuordnungsfunktionswert des hereinlegenden Antwortpakets,
das in einem hohen Prozentsatz der Fälle nicht einem gesetzten Eintrag
innerhalb der Bitmaps entspricht, die ein Anfragepaket repräsentieren,
das vorher durch den zwischenliegenden Knoten weitergeleitet wurde.
Die aktuelle Bitmap wird zwangsläufig über eine
Zeitspanne hinweg mehr mit gesetzten Bits bestückt, die Anfragepaketen entsprechen,
die durch den Knoten weitergeleitet wurden. Die Wahrscheinlichkeit,
dass ein Zuordnungsfunktionswert für ein hereinlegendes Paket
mit einem gesetzten Bit in den Bitmaps übereinstimmt, nimmt zu, während der
Prozentsatz der gesetzten Bits innerhalb der Bitmaps zunimmt. Um
sicherzustellen, dass die Bitmap relativ spärlich bleibt (und eine Manipulation
schwieriger macht), werden die Inhalte der aktuellen Bitmap nach
einer Zeitspanne gelöscht.
Diese Zeitspanne ist ein Wert, der möglicherweise gemäß einer
Anzahl von Faktoren ausgewählt
wird, die z. B einschließen:
das Level an Datenverkehr durch den Knoten, den Grad an gewünschter
Sicherheit, dass eine manipulierte Antwort entdeckt wird, und den
Bereich und die Häufigkeit
für verschiedene
Verzögerungszeiten
für einen
Knoten, der eingehende Pakete als Antwort auf vorher weitergeleitete
ausgehende Anfragen empfängt.
-
Letztendlich
wird der Bitmapeintrag, der einem ausgehenden Paket entspricht,
dass gerade vor dem Ende einer Zeitspanne zum Löschen der aktuellen Bitmap
verarbeitet wurde, von der aktuellen Bitmap gelöscht, ohne eine angemessene
Zeit zum Empfangen einer Antwort zu bieten. Ein rechtmäßiges eingehendes
Antwortpaket wird wahrscheinlich zurückgewiesen, weil der aktuelle
Bitmapeintrag gelöscht
wurde, nachdem der Knoten das ausgehende Paket weitergeleitet hatte.
In einer Ausführungsform der
Erfindung, um sicherzustellen, dass alle ausgehenden Pakete in den
Zuordnungsfunktionsbitmaps mindestens für eine bestimmte minimale Zeit
repräsentiert
werden (z. B. die Auffrischungszeitspanne für die aktuelle Bitmap), erlangt
die letztere Bitmap den Inhalt der aktuellen Bitmap im Zusammenhang
mit dem Löschen
der aktuellen Bitmap am Ende der Zeitspanne.
-
Obwohl
nicht erforderlich, implementiert in einer Ausführungsform der vorliegenden
Erfindung ein Computer die oben zusammengefasste Funktionalität durch
das Ausführen
von Softwareinstruktionen, z. B. Programmmodulen. Im Allgemeinen
enthalten Programmmodule Routinen, Objekte, Komponenten, Datenstrukturen
und Ähnliches,
die es erlauben, bestimmte Aufgaben auszuführen oder bestimmte abstrakte
Datentypen zu implementieren. Der Begriff "Programm" schließt ein oder mehrere Programmmodule
ein. Es wird auch erwähnt,
dass die Funktionen, die gemäß der vorliegenden
Erfindung ausgeführt
werden, aufgrund ihrer relativen Einfachheit, auch für die Implementierung
in Software, Firmware und/oder Hardware (ausschließlich oder
in irgendeiner Kombination davon) geeignet sind.
-
Bezug
nehmend auf 1 schließt ein exemplarisches System
zum Implementieren der Funktionalität eines zwischenliegenden Knotens
ein Computergerät,
wie z. B. Computer 110, ein. In dem exemplarischen System
wird die Erfindung durch Software durchgeführt, die auf dem Computer 110 ausgeführt wird.
Die vorliegende Erfindung ist jedoch zugänglich zu alternativen Formen,
wobei ihre Funktionalität
als eine Kombination von Hardware, Firmware und/oder Software auf
Computergeräten
durchgeführt
wird, die verschiedene Grade von Computer-/Datenübertragungsressourcen haben.
-
1 stellt
ein Beispiel einer geeigneten Arbeitsumgebung 100 bildlich
dar, in der die Erfindung implementiert wird. Spezieller gesagt, 1 stellt
ein Computersystem bildlich dar, das im Stande ist, die Funktionalität des Anfrage-/Antwort-Paketzuordnungsverfahrens
und der Sicherheitskomponente einzubeziehen und auszuführen, die
hier unterhalb im Detail als Beispiel beschrieben wird.
-
Die
Arbeitsumgebung 100 ist nur ein Beispiel einer passenden
Arbeitsumgebung und ist nicht gedacht, irgendeine Einschränkung bezüglich des
Umfangs der Verwendung oder Funktionalität der Erfindung vorzuschlagen.
Die Erfindung ist betriebsbereit mit einer Anzahl anderer Allzweck-
oder Spezialzweckcomputersystemumgebungen oder -konfigurationen.
Beispiele von gut bekannten Computersystemen, -umgebungen und/oder
-konfigurationen, die für
die Verwendung mit der Erfindung geeignet sind, schließen entweder
alleine oder in Kombination ein, sind aber nicht darauf beschränkt, Personalcomputer,
Servercomputer, Handheld- oder Laptopgeräte, Multiprozessorsysteme,
Mikroprozessorbasierte Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik,
Netzwerk-PCs, Minicomputer, Mainframecomputer,
verteilte Computerumgebungen, die irgendeines der oben genannten
Systeme oder Geräte
einschließen,
und Ähnliches.
-
Die
Erfindung kann im allgemeinen Kontext von Computer-lesbaren Instruktionen
beschrieben werden, wie z. B. Programmmodule, die durch einen Computer
ausgeführt
werden. Im Allgemeinen schließen
Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen,
etc. ein, die bestimmte Funktionen ausführen oder bestimmte abstrakte
Datentypen implementieren. Die Erfindung ist möglicherweise in einem Netzwerkknoten
eingebaut, der in einer verteilten Computerumgebung arbeitet, wo
Aufgaben durch Remote-verarbeitende Geräte ausgeführt werden, die durch ein Datenübertragungsnetzwerk
verbunden werden. In einer verteilten Computerumgebung sind Programmmodule
im Allgemeinen sowohl auf lokalen als auch Remotecomputerspeicherdatenträgern gelagert,
einschließlich Datenspeichergeräten.
-
Mit
weiterführendem
Bezug auf 1 schließt ein beispielhaftes System
zum Implementieren der Erfindung ein Allzweckcomputergerät in der Form
eines Computers 110 ein. Komponenten des Computers 110 können einschließen, sind
aber nicht darauf beschränkt,
eine Prozessoreinheit 120, ein Systemspeicher 130 und
ein Systembus 121, der verschiedene Systemkomponenten koppelt,
einschließlich
dem Systemspeicher mit der Prozessoreinheit 120. Der Systembus 121 kann
irgendeiner von verschiedenen Busstrukturtypen sein, einschließlich einem
Speicherbus oder Speichercontroller, einem Peripheriebus und einem
lokalen Bus, der irgendeine einer Vielfalt von Busarchitekturen
verwendet. Als Beispiel, und nicht Einschränkung, schließen solche
Architekturen einen Industry-Standard-Architecture-Bus (ISA-Bus),
Micro-Channel-Architecture-Bus (MCA-Bus), Enhanced-ISA-Bus (EISA-Bus), Video-Electronics-Standards-Association-Local-Bus (VESA-Local-Bus),
und Peripheral-Component-Interconnect-Bus (PCI-Bus), ebenso bekannt
als Mezzanine-Bus, ein.
-
Der
Computer 110 schließt üblicherweise eine
Vielfalt von Computerlesbaren Datenträgern ein. Computerlesbare Datenträger können irgendwelche verfügbaren Datenträger sein,
auf die durch den Computer 110 zugegriffen werden kann,
und schließt sowohl
flüchtige
als auch nicht-flüchtige
Datenträger, entfernbare
und nicht-entfernbare Datenträger
ein. Als Beispiel, und nicht Eingrenzung, können computerlesbare Datenträger Computerspeicherdatenträger und
Datenübertragungsmedien
einschließen. Computerspeicherdatenträger schließen sowohl flüchtige und
nicht-flüchtige,
entfernbare und nicht-entfernbare Datenträger ein, die mit irgendeinem
Verfahren oder Technologie für
die Speicherung von Informationen, wie z. B. computerlesbare Instruktionen,
Datenstrukturen, Programmmodule oder andere Daten, implementiert
sind. Computerspeicherdatenträger
schließen
ein, sind aber nicht darauf begrenzt, RAM, ROM, EEPROM, Flashmemory
oder andere Speichertechnologie, CD-ROM, Digital Versatile Disks
(DVD) oder andere optische Diskspeicher, magnetische Kassetten,
magnetische Bänder, magnetische
Diskspeicher oder andere magnetische Speichergeräte, oder irgendein anderes
Medium, welches zum Speichern der gewünschten Informationen verwendet
werden kann, und auf welches durch den Computer 110 zugegriffen
werden kann. Datenübertragungsmedien
verkörpern üblicherweise
computerlesbare Instruktionen, Datenstrukturen, Programmmodule oder
andere Daten in einem modulierten Datensignal, wie z. B. einer Übertragungswelle oder
anderen Transportmechanismus, und schließen irgendwelche Informationsliefermedien
ein. Der Begriff "moduliertes
Datensignal" meint
ein Signal, das eine oder mehrere seiner Charakteristiken in solch
einer Weise gesetzt oder geändert
hat, um Information in ein Signal zu kodieren. Als Beispiel, und
nicht Ein schränkung,
schließen
Datenübertragungsmedien Kabelmedien,
wie z. B. ein Kabelnetzwerk oder direkte Kabelverbindung, und kabellose
Medien, wie z. B. Akustik, RF, Infrarot und andere kabellose Medien, ein.
Kombinationen von irgendwelchen der oben Genannten sollten ebenso
in dem Umfang der computerlesbaren Datenträger enthalten sein.
-
Der
Systemspeicher 130 schließt Computerspeichermedien in
der Form von flüchtigem
und/oder nicht-flüchtigem
Speicher ein, z. B. Read Only Memory (ROM) 131 und Random
Access Memory (RAM) 132. Ein Basic-Input/Output-System 133 (BIOS),
das die Basisroutinen enthält,
die helfen, Informationen zwischen den Elementen innerhalb des Computers 110 zu übertragen,
wie z. B. während
des Hochfahrens, ist üblicherweise
in dem ROM 131 gespeichert. Der RAM 132 enthält üblicherweise
Daten und/oder Programmmodule, auf die sofort durch die Prozessoreinheit 120 zugegriffen
werden kann und/oder auf denen derzeit durch die Prozessoreinheit 120 gearbeitet
wird. Als Beispiel, und nicht Einschränkung, stellt 1 ein
Betriebssystem 134, Anwendungsprogramme 135, andere
Programmmodule 136 und Programmdaten 137 dar.
-
Der
Computer 110 kann auch andere entfernbare/nicht-entfernbare,
flüchtige/nicht-flüchtige Computerspeicherdatenträger einschließen. Nur
als Beispiel stellt 1 ein Festplattenlaufwerk 141,
das liest oder schreibt von/zu nicht-entfernbaren, nichtflüchtigen
magnetischen Datenträgern,
ein magnetisches Disklaufwerk 151, das liest oder schreibt von/zu
einer entfernbaren, nicht-flüchtigen
magnetischen Disk 152, und ein optisches Disklaufwerk 155, das
liest oder schreibt von/zu einer entfernbaren, nichtflüchtigen
optischen Disk 156, wie z. B. einer CD-ROM oder anderem
optischen Datenträger,
dar. Andere entfernbare/nicht-entfernbare, flüchtige/nicht-flüchtige Computerspeicherdatenträger, die in
der exemplarischen Arbeitsumgebung verwendet werden können, schließen ein,
sind aber nicht darauf begrenzt, magnetische Bandkassetten, Flash-Memory-Karten, Digital
Versatile Disks, digitale Videobänder,
Solid State RAM, Solid State ROM, und Ähnliches. Das Festplattenlaufwerk 141 ist üblicherweise mit
dem Systembus 121 durch eine Schnittstelle für nicht-entfernbaren
Speicher, wie z. B. Schnittstelle 140, verbunden, und das
magnetische Disklaufwerk 151 und optische Disklaufwerk 155 sind üblicherweise
mit dem Systembus 121 durch eine Schnittstelle für entfernbaren
Speicher, wie z. B. Schnittstelle 150, verbunden.
-
Die
Laufwerke und ihre zugehörigen
Computerspeicherdatenträger,
die oberhalb diskutiert und in 1 dargestellt
wurden, stellen die Speicherung von computerlesbaren Instruktionen,
Datenstrukturen, Programmmodulen und anderen Daten für den Computer 110 bereit.
In 1 ist z. B. das Festplattenlaufwerk 141 so
dargestellt, dass es ein Betriebssystem 144, Anwendungsprogramme 145,
andere Programmmodule 146 und Programmdaten 147 speichert.
Es ist zu beachten, dass diese Komponenten entweder dieselben oder
verschieden von dem Betriebssystem 134, den Anwendungsprogrammen 135,
anderen Programmmodulen 136 und Programmdaten 137 sein
können.
Das Betriebssystem 144, Anwendungsprogramme 145,
andere Programmmodule 146 und Programmdaten 147 sind hier
unterschiedliche Nummern gegeben worden, um darzulegen, dass sie
mindestens verschiedene Kopien sind. Ein Benutzer kann Befehle und
Informationen in den Computer 20 durch Eingabegeräte, wie
z. B. eine Tastatur 162 und Zeigergerät 161, allgemein bezeichnet
als eine Maus, Trackball oder Touchpad, eingeben. Andere Eingabegeräte (nicht
gezeigt) können
ein Mikrofon, einen Joystick, ein Gamepad, eine Satellitenschüssel, einen
Scanner oder Ähnliches einschließen. Diese
und andere Eingabegeräte
sind oft mit der Prozessoreinheit 120 durch eine Benutzereingabeschnittstelle 160 verbunden,
die mit dem Systembus gekoppelt ist, aber auch durch eine andere
Schnittstelle und Busstrukturen, wie z. B. einem Parallelport, Gameport
oder Universal Serial Bus (USB) verbunden sein kann. Ein Monitor 191 oder andere
Typ von Anzeigegeräte
ist auch mit dem Systembus 120 über eine Schnittstelle, wie
z. B. einer Videoschnittstelle 190, verbunden. Zusätzlich zu
dem Monitor kann der Computer auch andere periphere Ausgabegeräte einschließen, wie
z. B. Lautsprecher 197 und Drucker 196, welche
durch eine Ausgangsperipherieschnittstelle 190 verbunden
sind.
-
Der
Computer 110 kann in einer Netzwerkumgebung unter Verwendung
von logischen Verbindungen zu einem oder mehreren Remotecomputern, wie
z. B. einem Remotecomputer 180, arbeiten. Der Remotecomputer 180 kann
ein Personalcomputer, ein Server, ein Router, ein Netzwerk-PC, ein Peer-Gerät oder anderer
bekannter Netzwerkknoten sein, und schließt üblicherweise viele oder alle
der oben mit Bezug auf Computer 110 beschriebenen Elemente
ein, obwohl nur ein Datenspeichergerät 181 in 1 dargestellt
worden ist. Die logischen Verbindungen, die in 1 gezeigt
sind, schließen ein
Local Area Network (LAN) 171 und ein Wide Area Network
(WAN) 173 ein, können
aber auch andere Netzwerke einschließen. Solche Netzwerkumgebungen
sind alltäglich
in Büros,
unternehmensweiten Computernetzwerken, Intranetz und dem Internet.
-
Wenn
er in einer LAN-Netzwerkumgebung verwendet wird, ist der Computer 110 mit
dem LAN 171 durch eine Netzwerkschnittstelle oder -adapter 170 verbunden.
Wenn er in einer WAN-Netzwerkumgebung verwendet wird, schließt der Computer 110 üblicherweise
ein Modem 172 oder andere Mittel zum Herstellen von Kommunikationen über das
WAN 173, wie z. B. dem Internet, ein. Das Modem 172,
welches intern oder extern sein kann, kann mit dem Systembus 121 über die
Benutzereingabeschnittstelle 160 oder anderen passenden
Mechanismus verbunden sein. In einer Netzwerkumgebung können Programmmodule,
die mit Bezug auf Computer 110 gezeigt sind, oder Teile
davon in dem Remotedatenspeichergerät gespeichert sein. Als Beispiel,
und nicht Einschränkung,
stellt 1 Remoteanwendungsprogramme 185 so dar,
dass sie auf dem Speichergerät 181 liegen.
Es wird begrüßt, dass
die gezeigten Netzwerkverbindungen exemplarisch sind und andere
Mittel zum Herstellen von Datenübertragungsverbindungen
zwischen den Computern verwendet werden können.
-
2 zeigt
schematisch ein exemplarisches Netzwerk, in dem eine Ausführungsform
der Erfindung eingesetzt wird. Weil die vorliegende Erfindung sich
nicht auf irgendeine bestimmte physikalische Netzwerktopologie bezieht,
stellen die Verbindungen zwischen den Netzwerkknoten Messages (Nachrichten)
dar, die ein oder mehr Pakete, die zwischen den Knoten weitergegeben
werden, umfassen.
-
In
dem bestimmten Beispiel übergibt
ein Ursprungsknoten 200 ein PNRP-Netzwerknamensauflösungsanfragepaket über die
Message 202 zu einem zwischenliegenden Knoten 204.
Der zwischenliegende Knoten 204 ermittelt, dass die Message 202 ein
ausgehendes Paket ist (eines, für
das eine Antwort erwartet wird). In einer Ausführungsform der Erfindung verarbeitet
der zwischenliegende Knoten 204 das ausgehende Paket durch:
(1) Anwenden einer Hash-(oder anderen passenden Zuordnungs-)Funktion
auf Statusinformation, die in dem ausgehenden Paket enthalten ist,
um einen Hash-(Zuordnungsfunktions-)Wert wiederzugeben, und anschließend (2)
das Setzen eines Bits in einer Bitmap, das dem Hash-(Zuordnungsfunktions-)Wert
entspricht, gemäß einem
Paketübereinstimmungsverfahren
zum Sicherstellen, dass nur rechtmäßige Antworten an den anfragenden
Knoten (z. B. Ursprungsknoten 200) zurückgegeben werden. Der zwischenliegende
Knoten 204 gibt die empfangene PNRP-Netzwerknamensauflösungsanfrage
zu dem Endknoten 206 und dem Endknoten 208 über die
Messages 210 bzw. 212 weiter. Die Messages 210 und 212 umfassen
Pakete, die die Statusinformation von der Message 202 einschließen. Es
ist zu beachten, dass in der hier beschriebenen illustrativen Ausführungsform
eine Hashfunktion verwendet wird, um einen Wert zu erstellen, der
ein bestimmtes Paket repräsentiert.
Die vorliegende Erfindung zieht jedoch das Anwenden einer großen Vielfalt
von Zuordnungsfunktionen (einschließlich Hashing) auf das Paket
gemäß alternativer
Ausführungsformen
in Erwägung.
-
Der
Endknoten 206 besitzt keinen Namensauflösungszwischenspeicher und ignoriert
deshalb die weitergeleitete Message 210. Der Endknoten 208 jedoch
besitzt tatsächlich einen
Namenszwischenspeicher, der die angefragte Namens-/Adressauflösungsinformation
einschließt.
Der Endknoten 208 gibt ein Namensauflösungsantwortpaket aus und schließt es in
eine Antwortmessage 214 ein, die an den zwischenliegenden
Knoten 204 gerichtet ist. Die Antwortmessage 214 schließt auch,
zusätzlich
zum Bereitstellen der angefragten Adressinformation entsprechend
dem Namen, der in der Originalanfrage von dem Knoten 200 identifiziert
wurde, die Statusinformation aus der Message 202, die in
der weitergeleiteten Message 212 repliziert wurde, ein.
-
Beim
Empfangen der Message 214 extrahiert der zwischenliegende
Knoten 204 die Statusinformation in dem eingehenden Paket,
das zugehörig zu
der Message 214 ist. Der zwischenliegende Knoten 204 führt die
Hashingfunktion auf die Statusinformation aus und überprüft, um zu
sehen, dass eine Position in der Bitmap, die eine Reihe von Bitpositionen
umfasst, die gesetzt wurden, wenn ausgehende Messages durch den
zwischenliegenden Knoten behandelt wurden, gesetzt ist, um sicherzustellen,
dass die Message 214 einer früheren Namensanfrage entspricht.
Gemäß einer
Ausführungsform
der vorliegenden Erfindung übergibt
der zwischenliegende Knoten 204 auf das Überprüfen hin,
dass eine entsprechende Bitmapposition tatsächlich gesetzt ist, eine PNRP-Auflösungsantwortmessage 216 an
den Ursprungsknoten 200. Weil der zwischenliegende Knoten 204 einen
PNRP-Namensauflösungszwischenspeicher
einschließt,
fügt der
zwischenliegende Knoten 204 des Weiteren die Namensauflösungsinformation,
die durch das eingehende Paket der Message 214 bereitgestellt
wird, zu seinen Namensauflösungsinformationen
hinzu.
-
Während eine
rechtmäßige Anfrage-/Antwort-Sequenz
beschrieben worden ist, besteht ein Risiko, dass ein Knoten (z.
B. Endknoten 220), der auf dem Netzwerk arbeitet, mit dem
Ausgeben eines Streams an falschen Namensauflösungsantworten mit einem Versuch
beginnt, die Namenszwischenspeicher der zwischenliegenden Knoten
zu kontaminieren, wie z. B. den zwischenliegenden Knoten 204, die
solche Antworten in dem Bestreben, ihre Sammlung an ID-/Netzwerkadressinformationen
aufzubauen, überwachen
(listening).
-
Es
gilt abschließend
zu beachten, dass das Beispiel, das in 2 dargelegt
wurde, nur beispielhaft ist, während
jene Fachleute die weite Vielfalt an verschiedenen Netzwerkumgebungen,
und Netzwerkknoten, in welchen das offenbarte Paketübereinstimmungsverfahren
gemäß alternativer
Ausführungsformen
der Erfindung ausgeführt
wird, sofort begrüßen werden.
-
Nachdem
eine beispielhafte Netzwerkumgebung, die zum Ausführen der
vorliegenden Erfindung geeignet ist, bereitgestellt worden ist,
wird die Aufmerksamkeit nun auf 3 gerichtet,
die die funktionalen/strukturalen Komponenten in einen beispielhaften
zwischenliegenden Knoten, wie z. B. Knoten 204 aus 2,
schematisch zeigt, der das hier offenbarte Paketfilterungsverfahren
einbezieht. Diese funktionellen Komponenten werden als Beispiel durch
Datenstrukturen und ausführbare
Softwareinstruktionen auf einem Computergerät ausgeführt. Die offenbarten funktionellen
Komponenten werden jedoch alternativ durch Firmware oder Hardware – oder eine
Kombination davon – ausgeführt.
-
Mit
Bezug nun auf 3 schließt der zwischenliegende Knoten 204 eine
Netzwerkschnittstelle 300 ein, durch welche der Knoten 204 mit
anderen Knoten auf dem Netzwerk kommuniziert. Die Netzwerkschnittstelle 300 ermöglicht das
Empfangen und Weiterleiten eingehender und ausgehender Pakete. Das
weite Spektrum an unterschiedlichen physischen und funktionellen
Fähigkeiten
solcher Schnittstellen sind den Fachleuten bekannt. Die Netzwerkschnittstelle 300 leitet
empfangene Pakete zu einem Paketprozessor 302 weiter.
-
Der
Paketprozessor 302 stellt eine Sicherheitskomponente durch
die Anwendung einer Paketfilterungsbearbeitung bereit. Die Paketfilterungsbearbeitung
basiert auf dem Hashing von Statusinformationen in dem empfangenen
Paket (sowohl ausgehende als auch eingehende) und dem anschließenden Verwenden
der wiedergegebenen Hashwerte, um entsprechende Bits in einer aktuellen
Bitmap 310 zu setzen. Der Paketprozessor 302 führt die
Hashingbearbeitung durch Bezug auf eine Hashfunktion 304 aus.
In einer Ausführungsform
der Erfindung wird die Hashfunktion 304 durch einen modifizierbaren Schlüssel 306 erweitert.
Selbst wenn die Hashingfunktion bekannt ist, wird deshalb die Entdeckung
der vollständigen
Hashingbearbeitung durch das Modifizieren des Schlüsselwerts 306 vereitelt.
In einer Ausführungsform
der Erfindung wird der Wert des Schlüssels 306 für alle Paketfilterbitmaps
(z. B. aktuelle Bitmap 310 und letztere Bitmap 312)
verwendet. Für
den Fall eines einzelnen Schlüsselwerts
löscht der
Paketprozessor 302 alle Einträge in allen Bitmaps (nicht
nur in der aktuellen Bitmap), wenn sich der Schlüsselwert ändert. Solch eine Schlüsselveränderung
wird deshalb das Potenzial für
falsch zurückgewiesene
eingehende Pakete erzeugen. Der Einfluss solcher zurückgewiesener
eingehender Pakete wird jedoch durch das Anwenden von Schlüsselveränderungen
zu Zeiten, wenn die aktuelle Bitmap 310 wenige, oder keine,
Bits gesetzt hat, zunichte gemacht.
-
Alternativ
wird eine Reihe von Schlüsseln
bereitgestellt. Ein Schlüssel 306 wird
für jede
Bitmap festgelegt. Die Schlüsselwerte
sind relativ stabil, wodurch deshalb relativ bald nach einer Schlüsseländerung
alle Schlüsselwerte
gleich werden. Jedes Mal, wenn ein Schlüsselwert sich verändert, unterscheiden
sich jedoch die Werte, die für
die Bitmapschlüssel
spezifiziert sind, bis die Schlüsselwertveränderung
sich durch die Versetzungsstufen (shifting stages) der Bitmaps verbreitet
hat. In der illustrativen Ausführungsform
besteht eine Reihe von Bitmaps 308, die durch den Paketprozessor 302 geführt und zugegriffen
wird, aus der aktuellen Bitmap 310 und einer letzteren
Bitmap 312. In diesem Beispiel verbreitet sich die Schlüsselveränderung,
nach einer einzelnen Verlegung der Inhalte von der aktuellen Bitmap 310 zu
der letzteren Bitmap 312 auf das Entdecken eines Löschungsschwellenwertereignisses hin,
zu beiden.
-
Es
gibt eine Anzahl von verschiedenen Wegen, in denen der Paketprozessor 302 eine
Verlegungsfunktion ausführt
(und die aktuelle Bitmap 310 löscht). Zum Beispiel können die
Inhalte der aktuellen Bitmap 310 physisch während einer
Verlegungsbearbeitung in die letztere Bitmap 312 transferiert
werden, und jeder Eintrag in der aktuellen Bitmap 310 wird
danach gelöscht.
Ein anderer Weg, die Verlegung durchzuführen, ist lediglich das Wiederzuordnen
von Speicherkennzeichnungen, wie das Modifizieren von Pointern,
die für
die aktuelle Bitmap 310 und die letztere Bitmap geführt werden.
In der Ausführungsform, die
auf Pointern zu den Bitmaps beruht, wird das Verlegen der Inhalte
von der aktuellen Bitmap 310 zu der letzteren Bitmap 312 durch
das Laden der Adresse für
die aktuelle Bitmap 310 in die Adresse (Pointer), die den
Ort der letzteren Pointer 312 angibt, ausgeführt. Der
Paketprozessor 302 weist den Pointer zu der aktuellen Bitmap 310 wieder
einem gelöschten Bitmapspeicherplatz
zu. Jede Bitmap ist ausreichend groß, um mindestens eine Bitposition
für jeden
möglichen
Wert, der durch die Hashfunktion wiedergegeben wird, bereitzustellen.
Die Bitmapgröße ist größenmäßig dynamisch
veränderbar,
basierend auf Bearbeitungsbedingungen, die durch den Paketprozessor
in einer Weise, die hier weiter unten als Beispiel beschrieben wird,
erkannt wurde (z. B. hohes/niedriges Datenübertragungsvolumen). Letztendlich
ist es zu beachten, dass der Paketprozessor 302 nur Bits
in der aktuellen Bitmap 310 ersetzt. Das einzigste Mal,
dass Inhalte der letzteren Bitmap 312 verändert werden,
ist während
der oben beschriebenen Verlegungsbearbeitung, wenn der gesamte Inhalt
der aktuellen Bitmap durch die letztere Bitmap 312 erhalten
wird.
-
Der
Paketprozessor 302 erfüllt
eine Schwellenwerterkennungsrolle, verbunden mit den oben erwähnten Verlegungsstufen
der Bitmaps. Die vorliegende Erfindung zieht eine Vielfalt an möglichen Schwellenwertmessungen
in Erwägung
(z. B. einen Timer, einen Zähler
für empfangene
Pakete, etc.). In der illustrativen Ausführungsform schließt der Paketprozesor 302 einen
Zeitspannentimer 314 ein. Wenn die Zeitspanne, die durch
den Timer 314 gemessen wird, abläuft, führt der Paketprozessor 302 die
oben erwähnte
Bitmap-Verlegungs- und Löschungsbearbeitung
aus. Die Schwellenwerterkennungsrolle des Prozessors stellt sicher,
dass die Bitmaps relativ spärlich
bleiben – und
dabei die Fähigkeit
des Paketprozessors verbessert, unzulässige Pakete zu erkennen.
-
Der
Paketprozessor 302 arbeitet in einer Vielzahl von Netzwerkumgebungen,
die ein weites Spektrum an Paket-Datenverkehrsvolumina hat. Selbst
ein gleicher Knoten, der den Paketprozessor 302 enthält, unterliegt
einem weiten Bereich an Datenverkehrsvolumenleveln im Verlauf von
nur einem einzigen Tag. Der Paketprozessor 302 schließt eine Fähigkeit
zur dynamischen Größenveränderung
der Bitmaps 310 und 312 gemäß den erkannten Volumenleveln
ein, und führt
deshalb relativ spärliche Bitmaps.
Mit weitergehendem Bezug auf 3 führt der
Paketprozessor 302 einen Zähler 306, um ein Level
des Paketdatenverkehrs, der durch den Paketprozessor 302 gehandhabt
wird, anzugeben. Des Weiteren löscht
der Paketprozessor 302 in einer Ausführungsform der Erfindung, auf
das Ablaufen des Zeitspannentimers 314 hin, den Zähler 316.
-
Der
Zählwert
des Zählers 316 (zu
jeder Zeit lesbar, und nicht nur zu der Zeit, zu der die Zeitspanne
des Timers 314 abläuft)
hilft beim Ermitteln, wann und ob, die Größe der aktuellen Bitmap 310 verändert wird.
In einer bestimmten Ausführungsform
der vorliegenden Erfindung wird das erneute Setzen der Größe durch
den Paketprozessor 302 basierend auf ausgewiesenen Zählerschwellenwerten
für den
Zähler 316 in
einer Zeitspanne ausgeführt.
Wenn der Paketprozessor 302 einen hohen Zähler für empfangene
Pakete innerhalb des Zählers 316 registriert,
dann vergrößert der
Paketprozessor 302 die Größe der aktuellen Bitmap 310 gemäß dem ausgewiesenen
Zählerschwellenwert,
um ein gewünschtes
Level an nicht gesetzten Positionen aufrechtzuerhalten, um sicherzustellen,
dass unzulässige
eingehende Pakete zu einem hohen Grad an Sicherheit erkennbar sind.
Der Paketprozessor 302 ändert
auch die Hashfunktion, um den erweiterten Bereich an Hashwerten,
die innerhalb der aktuellen Bitmap 310 dargestellt werden, widerzuspiegeln.
Zum Beispiel, wenn die Größe der aktuellen
Bitmap (310) verdoppelt ist, wird ein zusätzliches
Bit zu den Hashfunktionsausgabewerten zugefügt, um den vergrößerten Bereich
widerzuspiegeln. Die letztere Bitmap 312 wird in der Größe verändert, wenn
die Inhalte der aktuellen Bitmap 310 zu der letzteren Bitmap 312 verlegt
werden. Umgekehrt, während
Zeitspannen mit verringertem Paketdatenverkehr, reduziert der Paketprozessor 302 die
Größe der aktuellen
Bitmap 310, und macht Veränderungen an der Hashfunktion 304 gemäß dem reduzierten
Bereich an möglichen
Hashwerten.
-
In
einer alternativen Ausführungsform
der Erfindung wird eher die Zeitspanne, die durch den Timer 314 gemessen
wird, verändert,
als die Bitmapgröße in Erwiderung
auf veränderte
Level von Ansammlungen in den Bitmaps zu modifizieren. In noch einer
anderen Ausführungsform
wird das Übervölkern der
Bitmaps durch das Führen
eines Zählers, der
die Quantität
der gesetzten Bits innerhalb einer Bitmap identifiziert, und das
Löschen
der aktuellen Bitmap, wenn der Zähler
einen auslösenden
Schwellenwert erreicht, vermieden. Noch andere Ausführungsformen
schließen
gemischte (hybrid) Schwellenwertpolicies ein, die Kombinationen
der oben beschriebenen Verfahren zum Sicherstellen von spärlichen
Bitmaps einbeziehen.
-
Nachdem
eine exemplarische Paketbehandlungsinformationsstruktur beschrieben
worden ist, wird die Aufmerksamkeit auf 4 gerichtet,
die eine alternative Bitmapanordnung zeigt, die einen variablen
Bereich von Verzögerungen
ermöglicht,
bevor ein gesetzter Eintrag letztendlich aus den Bitmaps verlegt
wird. Im Besonderen wird eine Reihe von drei Bitmaps gezeigt. Bitmap 412 entspricht,
in Bezug auf Funktionalität,
der letzteren Bitmap 312. Bitmap 412 empfängt die
Inhalte aus Bitmap 414, und Bitmap 414 empfängt die
Inhalte aus Bitmap 416 auf das Erkennen eines Löschungsschwellenwertes
hin. Der Paketprozessor 302 ersetzt Bits entweder innerhalb Bitmap 414 oder 416,
basierend auf einem konfigurierbaren Verzögerungsauswahlschema. Bitmap 414 erhält die Inhalte
von Bitmap 416 nach einem ersten Schwellenwertereignis,
und deshalb bleiben die Inhalte von Bitmap 416 innerhalb
der Bitmap 408 für eine
weitere Zeitschwellenwertzeitspanne, als Bits innerhalb der Bitmap 414 gesetzt
werden. In einer Ausführungsform
der Erfindung setzt der Paketprozessor 302 standardmäßig ein
Bit in der Bitmap 414, das einem ausgehenden Paket entspricht.
Jedoch wird es speziell bezeichneten ausgehenden Paketen erlaubt
sein, in der Bitmap 408 für eine zusätzliche Schwellenwerterkennung
zu bleiben. Es ist zu beachten, dass die mehrfache Zeitverzögerungsarchitektur
zu irgendeiner gewünschten
Anzahl von Bitmaps erweiterbar ist, um dem Bedarf entgegen zu kommen,
längere
Verzögerungen
für manche
ausgehenden Pakete bereitzustellen.
-
In
noch einer anderen Ausführungsform
der Erfindung werden eher mehrere Bits für jede Bitmapposition zugewiesen,
um als ein Zähler
zu fungieren, als das Zuweisen eines einzelnen Bits zu jeder Position.
In einer Ausführungsform,
wobei jede Bitmapposition zwei Bits umfasst, sind die möglichen
Werte null, eins, zwei und "drei
oder mehr". In solch
einer Ausführungsform
umfasst das Setzen einer passenden Position innerhalb einer Bitmap
das Erhöhen
eines Zählers,
wenn er nicht seinen maximalen Zählwert
erreicht hat (z. B. für
einen Zwei-Bit-Zähler
ist der maximale Zählwert
drei). Wenn ein eingehendes Paket empfangen wird, wird der entsprechende
Zähler
verringert, vorausgesetzt sein Wert ist nicht null oder der maximale
Zählerwert – in diesem
Fall würde der
Zähler
unberührt
bleiben.
-
In
einer Ausführungsform
des Zähler-basierten
Ansatzes, der eine aktuelle Bitmap und letztere Bitmap einschließt, werden
nur die Zähler
der aktuellen Bitmap erhöht,
wenn ausgehende Pakete behandelt werden. Wenn ein eingehendes (Antwort-)
Paket empfangen wird, wird der passende Zähler in der letzteren Bitmap
zuerst verringert. Wenn für
ein eingehendes Paket der Zähler
in der letzteren Bitmap gleich null ist, dann wird auf die aktuelle
Bitmap zugegriffen (und verringert – wenn möglich). Wenn die Bitmapposition,
die dem eingehenden Paket entspricht, in jeder der Bitmaps gleich
null ist, dann wird das eingehende Paket verworfen. Des Weiteren, wenn
ein Zähler
gleich dem Maximum ist (z. B. drei oder mehr), wird der Zähler nicht
verringert, wenn ein Zuordnungsfunktionswert (z. B. Hash-Wert) eines eingehenden
Pakets sich auf die Position bezieht. Das oben vorgeschlagene Schema
zum Behandeln von Anfragen und Antworten in einem System, das mehrere
Bits an jeder Bitposition und mehrere Bitmaps enthält, ist
exemplarisch. Andere Zähler-Erhöhungs-/Verringerungs-/Löschungs-Schemata
werden gemäß verschiedener
Ausführungsformen
der Erfindung in Erwägung
gezogen.
-
Noch
andere Variationen der oben beschriebenen Bitmap-Struktur-/Behandlungsschemata
werden auch in Betracht gezogen, wie z. B. die Verwendung einer
einzelnen Bitmap, die Vielfachbitzähler einschließt, die
periodisch verringert und/oder zurückgesetzt werden, um Anfragen
zu berücksichtigen,
die kürzlich
keine entsprechende Antwort empfangen haben (und Zähler, die
ihr Maximum erreicht haben).
-
Nachdem
eine Infrastruktur zur Behandlung von ausgehenden und eingehenden
Paketen gemäß einer
Ausführungsform
der vorliegenden Erfindung beschrieben worden ist, wird die Aufmerksamkeit nun
auf 5 gerichtet, die Schritte zusammenfasst, die durch
den Paketprozessor 302 in Erwiderung auf das Empfangen
eines Pakets hin durchgeführt
werden. In dieser Ausführungsform
führt der
Paketprozessor 302 nur einen Schlüssel (angewandt auf alle Bitmaps).
Während
des Schritts 500, empfängt
der Paketprozessor 302 ein Paket, das entweder ein ausgehendes
Paket in Verbindung mit einer anfänglichen Message oder ein eingehendes
Paket in Verbindung mit einer Antwort auf eine anfängliche
Message ist, die vorher durch den Netzwerkknoten, auf dem der Paketprozessor
liegt, weitergeleitet wurde. Beide, ausgehende und eingehende, Pakete
stehen in Verbindung mit einer Reihe von Statusinformationen, die
z. B. als eine Sequenz von binären
Werten gespeichert sind, die als eine einzelne vorzeichenlose Zahl "X" darstellbar sind. In dem oben erwähnten Beispiel
eines PNRP-Pakets ist der besagte Statuswert ein 256-Bit-Wert, den
eine PNRP-RESOLVE-Message versucht aufzulösen. Alternativ ist in einem
Beispiel einer Paketfilterungsfirewall der Wert X eine 96-Bitnummer,
die aus zwei 32-Bit IPv4-Adressen und zwei 16-Bit TCP- oder UDP-Portnummern
besteht.
-
Während des
Schritts 502 wendet der Paketprozessor 302 eine
Hashfunktion, einschließlich
des Schlüssels 306,
auf den Wert X innerhalb des empfangenen Pakets an, um einen Nashwert
H(x) wiederzugeben. Wie hier verwendet, ist der Begriff Hashfunktion
sehr breit zu interpretieren, um eine breite Vielfalt an logischen/mathematischen
Funktionen einzuschließen,
die auf den Statuswert X angewandt werden. In einer Ausführungsform
der Erfindung wird die Hashfunktion ausgewählt, so dass ihre Anwendung
auf die Statusinformation für
eine große
Anzahl an Paketstati in einer ziemlich gleichmäßigen Verteilung von Ergebniswahrscheinlichkeiten
resultiert. Die gleichmäßige Verteilung
verhindert die Neigung bestimmter Einträge zu häufigen Kollisionen (d. h. zwei unterschiedliche
Messages bilden während
einer Zeitspanne, die durch den Timer 314 gemessen wird, einen
Hash zu einem gleichen Wert). Die Hashfunktion wird auch durch das
periodische Verändern
des Werts des Schlüssels 306 variiert,
und macht dabei das Ergebnis der Hashfunktion weniger vorhersagbar
(d. h. ein Angreifer kann nicht leicht Werte für H(x) identifizieren).
-
Der
Paketprozessor 302 behandelt ausgehende Pakete in einer
unterschiedlichen Art und Weise wie eingehende Pakete. Ausgehende
Pakete (z. B. PNRP-RESOLVE, oder Anfangs-TCP-Paket mit einem gesetzten
SYN-Bitschalter (Flag)) werden immer weitergeleitet. Auf der anderen
Seite werden eingehende Pakete getestet und verworfen, wenn sie nicht
einer Filterrichtlinie (Policy), die durch den Paketprozessor durchgesetzt
wird, entsprechen. Deshalb ermittelt der Paketprozessor während des Schritts 504,
ob das Paket ein ausgehendes oder eingehendes ist, und verzweigt
entsprechend. Wenn bei Schritt 504 das Paket ein ausgehendes
Paket ist, wird die Kontrolle zu Schritt 506 weitergegeben,
wobei der Paketprozessor 302 eine passende Bitmap ermittelt
und ein Bit bei einer Position entsprechend dem Hashwert H(x), der
während
des Schritts 502 wiedergegeben wurde, setzt. Für den Fall des Paketfilterungssystems,
das in 3 gezeigt ist, wird ein Bit bei einer Position
entsprechend H(x) in der aktuellen Bitmap 310 gesetzt.
Alternativ wird ein Bit entweder in der Bitmap 414 oder
Bitmap 416 gesetzt, basierend auf der gewünschten
Verzögerung
in der Ausführungsform
der Bitmaps, die in 4 gezeigt sind. In einer Ausführungsform
der Erfindung werden die Größen der
Bitmaps festgelegt, um den Bereich der Werte, die durch H(x) wiedergegeben
werden, aufzunehmen. Wie vorher erwähnt, basiert in einer Ausführungsform
der Erfindung die Auswahl des Bereichs der Werte von H(x), die durch
die Bitmaps unterstützt
werden, auf einer Anzahl von Paketen, die durch den Netzwerkknoten
während
einer Zeitspanne, die durch den Timer 314 gemessen wird,
empfangen werden. Die vorliegende Erfindung basiert auf Wahrscheinlichkeiten,
und deshalb ist der Bereich der Werte auch abhängig von einem akzeptablen
Level der Wahrscheinlichkeit, dass ein unrechtmäßig eingehendes Paket nicht
erkannt wird. Nachdem ein passendes Bit in einer Bitmap während des
Schritts 506 gesetzt wurde, wird das ausgehende Paket in seiner
normalen Weise bearbeitet (z. B. wird das Paket zu einem anderen
Netzwerkknoten weitergeleitet). Die Steuerung geht dann zu dem Ende 508.
-
Wenn
bei Schritt 504 das empfangene Paket ein eingehendes Paket
ist (z. B. eine PNRP-RESOLVE-Antwort oder nicht-initiales TCP-Paket),
dann geht die Steuerung zu Schritt 510 weiter. Bei Schritt 510 untersucht
der Paketprozessor die Bitposition in einer oder mehreren der Bitmaps
(z. B. aktuell Bitmap 310 und/oder letztere Bitmap 312)
entsprechend dem Wert H(x), der während des Schritts 502 wiedergegeben
wurde. Wenn mindestens eine der entsprechenden Bitmappositionen
gesetzt ist, dann wird das eingehende Paket als rechtmäßig betrachtet,
die Steuerung geht dann zu Schritt 512 weiter. Bei Schritt 512 akzeptiert
der Paketprozessor 302 das Paket für eine weitere Bearbeitung.
Solch eine weitere Bearbeitung schließt z. B. das Weiterleiten des
empfangenen eingehenden Pakets zu einem anderen Netzwerkknoten und
das Aktualisieren eines Namensauflösungszwischenspeichers ein,
um die Namensauflösungsadressinformation,
die in dem eingehenden Paket enthalten ist, einzuschließen. Die Steuerung
geht dann zu dem Ende 508 weiter.
-
Wenn
bei Schritt 510 der Paketprozessor 302 ermittelt,
dass die Bitmappositionen entsprechend dem Wert H(x) in den Bitmaps
(z. B. aktuelle Bitmap 310 und letztere Bitmap 312)
nicht gesetzt sind, dann wird das eingehende Paket als unrechtmäßig angesehen.
Die Steuerung geht danach zu Schritt 514 weiter, wobei
eine weitere Bearbeitung des Pakets mindestens das Verzeichnen einer
Rückweisung
des Pakets einschließt.
In einer Ausführungsform
der Erfindung werden zurückgewiesene Pakete
durch den Netzwerkknoten, auf dem der Paketprozessor 302 liegt,
verworfen. Zusätzliche
Funktionen, die für
ein zurückgewiesenes
Paket durchgeführt
werden, schließen
das Führen
eines Zählers
für zurückgewiesene
Pakete ein, um eine hohe Rückweisungszahl
zu identifizieren. Der hohe Rückweisungszähler wiederum
aktiviert einen Alarm oder andere Handlung als Reaktion auf eine
Bedrohung auf die korrekte Funktionsweise des Netzwerks.
-
Eine
Ausführungsform
der vorliegenden Erfindung schließt eine Bitmaplöschungsfunktion
ein. Solch eine Löschung
ist für
den Fall des Systems, das in den 3 und 4 gezeigt ist,
gewünscht, um
sicherzustellen, dass die Bitmaps spärlich bleiben. Wie hier oberhalb
erwähnt,
gibt es eine Anzahl von Möglichkeiten,
solche eine Löschung
durch das Spezifizieren und Testen nach bestimmten Schwellenwertereignissen
auszulösen.
In einer bestimmten Ausführungsform
der vorliegenden Erfindung ist der Schwellenwert erreicht, wenn
eine Zeitspanne abläuft,
die durch einen Zeitspannentimer gemessen wird (z. B. Timer 316).
Alternativ wird ein Schwellenwert-(Auslösungs-)ereignis erreicht, wenn
ein Zählerwert,
der z. B. die Anzahl an in der aktuellen Bitmap 310 gesetzten
Bits darstellt, einen festgelegten Wert überschreitet.
-
Mit
Bezug auf 6 geht die Steuerung in Erwiderung
auf das Entdecken eines Schwellenwertereignisses bei Schritt 600 (z.
B. nach einer vergangenen Zeitspanne "T")
zu Schritt 602 weiter. Bei Schritt 602 beginnt
der Inhalt des Paketprozessors 302 die Ausführung der
Bitmaplöschungsfunktion.
In der exemplarischen Ausführungsform
der Erfindung, die in 3 dargelegt ist, ersetzt der
Inhalt der aktuellen Bitmap 310 den Inhalt der letzteren
Bitmap 312. Als nächstes
wird, während
des Schritts 604, der Inhalt der aktuellen Bitmap 310 gelöscht (d.
h. auf Null gesetzt).
-
Die
Schritte 602 und 604 werden für
den Fall, wo mehrere sich unterscheidende Verzögerungen verfügbar sind,
ein wenig modifiziert. In der alternativen Ausführungsform, die in 4 dargelegt
ist, empfängt
die Bitmap 412 den Inhalt der Bitmap 414, und
Bitmap 414 empfängt
den Inhalt von Bitmap 416. Anschließend wird die Bitmap 416 gelöscht. Des Weiteren
ist das Ersetzen des Inhalts einer Bitmap durch das erneute Zuweisen
eines Pointers zu einem Bitmaport eher erreichbar als durch physisches
Kopieren des Inhalts.
-
In
einer Ausführungsform
der Erfindung liest der Paketprozessor 302 nach dem Ausführen der Bitmapaktualisierungen
den Wert des Zählers 316 (und
löscht
ihn dann) bei Schritt 606. Danach ermittelt der Paketprozessor 302 in
Anbetracht einer Richtlinie für
erneutes Festlegen der Größe, unter Berücksichtigung
der aktuellen Größe der aktuellen Bitmap 310 und
des Werts des Counters 316, ob die Größe der aktuellen Bitmap 310 neu
festgelegt wird (Zusammenziehen oder Vergrößern). Wenn die aktuelle Bitmapgröße erneut
festgelegt wird, dann wird die Hashfunktion ebenso verändert, um
einen Bereich an Ausgabewerten wiederzugeben, die der neuen Bitmapgröße entsprechen.
-
Es
wird durch Fachleute begrüßt, dass
ein neues und nützliches
Verfahren und Berrechnerinfrastruktur zum Übereinstimmen von Antworten
auf Anfragen durch einen Paketprozessor in einem Netzwerkknoten
hier beschrieben worden ist. In Anbetracht der vielen möglichen
Netzwerk-/Systemanordnungen, auf die die Prinzipien dieser Erfindung
an gewandt werden können,
sollte es jedoch beachtet werden, dass die hier mit Bezug auf die
gezeichneten Figuren beschriebenen Ausführungsformen als illustrativ
gemeint sind, und nicht zum Einschränken des Umfangs der Erfindung
hergenommen werden sollten.
-
Jene
Fachleute, zu deren Fach die vorliegende Erfindung angewandt werden
kann, werden begrüßen, dass
die dargestellten Ausführungsformen
in ihrer Anordnung und Detail verändert werden können. Zum
Beispiel wird die Erfindung in Bezug auf die Ausführung einer
Paketbearbeitungssoftware auf einem Netzwerkknoten und dem Zuweisen
von Speicher, um eine Reihe von Bitmaps unterzubringen, die das
Erkennen unrechtmäßiger eingehender
Pakete in einem Netzwerkknoten ermöglichen, beschrieben. Ausführungsformen
der Erfindung werden in Begriffen von Softwaremodulen und/oder funktionellen Komponenten
beschrieben. Jene Fachleute werden es jedoch erkennen, dass die
offenbarte Funktionalität
gleichwertig durch Hardware-/Firmwarekomponenten ersetzt werden
kann. Deshalb zieht die Erfindung, wie sie hier beschrieben ist,
all solche Ausführungsformen,
wie sie innerhalb des Umfangs der folgenden Ansprüche fallen,
in Betracht.