DE60311688T2 - Verfahren um Verbindungsverhandlungen für höhere Protokollschichten zu beschleunigen - Google Patents

Verfahren um Verbindungsverhandlungen für höhere Protokollschichten zu beschleunigen Download PDF

Info

Publication number
DE60311688T2
DE60311688T2 DE60311688T DE60311688T DE60311688T2 DE 60311688 T2 DE60311688 T2 DE 60311688T2 DE 60311688 T DE60311688 T DE 60311688T DE 60311688 T DE60311688 T DE 60311688T DE 60311688 T2 DE60311688 T2 DE 60311688T2
Authority
DE
Germany
Prior art keywords
node
rdma
connection
parameters
nodes
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
DE60311688T
Other languages
English (en)
Other versions
DE60311688D1 (de
Inventor
F. Kan 91765 Irvine Fan
Uri 92606 Irvine Elzur
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 DE60311688D1 publication Critical patent/DE60311688D1/de
Application granted granted Critical
Publication of DE60311688T2 publication Critical patent/DE60311688T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • 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]
    • 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/24Negotiation of communication capabilities

Landscapes

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

Description

  • Die Erfindung betrifft ein Verfahren zum Erzeugen von Kommunikations-Links zwischen einem ersten Knoten und einem zweiten Knoten.
  • HINTERGRUND DER ERFINDUNG
  • Bei vielen Typen von Netzen oder Systemen können Ressourcen in einem ersten Knoten einen Zugriff auf Ressourcen in einem zweiten Knoten benötigen. Insbesondere in einem Fall, in dem mehrere Verbindungen oder wiederholte Verbindungen zwischen dem ersten Knoten und dem zweiten Knoten benötigt werden, kann der Verbindungsvorgang sehr zeitraubend sein, da der Verbindungsvorgang z.B. trotz der Tatsache, dass die Verbindung zwischen den gleichen zwei Knoten stattfindet, jeden Verbindungsvorgang als einen neuen und isolierten Fall betrachtet.
  • US 5,958,053 beschreibt ein TCP-Protokoll, bei dem sowohl der Client als auch der Server ihre Unterstützung für dieses Protokoll anzeigen, indem sie ein oder mehr Bits im TCP-Header verwenden, und bei dem der Client eine ACK-Nachricht an den Server sendet. In der ACK-Nachricht ist ein codierter Wert enthalten, und angeforderte Optionen des Client werden rückübertragen, so dass der Server die Optionen nach einer Verbindungsanforderung nicht zu speichern braucht.
  • Weitere Einschränkungen und Nachteile von herkömmlichen und traditionellen Lösungsansätzen ergeben sich für den Durchschnittsfachmann durch einen Vergleich solcher Systeme mit der vorliegenden Erfindung, wie sie im Rest der vorliegenden Anmeldung unter Bezugnahme auf die Zeichnung dargestellt ist.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zum Erzeugen von Kommunikations-Links zwischen einem ersten Knoten und einem zweiten Knoten gemäß der Definition in dem unabhängigen Patentanspruch 1 zur Verfügung gestellt. Weitere vorteilhafte Merkmale der Erfindung [finden sich in den] abhängigen Unteransprüchen.
  • Aspekte der vorliegenden Erfindung sind beispielsweise in Systemen und Verfahren zu finden, welche Verbindungsverhandlungen beschleunigen. Bei einer Ausführungsform kann die vorliegende Erfindung ein Verfahren zur Verfügung stellen, das eine Upper Layer Protocol (ULP)-Verhandlung zwischen einem ersten Knoten und einem zweiten Knoten beschleunigt. Das Verfahren kann beispielsweise das Senden eines modifizierten Bestätigungspaketes von dem ersten Knoten an den zweiten Knoten umfassen, wobei das modifizierte Bestätigungspaket Informationen beinhaltet, die verwendet werden, um Parameter zurück zu gewinnen, die von dem ersten Knoten und dem zweiten Knoten in einer voraus gegangenen ULP-Verhandlung zwischen dem ersten Knoten und dem zweiten Knoten vereinbart wurden.
  • Bei einer anderen Ausführungsform kann die vorliegende Erfindung ein Verfahren zur Verfügung stellen, das eine erste Maschine mit einer zweiten Maschine verbindet. Das Verfahren kann beispielsweise einen oder mehrere der nachfolgenden Verfahrensschritte umfassen: Senden eines Synchronisationspaketes von der ersten Maschine an die zweite Maschine; Senden eines Synchronisations-Bestätigungspaketes von der zweiten Maschine an die erste Maschine; und Senden eines modifizierten Bestätigungspaketes von der ersten Maschine an die zweite Maschine.
  • Bei wieder einer anderen Ausführungsform kann die vorliegende Erfindung ein Verfahren zur Verfügung stellen, das einen Kommunikations-Link zwischen einem ersten Knoten und einem zweiten Knoten erzeugt. Das Verfahren kann beispielsweise einen oder mehrere der nachfolgenden Verfahrensschritte umfassen: Herstellen einer Transportschichtprotokoll (TLP)-Verbindung zwischen dem ersten Knoten und dem zweiten Knoten; und Senden von Informationen von dem ersten Knoten an den zweiten Knoten während der Herstellung der TLP-Verbindung, wobei die Informationen auf Parameter Bezug nehmen, um ULP-Verhandlungen für einen bestimmten Typ einer ULP-Verbindung zwischen dem ersten Knoten und dem zweiten Knoten zu beschleunigen.
  • Bei wieder einer anderen Ausführungsform kann die vorliegende Erfindung ein Verfahren zur Verfügung stellen, das einen Kommunikations-Link zwischen einem ersten Knoten und einem zweiten Knoten erzeugt. Das Verfahren kann beispielsweise einen oder mehr der nachfolgenden Verfahrensschritte umfassen: Herstellen einer TLP-Verbindung zwischen dem ersten Knoten und dem zweiten Knoten; und Senden von Informationen von dem ersten Knoten an den zweiten Knoten nach dem Herstellen der TLP-Verbindung, wobei die Informationen auf Parameter Bezug nehmen, um ULP-Verhandlungen für einen bestimmten Typ einer ULP-Verbindung zwischen dem ersten Knoten und dem zweiten Knoten zu beschleunigen.
  • Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung ergeben sich aus einer Durchsicht der nachfolgenden detaillierten Beschreibung der vorliegenden Erfindung in Verbindung mit den beigefügten Figuren, in denen sich gleiche Bezugszeichen durchwegs auf gleiche Teile beziehen.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1 zeigt ein Zeitablaufdiagramm zur Veranschaulichung einer Ausführungsform eines Verbindungsherstellungsvorgangs gemäß der vorliegenden Erfindung.
  • 2 zeigt ein Zeitablaufdiagramm zur Veranschaulichung einer Ausführungsform eines Vorgangs, der in einem darauf folgenden Verbindungsvorgang gemäß der vorliegenden Erfindung verwendet wird.
  • 3 zeigt ein Ablaufdiagramm zur Veranschaulichung einer Ausführungsform eines Vorgangs, der in einem darauf folgenden Verbindungsvorgang gemäß der vorliegenden Erfindung verwendet wird.
  • 4 zeigt ein Ablaufdiagramm zur Veranschaulichung einer anderen Ausführungsform eines Vorgangs, der in einem darauf folgenden Verbindungsvorgang gemäß der vorliegenden Erfindung verwendet wird.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Aspekte der vorliegenden Erfindung können Systeme und Verfahren betreffen, die Upper Layer Protocol (ULP)-Verbindungsverhandlungen zwischen einem ersten Knoten und einem zweiten Knoten auf der Grundlage zumindest von voraus gegangenen ULP-Verbindungsverhandlungen zwischen dem ersten Knoten und dem zweiten Knoten beschleunigen. Einige Ausführungsformen können Systeme und Verfahren betreffen, die ULP-Verbindungsverhandlungen durch das Bereitstellen zusätzlicher Informationen während der oder unmittelbar im Anschluss an die Lower Layer Protocol (LLP)-Verbindungsherstellung (z.B. eine Transportschichtprotokoll (TLP)-Verbindungsherstellung) zwischen dem ersten Knoten und dem zweiten Knoten beschleunigen. Die zusätzlichen Informationen, die während der Herstellung der LLP-Verbindung zwischen dem ersten Knoten und dem zweiten Knoten bereit gestellt werden, können beispielsweise Informationen umfassen, die auf vorausgehend aus gehandelte und vereinbarte Parameter, Credentials bzw. Legitimationen (z.B. anwendungsspezifische Credentials) und Sicherheitsinformationen (z.B. kryptografische Werte) Bezug nehmen. Durch die Verwendung vorausgehend ausgehandelter und vereinbarter Parameter aus einer bestimmten Verbindung zwischen dem ersten Knoten und dem zweiten Knoten kann eine voll ausgebildete ULP-Verbindungsverhandlung für jede nachfolgende Verbindung vermieden werden. Vorausgehend ausgehandelte und vereinbarte Parameter können z.B. für jeden ULP-Typ oder für jeden Anwendungstyp zwischen dem ersten Knoten und dem zweiten Knoten gespeichert werden.
  • 1 zeigt ein Zeitablaufdiagramm zur Veranschaulichung einer Ausführungsform eines Verbindungsherstellungsvorgangs zwischen zwei Knoten gemäß der vorliegenden Erfindung. Der Verbindungsvorgang ist in zwei Teilen veranschaulicht, obgleich die vorliegende Erfindung auch einen Verbindungsvorgang mit mehr oder weniger als zwei Teilen in Betracht zieht. In dem ersten Teil stellt der Verbindungsvorgang einen Transmission Control Protocol (TCP)-Verbindungsherstellungsvorgang zur Verfügung, und in dem zweiten Teil stellt der Verbindungsvorgang einen Remote Device Memory Access (RDMA)-Verhandlungsvorgang zur Verfügung. Obgleich sich die Beschreibung der vorliegenden Erfindung auf diese zwei bestimmten Vorgänge bezieht, kann sie im Allgemeinen auch auf andere Vorgänge angewendet werden. Daher können beispielsweise auch andere LLP-Verbindungsherstellungsvorgänge verwendet werden, obgleich sich die Beschreibung auf den TCP-Verbindungsherstellungsvorgang bezieht. Ferner können auch andere ULP- oder anwendungsspezifische Verhandlungsvorgänge verwendet werden, obgleich die Beschreibung im Hinblick auf einen RDMA-Verhandlungsvorgang gegeben wird. Darüber hinaus zieht die vorliegende Erfindung auch in Betracht, dass Knoten 1 oder Knoten 2 mehr als einen Typ von ULP-Verbindung zur Verfügung stellen kann und an mehr als einem Typ von ULP-Verbindungsverhandlung teilnehmen kann.
  • Gemäß einer Ausführungsform beginnt der TCP-Verbindungsherstellungsvorgang z.B. damit, dass der Knoten 1 ein Synchronisations (SYN)-Paket 10 an den Knoten 2 sendet. Im Ansprechen darauf sendet der Knoten 2 ein Synchronisations/Bestätigungs (SYN/ACK)-Paket 20 an den Knoten 1. Daraufhin sendet der Knoten 1 ein ACK-Paket 30 an den Knoten 2. Damit ist der TCP-Verbindungsherstellungsvorgang abgeschlossen, und die TCP-Verbindung ist hergestellt.
  • Bei dem RDMA-Verhandlungsvorgang tauschen Knoten 1 und Knoten 2 mehrfach Informationspakete 40 aus. Während dieses Verhandlungsvorgangs tauschen Knoten 1 und Knoten 2 Informationen beispielsweise über Fähigkeiten, Ressourcen, Präferenzen o. dgl. aus. Während der Verhandlung wird eine Vereinbarung zwischen Knoten 1 und Knoten 2 getroffen, bei der beispielsweise eine Auswahl von Parametern (z.B. aus den möglichen Fähigkeiten und Ressourcen) im Hinblick auf bestimmte Präferenzen vereinbart wird. Damit ist die RDMA-Verhandlung abgeschlossen.
  • Knoten können Mehrfachverbindungen aufweisen. Bei einem Beispiel können die Knoten (z.B. Knoten 1 und Knoten 2) den Vorgang für die TCP-Verbindungsherstellung und die RDMA-Verhandlung gemäß der oben stehenden Beschreibung duplizieren. Da jedoch mehrere Verbindungen zwischen Knoten viele identische Verbindungsparameter aufweisen können, die durch den anfänglichen Verbindungsvorgang bestimmt werden, kann die vorliegende Erfindung die Verwendung der anfänglichen Verbindungsvorgangsparameter in Betracht ziehen, um andere zusätzliche Verbindungen zu beschleunigen, die gleichzeitig sein können oder auch nicht.
  • Die anfänglichen Verbindungsvorgangsparameter sowie beispielsweise auch die Verbindungsparameter nachfolgender Verbindungen können sicher gespeichert und wieder aufgerufen werden, so dass die Verbindungen gegen eine Fremdübernahme ("hijacking") immun sind. Beispielsweise kann ein unbefugter Anwender nicht in der Lage sein, auf die anfänglichen Verbindungsvorgangsparameter zuzugreifen, die verwendet worden sein können, um die n-te Verbindung zwischen den Knoten zu beschleunigen. Daher kann der unbefugte Anwender nicht in der Lage sein, die n-te oder irgendeine andere Verbindung zwischen den Knoten zu übernehmen.
  • Einige Ausführungsformen der vorliegenden Erfindung können Widerstandsfähigkeit gegen Angriffe wie etwa z.B. Dienstverweigerungs ("Denial of Service"; DoS)-Angriffe zur Verfügung stellen. Bei einem DoS-Angriff versucht ein Angreifer, möglichst viele Ressourcen auf dem Zielsystem (d.h. dem angegriffenen System) zu verbrauchen, um zu verhindern, dass das Zielsystem anderen Maschinen Dienstleistungen zur Verfügung stellt. Unter bestimmten Umständen kann eine RDMA-Verbindung viel mehr Ressourcen als z.B. eine einfache TCP-Verbindung erfordern, die auf teilnehmenden Maschinen zugewiesen werden müssen, wie zum Beispiel dedizierte Datenstrukturen (z.B. dedizierte Speicherpuffer). Der Angreifer kann versu chen, möglichst viele Ressourcen zu binden, indem er die angegriffene Maschine durch Täuschung dazu bringt, Ressourcen zu einem frühen Zeitpunkt der Verhandlung zuzuweisen. Der Angreifer kann versuchen, die angegriffene Maschine zu veranlassen, Ressourcen vor dem Abschluss der Verhandlung zuzuweisen, bevor die angegriffene Maschine die Credentials des Angreifers verifiziert hat und/oder bevor der Angreifer seinerseits Ressourcen bereitstellen muss.
  • Gemäß einer Ausführungsform können für die erste Verbindung zwischen zwei Maschinen keine RDMA-Ressourcen vor dem Abschluss einer Dreiweg-TCP-Verbindungsverhandlung verbraucht werden. Der Abschluss der Dreiweg-TCP-Verbindungsverhandlung kann in die Zuständigkeit von beiden Seiten fallen, wodurch die Server-Maschine zusammen mit potenziellen, zusätzlichen Credentials Sicherheit erlangt, bevor sie mehr Ressourcen für die Erstellung der Verbindung mit RDMA bereit stellt. Für eine darauf folgende Verbindung kann eine kürzere Verhandlung stattfinden. In einem Fall, in dem ein Angreifer den Knoten 1 (z.B. den Client) imitiert und von Knoten 2 (z.B. dem Server) RDMA-Dienste erbittet, könnte Knoten 2 fälschlicherweise Vertrauen in die Verbindung setzen, da bereits andere Verbindungen zwischen Knoten 1 und Knoten 2 existieren können und Knoten 2 alle seine Credentials überprüft haben kann. Bei einer Ausführungsform sollte Knoten 1 daher Credentials für Knoten 2 zur Verfügung stellen, bevor Knoten 2 seinerseits Ressourcen für eine RDMA-Verbindung bereitstellt.
  • Bei einem weiteren Beispiel speichert mindestens ein Knoten, nachdem Knoten 1 und Knoten 2 die RDMA-Verhandlung für eine Verbindung erfolgreich abgeschlossen haben, die vereinbarten Parameter aus den RDMA-Verhandlungen in jeweiligen Speicherablagevorrichtungen, auf die Knoten 1 oder Knoten 2 zugreifen kann oder die Teil von Knoten 1 oder Knoten 2 sind. Bei einer Ausführungsform kann entweder Knoten 1 oder Knoten 2 als Client oder Server oder als beides dienen. Bei einer Client/Server-Konfiguration kann der Server seine Ressourcen sichern. Bei einer anderen Ausführungsform können Knoten 1 und Knoten 2 zwei gleichrangige Vorrichtungen (Peers) sein, die versuchen, eine RDMA-Verbindung herzustellen. Jeder der Peers kann entweder Knoten 1 oder Knoten 2 sein. 2 zeigt ein Zeitablaufdiagramm, und 3 zeigt ein Ablaufdiagramm zur Veranschaulichung einer Ausführungsform eines Vorgangs, der in darauf folgenden Verbindungsvorgängen zwischen Knoten 1 und Knoten 2 gemäß der vorliegenden Erfindung verwendet wird.
  • Um eine darauf folgende RDMA-Verbindung unter Verwendung einer verkürzten Verhandlungsphase herzustellen, kann eine Ausführungsform des Vorgangs befolgt werden, der in 3 veranschaulicht ist. Der TCP-Verbindungsherstellungsvorgang beginnt in Schritt 70 damit, dass Knoten 1 das SYN-Paket 10 an Knoten 2 sendet. In Schritt 80 antwortet Knoten 2, indem er das SYN/ACK-Paket 20 an Knoten 1 sendet. Im Ansprechen darauf sendet Knoten 1 in Schritt 90 ein modifiziertes ACK-Paket 50 an den Knoten 2. Damit ist der TCP-Verbindungsherstellungsvorgang abgeschlossen, und die TCP-Verbindung ist hergestellt.
  • Der RDMA-Verhandlungsvorgang umfasst auch das Senden des modifizierten ACK-Paketes 50 von Knoten 1 an Knoten 2. Da Knoten 1 und Knoten 2 bereits einen RDMA-Verhandlungsvorgang durchlaufen und die ausgehandelten und vereinbarten Parameter in einer Speicherablagevorrichtung (z.B. in jeweiligen Speicherablagevorrichtungen) gespeichert haben, kann Knoten 1 in Schritt 90 Speicherablagestelle-Informationen über das modifizierte ACK-Paket 50 an Knoten 2 senden, so dass Knoten 2 die vorausgehend ausgehandelten und vereinbarten Parameter präsentieren kann. Die Speicherablagestelle-Informationen können die Form eines Cookie (z.B. einer kryptografisch geschützten Speicheradresse) haben, das bei einem Beispiel zu dem ACK-Paket 30 hinzugefügt wird oder in diesem enthalten ist, um das modifizierte ACK-Paket 50 zu bilden. Bei einer Ausführungsform kann eine Bezugnahme auf vorausgehend erstellte Credentials von Knoten 1 zusammen mit der Speicherablagestelle zur Verfügung gestellt werden. Bei einer Ausführungsform kann sowohl Knoten 1 als auch Knoten 2 in Schritt 100 die vorausgehend ausgehandelten und vereinbarten Parameter zurückgewinnen, die in jeweiligen Speicherablagevorrichtungen gespeichert wurden. Als Alternative kann ein Knoten die vorausgehend ausgehandelten und vereinbarten Parameter zurückgewinnen und die Informationen an den anderen Knoten weitergeben. Wenn sich also sowohl Knoten 1 als auch Knoten 2 darauf einigen, die vorausgehend gespeicherten, ausgehandelten und vereinbarten Parameter zu verwenden, dann wird die RDMA-Verhandlung ohne die zusätzliche Hin- und Herbewegung der Informationspakete 40 in dem Verhandlungsvorgang abgeschlossen, der in 1 veranschaulicht und vorausgehend beschrieben ist. Damit ist der Verbindungsvorgang abgeschlossen. Bei einer anderen Ausführungsform kann Knoten 1 (z.B. ein Client) die Parameter kennen, bevor er eine Verbindungsherstellung anfordert. Somit kann es nur Knoten 2 sein (z.B. ein Server, der eine Mehrzahl von Clients bedienen kann), der die angeforderten Parameter für die Verbindung aufrufen muss und dadurch den Verbindungsvorgang abschließt. Bei wieder einer anderen Ausführungsform kann Knoten 1 die Parameter kennen, bevor er eine Verbindungsherstellung anfordert. Knoten 1 kann daraufhin die Parameter oder Angaben über die Parameter an Knoten 2 senden, womit der Verbindungsvorgang abgeschlossen ist. Wenn sich aber entweder Knoten 1 und Knoten 2 dafür entscheidet, die vorausgehend gespeicherten, ausgehandelten Parameter nicht zu akzeptieren, dann kann der typische Verhandlungsvorgang, der in 1 veranschaulicht und oben beschrieben ist, verwendet werden, um die RDMA-Verhandlung abzuschließen. Falls sich bei einer anderen Ausführungsform entweder Knoten 1 oder Knoten 2 dafür entscheidet, die vorausgehend gespeicherten, ausgehandelten Parameter nicht zu akzeptieren, dann können die zurückgewonnenen Parameter einen Ausgangspunkt zur Verfügung stellen, von dem aus der Verhandlungsvorgang beginnen kann.
  • Um eine darauf folgende RDMA-Verbindung unter Verwendung einer verkürzten Verhandlungsphase herzustellen, kann eine andere Ausführungsform des in 4 veranschaulichten Vorgangs befolgt werden. Der TCP-Verbindungsherstellungsvorgang beginnt in Schritt 120 damit, dass Knoten 1 das SYN-Paket 10 an den Knoten 2 sendet. In Schritt 130 antwortet Knoten 2, indem er das SYN/ACK-Paket 20 an Knoten 1 sendet. Im Ansprechen darauf sendet Knoten 1 in Schritt 140 ein ACK-Paket 50 an Knoten 2. Damit ist der TCP-Verbindungsherstellungsvorgang abgeschlossen, und die TCP-Verbindung ist hergestellt.
  • In Schritt 150 sendet Knoten 1 eine verkürzte Version der ULP- oder RDMA-Verhandlung. Da Knoten 1 und Knoten 2 beispielsweise bereits einen RDMA-Verhandlungsvorgang durchlaufen haben und die ausgehandelten und vereinbarten Parameter in einer Speicherablagevorrichtung (z.B. in jeweiligen Speicherablagevorrichtungen) gespeichert haben, kann Knoten 1 in Schritt 150 Speicherablagestelle-Informationen über ein zusätzliches Paket an Knoten 2 senden, so dass Knoten 2 die vorausgehend ausgehandelten und vereinbarten Parameter präsentieren kann. Die Speicherablagestelle-Informationen können die Form eines Cookie (z.B. einer kryptografisch geschützten Speicheradresse) haben, das bei einem Beispiel zu dem neuen Paket hinzugefügt wird oder in diesem enthalten ist. Bei einer Ausführungsform kann eine Bezugnahme auf vorausgehend hergestellte Credentials von Knoten 1 zusammen mit der Speicherablagestelle zur Verfügung gestellt werden. Bei einer Ausführungsform kann sowohl Knoten 1 als auch Knoten 2 in Schritt 160 die vorausgehend ausgehandelten und vereinbarten Parameter zurückgewinnen, die in jeweiligen Speicherablagevorrichtungen gespeichert wurden. Als Alternative kann ein Knoten die vorausge hend ausgehandelten und vereinbarten Parameter zurückgewinnen und die Informationen an den anderen Knoten weitergeben. Wenn sich also sowohl Knoten 1 als auch Knoten 2 darauf einigen, die vorausgehend gespeicherten, ausgehandelten und vereinbarten Parameter zu verwenden, dann wird die RDMA-Verhandlung ohne die zusätzliche Hin- und Herbewegung der Informationspakete 40 in dem Verhandlungsvorgang abgeschlossen, der in 1 veranschaulicht und vorausgehend beschrieben ist. Damit ist der Verbindungsvorgang abgeschlossen. Bei einer anderen Ausführungsform kann Knoten 1 (z.B. ein Client) die Parameter kennen, bevor er eine Verbindungsherstellung anfordert. Somit kann es nur Knoten 2 sein (z.B. ein Server, der eine Mehrzahl von Clients bedienen kann), der die angeforderten Parameter für die Verbindung aufrufen muss und dadurch den Verbindungsvorgang abschließt. Bei wieder einer anderen Ausführungsform kann Knoten 1 die Parameter kennen, bevor er eine Verbindungsherstellung anfordert. Knoten 1 kann daraufhin die Parameter oder Angaben über die Parameter an Knoten 2 senden, womit der Verbindungsvorgang abgeschlossen ist. Wenn sich aber entweder Knoten 1 oder Knoten 2 dafür entscheidet, die vorausgehend gespeicherten, ausgehandelten Parameter nicht zu akzeptieren, dann kann der typische Verhandlungsvorgang, der in 1 veranschaulicht und oben beschrieben ist, verwendet werden, um die RDMA-Verhandlung abzuschließen. Falls sich bei einer anderen Ausführungsform entweder Knoten 1 oder Knoten 2 dafür entscheidet, die vorausgehend gespeicherten, ausgehandelten Parameter nicht zu akzeptieren, dann können die zurückgewonnenen Parameter einen Ausgangspunkt zur Verfügung stellen, von dem aus der Verhandlungsvorgang beginnen kann.
  • Einige Ausführungsformen gemäß der vorliegenden Erfindung können Maschinen zur Verfügung stellen, die eine Mehrzahl von verschiedenen Typen von Diensten (z.B. RDMA, iSCSI over RDMA, HTTP usw.) bieten. Daher sollten zwischen zwei bestimmten Maschinen die Informationen, die sich auf Parameter für bestimmte Dienste beziehen, welche vorausgehend zwischen den zwei bestimmten Maschinen ausgehandelt und vereinbart wurden, gespeichert werden. Falls die beiden Maschinen beispielsweise vorausgehende Verbindungen über RDMA und iSCSI hergestellt haben, sollten die Informationen in Bezug auf die vorausgehend ausgehandelten und vereinbarten Parameter zwischen den beiden Maschinen für die RDMA-Verbindung und die iSCSI-Verbindung gespeichert werden. Daher sollte ein Teil der Informationen, die während einer LLP-Verbindungsherstellung (z.B. einer TLP-Verbindungsherstellung) übertragen werden, während darauf folgender Versuche zur Herstellung einer RDMA-Verbindung oder einer iSCSI Verbindung angeben, welcher Verbindungstyp gewünscht wird. Die Informationen können z.B. einen Bestimmungsanschluss und/oder Credentials (z.B. bestimmte ULP-Credentials) umfassen.
  • Obgleich die vorliegende Erfindung unter Bezugnahme auf bestimmte Ausführungsformen beschrieben wurde, dürfte es für den Fachmann verständlich sein, dass verschiedene Änderungen daran vorgenommen werden können und dass Äquivalente ersetzt werden können, ohne den Schutzbereich der vorliegenden Erfindung zu verlassen. Zusätzlich können viele Modifikationen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehren der vorliegenden Erfindung anzupassen, ohne deren Schutzbereich zu verlassen. Es ist daher beabsichtigt, dass die vorliegende Erfindung nicht auf die konkreten, offen gelegten Ausführungsform beschränkt werden soll, sondern dass die vorliegende Erfindung alle Ausführungsformen mit umfasst, die in den Schutzbereich der beigefügten Ansprüche fallen.

