Cet article est considéré par son auteur comme étant expérimental:
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.
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:
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
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 |
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 image valant mille mots, prenons une analogie:
En radiophonie la démarche est grossièrement la même:
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:
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.
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é…
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 :
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»