Quelle heure est-il ?

10 décembre 2025

Depuis que l'horloge parlante n'existe plus, comment ajustez-vous votre montre ? Internet, GPS, heure radiodiffusée, comment toutes ces heures sont-elles synchronisées ?

Avant de parler de l'heure, il a fallu définir ce qu'était une seconde, l'intervalle de temps élémentaire. De nos jours, ce sont des horloges atomiques, et peut-être bientôt nucléaires, qui nous donnent la seconde, avec une précision redoutable, genre une seconde sur l'âge de l'univers.

😬 C'est bien joli une telle précision, mais ça ne donne pas l'heure.
Effectivement, il faut se mettre d'accord sur un "zéro"
😮 Mais même si tu définis un zéro, avec plusieurs horloges atomiques, laquelle a raison ?
Si une seule servait de référence, nous aurions un problème de fiabilité.
😕 Elle pourrait tomber en panne... ou se faire attaquer.
C'est vrai
Mais de plus, le temps est relatif, et on arrive à mesurer des décalages liés au champ de gravitation terrestre.
😲 Hein ?
La seconde ne s'écoule pas à la même vitesse suivant l'altitude.

Si vous voulez en savoir plus sur la dilatation du temps en relativité, restreinte ou générale, peu importe.

Ben alors, comment on fait ?
Une moyenne sur des centaines d'horloges atomiques

Le Temps Atomique International (TAI)

La racine du temps est calculée à partir de quelques centaines d’horloges atomiques distribuées de par le monde, c'est le Temps Atomique International.

C'est le BIPM, le bureau international des poids et mesures, qui est chargé de le calculer.

Cette distribution permet d'éviter les pannes et les attaques qui pourraient mettre à mal notre référence temporelle. Mais bon, il faut bien une source unique à un moment ou à un autre qui est ensuite distribuée, ce qui est forcément un point faible, reste à espérer qu'il existe un plan de secours adéquat.

Synchroniser ces horloges n'est pas si évident à faire. Il faut forcément un réseau (en fibre optique), et compenser les temps de propagation. On aura le même problème quand on parlera du temps distribué sur Internet.

Le zéro se situe vers le 1 janvier 1958.

Le Temps Universel (UT1)

Comme la Terre ne tourne pas rond ça on le savait, un laboratoire, l'IERS, est chargé de calculer s'il faut insérer une seconde supplémentaire de temps à autre.

Cette correction permet de compenser le ralentissement de la rotation terrestre dû à l'attraction entre la Terre et la Lune, et d'autres effets liés au noyau, aux océans et à l'atmosphère. L'IERS le détermine en observant des objets célestes très éloignés (des quasars extra-galactiques) à l'aide d'interféromètres à très longue base.

Le temps universel (à ne pas confondre avec le temps universel coordonné ci-dessous) n'est jamais que l'angle de rotation de la Terre par rapport à ces quasars éloignés supposés suffisamment loin pour être considérés fixes.

Ces secondes intercalaires sont introduites le 30 juin ou le 31 décembre à 23 h 59 m 60 s. La dernière fois, ce fut fin 2016.

Le Temps Universel Coordonné (UTC)

Le temps universel coordonné est simplement déduit du temps atomique international TAI, compensé des secondes intercalaires, de manière que la différence entre UTC et UT1 soit toujours inférieure à une seconde.

Il faut ensuite appliquer le décalage relatif au fuseau horaire où vous vous situez, en ne vous loupant pas sur les horaires d'été ou d'hiver.

