Keeping Time with Network Time Protocol
Gepost door Richard N Williams on April 30th, 2012
Als het gaat om netwerk tijd synchronisatie, Network Time Protocol (NTP) is verreweg het meest gebruikte softwareprotocol. Of het nu gaat om het synchroniseren van een netwerk van honderden of duizenden machines, of om het draaien van een enkele machine, NTP biedt de oplossing. Zonder NTP en de NTP-server, veel van de taken die we uitvoeren op het internet, van winkelen tot online bankieren, zou gewoonweg niet mogelijk zijn.
Synchronisatie is van vitaal belang voor netwerken die via internet werken. Zonder synchronisatie zou er chaos zijn. Stel je voor dat iemand vijf minuten voordat het werd verzonden een e-mail ontving van iemand anders of geld overmaakte naar een gebruiker wiens machine zegt dat het geld is weggegaan voordat het arriveerde.
Coordinated Universal Time
Om al deze problemen te voorkomen, wordt een enkele, universele tijdschaal op internet gebruikt, wat hetzelfde is, ongeacht in welke tijdzone een machine zich bevindt. Coordinated Universal Time (UTC) wordt bestuurd door atoomklokken, dus het is zeer nauwkeurig en stabiel.
Voor computernetwerken die UTC ontvangen, gebruiken ze NTP-servers, die de tijdbron van het GPS-netwerk ontvangen (Global Positioning System), radio-uitzendingen of van internet zelf. Eenmaal ontvangen, is het aan NTP om de meester-tijdbron te nemen en deze rond een netwerk te verdelen om synchroniciteit te verzekeren.
Network Time Protocol Explained
NTP is een van de oudste protocollen in computing. Het dateert van toen het internet nog in de kinderschoenen stond, maar het is aangepast en aangepast om te zorgen dat het nog steeds relevant is. In wezen is NTP een algoritme dat is ontworpen om de timing op afzonderlijke computers te beoordelen en deze te vergelijken met de UTC-tijdbron. Als NTP vindt en verschillen, past het de klok op het overtredende apparaat aan om ervoor te zorgen dat het overeenkomt. NTP doet dit met zo'n nauwkeurigheid dat een netwerk van duizend machines allemaal binnen enkele milliseconden van elkaar kunnen worden gesynchroniseerd.
NTP neemt een hiërarchisch systeem aan. In plaats van dat elk apparaat op een netwerk wordt gecontroleerd met de NTP-server en de UTC-tijdbron, staat het protocol toe dat de machines die zich het dichtst bij de server bevinden, worden gebruikt als referentie naar lager gelegen machines. Dit vermijdt een toevloed van verkeer naar de NTP-server en staat een enkel apparaat toe om de synchronisatie te handhaven in een netwerk van honderden of zelfs duizenden apparaten.
Leap seconden
Een van de grootste uitdagingen waar NTP voor staat bij het gebruik van UTC als tijdbron, is dat deze universele tijd zo nu en dan wordt aangepast om de correlatie met de rotatie van de aarde te behouden. Omdat de planeet ooit zo lichtjes vertraagt, zijn de atoomklokken die UTC regelen moiré nauwkeurig dat de planeet zelf, dus een occasionele seconde wordt een of twee keer per jaar toegevoegd om ervoor te zorgen dat er geen drift is van dag naar nacht (hoewel een dergelijk proces zou miljoenen jaren duren).
Deze incrementele wijzigingen staan bekend als Schiet seconden en worden geïdentificeerd in de signalen die naar de meeste NTP-servers worden verzonden. Wanneer NTP ontdekt dat een schrikkelseconde is toegevoegd, past het automatisch alle apparaten in een netwerk aan door een seconde te herhalen. Het niet aanpassen voor deze schrikkelseconden zou ertoe leiden dat het netwerk geleidelijk van UTC afdrijft en niet meer synchroon loopt met de rest van de internetgemeenschap.