Table des matières
Cet article est considéré par son auteur comme étant expérimental:
- Les explications sont probablement très parcellaires/superficielles ;
- L'information manque probablement de rigueur ;
- Les conclusions peuvent être largement discutables ;
Il est courant d'avoir au sein d'un réseau un serveur NTP, ce dernier est souvent synchronisé sur un serveur externe plus ou moins « proche » (strate) d'un autre serveur NTP branché lui-même directement sur une source de temps recevant un signal horaire (ex. un récepteur GPS) ou produisant un tel signal dans le cas d'une horloge atomique. Plusieurs pays comme les États Unis ou le Canada émettent dans la bande « Haute Fréquence - HF » (3-30 Mhz1) et sur plusieurs fréquences un signal horaire généré à partir d'horloge atomique qu'il est possible de recevoir avec un simple récepteur radio à ondes courtes du commerce.
Différentes échelles de temps
Le temps est, ironiquement, une notions dont nous nous servons en permanence mais qui est impossible à saisir car personne n'a pu en formuler une définition universelle. La définition du temps varie selon l’époque, les civilisations et l'usage qu'il en est fait. Sa mesure par l'humanité remonte à des temps immémoriaux et sa définition fait, aujourd’hui encore l'objet encore débats même au sein de la communauté scientifique. Ainsi il existe nombre d'échelles de temps dont certaines ne sont plus utilisées depuis longtemps et d'autres ont toujours cours en ce début de 21e siècle… Pour les plus connues:
- Le Temps Atomique international ou TAI :
- Le Temps Universel: est basé la rotation terrestre (qui n'est pas rigoureusement constante du fait des effets de marées dus à l'attraction solaire et lunaire). Le Temps Universel est actuellement établi par les astronomes en observant des quasars et comporte plusieurs sous définitions et donc plusieurs sous-échelle dont la plus connue est l'échelle UT1 (correspond au Temps solaire moyen2) ). Tant qu'à être dans le sujet une petite anecdote: aux alentours de 1820 il y avait exactement 86400 secondes SI dans un jour solaire moyen3) . ;
- Le Temps Universel Coordonné (TUC) ou UTC pour Universal Coordinated Time (attention, le T et le U sont inversés dans l'acronyme) : échelle intermédiaire aux deux précédentes. Le temps UTC est basé sur le TAI auquel on ajoute ou retranche des secondes intercalaires pour qu'il soit à ± 0,9 secondes du temps UT1. Cette échelle de temps sert de référence pour établir l'heure dite « légale » encore appelée « temps civil » que nous utilisons dans la vie courante : à cette heure UTC un nombre d'heures compris entre 1 a 12 s'ajoute (est du méridien de Greenwich) ou se retranche (ouest du mérien de Greenwich) en fonction du fuseau horaire de votre localité sur la planète ;
- Le temps sidéral (n'est pas un temps à proprement parler) : la notion de jour sidéral (dure environ ~23,93 heures soit environ 23 heures 56 minutes) est également couramment utilisée en astronomie.
- Le temps GPS : vous serez peut être surpris d'apprendre que l'heure donnée par un satellite GPS est… fausse ! Le « zéro » du temps GPS était le 6 Janvier 1980 à minuit et correspondait exactement au temps UTC jusqu'au 1er Juillet 1981. Le « hic » est que le temps GPS n'est pas corrigé par des secondes intercalaires comme l'est le temps UTC, et doit être corrigé par le récepteur GPS:
- devance actuellement (novembre 2012) le temps UTC de 16 secondes ;
- retarde de 19 secondes sur le temps TAI ;
- Loran-C (Long Range Navigation time): très utilisé par les marins jusqu'à une époque récente ;
- Temps Terrestre: il s'agit d'une autre échelle de temps utilisée en astronomie. Le Temps Terrestre devance le TAI d'environ 32 secondes ;
- Temps Moyen de Greenwhich (GMT) : par abus de langage on assimile l'heure GMT avec l'heure UTC (UTC+0).
L'étude des échelles de temps est un sujet aussi passionnant que très vaste avec nombre de problématiques intéressantes et un très grand nombre de page Web traitent du sujet, malheureusement cela dépasse largement la portée de cet article. Aussi ne nous étendons pas plus longtemps sur le sujet et passons directement à la pratique. Rappelez-vous simplement qu'il existe plusieurs échelles de temps et, la prochaine fois que quelqu’un vous demande l'heure essayez de faire le petit calcul suivant et ajoutez “Temps Universel Coordonné” à votre réponse… surprise garantie
- France : retranchez 2 heures (heure d'été) ou 1 heure (heure d'hiver) à l'heure légale;
- Canada : ajoutez un nombre selon votre fuseau horaire et/ou en heure avancée. Le Conseil National pour la Recherche Canada (CNRC-NRC) fournit une carte avec les décalages par rapport à l'heure UTC en fonction de l'heure d'été et l'heure d'hiver. Ainsi si vous vivez au Nouveau-Brunswick vous devrez ajouter 4 heures à l'heure HAA (5 heures à l'heure HA), si vous vivez au Québec et dans la moitié est de l'Ontario il vous faudra ajouter 5h à l'heure HE (6 heures à l'heure HAE), et ainsi de suite.
Les différents signaux horaires
L'heure légale des pays est généralement définie par des laboratoires nationaux dotés d'horloges atomiques ultra-précises (il est Les signaux horaires émis ont pour origine des horloges atomiques ultra-précises qui définissent le temps dit légal.
Indicatif radio | Pays | Fréquences (KHz) | Emplacement émetteur | Opérateur | Notes |
---|---|---|---|---|---|
CHU | Canada | 3300 7850 14670 | Ottawa (ON) - Photo | Institut des Étalons Nationaux de Mesure (Conseil National pour la Recherche Canada - CNRC/NRC) | CHU est reliée à trois horloges atomiques4) et donne l'heure officielle canadienne. Pour les passionnés: Les premières émissions de CHU remontent à 1934 Le signal horaire (long bip) entendu sur la Première Chaîne (SRC) à midi et à 13h00 HE/HAE sur CBC Radio One est également fournit par le CHRC/NRC. Le signal horaire entendu sur CBC est la plus ancienne et la plus courte émission radio-diffusée canadienne: sa première diffusion fût le 5 novembre 1939 5) Type de modulation: Amplitude (Bande Latérale Supérieure à porteuse réinsérée - peut être récepteur AM classique sans fonction Bande Latérale Unique (BLU) / Single Side Band (SSB)) Cordonnées géographiques émetteur: 45°17'43“ Nord / 75°45'28” Ouest (Carte) |
WWV | États-Unis | 2500 5000 10000 15000 20000 | Fort Collins (CO) - Photos | Time & Frequency Division (National Institute for Standards and Technology - NIST) | Tout comme le CNRC-NRC au Canada, le NIST diffuse l'heure officielle (légale) aux États-Unis Pour les passionnés6) : L'indicatif a été assigné au NIST en octobre 1919 (personne ne connait la raison du WWV), les premières émissions-tests remontent au mois de Mai 1920 et consistaient en des programmes musicaux. La station n'a commencé à émettre un signal horaire qu'au début 1923 ; WWV a connu plusieurs en plusieurs relocalisations (Washington DC, Maryland au début des années 30 puis Colorado depuis 1966) ; WWV a commencé à émettre en 5 Mhz en Janvier 1931, puis en 10 et 15 Mhz en 1935. WWV émettait également sur 25 MHz (abandonné en 1977), 30 Mhz et 35 Mhz (abandonnés en 1953) ; En plus des signaux horaires, l'heure était annoncée en style télégraphique (octobre 1945) puis utilisant la voix humaine (janvier 1950) ; La précision de WWV a bien évidemment suivi celle de l'évolution de la technologie, en 1958 la dérive n'excédait pas à 2 parties pour 10 milliards ; WWV a également commencé à émettre en bande LF (60 Khz) dès Juillet 1963 depuis Fort Collins (CO) sous le fameux indicatif WWVB: cette fréquence d'émission est toujours utilisée de nos jours vu qu'elle sert encore aujourd'hui à des millions d'horloges et de montres dites radio-pilotées (radio controlled clock) ! Type de modulation: Amplitude Cordonnées géographiques des émetteurs: 2500 Khz: 40°40'55“ Nord / 105°02'31” Ouest (Carte) 5000 Khz: 40°40'42“ Nord / 105°02'24” Ouest (Carte) 10000 Khz: 40°40'47“ Nord / 105°02'25” Ouest (Carte) 15000 Khz: 40°40'45“ Nord / 105°02'24” Ouest (Carte) 20000 Khz: 40°40'53“ Nord / 105°02'28” Ouest (Carte) |
WWVH | États-Unis (Hawaï) | 2500 5000 10000 15000 | Île de Kauai (HI) - photos | Time & Frequency Division (National Institute for Standards and Technology - NIST) | Pour les passionnés7) : Couvre la zone Pacifique : les antennes de WWVH sont directionnelles et dirigées vers l'ouest pour éviter les interférences avec les émetteurs situés au Colorado; Le format de transmission est très légèrement différent de WWV notamment au niveau des périodes de silence et annonces de l'heure en voix humaine. La raison est que certaines régions reçoivent WWV et WWVH selon les conditions ionosphériques (variables au cours de la journées) ; Cordonnées géographiques des émetteurs: 2500 Khz: 21°59'20“ Nord / 159°45'52” Ouest (Carte) 5000 Khz: 21°59'20“ Nord / 159°45'52” Ouest (Carte) 10000 Khz: 21°59'20“ Nord / 159°45'52” Ouest (Carte) 15000 Khz: 21°59'20“ Nord / 159°45'52” Ouest (Carte) |
France Inter | France | 162 | Allouis (département du Cher) - Photo | Télédiffusion de France (TDF) | L'émetteur d'Allouis est raccordée à une horloge atomique du Laboratoire National de Métrologie et d'Essais et diffuse l'heure légale française 8) ; L'heure diffusée depuis Allouis sert notamment de référence à la SNCF (transport ferroviaire) à RTE (distribution électrique), et qu'à Aéroports de Paris qui opère entre autres l'aéroport international Roissy Charles-de-Gaulle (CDG)9) ; Pour les passionnés: Si vous habitez en France ou à portée de l'émetteur ce détail ne vous aura pas échappé: le signal horaire est émis sur la même fréquence que France Inter! Pourtant si vous syntonisez France Inter en ondes longues vous n'entendrez pas la moindre trace d'un « bip » ou d'une quelconque manifestation de signal horaire et pourtant ce dernier est émis en permanence par l'émetteur d'Allouis. Point de magie ici! Le signal horaire est en fait encodé dans la porteuse en modulation de phase et il généralement n'est pas possible de le recevoir avec un récepteur radio « bas de gamme du commerce » l'étage de démodulation éliminant la porteuse. Quelques modèles de récepteurs offrent cependant une sortie donnant accès au signal au niveau de l'entrée du démodulateur. Il est en revanche possible de bricoler un récepteur dédié à ce signal. Le signal horaire intégré à la porteuse de France Inter suit un codage quasi-identique au fameux DCF77 allemand; La couverture de France Inter en ondes longues est extrêmement large (Finlande aux Îles Canaries10) ), la puissance de l'émetteur étant importante(2 mégawatts depuis 1981, réduite de moitié la nuit). Il n'est cependant pas possible de recevoir la station même depuis l'extrême est du Canada. La fréquence de France Inter peut être réquisitionnée comme fréquence d'urgence en cas de catastrophe majeure par les autorités pour diffuser toute information à la population ; Type de modulation: Phase (sur la porteuse) Cordonnées géographiques émetteur: 47°10'10“ Nord / 2°12'16” Est |
DCF77 | Allemagne | 77,5 | Mainflingen - - Photo | Media Broadcast GmbH (ancienne filiale de Deutsche Telekom AG) | DCF77 diffuse le signal horaire officiel de l'Allemagne (transmission en modulation d'amplitude comme WWV/WWVH et CHU) ; L'émetteur est directement raccordé à une horloge atomique sous la responsabilité du Physikalisch-Technische Bundesanstalt (PTB) qui est elle-même synchronisée sur les horloges maîtres du PTB ; Nombres d'horloges et de montres dites radio-pilotées se « calent » sur DCF77 en Europe ; Pour les passionnés: La portée du signal varie entre ~1500 kilomètres le jour à 2000 la nuit (selon conditions), il couvre ainsi toute l'Europe ; Depuis Juin 1983, DCF77 émet également l'information horaire par un encodage en modulation de phase sur la porteuse 11) . Cette information additionnelle peut être utilisée par le récepteur pour améliorer la précision de l'information horaire (incertitude au niveau des délais de transmission entre l'émetteur et le récepteur) ; DFC77 s'identifie par un code morse (250 Hz) à la 19ème, 39ème et 59ème minute de chaque heure entre les secondes 20 à 32; Type de modulation: Amplitude (signal également disponible en modulation de phase sur la porteuse) Cordonnées géographiques émetteur: 50°0′ 56″ Nord 9°00′39″ Est - Carte |
Traitement d'un signal radio dans une horloge radio-pilotée
Un récepteur d'horloge radio-pilotée (un serveur NTP synchronisé sur CHU/WWV en est une même s'il est un peu gros qu'une montre) fonctionne de similaire à votre radio AM/FM que vous utilisez dans la vie de tous les jours. Le schéma exact varie selon le type de récepteur (amplification directe, superhétérodyne…) mais le principe à base est toujours le même : sélection-démodulation-amplification.
Une petite analogie postale
Une image valant mille mots, prenons une analogie:
- Vous recevez plusieurs lettres en même temps dans votre boîte au lettre, cependant vous ne pouvez pas toutes les lire toutes les lire en même temps vous allez en choisir une en particulier ;
- La lettre n'est pas directement visible vu qu'elle est enveloppée et il va donc falloir ouvrir l'enveloppe pour lire la lettre. La existe par ailleurs différentes manières d'envelopper la lettre et donc différentes manières pour ouvrir l'enveloppe ;
- Étant donné que les lettres que vous recevez sont toutes écrites en très petits caractère, il va falloir prendre une loupe pour grossir le texte et être en mesure de le lire et donc d'interpréter le message contenu dans la lettre;
En radiophonie la démarche est grossièrement la même:
- L'antenne du récepteur capte toutes les ondes électromagnétiques dans la plage de fréquences pour laquelle elle a été conçue. Elle « entend » donc simultanément plusieurs conversations (à l'instar de la boîte aux lettres qui reçoit plusieurs lettres en même temps);
- Il faut donc isoler une conversation en particulier (choix d'une lettre à lire). Dans un récepteur radio la sélection d'une « conversation » s’effectue par ce que l'on appelle le sélecteur d'antenne 12) et c'est sur ce dernier que vous jouez lorsque vous syntonisez (mot utilisé par les pros pour « réglez ») votre récepteur sur une fréquence d'émission donnée ;
- Tout comme la lettre qui est enveloppée, le signal que vous souhaitez entendre a été lui aussi enveloppé (modulé en jargon radiophonique) pour pouvoir être transmis et il faut donc le démoduler pour pouvoir l'entendre.
- La démodulation du signal est prise en charge par ce que l'on appelle tout naturellement un étage de démodulation ou démodulateur qui est dans les fait un circuit électronique plus ou moins complexe selon le type de récepteur radio et le type de modulation utilisée pour le signal radio reçu (comparable au type d'enveloppe utilisé pour la lettre).
- A la sortie du démodulateur le signal original est retrouvé mais n'est pas encore audible car encore faible (lettre écrite en petits caractères dans l'analogie précédente) et il faut donc l'amplifier un peu comme s'il était grossi au travers d'une loupe en l'injectant dans un autre étage dit amplificateur;
- Une fois amplifié, le signal est dirigé vers le haut parleur de votre récepteur radio pour que vous puissiez l'entendre;
… appliquée à notre cas de figure (configuration matérielle)
Dans le cas de notre serveur NTP sur CHU, il s'agit exactement du même principe. La seule différence est que le signal démodulé/amplifié par l'étage de réception radio sera directement injecté à un ordinateur fonctionnant avec GNU/Linux par l'une de ses entrées audio au lieu d'être écouté sur un haut parleur. Sur ce même ordinateur GNU/Linux sera installé et configuré un serveur de temps NTP qui a la possibilité d'« écouter » sur une entrée audio pour analyser en quasi-temps réel13) le signal de CHU/Canada reçu.
Pour l'étage radio il y a plusieurs possibilités:
- un récepteur radio 100% cousu à la main (un étage radio-fréquences est une « œuvre artistique » délicate à concevoir et à réaliser…)
- acheter un récepteur tout fait ;
- utiliser une Software Defined Radio ou SDR (beaucoup trop chère pour ce petit projet) ;
Heureux « hasard » ! CHU émet en modulation d'amplitude sur trois fréquences : 3330 Khz, 7850 Khz et 14670 Khz autrement dit…. dans les ondes dites « courtes » (gamme de fréquence 3000-30 000 Khz) et que la totalité des petits récepteurs radio du commerce conçus pour cette gammes de fréquence est donc théoriquement en mesure de recevoir. Par ailleurs bien que CHU soit émise en bande latérale supérieure, la porteuse est présente supprimée aussi la station peut être reçue par n'importe que récepteur ondes courtes, qu'il soit doté un étage de réception en BLU/SSB (Bande Latérale Unique/Single Side Band) ou pas. Autrement dit: la quasi-totalité des récepteurs du marché, pour peu qu'ils soient suffisamment sensibles pour détecter la station bien évidemment. De plus n'ayant ni les moyens d'investir dans une SDR et ni les compétences en réception radio permettant de construire un récepteur, la seconde option a été retenue.
Pour les besoins de la cause une petite radio portative (une Tecsun PL-660 pour ne pas la nommer) gracieusement prêtée par un des membres de LinuQ a été utilisée. Ce n'est pas la seule possibilité ni la solution idéale, cette radio était la seule à portée de main à LinuQ à l'époque les expérimentations à l'origine de cet article ont été menées.
Petits rappels….
- Cela sera hélas toujours une rumeur tenace et pourtant…. et pourtant…. : un serveur NTP ne donnera jamais l'heure vraie même s'il est raccordé sur les meilleures horloges atomiques du monde. Il y a une raison fort simple: le temps a un caractère ponctuel et toute mesure va non seulement induire des latences mais également des incertitudes si minimes soient-elles.
- Toute horloge, même la meilleure du monde, a une dérive (son « tic-tac » n'est pas constant) et c'est également vrai pour les horloges atomiques. Ce qui est vrai avec une horloge atomique est encore plus vrai avec les ordinateurs qui disposent pour leur immense majorité d'oscillateurs à quartz…. Si elle n'est pas corrigée, la dérive de l'heure d'un ordinateur peut atteindre plusieurs secondes par an.
- Le fonctionnement de NTP repose à la base sur principes statistiques: son objectif est de corriger une dérive de l'heure d'un serveur à partir de références de temps fournies soit par d'autres serveurs situés sur un réseau local (LAN) ou distant (WAN), soit à partir d'horloges de références (horloge atomique, récepteur GPS, etc).
- De part sa nature statistique, une correction opérée par NTP est « lente » : plus le temps passe, plus NTP sera (en principe) en mesure d'affiner son analyse statistique et donc d'apporter une correction précise 14) à l'heure locale d'un serveur. Il n'est pas rare qu'un serveur NTP mette plusieurs minutes à se synchroniser sur des serveurs NTP tiers ou des horloges de référence.
Configuration du démon NTP et d'Alsa
Plusieurs logiciels implémentent le protocole NTP, tant au niveau de la partie client que la partie serveur. Parmi ces derniers citons l'implémentation de référence réalisée par le NTP project (Université du Delaware) qui est présente dans nombre de distributions Linux. En date de novembre 2012, l'implémentation de référence supporte la version 4 du protocole telle que définie dans la RFC 5905 tout en restant compatible avec les versions antérieures définies respectivement dans les RFC 1305 pour la version 3, RFC 1119 pour la version 2 et RFC 1059 pour la version 1. Dans le reste de cet article c'est à cette implémentation de référence à laquelle il est fait allusion.
<label_boite_information> Information </label_boite_information>
Il existe par ailleurs un sous-ensemble de NTP connu sous le nom de SNTP (Simple Network Time Protocol) qui est documenté actuellement par la RFC 5905. La différence entre l'implémentation complète et l'implémentation simplifiée est qu'un serveur SNTP ne peut pas « digérer » plusieurs sources d'information et qu'il ne dispose donc pas d'algorithmes mitigation 15) . Aussi est-il recommandé de n'utiliser un serveur SNTP que sur des serveurs dits de strate 1 et donc directement raccordés à une horloge de référence (strate 0). Théoriquement il est impossible de distinguer un serveur SNTP d'un serveur NTP à moins qu'il se signale comme tel au niveau de la référence de temps utilisée. Ce qui est vrai pour le serveur est aussi vrai pour le client: seul un seul serveur pourra être interrogé…
Émulation OSS dans ALSA
Le démon NTP étant une implémentation multiplateforme (Linux, *BSD et autres systèmes Unix), il ne sait se servir que d'Open Sound System pour capturer un flux audio et ne connait donc aucunement l'interface Advanced Linux Sound Architecture (ALSA) qui est désormais l'interface audio standard 16) des systèmes Linux. Open Sound est cependant disponible sur les systèmes Linux de deux manières :
- Nativement en téléchargeant et installant le nécessaire depuis le site web de 4Front Technologies ;
- En utilisant l'émulation Open Sound proposée par ALSA.
La version native d'Open Sound ne supportant qu'un nombre très limité de modèles de périphériques audio et nécessitant quelques opérations additionnelles, le choix a été d'utiliser l'émulation OSS d'ALSA.17). La première étape consiste à vérifier que l’interface ALSA soit supportée sur votre distribution Linux ce qui devrait normalement être le cas, à moins vous n'utilisiez une distribution Linux ésotérique ou que vous ayez reconfiguré/reconstruit votre noyau. Si l'interface ALSA est supportée, il existe un répertoire nommé asound dans le répertoire /proc:
<pre<noinclude></noinclude> class=“terminal”>~# ls /proc -ls /proc</pre<noinclude></noinclude»
<pre<noinclude></noinclude> class=“resultatterminal”> dr-xr-xr-x 7 root root 0 Nov 28 20:53 asound </pre<noinclude></noinclude»
Il faut vérifier ensuite si le matériel audio (« carte son ») est détecté et reconnu par ALSA et donc consulter le pseudo-fichier /proc/asound/cards :
<pre<noinclude></noinclude> class=“terminal”>~# cat /proc/asound/cards</pre<noinclude></noinclude»
<pre<noinclude></noinclude> class=“resultatterminal”> 0 [D2X ]: AV200 - Xonar D2X Asus Virtuoso 200 at 0xc000, irq 16 1 [Generic ]: HDA-Intel - HD-Audio Generic HD-Audio Generic at 0xfbe40000 irq 70 2 [U0x41e0x30d3 ]: USB-Audio - USB Device 0x41e:0x30d3 USB Device 0x41e:0x30d3 at usb-0000:00:1a.0-1.5, full speed </pre<noinclude></noinclude»
Cela n'est pas très clairement indiqué par /proc/asound/cards mais le troisième périphérique audio est ici dongle USB Creative SoundBlaster Live:
<pre<noinclude></noinclude> class=“terminal”>~# lsusb</pre<noinclude></noinclude»
<pre<noinclude></noinclude> class=“resultatterminal”> (…) Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 004 Device 005: ID 041e:30d3 Creative Technology, Ltd Sound Blaster Play! Bus 005 Device 007: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser </pre<noinclude></noinclude»
L'activation de l'émulation OSS dans Alsa est fort simple : il suffit d'insérer le module noyau snd-pcm-oss (les autres modules nécessaires seront alors automatiquement chargés).
<pre<noinclude></noinclude> class=“terminal”> ~# modprobe snd-pcm-oss</pre<noinclude></noinclude»
<pre<noinclude></noinclude> class=“resultatterminal”> </pre<noinclude></noinclude»
Configuration de la dicipline CHU
Premiers essais
Notes et références