Performances : se comparer à la référence nationale du temps#

Pourquoi#

Ce serveur affiche un RMS offset autour de la microseconde : c’est bien ou c’est mal ? Un chiffre de performance isolé ne veut rien dire : il faut un point de comparaison. Ce point de comparaison existe, il est public et gratuit : chaque pays dispose d’un laboratoire national de métrologie qui réalise physiquement UTC et diffuse cette référence par NTP. En France, c’est l’échelle de temps UTC(OP), réalisée à l’Observatoire de Paris par le laboratoire historiquement connu sous le nom de SYRTE (Systèmes de Référence Temps-Espace, aujourd’hui intégré au Laboratoire Temps Espace, LTE), celle qui définit l’heure légale française. Ce chapitre la prend comme exemple détaillé.

Bonne nouvelle : cette comparaison ne demande aucun matériel supplémentaire. En suivant le chapitre Chrony, elle est déjà en cours sur ce serveur : les sources amont configurées sont précisément les serveurs NTP de ces laboratoires nationaux.

La référence : UTC(OP) et les serveurs NTP de l’Observatoire de Paris#

UTC(OP) est produite à partir d’un ensemble de masers à hydrogène et de fontaines atomiques à césium. Elle contribue au calcul du TAI par le BIPM (Bureau international des poids et mesures), et l’écart UTC − UTC(OP) publié chaque mois dans la Circular T du BIPM se compte en nanosecondes. C’est, à quelques laboratoires près dans le monde, ce qui se fait de mieux.

Le SYRTE diffuse cette référence par NTP :

ServeurStratumRaccordementUsage prévu
ntp-p1.obspm.fr1PPS lié à UTC(OP)Réservé aux serveurs secondaires desservant des sites importants
ntp.obspm.fr2synchronisé sur le précédentOuvert à l’ensemble de la communauté internet

Un serveur Stratum 1 public construit avec ce guide entre dans le cas d’usage prévu de ntp-p1.obspm.fr, mais avec la même étiquette que pour toute source institutionnelle : minpoll 6 (une requête par minute au plus), iburst uniquement au démarrage, et jamais des dizaines de clients individuels qui l’interrogent directement.

Les références nationales dans le monde#

Hors de France, la même démarche s’applique avec le laboratoire national du pays concerné. Plus de 80 laboratoires maintiennent une réalisation UTC(k) recensée dans la Circular T du BIPM ; le tableau ci-dessous liste ceux qui exposent un service NTP public (noms d’hôtes vérifiés à la rédaction de ce guide, chaque laboratoire publie sa propre politique d’usage, à lire avant de le mettre en source amont) :

PaysLaboratoireÉchelleServeurs NTP publics
FranceLTE / SYRTE (Obs. de Paris)UTC(OP)ntp-p1.obspm.fr, ntp.obspm.fr
AllemagnePTBUTC(PTB)ptbtime1.ptb.de à ptbtime4.ptb.de (NTS disponible)
Royaume-UniNPLUTC(NPL)ntp1.npl.co.uk, ntp2.npl.co.uk
SuèdeRISE / NetnodUTC(SP)ntp1.sp.se ; gbg1.ntp.se, nts.netnod.se (NTS)
ItalieINRiMUTC(IT)ntp1.inrim.it, ntp2.inrim.it
EspagneROA (Obs. de la Marine)UTC(ROA)hora.roa.es, minuto.roa.es
SuisseMETASUTC(CH)ntp.metas.ch
AutricheBEVUTC(BEV)bevtime1.metrologie.at
BelgiqueObservatoire royalUTC(ORB)ntp1.oma.be, ntp2.oma.be
Pays-BasVSLUTC(VSL)ntp.vsl.nl
PologneGUMUTC(PL)tempus1.gum.gov.pl, tempus2.gum.gov.pl
TchéquieUFEUTC(TP)time.ufe.cz (NTS)
FinlandeVTT MIKESUTC(MIKE)time1.mikes.fi, ntp1.mikes.fi
RussieVNIIFTRIUTC(SU)ntp1.vniiftri.ru, ntp2.vniiftri.ru
États-UnisNISTUTC(NIST)time.nist.gov
États-UnisUSNO (Obs. naval)UTC(USNO)tick.usno.navy.mil, tock.usno.navy.mil
CanadaCNRCUTC(NRC)time.nrc.ca
BrésilObs. Nacional / NIC.brUTC(ONRJ)a.st1.ntp.br (projet NTP.br)
MexiqueCENAMUTC(CNM)cronos.cenam.mx
JaponNICTUTC(NICT)ntp.nict.jp
Corée du SudKRISSUTC(KRIS)time.kriss.re.kr
ChineNTSC (Acad. des sciences)UTC(NTSC)ntp.ntsc.ac.cn
TaïwanTLUTC(TL)time.stdtime.gov.tw
IndeNPL IndiaUTC(NPLI)time.nplindia.org
AustralieNMIUTC(AUS)time.nmi.gov.au
Hong KongHKOUTC(HKO)stdtime.gov.hk

