Сравнение протоколов синхронизации NTP и PTP

В данной статье объясняется принцип работы и различия протоколов PTP и NTP. Представленная информация поможет понять особенности и преимущества каждого протокола и поможет выбрать правильное решение для различных требований.

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

NTP – Network Time Protocol (RFC 1305, 5905)

NTP — это стандартный сетевой протокол, изначально разработанный Дэвидом Л. Миллсом в 1985 году, который очень широко используется до сих пор. Он обеспечивает простой способ синхронизации устройств как в локальных компьютерных сетях, так и в общедоступном Интернете. Точность синхронизации, обеспечиваемая NTP, вполне достаточна для синхронизации вторичных часов, многих вычислительных систем, систем контроля доступа и другого подобного оборудования. Для обеспечения надёжной синхронизации наилучшим решением является размещение в локальной сети собственного сервера NTP, подключенного к приёмнику данных, передаваемых глобальными спутниковыми навигационными системами (ГНСС). Основные преимущества NTP – его надёжность и возможность реализации с использованием стандартного IT-оборудования.

В NTP для передачи датаграмм (блоков информации в виде запросов и ответов) используется UDP. Протокол может использоваться в двух различных режимах: Unicast и Multicast.

Режим NTP Unicast

Для синхронизации собственных часов с удалённым сервером, клиент NTP должен вычислить время приёма-передачи (RTD / round-trip delay — время, затраченное на отправку запроса и получение ответа), и смещение (offset, разница между собственным временем и временем сервера). Время приёма-передачи δ вычисляется как

δ=(t4 − t1 ) + (t3 − t2 )

где
t1 — значение времени клиента в момент отправки запроса серверу
t2 — значение времени сервера в момент получения запроса
t3 — значение времени сервера в момент отправки ответа клиенту
t4 — значение времени клиента в момент получения ответа

Значение (t4 − t1) — это время, прошедшее с момента отправки запроса до получения ответа. Значение (t3 − t2) — это время, которое потребовалось серверу для формирования и отправки ответа. Значение смещения θ между временем сервера и клиента вычисляется как

θ=((t2 − t1 ) + (t3 − t4 ))/2

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

Режим NTP Multicast

Этот режим является разновидностью широковещательной рассылки. Сервер передаёт пакеты данных, предназначенные определённым устройствам, входящим в логическую группу. Для включения клиентов в такую группу им всем присваивается один и тот же фиктивный (групповой) IP-адрес из специального диапазона. Для регистрации таких клиентов на коммутаторах или маршрутизаторах используется IGMP (Internet Group Management Protocol). При получении коммутатором или маршрутизатором пакета, предназначенного для группы, он будет передан на все устройства, которые были зарегистрированы как участники этой группы. На устройства, подключенные к коммутатору, но не входящие в группу, этот пакет не передаётся. Такой режим позволяет уменьшить нагрузку на пропускную способность сетевого оборудования, поскольку данные передаются только в одном направлении — от сервера клиентам, и только тем устройствам, которые являются участниками группы.

  • Клиенты объединяются в группу, которая «прослушивает» свой групповой адрес
  • Клиенты группы используют один адрес группы, а не уникальные IP-адреса
  • Сервер отправляет данные на групповой адрес
  • Передача данных выполняется только в одном направлении – от сервера клиентам группы
  • Групповой адрес – это IP-адрес из специального диапазона 224.0.0.0 … 239.255.255.255.

Определение стратума в NTP

NTP использует иерархическую систему источников синхронизации. Каждый уровень такой иерархии называется стратумом и ему присваивается последовательный номер, начинающийся со значения 0 для самого верхнего уровня. Стратум определяет «дистанцию» от сервера в данном уровне до эталонного источника синхронизации. Важно понимать, что уровень стратума сам по себе никак не является показателем точности и / или надёжности конкретного сервера как источника синхронизации. Определение стратума в NTP также отличается от понятия «страта часов», используемого в телекоммуникационных системах.

