Computerzeitstempel mit NTP verstehen
Geschrieben von Richard N Williams on September 8th, 2008
Die Art und Weise, wie ein Computer mit der Zeit umgeht, ist völlig anders als die Art, wie Menschen sie wahrnehmen. Wir ordnen die Zeit in Sekunden, Minuten, Stunden, Tage, Wochen, Monate und Jahre ein, während Computer die Zeit als eine einzelne Zahl anordnen, die die Sekunden darstellt, die von einem einzigen Zeitpunkt, der sogenannten Primepoche, verstrichen sind.
Die meisten Computer benutzen NTP (Network Time Protocol), um mit der Zeit und in Netzwerken umzugehen, werden viele mit einem dedizierten NTP-Zeitserver synchronisiert. NTP weiß nichts über Tage, Jahre oder Jahrhunderte, nur die Sekunden aus der Blütezeit. Diese Primärepoche wird (um die meisten Systeme) um Mitternacht um die Jahrhundertwende gesetzt, die für einen Menschen als etwas wie: 00: 00 - 01,01,1900 aufgezeichnet würde.
Computer hingegen zählen die Zeit als die Anzahl der Sekunden nach diesem Punkt. Wenn ein Computer in 1900 seinen Zeitstempel am Mitternacht Januar 1 wäre 0, während in 1972 am gleichen Datum wäre der Zeitstempel 2,272,060,800, die die Anzahl der Sekunden seit 1900 darstellt.
Die Zeitstempel starten alle 136-Jahre mit dem nächsten in 2036 fälligen Wrap-Around neu. Dies hat bei einigen, die ein Millennium-Bug-Szenario fürchten, Unbehagen verursacht, obwohl die meisten Zweifel bestehen, wenn ein Umlauf des Zeitstempels auftritt Es wird eine Ganzzahl vom Typ "ina" hinzugefügt (+ 1), damit Computer Zeitspannen verarbeiten können, die mehr als einen Umlauf abdecken. Wenn Computer und NTP sich mit der Zeit beschäftigen müssen, die vor der Primepoche liegt, wird eine negative Ganzzahl verwendet (für das Jahr 1500 wird ein -3 verwendet, um drei Zyklen von 136 Jahren darzustellen).
Zeitstempel werden in praktisch jeder Transaktion verwendet, die moderne Computer ausführen müssen, wie das Senden von E-Mails, das Debuggen und Programmieren. Da die Zeit linear ist, weiß ein Computer, dass jeder Zeitstempel immer größer als der vorherige ist, und daher finden Computer und NTP es schwierig, mit Ungenauigkeiten in der Zeit umzugehen, insbesondere wenn die Zeit plötzlich scheint, rückwärts zu gehen.
Dies kann passieren, wenn Computer nicht zur selben Zeit synchronisiert sind. Wenn eine E-Mail an einen Computer mit einer langsameren Uhr gesendet wird, scheint es, dass der Computer empfangen wurde, bevor er gesendet wurde. Der Mangel an Synchronisation kann ernsthafte Probleme verursachen und kann sogar ein System anfällig für bösartige Angriffe und sogar Betrug machen.
Aus diesem Grund sind die meisten Computernetzwerke auf UTC (Coordinated Universal Time) synchronisiert. UTC ist eine globale Zeitskala und für jeden weltweit die gleiche Zeit, die von Atomuhren erzählt wird, die sehr genau sind und in Millionen von Jahren keine Sekunde gewinnen oder verlieren.
Die meisten Computernetzwerke verwenden eine dedizierte NTP Zeitserver um eine UTC-Zeit zu erhalten, um auch ihre Computer zu synchronisieren. UTC ist über das Internet (wenn auch ungesichert), über das GPS-Netzwerk (Global Positioning System) oder über den Empfang von nationalen Zeit- und Frequenzsendungen über Langwellen verfügbar.
NTP synchronisiert einen Computer, indem die empfangene UTC-Zeit überprüft und der Zeitstempel eines Computers so lange hinzugefügt oder gehalten wird, bis er perfekt mit UTC übereinstimmt. Durch die Verwendung eines dedizierten NTP-Zeitservers kann die UTC in einem Netzwerk auf einige Millisekunden der UTC-Zeit aufrechterhalten werden.