Network Time Protocol NTP - Hitech-Blog

Transcription

Network Time Protocol NTP - Hitech-Blog
Network Time Protocol
NTP
Autor: Luca Costa, HTW Chur, luca.costa@tet.htwchur.ch
Dozent: Bruno Wenk, HTW Chur, bruno.wenk@fh-htwchur.ch
Datenkommunikationsprotokolle
HTW Chur
Telekommunikation / Elektrotechnik
TETv06
Inhaltsverzeichnis
1 Network Time Protocol............................................................................................................. 3
1.1 Einleitung ............................................................................................................................. 3
1.2 Funktionsweise der Zeitsynchronisation ............................................................................. 4
1.3 Protokollanalyse mit WireShark .......................................................................................... 5
2 Quellenverzeichnis ................................................................................................................... 8
2.1 Quellen aus dem Internet .................................................................................................... 8
3 Anhang....................................................................................................................................... 8
3.1 Abbildungen......................................................................................................................... 8
19.07.2008
Seite 2 von 8
Luca Costa
Datenkommunikationsprotokolle
HTW Chur
Telekommunikation / Elektrotechnik
TETv06
1 Network Time Protocol
1.1 Einleitung
Das Network Time Protocol (NTP) ist ein Protokoll um die Zeit des Computers und andere
digitale Geräte zu synchronisieren. NTP wurde im Jahr 1985 von David Mills an der Universität
von Delaware entwickelt. Die 3.e Version ist die aktuellste und sie verwendet die
Transportschicht UDP auf dem Port 123. In der Zwischenzeit arbeitet man an die 4.e Version,
aber sie ist noch in Entwicklung. NTP ist im RFC 1305 (V3) [2] vollständig beschrieben.
Momentan gibt es weltweit ~1600 NTP-Servers [3], die die genaue Zeit bereitstellen. Die
meisten Server befinden sich in Europa (940). Die modernsten Betriebssysteme, wie z. B.
Windows XP/Vista und Mac OS X, haben das NTP-Protokoll schon integriert. Wenn eine
Internetverbindung vorhanden ist, kann der Computer die Zeit automatisch synchronisieren.
Dies erfolgt normalerweise ein Mal pro Tag (System unterschiedlich). Die WindowsBetriebssysteme sind standartmässig auf dem NTP-Server „time.windows.com“ eingestellt und
man kann das selbstverständlich ändern. Eine komplette Time-Server-Liste in der Schweiz ist
auf der Homepage Pool NTP [4] zu finden. Am 21. Juni 2008 gab es 41 Aktive NTP-Server.
Abbildung 1: Anzahl NTP-Server in der Schweiz
Auf die Abbildung 1 sieht man die Anzahl aktive und inaktive NTP-Server in der Schweiz
beginnend bei August 2005 bis Juli 2008. In Zukunft werden sicher neue Time-Server
entstehen, um die Belastung zu verteilen (Load balancing).
Die genauere Funktionsweise und Protokollanalyse sind in den nachfolgenden Kapiteln
beschrieben.
19.07.2008
Seite 3 von 8
Luca Costa
Datenkommunikationsprotokolle
HTW Chur
Telekommunikation / Elektrotechnik
TETv06
1.2 Funktionsweise der Zeitsynchronisation
Das Network Time Protocol befindet sich in der Anwendungsschicht (4.e Ebene im TCP/IP
Referenzmodell). Als Transportschicht benutzt es UDP und es ist mit IPv4 und IPv6 kompatibel.
Da bei der Übertragung von IP-Paketen immer eine kleine Verzögerung gibt, hat man den
sogenannten Stratum bezeichnet.
Abbildung 2: NTP-Architektur
Auf die Abbildung 2 sieht man die NTP-Architektur. Ganz oben gibt es die Atom- oder Funkuhr
(die normalerweise in einem Satellit installiert ist). Dann findet man diverse Schichten oder auch
Stratum gennant. Jede Schicht hat eine Verzögerung von ca. 10 bis 100 ms. Das heisst, dass z.
B. bei Stratum 4 eine Verzögerung der Zeitstapels von 40 bis 400 ms geben könnte.
Die Zeitsynchronisation ist im Prinzip sehr einfach, sie erfolgt in zwei Schritten:
1. Der Client (PC) schickt eine Anforderung (Request) an einem NTP-Server.
2. Der NTP-Server verarbeitet die Anforderung (vergleicht den Time Stamp) und antwortet
mit der aktuellen Zeit.
Ab NTP Version 4 werden neue Algorithmen eingesetzt, die die Genauigkeit erhöhen. Man
kann somit die Zeit mit nur einer Verzögerung von 200 us bis 10 ms synchronisieren.
19.07.2008
Seite 4 von 8
Luca Costa
Datenkommunikationsprotokolle
HTW Chur
Telekommunikation / Elektrotechnik
TETv06
1.3 Protokollanalyse mit WireShark
Um die Zeit mit einem öffentlichen Zeitserver zu synchronisieren muss man eine NTP-fähigeSoftware auf dem Computer installiert haben. Es gibt zwei Möglichkeiten; die erste ist eine Time
Synchronisation Software im Internet zu suchen (wie z. B. die kostenlose Software Time-Sync
v1.5 von der Firma Speed-Soft [6]) zu downloaden und zu installieren, oder das eingebaute
Time-Synchronisation-Tool des Betriebssystems zu benutzen. Da ich jetzt mit Windows Vista
arbeite, ist mein Betriebssystem NTP-fähig.
Die zweite Phase für eine erfolgreiche NTP-Verbindung ist einen aktiven NTP-Server zu suchen
und zu einstellen. Bei Windows ist die Standard-Einstellung auf dem Server „time.windows.com“
konfiguriert. Man kann selbstverständlich auch einen anderen Server wählen. Eine komplette
Liste der NTP-Server findet man auf der Homepage von Pool NTP [3]. Ein aktiver Time-Server
in der Schweiz wäre „0.ch.pool.ntp.org“.
Abbildung 3: Internetzeiteinstellungen unter Windows Vista
Auf die Abbildung 3 sieht man eine erfolgreiche Zeit-Synchronisation mit dem Time-Server von
Microsoft.
Abbildung 4: NTP-Verbindung mit einem Server in der Schweiz
Auf die Abbildung 4 sieht man die gleiche Maske wie auf der Abbildung 3. Der Unterschied ist,
dass das Betriebssystem mit einem NTP-Server in der Schweiz synchronisiert wurde.
19.07.2008
Seite 5 von 8
Luca Costa
Datenkommunikationsprotokolle
HTW Chur
Telekommunikation / Elektrotechnik
TETv06
Um das Protokoll zu analysieren habe ich das kostenlose Software WireShark benutzt. Auf die
nächste Abbildung sieht man das Resultat einer Zeit-Synchronisation mit dem Server von
Microsoft.
Abbildung 5: Ergebnis mit WireShark
Wie auf der Abbildung 5 zu sehen ist, hat mein Computer die lokale IP-Adresse „192.168.1.37“
und der Time-Server hat die öffentliche Adresse „207.46.197.32“. Das angewendete Protokoll,
wie schon gesagt, ist NTP. Als zusätzliche Info wird gezeigt, ob es um einen Client oder einen
Server sich handelt.
Unter das Menü „Statistics -> Flow Graph“ gibt es eine graphische Darstellung des
Informationenaustausches.
Abbildung 6: Graphische Darstellung
Auf die Abbildung 6 sieht man, dass es zwei Informationen ausgetauscht wurden. Die erste ist
ein Request des Clients, und die zweite ist die Antwort des Servers. Der Zeitunterschied
zwischen Abfrage und Antwort beträgt 214 ms.
Mit WireShark kann man zusätzlich den Inhalt des Pakets herauslesen. Der Inhalt der NTPClient sieht folgendermassen aus:
Frame 31 (90 bytes on wire, 90 bytes captured)
Ethernet II, Src: HonHaiPr_14:7b:93 (00:1c:25:14:7b:93), Dst: ZyxelCom_3e:74:82
(00:a0:c5:3e:74:82)
Internet Protocol, Src: 192.168.1.37 (192.168.1.37), Dst: 207.46.197.32 (207.46.197.32)
User Datagram Protocol, Src Port: ntp (123), Dst Port: ntp (123)
Network Time Protocol
Flags: 0xdb
Peer Clock Stratum: unspecified or unavailable (0)
Peer Polling Interval: invalid (17)
Peer Clock Precision: 0.015625 sec
Root Delay:
0.3386 sec
Root Dispersion:
8.8912 sec
Reference Clock ID: NULL
Reference Clock Update Time: Jun 19, 2008 15:51:39.6902 UTC
Originate Time Stamp: NULL
Receive Time Stamp: NULL
Transmit Time Stamp: Jun 22, 2008 14:23:13.8912 UTC
Es gibt verschiedene Parametern. Unter Flags findet man die verwendete NTP-Version. In
diesem Fall ist sie die 3.e (Man sieht’s in der obenstehenden Tabelle nicht, weil sie unter der
Kategorie Flags versteckt ist). Dann gibt es noch die Präzision (Precision), eine Verzögerung
19.07.2008
Seite 6 von 8
Luca Costa
Datenkommunikationsprotokolle
HTW Chur
Telekommunikation / Elektrotechnik
TETv06
(Root Delay) und diverse Zeitstempel (Time Stamp) um die lokale Zeit mit der Serverzeit zu
vergleichen.
Der Inhalt der Antwort des NTP-Servers sieht folgendermassen aus:
Frame 32 (90 bytes on wire, 90 bytes captured)
Ethernet II, Src: ZyxelCom_3e:74:82 (00:a0:c5:3e:74:82), Dst: HonHaiPr_14:7b:93
(00:1c:25:14:7b:93)
Internet Protocol, Src: 207.46.197.32 (207.46.197.32), Dst: 192.168.1.37 (192.168.1.37)
User Datagram Protocol, Src Port: ntp (123), Dst Port: ntp (123)
Network Time Protocol
Flags: 0x1c
Peer Clock Stratum: secondary reference (3)
Peer Polling Interval: invalid (17)
Peer Clock Precision: 0.015625 sec
Root Delay:
0.1050 sec
Root Dispersion:
0.0699 sec
Reference Clock ID: 209.124.61.102
Reference Clock Update Time: Jun 22, 2008 14:20:00.9845 UTC
Originate Time Stamp: Jun 22, 2008 14:23:13.8912 UTC
Receive Time Stamp: Jun 22, 2008 14:23:11.0775 UTC
Transmit Time Stamp: Jun 22, 2008 14:23:11.0775 UTC
Hier gibt’s auch verschiedenen Parametern. Wichtig ist das Letzte (Transmit Time Stamp), wo
die aktuellste Zeit steht. Diese Zeit wird dann an den Client übertragen.
Ein wichtiger Begriff, dass häufig vorkommt, ist UTC, der die aktuelle Weltzeit entspricht. Die
Erde ist in Zeitzonen virtuell unterteilt und jede dieser Zonen hat eine positive oder negative
Abweichung zur aktuellen Weltzeit. Der „Null“-Punkt ist Greenwich. Die Schweiz ist z. B.
UTC+1, also eine Stunde nachher verschoben.
19.07.2008
Seite 7 von 8
Luca Costa
Datenkommunikationsprotokolle
HTW Chur
Telekommunikation / Elektrotechnik
TETv06
2 Quellenverzeichnis
2.1 Quellen aus dem Internet
[1]
Network Time Protocol
[http://de.wikipedia.org/wiki/Network_Time_Protocol], 2008
[2]
RFC 1305 – Network Time Protocol (Version 3)
[http://tools.ietf.org/html/rfc1305], 2008
[3]
The internet cluster of NTP servers
[http://www.pool.ntp.org/], 2008
[4]
Time Servers in Switzerland
[http://www.pool.ntp.org/zone/ch], 2008
[5]
Abbildung 2: NTP-Architektur
[http://upload.wikimedia.org/wikipedia/commons/9/9d/Architecture_NTP_labels_de.svg],
2008, Author Roland Geider
[6]
Speed Soft
[http://www.speed-soft.de], 2008
3 Anhang
3.1 Abbildungen
Abbildung 1: Anzahl NTP-Server in der Schweiz .......................................................................... 3
Abbildung 2: NTP-Architektur ........................................................................................................ 4
Abbildung 3: Internetzeiteinstellungen unter Windows Vista ......................................................... 5
Abbildung 4: NTP-Verbindung mit einem Server in der Schweiz .................................................. 5
Abbildung 5: Ergebnis mit WireShark ............................................................................................ 6
Abbildung 6: Graphische Darstellung ............................................................................................ 6
19.07.2008
Seite 8 von 8
Luca Costa