Обычно в качестве эталонных часов, имеющих нулевой стратум, используются часы ГНСС. В этом случае сервер NTP, использующий в качестве источника синхронизации подключенный к нему приёмник сигналов ГНСС, будет иметь стратум 1.

PTP – Precision Time Protocol

Протокол PTP также используется для синхронизации устройств в сетях с пакетной коммутацией. PTP позволяет обеспечить высокоточную и надёжную синхронизацию в локальных или глобальных сетях для различных систем и приложений. Реализация PTP определяется стандартом IEEE 1588.

Принцип синхронизации PTP

Синхронизация шкалы времени подчинённых часов со шкалой времени основных часов выполняется в два этапа. На первом этапе подчинённые часы подстраивают частоту собственного генератора так, чтобы она совпадала с частотой генератора основных часов. Далее подчинённые часы определяют смещение своей шкалы времени относительно основных часов и выполняют окончательную синхронизацию.

Постройка частоты подчинённых часов

Перед выполнением синхронизации подчинённые часы используют сообщения sync, последовательно передаваемые основными часами, для подстройки частоты собственного генератора. Разница между двумя последовательными временными метками t1 позволяет подчинённым часам определить период рассылки сообщений sync основными часами. Сравнивая отметки t1 с собственными отметками времени t2, подчинённые часы вычисляют отклонение частоты собственного генератора и компенсируют его. Этот процесс выполняется регулярно и позволяет устранить изменения частоты, вызванные внешними условиями – например, изменением температуры окружающей среды.

Синхронизация

После выполнения подстройки частоты выполняется синхронизация – совмещение собственной шкалы времени со шкалой основных часов. Этот процесс начинается при получении сообщения sуnc (и сообщений follow up в двухэтапном режиме). Далее подчинённые часы отправляют запрос определения задержки delay request и получают ответ delay response. В результате этого процесса подчинённые часы получают значения меток времени t1 – t4, позволяющие рассчитать величину смещения шкалы времени и устранить её.

В целом, процесс синхронизации PTP довольно схож с аналогичным процессом NTP, однако PTP позволяет обеспечить гораздо более высокую точность. Это достигается за счёт обязательного использования специализированного оборудования, способного аппаратно проставлять метки времени в передаваемых пакетах времени непосредственно перед моментом передачи их в канал связи.

Синхронизация клиента PTP

Стандарт не описывает, каким образом клиент PTP выполняет процесс совмещения собственной шкалы времени со шкалой основных часов на этапе синхронизации. Этот процесс может быть реализован двумя способами:

  • Плавная подстройка – клиент ускоряет или замедляет собственную шкалу времени, до того момента, пока она не совпадёт со шкалой времени основных часов.
  • Немедленная установка – клиент одномоментно, за один шаг, устанавливает значение текущего времени в соответствии с полученными от основных часов данными.

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

Настройка параметров

Механизм определения задержки – E2E или P2P

Сквозной режим (End to End, E2E)

Этот механизм определения задержки требует, чтобы подчинённые часы вычисляли задержку при передаче данных между своим сетевым интерфейсом и основными часами. Основные и подчинённые часы обмениваются сообщениями IEEE1588 delay request и delay response, с помощью которых вычисляется задержка передачи данных туда и обратно. После вычисления задержки подчинённые часы могут приступить к подстройке частоты своего генератора.

В идеальных условиях, например, при подключении двух устройств напрямую проводом, значения задержки при передаче данных в обе стороны одинаковы. Однако в реальных сетях эти значения могут отличаться – например, из-за влияния дополнительных задержек, вносимых в передачу данных промежуточными коммутирующими устройствами уровня Layer 2 и / или Layer 3.

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

Одноранговая сеть (Peer to Peer, P2P)

