Le Protocole PTP (Precision Time Protocol), tel qu'il est défini dans la norme IEEE-1588, offre la possibilité de synchroniser précisément des équipements sur un réseau local (LAN). Un serveur de temps réseau utilisant le PTP est couramment appelé « IEEE-1588 Grandmaster » ou « PTP Grandmaster ».
Besoins & applications
Dans le but de synchroniser des horloges réparties au travers d’un réseau local (LAN), l’utilisation des protocoles NTP (Network Time Protocol) et SNTP (Simple Network Time Protocol) constituent les méthodes les plus connues pour atteindre un niveau de précision de l’ordre de la milliseconde. Cependant, dans le cas de certains réseaux comme dans l’industrie, la santé et les transports, la synchronisation horaire des équipements nécessite une précision encore plus grande. Ainsi, l’utilisation du protocole PTP est requise pour tous les processus demandant une synchronisation pointue, tels que les systèmes automatisés et de contrôle, les systèmes de mesure et de tests automatiques, les centres de production, de transmission et de distribution d’énergie ainsi que les télécommunications.
Comment fonctionne le protocole PTP ?
Une solution simple pour synchroniser les horloges présentes sur un réseau Ethernet pourrait consister à envoyer simplement une trame (un message) contenant l’information horaire de l’horloge principale vers les horloges secondaires. Une fois la trame reçue, les horloges secondaires s’ajusteraient à la valeur transmise par l’horloge principale. Cependant, le temps nécessaire au transit d’une trame peut être affecté par des délais de propagation sur le réseau, par des délais provoqués par la mise en file d’attente des processus, la création de messages IP et la latence. Cela signifie qu’au moment où la trame est finalement reçue par les horloges secondaires, la valeur transmise dans cette trame n’est plus représentative de l’information horaire exacte donnée à l’origine par l’horloge principale. Le protocole PTP résout ces problèmes en utilisant des échanges de messages horodatés entre les différents nœuds PTP afin de déterminer les décalages d’horloge et les retards inhérents au fonctionnement d’un réseau.
Le protocole PTP définit deux types d’horloge : principales et secondaires. Une horloge dans un appareil terminal est dite secondaire. Une horloge principale est idéalement contrôlée par une horloge radio externe ou un récepteur GPS. Elle synchronise les horloges secondaires auxquelles elle est connectée. Un réseau comporte également des composants de transmission, tel qu’un switch Ethernet avec la fonction de « Boundary Clock ». La « Boundary Clock » est un équipement secondaire de l’horloge principale qui prend toutefois le rôle d’horloge primaire auprès des horloges secondaires (équipements terminaux) à qui elle sert de transmetteur sur le réseau. Chaque équipement secondaire est synchronisé en temps, en fréquence et en phase sur l’horloge principale et, par extension, est également synchronisé à tous les autres nœuds secondaires.
Quels sont les principes de base de la synchronisation PTP ?
Le protocole PTP définit les messages de synchronisation utilisés entre une horloge principale et une horloge secondaire, de manière similaire au mode client-serveur utilisé dans le protocole NTP. (on parlait auparavant de mode maître-esclave). L’horloge principale fournit l’information horaire et l’horloge secondaire se synchronise sur elle. Une horloge principale dite « Grandmaster » est synchronisée par une source horaire de référence tels que le GPS.
Les messages du protocole comprennent le message de synchronisation de l’horloge principale (sync message), le message de suivi (sync follow up message) en mode Two Step, le message de requête de délai de l’horloge secondaire (delay request message) et le message de réponse au délai de l’horloge principale (delay response message).
La synchronisation d’horloge par LAN nécessite au moins un équipement principal et un autre secondaire. Plusieurs horloges secondaires peuvent se synchroniser sur une seule horloge principale. L’horloge principale fournit les messages de synchronisation horaire que les équipements secondaires utilisent pour corriger leurs horloges locales.
Des horodatages précis sont effectifs entre l’horloge principale et les horloges secondaires. Ces horodatages sont utilisés pour déterminer la latence du réseau nécessaire afin de synchroniser correctement l’équipement secondaire à l’horloge principale. Un message de synchronisation (sync message) est généralement transmis toutes les deux secondes par l’horloge principale tandis qu’un message de requête de délai est généralement émis moins fréquemment par l’horloge secondaire, à raison d’environ une requête par minute.
Quatre horodatages sont effectifs entre l’horloge principale et les secondaires. Ces horodatages sont nécessaires pour le calcul de l’offset de l’horloge secondaire. Ces derniers sont communément appelés T1, T2, T3 et T4 (voir le schéma ci-dessous).
Deux causes d’écart doivent être déterminées, la première est le décalage initial entre l’horloge principale et l’horloge secondaire et la seconde est le délai d’acheminement des messages entre l’horloge principale et l’horloge secondaire.
Premièrement, on détermine le décalage initial :
Pour déterminer le décalage initial, l’horloge principale envoie un message de synchronisation à l’instant T1. Ce message est reçu par l’horloge secondaire à l’instant T2 (valeur conservée dans la mémoire de l’horloge secondaire). En mode Two Step, un second message (sync follow up) est ensuite envoyé par l’horloge principale contenant l’horodatage de T1.
L’horloge secondaire corrige alors son horloge locale de la valeur : T2 – T1. A l’issue de ce recalage, les deux horloges sont uniquement décalées par le temps mis par le message de synchronisation pour atteindre l’horloge secondaire. Cette durée est appelée le délai d’acheminement.
Pour le déterminer, l’horloge secondaire envoie une requête (delay request) à l’horloge principale à l’instant T3. L’horloge principale transmet alors à l’horloge secondaire l’heure d’arrivée (T4) de son message de requête.
Le décalage entre T3 et T4 est dû au délai d’acheminement du message de requête auquel s’ajoute le délai d’acheminement du message de synchronisation préalable qui avait créé un décalage avant même l’envoi du message de requête. La valeur de T4 – T3 représente donc 2 fois le délai d’acheminement.
L’horloge secondaire corrige maintenant son horloge locale de la valeur du délai d’acheminement : (T4 – T3) / 2. L’horloge principale et l’horloge secondaire sont maintenant synchronisées.