Beschreibung
Verfahren zum Aufbau von multi-homed Verbindungen in Netzwer¬ ken mit Adreßumsetzung
Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Aufbau von multi-homed Verbindungen, wobei im Verbindungsweg eine Umsetzung von Kommunikationsadressen stattfindet. Insbe¬ sondere bezieht sich die Erfindung auf ein Verfahren zum Auf- bau einer SCTP-Verbindung mit mehreren Pfaden in IP-Netzwer- ken mit Network Adress Translation (NAT) .
Kommunikationsnetze, in denen Kommunikationsprotokolle zum Einsatz kommen, bei denen sogenannte single-homed Verbindun- gen stets von genau einem Endpunkt zu genau einem anderen Endpunkt führen, sind heutzutage sehr weit verbreitet. Ein Beispiel für ein solches Kommunikationsprotokoll ist das In¬ ternetprotokoll IP mit den darauf aufsetzenden Protokollen TCP und UDP. In diesen Protokollen werden Endpunkte durch ei- ne IP-Adresse und eine Port-Nummer identifiziert.
Häufig sind, wie im Fall der weitverbreiteten IP-Kommunika- tionsnetze, zusätzliche Maßnahmen erforderlich, um für an das Kommunikationsnetz angeschlossene Endpunkte und andere Netz- werkkomponenten eine zuverlässige Kommunikationsverbindung zu schaffen, etwa die redundante Ankopplung an das Kommunikati¬ onsnetz. Dabei sind jedoch die Basisprotokollmechanismen sel¬ ten geeignet, diese redundante Ankopplung effizient zu ver¬ walten und zu nutzen, da die Basisprotokollmechanismen nur single-homed Verbindungen vorsehen.
Es wurden und werden daher Anstrengungen unternommen, Kommu¬ nikationsprotokolle zu schaffen, die - basierend auf den Ba¬ sisprotokollen - Applikationen, die auf Endpunkten und ande- ren Netzwerkkomponenten implementiert sind, die Möglichkeit geben, mehrere eigene Kommunikationsadressen für eine Verbin¬ dung zu definieren. Mehrere Kommunikationsadressen können
beispielsweise im Wege mehrerer Netzwerkkarten vorgesehen werden. Kann eine Netzwerkkomponente zu einer Verbindung meh¬ rere eigene (und ggf. entfernte) Kommunikationsadressen nut¬ zen, spricht man häufig von Multihoming bzw. von multi-homed Verbindungen.
Ein Beispiel für ein solches Kommunikationsprotokoll mit er¬ weiterten Fähigkeiten zum Einsatz in IP-Kommunikationsnetzen ist das Session Control Transmission Protocol SCTP, definiert in IETF RFC 2960.
Fig. 1 zeigt ein beispielhaftes IP-Kommunikationsnetzwerk 100 mit einem ersten Endpunkt bzw. Host A 102 und einem zweiten Endpunkt bzw. Host B 112, die jeweils über zwei (globale) IP- Adressen 104A, 104B und 114A, 114B verfügen. Eine (SCTP) Ver¬ bindung zwischen den Endpunkten wird durch zwei Pfade 108A, 108B gebildet, die vorzugsweise verschieden sind, d.h. über verschiedene Router 106A, 106B durch das Kommunikationsnetz, welches auch ein Weitverkehrsnetz WAN 110 einschließen kann, verlaufen. Das Protokoll SCTP oder ein ähnliches Kommunikati¬ onsprotokoll verwaltet und nutzt diese beiden Pfade bei¬ spielsweise derart, daß der Ausfall eines Pfades, etwa bei Ausfall eines der Router 106, die Ende-zu-Ende-Kommunikation nicht unterbricht, da sofort der andere Pfad genutzt werden kann. Die Zahl der Pfade ist dabei nicht auf zwei beschränkt.
Ein großer Nachteil der multi-homed Verbindungen liegt darin, daß diese regelmäßig nicht aufgebaut werden können, wenn im Verbindungsweg eine Umsetzung der Kommunikationsadressen stattfindet, wie z.B. für IP-Kommunikationsnetzwerke als Net¬ work Address Translation (NAT) bekannt, definiert in IETF RFC 1631. Allgemein kann die Umsetzung einer Kommunikationsadres¬ se in IP-Kommunikationsnetzwerken beispielsweise durch Verän¬ derung einer IP-Adresse oder einer Portnummer oder durch Ver- änderung beider Adreßbestandteile erfolgen. Dabei kann eine Empfängeradresse und/oder eine Absenderadresse der Umsetzung unterliegen.
Es ist daher eine Aufgabe der Erfindung, ein Verfahren zum Aufbau einer multi-homed Verbindung anzugeben, wenn im Ver¬ bindungsweg eine Umsetzung der Kommunikationsadressen statt- findet.
Diese Aufgabe wird gelöst durch ein Verfahren zum Aufbau ei¬ ner multi-homed Verbindung mit einer Anzahl n von Pfaden zwi¬ schen zwei Komponenten eines Kommunikationsnetzes. Dabei wei- sen die Komponenten jeweils mindestens n Kommunikationsadres¬ sen auf, und im Verbindungsweg findet eine Umsetzung der Kom¬ munikationsadressen zumindest einer ersten der Komponenten statt. Das Verfahren weist die folgenden Schritte auf:
Ermitteln von n Umsetzungsbeziehungen von für die n Pfade vorgesehenen n Kommunikationsadressen durch die Komponen¬ ten; und
Aufbau der multi-homed Verbindung durch Aufbau der n Pfa¬ de anhand der ermittelten Umsetzungsbeziehungen.
Die Umsetzungsbeziehung ist dabei häufig dadurch charakteri¬ siert, daß eine lokale Kommunikationsadresse einer ersten Komponente in eine globale Kommunikationsadresse umgesetzt wird. Erst die Kenntnis dieser globalen Adresse ermöglicht es anderen Komponenten, diese erste Komponente zu adressieren. Hierzu ist es allerdings nicht erforderlich, daß die anderen Komponenten die komplette Umsetzungsbeziehung, d.h. neben der globalen auch noch die lokale Kommunikationsadresse, kennen. Für einen erfolgreichen Verbindungsaufbau genügt es, wenn die adreßumsetzende Komponente, z.B. ein Router, die vollständige Umsetzungsbeziehung kennt.
Dabei können die n Umsetzungsbeziehungen jeweils ganz oder teilweise beispielsweise nach einem der folgenden Verfahren ermittelt werden: - Austauschen von Nachrichten bzw. Testnachrichten für k
(k = l..n) Kommunikationsadressen zwischen den Komponen¬ ten, welche k Umsetzungsbeziehungen liefern. Dabei werden
die Nachrichten bzw. Testnachrichten so gewählt, daß die Umsetzung der Koπununikationsadressen für Nachrichten bzw. Testnachrichten identisch ist zur Umsetzung der Kommuni¬ kationsadressen für die späteren Pfade der multi-homed Verbindung.
Aufbau von m (m = l..n) single-homed Verbindungen zwi¬ schen den Komponenten. Dabei kann vorzugsweise vorgesehen werden, diese single-homed Verbindungen in einem weiteren Schritt als neue Pfade mit der multi-homed Verbindung zu verknüpfen.
Die vorliegende Erfindung betrifft ferner Komponenten eines Kommunikationsnetzes, die über Software- oder Hardwaremittel verfügen, um das erfindungsgemäße Verfahren auszuführen.
Ein Kommunikationsprotokoll, das bei Anwendung im Zusammen¬ hang mit der vorliegenden Erfindung besonders vorteilhaft er¬ weitert werden kann, ist das Stream Control Transmission Pro- tocol SCTP.
Ein besonderer Vorteil der Erfindung ist darin zu sehen, daß es möglich ist, multi-homed Verbindungen auch über Adreßum- setzer, z.B. NAT-Router, die nur die standardisierten Adre- ßumsetzungsverfahren unterstützen, aufzubauen. Das bedeutet im Fall der IP-Netzwerke, daß an den NAT-Routern keine Verän¬ derungen vorgenommen werden müssen, so daß die Erfindung un¬ mittelbar ohne Änderung der Netzinfrastruktur angewendet wer¬ den kann. Lediglich die Endpunkte von SCTP-Assoziationen müs¬ sen das Verfahren unterstützen.
Die Erfindung kann vorteilhaft auch zur dynamischen Umkonfi- gurierung von Kommunikationsadressen, z.B. IP-Adressen, ver¬ wendet werden, ohne daß eine bestehende Verbindung unterbro¬ chen wird. Dies kann zum Beispiel beim Tausch physikalischer Netzwerkkarten, bei dynamischen Adreßwechseln oder bei schnurlosen Anwendungen vorteilhaft sein.
Im folgenden wird die Erfindung in Ausführungsbeispielen an¬ hand von Zeichnungen näher erläutert.
Fig. 1 zeigt in schematischer Darstellung ein IP-Netzwerk mit einer Verbindung mit zwei Pfaden über Router ohne Adreßumset- zung.
Fig. 2 zeigt in schematischer Darstellung ein IP-Netzwerk mit einer Verbindung mit zwei Pfaden über Router mit Adreßumset- zung. Fig. 3A-C zeigen in schematischer Darstellung den Ablauf der Erstellung der Verbindung aus Fig. 2.
Fig. 1 zeigt, wie bereits erläutert, das IP-Kommunikations- netzwerk 100, in dem es gemäß des Standes der Technik keine Schwierigkeiten bereitet, zwischen dem ersten Endpunkt 102 und dem zweiten Endpunkt 112, die jeweils über zwei (globale) IP-Adressen 104A, 104B und 114A, 114B verfügen, eine durch zwei Pfade 108A, 108B gebildete SCTP Verbindung bzw. SCTP As¬ soziation aufzubauen.
Fig. 2 zeigt eine ähnliche Situation wie Fig. 1, allerdings mit NAT Routern 206A und 206B anstelle der Router 106A und 106B. Im Detail zeigt Fig. 2 ein beispielhaftes IP-Kommunika- tionsnetzwerk 200 mit dem ersten Endpunkt bzw. Host A 102 und dem zweiten Endpunkt bzw. Host B 112. Host A 102 verfügt da¬ bei über zwei nur lokal gültige IP-Adressen LAl (204A) , LA2 (204B) (im Beispiel wurden die IP-Adressen LAl = 10.1.1.1 und LA2 = 10.2.2.2 gewählt), welche, durch NAT-Router 206A und 206B in globale Adressen GAl (216A), GA2 (216B) umgewertet werden (im Beispiel wurden die IP-Adressen GAl = 139.21.5.5 und GA2 = 140.20.6.6 gewählt) . Host B 112 verfügt über zwei globale IP-Adressen Bl (114A) und B2 (114B) . Zur Vereinfa¬ chung der Darstellung wurde in Fig. 2 auf die Darstellung der Ports verzichtet.
Eine SCTP Assoziation zwischen den Endpunkten A und B wird durch zwei Pfade 208A, 208B gebildet, wobei der erste Pfad
208A die lokale Adresse LAl des Host A über den ersten NAT- Router Nl (206A) , die Umsetzungsbeziehung LAl <==> GAl und das optionale WAN 110 mit der ersten Adresse Bl des Host B verbindet. Der zweite Pfad 208B verbindet die lokale Adresse LA2 des Host A über den zweiten NAT-Router N2 (206B), die Um¬ setzungsbeziehung LA2 <==> GA2 und das optionale WAN 110 mit der zweiten Adresse B2 des Host B.
Für die Anordnung des Host A in einem separaten Netz mit nur lokal gültigen IP-Adressen LAl, LA2 kann es verschiedene
Gründe geben. Ein möglicher Grund ist die Knappheit globaler IP-Adressen, die es erforderlich macht, mit dieser Ressource sparsam umzugehen und beispielsweise große Unternehmensnetze als private Netze mit privaten, d.h. nur lokal gültigen und aus dem Internet nicht adressierbaren Adressen auszugestal¬ ten. Ein weiterer möglicher Grund sind Sicherheitserwägungen, denn in vielen Fällen ist bereits die Ausgestaltung eines Netzes als privates Netz, ggf. ergänzt um NAT-Router mit Fi¬ rewall-Funktionen oder separate Firewalls, ein signifikanter Sicherheitsgewinn.
Allerdings ist es mit dem Protokoll SCTP gemäß RFC 2960 nicht möglich, eine SCTP Assoziation mit zwei Pfaden 208A, 208B ge¬ mäß Fig. 2 aufzubauen, denn im SCTP Verbindungsaufbau werden die weiteren Absenderadressen in einem Nachrichtenfeld der Verbindungsanforderungsnachricht über den ersten Pfad über¬ tragen.
Im Beispiel der Fig. 1 wird die Verbindung von A aus aufge- baut, indem die erste Adresse von A, Al, als Absenderadresse der Verbindungsanforderungsnachricht verwendet wird und die zweite Adresse von A, A2, in ein Nachrichtenfeld dieser Nach¬ richt eingetragen wird. Bei Empfang dieser Nachricht bei B liegen dort alle erforderlichen Informationen zum Aufbau bei- der Pfade vor.
Im Beispiel der Fig. 2 hingegen würde B die umgesetzte erste Adresse GAl und die nicht umgesetzte lokale Adresse LA2 emp¬ fangen, so daß der zweite Pfad 208B nicht aufgebaut werden kann. Der erste NAT-Router 206A hat auch keine Möglichkeit, die Umsetzung der Adresse LA2 auf die Adresse GA2 im zweiten Router zu ermitteln.
Um die Verbindung gemäß Fig. 2 dennoch aufbauen zu können, werden zunächst die Adreßumsetzungsbeziehungen LAl <==> GAl und LA2 <==> GA2 ermittelt, um anschließend die zwei-pfadige SCTP Assoziation erstellen zu können.
Fig. 3A-C zeigen einen beispielhaften Ablauf, demgemäß zu¬ nächst zwei single-homed Verbindungen aufgebaut werden (Fig. 3A-B) und anschließend zu einer gemeinsamen SCTP Assoziation verknüpft bzw. verschmolzen werden. Zur Vereinfachung der Darstellung wurde dabei in Fig. 3A-C auf die Darstellung des WAN 110 und der Adressen 204, 114, 216 verzichtet.
Fig. 3A zeigt den ersten Schritt des Aufbaus der multi-homed Verbindung, die Ermittlung der ersten Adreßumsetzung LAl <==> GAl. Die erste Adreßumsetzung wird im Beispiel der Fig. 3 ermittelt, indem eine erste Verbindung 318 von der ersten lokalen Adresse LAl von Host A zur ersten (globalen) Adresse Bl von Host B aufgebaut wird. Dabei sei angenommen, daß das Routing dieser Verbindung 318 über den ersten NAT- Router 206A erfolgt. Die Verbindung ist eine klassische "sin- gle-homed" Verbindung bzw. Assoziation. Folgende Tabelle ver¬ anschaulicht die Zusammenhänge für Verbindung 318:
Darin bedeuten: LAl: erste lokale Adresse des Host A Bl: erste (globale) Adresse des Host B LPAl: erster lokaler Port des Host A (zu LAl) PBl: erster Port des Host B (zu Bl) GAl: erste globale Adresse, LAl <==> GAl VTAl: Verification Tag von Host A für die erste
Verbindung
VTBl: Verification Tag von Host B für die erste
Verbindung
Die Verification Tags VTAl, VTBl erlangen später im Zusammen¬ hang mit der Verknüpfung der beiden Verbindungen ihre Bedeu- tung und werden im Zusammenhang mit Fig. 3C näher erläutert. Im Ergebnis des Schrittes der Fig. 3A ist nunmehr die erste Adreßumsetzungsbeziehung LAl <==> GAl ermittelt.
Fig. 3B zeigt den zweiten Schritt des Aufbaus der multi-homed Verbindung, die Ermittlung der zweiten Adreßumsetzung
LA2 <==> GA2. Die zweite Adreßumsetzung wird im Beispiel der Fig. 3 ermittelt, indem eine zweite Verbindung 320 von der zweiten lokalen Adresse LA2 von Host A zur zweiten (globalen) Adresse B2 von Host B aufgebaut wird. Dabei sei angenommen, daß das Routing dieser Verbindung 320 über den zweiten NAT- Router 206B erfolgt. Die Verbindung ist ebenfalls eine klas¬ sische "single-homed" Verbindung bzw. Assoziation. Alternativ
kann eine single-homed Verbindung vom Typ "merge only" er¬ stellt werden (dieser Typ wird weiter unten näher erläutert) Folgende Tabelle veranschaulicht die Zusammenhänge' für Ver¬ bindung 320:
Darin bedeuten: LA2: zweite lokale Adresse des Host A B2: zweite (globale) Adresse des Host B LPA2: zweiter lokaler Port des Host A (zu LA2) PB2: zweiter Port des Host B (zu B2) GA2: zweite globale Adresse, LA2 <==> GA2 VTA2: Verification Tag von Host A für die zweite
Verbindung VTB2: Verification Tag von Host B für die zweite
Verbindung
Im Ergebnis des Schrittes der Fig. 3B ist nunmehr auch die zweite Adreßumsetzungsbeziehung LA2 <==> GA2 bekannt.
Fig. 3C zeigt die Verschmelzung bzw. Verknüpfung der beiden Verbindungen bzw. Assoziationen 318 und 320 zu der angestreb¬ ten SCTP Assoziation 208 mit den Pfaden 208A und 208B. Im be¬ vorzugten Ausführungsbeispiel sendet Host A 102 hierzu über die erste Verbindung 318 einen SCTP Chunk ASCONF, wie in fol¬ gendem Internet Draft der IETF definiert: http://www.ietf.org/internet-drafts/draft-ietf-tsvwg-addip-
sctp-09.txt (im folgenden als addip-draft bezeichnet), erwei¬ tert um einen Parameter, welcher Host B 112 anzeigt, daß eine parallele Assoziation (hier: zweite Verbindung 310) als zu¬ sätzliche Adresse eingebunden werden soll. Dieser Parameter, im folgenden als "Merge SCTP Endpoint" bezeichnet, nutzt die Verification Tags, die den einzelnen Verbindungen bzw. Asso¬ ziationen 318 und 320 beim Aufbau zugeordnet wurden.
Der ASCONF Chunk ist wie folgt definiert (Auszug aus o.g. IETF Draft, mit Übersetzungen aus dem Englischen) :
Stewart, et al. Expires December 9, 2004 [Page 5]
Internet-Draft SCTP Dynamic Address Reconf iguration June 2004 3.1.1 Address Conf iguration Change Chunk (ASCONF)
This chunk is used to communicate to the remote endpoint one of the configuration change requests that MUST be acknowledged. The information carried in the ASCONF Chunk uses the form of a Type-Length-Value (TLV), as described in "3.2.1 Optional/
Variable-length Parameter Format" in RFC2960 [6], for all variable Parameters .
Der ASCONF Chunk wird verwendet, um dem entfernten Endpunkt eine Kon figurationsänderungsanf orderung zu senden, welche bestätigt wer¬ den muß. Die in einem ASCONF Chunk enthaltene Information nutzt für alle variablen Parameter die Form eines Typen-Längen-Werts (TLV), wie in Kapitel 3.2.1 des RFC 2960 beschrieben. 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
I τYPe = OxCl I Chunk Flags | Chunk Length | I Serial Number I
I Address Parameter I
I ASCONF Parameter #1 I
\ \
/ /
\ \ I ASCONF Parameter #N I
Serial Number : 32 bits (unsigned integer)
This value represents a Serial Number for the ASCONF Chunk. The valid ränge of Serial Number is from 0 to 4294967295 (2**32 - 1) .
Serial Numbers wrap back to 0 after reaching 4294967295.
Dieser Wert [Serial Number] repräsentiert eine Seriennummer bzw. Se¬ rial Number für den ASCONF Chunk. Der gültige Bereich der Seriennum- mer ist 0.. 4294967295 (2**32 - 1) . Seriennummern werden zurück auf 0 abgebildet, nachdem sie 4294967295 erreichen.
Address Parameter : 8 or 20 bytes (depending on type)
This field contains an address parameter, either IPv6 or IPv4, from RFC2960 [6] . The address is an address of the sender of the ASCONF chunk, the address MUST be considered part of the association by the peer endpoint (the receiver of the ASCONF chunk) . This field may be used by the receiver of the ASCONF to help in finding the association. This parameter MUST be present in every ASCONF message i.e. it is a mandatory TLV parameter. Dieses Feld [Address Parameter) repräsentiert einen Adreßparameter, entweder gemäß IPv6 oder IPV4, aus RFC 2960. Die Adresse ist eine Adresse des Senders des ASCONF Chunks, und muß als Teil der Assozia¬ tion durch den Partner-Endpunkt (den Empfänger des ASCONF Chunks) interpretiert werden. Dieses Feld kann durch den Empfänger des ASCONF genutzt werden, um die Assoziation zu finden. Der Parameter muß in jeder ASCONF Nachricht enthalten sein, d.h. es handelt sich um einen vorgeschriebenen bzw. erforderlichen TLV Parameter.
Note the host name address parameter is NOT allowed and MUST be ignored if received in any ASCONF message.
Es sei darauf hingewiesen, daß der Host Name Address Parameter nicht erlaubt ist und ignoriert werden muß, falls er in einer-ASCONF Nach- rieht empfangen wurde..
ASCONF Parameter: TLV format
Each Address configuration change is represented by a TLV parameter as defined in Section 3 . 2 . One or more requests may be present in an ASCONF Chunk . Jeder Adreßkonfigura tionswechsel wird durch einen TLV Parameter ge¬ mäß Abschni tt 3.2 [des draft] repräsentiert . Ein oder mehrere Anfor¬ derungen können in einem ASCONF Chunk enthal ten sein .
Dem ASCONF Chunk ist ein ASCONF ACK Chunk zugeordnet, der wie folgt definiert ist (Auszug aus o . g . IETF Draft, mit Überset¬ zungen aus dem Englischen) :
3 . 1 . 2 Address Configuration Acknowledgment Chunk (ASCONF-ACK)
This chunk is used by the receiver of an ASCONF Chunk to acknowledge the reeeption. It carries zero or more results for any ASCONF
Parameters that were processed by the receiver .
Dieser Chunk [ASCONF-ACK] wird vom Empfänger eines ASCONF Chunk ver¬ wendet, um den Empfang zu bestätigen . Er transportiert null oder mehr Ergebnisse für beliebige ASCONF Parameter, die durch den Emp¬ fänger verarbeitet wurden .
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
I τYPe = 0x80 I Chunk Flags | Chunk Length |
I Serial Number |
I ASCONF Parameter Responsetl I
\ \
/ / \ \
I ASCONF Parameter Response#N |
Serial Number : 32 bits (unsigned integer)
This value represents the Serial Number for the received ASCONF Chunk that is acknowledged by this chunk. This value is copied front the received ASCONF Chunk.
Dieser Wert [Serial Number]repräsentiert die Seriennummer bzw. Se¬ rial Number des empfangenen ASCONF Chunks. Dieser Wert wird aus dem empfangenen ASCONF Chunk kopiert.
ASCONF Parameter Response : TLV format
The ASCONF Parameter Response is used in the ASCONF-ACK to report Status of ASCONF processing. By default, if a responding endpoint does not include any Error Cause, a success is indicated. Thus a sender of an ASCONF-ACK MAY indicate complete success of all TLVs in an ASCONF by returning only the Chunk Type, Chunk Flags, Chunk Length (set to 8) and the Serial Number.
Die ASCONF Parameterantwort wird in dem ASCONF-ACK verwendet, um den Status der ASCONF Verarbeitung zu melden. Standardmäßig wird ein Er- folg angezeigt, falls ein antwortender Endpunkt keinen Error Cause bzw. Fehlergrund mitliefert. Daher kann ein Sender einer ASCONF-ACK den vollständigen Erfolg aller TLVs in einer ASCONF anzeigen, indem er nur den Chunk Type, die Chunk Flags, die Chunk Länge (auf 8 ge¬ setzt) und die Seriennummer zurückmeldet.
Folgende neue Parameter werden (zusätzlich oder anstelle zu den beispielsweise durch o.g. draft bereits vorgesehenen SCTP Parametern) definiert, um das Verknüpfen bzw. Verschmelzen
(MERGE) von Verbindungen bzw. Assoziationen zu unterstützen (Tabelle 1: Parameter für ASCONF Chunks; Tabelle 2: Parameter für INIT/INIT-ACK Chunks) :
Neue Parameter-Typen
Address Configuration Parameters Parameter Type Merge SCTP Endpoint 0xC005
Delete SCTP Path 0xC006
Set Primary Path 0xC007
Tabelle 1 : Parameter zur Verwendung im ASCONF Parameter
Address Configuration Parameters Parameter Type
Merge OnIy 0xC005
Tabelle 2: Parameter zur Verwendung im INIT/INIT-ACK chunk
Wie bei SCTP üblich kann vorgesehen werden, daß durch den Empfänger eines ungültigen Parameters ein ABORT gesendet wer- den kann .
Die neuen Parameter werden im folgenden näher erläutert (Dar¬ stellung der Parameter£c,gemäß der IETF Konventionen) : Merge SCTP Endpoint (IP Address + Port)
Dieser 12 Byte lange Parameter wird benutzt, um der Partnerseite den Wunsch mitzuteilen, daß eine parallele Assoziation als zusätzliche Adres¬ se eingebunden werden soll .
0 1 2 3
0 1 2 3 4 5 6 7 8 9.0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 I Type = 0xC005 | Length = 12 I
I Remote Verification Tag of parallel Association |
I Own Verification Tag of parallel Association | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Die parallele Assoziation muß durch den Empfänger dieses Parameters auf¬ gelöst werden, wenn die Adresse verknüpft wird. Die Auflösung wird durch das Senden eines aus dem SCTP bekannten ABORT für diese parallele Assozi- ation signalisiert.
Um einen bestehenden Pfad wieder abzubauen, kann der aus dem addip-draft bekannte Parameter Delete IP Address nicht unver¬ ändert verwendet werden, da keine Kommunikationsadresse — wie bisher üblich — in einem Parameter eingebunden werden darf. Anstelle dessen wird der zu entfernende Pfad durch die bekannte Umsetzungsbeziehung und die Absenderadresse des Pa¬ ketes, das den Parameter enthält, eindeutig identifiziert, und es kann beispielsweise der folgende Parameter verwendet werden:
Delete SCTP Path
Dieser 4 Byte ASCONF Parameter wird verwendet, um dem Partner zu signali¬ sieren, daß die Quelladresse (+ Port) des Chunks, welcher diesen Parame- ter enthält, aus der Liste der gültigen IP Adressen entfernt werden soll. Falls es sich um den letzten Pfad handelt, ist die ASCONF zurückzuweisen.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
I Type =0xC006 | Length = 4 I
Um einen Pfad als primär bzw. bevorzugt zu kennzeichnen, kann aus gleichem Grunde der aus dem addip-draft bekannte Parame¬ ter Set Primary Address nicht unverändert verwendet werden. Anstelle dessen wird der zu kennzeichnende Pfad durch die be¬ kannte Umsetzungsbeziehung und die Absenderadresse des Pake¬ tes, das den Parameter enthält, eindeutig identifiziert, und es kann beispielsweise der folgende Parameter verwendet wer¬ den:
Set Primary Path Dieser 4 Byte ASCONF Parameter wird verwendet, um dem Partner zu signali¬ sieren, daß die Quelladresse (+ Port) des Chunks, welcher diesen Parame¬ ter enthält, als primärer Pfad gesetzt werden soll.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
I Type =0xC007 | Length = 4 I
Der Parameter MERGE ONLY kann in einem INIT/ INIT-ACK Chunk genutzt werden, um eine (single-homed) Assoziation nur zum
Zweck der Ermittlung der Adreßumsetzungsbeziehung aufzubauen. Diese temporäre Assoziation soll dabei nicht dem Transport von Daten dienen, sondern nur die Umsetzungsbeziehung durch¬ laufen und anschließend mit der parallelen Assoziation ver- knüpft werden:
Merge OnIy
Dieser 4 Byte INIT/INI-ACK Parameter wird verwendet, um dem Partner zu signalisieren, daß die neue Assoziation nur temporär gebildet wird, um eine andere Assoziation um einen weiteren Pfad zu erweitern.
Anmerkung: Diese Assoziation soll nicht der Datenübertragung dienen.
Die Parameter Advertised Receiver Window Credit, Number of Inbound/Outbound Streams und Initial TSN sollten durch den
Sender auf 0 gesetzt werden und durch den Empfänger des Merge OnIy Parameters ignoriert werden.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
I Type =0xC005 I Length = 4 I
Die in Fig. 3C dargestellte Verknüpfung der beiden Verbindun¬ gen 318 und 320 aus Fig. 3B zu der Assoziation 208 kann nun erfolgen, indem Host A über die erste Verbindung 318 einen ASCONF Chunk mit folgendem Format an Host B sendet:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 SCTP Common Header:
I Source Port Number = LPAl | Destination Port Number = PBl | +-+-+-+-+-+-+-+-+-+-+-+-+-+ — ι— +-+-+-+-+-+-+-+-+ — i— +-+-+-+-+-+-+-+
I Verification Tag = VTBl I
+-+-+-+-+-+-+-+-+-+-+-+-+-+—h-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
I Checksum I
+-+-+-+-+-+-+-+-+-+-+-+-+-+—ι—+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ mit SCTP ASCONF Chunk:
+-+-+-+-+-+-+-+-+-+-+-+-+-+—i—+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IChunkType =0xCl | Flags = 0 | Chunk Length = 20 |
I Serial Number = 1 I
IParameter Typ Merge = 0xC005 I Length = 12 I
I Remote Verification Tag of parallel Association = VTB2 | I Own Verification Tag of parallel Association = VTA2 |
Bei Host B werden die Verification Tags überprüft. Wurde die zweite Assoziation 320 als "merge only" Typ aufgebaut, kann auch dieses Kriterium geprüft werden. Ebenso kann überprüft werden, ob die zweite Assoziation aktiv ist.
Die Prüfung der Verification Tags dient dabei der Sicherheit, indem so verhindert werden kann, daß sich unberechtigte Kom¬ ponenten in die Assoziation verbinden.
War die Überprüfung erfolgreich, beendet Host B die zweite
Verbindung 320, z.B. durch Senden eines ABORT Chunks über die Verbindung 320, übernimmt die Adresse GA2 mit zugeöhrigem Port GPA2 als zweite Adresse (und damit als zweiten Pfad) für die erste Verbindung 318, die auf diese Weise zur zweipfadi- gen Assoziation 208 wird. Den erfolgreichen Abschluß dieser Verknüpfung signalisiert Host B dann über den ersten Pfad 208A der Assoziation 208, beispielsweise mittels des folgen¬ den ASCONF-ACK Chunks: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
SCTP Common Header:
I Source Port Number = PBl | Destination Port Number = GPAl fr I Verification Tag = VTBl I
I Checksum | mit SCTP ASCONF-ACK Chunk:
IChunkType =0x80 | Flags = 0 | Chunk Length = 20 | I Serial Number = 1 I
Das Ergebnis ist die Assoziation 208 gemäß folgender Über¬ sicht:
Anschließend kann einer der Pfade 208A, 208B als primärer Pfad festgelegt werden.
Es sei darauf hingewiesen, daß die vorstehend beschriebenen Protokolle, Nachrichten, Nachrichtenelemente und Parameter lediglich eine von vielen möglichen Implementierungen der Er¬ findung wiedergeben. Es ist offensichtlich, daß die detail¬ liert beschriebenen SCTP Chunks und Parameter für andere Pro- tokolle entsprechend angepaßt werdenf:müssen, um die für diese Protokolle geltenden Konventionen, beispielsweise andere Quittungs- oder Sicherungsmechanismen, zu erfüllen. Ferner ist ausgehend von den beschriebenen Ausführungsbeispielen of¬ fensichtlich, wie die Lehre der vorliegenden Erfindung für SCTP unter Nutzung anderer Chunks und Parameter angewendet werden kann.