Tous ces laboratoires publient leur écart à UTC dans la même Circular T : la comparaison à plusieurs références nationales à la fois est donc possible, c’est exactement ce que fait la configuration du chapitre Chrony (OBSPM, PTB, NPL, RISE, NIST). Les laboratoires géographiquement proches sont à privilégier : l’asymétrie réseau croît avec la distance, et c’est elle qui domine la mesure (section suivante).

Deux chaînes de traçabilité vers UTC#

       ┌────────────────────────┐                       ┌──────────────┐
       │  Laboratoire national  │                       │  Ce serveur  │
       │   (ex. SYRTE, Paris)   │                       │  (ce guide)  │
       └────────────────────────┘                       └──────────────┘
                    │                                           │
                    ▼ Fontaines Cs + masers H                   ▼ Horloges atomiques des satellites GNSS
              ┌───────────┐
              │  UTC(OP)  │──Circular T (BIPM)──────────────────►
              └───────────┘
                    │                                           │
                    ▼ signal PPS                                ▼ signal PPS reçu (~100 ns de la vraie UTC)
          ┌───────────────────┐                         ┌───────────────┐
          │  ntp-p1.obspm.fr  │                         │  ce serveur   │
          │    (Stratum 1)    │                         │  (Stratum 1)  │
          └───────────────────┘                         └───────────────┘

Les deux chaînes aboutissent à UTC, par des chemins différents : le laboratoire national produit sa réalisation d’UTC localement avec ses propres horloges ; ce serveur reçoit le temps GNSS, lui-même piloté sur des réalisations d’UTC par les opérateurs des constellations (chapitre Constellations GNSS). La traçabilité de l’un passe par le ciel, celle de l’autre par ses propres fontaines atomiques.

La comparaison mesurée en continu#

Puisque ntp-p1.obspm.fr fait partie des sources amont configurées de chrony (chapitre Chrony), ce serveur mesure en continu son écart avec la référence française :

chronyc sources -v
chronyc ntpdata ntp-p1.obspm.fr

Sortie réelle de ce serveur (seule l’adresse locale est remplacée par une adresse de documentation) :

$ chronyc ntpdata ntp-p1.obspm.fr
Remote address  : 145.238.80.80 (91EE5050)
Remote port     : 123
Local address   : 192.0.2.10 (C000020A)
Leap status     : Normal
Version         : 4
Mode            : Server
Stratum         : 1
Poll interval   : 9 (512 seconds)
Precision       : -18 (0.000003815 seconds)
Root delay      : 0.000000 seconds
Root dispersion : 0.000214 seconds
Reference ID    : 4D525300 (MRS)
Reference time  : Sun Jul 19 23:22:36 2026
Offset          : +0.000724725 seconds
Peer delay      : 0.003111070 seconds
Peer dispersion : 0.000003834 seconds
Response time   : 0.000230311 seconds
Jitter asymmetry: -0.46
NTP tests       : 111 111 1111
Interleaved     : No
Authenticated   : No
TX timestamping : Hardware
RX timestamping : Hardware
Total TX        : 92
Total RX        : 92
Total valid RX  : 92
Total good RX   : 84
Total kernel TX : 92
Total kernel RX : 16
Total HW TX     : 76
Total HW RX     : 76

La lecture champ par champ de cette seule sortie recoupe presque tous les chapitres de ce guide, au point d’en constituer un résumé :