Claims (9)

  1. Verfahren zum Erzeugen von Kommunikations-Links zwischen einem ersten Knoten (1) und einem zweiten Knoten (2), welches umfasst: Herstellen einer Dreiweg-Übertragungssteuerungsprotokoll (Transmission Control Protocol; TCP)-Verbindung zwischen dem ersten Knoten (1) und dem zweiten Knoten (2) zum Erzeugen eines ersten Kommunikations-Links; Abschließen der Dreiweg-TCP-Verbindung und Starten eines darauf folgenden Fernvorrichtungspeicherzugriff (Remote Device Memory Access; RDMA)-Verhandlungsvorgangs; Austauschen von Informationen über Parameter zwischen dem ersten Knoten (1) und dem zweiten Knoten (2) während des RDMA-Verhandlungsvorgangs; Abschließen des RDMA-Verhandlungsvorgangs durch Auswählen von Parametern, über die eine Übereinstimmung zwischen dem ersten Knoten (1) und dem zweiten Knoten (2) erreicht wurde; Speichern der vereinbarten Parameter aus dem RDMA-Verhandlungsvorgang in Speicherablagevorrichtungen, auf die der ersten Knoten (1) oder der zweite Knoten (2) zugreifen kann, oder die Teil des ersten Knotens (1) oder des zweiten Knotens (2) sind; wobei der erste Knoten (1) Speicherablagestelle-Informationen an den zweiten Knoten (2) sendet, so dass der zweite Knoten (2) die vereinbarten Parameter aus den RDMA-Verhandlungen präsentieren kann, um RDMA-Verhandlungen für einen darauf folgenden Kommunikations-Link zwischen dem ersten Knoten (1) und dem zweiten Knoten (2) zu beschleunigen.
  2. Verfahren nach Anspruch 1, wobei der Informationsaustausch zwischen den Knoten (1, 2) während des RDMA-Verhandlungsvorgangs Fähigkeiten, Ressourcen oder Präferenzen des ersten Knotens (1) und des zweiten Knotens (2) beinhaltet.
  3. Verfahren nach Anspruch 1, wobei das Verbrauchen von RDMA-Ressourcen für den ersten Kommunikations-Link nur nach dem Abschließen des Dreiweg-TCP-Vorgangs möglich ist.
  4. Verfahren nach Anspruch 1, wobei der erste Knoten (1) die Speicherablagestelle-Informationen über ein zusätzliches Paket an den zweiten Knoten (2) sendet.
  5. Verfahren nach Anspruch 4, wobei die Speicherablagestelle-Informationen die Form eines Cookie besitzen.
  6. Verfahren nach Anspruch 5, wobei das Cookie in dem zusätzlichen Paket enthalten ist oder ihm hinzugefügt wird.
  7. Verfahren nach Anspruch 4, wobei eine Referenz zu vorausgehend erstellten Credentials durch den ersten Knoten (1) zusammen mit der Speicherablagestelle zur Verfügung gestellt wird.
  8. Verfahren nach Anspruch 1, wobei der erste Knoten (1) die in dem ersten Kommunikations-Link erzeugten Speicherablagestelle-Informationen während eines darauf folgenden RDMA-Verhandlungsvorgang in dem darauf folgenden Kommunikations-Link über ein modifiziertes ACK-Paket (50) an den zweiten Knoten (2) sendet.
  9. Verfahren nach Anspruch 8, wobei die Speicherablageinformationen zu einem ACK-Paket (30) hinzugefügt werden oder darin enthalten sind, um das modifizierte ACK-Paket (50) zu bilden.
