Precision Time Protocol

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Precision Time Protocol (PTP) est un protocole de synchronisation Ethernet d'horloge normalisé IEEE 1588 en 2001 et en juin 2008 pour la version 2. En 2005 il a été standardisé 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, 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[modifier | modifier le code]

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. En général, 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[modifier | modifier le code]

Correction de la dérive (ou offset)[modifier | modifier le code]

Cela se passe en deux temps :


a) SYNC[modifier | modifier le code]

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[modifier | modifier le code]

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 exacte d'émission à l'heure de réception : dm2s = t1 - t2

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[modifier | modifier le code]

Cela se passe en deux temps :

c) DELAY_REQ[modifier | modifier le code]

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[modifier | modifier le code]

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 = t3 - t4

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[modifier | modifier le code]

délai aller[modifier | modifier le code]

d = (dm2s + ds2m) / 2

offset[modifier | modifier le code]

Δt = dm2s - d

Horloge IEEE 1588[modifier | modifier le code]

Grand Master Clock[modifier | modifier le code]

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

Ordinary Clock[modifier | modifier le code]

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[modifier | modifier le code]

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

Transparent Clock[modifier | modifier le code]

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

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]