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