Der IEEE-1588-Standard Uhrenvergleich im Netzwerk

Der IEEE-1588-Standard verbindet Rechner und Messgeräte zeitsynchronisch.
Der IEEE-1588-Standard verbindet Rechner und Messgeräte zeitsynchron.

Zeitsynchronisation zwischen mehreren Rechnern im Netzwerk war schon immer eine Herausforderung. Durch den IEEE 1588-Standard entstand erstmals die Möglichkeit, Rechner und Messgeräte mit Hilfe von Standard-Komponenten zu synchronisieren. Und das mit Subnanosekunden-Genauigkeit.

Zwei oder mehrere Rechner mit der identischen Zeit ausstatten: Was sich im ersten Schritt als eine triviale Anforderung darstellt, ist bei genauerer Betrachtung ein durchaus komplexes Problem. Die Problemstellung kann wie folgt definiert werden: Verteilung der Zeit einer sehr genauen Zeitquelle (Atomuhr, GPS) an einen oder mehrere Rechner im Netzwerk. Zur Verteilung der Zeit steht nur die vorhandene Netzwerkinfrastruktur zur Verfügung.

Um dieses Problem zu lösen, wurde bereits 1985 von David L. Mills an der Universität von Delaware das Network Time Protocol NTP entwickelt und als RFC 958 veröffentlicht. Mit diesem Protokoll war es nun möglich, mehrere Rechner an die Zeit eines Zeit-Server anzugleichen. Die Genauigkeit, die hierbei erreicht wird, liegt im Mikrosekunden-Bereich und war zur damaligen Zeit ausreichend.

Bereits 1990 wurde im T&M-Bereich die Notwendigkeit erkannt, über deutlich genauere Systeme zu verfügen. Zu dieser Zeit war zwar bereits auch GPS verfügbar, was eine deutlich bessere Genauigkeit bereitstellen konnte, jedoch war diese Alternative preislich nicht attraktiv. Zusätzlich sollten die Anforderungen an eine verbesserte Genauigkeit mit der vorhandenen Infra¬struktur erreicht werden. So wurde Anfang der 90er Jahre bei Hewlett-Packard eine Arbeitsgruppe um John C. Eidson gegründet, die ein Konzept zur Verbesserung des NTP-Standards ausarbeiten sollte. Die im Jahr 2000 von Eidson veröffentlichten Ergebnisse waren für die T&M-Firmen so interessant, dass man einen eigenen IEEE-Standard für diese neue Art von Zeitsynchronisation ins Leben rufen wollte. 2002 war es dann so weit, IEEE 1588-2002 war fertiggestellt und freigegeben. Mit Hilfe dieses Standards sollten nun Genauigkeiten im Sub-Mikrosekundenbereich möglich werden. 2008 wurde dann der Standard nochmals an die aktuellen Anforderungen angepasst und als IEEE 1588-2008 festgeschrieben. Dieser Standard ist bis heute gültig. Zur Zeit arbeitet die IEEE Working Group um John C. Eidson und Doug Arnold, der nun als Co-Chairman fungiert, an einer neueren Version des Standards, um den erweiterten Anforderungen an den Standard Rechnung tragen zu können. Folgende Anforderungen wurden für den neuen Standard identifiziert:

  • Verbesserung der Genauigkeit der Zeitsynchronisation
  • Anwendbarkeit auf lokalisierte Systeme mit der Möglichkeit der Verwendung in größeren Systemen
  • Administrationsfreier Betrieb
  • Eignung für High-End-Geräte sowie für Low-End-Geräte
  • Management-Steuerung für redundante und fehlertolerante Systeme

Doch nicht nur in der IEEE Working Group wurde an der Verbesserung des Standards gearbeitet. Ein Zusammenschluss verschiedener Institutionen und Unternehmen, darunter die CERN-Forschungsorganisation, das GSI-Helmholtz-Zentrum für Schwerionenforschung und die Firma National Instruments, hat den Standard für ihre Anforderungen weiterentwickelt und unter dem Projektnamen „White Rabbit“ [3] veröffentlicht. Die Ziele des White-Rabbit-Projektes waren [4]

  • Genauigkeit der Zeitsynchronisation im Sub-Nanosekundenbereich
  • Tausende von Knoten innerhalb der PTP-Domäne (Precision Time Protocol)
  • mögliche Knotenabstände von mehr als 10 km
  • Ethernet-basiertes Gigabit-Netzwerk mit zuverlässiger Datenübertragung
  • Open-Source Hardware, Firmware und Software
  • handelsübliche Hardware verschiedener Hersteller

Die aktuelle Version 2.0 des White-Rabbit-Standards wurde 2011 unter der „CERN Open Hardware License“ veröffentlicht. Derzeit wird dieser Standard bereits in verschiedenen Projekten eingesetzt. CERN verwendet den Standard für ein Steuerungssystem des „Large Hadron Collider“ und für sein Neutrino-Teleskop KM3Net im Mittelmeer und das GSI-Helmholtz-Zentrum für Schwerionenforschung nutzt es für den Partikel-Beschleuniger FAIR.

Probleme bei der Zeitsynchronisation im Netzwerk

Um den IEEE-1588-Standard besser verstehen zu können, sollte man sich noch mal die Probleme vor Augen führen, wieso eine derartig genaue Zeitsynchronisation so komplex sein kann. Im Grunde bestehen mehrere Probleme:

1. Jede Uhr innerhalb eines Computers ist als Zähler implementiert. Es werden die Takte einer Taktquelle gezählt und über die Frequenz der Taktquelle die Uhrzeit errechnet. Da Taktquellen nie einen konstanten Takt erzeugen können, können auch zwei parallel laufende Taktquellen nie den identischen Takt haben. Somit ist eine Anpassung der Taktfrequenz des Slave an den Master notwendig.

2. Das im Regelfall verwendete Ethernet entspricht weitestgehend IEEE 802.3. Ethernet kann leider keine zeitlich deterministische Verbindung zwischen zwei Rechnern bereitstellen. Die Laufzeiten können von Sendung zu Sendung variieren. Somit können auch die Laufzeiten der Synchronisationsdaten variieren, was zu Fehlern bei der Synchronisation führen kann.

3. Die Laufzeiten innerhalb der Rechner, also in den Treibern und im Network Stack der Betriebssysteme, sind ebenfalls nicht deterministisch. Moderne Betriebssysteme arbeiten mit „Preemptive Scheduling“, das heißt, dass jeder Prozess innerhalb des Betriebssystems unterbrochen werden kann und zu einer anderen Zeit fortgesetzt wird. Somit können Verarbeitungszeiten innerhalb des Betriebssystems nicht mehr deterministisch vorhergesagt werden. Diese Unschärfe führt wiederum zu Fehlern in der Zeitsynchronisation und muss berücksichtigt werden.

4. Als Übertragungsmedium muss ein Konsumgut (Netzwerkkarte, Netzwerk-Chip) verwendet werden. Es müssen die bestehenden Infrastrukturen (Netzwerke) verwendet werden. Es wird also keine eigenständige Hardware für die Zeitsynchronisation verwendet.