J'ai remarqué que sur mes serveurs et d'autres machines, l'horloge a toujours tendance à dériver, donc elle doit se synchroniser pour rester précise.
Comment les horloges des serveurs NTP ne dérivent-elles pas et restent-elles toujours correctes?
J'ai remarqué que sur mes serveurs et d'autres machines, l'horloge a toujours tendance à dériver, donc elle doit se synchroniser pour rester précise.
Comment les horloges des serveurs NTP ne dérivent-elles pas et restent-elles toujours correctes?
Les serveurs NTP reposent sur des horloges très précises pour une synchronisation horaire précise. Une source de temps commune pour les serveurs NTP centraux est 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 temporelle très précise. Il n'y a rien de magique à propos du GPS ou des horloges atomiques qui leur permettent de vous dire exactement quelle heure il est; en raison du fonctionnement des horloges atomiques, elles sont simplement très bonnes pour, une fois qu'on leur a dit quelle heure il est, continuer à donner l'heure précise (puisque la seconde est définie en termes d'effets atomiques). En fait, il convient de noter que l'heure du GPS est distincte de l'UTC que nous avons l'habitude de voir. Ces horloges atomiques sont à leur tour synchronisées avec le Temps Atomique International ou TAI afin de non seulement indiquer précisément l'écoulement du temps mais aussi _l'_heure.
Une fois que vous avez une heure exacte sur un système connecté à un réseau comme Internet, il s'agit d'une ingénierie de protocole permettant le transfert d'horaires précises entre les hôtes sur un réseau non fiable. À cet égard, un serveur NTP de strate 2 (ou plus éloigné de la source de temps réelle) n'est pas différent de votre système de bureau synchronisant sur un ensemble de serveurs NTP.
À partir du moment où vous avez quelques horaires exacts (obtenus à partir de serveurs NTP ou d'ailleurs) et connaissez la vitesse 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 passage du temps "précisément cru". Une fois verrouillée, cette valeur peut ensuite être utilisée pour ajuster continuellement l'horloge locale afin qu'elle affiche des valeurs très proches du passage précis du temps, même si l'horloge en temps réel locale elle-même est très imprécise; tant que votre horloge locale n'est pas très erratique, cela devrait 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 clients NTP (probablement la plupart des démons ntpd
ou des services système) font cela, et d'autres (comme le compagnon de ntpd ntpdate
qui se contente de définir l'horloge une seule fois) ne le font pas. Cela est communément appelé un fichier de dérive car il stocke de manière persistante une mesure de la dérive de l'horloge, mais strictement parlant, il n'a pas à être stocké en tant que fichier spécifique sur le disque.
Dans le protocole NTP, la strate 0 est par définition une source horaire 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écis que la source de temps de strate 0). La strate 2 est à nouveau légèrement moins précise que la strate 1 car elle synchronise son temps par rapport à la source de strate 1. Et ainsi de suite. En pratique, cette perte de précision est tellement petite qu'elle est totalement négligeable sauf dans les cas les plus extrêmes.
Dans la synchronisation du temps en réseau, la spécification qui vous indique comment un serveur obtient sa source de temps est appelée un Niveau de Strate. Plus le niveau est bas, meilleure est la synchronisation de ce serveur.
Les dispositifs de niveau 0 ne sont pas directement connectés au réseau. Il s'agit de l'appareil de chronométrage réel lui-même, qui doit être connecté à un ordinateur pour obtenir le temps exact. Cet ordinateur devient alors un serveur NTP de niveau 1.
Un ordinateur se connectant à un serveur de niveau 1 peut également devenir un serveur de temps, mais il serait alors de niveau 2. En se connectant à des serveurs de temps, plus votre niveau de strate est bas, plus votre synchronisation du temps peut être précise.
Les dispositifs de niveau 0 incluent les horloges atomiques participant au TAI (temps atomique international) ou synchronisées à celui-ci, ainsi que les récepteurs de signal horaire envoyés par une telle horloge. Il s'agit le plus souvent de récepteurs de temps GPS avec une interface appropriée incluant le signal GPS PPS. Ce signal PPS, lorsque le GPS est bien verrouillé sur plusieurs satellites, envoie une impulsion par seconde, et le front montant de cette impulsion est à quelques nanosecondes du début réel de cette seconde. En fonction de la spécification du récepteur GPS, le signal PPS peut être plus ou moins précis. C'est parce que chaque satellite GPS possède une horloge atomique. Une fois que le récepteur GPS a trouvé sa propre position et l'emplacement des satellites GPS auxquels il est connecté, il peut corriger la propagation RF et vous donner une heure presque aussi précise qu'une horloge atomique située juste à côté du récepteur GPS.
Ainsi, les serveurs de niveau 1 se connectent aux horloges atomiques ou aux récepteurs GPS, et les serveurs NTP se connectent à eux. Même en se connectant à un serveur de niveau 2 ou 3 avec des ajustements fréquents, votre ordinateur bénéficiera d'une précision de synchronisation mesurée en nanosecondes. Mais si vous avez besoin d'une meilleure synchronisation, connectez-vous à un serveur de niveau 1, ou achetez un récepteur GPS de chronométrage approprié et devenez vous-même une source de niveau 1.
Toutes les horloges dérivent dans une certaine mesure, cela dépend de la source du signal de synchronisation et de la précision avec laquelle elle est suivie. Dans un PC, il s'agit actuellement du HPET, mais l'ordinateur peut perdre la trace du nombre de ticks écoulés s'il est surchargé.
Les serveurs NTP auxquels votre machine se connecte perdent également du temps, cependant, ils ajustent leur temps en fonction de sources plus précises.
En fin de compte, les sources plus précises sont des horloges hautement précises comme les horloges atomiques. Vous pouvez considérer le NTP comme un réseau de machines, chacune reposant sur un certain nombre de sources pour le temps et ajustant son propre temps à ce qui est considéré comme plus précis.
Ceci est régulé par une source déclarant son stratum. Une horloge atomique ou GPS est de stratum 0, et fait autorité sur l'heure. Chaque couche en dehors de cela est le prochain stratum - stratum 1, et vérifiera un certain nombre de sources de stratum 0 ainsi que des pairs au même niveau, pour vérifier la cohérence des sources de temps.
Vous communiquez probablement avec une source de temps de stratum 2 ou 3.
Ce que les autres ont écrit est vrai : un serveur Stratum 1 obtient son temps à partir d'un appareil Stratum 0. Je ne sais pas à quels intervalles cela se produit, mais je pense qu'ils sont plutôt précis là-dessus.
Un serveur Stratum n avec n > 1 obtient son temps via NTP à partir d'un serveur Stratum n-1. Cela signifie qu'il se synchronise avec lui à des intervalles réguliers. Lors du démarrage du service NTP, la synchronisation se fait à des intervalles assez courts, et avec le temps, les intervalles commencent à augmenter. Finalement, l'intervalle est aussi grand que 1024 s, environ 17 minutes.
ce qui n'a pas été abordé est la question de ce qui se passe entre-temps ? Eh bien, il y a une fonctionnalité appelée fichier de dérive. Cela aide NTP à surveiller toute dérive entre l'horloge locale et l'horloge de référence. La fréquence de l'horloge locale est alors ajustée en fonction de la dérive détectée, de sorte que l'heure soit également précise entre les sondages du serveur.
D'autres implémentations de NTP peuvent utiliser d'autres fonctionnalités, mais une chose est commune : le besoin et la capacité d'ajuster la fréquence de l'horloge.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.