Un serveur de temps est un serveur qui délivre la date et heure à des clients.
Ces derniers se synchronisent avec le serveur de temps à travers le protocole NTP (Network Time Protocol).
Cela permet de garder des PC à l’heure sur un réseau et éviter des dérives de l’heure.
Cet article vous explique ce qu’est un serveur de temps et le fonctionnement général du protocole NTP.
Table des matières
Pourquoi corriger et synchroniser les heures d’un PC ?
Les PC calcule l’horloge interne à partir d’un oscillateur à quartz.
Mais celle-ci dérive de plusieurs secondes par jour, par rapport à l’heure officielle.
En informatique et surtout dans les réseaux dont internet, beaucoup de protocoles, communications nécessitent que des PC soient synchroniser.
Par exemple :
- Les journaux et logs qui stockent un horodatage
- La diffusion de contenu en temps réel, comme une synchronisation de fichiers
- Beaucoup de protocoles sécurisés ont besoin d’une heure correcte. Par exemple HTTPS nécessitent que le PC soit à l’heure pour vérifier la validité du certificat d’un site internet
- etc
Sans des PC à l’heure et synchroniser ces éléments ne fonctionneront pas.
Ainsi, les serveurs de temps et le protocole NTP sont devenus essentiels pour permettre aux PC de maintenir leur horloge et synchroniser l’heure.
Bien que chaque ordinateur calcule son horloge à partir d’un oscillateur à quartz, il ne peut atteindre la précision des horloges de référence. Leurs horloges internes ont tendance à dériver jusqu’à plusieurs secondes par jour, par rapport à l’heure officielle.
Ceci rend nécessaire de synchroniser régulièrement l’horloge interne avec une horloge de référence.
Qu’est-ce qu’un serveur de temps
Un serveur de temps est un ordinateur serveur qui lit l’heure réelle à partir d’une horloge de référence et distribue ces informations à ses clients à l’aide d’un réseau informatique.
Le serveur de temps peut être un serveur de temps de réseau local ou un serveur de temps Internet.
Dans un réseau LAN ou d’entreprise, il peut s’agir du contrôle de domaine ou d’un serveur en Linux.
Microsoft possède aussi un serveur de temps time.windows.com disponible sur internet pour synchroniser les PC en Windows.
Les clients interrogent à intervalles réguliers le serveur et corrige l’heure afin que tous les clients soient synchronisées et aient tous la même heure.
On parle alors de correction de décalage ou offset en anglais
Toutefois cela n’inclut aussi les changements d’heure été et d’heure d’hiver.
Cette synchronise et remise à l’heure se fait en général à l’aide du protocole NTP.
Windows et Microsoft utilise son propre système de synchronisation d’heure à travers le service de temps Windows (W32Time) qui supporte NTP.
L’UTC
L’UTC est le temps universel coordonné est une échelle de temps civil très utilisé en informatique.
Cela permet de synchroniser des ordinateurs dans le monde à la même heure puis appliquer un décalage (offset) pour régler les problèmes de fuseaux horaires.
Par exemple, si mon serveur de New York, États-Unis et mon serveur de Sydney, Australie doivent avoir exactement la même heure UTC.
Cela fonctionne bien pour les ordinateurs tandis que les humains utilisent l’heure locale pour garder l’heure.
Pour simplifier un peu le travail avec les serveurs, utilisez un décalage.
- New York utilise UTC-4h ou UTC-5h lorsqu’il n’est pas à l’heure d’été.
- Sydney utilise UTC + 10h et UTC + 11h à l’heure d’été.
Ces décalages affecteront toutes vos actions planifiées. Si vous avez un article de blog prévu pour 8 heures du matin, le serveur utilisera le décalage pour déterminer quand l’article doit être publié.
Le protocole NTP et les serveurs de temps
Le protocole NTP (Network Time Protocol) est un protocole de réseau pour la synchronisation d’horloge dans un réseau informatique.
C’est un protocole client/serveur utilisant le port 123 en UDP ou en TCP.
Mais on trouve des implémentations P2P ou qui utilise la diffusion ou la multidiffusion, où les clients écoutent passivement les mises à jour de l’heure après un premier échange de calibrage aller-retour.
Le serveur NTP agit donc comme serveur de temps pour les clients.
Ce protocole dernier utilise le temps universel coordonné (UTC).
De ce fait, il ne gère pas les heures d’été et hiver.
Enfin la dernière version est NTP v4.
Les architectures NTP
Comme évoqué précédemment, on peut distinguer deux types d’architecture NTP.
Architecture | Description |
client/server | Le client envoie un message au serveur avec son heure locale. Le serveur répond avec son heure locale. Ce dernier calcule l’heure correcte moyennant le délai réseau |
Broadcast | Le client envoie un message avec l’heure courante. Le récepteur de ce message utilise cette heure comme heure locale en retranchant au préalable le délai estimé de transmission du message |
L’architecture NTP se repose sur une hiérarchie.
Plusieurs niveaux et strates avec des horloges de références, serveurs de temps puis clients et serveurs qui propagent l’heure au sein d’un réseau LAN ou d’entreprise.
- strate 0 : ce sont les horloges de hautes précisions qui servent de références. Cela peut être des horloges atomiques, es GPS ou d’autres horloges radio
- strate 1 : Considéré comme des serveurs primaires qui sont synchronisés à synchronisée à quelques microsecondes des horloges de la strate 0
- strate 2 : Ce sont des clients qui interrogent les serveurs de la strate 1.
- strate 3 : à leur tour, ils interrogent les serveurs de la strate 2 pour récupérer l’heure et la consoler au sein du niveau. Ainsi de suite
Pour consolider et rendre l’heure plus stable, les clients et serveurs peuvent se jumeler.
Structure des messages NTP
La diffusion peut fonctionner dans les deux sens :
- Un client interroge un serveur pour obtenir l’heure à synchroniser
- Un serveur peut interroger un client pour connaître son heure
Dans les deux cas, la structure du message est identique.
Il a pour but de calculer le décalage entre le client et le serveur afin de corriger ce dernier.
Les informations utiles pour synchronisation de l’heure :
- OT : Originate Timestamp; heure de départ de la requête,
- RT : Receive Timestamp; heure de réception de la requête,
- TT : Transmit Timestamp; heure d’émission de la requête et/ou de la réponse.
Les données informatives ou à des fins de gestion :
- LI : indicateur d’insertion/retrait d’une seconde intercalaire la dernière minute du jour courant,
- VN : numéro de version,
- Mode : mode de fonctionnement,
- Stratum : stratum de l’horloge locale,
- Poll : intervalle minimum entre deux messages successifs,
- Precision: précision de l’horloge locale
Les implémentations de NTP
Applications ou implémentations | Description |
chrony | NTP par défaut sur Redhat avec des versions pour Ubuntu. |
jamnntpd | JamNNTPd est un serveur NNTP qui permet d’accéder à une base de messages JAM. Il existe une version pour Linux et Windows. |
ntpsec | Fork dit sécurisé dont la première version est parue en 2017 |
openntpd | Implémentation pour OpenBSD dite sûre de 2014 qui connaît des version portables pour Linux |
sntp | SNTP (Simple Network Time Protocol) est une implémentation moins complexe de NTP, utilisant le même protocole mais sans nécessiter le stockage de l’état sur de longues périodes. Par exemple les systèmes embarqués peuvent utiliser ce protocole dérivé. |
W32Time / Windows time | Se synchronise par défaut sur time.windows.com Dans un domaine, les clients se synchronisent avec le contrôle de domaine Supporte NTP depuis Windows 10 |
Liens
- Le protocole NTP et les serveurs de temps
- Comment changer l’heure/la date de Windows 11
- Comment changer de fuseau horaire dans Windows 10
- Comment changer de fuseau horaire dans Windows 11
- Impossible de changer l’heure/la date de Windows 10, Windows 11
- W32tm : gérer le service de temps de Windows en ligne de commandes
- Comment modifier la date/l’heure/le fuseau horaire sur Ubuntu 20.04
- 4 meilleurs logiciels pour synchroniser l’heure sur Windows 10
- Dual-Boot : Différence heure entre Windows et Linux
source : https://fr.wikipedia.org/wiki/Network_Time_Protocol#Description_du_modèle_NTP_«_client/