DE69830491T2 - Cut-through -durchschaltung und paketfilterung in einem rechnersystem - Google Patents

Cut-through -durchschaltung und paketfilterung in einem rechnersystem Download PDF

Info

Publication number
DE69830491T2
DE69830491T2 DE69830491T DE69830491T DE69830491T2 DE 69830491 T2 DE69830491 T2 DE 69830491T2 DE 69830491 T DE69830491 T DE 69830491T DE 69830491 T DE69830491 T DE 69830491T DE 69830491 T2 DE69830491 T2 DE 69830491T2
Authority
DE
Germany
Prior art keywords
network
packet
main cpu
network card
computer system
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
DE69830491T
Other languages
English (en)
Other versions
DE69830491D1 (de
Inventor
J. Mohamed KHAKI
Singh Gurdeep PALL
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
Application granted granted Critical
Publication of DE69830491D1 publication Critical patent/DE69830491D1/de
Publication of DE69830491T2 publication Critical patent/DE69830491T2/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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Description

  • TECHNISCHES SACHGEBIET
  • Die vorliegende Erfindung bezieht sich allgemein auf Datenverarbeitungssysteme und, insbesondere, auf ein Weiterleiten und Filtern von Netzwerk-Paketen in einer vernetzten Computerumgebung.
  • HINTERGRUND DER ERFINDUNG
  • Computersysteme sind oftmals in sehr großen Computer-Netzwerken miteinander verbunden. Die Computersysteme, verbunden in solchen Netzwerken, kommunizieren miteinander, indem Informationen über deren elektronische Verbindungen gesendet werden. Die Netzwerke können in verschiedenen Typen von Topologien organisiert sein. 1 stellt eine solche Topologie dar. Ein Netzwerk 100 weist mehrere lokale Bereichsnetze (Local Area Network) 101-102 auf, die mit einem Routing-System 103 verbunden sind. Die Computersysteme jedes lokalen Bereichsnetzes sind mit der Kommunikations-Verbindung 101a-102a verbunden. Wenn ein Quellen-Computersystem an einem Local Area Network Informationen zu einem Bestimmungs-Computersystem an denselben Local Area Network sendet, präpariert das Quellen-Computersystem ein Paket, das die Adresse des Bestimmungs-Computersystems umfasst, und sendet das Paket auf der Kommunikations-Verbindung. Die anderen Computersysteme auf demselben Local Area Network (d.h. verbunden mit der Kommunikations-Verbindung) lesen das Paket, das gesendet wurde. Das Bestimmungs-Computersystem erfasst, dass diese Adresse in diesem Paket umfasst ist, und es verarbeitet das Paket entsprechend. Aufgrund geografischer und Geschwindigkeits-Betrachtungen umfassen Local Area Networks typischerweise nur eine begrenzte Anzahl von Computersystemen, die sich in enger Nähe zueinander befinden. Zum Beispiel kann eine Firma mit Büros an mehreren Orten ein Local Area Network an jedem Ort haben. Allerdings kann es erforderlich sein, dass Benutzer der Computersysteme Pakete zu einem anderen ungeachtet davon, mit welchen der Local Area Networks des Benutzers die Computersysteme verbunden sind, schicken müssen.
  • Um zu ermöglichen, dass Pakete von einem Local Area Network zu einem anderen Local Area Network geschickt werden, sind Routing-Systeme entwickelt worden. Ein Routing-System ist typischerweise ein dazu zugeordnetes Computersystem für spezielle Zwecke, mit dem jedes Local Area Network verbunden ist. Das Routing-System hält eine Querreferenz zwischen Adressen des Computersystems und dem Local Area Network, mit dem jedes Computersystem verbunden ist, aufrecht. Das Routing-System überwacht die Pakete, die auf jedem Local Area Network geschickt sind, um zu erfassen (unter Verwendung der Querreferenz), wenn ein Computersystem an einem Local Area Network ein Paket zu einem Computersystem auf einem anderen Local Area Network schickt. Wenn das Routing-System ein solches Paket erfasst, führt es dieses Paket auf der Kommunikations-Verbindung für das Local Area Network, mit dem das Bestimmungs-Computersystem verbunden ist, weiter. Auf diese Art und Weise bindet das Routing-System jedes der Local Area Networks in einem gesamten Netzwerk miteinander. Ähnliche Routing-Techniken werden dazu verwendet, Netzwerke, andere als Local Area Networks, miteinander zu verbinden. Zum Beispiel können solche Routing-Techniken auf Wide Area Network und in dem Internet verwendet werden.
  • Viele unterschiedliche Protokolle sind entwickelt worden, um zwei Computersystemen zu ermöglichen, Informationen auszutauschen. Falls zwei Computersysteme dasselbe Protokoll unterstützen, dann können sie Informationen austauschen. Bestimmte Protokolle sind so zugeschnitten worden, um den Austausch von bestimmten Typen von Informationen effektiv zu unterstützen. Zum Beispiel wurde das Internet Protokoll („IP") durch das Department auf Defense spezifiziert, um den Austausch von Informationen zwischen geografisch getrennten Computersystemen zu erleichtern. Das IP spezifiziert eine Bestimmung in einem Paket-Format, das eine Quelle und Bestimmungs-Computersysteme für Daten, um sie auszutauschen, identifiziert, allerdings nicht das Format der Daten selbst spezifiziert. Verschiedene zusätzliche Protokolle können in Verbindung mit dem IP verwendet werden, um das Format der Daten zu spezifizieren. Zum einen ist ein solches zusätzliches Protokoll das Übertragungs-Steuerprotokoll (Transmission Control Protocol – „TCP"). Das TCP spezifiziert weiterhin Unterprotokolle, wie beispielsweise das Hyper-Text-Sende-Protokoll (Hyper-Text Transmission Protocol – „HTTP") und das Datei-Übertragungs-Protokoll (File Transfer Protocol – „FTP"), die das Format der Daten des Pakets spezifizieren.
  • 2 zeigt ein Diagramm, das ein typisches Paket, gesendet auf einem Local Area Network, darstellt. Das Paket umfasst einen Netzwerk-Routing-Header, gefolgt durch protokoll-spezifische Daten. Der Netzwerk-Routing-Header kann die Bestimmungs- Computer-Adresse, die Quellen-Computer-Adresse und die Länge des Pakets umfassen. Die protokoll-spezifischen Daten umfassen eine Identifikation des Protokolls, und umfassen, in dem Fall des IP, die IP- Bestimmungs-Adresse, die IP-Quellen-Adresse und die Länge des IP-Teils des Pakets. Der Datenteil des Pakets enthält die Unterprotokoll-Identifikation plus andere Daten des Pakets.
  • Herkömmliche Routing-Systeme verwenden oftmals einen Caching-Mechanismus, um das Routing der Pakete zu beschleunigen. Wenn ein Paket empfangen wird, greift das Routing-System auf seine Querreferenz der Local Area Networks zu und bestimmt, zu welchem Local Area Network das Paket weitergeführt werden soll. Das Routing-System speichert dann diese Routing-Informationen in einem Cache-Speicher. Wenn darauf folgende Pakete empfangen werden, prüft das Routing-System seinen Cache-Speicher und falls die Routing-Informationen für das Paket in dem Cache-Speicher vorhanden sind, dann führt das Routing-System das Paket entsprechend den Informationen in dem Cache-Speicher weiter. Obwohl eine solche Caching-Technik dabei helfen kann, das Weiterführen von Paketen zu beschleunigen, werden solche Caching-Techniken nicht durch Routing-Systeme verwendet, wenn eine Paket-Filterung angewandt wird.
  • Eine Paket-Filterung wird oftmals durch einen Netzwerk-Administrator angewandt, um den Typ und die Zeitabstimmung von Paketen, die über das Netzwerk gesendet werden, zu beschränken. Zum Beispiel kann ein Netzwerk-Administrator wünschen, Pakete, die durch ein Computerspiel erzeugt werden, dahingehend zu beschränken, dass sie über das Netzwerk während normaler Geschäftsstunden übertragen werden. Ein Paket für ein Computerspiel kann, zum Beispiel, durch eine TCP- Bestimmungs-Adresse identifizierbar sein, die anzeigt, welche Anwendung auf dem Computersystem, identifiziert durch die IP-Bestimmungs-Adresse, diejenige ist, um das Paket zu empfangen. Demzufolge würde der Netzwerk-Administrator das Routing-System so konfigurieren, um nicht irgendwelche solche Pakete während normaler Geschäftsstunden weiterzuleiten. Auch kann der Netzwerk-Administrator wünschen, Pakete, basierend auf deren Quellen- und Bestimmungs-Adressen, herauszufiltern. Zum Beispiel kann eine Firma CEO wünschen, nur Pakete von bestimmten Quellen-Computersystemen und nicht von jedem Computersystem auf dem Netzwerk zu empfangen. Wenn eine Filterung in herkömmlichen Routing-Systemen angewandt wird, wird ein Caching gesperrt und ein langsamerer Vorgang einer Prüfung der Querreferenz-Informationen und der Filter-Informationen wird für jedes Paket verwendet.
  • Demzufolge wird die Verarbeitung nicht nur bei solchen gefilterten Paketen verlangsamt, sondern es werden auch alle Pakete verlangsamt, da der Cache-Speicher gesperrt ist.
  • Das Dokument WO-A-96/35988 offenbart ein Netzwerk-Brücken/Router-System, das einen zentralen Steuerkasten und eine Vielzahl von Eingangs/Ausgangs-Modulen umfasst. Die Module umfassen zwei, fünf oder acht Netzwerk-Verbindungen. Die Module und der zentrale Steuerkasten sind miteinander durch Busse verbunden. Die Module unterstützen eine Verarbeitung mit unterschiedlichen Niveaus einer Intelligenz, wobei einige Module Schnittstellen-Vorrichtungen von einem relativ passiven Typ sind, andere Module halbintelligente Verarbeitungs-Vorrichtungen auf einem Zwischen-Niveau sind, und Module einer dritten Art leistungsvollere Verarbeitungs-Module sind. Diese leistungsstärkeren Verarbeitungs-Module sind als Karten ausgeführt.
  • Im Betrieb werden Pakete für eine Durchsicht nach den Bestimmungen der Pakete analysiert. Pakete können an demselben Modul empfangen und versendet werden. In anderen Fällen wird das empfangene Paket zu dem zentralen Prozessor geschickt. Das bedeutet, dass bestimmte Klassen von Paketen lokal auf dem Modul weitergeführt werden, während andere zu der zentralen Maschine weitergeführt werden. Für diesen Zweck können Module Cache-Speicher umfassen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung schafft ein Verfahren in einem Mehrzweck-Computersystem zum Weiterleiten eines Netzwerk-Pakets, wie es in dem unabhängigen Anspruch 1 beansprucht ist. Die Erfindung schafft weiterhin ein entsprechendes Mehrzweck-Computersystem, wie es in dem unabhängigen Anspruch 10 beansprucht ist.
  • Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen definiert. Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren für eine schnelle Weiterleitung eines Netzwerk-Pakets in einem Mehrzweck-Computersystem durchgeführt. „Schnelles Weiterleiten" bezieht sich auf eine Netzwerk-Karte, die das Routing durchführt, im Gegensatz dazu, dass eine Haupt-CPU das Routing durchführt. Das Computersystem besitzt eine Haupt-Zentral-Verarbeitungseinheit und eine Netzwerk-Karte zum schnittstellenmäßigen Verbinden des Computersystems mit der Vielzahl von Netzwerken. Das Netzwerk-Paket wird in der Netzwerk-Karte empfangen und wird zu einem ausgewählten einen der Netzwerke zugeführt. Das empfangene Netzwerk-Paket wird durch die Netzwerk-Karte analysiert, um zu bestimmen, ob das Netzwerk-Paket schnell zu seinem Bestimmungs-Netzwerk durch die Netzwerk-Karte weitergeleitet werden sollte, oder, alternativ, durch die Haupt-CPU weitergeführt werden sollte. Wenn bestimmt ist, dass ein Netzwerk-Paket schnell zu dem Bestimmungs-Netzwerk durch die Netzwerk-Karte weitergeführt werden soll, wird es ohne Einwendung der Haupt-CPU schnell weitergeleitet.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird eine Netzwerk-Karte für ein schnittstellenmäßiges Verbinden eines Computersystems mit mehreren Netzwerken geschaffen. Die Netzwerk-Karte umfasst einen schnell weiterleitenden Mechanismus und mehrere Ports für ein schnittstellenmäßiges Verbinden mit der Vielzahl der Netzwerke. Der schnell weiterleitende Mechanismus leitet schnell ein Netzwerk-Paket, das in einer Netzwerk-Karte empfangen ist, zu einem Bestimmungs-Netzwerk ohne Intervention durch die Haupt-CPU des Computersystems weiter.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann ein schnelles Weiterleiten und Filtern gleichzeitig aktiv sein. Insbesondere wird ein Verfahren zum Verarbeiten von Netzwerk-Paketen, die an einer Netzwerk-Karte empfangen sind, an einem Computersystem praktiziert. Ein schnelles Weiterleiten ist so aktiv, dass ausgewählte Netzwerk-Pakete, die in der Netzwerk-Karte empfangen sind, schnell zu zumindest einem Bestimmungs-Netzwerk durch die Netzwerk-Karte weitergeleitet werden, und zwar ohne Intervention der Haupt-CPU. Eine Filterung ist gleichzeitig aktiv mit der schnellen Weiterleitung, so dass die Haupt-CPU ein Filtern bei zumindest einigen der Netzwerk-Paketen, empfangen in der Netzwerk-Karte, anwendet, um zu bestimmen, ob die Netzwerk-Pakete anzunehmen oder abzuweisen sind.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt eine Topologie von miteinander verbundenen Netzwerken dar.
  • 2 zeigt ein Diagramm, das ein typisches Paket, geschickt auf einem Local Area Network, darstellt.
  • 3 zeigt ein Blockdiagramm eines Mehrzweck-Computersystems 10, auf dem das schnelle Weiterleitungssystem arbeitet.
  • 4 zeigt ein Blockdiagramm, das Komponenten der Netzwerk-Karte in größerem Detail darstellt.
  • 5A-5D stellen die Inhalte des schnell weiterleitenden Cache-Speichers dar, wenn Pakete empfangen und gesendet werden.
  • 6A-6E zeigen die Felder in einer Anzahl von unterschiedlichen Typen von Paketen.
  • 7 zeigt ein Flussdiagramm des Programms der Netzwerk-Karte, die ein Paket von dem Netzwerk empfängt.
  • 8 zeigt ein Flussdiagramm eines Programms für die Netzwerk-Karte, um ein Paket von dem NDIS-Treiber zu empfangen.
  • 9 zeigt ein Flussdiagramm eines Programms der Betriebssysteme, um ein Paket, das von dem NDIS-Treiber empfangen wird, zu verarbeiten.
  • 10 zeigt ein Flussdiagramm eines Betriebssystem-Programms, um die Routing-Tabellen zu aktualisieren.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die vorliegende Erfindung schafft ein Verfahren und ein System für ein Routing bzw. ein Weiterleiten von Paketen unter Verwendung eines Caching-Mechanismus, gerade dann, wenn ein Filtern bei einigen der Pakete angewandt wird. Das Routing-System der vorliegenden Erfindung, auch bezeichnet als ein schnelles Weiterleitungssystem, wird auf einem Mehrzweck-Computersystem in einer Art und Weise ausgeführt, die ein Caching von Routing-Informationen ermöglicht, und in einer Art und Weise, die das Overhead, das der Haupt-CPU des Computersystems auferlegt ist, minimiert. Demzufolge ermöglicht das schnelle Weiterleitungssystem nicht nur ein Caching, wenn gefiltert wird, sondern ermöglicht auch dem Mehrzweck-Computersystem, einen Caching-Mechanismus einzusetzen.
  • Das schnell weiterleitende System wird nachfolgend in Bezug auf eine Ausfüh rungsform beschrieben, die Internet-Protokoll-(IP)-Pakete ebenso wie Internet-Protocol-Extented (IPX) Pakete weiterleitet. Allerdings werden Fachleute auf dem betreffenden Fachgebiet erkennen, dass die vorliegende Erfindung nicht auf Ausführungsformen beschränkt ist, die nur mit diesen Typen von Netzwerk-Paketen arbeiten; im Gegensatz dazu kann die vorliegende Erfindung auch in Verbindung mit anderen Typen von Netzwerk-Paketen praktiziert werden.
  • 3 zeigt ein Blockdiagramm eines Mehrzweck-Computersystems 10, auf dem das schnell weiterleitende System arbeitet. Das Computersystem ist mit einer Anzahl von unterschiedlichen Computer-Netzwerken 20 verbunden. Das Computersystem umfasst eine zentrale Verarbeitungseinheit (CPU) 12, die mit einer Netzwerk-Karte 14 über einen Bus 16 verbunden ist. Die Netzwerk-Karte umfasst mehrere Ports, die als Netzwerk-Schnittstellen-Verbindungen (Network Interface Connections – „NICs") bezeichnet werden. Jede NIC ist mit einer Kommunikations-Verbindung eines Netzwerks verbunden und kann auch dazu verwendet werden, Pakete auf dem Netzwerk zu senden und zu empfangen. Typische Typen von Netzwerk-Karten umfassen 802.3, DIX, TR, Fast Ethernet und FDDI Karten. Das Computersystem läuft auf einem Betriebssystem 18, wie beispielsweise einem Netzwerk-Betriebssystem. Zu Zwecken der Diskussion nachfolgend wird angenommen, dass das Betriebssystem das Microsoft® Windows® NT Netzwerk-Betriebssystem, vertrieben durch Microsoft Corporation, Redmond, Washington, ist. Das Betriebssystem umfasst eine Anzahl von unterschiedlichen Komponenten: eine IP-Filter-Komponente 22 zum Durchführen einer Filterung der IP-Netzwerk-Pakete und eine IP-Weiterleitungs-Komponente 24 zum Weiterleiten von IP-Netzwerk-Paketen. Das Betriebssystem umfasst auch eine IPX-Filter-Komponente 26 und eine IPX-Weiterleitungs-Komponente 28, um IPX-Netzwerk-Pakete weiterzuleiten. Das Betriebssystem besitzt auch eine Netzwerk-Treiber-Schnittstellen-Spezifikation-(NDIS)-Treiber-Komponente 30. Die NDIS-Treiber-Komponente bildet eine Schnittstelle zwischen dem Betriebssystem und der Netzwerk-Karte. Das Betriebssystem ruft Dienste des NDIS-Treibers auf, um Netzwerk-Pakete zu senden und zu empfangen.
  • 4 zeigt ein Blockdiagramm, das Komponenten der Netzwerk-Karte in weiterem Detail darstellt. Die Netzwerk-Karte umfasst Komponenten zum schnittstellenmäßigen Verbinden des Routing-Systems mit einer Anzahl von unterschiedlichen Computer-Netzwerken. Die Netzwerk-Karte umfasst eine Anzahl von NICs. Diese NICs sind als NIC1, NIC2, NIC3 und NIC4 bezeichnet. Die Netzwerk-Karte umfasst auch einen Mikroprozessor 32, einen Ethernet-Chip 34 und einen Speicher 36, wie beispielsweise einen Random Access Memory (RAM). Der Speicher enthält einen schnell weiterleitenden Cache-Speicher 76 und einen Cache-Speicher 80 für ankommende Pakete. Obwohl ein schnell weiterleitender Cache-Speicher und ein Cache-Speicher für ankommende Pakete dargestellt sind, werden Fachleute auf dem betreffenden Fachgebiet erkennen, dass separate Versionen dieser Cache-Speicher für IP-Netzwerk-Pakete und IPX-Netzwerk-Pakete verwendet werden können. Der schnell weiterleitende Cache-Speicher hält Informationen, die das schnelle Weiterleiten von Netzwerk-Paketen durch die Netzwerk-Karte erleichtern. Wie in weiterem Detail nachfolgend diskutiert werden wird, dient der schnell weiterleitende Cache als eine Durchsichts-Tabelle, mit der ankommende Netzwerk-Pakete verglichen werden können, um zu bestimmen, ob sie durch die Netzwerk-Karte schnell weitergeleitet werden sollen.
  • In einer alternativen Ausführungsform, in der mehrere Netzwerk-Karten eingesetzt sind, können die Cache-Speicher in einem gemeinsam geteilten Speicher an dem Computersystem 10 gespeichert sein. Wenn eine Netzwerk-Karte ein Paket empfängt, greift sie auf den gemeinsam geteilten Speicher zu, um auf den schnell weiterleitenden Cache-Speicher zuzugreifen, ohne die Haupt-CPU zu unterbrechen. Auch besitzt jede Netzwerk-Karte einen Zugang zu einer Auflistung zwischen den Local Area Networks, die mit jeder Netzwerk-Karte verbunden sind. Auf diese Art und Weise kann jede Netzwerk-Karte Pakete zu Local Area Networks, verbunden mit anderen Netzwerk-Karten, weiterleiten.
  • Die 5A-5D stellen die Inhalte des schnell weiterleitenden Cache-Speichers dar, wenn Pakete empfangen und gesendet werden. Der Cache-Speicher enthält eine Reihe für jeden eindeutigen Paket-Identifizierer der Pakete, die schnell weitergeleitet werden sollen. Jede Reihe enthält einen Paket-Identifizierer, der Pakete identifiziert, die schnell weitergeleitet werden sollen, eine Netzwerk-Adresse, die das Bestimmungs-Computersystem anzeigt, und ein einrahmendes Feld, das anzeigt, dass der Typ einer Rahmung bzw. eines Framing, der auf das Paket angewandt werden soll, anzeigt, und eine NIC-Port-Nummer, die den Port der Netzwerk-Karte identifiziert, über den die Pakete mit diesem Paket-Identifizierer gesendet werden sollen. Der Paket-Identifizierer ist eine Kombination von Feldern von dem Paket, das Pakete identifiziert, die schnell weitergeleitet werden sollen, und zwar in derselben Art und Weise. Wie durch 5A dargestellt ist, ist der schnell weiterleitende Cache-Speicher zu Anfang leer. Wenn die Netzwerk-Karte ein Paket empfängt, prüft sie den Cache-Speicher, um zu bestimmen, ob eine Reihe mit dem entsprechenden Paket-Identifizierer in dem Cache-Speicher vorhanden ist. In diesem Fall sind, da der Cache-Speicher leer ist, keine Reihen vorhanden, und die Netzwerk-Karte leitet das Paket über den NDIS-Treiber zu dem Betriebssystem weiter. Die Netzwerk-Karte speichert auch das Paket in dem Cache-Speicher für ankommende Pakete. Wenn das Betriebssystem das Paket empfängt, bestimmt es, ob irgendeine Filterung Anwendung findet und ob das Paket auf einem anderen Netzwerk weitergeleitet werden soll. Falls keine Filterung Anwendung findet und das Paket weitergeleitet werden soll, dann führt das Betriebssystem das Paket zu der Netzwerk-Karte über den NDIS-Treiber zum Weiterleiten auf dem geeigneten Local Area Network zurück. Wenn die Netzwerk-Karte das Paket empfängt, speichert sie einen Eintritt in den schnell weiterleitenden Cache-Speicher, wie dies in 5B dargestellt ist. In diesem Fall zeigt der Paket-Identifizierer „<A5, B2, TCP, 14, 25>" an, dass die IP-Quelle Adresse „A5" ist, die IP-Bestimmung die Adresse „B2" ist, das Protokoll „TCP" ist, die TCP-Quelle Port 14 ist und die TCP-Bestimmung Port 25 ist. Die Netzwerk-Adresse, zu der die Pakete mit diesem Paket-Identifizierer weitergeleitet werden sollen, ist „E7". Das abgehende Paket muss entsprechend zu dem 802.3 Protokoll gerahmt werden und die Pakete sollten über die NIC-Port-Zahl 3 geführt werden. Die Netzwerk-Karte sucht dann das Paket von dem Cache-Speicher für ankommende Pakete auf, präpariert das Paket für eine Weiterleitung und sendet das Paket über den NIC-Port. Wenn die Netzwerk-Karte das nächste Paket mit diesem Paket-Identifizierer empfängt, erzeugt sie den Paket-Identifizierer und bestimmt, ob eine Reihe mit diesem Paket-Identifizierer in dem schnell weiterleitenden Cache-Speicher vorhanden ist. Falls dies der Fall ist, sucht die Netzwerk-Karte die Reihe auf und aktualisiert die Netzwerk-Adresse für das Paket, stellt die Rahmung entsprechend zu dem 802.3 Protokoll ein und sendet das Paket auf dem NIC-Port Nummer 3. Als Teil einer Verarbeitung dekrementiert die Netzwerk-Karte auch das Time-To-Live Zeichen des Pakets. Das Time-To-Live Zeichen wird zu Anfang auf die Zahl von Malen eingestellt, für die das Paket auf diese Art und Weise zu dem Bestimmungsort weitergeleitet werden kann. Falls das Time-To-Live Zeichen unterhalb von Null absinkt, dann kann das Paket nicht erneut weitergeleitet werden, und die Netzwerk-Karte sondert das Paket aus, indem es nicht weitergeleitet wird. Auch sondert, falls die Prüfsumme in dem Paket nicht korrekt ist, die Netzwerk-Karte das Paket aus.
  • Schließlich wird die Netzwerk-Karte ein Paket mit einer unterschiedlichen Paket-Identifikation empfangen. Die Netzwerk-Karte erzeugt einen Paket-Identifizierer für dieses Paket und bestimmt, dass dort keine Reihe in dem Cache für diesen Paket-Identifizierer vorhanden ist. Die Netzwerk-Karte leitet dann das Paket zu dem Betriebssystem weiter. Das Betriebssystem wendet die geeignete Filterung an. In diesem Fall bestimmt das Betriebssystem, dass das Paket nicht weitergeleitet werden sollte. Demzufolge leitet das Betriebssystem nicht das Paket zu der Netzwerk-Karte weiter. Die Netzwerk-Karte aktualisiert demzufolge nicht den Cache-Speicher, um eine Reihe für den Paket-Identifizierer zu erhalten. Demzufolge erzeugt, wenn das nächste Paket mit diesem Paket-Identifizierer empfangen wird, die Netzwerk-Karte den Paket-Identifizierer und bestimmt, dass dort kei ne Reihe in dem Cache-Speicher für diesen Paket-Identifizierer vorhanden ist, und schickt das Paket zu dem Betriebssystem. 5C stellt die Inhalte des Cache-Speichers dar, nachdem ein Paket für ein anderes Paket empfangen worden ist, und der schnell weiterleitende Cache-Speicher für dieses Paket aktualisiert worden ist. In diesem Fall ist der Paket-Identifizierer „<E1, B2, UDP, 36, 97>", die Netzwerk-Cache-Adresse ist „A5", das Framing ist Ethernet und die NIC-Port-Adresse ist 1. Gelegentlich kann das Betriebssystem Anforderungen empfangen, um seine Routing-Informationen zu ändern. Zum Beispiel kann ein Computersystem von einem Local Area Network entfernt werden und kann in einem anderen Local Area Network installiert werden. In einem solchen Fall müssten Pakete, weitergeführt zu diesem Computersystem, über einen unterschiedlichen NIC-Port gesendet werden. Wenn das Betriebssystem seine Routing-Informationen aktualisiert, weist es auch die Netzwerk-Karte an, ihren schnell weiterleitenden Cache-Speicher zu löschen, da die Informationen in dem Cache-Speicher nicht länger gültig sein können: Die Netzwerk-Karte löscht ihren Cache-Speicher durch Entfernen aller Eingänge von ihrem Cache-Speicher, wie dies in 5D dargestellt ist.
  • In bestimmten Situationen kann das Betriebssystem spezifische Informationen aktualisieren müssen, die nicht den gesamten, schnell weiterleitenden Cache-Speicher beeinflussen. In einer solchen Situation kann das Betriebssystem die Netzwerk-Karte anweisen, nur den Teil ihres schnell weiterleitenden Cache-Speichers zu löschen, der sich auf den aktualisierten Teil der Routing-Informationen bezieht. Zum Beispiel kann das Betriebssystem eine Auflistung von IP-Adressen zu Ethernet-Adressen aufrechterhalten. Falls ein Paket nicht zu einer bestimmten Ethernet-Adresse für eine bestimmte Zeitperiode geschickt wird, kann das Betriebssystem die Auflistungen, die sich auf diese Ethernet-Adresse beziehen, löschen, und kann die Netzwerk-Karte anweisen, nur Teile des schnell weiterleitenden Cache-Speichers, die sich auf diese Ethernet-Adresse beziehen, zu löschen. Auf diese Art und Weise kann die Netzwerk-Karte ein schnelles Weiterleiten von Paketen basierend auf den Bereichen des Cache-Speichers, die nicht gelöscht sind, fortführen.
  • Die 6A-6E zeigen die relevanten Felder einer Zahl von unterschiedlichen Typen von Paketen an. 6A zeigt die Felder, die bei einer schnellen Weiterleitung von einem IP-Paket-Header 38 verwendet werden. Ein Offset 12 innerhalb des IP-Paket-Headers 38 ist ein Quellen-Adressen-Feld 40, das eine Adresse für die Quelle hält, von der das Paket stammte. An dem Offset 16 ist ein Bestimmungs-Adressen-Feld 42 vorhanden, das eine Adresse für die Bestimmung hält, zu der das Paket hin bestimmt ist. Das Protokoll-Feld 44 ist ein Offset 9 innerhalb des IP-Paket-Headers 38 und zeigt ein Protokoll an, wie beispielsweise TCP. 6B stellt Felder eines TCP-Paket-Headers 44 dar. Ein Quellen-Port-Feld 46 wird bei einem Offset von 0 vorgefunden und hält einen Wert, der den Quellen-Port der Anwendung, die das Paket schickte, identifiziert. Ein Bestimmungs-Port-Feld 48 wird bei einem Offset 2 vorgefunden und hält einen Wert, der den Bestimmungs-Port der Anwendung identifiziert, zu der das Paket geschickt wird. 6C zeigt einen Bereich eines UPD-Paket-Headers 50, der ein Quellen-Port-Feld 52 bei einem Offset von 0 und ein Bestimmungs-Port-Feld 54 bei einem Offset von 2 umfasst. 6D zeigt ein ICMP-Paket 56, das ein Typ-Feld 58 bei einem Offset von 0 und ein Code-Feld 60 bei einem Offset von 1 hält. Als letztes zeigt 6E einen IPX-Paket-Header 62, der ein Bestimmungs-Adressen-Feld 66 bei einem Offset, ein Quellen-Adressen-Feld 68 bei einem Offset 18 und ein Paket-Feld 64 bei einem Offset 5 besitzt.
  • Manchmal kann ein Paket selbst in Paket-Fragmente unterteilt werden, die einzeln gesendet werden. Wenn die Paket-Fragmente empfangen werden, werden sie zu dem Paket wieder zusammengestellt. Allerdings enthalten Paket-Fragmente nicht alle Informationen über den Paket-Identifizierer, der verwendet wird, um eindeutig Informationen in dem schnell weiterleitenden Cache-Speicher zu identifizieren. Im Gegensatz dazu enthält ein Paket-Fragment ein fragmentiertes Zeichen und ein Identifizierer-Feld. Wenn ein Paket fragmentiert ist, wird ein eindeutiger Paket-Identifizierer in jedem Paket-Fragment platziert, und das fragmentierte Zeichen wird eingestellt. Wenn ein fragmentiertes Paket empfangen wird, prüft die Netzwerk-Karte zuerst, ob der Identifizierer in dem Fragment-Cache-Speicher vorhanden ist. Falls dies der Fall ist, führt die Netzwerk-Karte schnell das Paket weiter, auch führt sie das Fragment zu dem Betriebssystem weiter und fügt es zu dem Fragment-Cache-Speicher hinzu, wenn es gesendet wird. Auf diese Art und Weise kann die Netzwerk-Karte schnell Paket-Fragmente weiterleiten.
  • Die 7-10 zeigen Flussdiagramme, die die Verarbeitung darstellen, die durch die Netzwerk-Karte und das Betriebssystem, wenn Pakete verarbeitet werden, durchgeführt wird. 7 zeigt ein Flussdiagramm des Programms der Netzwerk-Karte, die ein Paket von dem Netzwerk empfängt. Dieses Programm empfängt Pakete und bestimmt, ob schnell weiterleitende Informationen für das Paket in dem schnell weiterleitenden Cache- Speicher vorhanden sind. Falls die schnell weiterleitenden Informationen in dem Cache-Speicher vorhanden sind, leitet das Programm das Paket schnell weiter, ansonsten schickt das Programm das Paket zu dem NDIS-Treiber. In dem Schritt 701 extrahiert das Programm den Paket-Identifizierer von dem empfangenen Netzwerk-Paket. Im Schritt 702 fährt, falls eine Reihe in dem schnell weiterleitenden Cache-Speicher zu dem extrahierten Paket-Identifizierer passt, dann das Programm am Schritt 704 fort, auch führt das Programm an dem Schritt 703 fort. In dem Schritt 703 speichert das Programm das Paket in dem ankommenden Cache-Speicher und leitet das Paket zu dem NDIS-Treiber weiter, der das Paket weiter zu dem Betriebssystem weiterleitet und beendet. In den Schritten 704-706 leitet das Programm das Paket schnell weiter. Im Schritt 705 aktualisiert das Programm die Netzwerk-Quelle und die Bestimmungs-Adresse in dem Paket mit den Informationen von dem schnell weiterleitenden Cache-Speicher. In dem Schritt 706 stellt das Programm das Framing des Pakets, falls notwendig, ein. In dem Schritt 707 sendet das Programm das aktualisierte Paket zu dem NIC-Port, angegeben in dem Cache-Speicher, und endet. Zusätzlich aktualisiert das Programm das Time-To-Live-Feld in dem Paket. Falls der Wert des Time-To-Live-Felds unterhalb von Null abfällt, dann sondert das Programm das Paket aus. Das Programm aktualisiert auch die Prüfsumme des Pakets so, wie dies geeignet ist. Zum Beispiel berechnet das Programm erneut die IP-Header-Prüfsumme basierend auf dem aktualisierten Wert des Time-To-Live-Felds. Falls irgendwelche Options-Felder in dem Paket eingestellt sind, dann schickt das Programm das Paket zu dem Betriebssystem, im Gegensatz dazu, das Paket schnell weiterzuleiten. Das Options-Feld zeigt an, dass eine weitere Verarbeitung benötigt wird, bevor das Paket weitergeleitet werden kann. Falls aus irgendeinem Grund die Netzwerk-Karte nicht das Paket verarbeiten kann, schickt sie das Paket zu dem Betriebssystem für eine weitere Verarbeitung. Zum Beispiel leitet, falls die IP-Header-Prüfsumme nicht korrekt ist, oder das IP-Header-Time-To-Live Null ist, die Netzwerk-Karte das Paket zu dem Betriebssystem weiter.
  • 8 zeigt ein Flussdiagramm eines Programms für die Netzwerk-Karte, um ein Paket von dem NDIS-Treiber zu empfangen. Wenn das Programm ein Paket von dem NDIS-Treiber empfängt, aktualisiert es den schnell weiterleitenden Cache-Speicher entsprechend und leitet das Paket weiter. Im Schritt 801 erzeugt das Programm eine Reihe und fügt die Reihe zu dem schnell weiterleitenden Cache-Speicher hinzu. Im Schritt 802 sucht das Programm das Paket von dem Cache-Speicher für die ankommenden Pakete auf und stellt das Framing des Pakets so ein, wie dies notwendig ist. Im Schritt 803 sendet das Programm das Paket zu dem NIC-Port, angezeigt durch die Reihe, und endet.
  • 9 zeigt ein Flussdiagramm eines Programms der Betriebssysteme, um ein Paket zu verarbeiten, das von dem NDIS-Treiber empfangen wird. Dieses Programm prüft seine verschiedenen Filter-Kriterien, um zu bestimmen, ob ein Paket auszusondern ist. Falls das Paket nicht ausgesondert ist, dann unterdrückt das Programm das Weiterleiten des Pakets zu der Netzwerk-Karte. Im Schritt 901 wendet das Programm die verschiedenen Filter-Kriterien auf das empfangene Paket an. Die Filter-Kriterien können ein Aussondern von Paketen, die zu einer bestimmten IP-Bestimmungs-Adresse geschickt sind, oder ein Aussondern von Paketen, die zu einem bestimmten TCP-Bestimmungs-Port gerichtet sind, umfassen. Die Filter-Informationen werden typischerweise durch einen Netzwerk-Administrator gewartet. Im Schritt 902 endet, falls das empfangene Paket herausgefiltert worden ist, dann das Programm, auch endet das Programm am Schritt 903. Durch Beenden bewirkt, wenn das Paket herausgefiltert ist, das Programm das Aussondern des Pakets. Im Schritt 903 sucht das Programm die neue Netzwerk-Quelle und Bestimmungs-Adressen für das Paket von den Routing-Tabellen auf. Im Schritt 905 sendet das Programm das Paket zu dem NDIS-Treiber, der das Paket zu der Netzwerk-Karte weiterleitet. Das Programm ist dann erledigt.
  • 10 zeigt ein Flussdiagramm eines Betriebssystem-Programms, um die Routing-Tabellen zu aktualisieren. Das Programm empfängt neue Routing-Anweisungen, aktualisiert seine Routing-Tabelle und weist den NDIS-Treiber darauf hin, den schnell weiterleitenden Cache-Speicher zu löschen. Der NDIS-Treiber weist daraufhin die Netzwerk-Karte an, ihren schnell weiterleitenden Cache-Speicher zu löschen.
  • Während die vorliegende Erfindung unter Bezugnahme auf eine bevorzugte Ausführungsform davon beschrieben worden ist, werden Fachleute auf dem betreffenden Fachgebiet erkennen, dass verschiedene Änderungen der Form und des Details vorgenommen werden können, ohne den vorgesehenen Schutzumfang der vorliegenden Erfindung, wie er in den beigefügten Ansprüchen definiert ist, zu verlassen. Zum Beispiel können die schnell weiterleitenden Techniken der vorliegenden Erfindung alternativ durch den NDIS-Treiber, im Gegensatz zu der Netzwerk-Karte, ausgeführt werden. Unter einer solchen Ausführung können Standard-Netzwerk-Karten ohne Modifikation verwendet werden. Der NDIS-Treiber würde den schnell weiterleitenden Cache-Speicher aufrechterhalten und das schnelle Weiterleiten von Paketen steuern. Wenn der NDIS-Treiber ein Paket von einer Netzwerk-Karte empfängt, würde er seinen Cache-Speicher prüfen, um zu bestimmen, ob das Paket schnell weitergeleitet werden sollte. Falls das Paket schnell weitergeleitet werden soll, würde der NDIS-Treiber die geeignete Netzwerk-Karte so anweisen, das Paket weiterzuleiten. Ansonsten schickt der NDIS-Treiber das Paket zu dem Betriebssystem. Auch können, obwohl die Techniken der Erfindung dahingehend beschrieben sind, dass sie als Software ausgeführt sind, die auf eine Netzwerk-Karte mit einem Prozessor läuft, die Techniken auch fest verdrahtet sein unter Verwendung von logischen Schaltungen, im Gegensatz zu der Verwendung einer Software. Auch können unterschiedliche Felder von den Paketen ausgewählt werden, um einen Paket-Identifizierer für Pakete zu bilden, die dazu in Bezug stehen, das bedeutet um schnell in derselben Art und Weise weitergeleitet zu werden.

Claims (11)

  1. Verfahren in einem Mehrzweck-Computersystem (10) zum Weiterleiten eines Netzwerk-Paketes von einem Quellen-Netzwerk zu einem Ziel-Netzwerk, wobei das Computersystem eine Haupt-CPU (12) sowie eine Netzwerk-Karte (14) hat und die Netzwerk-Karte (14) mit dem Quellen- und dem Ziel-Netzwerk verbunden ist, wobei das Verfahren umfasst: Empfangen des Netzwerk-Paketes an der Netzwerk-Karte (14), wobei das Netzwerk-Paket eine Ziel-Adresse (42, 48, 54, 66) hat; Analysieren des empfangenen Netzwerk-Paketes, um festzustellen, ob das Netzwerk-Paket durch die Netzwerk-Karte (14) zu seinem Ziel weitergeleitet werden sollte oder zu der Haupt-CPU (12) weitergeleitet werden sollte; Senden des Netzwerk-Paketes zu dem Ziel-Netzwerk durch die Netzwerk-Karte (14) ohne Eingriff durch die Haupt-CPU (12), wenn festgestellt wird, dass das Netzwerk-Paket durch die Netzwerk-Karte (14) zu seinem Ziel weitergeleitet werden sollte; und Liefern des empfangenen Netzwerk-Paketes zu der Haupt-CPU (12), um das Netzwerk-Paket zu filtern und festzustellen, ob das Netzwerk-Paket angenommen oder verworfen wird, wenn festgestellt wird, dass das Netzwerk-Paket zu der Haupt-CPU (12) weitergeleitet werden sollte.
  2. Verfahren nach Anspruch 1, wobei die Netzwerk-Karte (14) eine Multiport-Netzwerk-Karte ist und das Netzwerk-Paket an einem ersten Port empfangen und über einen zweiten Port gesendet wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Computersystem des Weiteren einen Bus (16) umfasst, über den die Haupt-CPU (12) und die Netzwerk-Karte (14) kommunizieren, und wobei das Senden des Netzwerk-Paketes ausgeführt wird, ohne das Netzwerk-Paket über den Bus (16) zu leiten.
  4. Verfahren nach einem der Ansprüche 1 bis 3, das des Weiteren das Führen eines Schnellweiterleitungs-Cache (76) auf der Netzwerk-Karte (14) zum Einsatz beim Analysieren umfasst, wobei der Schnellweiterleitungs-Cache (76) über Leitweginformationen verfügt, auf die zugegriffen wird, um festzustellen, welche Netzwerk-Pakete durch die Netzwerk-Karte (14) ohne Eingriff durch die Haupt-CPU (12) zu senden sind.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei Filtern ermöglicht wird, während gleichzeitig Senden durch die Netzwerk-Karte (14) ohne Eingriff durch die Haupt-CPU (12) ebenfalls ermöglicht wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, das so eingerichtet ist, dass eine Vielzahl von Netzwerk-Paketen weitergeleitet wird, wobei wenigstens einige der Netzwerk-Pakete Internetprotokoll (IP)-Netzwerk-Pakete sind.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die Haupt-CPU (12) der Netzwerk-Karte (14) Leitweg-Informationen zum schnellen Weiterleiten des Netzwerk-Paketes bereitstellt.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei die Netzwerk-Karte (14) der Haupt-CPU (12) die Netzwerk-Pakete bereitstellt, die nicht schnell weitergeleitet werden sollen.
  9. Computerlesbares Medium, das Befehle enthält, die ein Mehrzweck-Computersystem (10) veranlassen, das Verfahren nach einem der Ansprüche 1 bis 8 durchzuführen.
  10. Mehrzweck-Computersystem (10) zum Weiterleiten eines Netzwerk-Paketes von einem Quellen-Netzwerk zu einem Ziel-Netzwerk, wobei das Computersystem eine Haupt-CPU (12) sowie eine Netzwerk-Karte (14) umfasst und die Netzwerk-Karte (14) umfasst: eine Einrichtung zum Empfangen eines Netzwerk-Paketes von dem Quellen-Netzwerk, wobei das Netzwerk-Paket eine Zieladresse (42, 48, 54, 66) hat; eine Einrichtung zum Analysieren des empfangenen Netzwerk-Paketes, um festzustellen, ob das Netzwerk-Paket durch die Netzwerk-Karte (14) zu seinem Ziel weitergeleitet werden sollte oder zu der Haupt-CPU (12) weitergeleitet werden sollte; eine Einrichtung zum Senden des Netzwerk-Paketes zu dem Ziel-Netzwerk ohne Eingriff durch die Haupt-CPU (12), wenn festgestellt wird, dass das Netzwerk-Paket durch die Netzwerk-Karte (14) zu seinem Ziel weitergeleitet werden sollte; und eine Einrichtung zum Liefern des empfangenen Netzwerk-Paketes zu der Haupt-CPU (12) wenn festgestellt wird, dass das Netzwerk-Paket zu der Haupt-CPU (12) weitergeleitet werden sollte; wobei die Haupt-CPU (12) eine Filtereinrichtung zum Filtern des Netzwerk-Paketes umfasst, um festzustellen, ob das Netzwerk-Paket angenommen oder verworfen wird.
  11. Computersystem nach Anspruch 10, das zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 8 eingerichtet ist.
DE69830491T 1997-07-10 1998-07-08 Cut-through -durchschaltung und paketfilterung in einem rechnersystem Expired - Lifetime DE69830491T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/891,020 US6067569A (en) 1997-07-10 1997-07-10 Fast-forwarding and filtering of network packets in a computer system
US891020 1997-07-10
PCT/US1998/014135 WO1999003044A2 (en) 1997-07-10 1998-07-08 Fast-forwarding and filtering of network packets in a computer system

Publications (2)

Publication Number Publication Date
DE69830491D1 DE69830491D1 (de) 2005-07-14
DE69830491T2 true DE69830491T2 (de) 2005-11-03

Family

ID=25397495

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69830491T Expired - Lifetime DE69830491T2 (de) 1997-07-10 1998-07-08 Cut-through -durchschaltung und paketfilterung in einem rechnersystem

Country Status (6)

Country Link
US (1) US6067569A (de)
EP (1) EP0993638B1 (de)
JP (1) JP3399928B2 (de)
AT (1) ATE297570T1 (de)
DE (1) DE69830491T2 (de)
WO (1) WO1999003044A2 (de)

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1165969A (ja) * 1997-08-19 1999-03-09 Toshiba Corp サーバ装置および通信接続方法並びに通信の接続を行うプログラムを記録した記録媒体
US6061742A (en) * 1997-10-10 2000-05-09 Nortel Networks Corporation Computer network adaptor
US7237036B2 (en) * 1997-10-14 2007-06-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding a TCP connection
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US6757746B2 (en) * 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6807581B1 (en) 2000-09-29 2004-10-19 Alacritech, Inc. Intelligent network storage interface system
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US7133940B2 (en) * 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US7185266B2 (en) * 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US7174393B2 (en) 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6658480B2 (en) * 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US7167927B2 (en) 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6697868B2 (en) 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6330610B1 (en) * 1997-12-04 2001-12-11 Eric E. Docter Multi-stage data filtering system employing multiple filtering criteria
US6401171B1 (en) 1998-02-27 2002-06-04 Cisco Technology, Inc. Method and device for storing an IP header in a cache memory of a network node
US6560229B1 (en) * 1998-07-08 2003-05-06 Broadcom Corporation Network switching architecture with multiple table synchronization, and forwarding of both IP and IPX packets
US7664883B2 (en) * 1998-08-28 2010-02-16 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands
US6295296B1 (en) * 1998-09-08 2001-09-25 Cisco Technology, Inc. Use of a single data structure for label forwarding and imposition
US20020188720A1 (en) * 1998-12-28 2002-12-12 William F. Terrell Method and apparatus for dynamically controlling the provision of differentiated services
US6678283B1 (en) * 1999-03-10 2004-01-13 Lucent Technologies Inc. System and method for distributing packet processing in an internetworking device
FR2797056B1 (fr) 1999-07-28 2001-09-07 Inst Francais Du Petrole Methode d'analyse de signaux acquis pour pointer automatiquement sur eux au moins un instant significatif
US6795866B1 (en) * 1999-10-21 2004-09-21 Sun Microsystems, Inc. Method and apparatus for forwarding packet fragments
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6854063B1 (en) * 2000-03-03 2005-02-08 Cisco Technology, Inc. Method and apparatus for optimizing firewall processing
US6892237B1 (en) * 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US8463839B2 (en) 2000-03-28 2013-06-11 Cybernet Systems Corporation Distributed computing environment
US7139743B2 (en) 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US8095508B2 (en) * 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
US6711558B1 (en) 2000-04-07 2004-03-23 Washington University Associative database scanning and information retrieval
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US20020010800A1 (en) * 2000-05-18 2002-01-24 Riley Richard T. Network access control system and method
ATE403323T1 (de) * 2000-05-24 2008-08-15 Voltaire Ltd Gefilterte kommunikation von anwendung zu anwendung
JP2004526218A (ja) * 2000-08-24 2004-08-26 ボルテール アドバンスト データ セキュリティ リミテッド 相互接続されたファブリックにおける高度にスケーラブルで高速のコンテンツ・ベース・フィルタリング及び負荷均衡化システム及び方法
US20020032871A1 (en) * 2000-09-08 2002-03-14 The Regents Of The University Of Michigan Method and system for detecting, tracking and blocking denial of service attacks over a computer network
US20020035698A1 (en) * 2000-09-08 2002-03-21 The Regents Of The University Of Michigan Method and system for protecting publicly accessible network computer services from undesirable network traffic in real-time
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
ATE550852T1 (de) 2000-09-29 2012-04-15 Alacritech Inc Intelligentes netzwerkspeicherschnittstellensystem und solche einrichtungen
DE60142152D1 (de) 2000-12-15 2010-07-01 Ibm Virtualisierung von E/A-Adapterressourcen
EP1215585B1 (de) 2000-12-15 2010-05-19 International Business Machines Corporation Virtualisierung von E/A-Adapterressourcen
US7716330B2 (en) 2001-10-19 2010-05-11 Global Velocity, Inc. System and method for controlling transmission of data packets over an information network
US20030081599A1 (en) * 2001-10-30 2003-05-01 Chui-Tsang Wu System and method for data transmission control
US7240123B2 (en) * 2001-12-10 2007-07-03 Nortel Networks Limited Distributed routing core
US7509393B2 (en) * 2001-12-19 2009-03-24 International Business Machines Corporation Method and system for caching role-specific fragments
US7730154B2 (en) * 2001-12-19 2010-06-01 International Business Machines Corporation Method and system for fragment linking and fragment caching
US7412535B2 (en) * 2001-12-19 2008-08-12 International Business Machines Corporation Method and system for caching fragments while avoiding parsing of pages that do not contain fragments
US20030188021A1 (en) * 2001-12-19 2003-10-02 International Business Machines Corporation Method and system for processing multiple fragment requests in a single message
US7426534B2 (en) * 2001-12-19 2008-09-16 International Business Machines Corporation Method and system for caching message fragments using an expansion attribute in a fragment link tag
US7587515B2 (en) * 2001-12-19 2009-09-08 International Business Machines Corporation Method and system for restrictive caching of user-specific fragments limited to a fragment cache closest to a user
US7403999B2 (en) * 2001-12-28 2008-07-22 International Business Machines Corporation Classification support system and method for fragmented IP packets
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US7496689B2 (en) * 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7711844B2 (en) * 2002-08-15 2010-05-04 Washington University Of St. Louis TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks
US7337241B2 (en) * 2002-09-27 2008-02-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7191241B2 (en) * 2002-09-27 2007-03-13 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US20040088262A1 (en) * 2002-11-06 2004-05-06 Alacritech, Inc. Enabling an enhanced function of an electronic device
CA2759064C (en) 2003-05-23 2017-04-04 Washington University Intellegent data storage and processing using fpga devices
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US7565454B2 (en) * 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
US7444515B2 (en) * 2003-08-14 2008-10-28 Washington University Method and apparatus for detecting predefined signatures in packet payload using Bloom filters
US7181675B2 (en) * 2003-10-06 2007-02-20 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for checksum offloading
US8090871B2 (en) * 2003-10-20 2012-01-03 International Business Machines Corporation Determining a remote management processor's IP address
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7602785B2 (en) 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters
US7206872B2 (en) * 2004-02-20 2007-04-17 Nvidia Corporation System and method for insertion of markers into a data stream
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US7757074B2 (en) * 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
EP2264956B1 (de) * 2004-07-23 2017-06-14 Citrix Systems, Inc. Verfahren zur sicherung von zugriff aus der ferne auf private netze
JP2008507928A (ja) 2004-07-23 2008-03-13 サイトリックス システムズ, インコーポレイテッド ネットワークノード間の通信を最適化するためのシステムおよび方法
CA2576569A1 (en) * 2004-08-13 2006-02-23 Citrix Systems, Inc. A method for maintaining transaction integrity across multiple remote access servers
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US8776206B1 (en) * 2004-10-18 2014-07-08 Gtb Technologies, Inc. Method, a system, and an apparatus for content security in computer networks
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
AU2005325674A1 (en) 2005-01-24 2006-08-03 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
JP2008532177A (ja) 2005-03-03 2008-08-14 ワシントン ユニヴァーシティー 生物学的配列類似検索を実行するための方法および装置
JP4674502B2 (ja) * 2005-07-22 2011-04-20 ソニー株式会社 情報通信システム、情報通信装置及び情報通信方法、並びにコンピュータ・プログラム
US7702629B2 (en) * 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US7738500B1 (en) 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US7954114B2 (en) * 2006-01-26 2011-05-31 Exegy Incorporated Firmware socket module for FPGA-based pipeline processing
US8566840B2 (en) * 2006-02-27 2013-10-22 Red Hat, Inc. Method and system for kernel level filtering
JP4823728B2 (ja) * 2006-03-20 2011-11-24 富士通株式会社 フレーム中継装置及びフレーム検査装置
US8379841B2 (en) * 2006-03-23 2013-02-19 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US7636703B2 (en) * 2006-05-02 2009-12-22 Exegy Incorporated Method and apparatus for approximate pattern matching
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
WO2008022036A2 (en) * 2006-08-10 2008-02-21 Washington University Method and apparatus for protein sequence alignment using fpga devices
US8051474B1 (en) * 2006-09-26 2011-11-01 Avaya Inc. Method and apparatus for identifying trusted sources based on access point
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
WO2009029842A1 (en) * 2007-08-31 2009-03-05 Exegy Incorporated Method and apparatus for hardware-accelerated encryption/decryption
US8046492B1 (en) * 2007-11-06 2011-10-25 Juniper Networks, Inc. Offset independent filtering
US10229453B2 (en) * 2008-01-11 2019-03-12 Ip Reservoir, Llc Method and system for low latency basket calculation
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
US8638790B2 (en) 2008-06-23 2014-01-28 Qualcomm Incorporated Method and apparatus for managing data services in a multi-processor computing environment
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
US20120095893A1 (en) 2008-12-15 2012-04-19 Exegy Incorporated Method and apparatus for high-speed processing of financial market depth data
EP2649580A4 (de) 2010-12-09 2014-05-07 Ip Reservoir Llc Verfahren und vorrichtung zur verwaltung von aufträgen in finanzmärkten
US9047243B2 (en) 2011-12-14 2015-06-02 Ip Reservoir, Llc Method and apparatus for low latency data distribution
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US10102260B2 (en) 2012-10-23 2018-10-16 Ip Reservoir, Llc Method and apparatus for accelerated data translation using record layout detection
US10146845B2 (en) 2012-10-23 2018-12-04 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
US9633093B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
GB2541577A (en) 2014-04-23 2017-02-22 Ip Reservoir Llc Method and apparatus for accelerated data translation
US10942943B2 (en) 2015-10-29 2021-03-09 Ip Reservoir, Llc Dynamic field data translation to support high performance stream data processing
WO2018009468A1 (en) 2016-07-05 2018-01-11 Idac Holdings, Inc. Latency reduction by fast forward in multi-hop communication systems
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3560666A (en) * 1968-09-12 1971-02-02 Telectronics Corp Of America Single drive dual cassette tape recorder with radio and tape duplicating
US5842224A (en) * 1989-06-16 1998-11-24 Fenner; Peter R. Method and apparatus for source filtering data packets between networks of differing media
GB9212655D0 (en) * 1992-06-15 1992-07-29 Digital Equipment Int Communications system
KR960014983B1 (ko) * 1992-08-31 1996-10-23 가부시끼가이샤 도시바 LAN(Local Area Network) 접속장치
US5619648A (en) * 1994-11-30 1997-04-08 Lucent Technologies Inc. Message filtering techniques
US5598410A (en) * 1994-12-29 1997-01-28 Storage Technology Corporation Method and apparatus for accelerated packet processing
US5802278A (en) * 1995-05-10 1998-09-01 3Com Corporation Bridge/router architecture for high performance scalable networking
US5802320A (en) * 1995-05-18 1998-09-01 Sun Microsystems, Inc. System for packet filtering of data packets at a computer network interface
GB9518522D0 (en) * 1995-09-11 1995-11-08 Madge Networks Ltd Bridge device
US5850523A (en) * 1996-06-21 1998-12-15 National Instruments Corporation Method and system for monitoring fieldbus network with multiple packet filters

Also Published As

Publication number Publication date
DE69830491D1 (de) 2005-07-14
JP2001510947A (ja) 2001-08-07
WO1999003044A2 (en) 1999-01-21
JP3399928B2 (ja) 2003-04-28
ATE297570T1 (de) 2005-06-15
US6067569A (en) 2000-05-23
EP0993638B1 (de) 2005-06-08
EP0993638A2 (de) 2000-04-19
WO1999003044A3 (en) 1999-04-01

Similar Documents

Publication Publication Date Title
DE69830491T2 (de) Cut-through -durchschaltung und paketfilterung in einem rechnersystem
DE69827201T2 (de) Verfahren und system zur server-netzwerkvermittlung-mehrverbindung
DE10297269B4 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache
DE60221030T2 (de) Verfahren, einrichtung und rechnerprogramm für die entkapselung und verkapselung von paketen mit mehreren kopffeldern
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE69919994T2 (de) Reduzierter paketkopf im drahtlosen nachrichtennetz
DE69634916T2 (de) Verfahren und vorrichtung zur filterung von mehradresspaketen in einem lokalen netz durch ein transparentes zwischensystem
DE60225892T2 (de) Firewall zur Filtrierung von getunnelten Datenpaketen
DE60115615T2 (de) System, einrichtung und verfahren zur schnellen paketfilterung und -verarbeitung
DE69927285T2 (de) Netzverwaltungssystem
DE69727447T2 (de) Übertragungstrennung und Ebene-3-Netzwerk-Vermittlung
DE69837938T2 (de) Übergreifende bildung von server clustern mittels einer netzwerkflussvermittlung
DE69913176T2 (de) Verfahren und system zum eingeben von äusserem inhalt in interaktiven netzsitzungen
DE60310645T2 (de) Verhinderung von Paketzerteilung
DE69937185T2 (de) Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen
DE60121755T2 (de) Ipsec-verarbeitung
EP1298880A2 (de) Verfahren zur Übermittlung komprimierter Daten in paketvermittelnden Netzwerken
WO2018099736A9 (de) Verfahren für ein kommunikationsnetzwerk und elektronische kontrolleinheit
DE112019005529T5 (de) Fahrzeugseitige Kommunikationsvorrichtung, Kommunikationssteuerverfahren und Kommunikationssteuerprogramm
DE60006821T2 (de) Zugangskontrolle in einem gateway-server
DE60206720T2 (de) Methode und Vorrichtung zur Paketübertragung in einem Netzwerk mit Überwachung von unzulässigen Paketen
DE60313026T2 (de) Verfahren und gerät zur verteilung von datenpaketen von einem computer zu einem clustersystem
DE10164919B4 (de) Verfahren zum Vermitteln von Daten zwischen einem lokalen Netzwerk und einem externen Gerät und Router dafür
DE60303775T2 (de) Netzwerkeinheit zur Weiterleitung von Ethernetpaketen
EP1623559B1 (de) Verfahren zum datenaustausch zwischen netzelementen in netzwerken mit verschiedenen adressbereichen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition