Beaucoup d’entre nous ont eu des problèmes occasionnels avec nos ordinateurs et autres appareils conservant des paramètres d’heure précis, mais une synchronisation rapide avec un serveur NTP rend tout bien à nouveau. Mais si nos propres appareils peuvent perdre en précision, comment les serveurs NTP parviennent-ils à rester aussi précis?
La question
Le lecteur SuperUser Frank Thornton veut savoir comment les serveurs NTP peuvent rester aussi précis:
J’ai remarqué que sur mes serveurs et autres machines, les horloges dérivent toujours de sorte qu’elles doivent se synchroniser pour rester précises. Comment les horloges du serveur NTP évitent-elles de dériver et restent-elles toujours aussi précises?
Comment les serveurs NTP parviennent-ils à rester aussi précis?
La réponse
Michael Kjorling, contributeur SuperUser, a la réponse pour nous:
Les serveurs NTP s’appuient sur des horloges très précises pour un chronométrage précis. Une source de temps commune pour les serveurs NTP centraux sont les horloges atomiques ou les récepteurs GPS (rappelez-vous que les satellites GPS ont des horloges atomiques à bord). Ces horloges sont définies comme précises car elles fournissent une référence de temps très exacte.
Il n’y a rien de magique dans le GPS ou les horloges atomiques qui vous permettent de vous dire exactement quelle heure il est. En raison de la façon dont les horloges atomiques fonctionnent, elles sont tout simplement très bonnes pour, une fois qu’on leur a dit l’heure, l’heure exacte (depuis le second est défini en termes d’effets atomiques). En fait, il convient de noter que L’heure GPS est distincte de l’heure UTC que nous sommes plus habitués à voir. Ces horloges atomiques sont à leur tour synchronisées contre Heure atomique internationale ou TAI afin non seulement de dire avec précision le passage du temps, mais aussi le temps.
Une fois que vous avez une heure exacte sur un système connecté à un réseau comme Internet, c’est une question d’ingénierie de protocole permettant le transfert d’heures précises entre les hôtes sur un réseau peu fiable. À cet égard, un serveur NTP Stratum 2 (ou plus éloigné de la source de temps réelle) n’est pas différent de la synchronisation de votre système de bureau avec un ensemble de serveurs NTP.
Au moment où vous avez quelques heures précises (obtenues à partir de serveurs NTP ou ailleurs) et que vous connaissez le taux d’avancement de votre horloge locale (ce qui est facile à déterminer), vous pouvez calculer le taux de dérive de votre horloge locale par rapport au « supposé précis » passage du temps. Une fois verrouillée, cette valeur peut ensuite être utilisée pour ajuster en continu l’horloge locale pour lui faire rapporter des valeurs très proches du passage précis du temps, même si l’horloge locale en temps réel elle-même est très imprécise. Tant que votre horloge locale n’est pas très haute, cela devrait vous permettre de garder une heure précise pendant un certain temps, même si votre source de temps en amont devient indisponible pour une raison quelconque.
Certaines implémentations de client NTP (probablement la plupart des implémentations de démon ntpd ou de service système) le font, et d’autres (comme le compagnon de ntpd ntpdate qui règle simplement l’horloge une fois) ne le font pas. Ceci est communément appelé a car il stocke en permanence une mesure de la dérive d’horloge, mais à proprement parler, il n’est pas nécessaire de le stocker en tant que fichier spécifique sur le disque.
Dans NTP, la strate 0 est par définition une source de temps précise. La strate 1 est un système qui utilise une source de temps de strate 0 comme source de temps (et est donc légèrement moins précise que la source de temps de strate 0). La strate 2 est encore une fois légèrement moins précise que la strate 1 car elle synchronise son heure avec la source de la strate 1 et ainsi de suite. En pratique, cette perte de précision est si faible qu’elle est complètement négligeable dans tous les cas sauf les plus extrêmes.
Avez-vous quelque chose à ajouter à l’explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d’autres utilisateurs de Stack Exchange férus de technologie? Consultez le fil de discussion complet ici.