Precision Time Protocol

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 11 mars 2020 à 23:42 et modifiée en dernier par 2a01:e35:2fdc:b660::b4dc:a7b7 (discuter). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

Precision Time Protocol (PTP) est un protocole Ethernet de synchronisation d'horloge, normalisé sous le nom IEEE 1588 en 2001 et en juin 2008 pour la version 2. En 2005 il a aussi été standardisé sous le nom IEC 61588. Il est également appelé « horloges distribuées » ou Distributed Clocks (DCs).

Ce protocole est destiné aux réseaux supportant le multicast et l'unicast. Son utilisation est destinée à des applications de type mesures, militaire, industriel (robotique, motion control, papeterie, gruikerie, etc) ainsi que les réseaux de télécommunication depuis la sortie de la seconde version.

Il est complémentaire de la norme d'encodage IRIG, et constitue une évolution du Network Time Protocol (ou NTP).

Enfin PTP n'a pas vocation à déterminer un horodatage, mais à le transmettre; tout système PTP doit donc intégrer ou se baser sur une source de temps, telle qu'une horloge GPS, et s'y recaler régulièrement.

Principe du protocole

Ce protocole est établi selon le principe d'horloge maître et d'horloges esclaves. L'horloge maître servant de référence temporelle est appelée « horloge de référence ». Son heure est synchronisée (via GPS, NTP, etc) sur une horloge appelée horloge globale. Dans le cas d'une communication par bus, c'est l'horloge du premier esclave sur le bus qui est considérée comme horloge de référence.

Afin que toutes les horloges aient la même heure, il faut corriger

  • la dérive d'horloge
  • le délai (de transmission).

Légende des abréviations :

  • m = maître
  • s = esclave
  • d = délai

Par exemple dm2s = délai maître à esclave

Mécanismes de correction

Correction de la dérive (ou offset)

Cela se passe en deux temps :

a) SYNC

L'horloge maître envoie à l'esclave un message de synchronisation (SYNC) contenant :

  • une estimation de l'heure d'émission
  • les propriétés de l'horloge

Son heure de réception est notée par l'esclave (t2)

b) FOLLOW_UP

Immédiatement après le maître envoie un message de suivi (FOLLOW_UP) contenant :

  • l'heure exacte d'émission (t1)

Ainsi l'esclave détermine l'offset en soustrayant l'heure de réception à l'heure exacte d'émission : dm2s = t2 - t1

Un message SYNC est émis à chaque période de synchronisation, généralement égale à 2 secondes.

Le message FOLLOW_UP n'est pas présent en « 1-step mode » mais uniquement en « 2-step mode ».

Correction du délai

Cela se passe en deux temps :

c) DELAY_REQ

L'esclave envoie au maître une demande de délai (DELAY_REQ). A l'émission de ce message, l'esclave note l'heure d'émission (t3) tandis que le maître note l'heure de réception (t4).

d) DELAY_RESP

Le maître envoie à l'esclave une réponse de délai (DELAY_RESP) contenant l'heure à laquelle il a reçu la requête de délai (t4).

Ainsi l'esclave peut calculer le délai moyen : ds2m = t4 - t3

On part du principe que le délai est symétrique (dm2s = ds2m) Cette opération est répétée aléatoirement entre 2 et 30 périodes de synchronisation. On peut également fixer un multiple de cette période à ne pas dépasser pour répéter l'opération plus souvent.

Calculs des corrections

Délai aller

d = (dm2s + ds2m) / 2

offset

Δt = dm2s - d

Horloges IEEE 1588

Grand Master Clock

Le Grand Master Clock est l'horloge qui fournit l'horodatage dans le réseau.

Ordinary Clock

Une Ordinary Clock est une horloge en fin ou en début de chaîne 1588. Cette horloge peut devenir Grand Master Clock (si une source de temps lui est raccordée).

Boundary Clock

La Boundary Clock est une horloge de cœur de réseaux qui permet de faire la liaison entre deux mondes PTP.

Transparent Clock

Une transparent Clock permet de corriger des délais de propagation de la trame et ainsi d'avoir une meilleure précision dans l'horodatage.

Voir aussi

Articles connexes

Liens externes