Network Time Protocol

NTP eller Network Time Protocol är ett protokoll för att synkronisera tiden i ett nätverk med varierande svarstider. Det är speciellt designat för att motstå effekterna av varierande lagg (jitter). NTP använder UDP-porten 123 som sitt transportskikt.

NTP skapades av Dave Millis från University of Delaware, och släpptes 1984[1] och är ett av de äldsta protokollen som fortfarande används idag. Han har sedan fortsatt underhålla protokollet med ett team av frivilliga personer.

Överblick

NTP använder Marzullos algoritm med tidsformatet UTC och har stöd för flera funktioner . En sådan funktion är tillägg av skottsekunder. NTPv4 kan normalt uppehålla en hastighet inom 10 millisekunder över internet och uppnå en noggrannhet av 200 mikrosekunder eller bättre i ett lokalt nätverk under ideala förhållanden.

En så kallad ”NTP Unix daemon” är en process som körs oavbrutet på en maskin med stöd för NTP och det mesta av protokollet är implementerat i denna process. För att få den bästa prestandan från NTP är det viktigt att ha en PLL-krets på operativsystemskärnan, istället för att bara använda den externa NTP daemon – alla de senaste versionerna av Linux, BSD och Solaris operativsystem har sådant stöd.

Ett mindre avancerat alternativ till NTP kallas Simple Network Time Protocol (SNTP). Den kräver ingen lagring av information om skapade förbindelser och kan användas när man inte behöver exaktheten hos NTP.

Gula pilar visar direkta förbindelser, röda pilar visar nätverksanslutningar.

Clock strata

NTP använder ett hierarkiskt system för att skapa bättre kommunikation, vilket kallas för ”clock strata”. Dessa strata innefattar:

Stratum 0 är enheter så som atomur, GPS-klockor och andra former av radiobaserade klockor. Detta är högsta nivån i hierarkin.

Stratum 1 kallas även för primära NTP-servrar. Stratum 1-servrar hämtar sin tid från stratum 0-enheter via direktkopplingar, så som RS-232.

Stratum 2 kallas även för sekundära NTP-servrar. Dessa hämtar sin tid från stratum 1-servrarna, det vill säga från de primära servrarna.

Stratum 3 hämtar sin tid från stratum 2-servrar och fungerar på samma sätt som en stratum 2-server i övrigt. Andra servrar kan i sin tur hämta tid från en stratum 3-server.

För varje nivå minskar exaktheten något, dock knappt märkbart för normal användning. Sexton är den maximala strata-nivån för NTP version 4[2]

NTP i Sverige

1993 etablerades en svensk NTP-server via företaget STUPI AB. Televerket/Telia hade tidigare krävt 100 000 USD per år för samma tjänst men STUPI lyckades ordna detta för en startkostnad om 5000 USD. Då Telia själva började använda nättjänsten men inte önskade betala samma belopp för sitt användande så blev Telias nät spärrat med BGP-filtrering.[3]

Statens Provningsanstalt erbjuder idag NTP-tjänster via ett flertal servrar.

Sedan 2022 förvaltar Netnod, på uppdrag av PTS, det svenska systemet för spårbar tid och frekvens[4]. Deras ntp-servrar hittar man på https://www.netnod.se/ntp/connect-to-ntp-servers. För den som är oroad över attacker via ntp så finns numera NTS som gör det möjligt att veta att ingen sitter som "man in the middle" och skickar felaktig tid. Information om nts och tillgängliga servrar finns hos Netnod.

Källor

Media som används på denna webbplats

Network Time Protocol servers and clients.svg
A diagram showing the relationships between the various levels of NTP servers. The blue numbers are the stratum numbers; yellow arrows show a direct connection, such as RS-232, while red arrows show a network connection.
Wooden hourglass 3.jpg
Författare/Upphovsman: User:S Sepp, Licens: CC BY-SA 3.0
Alternative version of image:Wooden hourglass 2.jpg. Wooden hourglass. Total height:25 cm. Wooden disk diameter: 11.5 cm. Running time of the hourglass: 1 hour. Hourglass in other languages: 'timglas' (Swedishrtrttttyo), 'sanduhr' (German), 'sablier' (French), 'reloj de arena' (Spanish), 'zandloper' (Dutch), 'klepsydra' (Polish), 'přesýpací hodiny' (Czech), 'ampulheta' (Portuguese), 'κλεψύδρα' klepsydra (Greek).