Grundlagen IEEE1588

Begriffserklärung

Das in IEEE1588 definierte PTP (Precision Time Protocol) ist ein Protokollstandard zur Synchronisation von verteilten Uhren in Netzwerken. Jede PTP Uhr führt dabei zyklisch den „Best Master Clock Algorithmus“ (BMCA) aus und ermittelt so die Uhr mit der besten Genauigkeit. Die Uhr mit der besten Genauigkeit wird Grandmaster genannt und dient allen anderen PTP Uhren im Netzwerk als Synchronisationsquelle. Aktuell sind zwei Standards definiert, PTPv1 und PTPv2. Das PTP kann u. a. auf Ethernet als Transportmedium aufsetzen.

Werden PTP-Teilnehmer nicht direkt verbunden, sondern der Ethernet-Verkehr über Switche/Router geführt, wird dringend empfohlen, PTP-fähige Switche/Router einzusetzen. Unterstützt ein Switch PTP, dann verhält er sich gegenüber einer angeschlossenen Master Clock selbst wie eine Slave Clock, wird also von der Master Clock synchronisiert. Gegenüber weiteren angeschlossenen Slave Clocks stellt er sich dagegen als Master Clock dar. Der Switch wird zur PTPv1/v2 Boundary Clock.
Zusätzlich gibt es in PTPv2 die Möglichkeit der Transparent Clock, d. h. jeder Switch trägt dann in einem CorrectionField im PTP-Telegramm einen Zeitkorrekturwert ein. Damit ist es nachfolgenden Slaves möglich, den Einfluss des Switch auf die Übertragungsstrecke herauszurechnen.

Es unterschiedliche Implementationsformen im Switch/Router:

Die architektonischen Unterschiede der beiden Stufen sind wie folgt:

In der theoretisch erreichbaren Genauigkeit unterscheiden sich V1 und V2 kaum, mit beiden Versionen kann man im Idealfall, d. h. bei optimaler Infrastruktur, auf < 1 µs Genauigkeit kommen. Die maximal erreichbare Genauigkeit hängt allein von der Art des Zeitstempelns ab, das in Hardware oder Software realisiert werden kann.

Funktionsweise

Zeitermittlung, 2-Step-Verfahren

Grundlegend für alle PTP-Protokolle ist die Möglichkeit, den Sende- und Empfangszeitpunkt von Ethernet-Telegrammen in der Ethernet-Hardware exakt zeitstempeln zu können. Dadurch können die Laufzeitdifferenzen zwischen dem Grandmaster und den Slaves berechnet werden.

1. Der Grandmaster schickt zur Zeit t1 ein SyncMessage an die Slaves, beinhaltend den geschätzten Versendezeitpunkt. Dies kommt bei t2 am Slave an.
2. Der Grandmaster schickt kurz darauf ein FollowUp hinterher, beinhaltend die reale Versendezeit t1 des vorherigen Telegramms.
3. Dieser Vorgang wiederholt sich zyklisch im SyncIntervall, z. B. alle 2 Sekunden. Definierte bzw. unterstützte Sync Intervalle sind 1s, 2s, 4s, 8s, 16s und 32s (PTPv1) bzw. 0.5s, 1s, 2s, 4s (PTPv2).

In größeren Abständen untersucht der Slave den Rückweg:

1. Der Slave schickt eine DelayRequest an den Master, dieser empfängt sie zur Zeit t4.
2. Dieser antwortet mit der DelayResponse Message, in der Empfangszeit t4 enthalten ist.

Daraus lassen sich auf beiden Seiten die Latenzzeiten berechnen und die Drift ausregeln.

In der Abbildung „Aufzeichnung PTPv1-Verkehr im 2-Step-Mode“ wird vom Grandmaster "192.168.200.2" alle 2 Sekunden ein Sync ausgelöst, alle 8 Sekunden reagiert der Slave "192.168.200.1" mit einem DelayRequest.

Grundlagen IEEE1588 1:
Aufzeichnung PTPv1-Verkehr im 2-Step-Mode

Routing

Die Telegramme werden üblicherweise über IP/UDP durch Multicast über die Ports 319 (Event Messages: SyncMsg, DeleyReq) und 320 (General Messages: FollowUp, Announce, DelayResp, Management) geroutet. Nach Möglichkeit sollten diese Ports priorisiert werden.

Es sind vier Multicast-Domains definiert, um bis zu vier unabhängige Zeitnetze innerhalb eines Netzwerks aufbauen zu können:

