„Network Time Protocol“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
Inhalt gelöscht Inhalt hinzugefügt
K Änderungen von 2A10:9D40:2070:0:F14D:A82D:5CFB:3A88 (Diskussion) auf die letzte Version von 193.29.132.4 zurückgesetzt Markierung: Zurücksetzung |
intelligent? wohl kaum |
||
(23 dazwischenliegende Versionen von 14 Benutzern werden nicht angezeigt) | |||
Zeile 3:
|Familie= [[Internetprotokollfamilie]]
|Einsatzfeld= Synchronisierung von Uhren in Computersystemen
|aufbauend auf= [[User Datagram Protocol|UDP]]/[[Transmission Control Protocol|TCP]] (jeweils [[Port (
|Basis zu=
|Einführung=
|entwickelt aus=
|entwickelt zu=
|Version= 4<ref name="RFC5905" />
|Version Datum= Juni 2010
|Vorabversion=
|Vorabversion Datum=
|Entwickler=
|Standard= <nowiki>RFC
}}
Das '''Network Time Protocol''' ('''NTP''') ist ein Standard, um
Im allgemeinen Sprachgebrauch bezeichnet ''NTP'' sowohl das Protokoll als auch die Software-Referenzimplementierung desselben. Das Simple Network Time Protocol ([[#SNTP|SNTP]]) ist eine vereinfachte Version des NTP.
Zeile 23:
[[Datei:Ntp statusmessage.png|mini|400px|Statusmeldung des NTP-Daemons. Spalten v. l. n. r.: Status des ''Peers'' (+: Wird miteinbezogen; *: Aktueller Hauptpeer; -: Wird nicht beachtet); Servername (remote); Zeitquellen-ID, hier die IP des Servers, von dem der Peer die Zeit hat (refid); Stratum des Servers (st); Typ des Servers (u: [[Unicast]]); wann das letzte Mal abgefragt wurde in Sekunden (when); in welchem Intervall der Server abgefragt wird (poll, in Sekunden); wie oft der Server erreicht wurde (reach; 377 heißt, dass die letzten 8 Abfragen erfolgreich waren, ein [[Schieberegister]]); die Laufzeit (Round-Trip-Time) des NTP-Pakets (delay); der Offset der lokalen Uhr gegenüber dem Server (offset, in Millisekunden) und wie stark die abgefragte Zeit schwankt ([[jitter]], Millisekunden)<ref>{{Internetquelle |url=https://www.eecis.udel.edu/~mills/ntp/html/ntpq.html |titel=ntpq – standard NTP query program |abruf=2019-12-01}}</ref>]]
NTP wurde von [[David L. Mills]] an der [[University of Delaware|Universität von Delaware]] entwickelt und 1985 als <nowiki>RFC 958</nowiki><ref>{{RFC-Internet |RFC=958 |Titel=Network Time Protocol (NTP) |Datum=1985 |Kommentar=veraltet}}</ref> veröffentlicht. Seit der Pensionierung von Mills wird die Referenzimplementierung derzeit als [[Open Source|Open-Source]]-Projekt durch die im Jahr 2011 gegründete ''Network Time Foundation'' unter der Leitung von Harlan Stenn gepflegt.<ref name="jZjhj">{{cite web| url=http://www.informationweek.com/cloud/infrastructure-as-a-service/ntp-needs-money-is-a-foundation-the-answer/d/d-id/1319557| title=NTP Needs Money: Is A Foundation The Answer?| work=[[InformationWeek]]| date=2015-03-23| access-date=2015-04-04| archive-url=https://web.archive.org/web/20150410033108/http://www.informationweek.com/cloud/infrastructure-as-a-service/ntp-needs-money-is-a-foundation-the-answer/d/d-id/1319557| archive-date=2015-04-10| url-status=live|language=en}}</ref><ref name="MShrI">{{cite web| url=http://www.informationweek.com/it-life/ntps-fate-hinges-on-father-time/d/d-id/1319432?cmp=em-prog-na-na-newsltr_20150313_control&imm_mid=0ce65e&page_number=2| title=NTP's Fate Hinges On 'Father Time'| work=[[InformationWeek]]| date=2015-03-11| access-date=2015-04-04| archive-url=https://web.archive.org/web/20150410021745/http://www.informationweek.com/it-life/ntps-fate-hinges-on-father-time/d/d-id/1319432?cmp=em-prog-na-na-newsltr_20150313_control&imm_mid=0ce65e&page_number=2| archive-date=2015-04-10| url-status=live|language=en}}</ref>
NTP wurde von David L. Mills an der [[University of Delaware|Universität von Delaware]] entwickelt und 1985 als RFC 958 veröffentlicht. Unter seiner Leitung werden Protokoll und UNIX-Implementierung ständig weiterentwickelt. Gegenwärtig ist die Protokollversion 4<ref>{{Internetquelle |url=https://www.eecis.udel.edu/~mills/ntp/html/release.html |titel=NTP Version 4 Release Notes |abruf=2019-12-01}}</ref> aktuell. Der UDP-[[Port (Protokoll)|Port]] 123 ist für NTP reserviert.▼
▲
NTP ist in [[Unixoides System|UNIX-artigen]] Betriebssystemen in Form des [[Hintergrundprozess]]es ([[daemon]]) ntpd implementiert, der sowohl das lokale System justieren als auch als Server die Zeit für andere Systeme bereitstellen kann. [[Windows]]-Systeme können ebenfalls ohne Zusatzsoftware die genaue Zeit mittels NTP aus dem Internet beziehen ([[Systemsteuerung]] „Datum und Uhrzeit“ / „Internetzeit“) und nach Bearbeitung eines Eintrags in der [[Registrierungsdatenbank]] auch über NTP bereitstellen.<ref>{{Internetquelle |url=https://support.industry.siemens.com/cs/document/22144502/wie-konfigurieren-sie-ihren-pc-als-ntp-server-?dti=0&lc=de-WW |titel=SIOS |abruf=2019-12-01}}</ref>▼
▲NTP ist in [[Unixoides System|UNIX-artigen]] Betriebssystemen in Form des [[Hintergrundprozess]]es ([[daemon]]) ntpd implementiert, der sowohl das lokale System justieren als auch als Server die Zeit für andere Systeme bereitstellen kann. [[Microsoft Windows|Windows]]-Systeme können ebenfalls ohne Zusatzsoftware die genaue Zeit mittels NTP aus dem Internet beziehen ([[Systemsteuerung]] „Datum und Uhrzeit“ / „Internetzeit“, oder Kommando w32tm.exe) und nach Bearbeitung eines Eintrags in der [[Registrierungsdatenbank]] auch über NTP bereitstellen.<ref>{{Internetquelle |url=https://support.industry.siemens.com/cs/document/22144502/wie-konfigurieren-sie-ihren-pc-als-ntp-server-?
{{Anker|PLL}} Der UNIX-ntpd synchronisiert die lokale Uhr mit Hilfe von externen Zeitsignalen, die er entweder direkt von einer lokalen [[Atomuhr]] ([[Caesium]]-Uhr, [[Rubidiumuhr]] usw.) oder einem lokalen Funkempfänger (zum Beispiel [[DCF77]], [[Global Positioning System|GPS]], [[LORAN]]), oder per NTP von einem NTP-Server erhält. Damit die lokale Uhrzeit nicht nur zu den zyklischen Synchronisationszeitpunkten präzise mit dem externen Signal übereinstimmt, korrigiert der ntpd-Prozess nicht nur die Phase, sondern auch die Frequenz des lokalen Zeitgebers mit Hilfe einer Software-[[Phase-locked loop|PLL]] sowie einer Software-[[Frequency Locked Loop|FLL]]. Um den internen Zeitgeber mit Hilfe eines hochpräzisen Sekundensignals noch enger an einen externen Normalzeitempfänger zu koppeln, haben einige UNIX-Varianten (unter anderem [[Linux]] und [[FreeBSD]]) die oben erwähnte Software-PLL im Kernel implementiert.▼
▲{{Anker|PLL}} Der UNIX-ntpd synchronisiert die lokale Uhr mit Hilfe von externen Zeitsignalen, die er entweder direkt von einer lokalen [[Atomuhr]] ([[Caesium]]-Uhr, [[
Die Zeitstempel im NTP (bis v3) sind 64 Bits lang. 32 Bits kodieren die Sekunden seit dem Beginn einer Ära, wobei Ära 0 am 1. Januar 1900, 00:00:00 Uhr begann, weitere 32 Bits den Sekundenbruchteil. Auf diese Weise lässt sich ein Zeitraum von [[Größenordnung (Zeit)#109 s bis 1010 s (31,7 a bis 317 a)|2<sup>32</sup> Sekunden]] (etwa 136 Jahre) mit einer Auflösung von 2<sup>−32</sup> Sekunden (etwa 0,23 Nanosekunden) darstellen. Soweit das Betriebssystem mit einer Genauigkeit von etwa 68 Jahren die grobe Zeit vorgeben kann, genügt theoretisch ein NTP-Zeitstempel, um die exakte Zeit in der richtigen Ära zu erhalten, allerdings wird dies nicht von allen Betriebssystemen korrekt beachtet. Ab NTP v4 kann mit einem 128 Bits umfassenden Zeitstempel auch die Ära übermittelt werden.<ref>{{Internetquelle |url=https://datatracker.ietf.org/doc/html/rfc5905 |titel=RFC 5905 – Network Time Protocol Version 4: Protocol and Algorithms Specification |abruf=2022-08-01}}</ref>▼
▲Die Zeitstempel im NTP (bis v3) sind 64 Bits lang. 32 Bits kodieren die Sekunden seit dem Beginn einer Ära, wobei Ära
NTP nutzt ein hierarchisches System verschiedener ''Strata'' (Plural von ''Stratum''). Als Stratum 0 bezeichnet man das Zeitnormal, beispielsweise eine [[Atomuhr]] oder eine [[Funkuhr]] (Zeitzeichenempfänger via [[Globales Navigationssatellitensystem|GNSS]] oder [[DCF77]]). Die unmittelbar mit ihm gekoppelten NTP-Server heißen Stratum 1. Jede weitere abhängige Einheit erhält bei der Bezeichnung eine höhere Nummer (Stratum 2, Stratum 3 …).<ref>{{Internetquelle |url=https://endruntechnologies.com/products/ntp-time-servers/stratum1 |titel=What is Stratum 1? {{!}} EndRun Technologies |abruf=2019-12-01}}</ref> Die NTP-Software auf Stratum 1, Stratum 2, Stratum 3 usw. ist zugleich Client des darüber liegenden Stratums als auch Server des darunter liegenden Stratums, sofern eines existiert.▼
▲NTP nutzt ein hierarchisches System verschiedener ''Strata'' (Plural von ''Stratum''). Als Stratum 0 bezeichnet man das Zeitnormal, beispielsweise eine [[Atomuhr]] oder eine [[Funkuhr]] (Zeitzeichenempfänger via [[Globales Navigationssatellitensystem|GNSS]] oder [[DCF77]]). Die unmittelbar mit ihm gekoppelten NTP-Server heißen Stratum 1. Jede weitere abhängige Einheit erhält bei der Bezeichnung eine höhere Nummer (Stratum 2, Stratum 3 …).<ref>{{Internetquelle |url=https://endruntechnologies.com/products/ntp-time-servers/stratum1 |titel=What is Stratum 1?
== Fehler, Algorithmus und Genauigkeit ==
Zeile 40 ⟶ 42:
Beide Zeitfehler werden mit verschiedenen Methoden kompensiert.
Die lokalen Abweichungen infolge der [[Verzögerung (Telekommunikation)|Latenzzeit]] der stochastisch bestimmten Übertragungswege werden durch Messverfahren der [[Paketumlaufzeit]] vom Server ([[Berkeley-Algorithmus]]) oder vom Client ([[Algorithmus von Cristian
Die kurzzeitigen pseudo-stochastischen Abweichungen der lokalen Systemuhr können nur durch eine bessere weitere Systemuhr (Frequenznormal) und direkten Empfang von Satellitensignalen ([[Global Positioning System|GPS]]) oder von anderen Zeitnormalen ([[DCF77]]) kompensiert werden.
Zeile 51 ⟶ 53:
== SNTP ==
Das ''Simple Network Time Protocol (SNTP)'' ist eine vereinfachte Version des NTP. Ursprünglich als eigenständiger Standard beginnend mit <nowiki>RFC 1361</nowiki><ref>{{RFC-Internet |RFC=1361 |Titel=Simple Network Time Protocol (SNTP) |Datum=1992-08}}</ref> bis <nowiki>RFC 4330</nowiki>,<ref>{{RFC-Internet |RFC=4330
Der Aufbau des Protokolls ist mit dem von NTP identisch. SNTP-Clients können damit die Zeit auch von NTP-Servern beziehen. Der wesentliche Unterschied liegt in den verwendeten Algorithmen zur Zeitsynchronisation. Während bei NTP die Zeitsynchronisation in der Regel mit mehreren [[Zeitserver]]n erfolgt, wird bei SNTP nur ein Zeitserver verwendet. SNTP verzichtet auch auf die Beeinflussung von Phase und Frequenz des lokalen Zeitgebers.<ref
Ältere Windows-Versionen wie [[Microsoft Windows 2000|Windows 2000]] verwenden SNTP, um die Uhrzeit auf dem lokalen Computer aktuell zu halten. Dies wird durch den Windows-Service W32Time übernommen. In [[Microsoft Windows XP|Windows XP]] und [[Microsoft Windows Server 2003|Windows Server 2003]] wurde die Dynamic-Link-Library W32Time.dll überarbeitet, so dass nun NTP zur Zeitsynchronisation verwendet wird.
Da Microsoft das Verfahren zur Zeitsynchronisation erst mit [[Microsoft Windows 2000|Windows 2000]] einführte, haben einige Softwarehersteller eigenständige Programme zur Zeitsynchronisation unter Windows entwickelt. Moderne Authentifizierungssysteme (wie [[Kerberos (
== Implementierung ==
Neben der Referenz-NTP-Software (ntpd), die auf der NTP-Website für diverse [[Betriebssystem]]e erhältlich ist, bieten eine Reihe von Herstellern fertige Standalone-Lösungen an, die als NTP-Zeitquelle in [[Rechnernetz|Computernetzwerken]] jeder Größe Verwendung finden können.
Einige tausend NTP-Server haben einen [[NTP-Pool]] gebildet.
In den deutschsprachigen Ländern gibt es folgende hauptsächlich verwendete öffentliche NTP-Server:
{| class="wikitable sortable"
|-
! Land !! Pool-Server !! amtliche Metrologie
|-
| Deutschland || de.pool.ntp.org || ptbtime1.ptb.de
|-
| Österreich || at.pool.ntp.org || time.metrologie.at
|-
| Schweiz || ch.pool.ntp.org || ntp.metas.ch
|-
| Liechtenstein || li.pool.ntp.org || ntp.metas.ch
|}
== Protokollalternativen ==
=== PTP ===
Das ''[[Precision Time Protocol]]'' (
Anders als beim Network Time Protocol (NTP) strebt PTP
=== NTS ===
[[Network Time Security]] (NTS) ist ein Netzwerkprotokoll zur [[Kryptographie|kryptographischen]] Absicherung von NTP. NTS wurde von der [[Internet Engineering Task Force]] (IETF) unter Mitarbeit von [[Akamai]], Netnod und der [[Physikalisch-Technische Bundesanstalt|Physikalisch-Technischen Bundesanstalt]] (PTB) entwickelt und am 1. Oktober 2020 im <nowiki>RFC 8915</nowiki><ref>{{RFC-Internet |RFC=8915 |Titel=Network Time Security for the Network Time Protocol |Datum=2020}}</ref> veröffentlicht. Es orientiert sich an den im <nowiki>RFC 7384</nowiki><ref>{{RFC-Internet |RFC=7384 |Titel=Security Requirements of Time Protocols in Packet Switched Networks |Datum=2014-10}}</ref> genannten Sicherheitsanforderungen. Insbesondere gewährleistet NTS [[Authentifizierung|Authentifizierbarkeit]] der Zeitserver, [[Integrität (Informationssicherheit)|Integrität]] und [[Authentizität]] von NTP-Paketen sowie [[Skalierbarkeit]]. Die Genauigkeit der Uhrensynchronisation soll trotz des zusätzlichen [[Overhead (EDV)|Overheads]] von NTS nicht nachteilig beeinflusst werden. Der [[Schlüssel (Kryptologie)|Schlüssel]]<nowiki />austausch basiert auf [[Transport Layer Security|TLS]] 1.3 (<nowiki>RFC 8446</nowiki><ref>{{RFC-Internet |RFC=8446 |Titel=The Transport Layer Security (TLS) Protocol Version 1.3 |Datum=2018-08}}</ref>) und erfolgt [[Liste der
Beispiele für öffentlich erreichbare NTP-Server, die NTS unterstützen, sind:<ref>{{Internetquelle |autor=Marcel Waldvogel |url=https://netfuture.ch/2021/12/transparent-trustworthy-time-with-ntp-and-nts/#server-list |titel=Transparent, Trustworthy Time with NTP and NTS |werk=Netfuture |datum=2021-12-26 |abruf=2022-01-18}}</ref>
{{Mehrspaltige Liste |liste=
* ptbtime1.ptb.de (Deutschland)<ref name="
* ptbtime2.ptb.de (Deutschland)<ref name="
* ptbtime3.ptb.de (Deutschland)<ref name="
*
* europe.pool.ntp.org (Europa)<ref name="PTB" />
* time.cloudflare.com (global)<ref>{{Internetquelle |url=https://www.cloudflare.com/time/ |titel=Cloudflare Time Services |hrsg=[[Cloudflare]] |sprache=en |abruf=2022-01-02}}</ref>
* nts.netnod.se (Schweden)<ref name="
* ntp.3eck.net (Schweiz)<ref>{{Internetquelle |url=https://3eck.net/ |titel=3eck.net public services |hrsg=Genossenschaft Dreieck |sprache=en |abruf=2022-01-18}}</ref>
* ntp.trifence.ch (Schweiz)<ref>{{Internetquelle |url=https://ntp.trifence.ch/ |titel=NTP/NTS Server at ntp.trifence.ch |hrsg=Zeitgitter |sprache=en |abruf=2022-01-18}}</ref>
* ntp.zeitgitter.net (Schweiz)<ref>{{Internetquelle |url=https://ntp.zeitgitter.net/ |titel=NTP/NTS Server at ntp.zeitgitter.net |hrsg=Zeitgitter |sprache=en |abruf=2022-01-18}}</ref>
}}
== Softwarealternativen ==
=== OpenNTPD ===
Im Jahre 2004 präsentierte Henning Brauer die NTP Implementierung OpenNTPD, welche einen Fokus auf Sicherheit legt. Das Protokoll ist kompatibel zu bestehenden NTP-Servern. Ursprünglich ist es für [[OpenBSD]] geschrieben worden, ist jedoch mittlerweile auch als portable Version und als Paket in der Linux-Paketverwaltung verfügbar. OpenNTPD steht in der Kritik, nicht dieselbe Genauigkeit zu bieten wie NTP. Die Abweichungen können hierbei 50–200 ms betragen, OpenBSD bestätigt dies, da es nicht zu den Designzielen gehörte hoch präzise zu sein.<ref>{{Internetquelle |url=https://www.openbsd.org/faq/faq6.html#OpenNTPDaccurate |titel=OpenBSD FAQ: Networking |titelerg=6.12.1 – „But OpenNTPD
=== Ntimed ===
Das NTPD-Programm dient als Zeitserver, Zeitclient und deckt viele weitere Funktionen ab. Da der Quelltext der NTP-Referenzimplementierung mit über 300.000 Zeilen sehr umfangreich ist, fördert die [[Linux Foundation]] mit dem Projekt Ntimed von FreeBSD-Entwickler Poul-Henning Kamp eine Modularisierung. Der Client-Quelltext umfasst ca. 3700 Zeilen. Slave-Server, Refclocks und Protokolle wie [[Precision Time Protocol|PTP]] werden bei Interesse am Projekt ergänzt.<ref
=== NTPsec ===
Zeile 95 ⟶ 116:
=== tlsdate ===
Mit gefälschten NTP-Antworten kann der Schutz des HTTP-Strict-Transport-Security-Protokolls ([[HTTP Strict Transport Security|HSTS]]) von HTTPS umgangen werden. Zudem werden NTP-Server mitunter für Reflection-Angriffe missbraucht, da NTP das verbindungslose [[User Datagram Protocol|UDP]] verwendet. Wenn Angreifer Pakete mit gefälschter Absenderadresse an einen NTP-Server leiten, landet die Antwort beim Opfer. Ist die Antwort größer als die Anfrage, kann man damit [[Denial of Service|Denial-of-Service]]-Angriffe verstärken. Diese und weitere Probleme umgeht das später entstandene TLS-Protokoll, da es ebenfalls Zeitangaben überträgt. Mit dem von [[Jacob Appelbaum]] entwickelten Programm tlsdate übernimmt das TLS-Protokoll auch die Funktion des NTP-Protokolls.<ref
=== chrony ===
Zeile 103 ⟶ 124:
* [[Daytime]] – Zeitübertragung im ASCII-Format
* [[Allan-Varianz]]
* [[Y2K36]]
== Normen und Standards ==
NTP ist als [[Request for Comments]] (RFC) standardisiert:
* {{RFC-Internet |RFC=958 |Titel=Network Time Protocol (NTP) |Datum=1985 |Kommentar=veraltet}}
* {{RFC-Internet
* {{RFC-Internet
* {{RFC-Internet
* {{RFC-Internet
** {{RFC-Internet
**
Ergänzungen:
* {{RFC-Internet |RFC=5906
* {{RFC-Internet |RFC=5907
* {{RFC-Internet |RFC=5908
* {{RFC-Internet |RFC=8915
Spezifische Anwendung-RFC:
* {{RFC-Internet |RFC=2783
== Literatur ==
Zeile 142 ⟶ 160:
|Datum=2021
|Seiten=114
|Kommentar=Inklusive Kommentar zu <nowiki>RFC
|>
|Abruf=2021-01-27}}
Zeile 148 ⟶ 166:
== Weblinks ==
* [https://www.ntp.org/ ntp.org] – NTP-Homepage (englisch)
* [https://www.eecis.udel.edu/~mills/ntp.html ''Dave Mills’ NTP-Homepage''.] eecis.udel.edu (englisch)
* [https://www.meinbergglobal.com/download/ntp/docs/ntp_cheat_sheet.pdf ''NTP Configuration Short Reference''.] (PDF; 315 kB
* [https://support.ntp.org/bin/view/Servers/StratumOneTimeServers ''Liste mit öffentlichen Stratum-1 Zeitservern weltweit''.] support.ntp.org (englisch)
* [https://ncomputers.org/ntptest NTP Server Test Online Tool.] ncomputers.org
* Deutschland:
** [https://www.pool.ntp.org/zone/de ''NTP-Pool Germany – de.pool.ntp.org''] (englisch)
**
** [http://www.hullen.de/helmut/filebox/DCF77/ntpsrvr.html ''Liste von in Deutschland betriebenen NTP-Server'']
* Österreich:
** [https://www.pool.ntp.org/zone/at ''NTP-Pool Austria – at.pool.ntp.org''] (englisch)
** [https://www.metrologie.at/messtechnische-fachbereiche/zeit/zeitsynchronisation-ueber-internet/ ''Zeitsynchronisation über Internet''.]
* Schweiz:
** [https://www.pool.ntp.org/zone/ch ''NTP-Pool Switzerland – ch.pool.ntp.org''] (englisch)
== Einzelnachweise ==
<references
<ref name="RFC5905">
{{RFC-Internet |RFC=5905 |Titel=Network Time Protocol Version 4: Protocol and Algorithms Specification |Datum=2010 |Kommentar=abwärtskompatibel mit <nowiki>RFC 1305</nowiki> für Version 3}}
</ref>
</references>
[[Kategorie:Internet-Anwendungsprotokoll]]
|