ChampCe qu’il raconte, et où le guide l’explique
Remote addressl’adresse du serveur interrogé ; l’hexadécimal entre parenthèses (91EE5050) est la forme 32 bits de l’IPv4, exactement celle qu’un client de stratum 2 verrait comme Reference ID (chapitre Anatomie du paquet NTP)
Remote port : 123le port UDP historique de NTP, celui que le pare-feu traite en notrack avec limitation de débit (chapitre nftables)
Local addressl’interface par laquelle ce serveur est sorti (adresse remplacée ici par un préfixe de documentation)
Leap status : Normalaucune seconde intercalaire annoncée : la traduction du champ LI de l’en-tête (chapitres Anatomie du paquet NTP et Secondes intercalaires)
Version : 4NTPv4, RFC 5905 (champ VN de l’en-tête)
Mode : Servermode 4, la réponse d’un serveur à une requête client : le seul mode utilisé par ce projet (chapitre Anatomie du paquet NTP)
Stratum : 1l’interlocuteur est directement relié à sa référence physique : c’est la référence nationale elle-même qui répond (chapitre Vue d’ensemble)
Poll interval : 9l’intervalle d’interrogation en log₂ secondes (2⁹ = 512 s), ajusté dynamiquement par chrony
Precision : -18la précision que l’interlocuteur déclare pour sa propre horloge système, en log₂ secondes (2⁻¹⁸ ≈ 3,8 µs) ; différent du precision 1e-7 de la refclock PPS de ce guide (chapitre Chrony), en secondes décimales
Root delay / Root dispersiondélai et incertitude cumulés jusqu’au stratum 0 : quasi nuls ici, l’interlocuteur est sa référence (chapitre Anatomie du paquet NTP)
Reference ID : (MRS)l’identifiant ASCII déclaratif d’un stratum 1, ici la référence locale du laboratoire ; en face, ce serveur annonce PPS0 (chapitre Anatomie du paquet NTP, catalogue des sources)
Reference timel’instant de la dernière mise à jour de l’horloge de l’interlocuteur sur sa référence
Offsetl’écart apparent (+725 µs), calculé par la formule des quatre timestamps (chapitre Anatomie du paquet NTP) ; sa lecture critique est l’objet du présent chapitre
Peer delayl’aller-retour réseau jusqu’à Paris (3,1 ms), soit (T4-T1)-(T3-T2) : l’asymétrie inconnue de ce trajet fabrique l’essentiel de l’offset apparent
Peer dispersionl’incertitude propre de cette mesure (quelques µs seulement)
Response timele temps de traitement interne du serveur distant (230 µs) : le terme T3-T2, retranché du délai précisément parce qu’il ne traverse pas le réseau
Jitter asymmetryl’estimation par chrony du déséquilibre du bruit entre aller et retour : la limite fondamentale du protocole, rendue visible
NTP testsles dix tests de validité (1 = réussi, 0 = échoué), détaillés ci-dessous
Interleaved : Nole mode interleaved (xleave, chapitre Chrony) n’était pas actif sur cet échange : il ne s’enclenche que si les deux côtés le pratiquent
Authenticated : Nopas de NTS sur cette association amont ; ce serveur, lui, le propose à ses propres clients (chapitre NTS)
TX/RX timestamping : Hardwarel’horodatage au plus près du fil, des deux côtés de la carte réseau locale (chapitre PHC)
Total TX à Total good RXles compteurs de l’association : 92 requêtes, 92 réponses valides, dont 84 retenues ; les 8 autres ont échoué à l’un des tests ci-dessous
Total kernel/HW TX/RXla provenance des timestamps : 76 émissions et 76 réceptions horodatées par le matériel, le reste par le kernel (chapitre PHC)

Le découpage 111 111 1111 (3 + 3 + 4) correspond à six tests hérités de la RFC 5905 (les tests 1 à 3, puis 5 à 7 ; le test 4, un contrôle d’accès, n’est pas affiché par chrony) et à quatre tests propres à chrony, adossés à ses directives de configuration :

GroupeTestCe qui est vérifié
RFC 5905, test 1duplicatale paquet n’est pas une copie du précédent
RFC 5905, test 2usurpationle timestamp d’origine correspond à la dernière requête réellement émise, ce qui bloque les réponses forgées ou rejouées
RFC 5905, test 3timestamps validesles timestamps de réception et d’émission du serveur ne sont pas nuls
RFC 5905, test 5authentificationla signature du paquet est valide, ou aucune n’est requise (cas de cet échange, Authenticated : No)
RFC 5905, test 6serveur synchronisél’interlocuteur n’annonce pas une horloge non synchronisée (leap, stratum)
RFC 5905, test 7en-tête sainroot delay et root dispersion restent sous les maxima du protocole
chrony, test 1délai maximalle délai de la mesure reste sous maxdelay
chrony, test 2rapport de délaile délai ne dépasse pas maxdelayratio fois le minimum observé
chrony, test 3délai/dispersionla combinaison délai + vitesse de croissance de la dispersion reste sous maxdelaydevratio
chrony, test 4bouclepas de boucle de synchronisation : le serveur interrogé n’est pas lui-même synchronisé sur cette machine