DE60311688T 2002-03-07 2003-03-07 Verfahren um Verbindungsverhandlungen für höhere Protokollschichten zu beschleunigen Expired - Lifetime DE60311688T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US36253102P 2002-03-07 2002-03-07
US362531P 2002-03-07

Publications (2)

Publication Number Publication Date
DE60311688D1 DE60311688D1 (de) 2007-03-29
DE60311688T2 true DE60311688T2 (de) 2007-11-15

Family

ID=27757793

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60311688T Expired - Lifetime DE60311688T2 (de) 2002-03-07 2003-03-07 Verfahren um Verbindungsverhandlungen für höhere Protokollschichten zu beschleunigen

Country Status (3)

Country Link
US (1) US7388866B2 (de)
EP (1) EP1343289B1 (de)
DE (1) DE60311688T2 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8023520B2 (en) * 2003-03-27 2011-09-20 Hewlett-Packard Development Company, L.P. Signaling packet
US7574510B2 (en) * 2004-07-30 2009-08-11 Nokia Corporation Systems, nodes, and methods for dynamic end-to-end session-enhancing services for transport-level-based connections
CN101160839B (zh) * 2005-03-11 2013-01-16 富士通株式会社 接入控制方法、接入控制系统以及分组通信装置
US20070041383A1 (en) * 2005-04-05 2007-02-22 Mohmmad Banikazemi Third party node initiated remote direct memory access
US8458280B2 (en) * 2005-04-08 2013-06-04 Intel-Ne, Inc. Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
US7782905B2 (en) * 2006-01-19 2010-08-24 Intel-Ne, Inc. Apparatus and method for stateless CRC calculation
US7889762B2 (en) 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US8316156B2 (en) 2006-02-17 2012-11-20 Intel-Ne, Inc. Method and apparatus for interfacing device drivers to single multi-function adapter
US8078743B2 (en) 2006-02-17 2011-12-13 Intel-Ne, Inc. Pipelined processing of RDMA-type network transactions
US7849232B2 (en) 2006-02-17 2010-12-07 Intel-Ne, Inc. Method and apparatus for using a single multi-function adapter with different operating systems
JP2009182459A (ja) * 2008-01-29 2009-08-13 Sony Corp 通信装置、通信システム、通信方法及びプログラム
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US8788579B2 (en) 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US9473596B2 (en) 2011-09-27 2016-10-18 International Business Machines Corporation Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections
JP5931243B1 (ja) * 2015-03-20 2016-06-08 ヤフー株式会社 情報処理装置、端末装置、情報処理方法、及び情報処理プログラム
US9898439B2 (en) 2015-09-28 2018-02-20 International Business Machines Corporation Optimizing remote direct memory access (RDMA) with cache aligned operations
US10516770B2 (en) * 2015-10-13 2019-12-24 Telefonaktiebolaget Lm Ericsson (Publ) Transmitting entity and method performed thereby for transmitting one or more data packets to a receiving entity
US10116745B2 (en) * 2016-03-28 2018-10-30 Samsung Electronics Co., Ltd. Automatic client-server role detection among data storage systems in a distributed data store

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958053A (en) 1997-01-30 1999-09-28 At&T Corp. Communications protocol with improved security
US6738814B1 (en) 1998-03-18 2004-05-18 Cisco Technology, Inc. Method for blocking denial of service and address spoofing attacks on a private network
US7058974B1 (en) 2000-06-21 2006-06-06 Netrake Corporation Method and apparatus for preventing denial of service attacks
US6823387B1 (en) * 2000-06-23 2004-11-23 Microsoft Corporation System and method for enhancing a server's ability to withstand a “SYN flood” denial of service attack
US20020085562A1 (en) * 2000-12-13 2002-07-04 International Business Machines Corporation IP headers for remote direct memory access and upper level protocol framing
US7058718B2 (en) * 2002-01-15 2006-06-06 International Business Machines Corporation Blended SYN cookies

