September 23, 2025

IEEE 1588 v2 Precision Time Protocol (PTP)

Терминология

Гроссмейстерские часы – часы, являющиеся основным источником данных о времени при синхронизации согласно протоколу PTP, которые, как правило, оснащаются встроенным приемником сигналов GPS (или другой системы)

Ведущие часы – часы, являющиеся источником данных о времени, по которым синхронизируются другие часы в сети (чаще всего это и есть гроссмейстерские часы)

Ведомые часы – конечное устройство, которое синхронизируется по протоколу PTP

Прозрачные часы – коммутатор, который измеряет время прохождения сообщения синхронизации через себя, канальную задержку и предоставляет измеренное значение часам, получающим сообщение синхронизации далее

Граничные часы – часы, которые оснащаются несколькими портами PTP и могут выступать ведущими часами; например, могут быть ведомыми по отношению к вышестоящим источникам сигналов времени и выступать в качестве ведущих по отношению к нижестоящим устройствам.

Режимы работы

End-to-End ( E2E)

В данном режиме сетевое оборудование (коммутаторы) работают в режиме прозрачных часов.

Задержка измеряется мастером для всего пути от мастера до каждого конечного устройства в отдельности.

Из этого следует минус такого режима - большая нагрузка на мастера.

Peer-to-peer (P2P)

Все коммутаторы должны поддерживать P2P.

В этом случае коммутаторы заранее измеряют задержку каждого своего канала (красные стрелки на картинке), в следствии чего при перестроении топологии перестроение PTP быстрое.

Ещё раз терминология

Announce message – сообщение анонса, содержит информацию, отправляемую мастером всем Slave устройствам. Slave устройство с помощью этого сообщения может выбрать лучшего мастера (для этого существует BMC (Best Master Clock)) алгоритм. Выбор идет по таким полям сообщения как точность, дисперсия, класс, приоритет и т.п.

Sync/Follow Up, DelayResp– отправляются мастером

DelayReq– запросы Slave устройств.

Приоритет полей для алгоритма BMC (Best Master Clock)

  • priority1: настраивается пользователем, по умолчанию значение 128. (чем меньше значение, тем выше приоритет)
  • clockClass: зависит от погрешности и количества спутников. (необходимый для PTP 6 класс)
  • clockAccuracy: точность (25 нс, 100 нс, 250нс, 1 мкс, 2.5 мкс, 10 мкс, 25 мкс, 100 мкс, 250 мкс, 1 мс, 10 с и > 10 с)
  • offsetScaledLogVariance: стабильность часов
  • priority2: настраивается пользователем, по умолчанию значение 128. (чем меньше значение, тем выше приоритет)
  • MAC Address

Сеанс работы E2E

Режим работы:

  1. В самом начале Master отправляет Announce message. Из всех мастеров Slave выбирает самого хорошего
  2. Master отправляет Sync message и записывает время отправки этого сообщения t1. Существует одно- и двухэтапные режимы работы. Отличить их очень легко: если присутствует сообщение FollowUp – то имеем дело с двухэтапной реализацией, пунктирной стрелкой показаны необязательные сообщения
  3. Если двухэтапный режим, то FollowUp message содержит t1, если одноэтапный режим, то t1 в Sync message
  4. В момент получения Sync/FollowUp message на Slave генерируется t2
  5. Slave генерирует DelayReq message и одновременно t3
  6. При получении мастером DelayReq message генерируется t4
  7. Master отправляет t4 в DelayResp message

Slave после получения t1, t2, t3, t4 вычисляет смещение и время доставки, а потом производит корректировку времени в Sync message.

Сеанс работы P2P

  1. Сообщения типа Sync передаются прозрачными часами в неизменном виде.
  2. ta – показание времени на гроссмейстерских часах. Таким же образом производится передача и сообщений типа Announce.
  3. Каждые прозрачные часы измеряют время обработки сообщения Sync - ttc1
  4. Каждые прозрачные часы вычисляют канальную задержку между соседними устройствами tp1 (рисунок ниже)

Происходит обмен сообщениями в двухстороннем порядке между соседними устройствами для вычисления канальной задержки. Схема вычисления представлена ниже.

  1. При отправке запроса PDelayReq генерируется t1
  2. При получении PDelayReq мастером генерируется время t2
  3. Master отправляет PdelayResp c временем t2
  4. Slave принимает PdelayResp и генерирует t4
  5. Master отправляет PdelayRespFollowUP с временем t3

Зная t1, t2, t3, t4 Slave (прозрачные часы) вычисляют задержку канала связи (время доставки)

Теперь каждые прозрачные часы имеют время обработки сообщений ( ttc1 ), время канальных задержек ( tp1 ) и само время гроссмейстерских часов ( ta )

FollowUp

Если используется двухэтапный режим работы, то время гроссмейстерских часов устройства берут из сообщений FollowUp ( tb ). Но большинство устройств сейчас уже поддерживают одноэтапный режим работы

Прозрачные часы получают время гроссмейстерских часов ( ta либо tb ). Далее в поле correction добавляют корректирующее значение (ttc1 + tp1 )

Следующие прозрачные часы получают такое же время гроссмейстерских часов ( ta либо tb ), но уже с заполненным полем correction и суммируют значение поля со своими задержками (ttc2 + tp2 ). Так продолжается до конечной точки (ведомых часов)