Avoir l’heure et se synchroniser avec d’autres est longtemps resté un problème difficile. Les rythmes visibles du soleil et de la lune ne sont pas réguliers, et les divers instruments inventés au cours des âges étaient peu précis : clepsydre, sablier, horloges à ressort ou à balancier, etc. La première montre vraiment précise (quelques secondes sur une traversée de l’Atlantique) a été conçue par John Harrisson en 1773, pour gagner le concours de l’amirauté britannique ouvert à la suite du naufrage d’une partie de la flotte anglaise aux îles Scilly en 1714. Ce naufrage était directement dû à une mauvaise mesure du temps conduisant à une mauvaise estimation de la longitude. Plus tard, avec l’arrivée du train, des ratages de synchronisations temporelles ont conduit à de graves collisions ferroviaires. La situation ne s’est réellement améliorée que dans la seconde moitié du XXe siècle avec la généralisation du télégraphe, qui a permis l’harmonisation des heures locales et la création des fuseaux horaires. Aujourd’hui, il est possible d’atteindre une précision bien plus grande grâce aux horloges atomiques qui sont embarquées par exemple dans les satellites GPS et aux protocoles informatiques qui synchronisent les horloges des ordinateurs ou objets informatisés de toutes sortes.
Comme l’a déjà expliqué Edward Lee dans son séminaire du 11 janvier (voir lien ci-après), la synchronisation précise des horloges d’ordinateurs distants joue maintenant un rôle critique dans de nombreux nouveaux domaines d’application, allant des systèmes cyber-physiques contrôlant des objets ou des processus complexes à la réplication en temps réel de grandes bases de données distribuées, en passant par les grands réseaux de capteurs et d’actionneurs ou de gestion d’énergie. Nous montrerons qu’un contrôle fin du temps est essentiel pour assurer le déterminisme global de ces applications distribuées, qui est le plus souvent une condition obligatoire pour elles. Nous étudierons deux protocoles normalisés permettant la synchronisation temporelle à distance : d’abord PTP (Precise Time Protocol), protocole très précis car fondé sur la communication avec des horloges atomiques terrestres ou embaquées dans des satellites GPS, mais qui exige des réseaux à latence prévisible, puits NTP (Network Time Protocol), moins précis mais adapté aux réseaux asynchrones de type Internet et utilisé par tous les ordinateurs modernes.