Un seul 0 dans cette ligne suffit à écarter la mesure : c’est le filtrage d’entrée qui protège l’algorithme de sélection (chapitre Vue d’ensemble) de données corrompues, usurpées ou incohérentes.

En pratique, l’offset observé vis-à-vis d’un serveur institutionnel distant se situe typiquement dans la plage de quelques centaines de microsecondes (ici +725 µs). Ce chiffre demande une lecture attentive, car il mélange trois choses :

  1. l’erreur de l’horloge du laboratoire, négligeable (nanosecondes) ;
  2. l’erreur de l’horloge locale, faible (RMS offset autour de la microseconde en suivant ce guide) ;
  3. l’asymétrie du trajet réseau aller/retour, dominante (centaines de µs, non mesurable par NTP lui-même).

Autrement dit : l’offset affiché ne mesure ni la qualité de l’horloge du laboratoire ni vraiment celle du serveur local, mais surtout la qualité du chemin réseau entre les deux. C’est précisément l’enseignement central de ce chapitre.

L’autre axe de comparaison : la stabilité (écart-type d’Allan)#

L’offset analysé ci-dessus mesure l’exactitude. Une horloge se juge aussi sur sa stabilité : à quel point sa fréquence varie dans le temps. Pour la caractériser rigoureusement, au-delà du “skew” instantané (chapitre Métrologie), la métrologie du temps utilise l’écart-type d’Allan σᵧ(τ), une mesure de la variabilité de la fréquence d’une horloge, calculée sur des fenêtres d’observation de durée τ croissante (1 s, 10 s, 100 s, …). Contrairement à un simple écart-type statistique, il reste défini et interprétable même pour des sources de bruit non stationnaires (dérive lente, marche aléatoire de fréquence), ce qui le rend particulièrement adapté aux oscillateurs réels.

Sur ce serveur, la valeur mesurée en production à la cadence la plus fine (τ=4 s, poll 2) est σᵧ ≈ 1,7×10⁻⁸, la limite étant essentiellement fixée par le jitter d’interruption du noyau (chapitres Noyau temps réel et Affinité IRQ), pas par le récepteur GNSS lui-même.

Écart-type d'Allan σᵧ(τ) mesuré sur ce serveur, en échelle log-log.
Écart-type d'Allan mesuré sur 143 h de tracking.log, rotations comprises (colonne Freq ppm du PPS). Le plancher, ~1,7×10⁻⁸ à τ=4 s, est fixé par le jitter d'interruption du noyau ; la montée en √τ trahit une dérive corrélée (thermique) ; le maximum, ~3,3×10⁻⁷ vers τ=8192 s (environ 2,3 h), redescend ensuite jusqu'à ~7,9×10⁻⁸ vers τ=131 000 s (environ 36 h) : la discipline de chrony ne se contente pas de borner l'erreur de fréquence, elle la reprend en main sur les fenêtres les plus longues.

Un maser à hydrogène actif comme ceux du SYRTE affiche typiquement σᵧ(τ=1s) de l’ordre de 10⁻¹³, une fontaine atomique à césium descend vers 10⁻¹⁶ sur des durées d’intégration de l’ordre du jour (ordres de grandeur généraux de ce type de référence, pas des chiffres publiés spécifiques au SYRTE ; la Circular T du BIPM et les publications SYRTE donnent les valeurs exactes et sourcées). L’écart avec la valeur mesurée ci-dessus, 5 à 6 ordres de grandeur, est réel, mais la comparaison brute n’a pas vraiment de sens : ces deux σᵧ ne mesurent pas la même chose. Celui d’un maser ou d’une fontaine caractérise la stabilité intrinsèque de la référence atomique elle-même. Celui de ce serveur caractérise le résidu de l’estimation de chrony après correction continue par le PPS GNSS sur un quartz de grande consommation sans intérêt propre, dominé par le bruit de mesure à court terme et par la dérive thermique au-delà de quelques minutes. Comparer les deux revient à comparer la précision d’une horloge atomique posée sur une table stable à celle d’un altimètre embarqué qui recale sa dérive toutes les 4 secondes sur un signal GPS.

