Протокол Протокол точного времени (PTP ) - это протокол, используемый для синхронизации часов в компьютерной сети. В локальной сети он обеспечивает точность синхронизации в субмикросекундном диапазоне, что делает его пригодным для систем измерения и управления. PTP в настоящее время используется для синхронизации финансовых транзакций, передачи с вышки мобильной связи, подводных акустических массивов и сетей, которые требуют точного времени, но не имеют доступа к сигналы спутниковой навигации.
Исходная версия PTP, IEEE 1588-2002, была опубликована в 2002 году. IEEE 1588-2008, также известный как PTP версии 2, не является обратная совместимость с исходной версией 2002 года. IEEE 1588-2019 был опубликован в ноябре 2019 г. и включает улучшения с обратной совместимостью по сравнению с публикацией 2008 г. IEEE 1588-2008 включает концепцию профиля, определяющую рабочие параметры и опции PTP. Несколько профилей были определены для приложений, включая телекоммуникации, распределение электроэнергии и аудиовизуальные. IEEE 802.1AS представляет собой адаптацию PTP для использования с Audio Video Bridging и Time-Sensitive Networking.
По словам Джона Эйдсона, возглавлявшего усилия по стандартизации IEEE 1588-2002, «IEEE 1588 разработан, чтобы заполнить нишу, которую плохо обслуживают любой из двух доминирующих протоколов, NTP и GPS. IEEE 1588 разработан для локальных систем, требующих точности, превышающей ту, которую можно получить с помощью NTP. Он также разработан для приложений, которые не могут нести затраты на GPS-приемник на каждом узле, или для которого сигналы GPS недоступны ».
PTP был первоначально определен в стандарте IEEE 1588-2002, официально названном« Стандарт для точного синхросигнала. Протокол onization для сетевых систем измерения и управления », опубликованный в 2002 году. В 2008 году был выпущен IEEE 1588-2008 в качестве пересмотренного стандарта; также известный как PTP версии 2 (PTPv2), он повышает точность, точность и надежность, но не обратно совместим с исходной версией 2002 года. Стандарт IEEE 1588-2019 был опубликован в ноябре 2019 года, неофициально известен как PTPv2.1 и включает обратно совместимый усовершенствования к публикации 2008 года.
IEEE 1588 стандарты описывают иерархическую архитектуру главный-подчиненный для распределения часов. Согласно этой архитектуре система распределения времени состоит из одной или нескольких коммуникационных сред (сегментов сети) и одного или нескольких часов. Обычные часы - это устройство с одним сетевым подключением, которое является либо источником (ведущее устройство), либо местом назначения (ведомое устройство) ссылки синхронизации. Граничные часы имеют несколько сетевых подключений и могут точно синхронизировать один сегмент сети с другим. Мастер синхронизации выбирается для каждого сегмента сети в системе. Корневой эталон времени называется grandmaster. Грандмастер передает информацию синхронизации на часы, находящиеся в его сегменте сети. Граничные часы с присутствием в этом сегменте затем передают точное время другим сегментам, к которым они также подключены.
Упрощенная система PTP часто состоит из обычных часов, подключенных к одной сети, без использования граничных часов. Гроссмейстер избирается, и все остальные часы синхронизируются напрямую с ним.
IEEE 1588-2008 вводит часы, связанные с сетевым оборудованием, используемым для передачи сообщений PTP. Прозрачные часы изменяют сообщения PTP по мере их прохождения через устройство. Временные метки в сообщениях корректируются за время, потраченное на прохождение сетевого оборудования. Эта схема повышает точность распределения за счет компенсации изменчивости доставки по сети.
PTP обычно использует ту же эпоху, что и время Unix (начало 1 января 1970 г.). В то время как время Unix основано на всемирном координированном времени (UTC) и зависит от дополнительных секунд, PTP основывается на международном атомном времени (TAI). Грандмастер PTP сообщает текущее смещение между UTC и TAI, так что UTC можно вычислить на основе полученного времени PTP.
Синхронизация и управление системой PTP достигается посредством обмена сообщениями через среду связи. С этой целью PTP использует следующие типы сообщений.
Сообщения делятся на категории событий и общие сообщения. Сообщения о событиях критичны по времени в том смысле, что точность меток времени передачи и получения напрямую влияет на точность распределения часов. Sync, Delay_Req, Pdelay_Req и Pdelay_resp - это сообщения о событиях. Общие сообщения являются более традиционными блоками данных протокола в том смысле, что данные в этих сообщениях важны для PTP, а их временные метки передачи и приема - нет. Сообщения Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, Management и Signaling являются членами общего класса сообщений.
Сообщения PTP могут использовать протокол дейтаграмм пользователя поверх Интернет-протокол (UDP / IP) для транспорта. IEEE 1588-2002 использует только транспорты IPv4, но он был расширен за счет включения IPv6 в IEEE 1588-2008. В IEEE 1588-2002 все сообщения PTP отправляются с использованием многоадресной передачи сообщений, в то время как IEEE 1588-2008 представил возможность для устройств согласовывать одноадресную передачу для каждого порта. Многоадресная передача использует адресацию IP multicast, для которой групповые адреса многоадресной рассылки определены для IPv4 и IPv6 (см. Таблицу). Сообщения о критических по времени событиях (Sync, Delay_req, Pdelay_Req и Pdelay_Resp) отправляются на порт с номером 319. Общие сообщения (Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, управление и сигнализация) используют номер порта 320.
Сообщения | IPv4 | IPv6 | IEEE 802.3 Ethernet |
---|---|---|---|
Все, кроме сообщений о задержке однорангового узла | 224.0.1.129 | FF0x::181 | 01-1B-19-00-00-00 |
Сообщения одноранговой задержки: Pdelay_Req, Pdelay_Resp и Pdelay_Resp_Follow_Up | 224.0.0.107 | FF02 :: 6B | 01-80-C2-00-00-0E |
В IEEE 1588-2008, инкапсуляция также определена для DeviceNet, ControlNet и PROFINET.
Домен - это взаимодействующий набор часов, которые синхронизируются с друг друга с помощью PTP. Часы назначаются домену на основании содержимого полей имени поддомена (IEEE 1588-2002) или номер домена (IEEE 1588-2008) в сообщениях PTP, которые они получают или генерируют. Домены позволяют нескольким системам распределения часов использовать одну и ту же среду связи.
Содержимое поля имени поддомена (IEEE1588-2002) | IPv4-адрес многоадресной рассылки. (IEEE1588-2002) | номер домена. (IEEE1588-2008) | Примечания |
---|---|---|---|
_DFLT | 224.0.1.129 | 0 | Домен по умолчанию |
_ALT1 | 224.0.1.130 | 1 | Альтернативный домен 1 |
_ALT2 | 224.0. 1.131 | 2 | Альтернативный домен 2 |
_ALT3 | 224.0.1.132 | 3 | Альтернативный домен 3 |
Специфичный для приложения до 15 октетов | 224.0.1.130, 131 или 132 согласно хэш-функция на имени поддомена | 4–127 | Пользовательские домены |
Лучший главный тактовый генератор (BMC) Алгоритм выполняет распределенный выбор лучших возможных тактовых импульсов на основе следующих свойств часов:
IEEE 1588-2008 использует алгоритм иерархического выбора на основе для следующих свойств в указанном порядке:
IEEE 1588-2002 использует алгоритм выбора, основанный на аналогичных свойствах.
Свойства часов объявляются в сообщениях IEEE 1588-2002 Sync и в сообщениях Announce IEEE 1588-2008. Текущий мастер часов передает эту информацию через равные промежутки времени. Часы, которые считают себя лучшими ведущими часами, будут передавать эту информацию, чтобы вызвать изменение основных часов. Как только текущий мастер распознает лучшие часы, текущий мастер прекращает передачу сообщений Sync и связанных свойств часов (сообщения Announce в случае IEEE 1588-2008), и лучшие часы становятся мастером. Алгоритм BMC учитывает только самопровозглашенное качество тактовых импульсов и не принимает во внимание качество сетевого соединения.
Благодаря использованию алгоритма BMC PTP выбирает главный источник времени для домен IEEE 1588 и для каждого сегмента сети в домене.
Часы определяют смещение между собой и своим хозяином. Пусть переменная представляет физическое время. Для данного ведомого устройства смещение в момент времени определяется следующим образом:
где представляет время, измеренное подчиненными часами в физическое время , а представляет время, измеренное ведущими часами в физическое время. .
Ведущее устройство периодически передает текущее время в виде сообщения другим часам. В соответствии с IEEE 1588-2002 широковещательная передача осуществляется до одного раза в секунду. Согласно IEEE 1588-2008, разрешено до 10 в секунду.
Механизм синхронизации IEEE 1588 и расчет задержкиКаждая трансляция начинается в момент времени с сообщения Sync, отправляемого мастером на все часы в домен. Часы, получающие это сообщение, принимают к сведению местное время , когда это сообщение получено.
Мастер может впоследствии отправить многоадресное Follow_Up с точной временной меткой . Не все мастера имеют возможность представить точную метку времени в сообщении синхронизации. Только после завершения передачи они могут получить точную метку времени для передачи Sync со своего сетевого оборудования. Мастера с этим ограничением используют сообщение Follow_Up для передачи . Мастера с возможностями PTP, встроенными в их сетевое оборудование, могут представлять точную метку времени в сообщении Sync и не должны отправлять сообщения Follow_Up.
Чтобы точно синхронизироваться со своим главным устройством, часы должны индивидуально определять сетевое время прохождения сообщений Sync. Время прохождения определяется косвенно путем измерения времени прохождения сигнала туда и обратно от каждых часов до их главного устройства. Часы инициируют обмен со своим мастером, предназначенным для измерения времени прохождения . Обмен начинается с того, что часы отправляют мастеру сообщение Delay_Req в момент времени . Мастер получает и отмечает время Delay_Req в момент времени и отвечает сообщением Delay_Resp. Мастер включает метку времени в сообщение Delay_Resp.
Посредством этих обменов часы учатся , , и .
Если - время прохождения для Сообщение синхронизации, а - постоянное смещение между ведущими и ведомыми часами, тогда
Комбинируя два приведенных выше уравнения, мы находим, что
Часы теперь знают смещение во время этой транзакции и могут скорректировать себя на эту величину, чтобы привести ее в соответствие с их хозяином.
Одно предположение состоит в том, что этот обмен сообщениями происходит в течение периода времени, настолько малого, что это смещение можно безопасно считать постоянным в течение этого периода. Другое предположение состоит в том, что время передачи сообщения, идущего от ведущего к ведомому, равно времени передачи сообщения, идущего от ведомого к ведущему. Наконец, предполагается, что и ведущий, и ведомый могут точно измерить время отправки или получения сообщения. Степень, в которой эти предположения верны, определяет точность часов на ведомом устройстве.
Стандарт IEEE 1588-2008 перечисляет следующий набор функций, которые реализации могут выбрать для поддержки :