PTP ( — «протокол точного времени») — протокол, используемый для синхронизации часов по компьютерной сети. В локальных сетях он достигает точности синхронизации менее микросекунды, что обеспечивает удобство для измерительных систем и систем управления. PTP может использоваться для синхронизации финансовых транзакций, передач сотовых вышек, подводных акустических массивов, а также сетей, требующих точной синхронизации времени в качестве альтернативы использованию меток времени сигналов спутниковой навигации.

PTP был изначально определён как стандарт IEEE 1588—2002 с официальным названием «Стандарт протокола синхронизации точного времени для сетевых измерительных систем и систем управления» и опубликован в 2002 году. В 2008 году была выпущена новая редакция стандарта IEEE 1588—2008. В новой версии, известной как PTP Version 2, повышена точность и устойчивость, но была потеряна обратная совместимость с оригинальной версией 2002—2003 года.

IEEE 1588—2008 вводит понятие Transparent Clock (ТС), относящееся к сетевому оборудованию, которое используется для передачи сообщений PTP. TC изменяет содержание сообщения PTP, когда они проходят через устройство. Метки времени в сообщениях корректируются на величину времени, потраченного на прохождение через сетевое оборудование. Эта схема повышает точность раздачи времени потребителям, компенсируя изменчивость времени доставки сообщений по сети. История Согласно Джону Эйдсону, который возглавлял усилия по стандартизации IEEE 1588-2002, «IEEE 1588 разработан для заполнения ниши, недостаточно обслуживаемой двумя доминирующими протоколами, NTP и GPS. IEEE 1588 разработан для локальных систем, требующих точности, превышающей достижимую с использованием NTP. Он также разработан для приложений, которые не могут выдержать стоимость GPS-приёмника на каждом узле, или для которых сигналы GPS недоступны».

PTP был изначально определён в стандарте IEEE 1588-2002, официально озаглавленном «Стандарт протокола синхронизации точного времени для сетевых измерительных систем и систем управления», и опубликован в 2002 году. В 2008 году IEEE 1588-2008 был выпущен как пересмотренный стандарт; также известный как PTP версия 2 (PTPv2), он улучшает точность, прецизионность и надёжность, но не совместим обратно с оригинальной версией 2002 года. IEEE 1588-2019 был опубликован в ноябре 2019 года, неофициально известен как PTPv2.1 и включает обратно совместимые улучшения к публикации 2008 года.

Архитектура Стандарты IEEE 1588 описывают иерархическую архитектуру ведущий-ведомый для распределения часов, состоящую из одного или нескольких сегментов сети и одного или нескольких часов. Ordinary clock — это устройство с одним сетевым подключением, которое является либо источником, либо получателем опорного сигнала синхронизации. Источник называется ведущим (альтернативно timeTransmitter), а назначение называется ведомым (альтернативно timeReceiver). Boundary clock имеют несколько сетевых подключений и синхронизируют один сегмент сети с другим. Один лидер синхронизации выбирается, то есть избирается, для каждого сегмента сети. Корневой временной эталон называется grandmaster.

Простейшая архитектура PTP состоит только из ordinary clock в односегментной сети без boundary clock. Grandmaster избирается, и все остальные часы синхронизируются с ним.

IEEE 1588-2008 вводит часы, связанные с сетевым оборудованием, используемым для передачи сообщений PTP. Transparent clock изменяют сообщения PTP по мере их прохождения через устройство. Метки времени в сообщениях корректируются на время, затраченное на прохождение через сетевое оборудование. Эта схема улучшает точность распределения, компенсируя изменчивость времени доставки по сети.

PTP обычно использует ту же эпоху, что и время Unix (начало 1 января 1970 года). В то время как время Unix основано на координированном всемирном времени (UTC) и подвержено секундам координации, PTP основан на международном атомном времени (TAI). Грандмастер PTP передаёт текущее смещение между UTC и TAI, чтобы UTC мог быть вычислен из полученного времени PTP.