Sur l’axe de la stabilité comme sur celui de l’exactitude, la comparaison brute à une référence nationale induit en erreur : le verdict qui compte pour ce projet se lit ci-dessous.

Le vrai verdict de la comparaison#

CritèreLaboratoire national (ex. SYRTE)Ce serveur (ce guide)
Source du tempsFontaines Cs, masers HGNSS (PPS)
Écart à UTC de la sourcequelques ns~100 ns
Exactitude servie en local (LAN)sans objet (autre réseau)quelques µs
Exactitude servie via internetlimitée à ~0,5-2 ms par le réseau, voir plusidem
Coûtcher~250 €
Rôleréférence légale, métrologieservice de proximité, hobby

La ligne décisive est la troisième : dès qu’un client interroge un serveur à travers internet, l’asymétrie des chemins réseau (500 µs à plusieurs ms) écrase l’exactitude intrinsèque du serveur, quelle qu’elle soit. Interroger la meilleure horloge du pays à travers 15 sauts de routeurs donne un résultat moins exact qu’interroger un Raspberry Pi à 100 ns d’UTC situé sur le même commutateur Ethernet.

C’est la justification finale de tout ce guide : un Stratum 1 local ne prétend pas rivaliser avec un laboratoire national en métrologie : il gagne parce qu’il est proche. L’exactitude d’un service NTP se joue autant dans la topologie réseau que dans l’horloge elle-même.

Erreurs à éviter#

Ne jamais interpréter l’offset chronyc sources vers un serveur distant comme l’erreur de l’horloge locale. Cet offset inclut l’asymétrie réseau, invisible et non corrigeable par NTP (le protocole suppose un trajet aller/retour symétrique, RFC 5905, et chapitre Anatomie du paquet NTP). Un offset de 400 µs vers ntp-p1.obspm.fr alors que le RMS offset PPS local est de 0,07 µs signifie que le réseau est asymétrique, pas que l’horloge locale est fausse de 400 µs.

  • Conclure d’une seule mesure. L’asymétrie réseau varie avec la charge des liens (heures de bureau vs nuit). La dispersion sur plusieurs jours (chronyc sourcestats, chapitre Munin) doit être observée avant de tirer une conclusion.
  • Sur-solliciter les serveurs institutionnels. ntp-p1.obspm.fr annonce explicitement être réservé aux serveurs secondaires de sites importants. minpoll 6, une poignée de sources diversifiées (OBSPM, PTB, NPL, RISE, NIST), pas plus. La diversité protège aussi du cas où une source institutionnelle devient temporairement fausse ou injoignable.
  • Oublier que la comparaison ne vaut que si les deux extrémités horodatent bien. Le mode xleave (si la source NTP est compatible) et l’horodatage matériel (chapitres Chrony et PHC) réduisent la part de bruit local dans la mesure ; sans eux, c’est surtout la gigue de la pile réseau locale qui se mesure.

Vérifier#

# Écart courant vis-à-vis de chaque source institutionnelle
chronyc sources -v

# Statistiques accumulées (dispersion, dérive estimée par source)
chronyc sourcestats

# Détail complet de la mesure vers la référence française
chronyc ntpdata ntp-p1.obspm.fr
# Champs intéressants : "Peer delay" (aller/retour), "Root delay",
# "Offset", comparer l'offset à la moitié du peer delay donne un
# ordre de grandeur de l'asymétrie possible.

Un serveur en bonne santé montre : le PPS sélectionné (*), les sources institutionnelles cohérentes entre elles (+) avec des offsets de l’ordre de la centaine de µs, et un RMS offset local autour de la microseconde, les trois niveaux de la comparaison, chacun à sa place.


📚 Pour aller plus loin

  • SYRTE / Observatoire de Paris, Diffusion de l’heure par internet : NTP : la page de référence des serveurs NTP raccordés à UTC(OP).
  • BIPM, Circular T : publication mensuelle des écarts UTC − UTC(k) pour chaque laboratoire national, le bulletin de notes officiel des horloges nationales, en libre accès.
  • L’heure légale française est définie à partir d’UTC(OP) (décret n° 2017-292 relatif au temps légal français).
  • L’écart-type d’Allan a été introduit par David W. Allan en 1966 (Statistics of Atomic Frequency Standards, Proceedings of the IEEE) ; c’est l’outil de référence pour caractériser la stabilité de fréquence des oscillateurs et horloges atomiques.