Этот механизм задержки требует, чтобы каждый элемент сети измерял задержку между своим сетевым интерфейсом и устройством, подключенным на другом конце провода этого интерфейса (равноправное устройство). По мере того, как основные часы, используя сообщения sync, отправляют данные с текущим временем подчинённым, каждый элемент сети на этом пути, получивший сообщение sync, добавляет поправку к этому сообщению. Поправка включает в себя измеренную величину задержки для входного порта, по которому было получено сообщение sync. Для прозрачных часов поправка также включает в себя время, потребовавшееся на прохождение устройства. Величина поправки накапливается шаг за шагом по мере прохождения узлов сети. При получении сообщения sync конечным устройством, значение поправки будет содержать общее время задержки при передаче сообщения от основных до подчинённых часов. Таким образом, подчинённым часам уже не требуется отправлять и получать сообщения delay request и delay response первичным часам. Peer-to-Peer — это более новая технология IEEE 1588, и не все современные устройства её поддерживают.

Настройка Multicast и Unicast

Изначально PTP определялся как многоадресный (Multicast) протокол. Алгоритм BMCA использует многоадресные сообщения для поиска главных основных часов, и только с использованием многоадресной рассылки подчинённые часы могут найти основные часы без настройки пользователя.

Некоторые сети не поддерживают режим Multicast по разным причинам, а в крупных сетях отправка групповых пакетов может привести к значительному увеличению трафика. В этих случаях возможным решением является одноадресная передача – режим Unicast. В этом режиме подчинённым часам необходимо заранее знать адрес основных. Для этого в настройках подчинённых часов пользователь: должен указать список возможных основных часов — таблицу допустимых первичных часов— чтобы подчинённые часы могли знать, откуда они могут взять данные для синхронизации.

Multicast

  • автоматическая настройка с использованием алгоритма BMCA
  • некоторые сети могут блокировать Multicast-пакеты

Unicast

  • снижение трафика
  • требуется предварительная настройка клиентов

Уровни Layer 2 и Layer 3

Уровень Layer 2 определяется как протокол для установления и завершения физического соединения между двумя устройствами. Согласно IEEE 802 уровень Layer 2 можно разделить на два подуровня. Нижний подуровень MAC обеспечивает адресацию и механизмы управления доступом к каналам, верхний подуровень управления логической связью LLC управляет передачей данных и обеспечивает проверку и правильность передачи информации по каналу.

В отличие от уровня Layer 3, работающего с IP-адресами, уровень Layer 2 работает с MAC-адресами. MAC-адрес — это уникальный идентификатор сетевого адаптера, присутствующий в каждом устройстве. Поскольку IP-адреса представляют собой уровень абстракции выше, чем MAC-адреса, они являются более «медленными» (по крайней мере, в теории — и по нашему опыту). IP-адреса также могут арендоваться или назначаться DHCP-сервером. MAC-адрес — это фиксированный адрес сетевого адаптера, который нельзя изменить на устройстве без его замены (или, по крайней мере, для некоторых сетевых интерфейсов – изменения его параметров).

PTPv2 позволяет работать на сетевом уровне с использованием UDP (3-й уровень сетевой модели OSI, Layer 3, Ethertype: UDP x0800), или напрямую на канальном уровне (уровень передачи данных, Layer 2, Ethertype x88F7).

Режимы настройки 1-Step и 2-Step

Ключевой особенностью, обеспечивающей высокую точность в IEEE 1588, является возможность проставлять отметки текущего системного времени в сообщениях PTP как можно ближе к моменту их получения или отправки физическим интерфейсом. Высокая точность возможна только в том случае, если фиксация отметок времени выполняется аппаратным, а не программным способом. Существует два типа используемых режимов фиксации отметок времени: 1-шаговый и 2-шаговый:

1-шаговый режим

Отметка времени фиксируется в режиме реального времени, когда сообщение начинает передаваться через физический порт, и по мере передачи сообщения отметка времени добавляется в него «на лету».

2-шаговый режим

Отметка времени фиксируется в режиме реального времени, когда сообщение начинает передаваться через физический порт, но отметка времени не добавляется к этому сообщению «на лету», а вместо этого отправляется дополнительное сообщение, содержащее значение зафиксированной отметки времени.

В ранних реализациях IEEE 1588v2 использовался 2-шаговый режим передачи отметки времени, поскольку аппаратное обеспечение не было способно добавлять отметку времени в передаваемое сообщение «на лету». Большинство современных реализаций поддерживают одношаговый режим передачи отметки времени.

