[go: up one dir, main page]

DE60308260T2 - Verfahren und Vorrichtung zum effizienten Vergleich von Antworten auf vorher vermittelte Anforderungen durch einen Netzknoten - Google Patents

Verfahren und Vorrichtung zum effizienten Vergleich von Antworten auf vorher vermittelte Anforderungen durch einen Netzknoten Download PDF

Info

Publication number
DE60308260T2
DE60308260T2 DE60308260T DE60308260T DE60308260T2 DE 60308260 T2 DE60308260 T2 DE 60308260T2 DE 60308260 T DE60308260 T DE 60308260T DE 60308260 T DE60308260 T DE 60308260T DE 60308260 T2 DE60308260 T2 DE 60308260T2
Authority
DE
Germany
Prior art keywords
bitmap
packet
network node
computer
bitmaps
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
DE60308260T
Other languages
English (en)
Other versions
DE60308260D1 (de
Inventor
Graham A. Redmond Wheeler
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE60308260D1 publication Critical patent/DE60308260D1/de
Application granted granted Critical
Publication of DE60308260T2 publication Critical patent/DE60308260T2/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

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

Claims (36)

  1. Verfahren zum Sicherstellen auf einem Netzwerkknoten (204), der einen Namensauflösungs-Cache anlegt, dass sich eine empfangene Rückmeldungsmessage (216) einer Namensauflösung auf eine vorher geschickte Anfragemessage (202) einer Namensauflösung bezieht, wobei das Verfahren die folgenden Schritte umfasst: Empfangen (500) eines ausgehenden Pakets, das Statusinformation einschliesst, die eine erste Reihe von Datenbitwerten umfasst; Erstes Abbilden (502) der ersten Reihe von Datenbitwerten durch eine Abbildungsfunktion (304), die in dem Netzwerkknoten beinhaltet ist, um einen ersten abgebildeten Datenwert zu rendern; Setzen (506) eines Eintrags in einer Bitmap (310, 312, 412416) an einer Position, die dem abgebildeten Datenwert entspricht; Empfangen (500) eines eingehenden Pakets, das Statusinformation einschliesst, die eine zweite Reihe von Datenbitwerten umfasst, wobei die zweite Reihe von Datenbitwerten von einem Typ entsprechend der ersten Reihe von Datenbitwerten ist; Zweites Abbilden (502) der zweiten Reihe von Datenbitwerten durch die Abbildungsfunktion, um einen zweiten abgebildeten Datenwert zu rendern; Testen (510) eines Eintrags innerhalb einer oder mehrerer Bitmaps, die Positionen aufweisen, die gemäß dem Schritt des Setzens gesetzt sind, entsprechend dem zweiten abgebildeten Datenwert, um eine Übereinstimmung mit einem Ab bildungsfunktionswert, der von einer Statusinformation für ein vorheriges Anfragepaket gerendert ist, festzustellen; und Ausführen (512, 514) mindestens einer Funktion auf das eingehende Paket basierend darauf, ob während des Schritt des Testens eine Übereinstimmung festgestellt wurde.
  2. Verfahren gemäß Anspruch 1, das des Weiteren den folgenden Schritt umfasst: Zurücksetzen (604) mindestens eines Teils der Inhalte mindestens einer Bitmap, die Einträge aufweist, die gemäß dem Schritt des Setzens auf das Erfassen (600) eines Freigabe-Schwellenwertereignisses hin gesetzt sind.
  3. Verfahren gemäß Anspruch 2, wobei das Freigabe-Schwellenwertereignis das Ablaufen einer Zeitspanne umfasst.
  4. Verfahren gemäß Anspruch 2, wobei der Netzwerkknoten mindestens eine erste Bitmap (310), die Einträge aufweist, die während des Schritt des Setzens gesetzt wurden, und eine zweite Bitmap (312) einschliesst, und wobei das Verfahren den folgenden weiteren Schritt umfasst: Ersetzen (602) von Inhalten der zweiten Bitmap mit Inhalten der ersten Bitmap auf das Erfassen des Freigabe-Schwellenwertereignisses hin.
  5. Verfahren gemäß Anspruch 4, wobei der Schritt des Testens das Testen sowohl eines Eintrags in der ersten Bitmap als auch in der zweiten Bitmap entsprechend dem zweiten abgebildeten Datenwert umfasst, und wobei die Übereinstimmung für eine Anwendung während des Schritt des Ausführens festgestellt wird, wenn mindestens einer der entsprechenden Einträge in der ersten Bitmap oder der zweiten Bitmap gesetzt ist.
  6. Verfahren gemäß Anspruch 1, das des Weiteren das Ändern eines Schlüssels (306), der in die Abbildungsfunktion inkorporiert ist, umfasst.
  7. Verfahren gemäß Anspruch 1, das des Weiteren umfasst: Überwachen eines Levels von Paketen, die während einer Zeitspanne empfangen werden; und Verändern (606) mindestens einer Grösse der Bitmap, die Einträge aufweist, die während des Schritt des Setzens gesetzt wurden, basierend auf dem Level von Paketen, die während der Zeitspanne empfangen wurden.
  8. Verfahren gemäß Anspruch 2, wobei der Netzwerkknoten einen Satz (408) von mindestens drei Bitmaps umfasst, die als Schieberegister eingerichtet sind, wobei auf das Erfassen des Schwellenwertereignisses hin Inhalte der ersten Bitmap (416) in entsprechende Positionen innerhalb einer zweiten Bitmap (414) verschoben werden, und Inhalte der zweite Bitmap in eine dritte Bitmap (412) verschoben werden, und wobei das Verfahren des Weiteren den folgenden Schritt umfasst: Anwenden einer Klassifizierungsregel auf eine empfangene Anfrage, um zu ermitteln, bei welchem der Sätze der mindestens drei Bitmaps ein Bit gemäß dem ersten Abbildungsschritt gesetzt werden soll, und dabei das Variieren einer Verzögerungsdauer ermöglichen, bevor ein gesetztes Bit von dem Satz von drei Bitmaps gelöscht wird.
  9. Verfahren gemäß Anspruch 1, wobei das eingehende Paket eine Naming-Anfrage ist.
  10. Verfahren gemäß Anspruch 9, wobei die Naming-Anfrage eine Peer-to-Peer-Namensauflösungs-Anfrage ist.
  11. Verfahren gemäß Anspruch 1, wobei der Schritt des Setzens das bedingte Erhöhen eines Multi-Bit-Eintrags innerhalb der Bitmap umfasst.
  12. Verfahren gemäß Anspruch 1, wobei die Abbildungsfunktion eine Hashing-Funktion umfasst.
  13. Computer-lesbares Medium, das Computer-ausführbare Instruktionen zum Sicherstellen auf einem Netzwerkknoten (204), der einen Namensauflösungs-Cache anlegt, dass sich eine empfangene Rückmeldungsmessage (216) einer Namensauflösung auf eine vorher geschickte Anfragemessage (202) einer Namensauflösung bezieht, aufweist, wobei das Computer-lesbare Medium Computerausführbare Instruktionen aufweist, die das Ausführen der folgenden Schritte ermöglichen: Empfangen (500) eines ausgehenden Pakets, das Statusinformation einschliesst, die eine erste Reihe von Datenbitwerten umfasst; Erstes Abbilden (502) der ersten Reihe von Datenbitwerten durch eine Abbildungsfunktion (304), die in dem Netzwerkknoten beinhaltet ist, um einen ersten abgebildeten Datenwert zu rendern; Setzen (506) eines Eintrags in einer Bitmap (310, 312, 412416) an einer Position, die dem abgebildeten Datenwert entspricht; Empfangen (500) eines eingehenden Pakets, das Statusinformation einschliesst, die eine zweite Reihe von Datenbitwerten umfasst, wobei die zweite Reihe von Datenbitwerten von einem Typ entsprechend der ersten Reihe von Datenbitwerten ist; Zweites Abbilden (502) der zweiten Reihe von Datenbitwerten durch die Abbildungsfunktion, um einen zweiten abgebildeten Datenwert zu rendern; Testen (510) eines Eintrags innerhalb einer oder mehrerer Bitmaps, die Positionen aufweisen, die gemäß dem Schritt des Setzens gesetzt sind, entsprechend dem zweiten abgebildeten Datenwert, um eine Übereinstimmung mit einem Abbildungsfunktionswert, der von Statusinformation für ein vorheriges Anfragepaket gerendert ist, festzustellen; und Ausführen (512, 514) mindestens einer Funktion auf das eingehende Paket basierend darauf, ob während des Schritt des Testens eine Übereinstimmung festgestellt wurde.
  14. Computer-lesbares Medium gemäß Anspruch 13, das des Weiteren Computerausführbare Instruktionen umfasst, die das Ausführen des folgenden Schritts ermöglichen: Zurücksetzen (604) mindestens eines Teils der Inhalte mindestens einer Bitmap, die Einträge aufweist, die gemäß dem Schritt des Setzens auf das Erfassen (600) eines Freigabe-Schwellenwertereignisses hin gesetzt sind.
  15. Computer-lesbares Medium gemäß Anspruch 14, wobei das Freigabe-Schwellenwertereignis das Ablaufen einer Zeitspanne umfasst.
  16. Computer-lesbares Medium gemäß Anspruch 14, wobei der Netzwerkknoten mindestens eine erste Bitmap (310), die Einträge aufweist, die während des Schritt des Setzens gesetzt wurden, und eine zweite Bitmap (312) einschliesst, und wobei das Verfahren den folgenden weiteren Schritt umfasst: Ersetzen (602) von Inhalten der zweiten Bitmap mit Inhalten der ersten Bitmap auf das Erfassen des Freigabe-Schwellenwertereignisses hin.
  17. Computer-lesbares Medium gemäß Anspruch 16, wobei der Schritt des Testens das Testen sowohl eines Eintrags in der ersten Bitmap als auch in der zweiten Bitmap entsprechend dem zweiten abgebildeten Datenwert umfasst, und wobei die Übereinstimmung für eine Anwendung während des Schritt des Ausführens festgestellt wird, wenn mindestens einer der entsprechenden Einträge in der ersten Bitmap oder der zweiten Bitmap gesetzt ist.
  18. Computer-lesbares Medium gemäß Anspruch 13, das des Weiteren das Ändern eines Schlüssels (306), der in die Abbildungsfunktion inkorporiert ist, umfasst.
  19. Computer-lesbares Medium gemäß Anspruch 13, das des Weiteren umfasst: Überwachen eines Levels von Paketen, die während einer Zeitspanne empfangen werden; und Verändern (606) mindestens einer Grösse der Bitmap, die Einträge aufweist, die während des Schritt des Setzens gesetzt wurden, basierend auf dem Level von Paketen, die während der Zeitspanne empfangen wurden.
  20. Computer-lesbares Medium gemäß Anspruch 14, wobei der Netzwerkknoten einen Satz (408) von mindestens drei Bitmaps umfasst, die als Schieberegister eingerichtet sind, wobei auf das Erfassen des Schwellenwertereignisses hin Inhalte der ersten Bitmap (416) in entsprechende Positionen innerhalb einer zweiten Bitmap (414) verschoben werden, und Inhalte der zweite Bitmap in eine dritte Bitmap (412) verschoben werden, und wobei das Verfahren des Weiteren den folgenden Schritt umfasst: Anwenden einer Klassifizierungsregel auf eine empfangene Anfrage, um zu ermitteln, bei welchem der Sätze der mindestens drei Bitmaps ein Bit gemäß dem ersten Abbildungsschritt gesetzt werden soll, und dabei das Variieren einer Verzögerungsdauer ermöglichen, bevor ein gesetztes Bit von dem Satz von drei Bitmaps gelöscht wird.
  21. Computer-lesbares Medium gemäß Anspruch 13, wobei das eingehende Paket eine Naming-Anfrage ist.
  22. Computer-lesbares Medium gemäß Anspruch 21, wobei die Naming-Anfrage eine Peer-to-Peer-Namensauflösungs-Anfrage ist.
  23. Computer-lesbares Medium gemäß Anspruch 13, wobei der Schritt des Setzens das bedingte Erhöhen eines Multi-Bit-Eintrags innerhalb der Bitmap umfasst.
  24. Computer-lesbares Medium gemäß Anspruch 13, wobei die Abbildungsfunktion eine Hashing-Funktion umfasst.
  25. System zur Paketbehandlung innerhalb eines Netzwerkknoten (204), der einen Namensauflösungs-Cache anlegt, und der eine Netzwerkschnittstelle (300) zum Empfangen und Weiterleiten ausgehender Anfragepakete (202) einer Namensauflösung und entsprechender eingehender Rückmeldungspakete (216) ei ner Namensauflösung zwischen Netzwerkeinheiten (200, 206, 208, 220) einschliesst, wobei das Paketverarbeitende System umfasst: Mittel, die zum Anwenden einer Abbildungsfunktion (304) angepasst sind; Mittel, die zum Führen mindestens einer Bitmap (310, 312, 412416) angepasst sind; und einen Prozessor (302) für empfangene Pakete, der angepasst ist zum Empfangen eines ausgehenden Pakets, das Statusinformation einschliesst, die eine erste Reihe von Datenbitwerten umfasst; zum ersten Abbilden der ersten Reihe von Datenbitwerten durch die Abbildungsfunktion, um einen ersten abgebildeten Datenwert zu rendern; zum Setzen eines Eintrags in der mindestens einen Bitmap an einer Position, die dem abgebildeten Datenwert entspricht; zum Empfangen eines eingehenden Pakets, das Statusinformation einschliesst, die eine zweite Reihe von Datenbitwerten umfasst, wobei die zweite Reihe von Datenbitwerten von einem Typ entsprechend der ersten Reihe von Datenbitwerten ist; zum zweiten Abbilden der zweiten Reihe von Datenbitwerten durch die Abbildungsfunktion, um einen zweiten abgebildeten Datenwert zu rendern; zum Testen eines Eintrags innerhalb einer oder mehrerer Bitmaps, die Positionen aufweisen, die gemäß dem Schritt des Setzens gesetzt sind, entsprechend dem zweiten abgebildeten Datenwert, um eine Übereinstimmung mit einem Abbildungsfunktionswert, der von Statusinformation für ein vorheriges Anfragepaket gerendert ist, festzustellen; und zum Ausführen mindestens einer Funktion auf das eingehende Paket basierend darauf, ob während des Schritt des Testens eine Übereinstimmung festgestellt wurde.
  26. System zur Paketbehandlung gemäß Anspruch 25, wobei der Prozessor für empfangene Pakete des Weiteren angepasst ist zum: Zurücksetzen (604) mindestens eines Teils der Inhalte mindestens einer Bitmap, die Einträge aufweist, die gemäß dem Schritt des Setzens auf das Erfassen (600) eines Freigabe-Schwellenwertereignisses hin gesetzt sind.
  27. System zur Paketbehandlung gemäß Anspruch 26, das des Weiteren einen Zeitspannen-Timer (314) umfasst, und wobei das Freigabe-Schwellenwertereignis das Ablaufen einer Zeitspanne umfasst, die von dem Zeitspannen-Timer gemessen wurde.
  28. System zur Paketbehandlung gemäß Anspruch 26, wobei die Mittel, die zum Führen mindestens einer Bitmap angepasst sind, Mittel einschliessen, die zum Führen mindestens einer ersten Bitmap (310), die Einträge aufweist, die während des Schritt des Setzens gesetzt wurden, und einer zweiten Bitmap (312) angepasst sind, und wobei der Prozessor für empfangene Pakete des Weiteren angepasst ist zum: Ersetzen (602) von Inhalten der zweiten Bitmap mit Inhalten der ersten Bitmap auf das Erfassen des Freigabe-Schwellenwertereignisses hin.
  29. System zur Paketbehandlung gemäß Anspruch 28, wobei der Schritt des Testens das Testen sowohl eines Eintrags in der ersten Bitmap als auch in der zweiten Bitmap entsprechend dem zweiten abgebildeten Datenwert umfasst, und wobei die Übereinstimmung für eine Anwendung während des Schritt des Ausführens festgestellt wird, wenn mindestens einer der entsprechenden Einträge in der ersten Bitmap oder der zweiten Bitmap gesetzt ist.
  30. System zur Paketbehandlung gemäß Anspruch 25, das des Weiteren einen Schlüsselgenerator zum Ändern eines Schlüssels (306), der in die Abbildungsfunktion inkorporiert ist, umfasst.
  31. System zur Paketbehandlung gemäß Anspruch 25, das des Weiteren umfasst: Einen Paketzähler (316) zum Überwachen eines Levels von Paketen, die während einer Zeitspanne empfangen werden; und Mittel, die angepasst sind zum Verändern (606) einer Grösse der mindestens einen Bitmap basierend auf dem Level von Paketen, die während der Zeitspanne empfangen wurden.
  32. System zur Paketbehandlung gemäß Anspruch 26, wobei die Mittel, die zum Führen mindestens einer Bitmap angepasst sind, Mittel einschliessen, die angepasst sind zum Führen eines Satzes (408) von mindestens drei Bitmaps, die als Schieberegister eingerichtet sind, wobei auf das Erfassen des Schwellenwertereignisses hin Inhalte der ersten Bitmap (416) in entsprechende Positionen innerhalb einer zweiten Bitmap (414) verschoben werden, und Inhalte der zweite Bitmap in eine dritte Bitmap (412) verschoben werden, und wobei der Prozessor für empfangene Pakete des Weiteren angepasst ist zum: Anwenden einer Klassifizierungsregel auf eine empfangene Anfrage, um zu ermitteln, bei welchem der Sätze der mindestens drei Bitmaps ein Bit gemäß dem ersten Abbildungsschritt gesetzt werden soll, und dabei das Variieren einer Verzögerungsdauer ermöglichen, bevor ein gesetztes Bit von dem Satz von drei Bitmaps gelöscht wird.
  33. System zur Paketbehandlung gemäß Anspruch 25, wobei das eingehende Paket eine Naming-Anfrage ist.
  34. System zur Paketbehandlung gemäß Anspruch 33, wobei die Naming-Anfrage eine Peer-to-Peer-Namensauflösungs-Anfrage ist.
  35. System zur Paketbehandlung gemäß Anspruch 25, wobei der Schritt des Setzens, der durch den Prozessor für empfangene Pakete ausgeführt wird, das bedingte Erhöhen eines Multi-Bit-Eintrags innerhalb der Bitmap umfasst.
  36. System zur Paketbehandlung gemäß Anspruch 25, wobei die Abbildungsfunktion eine Hashing-Funktion umfasst.
DE60308260T 2002-04-24 2003-04-02 Verfahren und Vorrichtung zum effizienten Vergleich von Antworten auf vorher vermittelte Anforderungen durch einen Netzknoten Expired - Lifetime DE60308260T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US128919 2002-04-24
US10/128,919 US7206862B2 (en) 2002-04-24 2002-04-24 Method and apparatus for efficiently matching responses to requests previously passed by a network node

Publications (2)

Publication Number Publication Date
DE60308260D1 DE60308260D1 (de) 2006-10-26
DE60308260T2 true DE60308260T2 (de) 2007-09-20

Family

ID=29248523

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60308260T Expired - Lifetime DE60308260T2 (de) 2002-04-24 2003-04-02 Verfahren und Vorrichtung zum effizienten Vergleich von Antworten auf vorher vermittelte Anforderungen durch einen Netzknoten

Country Status (4)

Country Link
US (1) US7206862B2 (de)
EP (1) EP1365556B1 (de)
AT (1) ATE339840T1 (de)
DE (1) DE60308260T2 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7051102B2 (en) * 2002-04-29 2006-05-23 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US7533184B2 (en) * 2003-06-13 2009-05-12 Microsoft Corporation Peer-to-peer name resolution wire protocol and message format data structure for use therein
US7496648B2 (en) * 2003-10-23 2009-02-24 Microsoft Corporation Managed peer name resolution protocol (PNRP) interfaces for peer to peer networking
US7146420B2 (en) * 2003-11-20 2006-12-05 Square D Company Internet listener/publisher
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
WO2006036763A2 (en) * 2004-09-22 2006-04-06 Cyberdefender Corporation System for distributing information using a secure peer-to-peer network
US7848332B2 (en) * 2004-11-15 2010-12-07 Cisco Technology, Inc. Method and apparatus for classifying a network protocol and aligning a network protocol header relative to cache line boundary
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7664879B2 (en) 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US7631021B2 (en) * 2005-03-25 2009-12-08 Netapp, Inc. Apparatus and method for data replication at an intermediate node
US7817647B2 (en) * 2005-04-22 2010-10-19 Microsoft Corporation Flower-petal resolutions for PNRP
US8036140B2 (en) * 2005-04-22 2011-10-11 Microsoft Corporation Application programming interface for inviting participants in a serverless peer to peer network
US8266327B2 (en) 2005-06-21 2012-09-11 Cisco Technology, Inc. Identity brokering in a network element
CN105823877B (zh) * 2005-06-22 2022-02-25 约翰·霍普金斯大学 卵巢癌的生物标记:ctap3-相关蛋白质
US8156079B1 (en) 2005-06-30 2012-04-10 Emc Corporation System and method for index processing
US8161005B1 (en) * 2005-06-30 2012-04-17 Emc Corporation Efficient index processing
CN100456753C (zh) * 2005-07-13 2009-01-28 华为技术有限公司 一种消息匹配的方法及系统
US7345585B2 (en) 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
US8255546B2 (en) * 2005-09-30 2012-08-28 Microsoft Corporation Peer name resolution protocol simple application program interface
US7797406B2 (en) * 2006-07-27 2010-09-14 Cisco Technology, Inc. Applying quality of service to application messages in network elements based on roles and status
US7817636B2 (en) 2008-01-30 2010-10-19 Cisco Technology, Inc. Obtaining information on forwarding decisions for a packet flow
US8572736B2 (en) * 2008-11-12 2013-10-29 YeeJang James Lin System and method for detecting behavior anomaly in information access
US8166203B1 (en) * 2009-05-29 2012-04-24 Google Inc. Server selection based upon time and query dependent hashing
WO2011002818A1 (en) * 2009-06-29 2011-01-06 Cyberdefender Corporation Systems and methods for operating an anti-malware network on a cloud computing platform
US20120047223A1 (en) * 2010-08-20 2012-02-23 Nokia Corporation Method and apparatus for distributed storage
US8726274B2 (en) * 2010-09-10 2014-05-13 International Business Machines Corporation Registration and initialization of cluster-aware virtual input/output server nodes
US8938428B1 (en) * 2012-04-16 2015-01-20 Emc Corporation Systems and methods for efficiently locating object names in a large index of records containing object names
US9577875B2 (en) 2012-10-15 2017-02-21 International Business Machines Corporation Performing value and context aware communications networking
CN103986747B (zh) * 2014-04-14 2019-12-17 曦威胜科技开发(深圳)有限公司 P2p协议中文件共享下载方法
GB2547222A (en) 2016-02-10 2017-08-16 Testplant Europe Ltd Method of, and apparatus for, testing computer hardware and software
GB2547220A (en) 2016-02-10 2017-08-16 Testplant Europe Ltd Method of, and apparatus for, testing computer hardware and software
US12149516B2 (en) * 2020-06-02 2024-11-19 Flex Integration, LLC System and methods for tokenized hierarchical secured asset distribution
CN114465710A (zh) * 2022-01-21 2022-05-10 安徽华云安科技有限公司 一种基于流量的漏洞检测方法、装置、设备及存储介质
KR20240048197A (ko) * 2022-10-06 2024-04-15 에스케이하이닉스 주식회사 데이터 유닛의 디코딩 여부를 결정하는 디코딩 장치 및 그 동작 방법
US12284211B2 (en) * 2023-02-02 2025-04-22 Advanced Security Technologies Asia Pte. Ltd. Cyber clone of a computing entity
CN120336332B (zh) * 2025-06-20 2025-08-22 山东亚微软件股份有限公司 一种分布式数据架构的数据治理方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0656708A1 (de) * 1993-12-03 1995-06-07 International Business Machines Corporation System und Verfahren zur Übertragung und Gültigkeitsprüfung eines aktualisierten kryptographischen Schlüssels zwischen zwei Benutzern
US5764890A (en) * 1994-12-13 1998-06-09 Microsoft Corporation Method and system for adding a secure network server to an existing computer network
US5784362A (en) * 1995-04-17 1998-07-21 Telefonaktiebolaget Lm Ericsson Temporary frame identification for ARQ in a reservation-slotted-ALOHA type of protocol
FR2744818B1 (fr) * 1996-02-12 1998-03-27 Bull Sa Procede de verification de la conservation de l'integrite d'une requete emise sans protection par un client vers un serveur au moyen de l'integrite de la reponse
US6115376A (en) * 1996-12-13 2000-09-05 3Com Corporation Medium access control address authentication
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
EP0907285A1 (de) * 1997-10-03 1999-04-07 CANAL+ Société Anonyme Datenfernladung
US6085249A (en) * 1997-10-24 2000-07-04 Pictra, Inc. Method and apparatuses for transferring data for multiple applications through a single communication link in response to authentication information
US6289013B1 (en) * 1998-02-09 2001-09-11 Lucent Technologies, Inc. Packet filter method and apparatus employing reduced memory
US6263445B1 (en) * 1998-06-30 2001-07-17 Emc Corporation Method and apparatus for authenticating connections to a storage system coupled to a network
US6219706B1 (en) * 1998-10-16 2001-04-17 Cisco Technology, Inc. Access control for networks
US6434618B1 (en) * 1998-11-12 2002-08-13 Lucent Technologies Inc. Programmable network element for packet-switched computer network
US6778501B1 (en) * 1999-04-07 2004-08-17 Telefonaktiebolaget Lm Ericsson (Publ) Selective repeat ARQ with efficient utilization of bitmaps
US6665714B1 (en) * 1999-06-30 2003-12-16 Emc Corporation Method and apparatus for determining an identity of a network device
US6385209B1 (en) * 2000-06-14 2002-05-07 Pluris, Inc. Method and apparatus for mapping data packets between lines of differing capacity at a router interface
US6738828B1 (en) * 2000-07-06 2004-05-18 Nortel Networks Limited Name resolution protocol, system and method for resolving a flat name space to an address space
US7031288B2 (en) * 2000-09-12 2006-04-18 Sri International Reduced-overhead protocol for discovering new neighbor nodes and detecting the loss of existing neighbor nodes in a network
US6978384B1 (en) * 2000-09-19 2005-12-20 Verizon Corp. Services Group, Inc. Method and apparatus for sequence number checking
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7003574B1 (en) * 2000-11-01 2006-02-21 Microsoft Corporation Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7509435B2 (en) * 2001-03-12 2009-03-24 International Business Machines Corporation Network Address Translation and Port Mapping
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7000021B1 (en) * 2001-10-12 2006-02-14 Cisco Technology, Inc. ARQ (automatic repeat request) for broadband fixed wireless network
AU2003217319A1 (en) * 2002-02-04 2003-09-02 Fast-Chip, Inc. Services processor having a packet editing unit

Also Published As

Publication number Publication date
US20030204626A1 (en) 2003-10-30
DE60308260D1 (de) 2006-10-26
EP1365556A3 (de) 2004-12-15
ATE339840T1 (de) 2006-10-15
US7206862B2 (en) 2007-04-17
EP1365556A2 (de) 2003-11-26
EP1365556B1 (de) 2006-09-13

Similar Documents

Publication Publication Date Title
DE60308260T2 (de) Verfahren und Vorrichtung zum effizienten Vergleich von Antworten auf vorher vermittelte Anforderungen durch einen Netzknoten
DE60224177T2 (de) Dynamisches pacetfilter mit sitzungsverfolgung
DE60016613T2 (de) Abschreckungssystem gegen aufschaltung und missbrauch
DE60019997T2 (de) Ggesicherte Kommunikation mit mobilen Rechnern
DE10394008B4 (de) System und Verfahren zum Detektieren und Nachverfolgen von Denial of Service-Angriffen
DE60317403T2 (de) Mehrstufige Cache-Speicherarchitektur und Cache-Speicherverwaltungsverfahren für gleichrangiges Namensauflösungs-Protokoll
DE10297269B4 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache
EP1839188B1 (de) Verfahren, systeme und computerprogramme zur implementierung funktionsparalleler netzwerkfirewalls
US7444515B2 (en) Method and apparatus for detecting predefined signatures in packet payload using Bloom filters
DE60124295T2 (de) Flussbasierte erfassung eines eindringens in ein netzwerk
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE112014001229B4 (de) Verfahren, Datenverarbeitungssystem und Computerprogrammprodukt zum Verarbeiten einer Datenbank-Client-Anforderung
US7404205B2 (en) System for controlling client-server connection requests
DE112019004913T5 (de) Erfassen von unangemessener aktivität in anwesenheit von nicht authentifizierten api-anforderungen unter verwendung von künstlicher intelligenz
DE202018006616U1 (de) Beschleunigung des Arbeitsablaufs von Cyberanalysen
DE102015001054A1 (de) Verfahren und systeme zum erkennen von extrusion und intrusion in einer cloud-computer-umgebung
DE112018003059T5 (de) Identifizierung und authentifizierung von vorrichtungen in einem netzwerk
DE112012002624T5 (de) Regex-Kompilierer
DE102014113582B4 (de) Vorrichtung, Verfahren und System für die kontextbewusste Sicherheitssteuerung in einer Cloud-Umgebung
DE102015001024A1 (de) Verfahren und Systeme zum Erkennen von Extrusion und Intrusion in einer Cloud-Computer-Umgebung, welche Netzwerkkommunikationsgeräte verwendet
DE112021003315T5 (de) Schnelles identifizieren von verstössen und angriffen in netzwerkverkehrsmustern
DE60122033T4 (de) Schutz von Computernetzen gegen böswillige Inhalte
DE112014002789T5 (de) Netzwerksicherheitssystem
US20070289014A1 (en) Network security device and method for processing packet data using the same
DE112021000455T5 (de) Deep packet analyse

Legal Events

Date Code Title Description
8364 No opposition during term of opposition