El protocolo PTP (Precision Time Protocol), tal como definido en la norma IEEE-1588, ofrece la posibilidad de sincronizar dispositivos de manera precisa en una red local (LAN). Un servidor de tiempo de red utilizando el PTP se suele llamar «IEEE-1588 Grandmaster» o «PTP Grandmaster».
Necesidades & aplicaciones
Para sincronizar relojes distribuidas a través de una red local (LAN), los protocolos NTP (Network Time Protocol) y SNTP (Simple Network Time Protocol) constituyen los métodos más conocidos para alcanzar un nivel de precisión de milisegundos. Sin embargo, en el caso de varias redes como en el sector de la industria, sanitario y del transporte, la sincronización horaria de los equipos necesita un nivel de precisión aún más importante. Así, se requiere utilizar el protocolo PTP para todos los procesos requiriendo una sincronización precisa, tales como los sistemas automatizados y de control, los sistemas de medición y de pruebas automáticas, los centros de producción, de transmisión y de distribución de energía, así como las telecomunicaciones.
¿Cómo funciona el protocolo PTP?
Una solución sencilla para sincronizar los relojes presentes en una red Ethernet podría consistir en enviar una trama (un mensaje) que contiene la información horaria del reloj principal hacia los relojes secundarios. Una vez recibida la trama, los relojes secundarios se ajustarían al valor transmitido por el reloj principal. Sin embargo, el tiempo necesario para el tránsito de una trama puede verse afectado por retrasos de propagación en la red, por retrasos provocados por la puesta en cola de los procesos, la creación de mensajes IP y la latencia. Esto significa que, en el momento en el que los relojes secundarios reciben finalmente la trama, el valor transmitido en esta trama ya no es representativa de la información horaria exacta que se ha proporcionado inicialmente por el reloj principal. El protocolo PTP resuelve estos problemas al utilizar intercambios de mensajes con marca de tiempo entre los diferentes nodos PTP para determinar los desfases de reloj y los retrasos inherentes al funcionamiento de una red.
El protocolo PTP define dos tipos de relojes: los relojes principales y secundarios. Un reloj en un dispositivo terminal se denomina secundario. Un reloj principal se controla por un reloj radio externo o un receptor GPS. Sincroniza los relojes secundarios a los que está conectado. La red también incluye componentes de transmisión, como un conmutador Ethernet con la función de «Boundary Clock». El «Boundary Clock» es un equipo secundario del reloj principal, que sin embargo desempeña el papel de reloj principal para los relojes secundarios (dispositivos terminales) a los que sirve como transmisor en la red. Cada dispositivo secundario se sincroniza en tiempo, frecuencia y fase con el reloj principal, y también se sincroniza con todos los otros nodos secundarios.
¿Cuáles son los principios de la sincronización PTP?
El protocolo PTP define los mensajes de sincronización utilizados entre un reloj principal y un reloj secundario, de manera similar al modo cliente-servidor que se utiliza en el protocolo NTP. (antes se hablaba más bien de modo maestro-esclavo). El reloj principal proporciona la información horaria y el reloj secundario se sincroniza con él. Un reloj principal denominado «Grandmaster» se sincroniza por un fuente horaria de referencia como el GPS.
Los mensajes del protocolo incluyen el mensaje de sincronización del reloj principal (sync message), el mensaje de seguimiento (sync follow up message) en modo Two Step, el mensaje de solicitud de retraso del reloj secundario (delay request message) y el mensaje de respuesta al retraso del reloj principal (delay response message).
La sincronización de un reloj mediante LAN requiere al menos un dispositivo principal y otro secundario. Se pueden sincronizar varios relojes secundarios con un único reloj principal. El reloj principal proporciona los mensajes de sincronización horaria que los dispositivos secundarios utilizan para corregir sus relojes locales.
Marcas de tiempo precisas son efectivas entre el reloj principal y los relojes secundarios. Estas marcas de tiempo se utilizan para determinar la latencia de red necesaria para sincronizar correctamente el dispositivo secundario con el reloj principal. Un mensaje de sincronización (sync message) se suele transmitir cada dos segundos por el reloj principal, mientras que un mensaje de solicitud de retraso se emite con menos frecuencia por el reloj secundario (aproximadamente una solicitud por minuto).
Cuatro relojes son efectivos entre el reloj principal y los relojes secundarios. Estas marcas de tiempo son necesarias para calcular el desfase del reloj secundario. Estos últimos se suelen denominar T1, T2, T3 y T4 (véase el esquema a continuación).
Se deben determinar dos causas de desfase: la primera es el desfase inicial entre el reloj principal y el reloj secundario. La segunda es el tiempo de transmisión de los mensajes entre el reloj principal y el reloj secundario.
Primero, se determina el desfase inicial:
Para determinar el desfase inicial, el reloj principal envía un mensaje de sincronización al momento T1. El reloj secundario recibe este mensaje al momento T2 (valor conservado en la memoria del reloj secundario). En modo Two Step, el reloj principal envía un segundo mensaje (sync follow up) que contiene la marca de tiempo del T1.
Entonces, el reloj secundario corrige su reloj local del valor: T2 – T1. Tras está corrección, ambos relojes sólo sufren un desfase por el tiempo que necesita el mensaje de sincronización para alcanzar el reloj secundario. Esta duración se denomina el tiempo de transmisión
Para determinarlo, el reloj secundario envía una solicitud (delay request) al reloj principal al momento T3. Entonces, el reloj principal transmite al reloj secundario la hora de llegada (T4) de su mensaje de solicitud.
El desfase entre T3 y T4 se debe al tiempo de transmisión del mensaje de solicitud, al que se añade el tiempo de transmisión del mensaje de sincronización previo que había creado un desfase antes de que se enviará el mensaje de solicitud. El valor de T4 - T3 representa entonces 2 veces el tiempo de transmisión.
El reloj secundario corrige su reloj local con el valor del tiempo de transmisión: (T4 – T3) / 2. El reloj principal y el reloj secundario ya están sincronizados.
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.