Le protocole PTP est un protocole standardisé permettant la distribution de la fréquence et du temps de façon précise sur un réseau par paquets (ethernet).

John Eidson a initialement dirigé l’effort de normalisation IEEE 1588-2002 afin de combler les lacunes du protocole NTP dont la précision est limitée à la milliseconde. En effet bien des applications dans les domaines de l’énergie, des télécommunications, finances, satellites, mesures etc… nécessitent une précision inférieure à la ms.

Le protocole PTP est défini par l’association IEEE, la dernière version est IEEE 1588-2019 a été publiée en novembre 2019 et connue sous le nom de PTPv2.1.

Initialement défini dans la norme IEEE 1588-2002 publiée en 2002, la précision et la robustesse ont été améliorées en 2008 générant le protocole PTP version 2 (PTPv2) non rétro-compatible avec la version 2002 (PTPv1). Enfin plus récemment une version PTPv2.1 IEEE 1588-2019, rétro-compatible avec la version PTP v2, a été publiée en novembre 2019.

L’objectif du Precise Time Protocol est de garantir un horodatage précis à la micro-seconde. En effet de nombreuses applications échangeant de plus en plus d’informations sur IP ne pouvaient se contenter du protocole NTP insuffisamment précis et qui, fonction de la charge du réseau, donne des valeurs différentes.

Qu’est-ce qui fait que le protocole PTP est plus précis ?

Le tableau suivant résume les différences entre les 3 protocoles souvent utilisés pour la synchronisation : seul le protocole PTP permet une précision inférieure à la micro-seconde :

IRIG NTP PTP
Précision (typique) 1 us 1ms <1 us
Réseau Coax dédié LAN, WAN LAN
Auto-calibration NON OUI OUI
Hardware spécialisé OUI NON OUI

La réponse à cette question est : « le hardware timestamping » : les messages échangés sont datés au niveau de la couche physique, éliminant ainsi les retards dues aux couches logicielles. Cela nécessite donc un hardware spécialisé pour effectuer cette opération.

protocole-ptpt

De plus des mécanismes au niveau de chaque élément du réseau ont été définis pour minimer/compenser les retards dus aux transmissions des messages. Pour cela 4 « types d’horloges » ont été définis :

Master Clock : horloge primaire qui dispose de la référence de temps.

Boundary Clock : élément du réseau (par exemple un switch ou routeur) qui dispose d’un port en entrée fonctionnant en mode esclave, mets à jour sa propre horloge, puis regénère à partir de sa propre horloge le message PTP en sortie.

Transparent Clock : élément du réseau (par exemple un switch ou routeur) qui détermine le temps passé par le message PTP pour aller de l’entrée à la sortie. Ce délai est inscrit dans le message PTP en sortie.

Slave Clock : élément final de la chaine, et mettant à jour sa propre horloge.

Fonctionnement du protocole PTP

Le principe de calcul des offset et delay est assez similaire à celui utilisé par le protocole NTP : la master clock et la slave clock s’échangent des messages permettant le calcul de « l’offset » et du « delay » de la façon suivante :

kairos-ptp

Slave clock time offset = ((t1-t2) + (t4-t3)) / 2

On suppose que le temps aller et le temps retour d’un paquet est identique. Il existe donc une erreur sur cet offset égale à (temps aller – temps retour) / 2

Un algorithme BMCA (Best Master Class Algorithm) permet la sélection de la « meilleure master clock » sur le réseau. Chaque horloge du réseau reçoit un « announce message » dans lequel figure

les paramètres d’état de l’horloge master clock. Chaque horloge compare son état à celui de la Master clock et peut éventuellement devenir Master clock.

Le « packet delay variation »

Un des enjeux pour la précision est de minimiser l’erreur due à la variation du temps d’aller-retour d’un paquet. Des mécanismes de filtrage existent pour améliorer ce paramètre : en sélectionnant uniquement les «lucky packets», c’est-à-dire les paquets les plus rapides (« delay » le plus faible), on va réduire considérablement le « packet delay variation ».

Les profils PTP

Les profils, introduits pour des besoins spécifiques et propres à certaines applications, permettent aussi l’inter-opérabilité. Un profil définit le jeu de paramètres et d’options laissés libre par le protocole PTP. Les profils supportés par le module HPS-100 de Meinberg :

  • Default:
    – IEEE 1588v2 PTPv2
    – IEEE 1588v1 PTPv1
  • Power:
    – IEC 61850-9-3
    – IEEE C37.238-2011
    – IEEE C37.238-2017
  • Telecom:
    – ITU-T G.8265.1 Frequency
    – Phase/Time ITU-T G.8275.1
    – ITU-T G.8275.2 Phase/Time
  • Broadcast:
    – SMPTE ST 2059-2
    – AES67 Media Profile
  • AVB/TSN:
    – IEEE 802.1AS

Les solutions Meinberg IEEE1588

Meinberg développe depuis très longtemps des solutions serveurs de temps PTP et cartes PTP IEEE 1588.

Ainsi Meinberg s’est renforcé en 2019 en faisant l’acquisition de Oregano Systems, spécialiste de la technologie PTP en particulier ses stacks PTP. Le fournisseur est membre de nombreux organismes de standardisation et professionnels :

  • IEEE: Douglas Arnold de Meinberg est Working Group Chair of IEEE 1588
  • IETF: Douglas Arnold et Heiko Gerstung auteurs de Enterprise Profile RFC
  • ITU-T: Associate Member of Study Group 15
  • SMPTE: Bronze Member
  • AIMS: Associate Alliance Member
  • RAVENNA: Meinberg partenaire officiel
  • PCI SIG
  • Network Time Foundation: Founding Member
  • Linux Foundation: Silver Member

L’équipe de Kairos-Data est à votre écoute. Si vous souhaitez plus d’informations sur nos produits, n’hésitez pas à nous contacter grâce à notre formulaire.