DE60307000T2 - System und Verfahren für die Verwaltung von mehreren Protokollstacks - Google Patents

System und Verfahren für die Verwaltung von mehreren Protokollstacks Download PDF

Info

Publication number
DE60307000T2
DE60307000T2 DE60307000T DE60307000T DE60307000T2 DE 60307000 T2 DE60307000 T2 DE 60307000T2 DE 60307000 T DE60307000 T DE 60307000T DE 60307000 T DE60307000 T DE 60307000T DE 60307000 T2 DE60307000 T2 DE 60307000T2
Authority
DE
Germany
Prior art keywords
computer
port
port number
stack
mapper
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
DE60307000T
Other languages
English (en)
Other versions
DE60307000D1 (de
Inventor
Kan F. Diamond Bar Fan
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.)
Broadcom Corp
Original Assignee
Broadcom 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 Broadcom Corp filed Critical Broadcom Corp
Publication of DE60307000D1 publication Critical patent/DE60307000D1/de
Application granted granted Critical
Publication of DE60307000T2 publication Critical patent/DE60307000T2/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Description

  • Zugehörige Anmeldungen
  • Diese Anmeldung bezieht sich auf die vorläufige US-Patentanmeldung mit der Seriennummer 60/398,663 und dem Titel "Verbindungs-Management dualer TCP/IP-Stapel für Winsock Direct (WSD)", angemeldet am 26. Juli 2002; und die vorläufige US-Patentanmeldung mit der Seriennummer 60/434,503 mit dem Titel "System und Verfahren zum Verwalten multipler Stapel-Umgebungen", angemeldet am 18. Dezember 2002, und nimmt deren Prioritäten in Anspruch.
  • Hintergrund der Erfindung
  • Die europäische Patentanmeldung EP-A-1 168 754 bezieht sich auf ein Funk-Kommunikations-System sowie auf ein Adressierungs-Schema, das in einem IP-basierten Netzwerk mit Funk-Zugriff verwendbar ist. EP-A-1 168 754 befasst sich mit der Anpassung eines IP-basierten Netzwerks mit Funk-Zugriff auf bestimmte Anforderungen eines Funk-Kommunikations-Netzwerks. Das Netzwerk mit Funk-Zugriff unterstützt unterschiedliche Arten von Kanälen, wie zum Beispiel zugeordnete Kanäle (DTS), zufällige Zugangs-Kanäle (RACH) oder Übertragungs-Kanäle (BCH). Gemäß der EP-A-1 168 754 definiert eine Anschluss-Nummer eindeutig den Typ des Kanals. Die Anschluss-Nummer ist in jedem Datenpaket angegeben, das über das Funk-Zugriffs-Netzwerk ausgetauscht wird.
  • Das US-Patent Nr. US-B1-6 72 151 beschreibt ein skalierbares Multimedia-Netzwerk, das auf einer verteilten Schaltungs-Plattform basiert. Diese Plattform hat die Fähigkeit einer Protokoll-Anpassung. Eine interne Internet-Protokoll-Maschine ist vorgesehen, welche die Verwendung eines Standard-TCP/IP-Protokolls ermöglicht. Die Internet-Protokoll-Maschine adaptiert fremde Protokolle auf das interne TCP/IP-Protokoll.
  • Das Winsock-Direct-Modell ist ein Kommunikations-Modell, das ein System-Bereich-Netzwerk ("system area network SAN") für Applikationen vorsieht. Duale TCP-Stapel laufen auf dem gleichen System unter Verwendung der gleichen IP-Adresse. Einige der TCP- Verbindungen werden von einem Microsoft-Stapel verarbeitet. Einige eingerichtete TCP-Verbindungen können auf einem Hardware-Stapel abgelegt werden. Das Winsock-Direct-Modell wurde nicht auf eine echte TCP/IP-Verbindung (z.B. das Ethernet) angewendet, stattdessen wurde es nur auf eine proprietäre Zwischenschaltung angewendet.
  • Wenn ein Paket als Teil einer eingerichteten Verbindung ankommt, wird ein Mechanismus benötigt, der das Paket entweder an den Microsoft-Stapel oder an den Hardware-Stapel weiterleiten kann. Wenn das Paket an den falschen Stapel geliefert wird, endet die Verbindung in der darauffolgenden Konfusion. Das Problem wird sogar noch verschärft, wenn ein Paket ankommt, bevor eine TCP-Verbindung aufgebaut wurde.
  • Weitere Einschränkungen und Nachteile herkömmlicher und traditioneller Ansätze werden dem Fachmann durch Vergleich solcher Systeme mit der vorliegenden Erfindung offenbar, wie sie nachfolgend aus der vorliegenden Anmeldung unter Bezugnahme auf die Zeichnungen hervorgeht.
  • Kurze Zusammenfassung der Erfindung
  • Aspekte der vorliegenden Erfindung können beispielsweise in Systemen und Verfahren auftreten, die multiple Stapel-Umgebungen verwalten. Bei einer Ausführungsform stellt die vorliegende Erfindung ein System bereit, das eine multiple Stapel-Umgebung verwaltet. Das System kann beispielsweise einen ersten Protokoll-Bearbeitungs-Stapel umfassen, einen zweiten Protokoll-Bearbeitungs-Stapel und einen Mapper. Der Mapper kann an den ersten Protokoll-Bearbeitungs-Stapel und an den zweiten Protokoll-Bearbeitungs-Stapel gekoppelt sein. Eine erste Anschluss-Nummer kann mit dem ersten Protokoll-Bearbeitungs-Stapel assoziiert sein, und eine zweite Anschluss-Nummer kann mit dem zweiten Protokoll-Bearbeitungs-Stapel assoziiert sein. Der Mapper kann zum Beispiel eine Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer speichern.
  • Gemäß einer weiteren Ausführungsform stellt die vorliegende Erfindung ein System bereit, das eine multiple Stapel-Umgebung verwaltet. Das System kann beispielsweise einen ersten Bearbeitungs-Stapel umfassen, einen zweiten Bearbeitungs-Stapel und einen Netzwerk-Adapter. Der Netzwerk-Adapter kann an den ersten Bearbeitungs-Stapel und den zweiten Bearbeitungs-Stapel gekoppelt sein und kann so angepasst sein, zu bestimmen, an welchen von dem ersten Bearbeitungs-Stapel und dem zweiten Bearbeitungs-Stapel ein eingehendes Paket gesendet wird, basierend zumindest auf der Anschluss-Information, die von dem eingehenden Paket getragen wird.
  • Bei noch einer weiteren Ausführungsform kann die vorliegende Erfindung ein Kommunikations-System bereitstellen. Das Kommunikations-System kann beispielsweise einen ersten Computer und einen zweiten Computer umfassen. Der erste Computer kann beispielsweise einen ersten Bearbeitungs-Stapel und einen zweiten Bearbeitungs-Stapel beinhalten. Der erste Computer kann eine erste Anschluss-Nummer zu dem ersten Bearbeitungs-Stapel und eine zweite Anschluss-Nummer zu dem zweiten Bearbeitungs-Stapel assoziieren bzw. zuordnen und kann eine Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer speichern. Der zweite Computer kann über ein Netzwerk an den ersten Computer gekoppelt sein. Der zweiten Computer kann Informationen über die zweiten Anschluss-Nummer mittels zumindest einer der ersten Anschluss-Nummer und der gespeicherten Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer anfragen.
  • Gemäß noch einer weiteren Ausführungsform kann die vorliegende Erfindung ein Verfahren bereitstellen, das eine multiple Stapel-Umgebung verwaltet. Das Verfahren kann beispielsweise einen oder mehrere der folgenden Schritte umfassen:
    Abhören einer ersten Anschluss-Nummer durch eine auf einem Computer ablaufende Applikation;
    Assoziieren der ersten Anschluss-Nummer mit einem ersten Bearbeitungs-Stapel des Computers;
    Assoziieren einer zweiten Anschluss-Nummer mit dem zweiten Bearbeitungs-Stapel des Computers; und
    Senden eines durch den Computer empfangenen Pakets an die Applikation über den zweiten Bearbeitungs-Stapel, wobei das empfangene Paket die zweite Anschluss-Nummer umfasst. Die multiple Stapel-Umgebung kann mehr als zwei Bearbeitungs-Stapel auf dem Computer beinhalten. Beispielsweise kann das Verfahren ferner einen oder mehrere der folgenden Schritte umfassen:
    Assoziieren einer dritten Anschluss-Nummer mit einem dritten Bearbeitungs-Stapel des Computers; und
    Senden eines durch den Computer empfangenen Pakets an die Applikation über den dritten Bearbeitungs-Stapel, wobei das empfangene Paket beispielsweise die dritte Anschluss-Nummer beinhalten kann.
  • Bei noch einer weiteren Ausführungsform kann die vorliegende Erfindung ein Verfahren bereitstellen, das eine Kommunikation zwischen einem ersten Computer und einem zweiten Computer bewerkstelligt. Das Verfahren kann beispielsweise einen oder mehrere der folgenden Schritte umfassen:
    Assoziieren einer ersten Anschluss-Nummer mit einem Vorgabe-Bearbeitungs-Stapel des ersten Computers;
    Assoziieren einer zweiten Anschluss-Nummer mit einem zweiten Bearbeitungs-Stapel des Computers;
    Speichern einer Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer in dem ersten Computer;
    Senden eines Datagramms von dem zweiten Computer an den ersten Computer mit einer Anfrage hinsichtlich einer Anschluss-Nummer, die mit der ersten Anschluss-Nummer korrespondiert;
    Senden eines Antwort-Datagramms von dem ersten Computer an den zweiten Computer mit der zweiten Anschluss-Nummer; und
    Kommunizieren über den zweiten Bearbeitungs-Stapel des ersten Computers unter Verwendung der zweiten Anschluss-Nummer.
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung können einen oder mehrere der nachfolgend beschriebenen Vorteile aufweisen. Beispielsweise kann der Anschluss-Mapper an einige oder sämtliche Computer verteilt werden, die an einer Kommunikation teilnehmen. Ferner kann, falls vorteilhaft, die Notwendigkeit zentralisierter oder multipel replizierter Depots (z.B. Domain Name Services (DNS)) reduziert werden. Zentralisierte oder multipel replizierte Depots können manchmal erheblich Entwicklungs- und Verwaltungs-Kosten nach sich ziehen und können manchmal für Einzelpunktfehler ("single point of failure") anfällig sein.
  • Gemäß einem Aspekt der Erfindung wird ein System zum Verwalten einer multiplen Stapel-Umgebung bereitgestellt, umfassend:
    einen ersten Protokoll-Bearbeitungs-Stapel;
    einen zweiten Protokoll-Bearbeitungs-Stapel; und
    einen Mapper, der an den ersten Protokoll-Bearbeitungs-Stapel und an den zweiten Protokoll-Bearbeitungs-Stapel gekoppelt ist,
    wobei eine erste Anschluss-Nummer mit dem ersten Protokoll-Bearbeitungs-Stapel assoziiert ist,
    wobei eine zweite Anschluss-Nummer mit dem zweiten Protokoll-Bearbeitungs-Stapel assoziiert ist, und
    wobei der Mapper eine Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer speichert.
  • Vorteilhafterweise macht eine Applikation die Anfrage, an der ersten Anschluss-Nummer abzuhören bzw. zu empfangen, wobei der erste Protokoll-Bearbeitungs-Stapel für die Applikation an der ersten Anschluss-Nummer abhört, und der zweite Protokoll-Bearbeitungs-Stapel für die Applikation an der zweiten Anschluss-Nummer abhört.
  • Vorteilhafterweise hat der erste Protokoll-Bearbeitungs-Stapel keine Kenntnis von dem zweiten Protokoll-Bearbeitungs-Stapel.
  • Vorteilhafterweise hat die Applikation keine Kenntnis von einer Multi-Stapel-Umgebung.
  • Vorteilhafterweise wird die zweite Anschluss-Nummer durch den ersten Protokoll-Bearbeitungs-Stapel generiert.
  • Vorteilhafterweise fragt der Mapper des ersten Protokoll-Bearbeitungs-Stapels nach einer verfügbaren Anschluss-Nummer.
  • Vorteilhafterweise setzt der Mapper die zweite Anschluss-Nummer mit der verfügbaren Anschluss-Nummer gleich.
  • Vorteilhafterweise umfasst der erste Protokoll-Bearbeitungs-Stapel einen Host-Stapel.
  • Vorteilhafterweise umfasst der erste Protokoll-Bearbeitungs-Stapel einen Microsoft-Protokoll-Bearbeitungs-Stapel.
  • Vorteilhafterweise umfasst der zweite Protokoll-Bearbeitungs-Stapel einen Ablade-Stapel ("Offload-Stack").
  • Vorteilhafterweise umfasst der zweite Protokoll-Bearbeitungs-Stapel einen System-Bereich-Netzwerk (SAN)-Anbieter-Stapel ("System-Area-Network (SAN)-Provider-Stack").
  • Vorteilhafterweise umfasst der zweite Protokoll-Bearbeitungs-Stapel einen Fern-Direkt-Speicher-Zugriffs (RDMA)-Stapel ("Remote Direct Memory Access Stack").
  • Vorteilhafterweise umfasst das System ferner: einen Netzwerk-Adapter, der an den ersten Protokoll-Bearbeitungs-Stapel und an den zweiten Protokoll-Bearbeitungs-Stapel gekoppelt ist.
  • Vorteilhafterweise ist der Netzwerk-Adapter angepasst, zumindest eine der zweiten Anschluss-Nummer zu speichern und Informationen bezüglich der zweiten Anschluss-Nummer, die mit dem zweiten Protokoll-Bearbeitungs-Stapel assoziiert ist.
  • Vorteilhafterweise umfasst der Netzwerk-Adapter eine Datenstruktur, wobei die Datenstruktur angepasst ist, zumindest eine der zweiten Anschluss-Nummer und die Zuordnung zwischen der zweiten Anschluss-Nummer und dem zweiten Protokoll-Bearbeitungs-Stapel zu speichern.
  • Vorteilhafterweise umfasst die Datenstruktur eine Nachschlage-Tabelle ("lookup table").
  • Gemäß einem weiteren Aspekt der Erfindung wird ein System zum Verwalten einer multiplen Stapel-Umgebung bereitgestellt, umfassend:
    einen ersten Bearbeitungs-Stapel;
    einen zweiten Bearbeitungs-Stapel; und
    einen Netzwerk-Adapter, der mit dem ersten Bearbeitungs-Stapel und dem zweiten Bearbeitungs-Stapel gekoppelt ist,
    wobei der Netzwerk-Adapter angepasst ist, zu bestimmen, welcher von dem ersten Bearbeitungs-Stapel und dem zweiten Bearbeitungs-Stapel ein eingehendes Paket sendet basierend zumindest auf einem Teil der Information, die durch das eingehende Paket transportiert wird.
  • Vorteilhafterweise umfasst das eingehende Paket eine TCP-Synchronisation (SYN)-Mitteilung.
  • Vorteilhafterweise umfasst der erste Bearbeitungs-Stapel einen Vorgabe-Bearbeitungs-Stapel, wobei der zweite Bearbeitungs-Stapel einen Ablade-Bearbeitungs-Stapel umfasst, wobei der Netzwerk-Adapter angepasst ist, zu bestimmen, ob das eingehende Paket an den Ablade-Bearbeitungs-Stapel über zumindest eine Anschluss-Nummer zu senden ist, die von dem eingehenden Paket transportiert wird.
  • Vorteilhafterweise umfasst das eingehende Paket eine TCP-SYN-Mitteilung und eine bestimmte Anschluss-Nummer, die dem Ablade-Bearbeitungs-Stapel zugeordnet ist.
  • Vorteilhafterweise wird die TCP-SYN-Mitteilung durch den Ablade-Bearbeitungs-Stapel bearbeitet.
  • Vorteilhafterweise ist der Netzwerk-Adapter angepasst, um zu bestimmen, ob das eingehende Paket an den Ablade-Bearbeitungs-Stapel zu senden ist, noch bevor eine Verbindung aufgebaut wurde.
  • Vorteilhafterweise umfasst die Verbindung eine TCP-Verbindung.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Kommunikations-System bereitgestellt, umfassend:
    einen ersten Computer mit einem ersten Bearbeitungs-Stapel und einem zweiten Bearbeitungs-Stapel, wobei der erste Computer dem ersten Bearbeitungs-Stapel eine erste Anschluss-Nummer zuordnet und dem zweiten Bearbeitungs-Stapel eine weitere Anschluss- Nummer zuordnet und eine Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer speichert; und
    einen zweiten Computer, der mit dem ersten Computer über ein Netzwerk gekoppelt ist, wobei der zweite Computer Informationen über die zweite Anschluss-Nummer anfragt, mittels zumindest einer der ersten Anschluss-Nummer und der gespeicherten Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer.
  • Vorteilhafterweise umfasst der erste Bearbeitungs-Stapel einen Host-Stapel des ersten Computers, und
    wobei der zweite Bearbeitungs-Stapel einen Ablade-Stapel ("offload stack") des ersten Computers umfasst.
  • Vorteilhafterweise wird eine Verbindung zwischen dem zweiten Computer und dem ersten Computer unter Verwendung der zweiten Anschluss-Nummer aufgebaut.
  • Vorteilhafterweise entsteht eine Verbindung zwischen dem zweiten Computer und dem ersten Computer über den Ablade-Stapel des ersten Computers.
  • Vorteilhafterweise entsteht eine Kommunikation zwischen dem zweiten Computer und dem ersten Computer über den Ablade-Stapel des ersten Computers noch bevor eine Verbindung aufgebaut wurde.
  • Vorteilhafterweise umfasst die Verbindung eine TCP-Verbindung.
  • Vorteilhafterweise umfasst der erste Computer einen ersten Anschluss-Mapper, wobei der erste Anschluss-Mapper an den ersten Bearbeitungs-Stapel und an den zweiten Bearbeitungs-Stapel gekoppelt ist, und
    wobei der erste Anschluss-Mapper die zweite Anschluss-Nummer dem zweiten Bearbeitungs-Stapel zuordnet und eine Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer speichert.
  • Vorteilhafterweise umfasst der erste Anschluss-Mapper zumindest eine erste lokale Anschluss-Mapping-Datenbank und/oder einen zweiten Fern-Anschluss-Mapping-Cache ("remote port mapping cache").
  • Vorteilhafterweise sucht der zweite Anschluss-Mapper Informationen in dem ersten Anschluss-Mapper.
  • Vorteilhafterweise sucht der zweite Anschluss-Mapper Informationen in dem ersten Anschluss-Mapper über eine IP-Adresse des ersten Computers und die erste Anschluss-Nummer des ersten Computers.
  • Vorteilhafterweise versucht der zweite Anschluss-Mapper Informationen in einem zweiten Fern-Anschluss-Mapping-Cache ("remote port mapping cache") des zweiten Anschluss-Mappers zu suchen und, wenn die Information nicht in dem zweiten Fern-Anschluss-Mapping-Cache vorhanden ist, dann sucht der zweite Anschluss-Mapper die Information in dem ersten Anschluss-Mapper.
  • Vorteilhafterweise sucht der zweite Anschluss-Mapper die Information in dem zweiten Anschluss-Mapper über eine IP-Adresse des ersten Computers und die erste Anschluss-Nummer des ersten Computers.
  • Vorteilhafterweise umfasst der zweite Anschluss-Mapper einen zweiten Fern-Anschluss-Mapping-Cache ("remote port mapping cache"), und
    wobei ein oder mehrere Einträge in dem zweiten Fern-Anschluss-Mapping-Cache durch Anfragen von Information von dem ersten Anschluss-Mapper aktualisiert werden.
  • Vorteilhafterweise werden ein oder mehrere Einträge in dem zweiten Fern-Anschluss-Mapping-Cache periodisch aktualisiert.
  • Vorteilhafterweise der zweite Anschluss-Mapper einen zweiten Fern-Anschluss-Mapping-Cache, und
    wobei ein oder mehrere Einträge in dem zweiten Fern-Anschluss-Mapping-Cache für ungültig erklärt werden.
  • Vorteilhafterweise sind ein oder mehrere Einträge in dem zweiten Fern-Anschluss-Mapping-Cache ungültig, wenn keine Verbindungen den einen oder mehrere Einträge verwenden.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Verfahren zum Verwalten einer multiplen Stapel-Umgebung bereitgestellt, umfassend:
    Empfangen einer ersten Anschluss-Nummer durch eine auf einem Computer ablaufende Applikation;
    Assoziieren der ersten Anschluss-Nummer mit einer ersten Bearbeitungs-Stapel des Computers;
    Assoziieren einer zweiten Anschluss-Nummer mit einem zweiten Bearbeitungs-Stapel des Computers; und
    Senden eines empfangenen Pakets durch den Computer an die Applikation über den zweiten Bearbeitungs-Stapel, wobei das empfangene Paket die zweite Anschluss-Nummer beinhaltet.
  • Vorteilhafterweise wird das Senden durchgeführt, bevor eine Verbindung aufgebaut wurde.
  • Vorteilhafterweise umfasst das empfangene Paket eine TCP-SYN-Mitteilung.
  • Vorteilhafterweise umfasst das Verfahren ferner:
    Anfragen des ersten Bearbeitungs-Stapels durch einen Anschluss-Mapper des Computers hinsichtlich einer verfügbaren Anschluss-Nummer;
    Setzen der zweiten Anschluss-Nummer gleich der verfügbaren Anschluss-Nummer; und
    Speichern zumindest einer der zweiten Anschluss-Nummer und einer Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer in dem Anschluss-Mapper.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Verfahren zum Kommunizieren zwischen einem ersten Computer und einem zweiten Computer bereitgestellt, umfassend:
    Assoziieren einer ersten Anschluss-Nummer mit einem Vorgabe-Bearbeitungs-Stapel des ersten Computers;
    Assoziieren einer zweiten Anschluss-Nummer mit einem zweiten Bearbeitungs-Stapel des ersten Computers;
    Speichern einer Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer in dem ersten Computer;
    Senden eines Datagramms von dem zweiten Computer an den ersten Computer mit der Anfrage nach einer Anschluss-Nummer entsprechend der ersten Anschluss-Nummer;
    Senden eines Antwort-Datagramms von dem ersten Computer an den zweiten Computer, umfassend die zweiten Anschluss-Nummer; und
    Kommunizieren über den zweiten Bearbeitungs-Stapel des ersten Computers unter Verwendung der zweiten Anschluss-Nummer.
  • Vorteilhafterweise wird das von dem zweiten Computer an den ersten Computer gesendete Datagramm durch den Vorgabe-Bearbeitungs-Stapel bearbeitet.
  • Vorteilhafterweise umfasst das von dem zweiten Computer an den ersten Computer gesendete Datagramm die erste Anschluss-Nummer.
  • Vorteilhafterweise kann die Kommunikation über den zweiten Bearbeitungs-Stapel des ersten Computers auftreten, bevor eine Verbindung aufgebaut wurde.
  • Vorteilhafterweise kann die Kommunikation über den zweiten Bearbeitungs-Stapel des ersten Computers auftreten, bevor eine TCP-Verbindung aufgebaut wurde.
  • Diese und andere Merkmale sowie Vorteile der vorliegenden Erfindung werden durch die Betrachtung der nachfolgenden detaillierten Beschreibung zusammen mit den beigefügten Zeichnungen offenbar, in denen gleiche Bezugszeichen durchgehend gleiche Teile bezeichnen.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt ein Diagramm, das eine Ausführungsform eines Servers gemäß der vorliegenden Erfindung darstellt.
  • 2 zeigt ein Zeitdiagramm, das eine Ausführungsform eines Vorgangs zum Betreiben eines Servers gemäß der vorliegenden Erfindung darstellt.
  • 3 zeigt ein Diagramm, das eine Ausführungsform eines Clients gemäß der vorliegenden Erfindung darstellt.
  • 4 zeigt ein Zeitdiagramm, das eine Ausführungsform eines Vorgangs zum Betreiben eines Clients gemäß der vorliegenden Erfindung darstellt.
  • Detaillierte Beschreibung der Erfindung
  • Einige Ausführungsformen der vorliegenden Erfindung beziehen sich auf Systeme und Verfahren zum Verwalten multipler Stapel-Umgebungen. Beispielsweise wenn eine bestimmte Maschine eine Vielzahl von Diensten anbietet (z.B. einen beschleunigten Dienst, einen herkömmlichen Dienst etc.), können einige Ausführungsformen der vorliegenden Erfindung einen beschleunigten Weg bereitstellen, bei dem eine andere Maschine sich mit dem besseren Dienst verbinden kann. Obwohl nachfolgend eine oder mehrere Ausführungsformen unter Bezugnahme auf einen bestimmten Typ von Applikation beschrieben werden, wie z.B. iWARP oder RDMA über TCP, ist die vorliegende Erfindung nicht auf diese beschränkt. Einige Ausführungsformen der vorliegenden Erfindung können mit einer minimalen Implikation zu dem Gesamt-Ökosystem-Netzwerk ("overall networking ecosystem") implementiert werden.
  • 1 zeigt ein Diagramm, das eine Ausführungsform eines Servers gemäß der vorliegenden Erfindung darstellt. Der Server 100 kann beispielsweise eine Vielzahl von architektonischen Ebenen aufweisen. Bei einer Ausführungsform kann der Server 100 beispielsweise eine Applikation 110, einen Schalter ("Switch") 120, einen Host-Stapel 130, einen Netzwerk-Schnittstellen-Karte (NIC)-Treiber 140, einen Netzwerk-Adapter 150, einen Anschluss-Mapper 160, eine dynamische Verbindungs-Bibliothek (DLL) 170 und einen Ablade-Stapel 180 umfassen. Die Applikation 110 kann beispielsweise eine oder mehrere Winsockkompatible Applikationen sein. Der Schalter 120 kann beispielsweise ein Winsock-Schalter sein. Der Host-Stapel 130 kann beispielsweise ein Host-TCP-IP-Stapel (z.B. ein Microsoft-TCP/IP-Stapel) sein. Der Netzwerk-Adapter 150 kann beispielsweise eine Nachschlage- Tabelle (LUT) 190 umfassen, wie zum Beispiel eine partiale Tuple-Nachschlage-Tabelle oder eine andere Art von Datenstruktur umfassen. Der Anschluss-Mapper 160 kann beispielsweise eine lokale Anschluss-Mapping-Datenbank 155 oder einen Fern-Anschluss-Mapping-Cache 165 umfassen. Der Anschluss-Mapper 160 kann beispielsweise ein iWARP-Anschluss-Mapper sein. Die DLL 170 kann beispielsweise eine System-Bereich-Netzwerk(SAN)-Anbieter-DLL sein. Der Ablade-Stapel 180 kann beispielsweise ein SAN-Anbieter-Stapel oder ein RDMA-TCP/IP-Stapel sein. Der Host-Stapel 130 und der Ablade-Stapel 180 können die gleiche IP-Adresse teilen. Bei einer Ausführungsform kann der Host-Stapel 130 ohne Kenntnis des Ablade-Stapels 180 sein oder eine TCP-Verbindungs-Migration zwischen den beiden Stapeln 130, 180 nicht zulassen. Obwohl nur als eine duale Stapel-Umgebung dargestellt, ermöglicht die vorliegende Erfindung ferner die Verwendung mehrerer oder weniger als zwei Stapel.
  • Der Anschluss-Mapper 160 kann beispielsweise eine verbreitete Software-Komponente sein und kann beispielsweise dazu angepasst sein, eine oder mehrere der folgenden Funktionen auszuführen: Registrieren eines Anschlusses, De-Registrieren eines Anschlusses, Antworten auf Anschluss-Anfragen und Anfragen eines Fern-Anschluss-Mappers. Registrieren eines Anschlusses oder De-Registrieren eines Anschlusses kann beispielsweise eine oder mehrere der folgenden Aufgaben beinhalten: Anfragen des nächsten verfügbaren TCP-Anschlusses von dem Host-Stapel (z.B. unter Verwendung einer Winsock-Verbindungs-Operation mit Anschluss 0, um den nächsten verfügbaren TCP-Anschluss von einem Microsoft-Stapel anzufragen); Nachverfolgen der Übereinstimmung zwischen einer Host-Stapel-Anschluss-Nummer (z.B. eine TCP-Anschluss-Nummer) und einer Ablade-Stapel-Anschluss-Nummer (z.B. eine iWARP-Anschluss-Nummer) in einer Anschluss-Mapping-Datenbank; Halten eines Benutzungszählers für jeden Ablade-Stapel-Anschluss; und Zurückgeben eines Ablade-Stapel-Anschlusses an den Host-Stapel 130, wenn der Benutzungszähler eine bestimmte Nummer (z.B. 0) erreicht hat. Bei einer Ausführungsform kann der Anschluss-Mapper 160 angepasst sein, einen iWARP-Anschluss zu registrieren oder zu de-registrieren. Das Beantworten von Anschluss-Anfragen kann beispielsweise eine oder mehrere der folgenden Aufgaben beinhalten: Abhören eines wohlbekannten UDP-Anschlusses; Suchen nach Information in der Anschluss-Mapping-Datenbank beispielsweise über einen TCP-Anschluss; und Erwidern an einen Anfrager mit iWARP-Anschluss-Information. Bei einer Ausführungsform kann eine iWARP-Anschluss-Anfrage beispielsweise über einen wohlbekannten UDP-Anschluss beantwortet werden. Das Anfragen eines Fern-Anschluss-Mappers kann beispielsweise eine oder mehrere der folgenden Aufgaben beinhalten: Verwalten eines Fern-Anschluss-Mapping-Caches des lokalen Anschluss-Mappers für aktiv offen; Suchen von Information in dem Fern-Anschluss-Mapping-Cache des lokalen Anschluss-Mappers oder des Fern-Anschluss-Mappers beispielsweise über eine Fern-IP-Adresse oder einen Fern-TCP-Anschluss; Senden einer Anfrage an den Fern-Anschluss-Mapper, wenn in dem Fern-Anschluss-Mapping-Cache des lokalen Anschluss-Mappers keine Information gefunden wird; Nachverfolgen der Einträge in den Fern-Anschluss-Mapping-Cache des lokalen Anschluss-Mappers unter Verwendung eines Referenzzählers; periodisches Erneuern oder Aktualisieren der Fern-Anschluss-Mapping-Cache-Einträge des lokalen Anschluss-Mappers unter Senden einer Anfrage an den Fern-Anschluss-Mapper; und Ungültigmachen der Fern-Anschluss-Mapping-Cache-Einträge, wenn die entsprechenden Referenzzähler bespielsweise 0 erreichen (z.B. wenn keine Verbindungen die bestimmten Einträge in den lokalen Fern-Anschluss-Mapping-Cache verwenden) oder wenn bestimmte Fern-Anschluss-Mapping-Cache-Einträge über eine Schwellwert-Zeitspanne nicht verwendet worden sind.
  • Gemäß einer Ausführungsform können eine TCP-Anschluss-Nummer und eine iWARP-Anschluss-Nummer wie folgt beschrieben werden. Die TCP-Anschluss-Nummer kann durch die Applikation 110 angefragt werden und kann für Verbindungen durch den Host-Stapel 130 (z.B. ein Microsoft-Stapel) verwendet werden. Zusätzlich kann der Host-Stapel 130 an der TCP-Anschluss-Nummer abhören. Die iWARP-Anschluss-Nummer kann ein TCP-Anschluss sein, der nach Laufzeit zugewiesen und für eine iWARP-Verbindung bestimmt ist. Die iWARP-Anschluss-Nummer kann für Verbindungen durch den Ablade-Stapel 180 (z.B. ein SAN-Anbieter-Stapel) verwendet werden. Bei einer Ausführungsform kann zusätzlich zumindest eine iWARP-Anschluss-Nummer zu jeder TCP-Anschluss-Nummer korrespondieren.
  • Die DLL 170 kann beispielsweise angepasst sein, um eine oder mehrere der folgenden Funktionen auszuführen: Anbinden, Verbinden, Abhören, Akzeptieren und Schließen. Die DLL 170 kann einen Anbindungs-Behandler beinhalten (z.B. einen WSPB-Anbindungs-Behandler), der angepasst sein kann, die TCP-Anschluss-Nummer in einer Per-Socket-Private-Struktur zu speichern und die aktuelle Anbindungs-Operation zu verzögern. Beim Verbinden (z.B. über eine WSP-Verbindung) durch einen aktiven Socket, kann die DLL 170 angepasst sein, beispielsweise eine oder mehrere der folgenden Aufgaben auszuführen: Veranlassen des Anschluss-Mappers 160, einen Fern-Anschluss-Mapper nach der Ablade-Stapel-Anschluss-Nummer anzufragen (z.B. iwarp_port_map(dst_ip_addr, tcp_port)); Veranlassen des Ablade-Stapels 180 (z.B. einen SAN-Anbieter-Stapel), die Ablade-Stapel-Anschluss-Nummer anzubinden (z.B. eine iWARP-Anschluss-Nummer); Initiieren einer TCP-Verbindung zu der Ablade-Stapel-Anschluss-Nummer auf dem Ablade-Stapel 180 (z.B. Initiieren einer TCP-Verbindung an eine iWARP-Anschluss-Nummer auf dem SAN-Anbieter-Stapel); und direktes Übergehen in einen Ablade-Modus (z.B. eine TCP-Verbindung geht direkt in einen RDMA-Modus über (d.h. der iWARP-Anschluss ist a priori)).
  • Beim Abhören (z.B. über WSP-Abhören) durch einen passiven Socket kann die DLL 170 beispielsweise angepasst sein, eine oder mehrere der folgenden Aufgaben auszuführen: Registrieren eines TCP-Anschlusses mit dem Anschluss-Mapper 160 (z.B. einen iWARP-Anschluss-Mapper); Empfangen einer Ablade-Stapel-Anschluss-Nummer von dem Anschluss-Mapper 160, der zuvor mit dem Host-Stapel 160 kommuniziert hat, um den nächsten verfügbaren Anschluss zu erhalten; Veranlassen des Ablade-Stapels 180, die Ablade-Stapel-Anschluss-Nummer (z.B. die iWARP-Anschluss-Nummer) anzubinden; und Initiieren eines TCP-Abhörens an dem Ablade-Stapel 180 (z.B. einem SAN-Anbieter-Stapel) und Befolgen einer typischen Verbindungs-Einstellung (z.B. der Standard-Passiv-TCP-Verbindungs-Einstellung).
  • Beim Akzeptieren einer eingehenden Verbindung (z.B. einer eingehenden iWARP-Verbindung über eine WSP-Verbindung), kann die DLL 170 beispielsweise angepasst sein, eine oder mehrere der folgenden Aufgaben auszuführen: Veranlassen des Anschluss-Mappers 160, einen Anschluss zu referieren; und Erhöhen des Referenz-Zählers über den Anschluss-Mapper 160.
  • Beim Beenden einer Verbindung (z.B. Beenden einer Verbindung über einen WSP-geschlossen-Socket), kann die DLL 170 beispielsweise angepasst sein, eine oder mehrere der folgenden Aufgaben durchzuführen, umfassend: Veranlassen des Anschluss-Mappers 160, den Ablade-Stapel-Anschluss zu de-referieren; und Freimachen eines Ablade-Stapel- Anschlusses über den Anschluss-Mapper 160, wenn der Referenz-Zähler beispielsweise 0 beträgt.
  • 2 zeigt ein Zeitdiagramm, das eine Ausführungsform eines Vorgangs zum Betreiben eines Servers gemäß der vorliegenden Erfindung darstellt. Bei einer Ausführungsform kann der Server 100 eine passive offene Socket-Seite ("passive open socket side") beinhalten oder ein Teil davon sein. Bezugnehmend auf die 1 und 2 kann die Applikation 110 beim Betrieb den Schalter 120 kontaktieren, wodurch dem Schalter 110 mitgeteilt wird, dass die Applikation 110 beabsichtigt, einen bestimmten Anschluss, z.B. Anschluss 80, abzuhören. Die Applikation 110 muss keine Kenntnis darüber haben, dass der Server 100 multiple Stapel (z.B. zwei oder mehr TCP/IP-Bearbeitungs-Stapel) hat. Der Schalter 80 kann die Anfrage zum Abhören an den Host-Stapel 130 weiterleiten. Der Netzwerk-Adapter 150 kann von einem physikalischen Medium 195 (z.B. ein Kabel, eine Leitung, Faser, Luft etc.) Pakete empfangen. Wenn bei einer Ausführungsform der Netzwerk-Adapter 150 bestimmt, dass ein empfangenes Paket mit der Ziel-IP-Adresse des Servers und einer Anschluss-Nummer assoziiert wird, die nicht in dem LUT 190 des Netzwerk-Adapters 150 gespeichert ist, dann kann als eine Standard-Operation das empfangene Paket zum Bearbeiten an den Host-Stapel 130 gesendet werden.
  • Etwa zu demselben Zeitpunkt, an dem der Schalter die Anfrage zum Abhören an den Host-Stapel 130 weiterleitet, kann der Schalter ebenso die Anfrage zum Abhören an die DLL 170 weiterleiten. Die DLL 170 kann mit dem Anschluss-Mapper 160 kommunizieren und kann den Anschluss 80 mit dem Anschluss-Mapper 160 registrieren. Der Anschluss-Mapper 160 kann dann mit dem Host-Stapel 130 beispielsweise über den Schalter 120 kommunizieren, um zu bestimmen, welche anderen Anschlüsse verfügbar sein können (z.B. die nächste verfügbare Anschluss-Nummer). Der Host-Stapel 130 kann bestimmen, welcher Anschluss verfügbar ist und die verfügbare Anschluss-Nummer, z.B. Anschluss 1080, an den Anschluss-Mapper 160 berichten. Der Anschluss-Mapper 160 kann den verfügbaren Anschluss (z.B. Anschluss 1080) mit dem ursprünglich angefragten Anschluss (z.B. Anschluss 80) assoziieren oder verknüpfen. Der Anschluss-Mapper 160 kann dann der DLL 170 mitteilen, stattdessen am Anschluss 1080 (z.B. iWARP-Anschluss 1080) abzuhören. Die Anfrage zum Abhören kann dann an den Ablade-Stapel weitergeleitet werden, der daraufhin die Anfrage zum Abhören an den Netzwerk-Adapter 150 über den NIC-Treiber 140 weiterleiten kann. Der Netzwerk-Adapter 150 kann die Information (z.B. Ziel-IP-Adresse, Anschluss-Nummer etc.) in dem LUT 190 speichern, sodass die empfangenen Pakete, die mit den in dem LUT 190 gespeicherten Informationen assoziiert sind, zum Bearbeiten an den Ablade-Speicher 180 gesendet werden können. Wenn beispielsweise ein durch den Netzwerk-Adapter 150 empfangenes Paket mit dem Anschluss 1080 und der Ziel-IP-Adresse des Servers assoziiert ist, dann kann der Netzwerk-Adapter 150 das empfangene Paket zum Bearbeiten an den Ablade-Stapel 180 weiterleiten. Wenn das durch den Netzwerk-Adapter 150 empfangene Paket mit der Ziel-IP-Adresse des Servers assoziiert ist, aber nicht mit dem Anschluss 1080 oder irgendeiner anderen Anschluss-Nummer, die in dem LUT 190 gespeichert und mit dem Ablade-Stapel 180 assoziiert ist, dann kann das empfangene Paket nicht durch den Ablade-Stapel 180 bearbeitet werden. Unter solchen Bedingungen kann der Netzwerk-Adapter 150 das empfangene Paket beispielsweise als eine Standard-Operation an den Host-Stapel 130 weiterleiten. Dadurch kann der Host-Stapel 130 Pakete empfangen, die mit dem Anschluss 80 oder einem anderen Anschluss assoziiert sind, die nicht mit dem Ablade-Stapel 180 verknüpft sind, wie in dem LUT 190 dargestellt; und der Ablade-Stapel 180 kann Pakete empfangen, die mit dem Anschluss 1080 oder anderen Anschlüssen assoziiert sind, die mit dem Ablade-Stapel 180 verknüpft sind.
  • 3 zeigt ein Diagramm, das eine Ausführungsform eines Client gemäß der vorliegenden Erfindung darstellt. Der Client 200 kann beispielsweise eine Vielzahl von architektonischen Ebenen beinhalten. Bei einer Ausführungsform kann der Client 200 beispielsweise eine Applikation 210, einen Schalter 220, einen Host-Stapel 230, einen NIC-Treiber 240, einen Netzwerk-Adapter 250, einen Anschluss-Mapper 260, eine DLL 270 und einen Ablade-Stapel 280 umfassen. Der Anschluss-Mapper 260 kann beispielsweise eine lokale Anschluss-Mapping-Datenbank 255 und einen Fern-Anschluss-Mapping-Cache 265 umfassen. Die oben unter Bezugnahme auf ähnliche Komponenten des Servers 100 dargelegten Beschreibungen können ebenso zumindest teilweise auf entsprechende Komponenten des Clients 200 bezogen werden. Beispielsweise kann der Anschluss-Mapper 260 angepasst sein, wie in Bezug auf den Anschluss-Mapper 160 beschrieben; oder die DLL 260 kann angepasst sein, wie in Bezug auf die DLL 170 beschrieben. In ähnlicher Weise kann die Applikation 210 beispielsweise eine oder mehrere Winsock-kompatible Applikationen sein. Der Schalter 220 kann beispielsweise ein Winsock-Schalter sein. Der Host-Stapel 230 kann beispielsweise ein Host-TCP-IP-Stapel (z.B. ein Microsoft-TCP-IP-Stapel) sein. Der Anschluss-Mapper 260 kann beispielsweise ein iWARP-Anschluss-Mapper sein. Die DLL 270 kann beispielsweise eine SAN-Anbieter-DLL sein. Der Ablade-Stapel 280 kann beispielsweise ein SAN-Anbieter-Stapel oder ein RDMA-TCP/IP-Stapel sein. Der Host-Stapel 230 und der Ablade-Stapel 280 können die gleiche IP-Adresse teilen. Bei einer Ausführungsform kann der Host-Stapel 230 keine Kenntnis von dem Ablade-Stapel 280 haben oder kann eine TCP-Verbindungs-Migration zwischen den beiden Stapeln 230, 280 nicht zulassen. Obwohl als duale Stapel-Umgebung dargestellt, kann die vorliegende Erfindung auch unter Verwendung von mehr oder weniger als zwei Stapel betrachtet werden. Ein möglicher Unterschied zwischen den Komponenten des Servers 100 und den Komponenten des Clients 200 kann darin bestehen, dass der Netzwerk-Adapter 250 des Clients 200 keine LUT (z.B. eine partiale Tuple-Nachschlage-Tabelle) umfasst, wie oben unter Bezugnahme auf den Netzwerk-Adapter 150 des Servers 100 beschrieben. Es ist möglich, dass Komponenten bestimmter Computer-Vorrichtungen lediglich zur Funktionalität auf der Seite des Clients angepasst sind. Da jedoch eine Computer-Vorrichtung zu einem Zeitpunkt ein Client oder zu einem anderen Zeitpunkt ein Server sein kann oder sogar beides gleichzeitig, können ähnliche Komponenten identisch oder nahezu identisch sein. Somit kann beispielsweise eine Computer-Vorrichtung, die dazu angepasst ist, als ein Client und/oder als ein Server zu dienen, in dessen Netzwerk-Adapter eine LUT beinhalten. Bei einem weiteren Beispiel kann eine Computer-Vorrichtung, die dazu angepasst ist, lediglich als ein Client zu dienen, in dessen Netzwerk-Adapter noch eine LUT beinhalten.
  • 4 zeigt ein Zeitdiagramm, das eine Ausführungsform eines Vorgangs zum Betreiben eines Clients gemäß der vorliegenden Erfindung darstellt. Bei einer Ausführungsform kann der Client 200 eine aktive offene Socket-Seite ("active open socket side") umfassen oder ein Teil davon sein. Bezugnehmend auf die 3 und 4 kann die Applikation 210 im Betrieb den Schalter 220 kontaktieren, wodurch dem Schalter 220 mitgeteilt wird, dass die Applikation 210 des Clients 200 beabsichtigen kann, mit der Applikation 110 des Servers 100 in Verbindung zu treten. Beispielsweise kann die Applikation 210 mit dem Schalter 220 kommunizieren, dass die Applikation 210 beabsichtigen kann, mit einem Ziel in Verbindung zu treten, das durch die IP-Adresse des Servers und einem bestimmten Anschluss, z.B. Anschluss 80 des Servers 100, identifiziert ist. Die Verbindungs-Anfrage und die Verbindungs-Parameter können dann an die DLL 270 weitergeleitet werden. Die DLL 270 kann dann eine Anfrage an den Anschluss-Mapper 260 richten im Hinblick auf die Ablade-Stapel-Anschluss-Nummer des Servers (z.B. die iWARP-Anschluss-Nummer des Servers) für den Anschluss 80 des Servers in diesem Beispiel.
  • Wenn im Gegenzug der Anschluss-Mapper 260 die zu dem Anschluss 80 des Servers korrespondierende Ablade-Stapel-Anschluss-Nummer des Servers nicht kennt, dann kann der Anschluss-Mapper 260 den lokal verwalteten Fern-Anschluss-Mapping-Cache durchsuchen oder ein Benutzer-Datagramm-Protokoll (UDP-Datagramm (z.B. ein UDP-Sende-Datagramm) generieren, das die Anfrage trägt. Das UDP-Datagramm kann von dem Anschluss-Mapper 260 an den Schalter 220 durch den Host-Stapel 230, den NIC-Treiber 240 und den Netzwerk-Adapter 250 an das physikalische Medium 195 gesendet werden. Das physikalische Medium 195 kann Teil eines Netzwerks sein, wie z.B. ein Ethernet oder das Internet. Das UDP-Datagramm kann auf dem physikalischen Medium 195 von dem Client 200 zu dem Server 100 getragen werden. Anschließend kann das UDP-Datagramm durch den Netzwerk-Adapter 150 des Servers 100 empfangen werden. Der Netzwerk-Adapter 150 kann das durch den Host-Stapel 130 zu bearbeitende UDP-Datagramm senden. Der Host-Stapel 130 kann das UDP-Datagramm bearbeiten und das UDP-Datagramm oder einen Teil davon (z.B. die Anfrage) an den Anschluss-Mapper 160 senden. Der Anschluss-Mapper 160 kann angepasst sein, einen wohlbekannten UDP-Anschluss abzuhören, um die Angelegenheiten des Mappings zu lösen. Der Anschluss-Mapper 160 kann seine Datenbanken durchsuchen, um die Anfrage zu beantworten. Beim Suchen der angefragten Host-Stapel-Anschluss-Nummer (z.B. die TCP-Anschluss-Nummer) in der Datenbank des Anschluss-Mappers 160, kann der Anschluss-Mapper 160 die Ablade-Stapel-Anschluss-Nummer (z.B. die iWARP-Anschluss-Nummer) bestimmen, die mit der Host-Stapel-Anschluss-Nummer assoziiert oder verknüpft ist. Bei einem Beispiel kann der Anschluss-Mapper 160 berichten, dass der TCP-Anschluss 80 des Servers 100 mit einem iWARP-Anschluss 1080 des Servers 100 korrespondiert. Die Information kann in Form eines Antwort-UDP-Datagramms (z.B. ein UDP-Empfangs-Datagramm) berichtet werden, das von dem Anschluss-Mapper 160 über den Schalter 120, den Host-Stapel 130, den NIC-Treiber 140 und den Netzwerk-Adapter 150 an das physikalische Medium 195 gesendet wird. Die Information von dem Anschluss-Mapper 160 kann durch das physikalische Medium 195 von dem Server 100 an den Client 200 getragen werden. Das Antwort-UDP-Datagramm kann durch den Netzwerk-Adapter 250 empfangen und zum Bearbeiten an den Host-Stapel 230 gesendet werden. Der Host-Stapel 230 kann das Antwort-UDP-Datagramm oder einen Teil davon (z.B. Daten ("payload") umfassend die angefragte Information) an den Anschluss-Mapper 260 beispielsweise über den Schalter 220 weiterleiten. Anschließend kann der Anschluss-Mapper 260 die angefragte Information speichern (z.B., dass der Server-TCP-Anschluss 80 mit dem iWARP-Anschluss 1080 korrespondiert) in seiner Datenbank speichern, die beispielsweise die Form einer Tabelle haben kann (z.B. eine LUT).
  • Der Anschluss-Mapper 260 kann der DLL 270 in Bezug auf die entsprechende Ablade-Stapel-Anschluss-Nummer zurück berichten. Bei einem Beispiel kann der Anschluss-Mapper 260 die DLL 270 darüber informieren, dass der TCP-Anschluss 80 des Servers mit dem iWARP-Anschluss 1080 des Servers korrespondiert. Die DLL 270 kann dann die Verbindungs-Anfrage an den Ablade-Stapel 280 mit den Parametern einschließlich der IP-Adresse des Servers und der Ablade-Stapel-Anschluss-Nummer (z.B. iWARP-Anschluss 1080) des Servers senden. Die Verbindungs-Anfrage kann dann über das physikalische Medium 195 durch den NIC-Treiber 240 und den Netzwerk-Adapter 250 ausgesendet werden. Das physikalische Medium 195 kann die Verbindungsanfrage (z.B. TCP-SYN mit dest_port=1080) von dem Client 200 an den Server 100 tragen.
  • Die Verbindungs-Anfrage kann durch den Netzwerk-Adapter 150 des Servers 100 empfangen werden. Der Netzwerk-Adapter 150 kann einige der Ziel-Parameter von dem empfangenen Paket bestätigen. Bei einem Beispiel können die Ziel-Parameter die IP-Adresse des Servers und die Anschluss-Nummer beinhalten, die der Ablade-Stapel 180 abhört. Die Ziel-Parameter können mit den in der LUT 190 gespeicherten Werten verglichen werden. Die LUT 190 kann beispielsweise anzeigen, dass eine Übereinstimmung zwischen einer bestimmten Anschluss-Nummer und einem bestimmten Bearbeitungs-Stapel vorliegt. Bei einem Beispiel kann die LUT 190 anzeigen, dass ein Paket, das die IP-Adresse des Servers und den iWARP-Anschluss 80 beinhaltet, zum Bearbeiten an den Ablade-Stapel 180 gesendet werden soll. Das Paket kann das beschleunigende Bearbeiten des Ablade-Stapels 180 empfangen, bevor es zumindest teilweise an die Applikation 110 weitergeleitet wird. Dadurch kann in einem Beispiel der Netzwerk-Adapter 150 bestimmen, ob ein empfangenes Paket (z.B. ein TCP-IP-Paket) durch den Ablade-Stapel 180 bearbeitet werden soll, noch bevor eine Verbindung (z.B. eine TCP-Verbindung) aufgebaut wurde.
  • Während die vorliegende Erfindung unter Bezugnahme auf bestimmte Ausführungsformen beschrieben wurde, ist es für den Fachmann in der betreffenden Technologie selbstverständlich, dass unterschiedliche Veränderungen und Äquivalente ersetzt werden können, ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen. Zusätzlich können viele Modifikationen vorgenommen werden, um eine bestimmte Situation oder Material an die Lehre der vorliegenden Erfindung anzupassen, ohne deren Geltungsbereich zu verlassen. Es ist deshalb beabsichtigt, dass die vorliegende Erfindung nicht auf eine bestimmte, hier offenbarte Ausführungsform beschränkt wird, sondern dass die vorliegende Erfindung sämtliche Ausführungsformen umfasst, die in den Schutzbereich der beigefügten Ansprüche fallen.

Claims (7)

  1. Kommunikations-System mit einem ersten Computer (100) und einem zweiten Computer (200), wobei der erste Computer (100) einen ersten Speicher umfasst zum Speichern eines ersten Protokoll-Bearbeitungs-Stapels (130) und einer ersten Anschluss-Nummer, die mit dem ersten Protokoll-Bearbeitungs-Stapel (130) assoziiert ist, wobei der erste Computer (100) einen zweiten Speicher umfasst zum Speichern eines zweiten Protokoll-Bearbeitungs-Stapels (180) und einer zweiten Anschluss-Nummer, die mit dem zweiten Protokoll-Bearbeitungs-Stapel (180) assoziiert ist, dadurch gekennzeichnet, dass der erste Computer (100) einen dritten Speicher zum Speichern einer Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer umfasst, wobei der zweite Computer (130) einen zweiten Übermittler umfasst, der angepasst ist, ein Datagramm an den ersten Computer (100) zu senden mit der Anfrage hinsichtlich einer Anschluss-Nummer entsprechend der ersten Anschluss-Nummer; wobei der erste Computer (100) einen ersten Transmitter umfasst, der angepasst ist, ein Antwort-Datagramm an den zweiten Computer (130) umfassend die zweite Anschluss-Nummer zu senden; wobei das Kommunikations-System angepasst ist, über den zweiten Protokoll-Bearbeitungs-Stapel (180) des ersten Computers (100) unter Verwendung der zweiten Anschluss-Nummer zu kommunizieren.
  2. Kommunikations-System gemäß Anspruch 1, wobei der erste Computer angepasst ist, das von dem zweiten Computer (200) an den ersten Computer (100) gesendete Datagramm unter Verwendung des ersten Protokoll-Bearbeitungs-Stapels (130) zu bearbeiten.
  3. Kommunikations-System gemäß Anspruch 1, wobei der zweite Übermittler angepasst ist, das Datagramm von dem zweiten Computer (200) an den ersten Computer (100) zu senden, wobei das Datagramm die erste Anschluss-Nummer umfasst.
  4. Verfahren zum Kommunizieren zwischen einem ersten Computer (100) und einem zweiten Computer (200), umfassend: Assoziieren einer ersten Anschluss-Nummer mit einem ersten Protokoll-Bearbeitungs-Stapel (130) des ersten Computers (100); Assoziieren einer zweiten Anschluss-Nummer mit einem zweiten Protokoll-Bearbeitungs-Stapel (180) des ersten Computers (100); gekennzeichnet durch die Schritte Speichern einer Übereinstimmung zwischen der ersten Anschluss-Nummer und der zweiten Anschluss-Nummer in dem ersten Computer (100); Senden eines Datagramms von dem zweiten Computer (200) an den ersten Computer (100) mit der Anfrage hinsichtlich einer Anschluss-Nummer korrespondierend zu der ersten Anschluss-Nummer; Senden eines Antwort-Datagramms von dem ersten Computer (100) an den zweiten Computer (200), umfassend die zweite Anschluss-Nummer; und Kommunizieren über den zweiten Protokoll-Bearbeitungs-Stapel (180) des ersten Computers (100) unter Verwendung der zweiten Anschluss-Nummer.
  5. Verfahren gemäß Anspruch 4, wobei das von dem zweiten Computer (200) an den ersten Computer (100) gesendete Datagramm durch den ersten Protokoll-Bearbeitungs-Stapel (130) bearbeitet wird.
  6. Verfahren gemäß Anspruch 4, wobei das von dem zweiten Computer (200) an den ersten Computer (100) gesendete Datagramm die erste Anschluss-Nummer umfasst.
  7. Datenspeichermittel zum Speichern von Instruktionen, die von einem Computer ausführbar sind, wobei die Instruktionen angepasst sind, sämtliche Schritte des Verfahrens gemäß einem der vorangehenden Ansprüche 4, 5 und 6 auszuführen.
DE60307000T 2002-07-26 2003-07-25 System und Verfahren für die Verwaltung von mehreren Protokollstacks Expired - Lifetime DE60307000T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US39866302P 2002-07-26 2002-07-26
US398663P 2002-07-26
US43450302P 2002-12-18 2002-12-18
US434503P 2002-12-18
US10/336,983 US7647414B2 (en) 2002-07-26 2003-01-06 System and method for managing multiple stack environments
US336983 2003-01-06

Publications (2)

Publication Number Publication Date
DE60307000D1 DE60307000D1 (de) 2006-09-07
DE60307000T2 true DE60307000T2 (de) 2007-03-15

Family

ID=30003758

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60307000T Expired - Lifetime DE60307000T2 (de) 2002-07-26 2003-07-25 System und Verfahren für die Verwaltung von mehreren Protokollstacks

Country Status (3)

Country Link
US (2) US7647414B2 (de)
EP (1) EP1385313B1 (de)
DE (1) DE60307000T2 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002084499A1 (en) * 2001-04-11 2002-10-24 Chelsio Communications, Inc. Multi-purpose switching network interface controller
US8230090B2 (en) * 2002-09-11 2012-07-24 Broadcom Corporation System and method for TCP offloading and uploading
US7936766B2 (en) * 2002-09-20 2011-05-03 Wind River Systems, Inc. System and method for separating logical networks on a dual protocol stack
US7554993B2 (en) * 2003-03-27 2009-06-30 Hewlett-Packard Development Company, L.P. Method and apparatus for performing connection management with multiple stacks
US8140694B2 (en) * 2004-03-15 2012-03-20 Hewlett-Packard Development Company, L.P. Method and apparatus for effecting secure communications
US7565438B1 (en) * 2004-03-30 2009-07-21 Sprint Communications Company L.P. Digital rights management integrated service solution
US20060034283A1 (en) * 2004-08-13 2006-02-16 Ko Michael A Method and system for providing direct data placement support
US20060045098A1 (en) * 2004-08-31 2006-03-02 Krause Michael R System for port mapping in a network
FI20055239A (fi) * 2005-05-13 2006-11-14 Nethawk Oy Menetelmä sanomien käsittelemiseksi tietojenkäsittelylaite ja tietokoneohjelmatuote
US7724658B1 (en) 2005-08-31 2010-05-25 Chelsio Communications, Inc. Protocol offload transmit traffic management
US7616563B1 (en) 2005-08-31 2009-11-10 Chelsio Communications, Inc. Method to implement an L4-L7 switch using split connections and an offloading NIC
US7660306B1 (en) 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US20070186010A1 (en) * 2006-02-03 2007-08-09 Rockwell Automation Technologies, Inc. Extending industrial control system communications capabilities
US8935406B1 (en) * 2007-04-16 2015-01-13 Chelsio Communications, Inc. Network adaptor configured for connection establishment offload
US7826350B1 (en) 2007-05-11 2010-11-02 Chelsio Communications, Inc. Intelligent network adaptor with adaptive direct data placement scheme
US8060644B1 (en) 2007-05-11 2011-11-15 Chelsio Communications, Inc. Intelligent network adaptor with end-to-end flow control
US8589587B1 (en) 2007-05-11 2013-11-19 Chelsio Communications, Inc. Protocol offload in intelligent network adaptor, including application level signalling
US7831720B1 (en) 2007-05-17 2010-11-09 Chelsio Communications, Inc. Full offload of stateful connections, with partial connection offload
JP4669901B2 (ja) * 2008-10-21 2011-04-13 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US20110294547A1 (en) * 2008-11-11 2011-12-01 Netqin Mobile (Beijing) Technology Co., Ltd. Method and system for interactive operation between mobile phone and pc based on a middleware
US8521919B2 (en) * 2009-06-30 2013-08-27 International Business Machines Corporation Direct memory access in a computing environment
CN104811431B (zh) 2014-01-29 2018-01-16 华为技术有限公司 基于并行协议栈实例的数据包处理方法和装置
CN104811432A (zh) * 2014-01-29 2015-07-29 华为技术有限公司 基于并行协议栈实例的数据包处理方法和装置
US9936051B2 (en) 2015-07-07 2018-04-03 International Business Machines Corporation Managing network sockets

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555244A (en) * 1994-05-19 1996-09-10 Integrated Network Corporation Scalable multimedia network
US5485460A (en) * 1994-08-19 1996-01-16 Microsoft Corporation System and method for running multiple incompatible network protocol stacks
US5734865A (en) * 1995-06-07 1998-03-31 Bull Hn Information Systems Inc. Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment
US6182146B1 (en) * 1997-06-27 2001-01-30 Compuware Corporation Automatic identification of application protocols through dynamic mapping of application-port associations
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US5944783A (en) * 1997-07-29 1999-08-31 Lincom Corporation Apparatus and method for data transfers through software agents using client-to-server and peer-to-peer transfers
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US6324583B1 (en) * 1998-11-17 2001-11-27 International Business Machines Corp. Method and apparatus for enabling communication between dissimilar protocol stacks
US6182149B1 (en) * 1999-01-11 2001-01-30 3Com Corporation System for managing dynamic processing resources in a network
US6850985B1 (en) * 1999-03-02 2005-02-01 Microsoft Corporation Security and support for flexible conferencing topologies spanning proxies, firewalls and gateways
US6449695B1 (en) * 1999-05-27 2002-09-10 Microsoft Corporation Data cache using plural lists to indicate sequence of data storage
US6789116B1 (en) * 1999-06-30 2004-09-07 Hi/Fn, Inc. State processor for pattern matching in a network monitor device
AU1074801A (en) * 1999-10-05 2001-05-10 Ejasent Inc. Virtual endpoint
US6968386B1 (en) * 2000-01-06 2005-11-22 International Business Machines Corporation System for transferring data files between a user workstation and web server
JP3591420B2 (ja) * 2000-04-07 2004-11-17 日本電気株式会社 ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体
EP1168754B1 (de) 2000-06-26 2005-03-16 Alcatel Adressierungsschema für ein IP basiertes funkzugriffsnetz
US6941369B1 (en) * 2000-07-20 2005-09-06 Unisys Corporation Gateway CGI and access control manager for secure inter-server communications with system and method for web serving using same
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
FI112308B (fi) * 2000-09-14 2003-11-14 Nokia Corp Protokollan käsittelyn jakaminen
US6934952B2 (en) * 2001-04-09 2005-08-23 International Business Machines Corporation Method and apparatus for managing multiple instances of server code on a machine
US20030204620A1 (en) * 2002-04-29 2003-10-30 Intel Corporation Network device with improved routing characteristics
US7478139B2 (en) * 2002-04-29 2009-01-13 International Business Machines Corporation Shared resource support for internet protocol

Also Published As

Publication number Publication date
EP1385313A1 (de) 2004-01-28
US7647414B2 (en) 2010-01-12
US20040019689A1 (en) 2004-01-29
DE60307000D1 (de) 2006-09-07
EP1385313B1 (de) 2006-07-26
US8046482B2 (en) 2011-10-25
US20100115118A1 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
DE60307000T2 (de) System und Verfahren für die Verwaltung von mehreren Protokollstacks
DE60204528T2 (de) Auflösen von virtuellen Netzwerknamen
DE60305378T2 (de) Verfahren zum Weitergeben von einem Netzwerkstapel
DE10356724B3 (de) Verfahren zum Verringern des Transportvolumens von Daten in Datennetzen
DE60210927T3 (de) Verfahren und Vorrichtung zur Zulassung der Datenübertragung über Firewalls
DE60122782T2 (de) Adressierungsverfahren und system zur verwendung einer anycast-adresse
DE60303026T2 (de) System, verfahren und produkt zur verwaltung des datenverkehrs in einem netzwerk
DE602005005724T2 (de) Endpunktadressenänderung in einem Paketnetzwerk
DE602005005219T2 (de) Paketzusammenführung
DE60314659T2 (de) System und Verfahren zur Entdeckung und Einstellung von einem Server
DE10296660B4 (de) Über Netzwerkadressübersetzungs(NAT) -Einrichtungen hinweg betreibbare Kommunikationsprotokolle
DE60025129T2 (de) Verfahren und Vorrichtung zur Bereitstellung von skalierbaren Diensten unter Benutzung einer Paketverteilungstabelle
DE602004007303T2 (de) Identifizierungs-verfahren und -vorrichtung zum aufbau von hip-verbindungen zwischen gewöhnlichen und hip-fähigen netzknoten
DE602006000489T2 (de) Konnektivität über stateful firewalls
DE60310645T2 (de) Verhinderung von Paketzerteilung
DE69736422T2 (de) Verfahren und Vorrichtung für eine hybride Serverkommunikationsstruktur zwischen gleichen Schichten
EP2145445B1 (de) Verfahren zur verbesserung eines tcp datenübertragungsprozesses im fall einer unterbrechung des physikalischen übertragungsmediums
DE10296969B4 (de) Verfahren und System zur automatischen Erkennung von IP-basierenden Netzwerkelementen
DE202021103381U1 (de) Computerlesbares Medium und Systeme zur Implementierung eines regional zusammenhängenden Proxy-Dienstes
DE60208990T2 (de) Verfahren zur Unterscheidung von Teilnehmer eines Kommunikationssystems, Kommunikationssystem und Kommunikationsgerät
DE69833206T2 (de) Netzwerkkontrolle zum verarbeiten von statusproblemen
DE60221538T2 (de) System und verfahren zum koordinieren von netzereignissen
DE60006821T2 (de) Zugangskontrolle in einem gateway-server
DE102004003549B4 (de) Kommunikationssystem und Verfahren zum Verarbeiten einer von einem Mobilfunkendgerät eines Mobilfunk-Kommunikationsnetzes einem Nachrichtenfilter-Rechner zugeführten Anforderungs-Nachricht
DE60127871T2 (de) Einrichtung, verfahren und system für verbessertes routing bei der mobil-ip-vernetzung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M