-
Bei
Kommunikationsnetzwerken, die Internet Protocol (IP) verwenden,
werden viele Daten unter Verwendung eines zuverlässigen Kommunikationsprotokolls übertragen,
wie beispielsweise dem Transmission Control Protocol (TCP). TCP
wird als ein „zuverlässiges" Protokoll dahingehend
betrachtet, dass garantiert ist, dass Datenpakete schließlich den
Bestimmungsort derselben erreichen. Falls ein Paket verloren wird,
bevor dasselbe den Bestimmungsort desselben erreicht, wird der Verlust
des Pakets durch den Bestimmungsknoten (als ein Ergebnis eines Quittungsaustauschs
bzw. Handshakings zwischen dem Sender und dem Bestimmungsort) erfasst
und somit kann der Bestimmungsknoten anfordern, dass das verlorene
Paket wieder übertragen
wird. Somit sind in TCP die Pakete nummeriert und sequenziert, wenn
dieselben zuerst übertragen
werden, so dass auf einen Neuversuch oder eine Wiederübertragung hin,
die Pakete korrekt sortiert werden können. TCP wird normalerweise
für einen
binären
Textdateitransfer und zum Übertragen
anderer Typen von Daten, die keinen Echtzeittransfer benötigen, verwendet. Wenn
eine Datei über
TCP übertragen
wird, werden alle Pakete der Datei bei dem Bestimmungsort empfangen
und wieder zu der Datei zusammengefügt, bevor der Bestimmungsknoten
eine Präsentation
der Datei für
einen Benutzer (oder für
eine Bestimmungsanwendung) beginnt.
-
Für Hochgeschwindigkeitsanwendungen, wie
beispielsweise Echtzeitanwendungen, die eine Kommunikation von Audio- und/oder Video-Daten (A/V-Daten)
empfangen (z.B. Voice-Over-IP,
Bewegtbilder, Musik und andere Typen von Streaming-Daten), werden
die Daten typischerweise über
das Kommunikationsnetzwerk unter Verwendung eines unzuverlässigen Protokolls übertragen,
wie beispielsweise das User- Datagramm-Protokoll
(UDP). UDP wird als ein „unzuverlässiges" Protokoll bezeichnet,
weil Datenpakete (auch als „Datagramme" bezeichnet), die
während
einer Übertragung
verloren werden, wiederholt oder wieder übertragen werden. Genauer gesagt
bezieht sich ein unzuverlässiges Protokoll,
wie dasselbe hierin verwendet wird, auf ein Protokoll, bei dem kein
Quittungsaustausch zwischen dem Sender und dem Bestimmungsort durchgeführt wird,
um zu erfassen, ob Pakete verloren sind. Bei UDP wird kein Quittungsaustausch
durchgeführt
und verlorene Pakete (die den Bestimmungsort derselben nicht erreichen)
werden nicht später wieder übertragen.
Folglich ist UDP ein Beispiel eines unzuverlässigen Protokolls. Bei den
meisten Streaming-Media-Anwendungen, bei denen UDP verwendet wird,
kann, falls verlorene UDP-Datenpakete
zu einem späteren
Zeitpunkt wiederübertragen würden, die
resultierende Datenwiedergabe durch den Empfänger mit durcheinander geratenen
Rahmen von Video oder Audio in Unordnung gebracht werden.
-
Allgemein
ist UDP ein Kommunikationsprotokoll, das eine begrenzte Größe eines
Dienstes bietet, wenn Nachrichten bzw. Meldungen zwischen Computern
in einem IP-Netzwerk ausgetauscht werden. Wie TCP verwendet UDP
das Internet Protocol, um tatsächlich
ein Datenpaket von einem Computer zu einem anderen zu bekommen.
Ungleich TCP liefert UDP jedoch nicht den Dienst eines Teilens einer Nachricht
in Pakete und eines Wiederzusammenfügens derselben an dem anderen
Ende. Genau gesagt liefert UDP kein Sequenzieren der Pakete, in
denen die Daten ankommen. UDP wird typischerweise verwendet, wenn
eine Große
Menge von Daten zu einem Bestimmungsort übertragen werden soll und eine
Anwendung an dem Bestimmungsort wünscht, eine Wiedergabe der
Daten zu beginnen, bevor alle derartigen Daten empfangen sind. UDP
wird ferner häufig
verwendet, wenn gewünscht
wird, dass Daten über
ein Kommunikationsnetzwerk rundgesendet bzw. übertragen werden sollen.
-
Ein
zunehmend beliebter Typ einer Technologie zum Liefern von Informationen
zu Klienten ist als „Streaming-Media" bekannt. Streaming-Media
ist eine Anwendung, bei der ein unzuverlässiges Protokoll, wie beispielsweise
UDP, allgemein zum Übertragen
der Datenpakete verwendet wird. Streaming-Media ist eine gut bekannte Technologie
auf den Computergebieten. Im Allgemeinen präsentiert Streaming-Media Daten
(z.B. typischerweise Audio und/oder Video) einem Klienten in einer
strömenden (streaming)
oder kontinuierlichen Weise. Das heißt bei Streaming-Media muss
ein Klient nicht alle der Informationen, die präsentiert werden sollen, empfangen,
bevor die Präsentation
beginnt. Eine Präsentation
von Informationen bei einer Streaming-Media-Datei kann vielmehr
beginnen, bevor die ganze Datei durch den Klienten empfangen ist,
und wenn der empfangene Abschnitt der Datei präsentiert wird, werden weiterhin
weitere Abschnitte der Datei durch den Klienten für eine spätere Präsentation
empfangen. Somit betrifft Streaming-Media Medien (z.B. typischerweise
Audio und/oder Video), die von einem Server (einem Medienserver)
zu einem Klienten übertragen
werden und auf dem Klienten ein Abspielen beginnen, bevor dieselben
vollständig
heruntergeladen sind.
-
Streaming-Media
ist eine besonders beliebte Technik zum Kommunizieren von Audio-
und/oder Video-Dateien von einem Server zu einem Klienten. Audio-
und Video-Dateien neigen dazu, ziemlich groß zu sein, sogar nachdem dieselben
komprimiert sind. Falls Streaming-Media nicht verwendet wird, muss allgemein
eine gesamte Datei (z.B. über
TCP) zu einem Klienten heruntergeladen werden, bevor der Klient
beginnen kann, die Datei abzuspielen. Ein derartiges Herunterladen
kann eine unerwünscht
lange Verzögerung
benötigen,
bevor der Klient ein Abspielen der Datei beginnen kann. Bei Streaming-Media (z.B.
Streaming-Audio oder Streaming-Video) muss ein Klient nicht warten,
bis die gesamte Datei heruntergeladen ist, um dieselbe abzuspielen.
Anstelle dessen kann der Klient ein Abspielen der Datei (z.B. ein
Präsen tieren
von Video und/oder Audio einem Benutzer) beginnen, während dieselbe
zu dem Klienten herunterlädt.
-
Streaming-Media-Anwendungen
verwenden gewöhnlich
UDP zum Kommunizieren der Ströme von
Datenpaketen. Wie es oben erwähnt
ist, sendet UDP Pakete nicht immer wieder, falls dieselben fehlplatziert
sind oder andere Probleme auftreten, wie es TCP macht, was für die meisten
Streaming-Media-Technologien
bevorzugt ist. UDP wird häufig
für eine
Rundsendeübertragung
von Daten verwendet, wie beispielsweise ein Übertragen von Programmen von
bestehenden Fernseh- und Radiostationen über ein IP-Netzwerk.
-
Wie
es oben erwähnt
ist, ist UDP ein unzuverlässiges
Protokoll und somit ist ungleich TCP nicht garantiert, dass UDP-Pakete, die über ein
Kommunikationsnetzwerk übertragen
werden, bei dem Bestimmungsort derselben ankommen. Da eine beabsichtigte
Verwendung von UDP typischerweise darin besteht, große Anzahlen
von Paketen durch das Netzwerk bei einer hohen Geschwindigkeit zu
streamen, ist die Unzuverlässigkeit
(Fehlen eines Quittungsaustauschs) desselben allgemein kein Problem bei
den beabsichtigten Anwendungen desselben. Die Empfangseinheit kann
häufig
durch Signalverarbeitungstricks (wie bei Voice-Over-IP) irgendwelche
Informationen „einfüllen". Es wurden bestimmte
Techniken zum Verbessern der Zuverlässigkeit von UDP-Kommunikationen
durch ein Einschließen
einer Sequenznummer in jedem Paket vorgeschlagen. Wenn folglich
der Bestimmungsknoten beginnt, die Pakete zu empfangen, kann derselbe
die Sequenznummern verwenden, um zu bestimmen, ob ein bestimmtes
Paket nicht empfangen wurde, und kann durch eine Sequenznummer eine
Wiederübertragung
irgendwelcher verlorener Pakete anfordern.
-
Die
obigen Techniken arbeiten jedoch nicht in Situationen, bei denen
wenige Pakete übertragen werden.
Falls zum Beispiel lediglich ein einziges UDP-Paket übertragen
wird, kann der beabsichtigte Empfänger nicht wissen, wann zu
er warten ist, dass das Paket ankommt, oder sogar ob überhaupt
ein Paket erwartet werden sollte. Und da UDP-Paket-Verluste dazu
neigen, auf Grund von Pufferüberlaufproblemen „stoßmäßig" zu sein, gilt das
Gleiche für
kleine Anzahlen von UDP-Paketen.
-
Eventuell
wünschen
bestimmte Anwendungen, auf Grund der Hochgeschwindigkeitsfähigkeit, die
durch UDP geboten wird, UDP für
eine Datenkommunikation zu verwenden, aber die Anwendungen kommunizieren
eventuell weniger Pakete. Angesichts des Obigen besteht ein Wunsch
nach einer Technik zum Verbessern der Stabilität bzw. Robustheit einer Kommunikation über UDP,
wobei die Technik eine verbesserte Stabilität selbst in Situationen ermöglicht,
in denen lediglich wenige Pakete kommuniziert werden.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren und ein
System mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1, Anspruch 9 und
Anspruch 18 und ein System gemäß Anspruch
21 gelöst.
-
Die
vorliegende Erfindung ist auf ein System und ein Verfahren gerichtet,
die die Stabilität
bzw. Robustheit von Anwendungen verbessern, die sich auf unzuverlässige Protokolle
stützen,
wie beispielsweise UDP. Wie es weiter unten beschrieben ist, ist
gemäß einem
Ausführungsbeispiel
ein Verfahren zum Verbessern der Stabilität eines Verwendens unzuverlässiger Protokolle,
wie beispielsweise UDP, in Anwendungen vorgesehen, in denen kleine
Anzahlen von zeitkritischen Paketen übertragen werden. Zum Beispiel
bei einem System zusammenwirkender Vorrichtungen in einem Netzwerk
kann eine Vorrichtung in einem Netzwerk Informationen über sich
selbst zu den anderen Vorrichtungen rundsenden bzw. übertragen.
Die empfangenen Vorrichtungen können
ansprechend auf einen Empfang der rundgesendeten Informationen eine
zeitkritische Handlung unternehmen. Somit kann man sich auf die
Kommunikation von UDP-Nachrichten, die jeweils in wenigen Paketen
verkapselt sein können,
zu einem Koordinieren/Synchronisieren von Handlungen verschiedener Vorrichtungen
stützen.
Gemäß verschiedenen
Ausführungsbeispielen,
die unten beschrieben sind, wird eine Kombination von redundanten
Wiederübertragungen
von Unzuverlässig-Protokoll-Datenpaketen und
einem Umfassen von Zeitstempeln in den Unzuverlässig-Protokoll-Datenpaketen
verwendet, um die Stabilität
von Anwendungen zu verbessern, die sich auf die Unzuverlässig-Protokoll-Datenpakete
stützen.
-
Bei
einem exemplarischen Ausführungsbeispiel
ist eine Mehrzahl von Vorrichtungen kommunikativ mit einem Kommunikationsnetzwerk
gekoppelt. Jede der Vorrichtungen weist einen lokalen Takt auf und
die lokalen Takte sind synchronisiert. Eine erste der Vorrichtungen
kommuniziert ein UDP-Datenpaket über das
Kommunikationsnetzwerk eine Mehrzahl von Malen getrennt durch zumindest
eine definierte Zeitverzögerung,
wobei ein erster Zeitstempel in dem UDP-Datenpaket jede der Anzahl von Malen enthalten
ist, die das UDP-Datenpaket übertragen wird.
Somit wird eine redundante Wiederübertragung des UDP-Datenpakets
verwendet, wobei das UDP-Datenpaket ein erstes Mal übertragen
wird und dann zumindest ein zusätzliches
Mal nach einer gegebenen Verzögerung
wieder übertragen
wird.
-
Jede Übertragung
des UDP-Datenpakets umfasst einen Zeitstempel, der zum Beispiel
der Zeit entsprechen kann, zu der die erste Übertragung des UDP-Datenpakets
auftrat, basierend auf dem lokalen Takt der sendenden Vorrichtung.
Die Empfängervorrichtung(en)
empfängt
(empfangen) das UDP-Datenpaket
zumindest einmal und die Empfängervorrichtung(en)
wertet (werten) den Zeitstempel aus, um zu bestimmen, ob dieselbe
eine zeitempfindliche Handlung ansprechend auf das empfangene UDP-Datenpaket
durchführen
kann.
-
Gemäß zumindest
einem Ausführungsbeispiel
ist ein Verfahren vorgesehen, das ein Synchronisieren lokaler Takte
einer Mehrzahl von Vorrichtungen aufweist, die kommunikativ mit
einem Kommunikationsnetzwerk gekoppelt sind. Das Verfahren weist ferner
ein Kommunizieren zumindest eines Datenpakets von einer der Mehrzahl
von Vorrichtungen über ein
unzuverlässiges
Protokoll über
das Kommunikationsnetzwerk auf, wobei das zumindest eine Datenpaket
einen Zeitstempel in demselben umfasst, der auf dem lokalen Takt
der Vorrichtung basiert, von der das zumindest eine Paket kommuniziert
wird. Das Verfahren weist ferner ein Wiederkommunizieren des zumindest
einen Datenpakets über
das unzuverlässige
Protokoll über
das Kommunikationsnetzwerk nach einer definierten Verzögerung auf,
wobei das zumindest eine Datenpaket wieder den Zeitstempel umfasst.
-
Das
Vorhergehende hat ziemlich allgemein die Merkmale und technischen
Vorteile der vorliegenden Erfindung umrissen, damit die detaillierte
Beschreibung der Erfindung, die folgt, besser verstanden werden
kann. Zusätzliche
Merkmale und Vorteile der Erfindung werden hierin im Folgenden beschrieben,
die den Gegenstand der Ansprüche
der Erfindung bilden. Es ist klar, dass die Konzeption und ein spezifisches
Ausführungsbeispiel,
die offenbart sind, ohne weiteres als eine Grundlage zum Modifizieren oder
Entwerfen anderer Strukturen zum Ausführen der gleichen Zwecke der
vorliegenden Erfindung verwendet werden können. Es ist ferner zu erkennen, dass
derartige äquivalente
Konstruktionen nicht von der Erfindung abweichen, wie dieselbe in
den beigefügten
Ansprüchen
dargelegt ist. Die neuartigen Merkmale, die für charakteristisch für die Erfindung gehalten
werden, sowohl hinsichtlich der Organisation als auch des Betriebsverfahrens
derselben, zusammen mit anderen Aufgaben und Vorteilen werden aus
der folgenden Beschreibung in Verbindung mit den zugehörigen Zeichnungen
besser ersichtlich. Es wird ausdrücklich darauf hingewiesen,
dass jedoch jede der Figuren lediglich für den Zweck einer Darstellung
und Be schreibung vorgesehen ist und nicht als eine Definition der
Grenzen der vorliegenden Erfindung beabsichtigt ist.
-
Für ein vollständigeres
Verständnis
der vorliegenden Erfindung wird nun Bezug auf die folgenden Beschreibungen
in Verbindung mit den zugehörigen
Zeichnungen genommen.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
beispielhaftes System gemäß einem
Ausführungsbeispiel
für eine
stabile Verwendung eines unzuverlässigen Protokolls;
-
2 ein
beispielhaftes System gemäß einem
anderen Ausführungsbeispiel
für eine
stabile Verwendung eines unzuverlässigen Protokolls;
-
3 ein
beispielhaftes System, bei dem eine empfangende Vorrichtung Daten
empfängt,
die über
das unzuverlässige
Protokoll übertragen
werden, gemäß 1 oder 2;
-
4 einen
beispielhaften Betriebsfluss für ein
Ausführungsbeispiel
für eine
stabile Verwendung eines unzuverlässigen Protokolls; und
-
5 einen
beispielhaften Betriebsfluss für ein
anderes Ausführungsbeispiel
für eine
stabile Verwendung eines unzuverlässigen Protokolls.
-
Wie
es oben beschrieben ist, wünschen
bestimmte Anwendungen eventuell, ein unzuverlässiges Protokoll, wie beispielsweise
UDP, für
eine Datenkommunikation auf Grund der Hochgeschwindigkeits- und/oder
Rundsendefähigkeit
zu verwenden, die durch das unzuverlässige Protokoll geboten wird. Ferner
kommunizieren einige Anwendungen eventuell wenige Pakete in einer
gegebenen UDP-Nachricht bzw. -Meldung. Messungssysteme zum Beispiel
erfordern häufig,
dass der Betrieb mehrerer Instrumente in einer geeigneten Weise
synchronisiert (oder koordiniert) wird, um zu ermöglichen,
dass genaue Messungen erhalten werden. Ein Spektrumanalysator zum
Beispiel sollte koordiniert sein, um die Messungen desselben vorzunehmen,
nachdem eine Signalquelle eine ausreichende Gelegenheit hatte, sich bei
der Ausgangsfrequenz derselben einzuschwingen. Wie es ferner in
der gleichzeitig eingereichten und gemeinschaftlich zugewiesenen
Deutschen Patentanmeldung Anwaltsaktenzeichen AG050617PDE mit dem
Titel „SYSTEM
UND VERFAHREN ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL
VON VORRICHTUNGEN ÜBER
MELDUNGEN ÜBER
EIN KOMMUNIKATIONSNETZWERK" beschrieben
ist, deren Offenbarung hierdurch durch Bezugnahme hierin aufgenommen
ist, können
Nachrichten zwischen verschiedenen Instrumenten eines Messungssystems
unter Verwendung von UDP über
ein Kommunikationsnetzwerk kommuniziert werden, um die jeweiligen Operationen
der Instrumente zu synchronisieren. Jede der Nachrichten, die für eine Synchronisation verwendet
werden, kann in lediglich wenigen Paketen (und bei einigen Implementierungen
in lediglich einem Paket) übertragen
werden. Weil die Nachrichten bei der obigen Anwendung von Synchronisierungsoperationen
verschiedener Instrumente zeitkritisch sind, ist UDP ein attraktives
Protokoll. Wie es ferner in der Deutschen Patentanmeldung Anwaltsaktenzeichen
AG050617PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL
VON VORRICHTUNGEN ÜBER
MELDUNGEN ÜBER EIN
KOMMUNIKATIONSNETZWERK" in
bestimmten Ausführungsbeispielen
beschrieben ist, werden die Nachrichten zu einer Mehrzahl von Instrumenten in
dem Kommunikationsnetzwerk rundgesendet bzw. übertragen und UDP ist attraktiv,
weil dasselbe zum Rundsenden von Nachrichten verwendet werden kann.
Es ist jedoch erwünscht,
die Stabilität
von UDP zu verbessern, weil die Synchronisation verschiedener Instrumente
von dem Empfang der UDP-Nachrichten abhängig ist.
-
Verfahren
zum Verbessern der Stabilität
von Anwendungen, die sich auf unzuverlässige Protokolle, wie beispielsweise
UDP, stützen,
sind hierin vorgesehen. Wie es unten weiter beschrieben ist, liefern bestimmte
hierin offenbarte Ausführungsbeispiele eine
verbesserte Zuverlässigkeit
in einigen Fällen. Ferner
liefern die Ausführungsbeispiele
auch eine Fehlererfassung, um zu ermöglichen, dass ein beabsichtigter
Empfänger
in einer ausreichenden Zeit erfasst, wenn derselbe ein Paket nicht
empfangen hat, um eine zeitempfindliche Verarbeitung durchzuführen, die
durch das Paket ausgelöst
werden sollte. Somit liefert die verbesserte Zuverlässigkeit
und Fehlererfassung eine stabile Lösung.
-
Während bekannte
Techniken, die versucht haben, die Zuverlässigkeit von UDP zu verbessern, auf
UDP-Übertragungen
großer
Anzahlen von Paketen gerichtet sind, wie dieselben bei Video- oder Sprachanwendungen
verwendet werden, sind die hierin offenbarten Verfahren für Anwendungen
wirksam, bei denen UDP-Übertragungen
lediglich wenige Pakete aufweisen. Natürlich können die hierin vorgesehenen
Verfahren zum Verbessern der Stabilität von UDP-Übertragungen großer Anzahlen
von Paketen ebenfalls verwendet werden. Die hierin beschriebenen
Verfahren weisen einen speziellen Nutzen zum Verbessern der Stabilität von UDP
auf, wenn dieselben zum Übertragen
von Nachrichten zum Synchronisieren von Operationen von Instrumenten verwendet
werden, wie es beispielsweise in der Deutschen Patentanmeldung Anwaltsaktenzeichen AG050617PDE
mit dem Titel „SYSTEM
UND VERFAHREN ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL
VON VORRICHTUNGEN ÜBER
MELDUNGEN ÜBER
EIN KOMMUNIKATIONSNETZWERK" offenbart
ist. Die hierin beschriebenen Verfahren zum Verbessern der Stabilität von UDP
können
jedoch gleichermaßen
auf irgendwelche anderen Anwendungen angewendet werden, bei denen
UDP zum Übertragen
von Daten gewünscht
ist. Während
UDP bei den spezifischen exemplarischen Ausführungsbeispielen, die hierin
beschrieben sind, verwendet wird, können die vorgesehenen Verfahren
ferner ohne weiteres auf andere unzuverlässige Protokolle erweitert
werden, die keinen Quittungsaustausch bzw. kein Handshaking zum
Erfassen verlorener Pakete vorsehen.
-
Wie
es unten weiter beschrieben ist, ist gemäß zumindest einem Ausführungsbeispiel
ein Verfahren zum Verbessern der Stabilität von UDP bei Anwendungen vorgesehen,
bei denen kleine Anzahlen von zeitkritischen Paketen übertragen
werden. Zum Beispiel bei einem System zusammenwirkender Vorrichtungen
in einem Netzwerk kann eine Vorrichtung in dem Netzwerk Informationen über sich
selbst zu den anderen Vorrichtungen rundsenden. Diese Informationen
können
zeitkritisch sein. Das UDP-Protokoll ist eine gute Wahl für diesen
Zweck, weil dasselbe verwendet werden kann, um Informationen in dem
Netzwerk effizient rundzusenden (im Gegensatz zu Punkt-Zu-Punkt-Kanälen wie
TCP). Die empfangenden Vorrichtungen müssen die Informationen zuverlässig empfangen
und dieselben müssen
dieselben schnell empfangen. In dem Fall, dass alle der Pakete verloren
werden, muss (müssen)
die beabsichtigte(n) Empfängervorrichtung(en)
ferner diesen Fehler erfassen. Da die Anzahl von übertragenen
Paketen klein ist, funktionieren die oben beschriebenen bekannten
Verfahren nicht, die für
große
Anzahlen von Paketen gut funktionieren. Somit ist ein Verfahren
zum Verbessern der Stabilität
einer Kommunikation über
UDP vorgesehen, das eine verbesserte Zuverlässigkeit und/oder eine Fehlererfassung
selbst in Situationen ermöglicht,
in denen lediglich wenige Pakete kommuniziert werden.
-
Gemäß verschiedenen
unten beschriebenen Ausführungsbeispielen
wird eine Kombination von redundanten Wiederübertragungen von UDP-Datenpaketen
und ein Umfassen von Zeitstempeln in den UDP-Datenpaketen verwendet,
um die Stabilität
von UDP zu verbessern. Bei einem exemplarischen Ausführungsbeispiel
ist eine Mehrzahl von Vorrichtungen kommunikativ mit einem Kommunikationsnetzwerk gekoppelt.
Jede der Vorrichtungen weist einen lokalen Takt auf und die lokalen
Takte sind synchronisiert. Eine erste der Vorrichtungen kommuniziert
ein UDP-Datenpaket über
das Kommunikationsnetzwerk eine Mehrzahl von Malen getrennt durch
zumindest eine definierte Zeitverzögerung, wobei ein erster Zeitstempel
jedes der Mehrzahl von Malen, die das UDP-Datenpaket übertragen
wird, in dem UDP-Datenpaket enthalten ist. Somit wird eine redundante Wiederübertragung
des UDP-Datenpakets verwendet, wobei das UDP-Datenpaket ein erstes
Mal übertragen
wird und dann zumindest ein zusätzliches
Mal nach einer gegebenen Verzögerung
wiederübertragen
wird. Das UDP-Datenpaket kann beispielsweise ein erstes Mal übertragen
werden, dann ein zweites Mal nach einer Millisekunde (msec) Verzögerung wieder übertragen
werden und dann ein drittes Mal nach einer Verzögerung von 10 msec wieder übertragen
werden.
-
Jede Übertragung
des UDP-Datenpakets umfasst einen Zeitstempel, der der Zeit entsprechen kann,
zu der die erste Übertragung
des UDP-Datenpakets auftrat, basierend auf dem lokalen Takt der sendenden
Vorrichtung. Die Empfängervorrichtung(en)
empfängt
(empfangen) das UDP-Datenpaket zumindest einmal und die Empfängervorrichtung(en)
wertet (werten) den Zeitstempel aus, um zu bestimmen, ob dieselbe
eine zeitempfindliche Handlung ansprechend auf das empfangene UDP-Datenpaket
durchführen
kann. Man nehme zum Beispiel an, das UDP-Datenpaket soll auslösen, dass
der Empfänger
desselben 10 msec nach dem Zeitstempel, der in dem UDP-Datenpaket enthalten
ist, eine Messung vornimmt. Es ist zu beachten, dass der Empfänger und
der Sender bei diesem Beispiel synchronisierte lokale Takte aufweisen.
Falls somit die erste Übertragung
des UDP-Datenpakets beispielsweise 1 msec nach dem Zeitstempel,
der in der Nachricht enthalten ist, empfangen wird, kann der Empfänger diese
zeitempfindliche Messung durchführen.
Falls die erste Übertragung
des UDP-Datenpakets nicht empfangen wird, aber anstelle dessen die
zweite Übertragung
des UDP-Datenpakets beispielsweise 2 msec nach dem Zeitstempel,
der in der Nachricht enthalten ist, empfangen wird, kann der Empfänger immer
noch diese zeitempfindliche Messung durchführen. Somit ist die Zuverlässigkeit
verbessert. Falls ferner weder die erste noch die zweite Übertragung
des UDP-Datenpakets empfangen wird, aber anstelle dessen die dritte Übertragung
des UDP-Datenpakets
beispielsweise 11 msec nach dem Zeitstempel, der in der Nachricht
enthalten ist, empfangen wird, kann der Empfänger die Messung desselben
nicht 10 msec nach dem Zeitstempel, der in der Nachricht enthalten
ist, auslösen.
Der Empfänger kann
jedoch in diesem Fall einen Fehler auslösen, anstatt sich nicht dessen
bewusst zu sein, dass eine Messung angefordert war. Somit ist eine
Fehlererfassung für
diese Verwendung einer kleinen Anzahl von Paketen (z.B. ein Paket)
verbessert.
-
Unter
Bezugnahme auf 1 ist ein beispielhaftes System 10 gemäß einem
Ausführungsbeispiel für eine stabile
Verwendung eines unzuverlässigen Protokolls
gezeigt, was bei diesem Beispiel UDP ist. Das beispielhafte System 10 umfasst
eine erste Vorrichtung 11 (Vorrichtung A) und eine zweite
Vorrichtung 12 (Vorrichtung B), die kommunikativ über ein Kommunikationsnetzwerk 13 gekoppelt
sind, das ein lokales Netz (LAN = local area network), das Internet oder
ein anderes weites Netz (WAN = wide area network), ein öffentliches
Telefonwählnetz
(PSTN = public switched telephony network), ein drahtloses Netzwerk,
irgendeine Kombination des vorhergehenden und/oder irgendein anderes
Netzwerk sein kann, das nun bekannt ist oder später zum Kommunizieren von Informationen
von zumindest einer Vorrichtung zu zumindest einer anderen Vorrichtung
entwickelt wird.
-
Die
erste Vorrichtung 11 und die zweite Vorrichtung 12 können jeweils
eine zentrale Verarbeitungseinheit (CPU = central processing unit)
(nicht gezeigt) umfassen. Ferner umfassen die erste Vorrichtung 11 und
die zweite Vorrichtung 12 jeweils lokale Takte, die bei
diesem Beispiel synchronisiert sind. Verschiedene Techniken sind
zum Synchronisieren der Takte vernetzter Vorrichtungen mit einem hohen
Maß an
Präzision
bekannt. Als ein Beispiel ist NTP (Network Time Protocol) ein Protokoll,
das verwendet wird, um Computertaktzeiten in einem Netzwerk von
Computern zu synchronisieren. In Gemeinsamkeit mit ähnlichen
Protokollen verwendet NTP Standardweltzeit (UTC = Coordinated Universal
Time), um Computertaktzeiten bis auf eine Millisekunde genau und
manchmal bis auf einen Bruchteil einer Millisekunde genau zu synchronisieren.
Als ein anderes Beispiel hat die IEEE-SA (Institute of Electrical and Electronics
Engineers Standards Association) einen neuen Standard zum Beibehalten
der Synchronität
zwischen Takten in einem Netzwerk genehmigt, der als der IEEE 1588 „Standard
für ein
Präzisionssynchronisationsprotokoll
für vernetzte
Messungs- und Steuersysteme" bezeichnet
wird. Im Allgemeinen definiert dieser IEEE-1588-Standard Nachrichten, die verwendet
werden können,
um Zeitsteuerungsinformationen zwischen den vernetzten Vorrichtungen
auszutauschen, um die Takte derselben synchronisiert zu halten.
Der IEEE-1588-Standard ermöglicht
sogar noch einen größeren Grad
an Genauigkeit (z.B. bis zu einer Mikrosekunde) einer Taktsynchronisation
als dieselbe, die durch NTP geliefert wird. Bei einem Verwenden
derartiger Techniken wie NTP oder IEEE 1588 werden die lokalen Takte
von Vorrichtungen als „aktiv
synchronisiert" bezeichnet, weil
die Vorrichtungen miteinander in Wechselwirkung treten, um die jeweiligen
lokalen Takte gemäß der speziellen
verwendeten Synchronisationstechnik synchronisiert zu halten. Andere
Techniken (z.B. passive Techniken) können bei alternativen Ausführungsbeispielen
zum Synchronisieren der lokalen Takte unter Verwendung von GPS-Empfängern (GPS =
global positioning system), etc. verwendet werden.
-
Bei
dem spezifischen Beispiel von 1 wird IEEE
1588 verwendet, wobei die erste Vorrichtung 11 einen IEEE-1588-Takt 101A implementiert und
die zweite Vorrichtung 12 einen IEEE-1588-Takt 101B implementiert.
Natürlich
können
bei anderen Implementierungen andere Techniken zum aktiven Synchronisieren
der lokalen Takte, wie beispielsweise unter Verwendung von NTP (Network
Timing Protocol), oder andere Techniken zum passiven Synchronisieren
der lokalen Takte (z.B. GPS) verwendet werden. Somit sind die lokalen
Takte 101A und 101B der ersten Vorrichtung 11 und
der zweiten Vorrichtung 12 bis zu einem hohen Grad an Genauigkeit syn chronisiert,
derart, dass dieselben einen gemeinsamen Zeitsinn aufweisen.
-
Bei
diesem Beispiel wird eine Nachricht von der ersten Vorrichtung 11 über das
Kommunikationsnetzwerk 13 unter Verwendung eines unzuverlässigen Protokolls 14 kommuniziert,
das bei diesem Beispiel UDP ist. Bei diesem Beispiel ist die Nachricht durch
eine kleine Anzahl von UDP-Paketen gebildet, wie beispielsweise
zwei UDP-Paketen. Bei bestimmten Implementierungen kann die Nachricht
durch ein einziges UDP-Paket gebildet sein. Bei dieser exemplarischen Übertragungstechnik
wird ein erstes UDP-Paket (UDP-Paket1) 102A zuerst übertragen und
umfasst einen Zeitstempel A. Der Zeitstempel A basiert auf dem lokalen
Takt 101A der ersten Vorrichtung 11 und kann zum
Beispiel die Zeit sein, zu der das UDP-Paket 102A übertragen
wird. Danach wird eine erste Verzögerung (Verzögerung A) 104A angetroffen,
wobei die erste Vorrichtung 11 eine derartige Verzögerungszeit
lang wartet, bevor dieselbe das erste UDP-Paket wieder überträgt. UDP-Paketverluste
neigen dazu, in Bündeln
vorzukommen, so dass mehrere Pakete alle verloren würden, falls
dieselben zeitlich zu eng beabstandet gesendet würden. Folglich ist die Zeitverzögerung A 104A zwischen
die erste Übertragung 102A des
UDP-Pakets1 und die zweite Übertragung 102B des
UDP-Pakets1 eingefügt.
-
Nach
der Verzögerung
A 104A wird das UDP-Paket1 wieder übertragen,
als Paket 102B gezeigt, das wieder den Zeitstempel A umfasst.
Es ist zu beachten, dass der gleiche Zeitstempel (Zeitstempel A)
sowohl bei der ersten Übertragung 102A des UDP-Pakets1 als auch bei der zweiten Übertragung 102B des
UDP-Pakets1 enthalten ist. Danach wird eine
zweite Verzögerung
(Verzögerung
B) 104B angetroffen, wobei die erste Vorrichtung 11 eine
derartige Verzögerungszeit
lang wartet, bevor dieselbe das erste UDP-Paket ein drittes Mal
wieder überträgt. Die Verzögerung B 104B kann
die gleiche Größe einer Verzögerung wie
die Verzögerung
A 104A betragen oder dieselbe kann als eine unterschiedliche
Größe einer Verzögerung definiert
sein. Während
das UDP-Paket1 insgesamt drei (3) Mal bei
diesem Beispiel übertragen
wird, ist ferner die Anzahl von Malen, die ein UDP-Paket redundant übertragen
wird, nicht auf dieses spezifische Beispiel begrenzt. Anstelle dessen
kann bei alternativen Implementierungen das UDP-Paket1 zwei
oder mehr Mal mit einer Verzögerung
zwischen jeder Übertragung übertragen werden.
-
Bei
dem spezifischen Beispiel von 1 wird das
UDP-Paket1 nach der Verzögerung B 104B wiederübertragen,
gezeigt als ein Paket 102C, das wieder den Zeitstempel
A umfasst. Es ist zu beachten, dass der gleiche Zeitstempel (Zeitstempel
A) in allen der Übertragungen 102A-102C des UDP-Pakets1 enthalten ist. Danach wird ein zweites UDP-Paket (UDP-Paket2) 103A erstmals übertragen und
umfasst einen Zeitstempel B. Der Zeitstempel B basiert auf dem lokalen
Takt 101A der ersten Vorrichtung 11 und kann zum
Beispiel die Zeit sein, zu der das UDP-Paket 103A übertragen
wird. Bei bestimmten Implementierungen kann sich der Zeitstempel
B von dem Zeitstempel A unterscheiden, während bei anderen Implementierungen
die Zeitstempel A und B die gleichen sein können. Der Zeitstempel B kann zum
Beispiel die Zeit sein, zu der das erste UDP-Paket (UDP-Paket1) anfänglich übertragen
wurde. Danach wird eine erste Verzögerung (Verzögerung A) 105A angetroffen,
wobei die erste Vorrichtung 11 eine derartige Verzögerungszeit
lang wartet, bevor dieselbe das zweite UDP-Paket wieder überträgt. Obwohl
es nicht in 1 gezeigt ist, kann das zweite UDP-Paket
einmal oder mehrmals wiederübertragen werden,
wie es für
das erste UDP-Paket spezifisch gezeigt und beschrieben ist.
-
Bei
bestimmten Implementierungen müssen nicht
alle der Wiederübertragungen
des ersten UDP-Datenpakets durchgeführt werden, bevor das zweite
UDP-Datenpaket anfänglich übertragen
wird. 2 zeigt zum Beispiel ein beispielhaftes System 10A gemäß einem Ausführungsbeispiel
für eine
stabile Verwendung eines unzuverlässigen Protokolls, was bei
diesem Beispiel UDP ist. Das beispielhafte System 10A umfasst wie der die erste Vorrichtung 11 und
die zweite Vorrichtung 12, die kommunikativ über das
Kommunikationsnetzwerk 13 gekoppelt sind und die IEEE-1588-synchronisierte
Takte 101A bzw. 101B implementieren.
-
Bei
diesem Beispiel von 2 wird eine Nachricht von der
ersten Vorrichtung 11 über
das Kommunikationsnetzwerk 13 unter Verwendung eines unzuverlässigen Protokolls 14 kommuniziert, was
bei diesem Beispiel UDP ist. Bei diesem Beispiel ist die Nachricht
durch zwei UDP-Pakete gebildet. Bei der exemplarischen Übertragungstechnik
von 2 wird ein erstes UDP-Paket (UDP-Paket1) 102A erstmals übertragen
und umfasst einen Zeitstempel A. Der Zeitstempel A basiert auf dem
lokalen Takt 101A der ersten Vorrichtung 11 und
kann zum Beispiel die Zeit sein, zu der das UDP-Paket 102A übertragen
wird. Danach wird eine erste Verzögerung (Verzögerung A) 104A angetroffen,
wobei die erste Vorrichtung 11 eine derartige Verzögerung lang
wartet, bevor dieselbe das erste UDP-Paket wieder überträgt. Wie
es oben erwähnt
ist, neigen UDP-Paketverluste dazu, in Bündeln vorzukommen, so dass mehrere
Pakete alle verloren würden,
falls dieselben zeitlich zu eng beabstandet gesendet würden. Folglich
ist die Zeitverzögerung
A 104A zwischen die erste Übertragung 102A des
UDP-Pakets1 und die zweite Übertragung 102B des
UDP-Pakets1 eingefügt.
-
Nach
der Verzögerung
A 104A wird das UDP-Paket1 wiederübertragen,
als Paket 102B gezeigt, das wieder den Zeitstempel A umfasst.
Es ist zu beachten, dass der gleiche Zeitstempel (Zeitstempel A)
sowohl bei der ersten Übertragung 102A des UDP-Pakets1 als auch bei der zweiten Übertragung 102B des
UDP-Pakets1 enthalten ist. Danach wird eine
zweite Verzögerung
(Verzögerung
B) 104B angetroffen, wobei die erste Vorrichtung 11 eine
derartige Verzögerungszeit
lang wartet, bevor dieselbe das erste UDP-Paket ein drittes Mal
wieder überträgt. Die Verzögerung B 104B kann
die gleiche Größe einer Verzögerung wie
die Verzögerung
A 104A betragen oder dieselbe kann als eine unterschiedliche
Größe einer
Verzö gerung
definiert sein. Während
der Verzögerung
B 104B wird bei diesem Beispiel das zweite UDP-Paket (UDP-Paket2) 103A erstmals übertragen und
umfasst einen Zeitstempel B. Der Zeitstempel B basiert auf dem lokalen
Takt 101A der ersten Vorrichtung 11 und kann zum
Beispiel die Zeit sein, zu der das UDP-Paket 103A übertragen
wird. Bei bestimmten Implementierungen kann sich der Zeitstempel
B von dem Zeitstempel A unterscheiden, während bei anderen Implementierungen
die Zeitstempel A und B die gleichen sein können. Zum Beispiel kann der
Zeitstempel B die Zeit sein, zu der das erste UDP-Paket (UDP-Paket1) anfänglich übertragen
wurde. Danach wird eine erste Verzögerung (Verzögerung A) 105A angetroffen,
wobei die erste Vorrichtung 11 eine derartige Verzögerungszeit
lang wartet, bevor dieselbe das zweite UDP-Paket wieder überträgt.
-
Während der
Verzögerung
A 105A wird das UDP-Paket1 wieder übertragen,
als Paket 102C gezeigt, das wieder den Zeitstempel A umfasst.
Es ist zu beachten, dass der gleiche Zeitstempel (Zeitstempel A)
in allen der Übertragungen 102A-102C des UDP-Pakets1 enthalten ist. Danach wird das zweite UDP-Paket
(UDP-Paket2) wieder übertragen, als Paket 103B gezeigt,
das wieder den Zeitstempel B umfasst (der bei bestimmten Implementierungen
der gleiche wie der Zeitstempel A sein kann). Obwohl in 2 nicht
gezeigt, kann das zweite UDP-Paket einmal oder mehrmals wieder übertragen
werden, wie es für
das erste UDP-Paket spezifisch gezeigt und beschrieben ist.
-
Unter
jetziger Bezugnahme auf 3 ist das System 10 erneut
gezeigt (das das System 10 von 1 oder das
System 10A von 2 sein
kann) , wobei die zweite Vorrichtung 12 eines oder mehrere des
redundant übertragenen
ersten UDP-Pakets (UDP-Paket1) empfängt.
Falls ein zweites UDP-Paket kommuniziert wird, wie beispielsweise
bei den obigen Beispielen von 1 und 2,
werden natürlich
eines oder mehrere dieser zweiten UDP-Pakete gleichermaßen durch
die Vorrichtung 12 empfangen. Die Vorrichtung 12 umfasst
eine UDP- Paketverwaltungseinrichtung 301,
die auf ein Empfangen eines Pakets hin den Zeitstempel, der in dem
Paket enthalten ist, mit der lokalen Zeit vergleicht (wie aus dem
IEEE-1588-Takt 101B bestimmt).
Dies resultiert in einem sehr hochgenauen Schätzwert der Menge an Zeit, die
das Paket benötigte,
um anzukommen. Die UDP-Paketverwaltungseinrichtung 301 kann
mit einem „Zeitablauf" für jedes
Paket vorprogrammiert sein. Die Zeitablaufperiode kann abhängig von
den anderen Inhalten des Pakets variieren, wie beispielsweise einem
Ereignis, das durch das Paket identifiziert ist. Falls die gemessene
Zeit die Zeitablaufperiode überschreitet,
kann die UDP-Paketverwaltungseinrichtung 301 dasselbe als
einen Fehler betrachten und eine geeignete Handlung unternehmen.
Wenn eines der übertragenen
ersten UDP-Pakete einmal empfangen ist, ist die UDP-Paketverwaltungseinrichtung
301 zum Ignorieren eines Empfangs späterer, redundanter eines derartigen
ersten UDP-Pakets in der Lage.
-
Das
beispielhafte Verfahren von 1-3 stützt sich
sowohl auf eine redundante Übertragung
als auch eine Zeitstempelung zum Verbessern der Stabilität von Anwendungen,
die sich auf Unzuverlässig-Protokoll-Kommunikationen
stützen. Für ein Zeitstempeln
ist IEEE 1588 oder ein ähnliches
Taktsynchronisationsschema mit großer Genauigkeit an den vernetzten
Vorrichtungen implementiert.
-
Da
es keinen Weg gibt, um verlorene UDP-Pakete direkt zu erfassen oder
wiederzugewinnen, wird jedes UDP-Paket mehrere Male übertragen.
Eine Wiederübertragung
geschieht jedoch bei den obigen Beispielen nicht unmittelbar, weil UDP-Paketverluste dazu
neigen, in Bündeln
vorzukommen, so dass mehrere Pakete alle verloren würden, falls
dieselben zeitlich zu eng beabstandet gesendet würden. Anstelle dessen ist eine
Zeitverzögerung
zwischen jede Paketübertragung
eingefügt.
Die Zeitverzögerung,
die geeignet ist, hängt
von der Anwendung ab, genauso wie die Anzahl von Wiederübertragungen,
die auftreten. Zum Beispiel können UDP-Pakete
nach 1 msec wieder übertragen
werden und erneut nach 10 msec.
-
Mehr
Wiederübertragungen
können
in Fällen notwendig
sein, in denen die Menge an Verkehr in dem Kommunikationsnetzwerk
hoch ist. Es ist zu beachten, dass die empfangende(n) Vorrichtung(en) zum
Ignorieren von Paketen, die mehrere Male ankommen, in der Lage ist
(sind); aber UDP-Pakete, besonders bei einem Sammelsenden (Multicasting), können häufig über mehrere
unterschiedliche Routen bei einer empfangenen Vorrichtung ankommen,
so dass Empfänger
von UDP-Paketen typischerweise ohnehin diese Fähigkeit aufweisen.
-
Jedes
Paket trägt
einen Zeitstempel. Das IEEE-1588-Protokoll
wird bei den obigen Beispielen verwendet, um alle Takte in einem
System zu synchronisieren und ferner um einen Zeitstempel für jedes
UDP-Paket zu erzeugen. Auf ein Empfangen eines Pakets hin vergleicht
die empfangende Vorrichtungseinheit den Zeitstempel, der in dem
Paket enthalten ist, mit der lokalen Zeit (wie aus dem IEEE-1588-Takt
der empfangenden Vorrichtung bestimmt). Dies resultiert in einem
sehr hochgenauen Schätzwert
der Menge an Zeit, die das Paket benötigte, um anzukommen. Die empfangende
Einheit kann mit einem „Zeitablauf" für jedes
Paket vorprogrammiert sein. (Die Zeitablaufperiode kann abhängig von
den anderen Inhalten des Pakets variieren.) Falls die gemessene
Zeit die Zeitablaufperiode überschreitet,
kann der Empfänger
dasselbe als einen Fehler betrachten und eine geeignete Handlung
unternehmen.
-
Man
betrachte das folgende Beispiel, bei dem eine Quelle die Frequenz
derselben verändert und
eine Nachricht zu einem Empfänger
kommuniziert, um auszulösen,
dass der Empfänger
10 msec nach dem Zeitstempel, der in der Nachricht enthalten ist,
eine Messung vornimmt. Genauer gesagt kann nach einem Verändern der
Frequenz derselben die Quellvorrichtung eine Nachricht senden, die
einen Zeitstempel dessen umfasst, wann die Frequenz derselben verändert wurde.
Die Nachricht umfasst ferner eine Identifikation eines Ereignisses
Nr. 1. Der Empfänger
ist programmiert, derart, dass ansprechend auf einen Empfang einer
Nachricht, die das Er eignis Nr. 1 identifiziert, eine Messung des
Signals der Quelle 10 msec nach dem Zeitstempel, der in einer derartigen
Nachricht enthalten ist, vorgenommen wird (so dass die Messung durchgeführt wird,
nachdem sich die veränderte
Frequenz eingeschwungen hat). Man nehme ferner an, dass die Quelle
die Nachricht, die das Ereignis Nr. 1 identifiziert und den Zeitstempel,
bei dem dieselbe die Frequenz derselben veränderte, in einem einzigen UDP-Paket
sendet.
-
Bei
diesem Beispiel wird das UDP-Datenpaket durch die Quelle ein erstes
Mal übertragen,
dann ein zweites Mal nach einer Verzögerung von 1 Millisekunde (msec)
wieder übertragen
und dann ein drittes Mal nach einer Verzögerung von 10 msec wieder übertragen.
Jede Übertragung
des UDP-Datenpakets umfasst den Zeitstempel, bei dem die Quelle
die Frequenz derselben veränderte,
basierend auf dem lokalen Takt der Quelle. Der Empfänger empfängt das
UDP-Datenpaket zumindest einmal und auf den ersten Empfang dieses
UDP-Datenpakets hin wertet der Empfänger (z.B. die UDP-Paketverwaltungseinrichtung
desselben) den Zeitstempel desselben aus, um zu bestimmen, ob derselbe
die zeitempfindliche Messung entsprechend auf das empfangene UDP-Datenpaket
durchführen
kann. Falls somit die erste Übertragung
des UDP-Datenpakets beispielsweise 1 msec nach dem Zeitstempel,
der in der Nachricht enthalten ist, empfangen wird, kann der Empfänger die
Messung durchführen,
die derselbe 10 msec nach dem Zeitstempel in der Nachricht durchführen soll.
Falls die erste Übertragung
des UDP-Datenpakets nicht empfangen wird, aber anstelle dessen die
zweite Übertragung
des UDP-Datenpakets beispielsweise 2 msec nach dem Zeitstempel,
der in der Nachricht enthalten ist, empfangen wird, kann der Empfänger immer
noch diese zeitempfindliche Messung durchführen. Falls jedoch weder die
erste noch die zweite Übertragung
des UDP-Datenpakets empfangen wird, aber anstelle dessen die dritte Übertragung
des UDP-Datenpakets beispielsweise 11 msec nach dem Zeitstempel,
der in der Nachricht enthalten ist, empfangen wird, kann der Empfänger die
Messung desselben nicht 10 msec nach dem Zeitstempel, der in der
Nachricht enthalten ist, auslösen.
Der Empfänger
kann jedoch in diesem Fall einen Fehler auslösen, im Gegensatz dazu, sich nicht
dessen bewusst zu sein, dass eine Messung angefordert war. Falls
der Empfänger
implementiert wäre,
das Signal kontinuierlich zu messen und die Ergebnisse desselben
in einem Ringpuffer zu puffern, kann der Empfänger natürlich in der Lage sein, die Messung,
die der Zeit 10 msec nach dem Zeitstempel in der Nachricht entspricht,
wiederzuerlangen, obwohl die Nachricht erst 11 msec nach dem Zeitstempel
in der Nachricht empfangen wird. In diesem Fall kann der Empfänger einen
Fehler erzeugen, falls die Messung für die gewünschte Zeit (z.B. 10 msec nach dem
Zeitstempel) nicht mehr in dem Puffer des Empfängers ist.
-
Mit
Bezug auf 4 ist ein beispielhafter Betriebsfluss
für ein
Ausführungsbeispiel
gezeigt. Bei einem Betriebsblock 41 werden lokale Takte
einer Mehrzahl von Vorrichtungen, die kommunikativ mit einem Kommunikationsnetzwerk
gekoppelt sind, synchronisiert. Eine aktive Synchronisationstechnik, wie
beispielsweise IEEE 1588 oder NTP kann zum Synchronisieren der lokalen
Takte bei bestimmten Ausführungsbeispielen
verwendet werden, wie es oben beschrieben ist. Bei einem Block 42 wird
zumindest ein UDP-Datenpaket von einer der Mehrzahl von Vorrichtungen über das
Kommunikationsnetzwerk kommuniziert. Das (die) UDP-Datenpaket(e)
wird (werden) über
das Kommunikationsnetzwerk bei bestimmten Ausführungsbeispielen rundgesendet.
Das (die) UDP-Datenpaket(e)
umfasst (umfassen) einen Zeitstempel in demselben (denselben), basierend
auf dem lokalen Takt der sendenden Vorrichtung. Dann wird bei einem
Block 43 nach einer definierten Verzögerung das UDP-Datenpaket wieder über das
Kommunikationsnetzwerk kommuniziert und umfasst wieder den Zeitstempel.
-
Unter
Bezugnahme auf 5 ist ein anderer beispielhafter
Betriebsfluss für
ein Ausführungsbeispiel
gezeigt. Bei einem Betriebsblock 51 werden lokale Takte
einer Mehrzahl von Vorrichtungen, die kommunikativ mit einem Kommunikationsnetzwerk gekoppelt
sind, synchronisiert. Wieder kann eine aktive Synchronisationstechnik,
wie beispielsweise IEEE 1588 oder NTP bei bestimmten Ausführungsbeispielen
zum Synchronisieren der lokalen Takte verwendet werden. Bei einem
Betriebsblock 52 wird ein UDP-Datenpaket von einer ersten
der Mehrzahl von Vorrichtungen über
das Kommunikationsnetzwerk eine Mehrzahl von Malen durch zumindest
eine definierte Zeitverzögerung
getrennt übertragen.
Bei bestimmten Ausführungsbeispielen
wird das UDP-Paket über
das Kommunikationsnetzwerk rundgesendet. Ein erster Zeitstempel
ist in dem UDP-Paket bei jedem der Mehrzahl von Malen enthalten,
die das UDP-Paket übertragen
wird. Ein derartiger Zeitstempel kann zum Beispiel der Zeit an dem
lokalen Takt der ersten Vorrichtung entsprechen, wenn das UDP-Datenpaket
anfänglich übertragen
wird. Bei einem Betriebsblock 53 empfängt zumindest eine der Mehrzahl
von Vorrichtungen das UDP-Datenpaket zumindest einmal. Die empfangene
Vorrichtung wertet den Zeitstempel aus, um zu bestimmen, ob dieselbe
eine zeitempfindliche Handlung ansprechend auf das empfangene UDP-Datenpaket durchführen kann.
Wie es oben erwähnt
ist, kann der Empfänger eine
geeignete Handlung unternehmen, wie beispielsweise einen Fehler
erzeugen, falls bestimmt wird, dass das empfangene UDP-Datenpaket
zu spät ist,
um zu ermöglichen,
dass der Empfänger
eine zeitempfindliche Handlung durchführt.
-
Während die
obigen Beispiele oben für
das UDP-Protokoll beschrieben sind, ist klar, dass die Techniken
ohne weiteres für
eine Verwendung mit anderen unzuverlässigen Protokollen erweitert
werden können,
um die Stabilität
eines Verwendens dieser Protokolle zu verbessern. Während die
hierin beschriebenen Verfahren einen speziellen Nutzen zum Verbessern
der Stabilität
unzuverlässiger
Protokolle aufweisen, wenn dieselben zum Übertragen von Nachrichten zum
Synchronisieren von Operationen von Instrumenten verwendet werden,
wie es beispielsweise in der Deutschen Patentanmeldung Anwaltsaktenzeichen
AG050617PDE mit dem Titel „SYSTEM
UND VERFAHREN ZUM SYNCHRONISIEREN VON OPERATIONEN EINER MEHRZAHL VON
VORRICHTUNGEN ÜBER
MELDUNGEN ÜBER
EIN KOMMUNIKATIONSNETZWERK" offenbart
ist, können
die hierin beschriebenen Verfahren ferner gleichermaßen auf
irgendwelche anderen Anwendungen angewendet werden, bei denen ein
unzuverlässiges
Protokoll zum Übertragen
von Daten gewünscht
ist, insbesondere Anwendungen, bei denen lediglich wenige Datenpakete übertragen
werden.
-
Obwohl
die vorliegende Erfindung und die Vorteile derselben detailliert
beschrieben wurden, ist klar, dass verschiedene Änderungen, Substitutionen und
Veränderungen
hierin vorgenommen werden können,
ohne von der Erfindung abzuweichen, wie dieselbe durch die beigefügten Ansprüche definiert ist.
Außerdem
soll der Schutzbereich der vorliegenden Anmeldung nicht auf die
speziellen Ausführungsbeispiele
des Prozesses, der Maschine, der Herstellung, der Materialzusammensetzung,
der Einrichtung, von Verfahren und Schritten begrenzt sein, die in
der Beschreibung beschrieben sind. Wie ohne weiteres aus der Offenbarung
ersichtlich wird, können Prozesse,
Maschinen, eine Herstellung, Materialzusammensetzungen, eine Einrichtung,
Verfahren oder Schritte verwendet werden, die gegenwärtig existieren
oder später
entwickelt werden und die im Wesentlichen die gleiche Funktion durchführen oder
im Wesentlichen das gleiche Ergebnis erzielen wie die entsprechenden
Ausführungsbeispiele,
die hierin beschrieben sind. Folglich sollen die beigefügten Ansprüche in dem
Schutzbereich derselben derartige Prozesse, Maschinen, eine Herstellung,
Materialzusammensetzungen, eine Einrichtung, Verfahren oder Schritte
umfassen.