Детали протокола Синхронизация и управление системой PTP достигается путём обмена сообщениями через среду связи. С этой целью PTP использует следующие типы сообщений. Sync, Follow_Up, Delay_Req и Delay_Resp сообщения используются ordinary и boundary часами и передают информацию, связанную со временем, используемую для синхронизации часов по сети. Pdelay_Req, Pdelay_Resp и Pdelay_Resp_Follow_Up используются transparent часами для измерения задержек по среде связи, чтобы они могли быть скомпенсированы системой. Transparent clock и связанные с ними сообщения недоступны в оригинальном стандарте IEEE 1588-2002 PTPv1 и были добавлены в PTPv2. Announce сообщения используются алгоритмом выбора лучшего мастера в IEEE 1588-2008 для построения иерархии часов и выбора grandmaster. Management сообщения используются сетевым управлением для мониторинга, конфигурации и обслуживания системы PTP. Signaling сообщения используются для некритичных по времени коммуникаций между часами. Сообщения Signaling были введены в IEEE 1588-2008.

Сообщения классифицируются как событийные и общие сообщения. Событийные сообщения критичны по времени в том смысле, что точность передачи и точность меток времени получения напрямую влияют на точность распределения часов. Sync, Delay_Req, Pdelay_Req и Pdelay_resp являются событийными сообщениями. Общие сообщения — это более обычные блоки данных протокола в том смысле, что данные в этих сообщениях важны для PTP, но их метки времени передачи и получения не важны. Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, Management и Signaling сообщения являются членами класса общих сообщений.

Алгоритм выбора лучшего мастера Алгоритм выбора лучшего мастера (BMCA) выполняет распределённый выбор лучших часов для действия в качестве лидера на основе следующих свойств часов: Идентификатор — универсально уникальный числовой идентификатор часов. Обычно он строится на основе MAC-адреса устройства. Качество — обе версии IEEE 1588 пытаются количественно оценить качество часов на основе ожидаемого отклонения времени, технологии, используемой для реализации часов. Приоритет — административно назначенная подсказка приоритета, используемая BMCA для помощи в выборе grandmaster для домена PTP. IEEE 1588-2002 использовал одну булеву переменную для указания приоритета. IEEE 1588-2008 имеет два 8-битных поля приоритета. Дисперсия — оценка часов их стабильности на основе наблюдения их производительности относительно эталона PTP.

IEEE 1588-2008 использует иерархический алгоритм выбора на основе следующих свойств в указанном порядке: Приоритет 1 — пользователь может назначить конкретный статически определённый приоритет каждым часам, предварительно определяя приоритет среди них. Меньшие числовые значения указывают на более высокий приоритет. Класс — каждые часы являются членом данного класса, каждый класс получает свой приоритет. Точность — точность между часами и UTC, в наносекундах (нс) Дисперсия — изменчивость часов Приоритет 2 — окончательно определённый приоритет, определяющий порядок резервирования в случае, если другие критерии были недостаточны. Меньшие числовые значения указывают на более высокий приоритет. Уникальный идентификатор — выбор на основе MAC-адреса используется как тай-брейкер, когда все другие свойства равны.

IEEE 1588-2002 использует алгоритм выбора на основе аналогичных свойств.

Свойства часов рекламируются в сообщениях Sync IEEE 1588-2002 и в сообщениях Announce IEEE 1588-2008. Текущий лидер передаёт эту информацию через регулярные интервалы. Часы, которые считают себя лучшим лидером, будут передавать эту информацию, чтобы вызвать смену лидера. Как только текущий лидер распознаёт лучшие часы, текущий лидер прекращает передачу сообщений Sync и связанных свойств часов (сообщений Announce в случае IEEE 1588-2008), и лучшие часы берут на себя роль лидера. BMCA учитывает только самообъявленное качество часов и не принимает во внимание качество сетевых ссылок.

Примечания

Ссылки NIST IEEE 1588 site PTP documentation at InES PTP and Synchronization of LTE mobile networks Hirschmann PTP Whitepaper

Категория:Стандарты IEEE Категория:Протоколы прикладного уровня