In Grandmaster- und Slave Clocks müssen die Domains übereinstimmen, eine eigene IP-Adresse muss für den Slave nur vergeben werden, wenn der PTP-Master dies erfordert.

Begriffe

Stratum: Maß für die Qualität einer Uhr, Stratum-1 ist der höchste Level

Auswahl der Grandmaster Clock

In einem abgestimmten PTP-System nach IEEE1588 gibt es nur eine Zeitquelle, die Grandmaster Clock. Jede PTP-Uhr kann zu Beginn Master- oder Slave Clock sein. Mit verschiedenen Kriterien (Stratum, Preferred-Flag) gibt eine PTP-Uhr Auskunft über die Qualität der von ihr gelieferten Uhrzeit - ob sie z. B. auf GPS, Quarz, Atomuhr o. ä. basiert. Existiert mehr als eine PTP-Uhr in einem Netzwerk, wählen alle PTP-Uhren durch den standardisierten BMCA, den sie alle in gleicher Weise integriert haben sollen, die im gesamten Netzwerk qualitativ beste Uhr als Zeitgeber, als Grandmaster Clock aus. Die verbleibenden Clocks gehen in den Passiv-Modus, solange die gewählte Grandmaster Clock ihre Sync-Messages versendet.
Durch ihre Parameter kann eine PTP-Uhr im Netzwerk erzwingen, Grandmaster Clock zu werden (indem sie ihre Parameter bestmöglich setzt) oder auf jeden Fall Slave-Clock zu bleiben (indem sie ihre Parameter schlechtestmöglich setzt).
Der BMCA wird in jedem Zyklus (üblicherweise alle paar Sekunden) von allen Teilnehmern ausgeführt - so wird auf Topologieveränderungen reagiert und immer die beste Grandmaster Clock ausgewählt.

Infrastruktur

Werden mehr als zwei direkt miteinander verbundene PTP-Uhren verwendet, müssen bei 100 MBit FastEthernet-Switche eingesetzt werden. Da der Synchronisierungsmechanismus die Signallaufzeiten zur Kompensation der Netzwerkverzögerungen berücksichtigt, beeinflussen unregelmäßige Latenzzeiten auf der Signalstrecke negativ die Synchronisierungsgenauigkeit.

Deshalb sind normale Switche mit ihrem Store-and-Forward-Konzept nur schlecht geeignet. Spezielle IEEE1588-Switche mit "Boundary Clocks" erhalten die Synchronisierungsgenauigkeit je nach Protokoll:

PTPv1

Die Boundary Clock Switche stellen sich gegenüber der Grandmaster Clock als Slave Clock dar, geben sich aber an ihren abgehenden Ports gegenüber den dort angeschlossenen Slaves als Grandmaster Clock aus. Die Switche setzen ihren eigenen Sendezeitpunkt in das Telegramm ein und sind so "transparent clocks".

PTPv2

Neben Boundary Clocks gibt es mit PTPv2 einen weiteren Clock-Typ: Transparent Clock. Transparent Clock Switche setzen ihren eigene Durchlaufzeit in das Telegramm ein. (Durchlaufzeiten werden in einem CorrectionField aufaddiert) Transparente Clocks sind nicht sichtbar für andere PTP-Clocks.

PTPv1 vs. PTPv2

PTP-Betriebsarten

1. „SlaveOnly“:
Die Klemme ist durch niedrige Settings fest als Synchronisierungs-Slave konfiguriert und wird nicht selbst Grandmaster werden.
Es wird zyklisch der BMCA ausgeführt und damit die beste verfügbare Synchronisationsquelle im Netzwerk ermittelt.

2. „Grandmaster“:
Die Klemme ist durch hohe Settings als Grandmaster konfiguriert und steht für andere Uhren im Netzwerk als Synchronisationsquelle zur Verfügung. Der BMCA wird auch in dieser Betriebsart ausgeführt, dient aber nur zur Überprüfung, ob ein anderer Grandmaster mit höherer Güte verfügbar ist - wenn ja dann wird Klemme passiv.

3. „Best Master Clock“:
Die Klemme kann sowohl Masteruhr als auch Slaveuhr sein.
Es wird zyklisch der BMCA ausgeführt und die beste verfügbare Uhr ermittelt.
Wird keine bessere Uhr als die eigene gefunden, so wird die Klemme selbst Grandmaster.