Beschreibung
Verfahren, Empfangseinrichtung und Sendeeinrichtung zur Bestimmung des schnellsten Nachrichtenpfades ohne Uhrensynchro- nisation
Gesicherte Transportprotokolle messen normalerweise die Roundtrip-Verzögerung, d.h. die Gesamtverzögerung, die bei der Übertragung einer Nachricht von einem Sender zu einem Empfänger und der Übertragung einer weiteren Nachricht, z.B. einer Bestätigungsnachricht, vom Empfänger zum Sender auftritt, um daraus abzuleiten, wann Nachrichten wiederholt werden müssen. Typische Beispiele derartiger gesicherter Transportprotokolle sind Transmission Control Protocol TCP gemäß IETF RFC 793 und Stream Control Transmission Protocol SCTP gemäß IETF RFC 2960.
Zur Messung dieser Roundtrip-Verzögerung wird im Sender die Sendezeit einer Nachricht vermerkt und die Empfangszeit einer vom Empfänger der gesendeten Nachricht eintreffenden Bestätigungsnachricht festgestellt. Aus der Differenz dieser Zeiten wird die Roundtrip-Verzögerung bestimmt. Für dieses Verfahren ist keine Uhrensynchronisation erforderlich.
Da jedoch die Übertragung der Nachrichten vom Sender zum Empfänger auf anderen Nachrichtenpfaden erfolgen kann als die Übertragung der Bestätigungsnachrichten vom Empfänger zum Sender, läßt der ermittelte Wert der Roundtrip-Verzögerung keine Rückschlüsse auf die Einweg-Verzögerungen vom Sender zum Empfänger und umgekehrt zu. Auch wenn die Übertragung der Nachrichten vom Sender zum Empfänger auf dem gleichen Nachrichtenpfad erfolgt wie die Übertragung der Bestätigungsnachrichten vom Empfänger zum Sender, läßt der ermittelte Wert der Roundtrip-Verzögerung keine Rückschlüsse auf die Einweg- Verzögerungen vom Sender zum Empfänger und umgekehrt zu, da der Nachrichtenpfad stark unsymmetrisch sein kann.
Existieren für einen Sender mehrere Nachrichtenpfade, um die Nachrichten an einen Empfänger zu senden, so kann es günstig sein, die Nachrichten auf dem Nachrichtenpfad zu senden, auf dem sie am schnellsten zum Empfänger übermittelt werden. Dazu müssen beim Sender Informationen vorliegen, welcher Nachrichtenpfad der schnellste ist. Die Bestimmung des schnellsten Nachrichtenpfades kann anhand der Einweg-Verzögerungen aller Nachrichtenpfade vom Sender zum Empfänger vorgenommen werden.
Bekannte Lösungen zur Messung der Einweg-Verzögerungen setzen Uhrensynchronität der Uhren bzw. Taktgeneratoren von Sender und Empfänger voraus. Uhrensynchronität bedeutet dabei, daß die Uhren bzw. Taktgeneratoren gleich schnell laufen, aber nicht notwendigerweise auch gleiche absolute Zeiten aufwei- sen. Liegt Uhrensynchronität vor, wird eine beliebige oder eine eigens für Meßzwecke vorgesehene, durch den Sender mit einem Zeitstempel versehene Nachricht vom Sender an den Empfänger gesendet. Aus der Differenz zwischen Empfangszeitpunkt und Zeitstempel kann die Einweg-Verzögerung für den betref- fenden Nachrichtenpfad durch den Empfänger ermittelt werden. Um aus einer Anzahl vorhandener Nachrichtenpfade den schnellsten zu ermitteln, muß das Verfahren in geeigneter Weise für alle Nachrichtenpfade wiederholt werden. Durch Vergleich der für alle Nachrichtenpfade vom Empfänger ermittelten Einweg- Verzögerungen ist es im Empfänger leicht möglich, den schnellsten Nachrichtenpfad zu identifizieren und diesen an den Sender zu signalisieren.
Uhrensynchronität zwischen Sender und Empfänger existiert je- doch in vielen Fällen nicht.
Die der vorliegenden Erfindung zugrundeliegende Aufgabe besteht darin, die bekannten Verfahren, Empfangseinrichtungen und Sendeeinrichtungen zur Bestimmung des schnellsten Nach- richtenpfades zu verbessern.
Diese Aufgabe wird durch die Merkmale der Patenansprüche 1, 9 sowie 15 gelöst.
Bevorzugte Ausführungsformen sind Gegenstand der abhängigen Ansprüche .
Ein wesentlicher Vorteil des erfindungsgemäßen Verfahrens besteht darin, daß Uhrensynchronität von Sender und Empfänger nicht erforderlich ist, um den schnellsten Nachrichtenpfad zwischen Sender und Empfänger zu ermitteln. Dem zugrunde liegt die Idee, daß für das Ermitteln des schnellsten Nachrichtenpfades nicht die absoluten Verzögerungszeiten auf den verschiedenen Nachrichtenpfaden bekannt sein müssen, sondern daß es vielmehr ausreicht, je eine Nachricht auf mehreren zu untersuchenden Nachrichtenpfaden abzusenden und anhand der
Empfangsreihenfolge den schnellsten Nachrichtenpfad zu erkennen.
Gemäß einer vorteilhaften Fortbildung des Verfahrens können neben dem schnellsten Nachrichtenpfad auch die relativen
Nachrichtenlaufzeiten ermittelt werden, d.h. die Verzögerungen, die jeder einzelne Nachrichtenpfad gegenüber dem schnellsten Nachrichtenpfad verursacht - Anspruch 2. Dies ist beispielsweise für Lastteilung zwischen zwei oder mehr Nach- richtenpfaden anwendbar, falls die Laufzeiten der Nachrichtenpfade nur unwesentlich voneinander abweichen, d.h. die ermittelten relativen Laufzeiten dieser Nachrichtenpfade bezogen auf den schnellsten Nachrichtenpfad sind hinreichend klein.
Vorteilhaft werden die Nachrichten, die zur Bestimmung des schnellsten Nachrichtenpfades bzw. zur Messung der relativen Laufzeiten vom Sender abgesendet werden, zeitgleich oder mit geringem zeitlichen Abstand abgesendet - Anspruch 4. Falls das verwendete Kommunikationsprotokoll und/oder die Sendeeinrichtung das gleichzeitige Absenden von Nachrichten auf meh-
reren Nachrichtenpfaden nicht vorsehen, kann ein geringer zeitlicher Abstand dieser Nachrichten vorgesehen werden.
Im folgenden wird das erfindungsgemäße Verfahren anhand von zwei Zeichnung näher erläutert.
Fig. 1 zeigt eine Empfangseinrichtung E und eine Sendeeinrichtung S sowie drei über drei verschiedene Nachrichtenpfade Pl, P2 , P3 zwischen Empfangseinrichtung E und Sendeeinrich- tung S von der Sendeeinrichtung S zur Empfangseinrichtung E zum Zeitpunkt TO gesendete Nachrichten, die zu verschiedenen Zeiten Tl, T2 , T3 durch die Empfangseinrichtung E empfangen werden. Außerdem sind die relativen Nachrichtenlaufzeiten ΔT2, ΔT3 der Nachrichtenpfade P2, P3 bezogen auf den schnell- sten Nachrichtenpfad Pl dargestellt.
Fig. 2 zeigt die Empfangseinrichtung E und die Sendeeinrichtung S sowie eine von der Empfangseinrichtung E an die Sendeeinrichtung S gesendete Anforderungsnachricht DelayReq und drei identische zum Zeitpunkt T0 von der Sendeeinrichtung S daraufhin an die Empfangseinrichtung E auf den drei verschiedenen Nachrichtenfaden Pl, P2 , P3 gesendete Bestätigungsnachrichten DelayRes, die zu verschiedenen Zeiten Tl, T2, T3 durch die Empfangseinrichtung E empfangen werden.
Fig. 1 illustriert die dem erfindungsgemäßen Verfahren zugrundeliegende Idee. Es soll festgestellt werden, welcher von mehreren zur Verfügung stehenden Nachrichtenpfaden Pl, P2, P3 zwischen der Sendeeinrichtung S und der Empfangsein- richtung E der schnellste ist. Die Sendeeinrichtung S sendet auf mehreren Nachrichtenpfaden Pl, P2 , P3 eine Nachricht an die Empfangseinrichtung E. Anhand der Empfangsreihenfolge kann der schnellste Nachrichtenpfad Pl durch die Empfangseinrichtung E bestimmt werden. Dabei ist der absolute Empfangs- Zeitpunkt Tl und die absolute Verzögerungszeit zwischen Sendeeinrichtung S und Empfangseinrichtung E, ausgedrückt durch die Formel T1-T0, ohne Bedeutung. Wichtig ist lediglich, daß
über den ersten Nachrichtenpfad Pl die erste der identischen und zeitgleich oder mit vernachlässigbaren zeitlichen Abständen ausgesandten Nachrichten empfangen wurde. Damit ist der erste Nachrichtenpfad Pl als der schnellste Nachrichtenpfad bestimmt.
Durch die Zeitdifferenzen zwischen dem Empfang der identischen Nachrichten über die verschiedenen Nachrichtenpfade Pl, P2 , P3 können darüberhinaus die relativen LaufZeitdifferenzen ΔT2, ΔT3 ermittelt werden, d.h. die Verzögerungszeiten, die auf allen Nachrichtenpfaden P2, P3 gegenüber dem schnellsten Nachrichtenpfad Pl auftreten. Als Formel ausgedrückt ergibt sich als relative Laufzeitdifferenz ΔT2 für den Nachrichtenpfad P2: ΔT2=T2-T1. Für den Nachrichtenpfad P3 ergibt sich die relative Laufzeitdifferenz ΔT3 gemäß folgender Formel: ΔT3=T3-T1. Die relative Laufzeit ΔT1 des schnellsten Nachrichtenpfades Pl stellt einen Sonderfall dar. Je nach Anwendungsfall kann es sinnvoll sein, die relative Laufzeit ΔT1 des schnellsten Nachrichtenpfades Pl auf Null zu setzen: ΔT1=0 - nicht dargestellt. Falls eine Übermittlung der relativen Nachrichtenlaufzeiten ΔT1, ΔT2, ΔT3 an die Sendeeinrichtung S erfolgt, ist so sichergestellt, daß die Sendeeinrichtung S den schnellsten Nachrichtenpfad Pl erkennt, ohne daß dies gesondert signalisiert werden muß.
Zur Bestimmung des schnellsten Nachrichtenpfades Pl bzw. der relativen Nachrichtenlaufzeiten muß die Empfangseinrichtung E lediglich in der Lage sein zu erkennen, daß die Nachrichten zur gleichen Zeit gesendet wurden. Dies kann z.B. durch einen Zeitstempel in den Nachrichten, einem bestimmten Nachrichtentyp mit Sequenznummern oder einfach aus dem Protokoll selbst abgeleitet werden.
Nach Bestimmung des schnellsten Nachrichtenpfades durch die Empfangseinrichtung E muß nur noch der Sendeeinrichtung signalisiert werden, welcher Nachrichtenpfad der schnellste ist und fortan für die Übertragung von Nachrichten von der Sende-
einrichtung S zur Empfangseinrichtung E verwendet werden soll .
Ist die Kommunikationsbeziehung bidirektional, so wird das beschriebene Verfahren unabhängig in beiden Richtungen benutzt - nicht dargestellt.
Anstelle kompletter Nachrichten können auch in gewöhnliche Nachrichten eingebettete Nachrichtenelemente, Notifikationen oder Parameter verwendet werden, um das erfindungsgemäße Verfahren auszuführen. Statt einer eigenen Anforderungsnachricht DelayReq wird dann ein Anforderungs-Nachrichtenelement Delay- Req verwendet. Als Antwort darauf können entweder die bereits genannten Bestätigungsnachrichten DelayRes gesendet werden, oder es wird ein anderer Nachrichtentyp verwendet, in den ein entsprechendes Bestätigungs-Nachrichtenelement DelayRes eingebettet ist.
Das erfindungsgemäße Verfahren kann mit dem Stream Control Transmission Protocol SCTP gemäß IETF RFC 2960 vorteilhaft angewendet werden. Dies ist schematisch in Fig. 2 dargestellt. SCTP ist ein Multilink-Protokoll . Wie bei SCTP üblich, wird im folgenden davon ausgegangen, daß ein Nachrichtenpfad zur Gegenseite durch eine Internet Protocol Adresse (im folgenden IP Adresse) der Gegenseite identifiziert wird. Ferner wird angenommen, daß ein Teil der Erweiterungen, die im IETF Internet Draft draft-ietf-tsvwg-addip-sctp-02 beschrieben sind, implementiert ist. Mit diesem Teil kann ein SCTP Endpunkt E den Primary Path bzw. primären Nachrichten- pfad eines Kommunikationspartners S setzen, daß heißt E kann bestimmen, auf welchem Pfad der Kommunikationspartner S Nachrichten zum Endpunkt E schickt. Diese Erweiterung wird zur Signalisierung, welcher Nachrichtenpfad der schnellste ist, benutzt.
Eine SCTP Nachricht besteht aus einem Common Header und einer Anzahl von Chunks . Diese Anzahl von Chunks kann bei verschie-
denen SCTP Nachrichten unterschiedlich sein, auch ist es zulässig, Nachrichten ohne Chunks zu verwenden. Jeder Chunk wird durch einen Chunk Typ - eine Zahl zwischen 0 und 255 - klassifiziert. Das hier beschriebene Verfahren benutzt spezi- eile neue Chunk Typen (DelayReq(SN) , DelayRes (SN) ) mit einer Sequenznummer SN. SCTP erlaubt solche Erweiterungen. Dabei ist es möglich, die Interoperabilität mit SCTP Endpunkten zu bewahren, für welche diese neuen Chunks nicht implementiert sind. Die Empfangseinrichtung E sendet eine Anforderungsnach- rieht DelayReq(SN) aus, um eine Messung zu initiieren. Bei der nächsten Messung wird als Sequenznummer SN+1 benutzt, d.h. durch die Empfangseinrichtung E wird ein zusätzlicher Zähler geführt. Wird eine Anforderungsnachricht DelayReq(SN) durch die Sendeeinrichtung S empfangen, so wird auf einigen oder allen zur Verfügung stehenden Nachrichtenpfaden Pl, P2 , P3 je eine Bestätigungsnachricht DelayRes (SN) gesendet. Die Empfangseinrichtung E kann dann feststellen, welcher Nachrichtenpfad Pl, P2, P3 der schnellste ist. Der schnellste Nachrichtenpfad Pl wird durch die Destination IP Adresse bzw. Ziel-IP Adresse der Bestätigungsnachricht gegeben, die den DelayRes (SN) Chunk enthält und als erstes empfangen wird. Diese IP-Adresse wird nun mit der Nachricht "Set Primary IP Address" (Setzen der primären IP Adresse, beschrieben in 3.2.5 und 4.4 des genannten IETF Internet Drafts draft-ietf- tsvwg-addip-sctp-02, untenstehend in Auszügen wiedergegeben) an die Sendeeinrichtung S signalisiert, die daraufhin diesen Nachrichtenpfad Pl stets als den ersten für Datenübertragung nutzen wird. Die Häufigkeit dieser Messungen hängt von der Stabilität des Netzes ab. Es bietet sich aber zum Beispiel an, periodisch solche Messungen vorzunehmen.
Alternativ zum oben beschriebenen Verfahren mit DelayReq und DelayRes Chunks können auch die Heartbeat und Heartbeat-Ack Chunks benutzt werden, um die Ermittlung des schnellsten - Nachrichtenpfades Pl, P2 , P3 durchzuführen. Als Reaktion auf den Empfang eines Heartbeat Chunks werden dann auf einigen oder allen Nachrichtenpfaden Heartbeat-Ack Chunks gesendet,
anstelle der DelayRes Chunks in obigem Ausführungsbeispiel. Auch dieses Verfahren gewährleistet die Interoperabilität mit anderen Implementierungen. Vorteilhaft kann zudem auf die Einführung neuer Chunk Typen verzichtet werden, allerdings muß das Verhalten des Protokolls entsprechend angepaßt werden.
Auszug aus IETF Internet Draft draft-ietf-tsvwg-addip-sctp-02
Internet Draft draf -ietf-tsvwg-addip-sctp-02 June 2001
Network Working Group R. R. Stewart INTERNET-DRAFT M. A. Ramalho
Cisco Systems
Q. Xie
Motorola
M. Tuexen
Siemens AG
I . Rytina
Ericsson
P. Conrad
Temple University
expires in six months June 29, 2001
SCTP Extensions for Dynamic Reconfiguration of IP Addresses and Enforcement of Flow and Message Limits
<draf -ietf-tsvwg-addip-sctp-02. txt>
(...) 3.2.5 Set Primary IP Address
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 | Type =0xC005 | Length = Variable |
| Address Parameter |
Address Parameter: TLV
This field contains an IPv4 or IPv6 address parameter as described in 3.3.2.1 of [RFC2960] . The complete TLV is wrapped within this parameter. It requests the receiver to mark the specified address as the primary address to send data to (see section 5.1.2 of [RFC2960]). The receiver MAY mark this as its primary upon receiving this request.
An example TLV requesting that the IPv4 address 10.1.1.1 be made the
primary destination address would look as follows:
+ +
| Type=0xC005 | Length = 12 |
+ +
| Type=5 | Length = 8 |
+ + +
| Value=0x0a010101 |
+ + +
Valid Chunk Appearance
The Set Primary IP Address parameter may appear in the ASCONF Chunk, the INIT, or the INIT-ACK chunk type. The inclusion of this parameter in the INIT or INIT-ACK can be used to indicate an initial preference of primary address.
(...)
4.4 Setting of the primary address
A sender of this option may elect to send this combined with a deletion or addition of an address. A sender SHOULD only send a set primary request to an address that is already considered part of the association. In other words if a sender combines a set primary with an add of a new IP address the set primary will be discarded unless the add request is to be processed BEFORE the set primary (i.e. it precedes the set primary).
A request to set primary MAY also appear in a INIT or INIT-ACK chunk. This can give advice to the peer endpoint as to which of its addresses the sender of the INIT or INIT-ACK would like to be used as the primary address.
The request to set an address as the primary path is an option the receiver SHOULD perform. It is considered advice to the receiver of the best destination address to use in sending SCTP packets (in the requester's view) . If a request arrives that asks the receiver to set an address as primary that does not exist, the receiver should NOT honor the request, leaving its existing primary address unchanged.