Интерес с моей стороны: я агент Майнберга :-)
Да, NTP может достигать сквозной точности вплоть до прибл. 50 мкс (это микросекунды) джиттера, если вы синхронизируете «клиента» linux на голом железе, работающем на Chrony или ntpd, с NTP-сервером на базе Linux, управляемым GPS, локальными атомными часами или чем-то подобным.
На машине с локальным GPS (с соединением PPS) вы, вероятно, увидите смещение 0-2 микросекунды между экземпляром ntpd, работающим в ОС, и входом его драйвера PC для повторной синхронизации.
Те оставшиеся 50 "сквозных по локальной сети" являются результатом нескольких этапов буферизации, переменной задержки IRQ, другого трафика, мешающего в локальной сети и на задействованных компьютерных шинах и еще много чего. 50 us означает локальную сеть с очень небольшим трафиком. Даже один коммутатор может добавить несколько микросекунд джиттера, а более дорогие коммутаторы со сложными функциями увеличивают задержку и джиттер. Другими словами, может быть довольно сложно достичь этих 50 микросекунд в реальных условиях в некоторой практической локальной сети.
Точно так же эти cca <2us смещения PPS являются результатом только неопределенности задержки IRQ и общего джиттера задержки шины на аппаратном обеспечении ПК с хорошим поведением.
Обратите внимание, что NTP и его реализации ntpd и Chrony, безусловно, измеряют время прохождения транзакции NTP и вычитают (добавляют, фактически) половину этого прохождения, как меру, чтобы отфильтровать систематическую задержку передачи (в одну сторону). Они также выполняют отклонение выбросов, консенсус по кворуму, выборы syspeer и любой демон NTP фильтрует ответы, которые он получает на свои исходящие запросы. Как уже говорили другие, миллисекунды, которые вы видите в Ping и Traceroute, напрямую не смещают ваши локальные часы. Важна изменчивость транзакции в обоих направлениях, то есть другого трафика на пути к вышестоящему NTP-серверу. Ntpq -p твой друг.
Базовый приемник GPS для использования по времени с TCXO может иметь 100-200 нс остаточного джиттера + блуждания на своем выходе PPS. Достаточно хорошо для NTP, пока GPS остается заблокированным. (Производительность удержания не очень хорошая с TCXO.) Качественное время GPS с OCXO может быть в пределах 100 нс, может быть, больше, как 10-30 нс остаточной ошибки (смещение от глобального UTC).
Обратите внимание, что настоящие спутники, летящие над головой и излучающие лучи в атмосфере, могут быть немного сложнее для приемника, чем тестирование в лаборатории с генератором GPS.
PTP - это молоток. Вам нужна поддержка HW в гроссмейстере, а также в подчиненных устройствах и в любых коммутаторах, но если вы все это получите, то возможны остаточные смещения вплоть до низкого двузначного числа наносекунд. Я лично видел это в ptp4l, работающем с сетевым адаптером i210, который поддерживает HW (временная метка с наносекундным разрешением).
Чип i210 - это чудо. Он имеет 4 контакта общего назначения, которые можно использовать для ввода или вывода сигнала PPS. Эталонная плата Intel NIC для плат расширения с i210 (и ее OEM-версии от нескольких крупных производителей) оснащена контактным разъемом, который дает вам доступ по крайней мере к двум из этих контактов GPIO (SDP, которые они называют Intel). Помимо реализации порта PTP-гроссмейстера, вход PPS может быть использован для точной отметки времени при захвате пакета. Вам нужен точный источник PPS и специальное программное обеспечение для запуска серво цикла, для точной настройки PHC i210 до ext.PPS. На моем испытательном стенде это привело к единственной цифре ns (за 1 итерацию) остаточного смещения. Это точность, которую вы затем получаете в своих временных метках захвата, если вы используете последнюю версию tcpdump или wireshark на современном ядре Linux (все программное обеспечение нуждается в поддержке разрешения наносекундного уровня). Еще лучше: я прошел весь путь и создал простой синтезатор PLL, чтобы производить 25 МГц для тактовых импульсов NIC, привязанных к точному исходному эталонному сигналу 10 МГц. После этого остаточное смещение в контуре сервомотора моей установки захвата пакетов упало до чистого 0 (доказательство того, что моя опорная частота 10 МГц синхронизирована по фазе с PPS из того же блока GPS).
Обратите внимание, что гроссмейстеры PTP могут быть указаны для предоставления временных меток с фактической гранулярностью за 8 нс (в типе данных с разрешением 1 нс). Это имеет смысл - гигабитный Ethernet имеет тенденцию использовать тактовую частоту 125 МГц, используемую в качестве байтовой тактовой частоты во внутренних элементах MAC, эта тактовая частота, вероятно, также используется в GMII, и это также символьная тактовая частота в металлическом 1000Base-TX (четыре пары параллельно, 2 бита на символ на пару). Поэтому, если вы не используете 1000Base-FX (оптоволокно) с SERDES и экстремистскую реализацию модуля метки времени HW в PHY, который работает до отдельных битов SERDES, эти 8 нс - это все, на что вы можете реально надеяться в гигабитном Ethernet. Некоторые таблицы данных микросхем (с поддержкой PTP) даже утверждают, что путь данных MII не свободен от буферизации, и оттуда может возникнуть некоторое дрожание.
Пакеты PTP на самом деле содержат временные метки, хранящиеся в типе данных, который допускает глубокое субнаносекундное разрешение. Но «субнаносекундное дробное поле» в настоящее время обычно не используется. AFAIR только в проекте White Rabbit (связанном с CERN, швейцарским исследовательским центром) до сих пор реализована точность до минимума.
PTP также доступен в чистом программном обеспечении, без ускорения HW. В этом случае для GM на базе SW и клиента на базе SW ожидайте остаточного дрожания, аналогичного NTP, то есть около 50 мкс в выделенной, но не PTP-локальной сети. Я вспоминаю, как получал точность до микросекунды от гроссмейстера HW по прямому межсоединению (без промежуточного коммутатора) и клиенту только для SW (на сетевой плате, не подозревающей на PTP). По сравнению с NTP сервопривод PTP сходится намного быстрее.
Выполняя некоторую «домашнюю работу», недавно мне пришло в голову, что транспортировка PPS или подобных «дискретных» сигналов синхронизации по глобальным оптоволоконным маршрутам может быть подвержена зависящему от температуры распространению «блуждающего» времени распространения. И хотя у меня нет возможности проверить это экспериментально, некоторые источники в интервалах приводят цифры от 40 до 76 пикосекунд на км и Кельвина. Следует отметить, что хотя этот вид «теплового блуждания» невозможно смягчить «в полосе» при симплексной передаче PPS, PTP посткомпенсирует это по своей природе на основе своих стандартных измерений задержки в тракте (что зависит от полнодуплексной передачи).
Так много для обзора того, как выглядят «прецизионности» для различных технологий синхронизации / интерфейсов. Какой уровень точности достаточно хорош для вас, это зависит от вашего приложения, от ваших реальных потребностей.