Алгоритм выбора лучших основных часов

  • В домене PTP все узлы прослушивают появление сообщений announce, которые содержат информацию о качестве и приоритете тех часов, которые его отправили.
  • Если в течение заданного периода времени узел не получит ни одного сообщения announce, он становится основными часами и начинает отправлять свои собственные сообщения announce.
  • Если узел получает сообщение announce, которое лучше по качеству, чем его собственное, узел прекращает отправку сообщений announce и становится подчинёнными часами.
  • Если узел получает сообщение announce, которое хуже по качеству, чем его собственное, узел остается основными часами и продолжает отправлять сообщения announce с заданным интервалом.
  • После завершения определения лучшего по качеству узла в сети, он становится единственным узлом, рассылающим сообщения announce (одни основные часы, множество подчинённых).
  • Этот процесс выполняется постоянно, поэтому если другой узел становится лучше, или текущие основные часы становятся хуже, чем любой другой узел, топология меняется.

Этот процесс называется алгоритмом выбора лучших основных часов (Best Master Clock Algorithm, BMCA).

Периоды отправки сообщений

PTP определяет три типа сообщений, для которых пользователем могут быть настроены периоды их отправки.

Announce
Период отправки уведомлений announce может настраиваться в диапазоне от 2-7 (128 сообщений в секунду) до 27 (1 сообщение в 128 секунд). Если настройки не изменялись пользователем, используется значение «1» – отправка уведомлений каждые 2 секунды.

Sync
Период отправки сообщений sync имеет тот же диапазон, что и для уведомлений announce. Если настройки не изменялись пользователем, используется значение «0» – отправка сообщений каждую секунду.

Delay Request
Период отправки сообщений delay request имеет тот же диапазон, что и для уведомлений announce. Если настройки не изменялись пользователем, используется значение «0» – отправка сообщений каждую секунду.

Профили PTP

Профиль представляет собой определённый набор дополнительных функций и значений параметров PTP. Цель использования профилей — установить ограничения на возможные параметры PTP, чтобы упростить взаимодействие между различными устройствами PTP в отдельных приложениях.

IEEE 1588 определяет два основных профиля PTP:

  • Default E2E: сквозной режим синхронизации, уровень Layer 3
  • Default P2P: одноранговый режим синхронизации, уровень Layer 2

Дополнительные профили разрабатываются и определяются различными отраслями для их конкретных применений.

  • Энергетическая промышленность: IEEE 61850-9-3(Power Utility Profile), EEE C37.238 (power profile)
  • Телекоммуникации: Frequency Profile (ITU-T G.8265.1), Phase Profile (ITU-T G.8275.1 & G.8275.2)
  • Радиовещание: SMPTE ST 2059-2 2015
  • TSN (Радиовещание, автоматизация): IEEE 802.1AS

Сравнение NTP и PTP

ПРЕДУПРЕЖДЕНИЕ: приведенная ниже информация не может являться истинной во всех случаях. Результаты сравнения зависят от условий в каждом конкретном случае и могут отличаться в реальных приложениях. Ниже сделана попытка противопоставления и оценки основных факторов, которые сравнивались друг с другом, чтобы показать преимущества соответствующего протокола. Важно понимать, что не существует чёткой «разделительной линии» – используемые приложения должны определять выбор протокола.

Серверы NTP и PTP используются для синхронизации компьютеров, микропроцессорных систем и других устройств в сетях Ethernet.

NTP, используемый для синхронизации на уровне приложений

  • Нет высоких требований к точности
  • Нет требований к гарантии синхронизации
  • Пример: файлы журналов ошибок с отметками времени

PTP, используемый для точной синхронизации

  • Критически важные приложения
  • Выделенное оборудование для минимизации проблем синхронизации в сети
  • Высокопроизводительные алгоритмы для устранения джиттера в сети и оборудования

Объём передаваемых данных

Нагрузка на сеть в обоих протоколах в основном зависит от используемых настроек.

Количество клиентов

NTP

