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 redigera

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 redigera

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 redigera

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.

Källor redigera