Pour des opérations logicielles ou industrielles de très nombreux secteurs économiques, il est important de s’assurer que les machines d’un réseau informatique sont synchronisées. Il existe plusieurs façons de synchroniser temporellement des machines via le réseau. Pour cela, on utilise des protocoles de synchronisation temporelle qui permettent de synchroniser différentes machines via la diffusion d’horodatages. Ces protocoles diffusent la plupart du temps, l’heure d’une horloge de référence comme celle d’une horloge atomique ou un GPS. Le problème est que, plus un réseau est étendu, plus il peut être difficile de synchroniser les machines.
A l’heure actuelle, les protocoles les plus répandus sont le protocole NTP (Network Time Protocol) et le protocole PTP (Precision Time Protocol). Chacun d’entre eux répondent à des objectifs spécifiques qui s’avèrent plus ou moins adaptés en fonction des applications requises.
NTP
Le protocole NTP (Network Time Protocol) est un des premiers protocoles de synchronisation temporelle à avoir été créé. Il a été normalisé pour la première fois en 1985 dans la RFC 958. Dès la version 0, ce protocole offre une précision inférieure à la seconde. La version 1 sera présentée en 1988 dans la RFC 1059. Puis, très rapidement (l’année suivante) la version 2 de NTP sera formalisée principalement pour rajouter un mécanisme d’authentification (version RFC 1119). La version 3 sera présentée en 1992 dans la RFC 1305. Enfin la version actuelle (version 4) est parue en juin 2010 dans la RFC 5905.
NTP est un protocole hiérarchique. Au sommet de la hiérarchie se trouve l’horloge de référence qui va diffuser son heure à l’ensemble du réseau NTP. Le réseau NTP est organisé en couches qui se définissent par leur distance à l’horloge de référence. Cette dernière se trouve en couche 0.
Le protocole est organisé de façon arborescente : les premiers serveurs NTP se trouvent au niveau de la couche 1 et sont synchronisés sur une source de référence (horloge atomique, récepteur de temps codé, récepteur GPS...). Les serveurs suivants se trouvent sur la couche 2 et se synchronisent sur un ou plusieurs serveurs de la couche 1 ; ainsi de suite jusqu’à la dernière couche.
Le standard prévoit un maximum de 16 couches mais en pratique la majorité des serveurs se trouve en couche 3 et 4. Plus les serveurs sont loin dans la hiérarchie, plus les délais de communication s’accumulent et perturbent la qualité de la synchronisation.
Grâce à ses différentes évolutions, NTP permet aujourd’hui d’atteindre une précision de l’ordre de la microseconde, tout en protégeant ses communications si on le souhaite. Cela en fait un choix simple à déployer sur des réseaux qui peuvent être assez étendus.
PTP
Le protocole PTP (Precision Time Protocol) est un protocole plus récent et normalisé par l’institut IEEE sous le nom IEEE-1588. Sa première version date de 2002 et il a été révisé en 2008 et 2019. La version de 2008 est considérée comme la version 2 et n’est pas compatible avec la version 2002. La version de 2019 n’est pas une version majeure et propose simplement quelques optimisations, par exemple pour la gestion des environnements multi-domaines.
PTP offre une très grande précision qui peut aller jusqu’à la nanoseconde sur les réseaux locaux. PTP étant un protocole réseau, il peut fonctionner sur de grandes distances, même si des cheminements plus longs entre les horloges, font que les délais s’accumulent. Il devient alors plus difficile d’obtenir la précision maximum. Contrairement à NTP, le Precision Time Protocol repose sur des horodatages matériels et non logiciels, il nécessite donc du matériel spécifique.
PTP fonctionne en domaines, domaines qui forment un ensemble d’horloges synchronisées entre-elles. La configuration par défaut ne contient qu’un seul domaine. Le protocole PTP fonctionne sur un mode asymétrique avec une horloge maître qui va diffuser son horodatage aux horloges esclaves. Ces dernières à leur tour, vont envoyer des messages à l’horloge maître pour calculer le délai qui les séparent, en vue de synchroniser correctement leur horloge. Afin de définir qui sera l’horloge maître d’un domaine, PTP utilise l’algorithme BMCA (Best Master Clock Algorithm). BMCA observe chaque horloge diffuser ses caractéristiques aux autres horloges puis identifie la plus appropriée à devenir l’horloge maître. L’horloge maître va ensuite diffuser le temps d’une horloge de référence (horloge atomique ou GPS) pour obtenir la synchronisation la plus précise possible.
Grâce à sa très grande précision et son fonctionnement sur des réseaux standards, PTP est très utilisé dans de nombreuses industries ayant des besoins exigeants en matière de synchronisation temporelle. Ces industries ont généralement introduit des profils (configuration PTP) adaptés aux besoins spécifiques et propres à chaque application.
Quel protocole, pour quel besoin ?
Ces protocoles ne répondent pas aux mêmes besoins. NTP est un des protocoles pionnier de la synchronisation temporelle. Il a su évoluer pour ne pas devenir obsolète et continue de répondre aux besoins de nombreux utilisateurs. Sa simplicité de mise en place, les nombreux serveurs NTP disponibles publiquement et sa précision de l’ordre de la microseconde en font un choix évident pour quiconque ne développe pas d’applications et dont les besoins de synchronisation ne sont pas critiques. Ainsi, les applications qui ont la possibilité d’accepter un léger délai entre les différentes horloges peuvent entièrement se reposer sur NTP, qui est uniquement déployé logiciellement sur un réseau.
PTP offre de meilleures garanties, au prix d’un déploiement et d’une maintenance plus compliqués. Un effort de standardisation permet d’utiliser des profils adaptés à chaque application facilitant la mise en service et l’interopérabilité du matériel. Les équipements réseau (commutateur ou routeur) prennent souvent en charge nativement le protocole PTP, ce qui permet d’avoir une meilleure estimation des délais et donc d’obtenir une plus grande précision sur de grandes distances. PTP est par ailleurs indispensable pour les applications industrielles les plus exigeantes et pour lesquelles un problème de synchronisation temporelle aurait un grand impact.
En définitive le choix du protocole de synchronisation dépend de nombreux paramètres, comme l’application envisagée, de la taille du réseau à synchroniser, de la précision attendue, etc.
Avec plus de 150 ans d’expertise en gestion des temps et présent dans plus de 140 pays, Bodet Time est un acteur français majeur de la synchronisation temporelle et du temps fréquence. La conception modulaire des serveurs de temps Netsilon s’adapte et évolue en fonction des besoins et des applications, en proposant notamment une synchronisation temporelle via les protocoles NTP et PTP.