Les fuseaux horaires, et le décalage par rapport à UTC
(astuce : ouvrez l'image dans une autre fenêtre pour pouvoir agrandir)

Il existe aussi le temps terrestre TT, le temps coordonnée barycentrique TCB, le temps coordonné géocentrique TCG, d'un intérêt relatif pour la plupart des gens sur Terre.

Distribution de l'heure

Une fois que le laboratoire désigné produit l'heure UTC, il s'agit de la distribuer. Mais immédiatement les problèmes ardus des délais de transmission et de synchronisation se posent, qui sont variables suivant la technique employée.

Il existe tout un vocabulaire pour désigner les décalages entre la référence et l'horloge locale, ça vous donnera une idée des ennuis :

  • L'horloge locale présente une certaine résolution = la plus petite unité de temps mesurable, c'est sa précision.
  • Elle présente un écart avec le vrai temps UTC, c'est « l'offset ». Si cet écart est inférieur à une certaine valeur, on dira alors que l'horloge est correcte ou « accurate ».
  • Mais la fréquence de l'horloge locale est souvent légèrement différente de la vraie fréquence, on observe un décalage de fréquence, c'est le « skew ». Cela entraine évidemment des écarts, de l'offset.
  • Pire, la fréquence peut varier dans le temps (par exemple à cause des écarts de température), la fréquence de l'horloge locale n'est pas toujours la même au cours du temps, c'est la dérive ou « drift ».

Verrouillage de phase

Quelle que soit la méthode, vous aurez un émetteur qui va diffuser des informations horaires, mais surtout un "top" qui indiquera à quel moment appliquer l'heure reçue. Autrement dit, on envoie d'abord les informations, comme pour l'horloge parlante qui disait qu'au quatrième top, il sera exactement telle heure.

Du côté de la réception, il faudra un décodeur pour comprendre les informations horaires (c'est la partie facile), ainsi que l'horloge locale, celle que l'on aimerait synchroniser pour qu'elle soit à l'heure exacte.

Ce n'est pas comme s'il existait cinquante mille procédés : l'émetteur possèdera une certaine fréquence d'émission, supposée exacte puisqu'il s'agit de la référence de temps, et votre horloge locale possèdera aussi une certaine fréquence, pas très éloignée mais pas exactement pareille. L'objectif est d'obtenir non seulement la même fréquence, mais également être en phase, que le "top" de l'émetteur arrive exactement au même moment que votre "top" local. On appelle ça du verrouillage de phase.

Il faut synchroniser les horloges, c'est le verrouillage de phase

Je me suis pelé une boucle à verrouillage de phase numérique sur le signal DCF77 pour ceux que ça intéresse.

Mais au moins, ma pendule est calée sur l'heure atomique UTC au délai de transmission près.

Délai de transmission

Mais même si vous avez verrouillé le signal, il aura fallu "un certain temps" pour que le signal se propage depuis l'émetteur jusqu'au récepteur.

  • Un signal électromagnétique voyagera à la vitesse de la lumière. Si la propagation se fait en ligne directe, vous pouvez facilement compenser le délai en connaissant la distance.
  • Une fibre optique, ou un câble électrique présentera également une certaine vitesse. Il faudra connaitre la longueur du câble.
  • Le pire étant de passer par divers relais entre l'émetteur primaire et le récepteur, et c'est ce qui arrive sur Internet car on ne sait pas trop par où passe les paquets, ni avec quels délais sur chaque serveur traversé...

Propagation des ondes dans le cas de la radiotransmission. On comprendra que le temps de propagation est variable dans la journée, surtout à cause du Soleil.

Dans le pire des cas, bien représenté par Internet, on utilise un pis-aller : une requête pour demander l'heure est faite, on note l'heure locale de départ, puis on notera l'heure locale d'arrivée, en espérant que le temps pour l'aller soit à peu près le même que pour le retour. On divise alors le temps par deux, c'est le délai de transmission. Et oui, vous aurez intérêt à faire des statistiques sur le délai, le "ping" peut être très variable dans la journée.

C'est loin d'être parfait, mais c'est quand même mieux que rien

Pannes ou attaques

Pour ne pas arranger les choses, des pannes peuvent arriver, voire carrément des attaques. Ce n'est pas très critique si vous n'avez pas besoin d'une précision d'enfer car on sait réaliser des horloges locales avec des performances très correctes, voyez nos montres à quartz par exemple. Ces horloges dériveront au pire d'une ou deux secondes dans une journée, et si elles reçoivent l'heure UTC régulièrement, elles pourront même s'étalonner pour compenser cette dérive.

Radiotransmission

Transmettre l'heure par radio se fait depuis des lustres, j'ai d'ailleurs une page spéciale au sujet de l'heure radiodiffusée car j'ai réalisé mon propre récepteur DCF77.

Les principaux émetteurs dans le monde :

  • JJY 40 kHz, Japon
  • GBZ 60 kHz, Anthorn UK, depuis 1950
  • BPC 68.5 kHz Chine
  • DCF77 77.5 kHz Mainflingen Allemagne, depuis 1959
  • FLE 162 kHz Allouis France depuis juillet 1980
  • WWV 2.5 MHz, Fort Collins / Hawaï USA
  • CHU 3.33 MHz Canada
  • ...

La France émet son propre signal, qui est plus ou moins similaire aux autres. Vous trouverez les détails dans l'article « Mise à disposition du temps légal par le signal ALS162 » sur le site de l'Observatoire de Paris. Il permettrait de synchroniser plus de 200 000 horloges.

GPS / GNSS

😖 GNSS, c'est quoi ?
Global Navigation Satellite System
😒 On ne devrait plus employer le terme GPS, le nom du système américain
😤 Ah ! Galileo est un GNSS alors.
Tout comme le chinois Beidou et le russe Glonass.
Environ 129 satellites de positionnement au total.

Pour fonctionner, le GPS/GNSS a absolument besoin d'horloges atomiques pour pouvoir connaitre la position des satellites avec précision. C'est même pire que ce que vous votre flair pourrait vous dire : il faut apporter des corrections relativistes, c'est à ce point-là !

10 nanosecondes d'erreur, c'est 3 mètres d'écart sur votre position. L'horloge atomique d'un satellite GPS présente une dérive d'une dizaine de nanosecondes par jour, elle est régulièrement synchronisée avec une référence au sol, qui est basée sur l'UTC.

Les informations transmises par les satellites contiennent l'heure, aussi il est possible d'ajuster une horloge locale en captant ces signaux.

Les 3 segments d'un système GNSS : la référence au sol, les satellites et la réception.
Notez les stations de contrôles qui vérifient les signaux provenant des satellites.
(from Understanding Global Navigation Satellite Systems)

Les modules GPS doivent contenir une horloge suffisamment précise pour exploiter correctement les signaux reçus, l'amateur n'a généralement qu'à le connecter et exploiter les trames d'informations sur une sortie série. Dès que le module reçoit suffisamment d'informations de divers satellites (au moins 4), la précision devient démoniaque, et un signal dit PPS (Pulse Per Second) donne exactement le top.

Exemple de module GPS avec antenne intégrée, USB.
Toutes sortes de modules existent, avec/sans antenne...

Voici un exemple de réalisation pour Arduino :

Vous aurez un aperçu des signaux reçus, et comment les exploiter. C'est plutôt simple car les informations sont explicites sur la sortie série.

Il faudra que je fasse une pendule avec un récepteur GPS, un jour.

Le principal défaut du GPS, que tout le monde connait, c'est la difficulté de recevoir les signaux dès lors que l'on n'est plus en vue des satellites. Mais lorsque vous recevez les signaux (de 4 satellites), alors vous pouvez synchroniser vos horloges, en atteignant quelques nanosecondes de précision si votre horloge locale est suffisamment performante.

Internet

Internet, mais aussi les réseaux d'une manière générale, où on traverse des serveurs reliés par des liens de télécommunication.

Le protocole NTP est la norme admise par tous actuellement, mais ne fut pas la première, avant il y a eu daytime (RFC 867), time (RFC 868), des options d'ICMP (Internet Control Message Protocol, utilisé par ping) comme celle du RFC 781.

Protocole NTP

Le Network Time Protocol NTP existe depuis des lustres, car il a bien fallu synchroniser les ordinateurs sur un réseau. Cette norme est très stable, et voici les évolutions :

  1. [1985] RFC 958, obsolète
  2. [1989] RFC 1119, obsolète
  3. [1992] RFC 1305, version standard
  4. [2010] RFC 5905, améliorations sécurité et précision

La norme de 1992 est très détaillée (plus de cent pages), c'est vraiment un document de référence. Je ne la commenterai pas ici, je me contenterai de donner les principales informations pour savoir superficiellement comment ça marche.

Il existe également une version simplifiée (mémorandum, pas une norme) :

Les strates

Même si un port spécifique, UDP 123, est utilisé pour communiquer l'heure, on se doute bien que traverser divers serveurs introduira immanquablement des délais. Et on ne va pas ouvrir au monde entier un accès direct aux horloges atomiques de référence. Le concept de strate a été introduit pour gérer la précision.

  • Stratum 0 : horloge atomique, GPS, radiodiffusion… Ne parlent jamais directement au réseau.
  • Stratum 1 : les références/serveurs primaires.
  • Stratum 2-15 : plus le chiffre est élevé, moins la précision est garantie.
  • Stratum 16 : considéré comme non synchronisé.

Normalement, vous devriez vous dire que vous allez vous connecter à un serveur de strate 1, tant qu'à faire. Voici quelques bonnes adresses pour trouver :

Mais il faudra montrer patte blanche pour accéder à un serveur de strate 1, forcément, pour ne pas le surcharger.

L'utilisation

Deux modes d'utilisation sont envisageables :

  1. Démon : c'est le terme employé pour un programme qui boucle en permanence, ici pour demander l'heure.
  2. Au coup par coup : la machine demande de temps en temps une mise à l'heure, utile surtout quand la connexion n'est pas permanente.

On se doute bien que le premier est coûteux en bande passante et en ressources.


Dans pratiquement tous les cas, les routines d'utilisation de NTP sont incluses dans votre système d'exploitation, il faudra au pire devoir programmer quel serveur NTP vous voulez, probablement dans un fichier de configuration. Cherchez des termes comme chrony, xntpd, ntpdate, W32Time dans la documentation de votre système que vous ne lisez jamais ou carrément le "package NTP" à installer.

Sécurité

Les gens soucieux de la sécurité voudront un service particulier, ce que certaines compagnies proposent, par exemple Easy-IC avec SCPTime (je n'ai rien à voir avec eux, c'est juste un exemple).

Du point de vue sécurité, vu que je suis paranoïaque, je me suis méfié des serveurs quand j'ai abordé le problème du coffre-fort temporel, résolu avec une puce électronique spécifique. Le fond du problème étant qu'il est possible d'imiter un serveur NTP pour tromper sa cible. Comment prouver que vous êtes un vrai serveur, délivrant l'heure véritable ?

La panoplie à déployer pour sécuriser l'heure.
Comment veux-tu que je le sache ? Je ne suis pas connecté à un serveur NTP de strate 1 !

Voilà pour la base à connaitre en matière de diffusion de l'heure. Regardez votre montre à présent. La mienne reçoit le DCF77.