Il est aujourd’hui rare de trouver une application qui implique qu’une seule machine. La plupart des tâches réalisées impliquent la communication entre plusieurs équipements. Dès lors que des machines doivent communiquer entre elles, il est important que leurs horloges soient synchronisées pour qu’elles puissent s’accorder sur l’ordre et la durée des évènements.
La synchronisation temporelle d’un réseau informatique permet ainsi de s’assurer que toutes les machines qui doivent communiquer entre elles ont la « même » heure. Avoir des horloges précises et synchronisées permet des communications simplifiées qui n’échouent pas, augmente la sécurité du réseau en permettant par exemple d’avoir des logs plus précis ou d’éviter les failles liées au rejeu des messages réseau.
Pour synchroniser un réseau temporel, il y a plusieurs étapes essentielles à suivre : récupérer une source de temps en tant qu’horloge de référence, diffuser l’heure de référence sur le réseau et enfin, corriger le décalage des horloges présentes sur le réseau.
Horloge de référence et diffusion du temps sur le réseau
La première tâche à réaliser pour la synchronisation temporelle d’un réseau est de choisir une horloge de référence. Une horloge de référence se doit d’avoir une grande précision et une grande stabilité. C’est en effet son heure qui servira à mettre à jour l’ensemble des horloges du réseau. Les horloges de référence sont très souvent des horloges atomiques ou des GPS. Ces deux types d’horloges fournissent des horodatages extrêmement précis et sont très stables dans le temps. Il faut néanmoins choisir si l’on utilise un serveur public ou si l’on définit soi-même sa propre horloge de référence. Bien évidemment, utiliser une horloge de référence publique coûte moins cher mais peut représenter un problème de sécurité. Quelle que soit la décision prise, il est toujours préférable de multiplier les horloges de référence car nul matériel n’est infaillible et une panne ou un décalage peuvent toujours subvenir, même sur des équipements aussi précis. Si l’on multiplie les horloges de référence, on se protège mieux des pannes éventuelles, et cela permet de maintenir la précision de la synchronisation temporelle dans son réseau.
Une fois que l’on possède un certain nombre de sources de temps, il est important de pouvoir diffuser l’heure de référence dans le réseau afin de synchroniser les équipements. Il existe pour cela différents protocoles de synchronisation temporelle, les plus populaires étant NTP, SNTP, PTP ou encore IRIG. Le choix du protocole de synchronisation temporelle dépend de la précision requise par les applications sur le réseau et de la difficulté/coût du déploiement du protocole.
NTP
Le protocole NTP (Network Time Protocol) est un des premiers protocoles à être apparu. Il est aujourd’hui très largement utilisé et a connu de nombreuses évolutions pour améliorer ses performances et sa sécurité (la version courante actuelle étant la version 4). Le protocole NTP est un protocole hiérarchique avec une horloge de référence située tout en haut de la pyramide en strate 0 et chaque serveur relié à au moins un serveur de strate i est un serveur de strate i+1. Il n’est pas recommandé d’avoir des réseaux NTP trop profonds car cela impacte fortement la précision de la synchronisation temporelle. Il existe de nombreux serveurs de strate 1 ou strate 2 accessibles publiquement pour synchroniser son réseau. NTP est un protocole très simple à mettre en place mais n’apportant une précision que de l’ordre de la milliseconde. Bien que cette précision soit suffisante pour un grand nombre d’applications, il en existe de nombreuses autres qui requièrent une précision allant au-delà.
SNTP
SNTP (Simple Network Time Protocol) est une version simplifiée du protocole NTP qui ne permet pas d’atteindre les mêmes performances en termes de précision mais qui est beaucoup plus simple, notamment au niveau des algorithmes employés pour mettre à jour les horloges des équipements réseaux.
PTP
Le protocole PTP (Precision Time Protocol) est un protocole de synchronisation temporelle permettant d’atteindre une précision théorique de l’ordre de la nanoseconde sur des réseaux locaux. Cela fait de PTP le protocole plébiscité pour les applications ayant des besoins importants de précision comme les secteurs des télécommunications ou de la finance. PTP a un fonctionnement en mode maître-esclave pour identifier l’horloge principale, c’est-à-dire, celle qui synchronise les autres horloges sur le réseau. La première phase du protocole consiste à identifier les horloges maîtres (celles qui ont les meilleurs paramètres parmi un ensemble prédéfini), pour leur permettre ensuite de distribuer leur heure à l’ensemble du réseau qui leur est attribué.
IRIG
IRIG (Inter-Range Instrumentation Group) est une famille de protocoles offrant des précisions variables dont tous les membres offrent une grande robustesse. Les protocoles IRIG nécessitent toutefois du matériel spécifique et ne sont pas prévus pour opérer sur de grandes distances. Il s’agit de protocoles à privilégier dans des environnements où la robustesse et la sécurité sont à privilégier comme les applications militaires ou dans le secteur aérospatial. Les serveurs de temps IRIG diffusent en continu des horodatages à une fréquence qui dépend du protocole précis retenu.
Plus d’informations sur la différence entre les protocoles NTP, PTP et IRIG ?
comparaison des protocoles de synchronisation
Mise à jour des horloges du réseau
Le but de cette étape est de savoir comment mettre à jour l’horloge à partir de l’heure reçue. Cette étape est cruciale et dépend du protocole sélectionné précédemment. En effet, chaque protocole définit différents algorithmes à utiliser permettant de savoir comment mettre à jour une horloge. L’objectif étant toujours d’offrir la plus grande précision, les différents algorithmes vont filtrer les différentes sources de temps pour sélectionner la meilleure pour mettre à jour les horloges du réseau. Toujours en vue d’améliorer la qualité de la synchronisation du réseau, d’autres algorithmes vont supprimer le bruit dans les messages reçus au moment où les horodatages circulent sur le réseau.
Les corrections des horloges d’un réseau peuvent se faire progressivement pour éviter les sauts trop brusques si un décalage important s’est introduit entre l’horloge locale et l’horloge de référence. Effectivement, la correction directe d’un décalage important pourrait avoir pour effet un dysfonctionnement des applications reposant sur l’heure de l’horloge corrigée.
Tous ces mécanismes sont transparents pour l’utilisateur puisqu’ils dépendent du protocole de synchronisation temporelle retenu.
Il est également important de se préoccuper des problématiques de sécurité de la synchronisation temporelle. En effet, un très grand nombre d’applications reposent sur une synchronisation temporelle précise : il s’agit donc d’un vecteur d’attaque qui peut entraîner des dysfonctionnements dans les applications. La plupart des protocoles de synchronisation permettent de sécuriser les communications pour s’assurer que des agents extérieurs ne puissent pas interférer avec la synchronisation temporelle.
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 horaire et du temps fréquence. La conception modulaire de nos serveurs de temps Netsilon s’adapte et évolue en fonction des besoins et applications et propose au choix, une synchronisation horaire IRIG, PTP et NTP.
Un projet ? Besoin d’accompagnement ?