Also Published As

Publication number Publication date
EP1343289B1 (de) 2007-02-14
US7388866B2 (en) 2008-06-17
US20030169775A1 (en) 2003-09-11
EP1343289A1 (de) 2003-09-10
DE60311688D1 (de) 2007-03-29

Similar Documents

Publication Publication Date Title
DE60311688T2 (de) Verfahren um Verbindungsverhandlungen für höhere Protokollschichten zu beschleunigen
DE602004008099T2 (de) Verfahren, system und artikel zur dynamischen echtzeit-stream-aggregation in einem netzwerk
DE69729040T2 (de) Netzwerkübertragung
DE60108927T2 (de) Komputersysteme, insbesondere virtuelle private Netzwerken
DE69935554T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und zuverlässigen Übertragen von kleinen Datennachrichten von einem Sendesystem zu einer grossen Anzahl von Empfangssystemen
DE69931215T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE60005396T2 (de) Verfahren und vorrichtung zur durchführung von netzwerkoperationen
DE60128007T2 (de) Vorrichtung und verfahren zur sicherheitsbearbeitung von kommunikationspaketen
DE60310645T2 (de) Verhinderung von Paketzerteilung
DE69031266T2 (de) Übertragungsarchitektur für Hochgeschwindigkeitsnetzwerk
DE602004007301T2 (de) Adressierungs-verfahren und -vorrichtung zum aufbau von hip-verbindungen zwischen gewöhnlichen und hip-fähigen netzknoten
DE60309527T2 (de) System und Verfahren zur Identifikation von Grenzen von Nachrichten höherer Schichten
DE602005003668T2 (de) Verbesserungen in nachrichtenorientierten kommunikationen
DE102004016580B4 (de) Verfahren zur Übertragung von Daten in einem Ad Hoc Netzwerk oder einem Sensornetzwerk
DE102007011071B4 (de) Verfahren zur Verbesserung eines TCP Datenübertragungsprozesses im Fall einer Unterbrechung des physikalischen Übertragungsmediums
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
EP1405422A2 (de) Verfahren zur optimierten nutzung von sctp (stream control transmission protocol) in mpls (multi protocol label switching) netzen
EP0995288B1 (de) Verfahren und vorrichtung zur gegenseitigen authentisierung von komponenten in einem netz mit dem challenge-response-verfahren
DE60304100T2 (de) Erzwingung eines Zeitpunktes zur Trennung einer Kommmunikationsverbindung mit schnurlosen Endgeräten mit transienten Netzwerkadressen
DE10330079B4 (de) Router und Verfahren zur Aktivierung eines deaktivierten Computers
DE60103215T2 (de) Verwendung einer zentralen Datenanbieter zum Koordinieren von Erkennungenszuweisung in einem verteilten System
DE10231958B4 (de) Verfahren und System zum Übertragen von Datenpaketen über ein Netzwerk an ausgewählte mehrere Bestimmungsorte, sowie computerlesbares Medium
DE10231941A1 (de) Datenpaketstruktur für direkt adressiertes Multicast-Protokoll
EP1404080A1 (de) Verfahren zur Abwehr von Angriffsdatenströmen auf Netzknoten in einem Kommunikationsnetz

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