Introduktion till Network Time Protocol
Postat av Stuart on September 8th, 2008
Network Time Protocol (NTP) är ett av Internetets äldsta protokoll som fortfarande används. Utvecklat av Dr David Mills från Delaware University, det har varit i ständig användning och kontinuerligt uppdaterad sedan 1985. NTP är ett protokoll som är utformat för att synkronisera klockorna på datorer och nätverk över Internet eller lokala eller bredare nätverk (LAN / WANS).
I en modern global ekonomi är tidssynkronisering avgörande för att genomföra tidskänsliga transaktioner som att boka en flygbiljett för att bjuda på en auktionswebbplats. Om klockor inte synkroniserades samtidigt kan du hitta ditt flygbolagssäte såldt efter att du köpt det och Ebays administratörer skulle inte kunna upptäcka vars bud det var senast.
NTP är ett multi-tierat system, varje nivå kallas ett stratum. Servrar på varje nivå kommunicerar med varandra (peer) och ger tid till lägre lag. Servrar på översta stratum, stratum 1 ansluter till en atomur antingen via Internet eller via en radio eller GPS-mottagare medan en stratum 2-server ansluts till ett stratum 1.
NTP använder en algoritm (Marzullos algoritm) för att synkronisera tiden på ett nätverk med hjälp av tidsskala som UTC (Coordinated Universal Time eller Temps Universel Coordonné) och kan stödja sådana funktioner som språng sekunder - läggas till för att kompensera för saktning av jordens rotation.
NTP (version 4 är den senaste) kan hålla tiden över det offentliga Internetet inom 10 millisekunder (1 / 100th av en sekund) och kan utföra ännu bättre över LAN med noggrannhet av 200 mikrosekunder (1 / 5000th av en sekund) under idealiska förhållanden .
NTP-tidsservrar arbeta inom TCP / IP-paketet och förlita sig på UDP (User Datagram Protocol). En mindre komplex form av NTP som kallas Simple Network Time Protocol (SNTP) som inte kräver lagring av information om tidigare kommunikationer, som behövs av NTP, används i vissa enheter och applikationer där hög precisionstidpunkt inte är lika viktig och ingår också som standard i Windows-programvara (även om nyare versioner av Microsoft Windows har hela NTP installerat och källkoden är ledig och tillgänglig på Internet).
NTP-programmet (känt som en demon på UNIX och en tjänst på Windows) körs i bakgrunden och vägrar att tro på den tid det berättas förrän flera utbyten har ägt rum, och passerar varje uppsättning test. Om svaren från en server uppfyller dessa "protokollspecifikationer" accepteras servern. Det tar vanligtvis cirka fem bra exempel (fem minuter) tills en NTP-server accepteras som en källa för synkronisering.
Synkronisering med NTP är relativt enkelt, det synkroniserar tid med hänvisning till en pålitlig klockkälla, såsom en atomklocka, även om dessa är extremt dyra och är endast i allmänhet återfinns i storskaliga fysik laboratorier emellertid NTP kan antingen använda Global Positioning (GPS) nätverk eller specialist radioöverföring för att ta emot UTC-tid ur dessa klockor.
En förenklad version av NTP som kallas Simple Network Time Protocol (SNTP) existerar som inte kräver lagring av information om tidigare kommunikationer som krävs av NTP. Den används i vissa enheter och applikationer där hög precisionstidpunkt inte är lika viktig och installeras på äldre versioner av Microsoft Windows. Windows eftersom 2000 har inkluderat Windows Time Service (w32time.exe) som använder SNTP för att synkronisera datorns klocka. NTP finns även på UNIX och LINUX (ladda ner via NTP.org).