Network Time Protocol NTP Autor: Luca Costa, HTW Chur, [email protected] Dozent: Bruno Wenk, HTW Chur, [email protected] 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