Wird das Precision Time Protocol (PTP) für die Zeitsynchronisation verwendet, können die Geräte zwischen dem Grandmaster und den Clients die Gesamtgenauigkeit des Systems beeinträchtigen. Wir haben in einem früheren Artikel dieses Blogs erfahren, wie die transparente Uhr (bzw. „Transparent Clock“) dieses Phänomen einschränken kann. Die Boundary Clock funktioniert nicht wie die transparente Uhr. Sie begnügt sich nicht damit, die PTP-Nachrichten lediglich korrigiert weiterzuleiten. Sie fungiert als lokale Zeitreferenz für die Clients, bleibt aber zugleich mit dem Grandmaster synchronisiert.
Das Problem: die Akkumulation von Verzögerungen
Wenn eine PTP-Nachricht einen Switch durchläuft, wird sie zusammen mit dem restlichen Netzwerkverkehr in eine Warteschlange eingereiht. Die Durchlaufzeit dieses Switches hängt von der aktuellen Netzwerklast zu eben diesem Zeitpunkt ab und variiert daher von Nachricht zu Nachricht. Diese Variation, die als PDV (Packet Delay Variation) bezeichnet wird, beeinträchtigt die Synchronisationsberechnung und verschlechtert somit die Zeitgenauigkeit. Besonders kritisch ist, dass die PDV in jedem Netzwerkabschnitt neu entstehen kann: Über mehrere Hops wird der Genauigkeitsvorteil von PTP gegenüber NTP dann deutlich reduziert.
Die Rolle der Boundary Clock besteht darin, dieses Problem zu lösen, indem sie die Kette der Verzögerungsakkumulation in mehrere Segmente unterteilt, die unabhängig voneinander synchronisiert werden.
Zuverlässige Zeitsynchronisation für kritische Umgebungen
Sorgen Sie für eine präzise und einheitliche Zeitsynchronisation auf allen Ihren Geräten, ohne Abweichungen.
Die Funktionsweise einer Boundary Clock
Eine Boundary Clock ist ein Gerät mit mehreren PTP-Ports, das gleichzeitig zwei Rollen übernimmt. An einem seiner Ports, dem sogenannten Client-Port, synchronisiert es sich mit dem Grandmaster wie jeder andere Client auch. An seinen anderen Ports, den sogenannten Server-Ports, verteilt es diese synchronisierte Zeit an die nachgelagerten Geräte weiter und agiert so als lokale Zeitreferenz.
Eine Boundary Clock teilt die PTP-Kette somit in zwei unterschiedliche Segmente. Vorgelagert (Upstream) verhält sie sich wie ein Client, nachgelagert (Downstream) wie ein Server. Die nachfolgenden Clients kommunizieren nicht mehr direkt mit dem Grandmaster: Für sie ist die Boundary Clock die unmittelbare Zeitreferenz.
Die zwischen dem Grandmaster und der Boundary Clock aufgelaufenen Laufzeitvariationen bleiben auf das vorgelagerte Netzwerksegment beschränkt. Die (nachgelagerten) Clients profitieren wiederum von einer sauberen Synchronisation. Jedes Segment verfügt somit über seine eigene Laufzeitbewertung. Das PTP-Signal wird an jeder Boundary Clock „regeneriert“ (daher auch der Name).
Gründe für den Einsatz einer Boundary Clock
Die Nutzung von Boundary Clocks macht die Zeitverteilung in großen Netzwerken zuverlässiger. Bei transparenten Uhren kommunizieren alle Clients direkt mit dem Grandmaster, der bei zu vielen Clients irgendwann überlastet ist. Die Boundary Clock verteilt diese Last: Jeder PTP-Switch übernimmt eine Teilmenge von Clients. Der Grandmaster kommuniziert dann ausschließlich mit den Boundary Clocks der ersten Ebene. Die Architektur wird hierarchisch, und jede Ebene verwaltet nur eine begrenzte Anzahl von Sitzungen.
Durch ihre Bauweise segmentiert die Boundary Clock das Netzwerk entsprechend. Auf diese Weise kann die Synchronisation in autonome Zonen aufgeteilt werden, von denen jede über eine eigene lokale Referenz verfügt. Implementierung, Diagnose und Wartung sind in diesem Fall wesentlich einfacher.
Wann sollte eine Boundary Clock nicht verwendet werden?
Die Boundary Clock ist eine eigenständige Uhr. Sie besitzt einen eigenen Oszillator, der über die Zeit driften kann. Die vom Grandmaster kommenden PTP-Nachrichten korrigieren diese Abweichung kontinuierlich, dennoch bleibt stets eine gewisse Restunsicherheit zwischen der internen Uhr und der Referenzzeit bestehen. Diese Abweichung erhöht sich jedoch auf jeder Ebene: In einer Architektur mit drei Ebenen übernehmen die Endclients die sich aus den drei vorgeschalteten Uhren ergebende Gesamtabweichung. Es ist deshalb ratsam, die Anzahl der Ebenen zu begrenzen, um diese Akkumulation unter Kontrolle zu halten.
Genau hier behält die transparente Uhr den Vorteil: Da sie selbst keine Zeit verteilt, führt sie keine zusätzliche Drift ein.
In welchen Fällen macht die Boundary Clock Sinn?
Sie ist besonders dann unentbehrlich, wenn das Netzwerk groß und die Anzahl der Clients hoch ist. Umgekehrt genügt in einem moderat großen Netzwerk mit nur wenigen Hops zwischen Grandmaster und Clients in der Regel eine transparente Uhr, die zudem einfacher zu implementieren ist.
In der Praxis werden beide Ansätze häufig kombiniert. Boundary Clocks werden an den strukturierenden Punkten des Netzwerks positioniert, während transparente Uhren dort eingesetzt werden, wo die Anzahl der Hops gering bleibt. Diese hybride Architektur ist bei PTP-Bereitstellungen am weitesten verbreitet.
Worauf bei der Installation zu achten ist
Wie bei der transparenten Uhr muss der Zeitstempel der PTP-Nachrichten auf Hardware- statt auf Softwareebene erfolgen, da sonst die gewünschte Präzision verloren geht. Auch die Qualität des integrierten Oszillators spielt eine Rolle: Ein stabilerer Oszillator führt zu einer geringeren Drift zwischen zwei Korrekturen und damit zu einer höheren Genauigkeit für die nachgelagerten Clients.
Zudem sollte die Konfiguration sollte sorgfältig beachtet werden. Die PTP-Ports müssen korrekt konfiguriert werden (Client-Port zum Grandmaster gerichtet, Server-Ports zu den Clients gerichtet) und das PTP-Profil muss über die gesamte Kette hinweg konsistent bleiben.
Ein weiterer wichtiger Punkt ist, dass die Boundary Clock Netzwerkasymmetrien nicht korrigiert, also insbesondere den Laufzeitunterschied zwischen Hin- und Rückweg einer Nachricht. Dieses Problem hängt von der Netzwerktopologie ab und wird unabhängig vom gewählten Uhrentyp behandelt.