Serveurs de temps

Pourquoi avez-vous besoin d’un serveur de temps NTP ?

Ce qui rend la synchronisation du temps en réseau sûre, fiable et précise

Niveaux et précision de la strate NTP

  • Qu’est-ce que le NTP (network time protocol) ?

  • Comment configurer les clients NTP ?

  • Pourquoi ne pas utiliser un serveur de temps Internet ?

NTP ou SNTP : quelle est la différence ?

NTP (Network Time Protocol) et SNTP (Simple Network Time Protocol) sont des protocoles TCP/IP similaires en ce sens qu’ils utilisent le même paquet de temps provenant d’un message de serveur de temps pour calculer l’heure exacte. La procédure utilisée par le serveur de temps pour assembler et envoyer un horodatage est exactement la même, que l’on utilise NTP (c’est-à-dire l’implémentation complète de NTP) ou SNTP.

La différence entre NTP et SNTP est importante dans le programme de synchronisation du temps qui s’exécute côté client sur chaque système. Le programme de synchronisation du temps, qu’il s’agisse d’un programme intégré à Windows comme W32Time (qui utilise le protocole SNTP) ou d’un module complémentaire tiers, détermine le protocole utilisé, et non le serveur de temps. La différence entre NTP et SNTP réside dans le contrôle des erreurs et dans l’algorithme de correction de l’heure elle-même.

L’algorithme NTP est beaucoup plus complexe que l’algorithme SNTP. NTP utilise normalement plusieurs serveurs de temps pour vérifier l’heure, puis contrôle la vitesse de balayage du système. L’algorithme détermine si les valeurs sont exactes en utilisant plusieurs méthodes, y compris des facteurs de correction et l’identification des serveurs de temps qui ne sont pas en accord avec les autres serveurs de temps. Il accélère ou ralentit ensuite la vitesse de dérive de l’horloge du système de sorte que (1) l’heure du système soit toujours correcte et (2) qu’il n’y ait pas de sauts temporels ultérieurs après la correction initiale.

Contrairement à NTP, SNTP utilise généralement un seul serveur de temps pour calculer l’heure, puis “saute” l’heure du système à l’heure calculée. Il peut toutefois disposer de serveurs de temps de secours au cas où l’un d’entre eux ne serait pas disponible. Pendant chaque intervalle, il détermine si l’heure est suffisamment décalée pour effectuer une correction et, si c’est le cas, il applique la correction.

Prenons l’exemple de la comparaison et de l’ajustement d’une montre-bracelet par rapport à une horloge murale. La montre-bracelet est analogue à l’appareil “client” (comme un PC) et l’horloge murale est le serveur de temps. Avec SNTP, vous regardez toujours l’horloge à des intervalles prédéterminés. Disons un par heure. (Pour l’anecdote, l’acte de comparaison de l’heure de synchronisation des ordinateurs est appelé “sondage”). Lorsque vous pensez qu’il est 12:00:00, l’horloge affiche 11:59:57. Reculez votre montre de trois secondes et ne faites rien avant 1:00:00. Vous regardez à nouveau l’horloge pour voir qu’il est 12:59:57, c’est-à-dire trois secondes plus tôt, donc vous reculez la montre de trois secondes. Toutes les heures, la montre est remise à zéro pendant 3 secondes pour être synchronisée avec l’horloge murale. Du point de vue de l’erreur, vous êtes le plus précis immédiatement après le sondage et vous vous dégradez progressivement. L’erreur maximale se produit immédiatement avant le scrutin, lorsqu’un ajustement soudain se produit, par exemple lorsque l’heure passe de 12:59:57 à 12:59:58 à 12:59.59 à 1:00:00 à 12:59:57.

Si une erreur maximale de trois secondes et la discontinuité de l’échelle de temps vous dérangent, considérez le cas du NTP. Réagissez en sachant que votre montre gagne trois secondes toutes les heures, vous n’avez donc pas besoin de changer souvent. Il suffit de compenser la dérive en utilisant vos mesures d’erreur en fonction du temps. Il n’est pas nécessaire d’utiliser toujours la même période de mesure. Tout ce que vous devez savoir, c’est le taux et la direction du changement.

Après avoir compris la dérive, programmez la montre pour qu’elle s’ajuste en temps réel. Procédez à de petits ajustements, de sorte qu’à tout moment, vous soyez en phase avec l’horloge accrochée au mur sans la regarder. Bien entendu, le taux de dérive peut changer au fil du temps, c’est pourquoi vous devez continuellement interroger l’horloge et appliquer la meilleure correction. Votre montre-bracelet restera alors synchronisée.

Lequel vous faut-il ?

Tout dépend de votre application, mais en général, les clients SNTP ne devraient être utilisés que lorsque la synchronisation du temps n’est pas critique pour vos systèmes. Pour tous les autres clients, et pour les systèmes qui serviront également à d’autres systèmes, vous devez utiliser des implémentations NTP complètes comprenant des algorithmes de sélection de référence et de pilotage de l’horloge afin de maintenir la précision sur l’ensemble du chemin de synchronisation.

En ce qui concerne les serveurs de temps eux-mêmes, la sélection d’un serveur de temps qui utilise SNTP ou NTP pour servir le temps uniquement doit se concentrer sur la question de savoir si ce serveur de temps se synchronisera jamais sur NTP comme référence primaire ou secondaire — dans ce cas, seul NTP complet doit être utilisé. Pour simplifier les choses, SNTP ne devrait être utilisé qu’au début ou à la fin du chemin de synchronisation du réseau, et seulement à la fin du chemin de synchronisation du réseau où la synchronisation du temps n’est pas critique pour vos systèmes.