web-dev-qa-db-fra.com

NTP - Comment les serveurs NTP sont-ils si précis?

J'ai remarqué que, sur mes serveurs et autres machines, l'horloge dérive toujours, elle doit donc être synchronisée pour rester précise.

Comment les horloges du serveur NTP ne dérivent-elles pas et restent-elles toujours correctes?

52
Jason

Les serveurs NTP s'appuient sur des horloges de haute précision pour un chronométrage précis. Les horloges atomiques ou les récepteurs GPS constituent une source de temps commune pour les serveurs NTP centraux _ (rappelez-vous que les satellites GPS sont équipés d'horloges atomiques). Ces horloges sont définies comme précises car elles fournissent une référence temporelle extrêmement exacte. Le GPS ou les horloges atomiques n'ont rien de magique qui leur permette de vous dire exactement quelle heure il est; en raison du fonctionnement des horloges atomiques, elles sont tout simplement très douées pour le fait que, après avoir été informée de l’heure exacte, continuez à indiquer 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 différente de l'heure UTC que nous sommes plus habitués à voir. Ces horloges atomiques sont à leur tour synchronisées contre International Atomic Time ou TAI afin de non seulement indiquer avec précision le passage du temps, mais également le temps.

Une fois que vous avez une heure exacte sur un système connecté à un réseau tel qu'Internet, c'est une question d'ingénierie de protocole permettant le transfert d'heures précises entre hôtes sur un réseau peu fiable. À cet égard, un serveur strate 2 (ou plus éloigné de la source de temps réelle) NTP ne diffère pas de la synchronisation de votre système de bureau avec un ensemble de serveurs NTP.

Lorsque vous avez quelques heures précises (obtenues auprès de NTP serveurs 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 à la "croyance exacte" passage du temps. Une fois verrouillée, cette valeur peut ensuite être utilisée pour ajuster en permanence l’horloge locale afin qu’elle affiche des valeurs très proches du passage du temps précis, même si l’horloge locale en temps réel est très imprécise. tant que votre horloge locale n'est pas très erratique , , cela devrait permettre de conserver 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 client NTP (probablement la plupart des implémentations ntpdou de service système) le font, et d'autres (comme le compagnon de ntpd ntpdatequi règle simplement l'horloge une fois) ne le font pas. Ceci 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 à 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 à nouveau légèrement moins précise que la strate 1 car elle synchronise son temps avec la source de la strate 1. Etc. En pratique, cette perte de précision est si minime qu'elle est totalement négligeable dans tous les cas sauf le plus extrême.

58
a CVn

Dans la mesure du temps réseau, la spécification indiquant comment un serveur obtient sa source de temps s'appelle un niveau de strate. Plus le niveau est bas, meilleure est la conservation du temps de ce serveur.

Les appareils du niveau 0 de la strate ne sont pas directement connectés au réseau. Ils constituent l’appareil de chronométrage proprement dit et doivent être connectés à un ordinateur pour obtenir l’heure réelle. Cet ordinateur devient alors un serveur de strate level 1 NTP.

Un ordinateur connecté à une strate de niveau 1 peut également devenir un serveur de temps, mais ce serait alors une strate de niveau 2. Plus un ordinateur est connecté à un serveur de temps, plus votre niveau de strate est bas, plus votre chronométrage peut être précis.

Les dispositifs de niveau 0 de strate incluent les horloges atomiques participant TAI (heure atomique internationale) ou synchronisées avec elle, ainsi que les récepteurs de signal horaire envoyés par cette horloge. Le plus souvent, il s'agit de récepteurs de chronométrage GPS dotés d'une interface appropriée incluant le signal GPS PPS. Le signal PPS, lorsque le GPS dispose d'un bon verrouillage sur plusieurs satellites, envoie une impulsion par seconde et le bord d'attaque de cette impulsion se situe à quelques nanosecondes du début réel de cette seconde. Selon les spécifications du récepteur GPS, le signal PPS peut être plus ou moins précis. En effet, chaque satellite GPS possède une horloge atomique. Une fois que le récepteur GPS a trouvé sa propre position et la position des satellites GPS qu'il écoute, il peut corriger la propagation RF et vous donner une heure presque aussi précise que celle d'une horloge atomique directement sur le récepteur GPS.

Les serveurs du niveau 1 de la strate se connectent donc à des horloges atomiques ou à des récepteurs GPS, auxquels se connectent des serveurs NTP. Même la connexion à un serveur de niveau 2 ou 3 avec des réglages fréquents donnera à votre ordinateur une précision de chronométrage mesurée en nanosecondes. Mais si vous avez besoin d'un meilleur timing, 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.

10
Adam Davis

Toutes les horloges dérivent dans une certaine mesure, cela dépend de la source du signal de synchronisation et de la qualité de son suivi. Sur un PC, il s’agit de la HPET de nos jours, mais le PC peut perdre le fil du nombre de ticks passés en cas de surcharge.

Les serveurs NTP auxquels votre ordinateur a parlé perdent probablement également du temps. Cependant, ils reviennent à une meilleure source.

En fin de compte, les meilleures sources sont des horloges extrêmement précises, comme les horloges atomiques. Vous pouvez considérer NTP comme un réseau de machines. Chacune d'elles disposera d'un certain nombre de sources sur lesquelles elle s'appuiera pour le temps et ajustera son temps à ce qui est considéré comme plus précis.

Ceci est régi par une source déclarant sa strate. Une horloge atomique ou GPS est la couche 0 et l’autorité sur l’heure. Chaque couche à partir de celle-ci constitue la strate suivante - la strate 1, et vérifiera un nombre de sources de la strate 0 avec des pairs du même niveau, afin de vérifier l'intégrité des sources de temps.

Vous parlez probablement à une source de strate 2 ou 3.

3
Paul

Ce que les autres ont écrit est vrai: un serveur Stratum 1 tire son heure d’un appareil Stratum 0. Je ne sais pas dans quels intervalles de temps cela se produit, mais je pense qu’ils sont tout à fait exacts là.

Un serveur Stratum n avec n> 1 obtient son heure via NTP d'un serveur Stratum n-1. Cela signifie qu'il se synchronise à intervalles réguliers. Lors du démarrage du service NTP, la synchronisation s'effectue à intervalles assez rapprochés, et les intervalles commencent progressivement à augmenter. Finalement, l’intervalle peut atteindre 1024 secondes, soit environ 17 minutes.

Ce qui n'a pas été abordé est la question de ce qui se passe entre-temps Eh bien, il existe une installation appelée fichier de dérive . NTP aide à surveiller toute dérive entre l'horloge locale et l'horloge de référence. La fréquence de l'horloge locale est ensuite ajustée en fonction de la dérive détectée, de sorte que l'heure est également précise entre les interrogations du serveur.

D'autres implémentations NTP peuvent utiliser d'autres fonctionnalités, mais une chose est courante: la nécessité et la possibilité d'ajuster la fréquence de l'horloge.

1
glglgl