Underhålla exakt tid på dina datorer
Postat av Richard N Williams on Januari 15th, 2008
Alla datorer och nätverksenheter använder klockor för att upprätthålla en intern systemtid. Dessa klockor, som kallas Real Time Clock chips (RTC), ger information om tid och datum. Flisorna är batteribackade, så att de även under strömavbrott kan behålla tiden. Personliga datorer är dock inte konstruerade för att vara perfekta klockor, deras design har optimerats för massproduktion och låg kostnad snarare än att behålla korrekt tid.
Dessa interna klockor är benägna att driva och även om det för många applikationer kan vara ganska adekvat, måste maskiner ofta arbeta tillsammans i ett nätverk och om datorerna går i olika takt kommer datorerna att synkronisera varandra och problem kan uppstå särskilt med tidskänsliga transaktioner.
Network Time Protocol (NTP) är ett av Internetens äldsta protokoll som fortfarande används, uppfunnet av Dr David Mills från University of Delaware, det har använts sedan 1985. NTP är ett protokoll som är utformat för att synkronisera klockorna på datorer och nätverk över Internet eller lokala nätverk (LAN).
NTP (version 4) kan upprätthålla tiden över det publika Internet till inom 10 millisekunder (1 / 100th av en sekund) och kan utföra ännu bättre över LAN med noggrannhet 200 mikrosekunder (1 / 5000th av en sekund) under idealiska förhållanden.
NTP arbetar inom TCP / IP och förlitar sig på UDP, finns ett mindre komplex form av NTP kallas Simple Network Time Protocol (SNTP) som inte kräver lagring av information om tidigare kommunikation, som behövs av NTP. Det används i vissa enheter och applikationer där hög noggrannhet timing är inte lika viktigt.
Många operativsystem inklusive Windows, UNIX och LINUX kan använda NTP och SNTP och tidssynkronisering med NTP är relativt enkel, det synkroniserar tiden med hänvisning till en tillförlitlig klockkälla. Denna källa kan vara relativ (en dators interna klocka eller tiden på armbandsur) eller absolut (en UTC - Universal Coordinated Time-källa som är exakt som möjligt).
Alla Microsoft Windows-versioner sedan 2000 inkluderar Windows tidstjänst (w32time.exe), som har förmågan att synkronisera datorns klocka till en NTP-server.
Det finns ett stort antal Internet-hostade NTP-servrar som synkroniseras med externa UTC-referenser som time.nist.gov eller ntp.my-inbox.co.uk men det måste noteras att Microsoft och andra rekommenderar att en extern källa används för att synkronisera dina maskiner, eftersom Internetbaserade referenser inte kan verifieras. Specialistiska NTP-tidsservrar finns tillgängliga som kan synkronisera tiden på nätverk med hjälp av antingen MSF (eller motsvarande) eller GPS-signal.
De mest använda är GPS-tidsservrarna som använder GPS-systemet för att reläera exakt tid. GPS-systemet består av ett antal satelliter som ger korrekt positionering och platsinformation. Varje GPS-satellit kan bara göra detta genom att använda en atomur som i sin tur kan användas som en referensreferens.
En typisk GPS-mottagare kan tillhandahålla tidsinformation till inom några få nanosekunder av UTC så länge som det finns en antenn belägen med en god sikt mot himlen.
Det finns ett antal nationella tid- och frekvensradioöverföringar som kan användas för att synkronisera en NTP-server. I Storbritannien sänds signalen (kallad MSF) av National Physics Laboratory i Cumbria som fungerar som Förenade kungarikets nationella tidsreferens. Det finns också liknande system i Colorado, USA (WWVB) och i Frankfurt, Tyskland (DCF-77). Dessa signaler ger UTC-tid till en noggrannhet av 100-mikrosekunder, men radiosignalen har ett begränsat intervall och är sårbart för störningar.