В режиме Multicast, теоретически, нет никаких ограничений на количество клиентов. В этом режиме сервер отправляет пакет, который доставляется всем клиентам, входящим в группу, поэтому количество клиентов никак не влияет на загрузку сервера NTP.

В режиме Unicast сервер NTP должен быть способен ответить на каждый запрос от каждого из клиентов в сети. Современные серверы NTP обычно способны обслуживать до нескольких тысяч запросов в секунду без ухудшения точности.

Для самих клиентов количество других клиентов никак не отражается на их работе.

PTP

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

В этой конфигурации максимальное количество клиентов зависит от всех подключенных устройств, а не только от основных часов. Если используется одноадресный (Unicast) режим, это ограничение снимается, и ограничение определяется только основными часами. Основные часы способны отвечать на несколько тысяч запросов в секунду без снижения точности. В целом, количество поддерживаемых клиентов сильно зависит от настроенных интервалов.

Выбор протокола

Как PTP, так и NTP обеспечивают синхронизацию времени в сетях с коммутацией пакетов. Но они не предназначены для одних и тех же приложений. Какой из протоколов будет являться предпочтительным, зависит от требований системы.

NTP — это хороший выбор в тех случаях, когда достаточно точности синхронизации в диапазоне миллисекунд. Для таких применений NTP является самым простым и экономичным решением. Он надежен, стабилен и прост в настройке, и не требует каких-либо специальных конфигураций или оборудования в базовой сети.

Типичными примерами использования NTP являются синхронизация часов, ведение журналов (лог-файлов) и т. п.

PTP необходим там, где требуется более высокий уровень точности:

  • Телекоммуникации – синхронизация базовых станций
  • Транспорт, управление трафиком – синхронизация различного управляющего оборудования или различных служб / подразделений
  • Трансляция – синхронизация аудио- и видеооборудования
  • Энергетика – синхронизация оборудования подстанций
  • Банковское дело – синхронизация для высокоскоростной торговли

С помощью PTP возможна суб-микросекундная и даже наносекундная точность синхронизации. Ключевой особенностью PTP, позволяющей добиться такой точности, является аппаратное проставление временных отметок, выполняемое непосредственно перед отправкой пакета данных в канал связи. Недостатком PTP является необходимость в специализированном (и обычно более дорогостоящем) оборудовании, способном обеспечить поддержку PTP и тщательно спроектированной сети.

Оборудование Мобатайм Системс для синхронизации в сетях

Мобатайм Системс предлагает ряд серверов NTP и PTP с высокоточными интерфейсами, таких как PRC, PTP IEEE1588 v2, NTP и т.д. Наши серверы времени могут оснащаться кварцевыми или атомными генераторами и использовать глобальные навигационные спутниковые системы для обеспечения временной, импульсной, фазовой и частотной синхронизации в средних и крупных вычислительных сетях.

Серверы времени NTP производятся в различных исполнениях — простые и компактные, предназначенных для использования в небольших сетях, с выходами линий для управления традиционными вторичными стрелочными и цифровыми часами, высокостабильные модели с различными типами выходов для эксплуатации в средних и крупных сетях.

  • Точная и надёжная синхронизация для всего сетевого оборудования
  • Сервер времени NTP (Network Time Protocol) для различных приложений
  • Использование комплексов серверов времени для использования в сложных системах с высокими требованиями к синхронизации

DTS Grandmaster — это комбинированные системы синхронизации, обеспечивающие максимальную точность и надёжность. Они могут использоваться в качестве высокоточных серверов времени, ведущих часов (grandmaster) IEEE-1588 PTP и первичных эталонных источников и отвечают основным требованиям соответствия строгим спецификациям точности времени MiFID II, например, в области высокочастотного трейдинга.

  • Высочайшая стабильность и точность благодаря использованию рубидиевых генераторов
  • Обеспечение высокой точности в автономном режиме
  • Сервер времени PTP (Precision Time Protocol) для различных приложений

Продукт PTP Slave — DTS timebridge позволяет преобразовывать пакеты PTP обратно в традиционные сигналы синхронизации.