Чи доступний дослідницький матеріал про точність NTP?


13

Наскільки мені відомо, точність синхронізації NTP сильно залежить від мережі. Я бачив деякі цифри від 50 мікросекунд до "нижче однієї секунди" через Інтернет. Ну, це величезна різниця.

Я вважаю, що залежність від точності є чудовим питанням для вивчення, але поки що мені не вдалося знайти жодного матеріалу, який чітко стверджує, що, скажімо, якась конкретна конфігурація надає саме цій точності.

Про це йдеться на http://www.ntp.org/ntpfaq/NTP-s-algo.htm :

Для підтримки синхронізації NTP потрібна різниця у часі менше 128 мс між сервером і клієнтом. Типова точність в Інтернеті коливається приблизно від 5 мс до 100 мс, можливо, змінюється в залежності від затримок мережі. Нещодавнє опитування [2] свідчить про те, що у 90% серверів NTP затримка в мережі менша 100 мс, а приблизно 99% синхронізуються протягом однієї секунди до однорангової синхронізації.

При PPS-синхронізації на Pentium PC досягається точність 50 мкс та стабільність нижче 0,1 PPM (наприклад, під управлінням Linux).

Це щось, але, можливо, є якийсь більш ретельний аналіз на цю тему?


3
Хоча я думаю, що це запитання взагалі не докладає зусиль для дослідження, і я нахиляюсь на цій основі - навіть не ясно, що ОП прочитала будь-який матеріал на ntp.org - я вважаю, що це питання правомірне і могло б заперечувати проти закриття що основа. Бажаючи дізнатись, чому протокол працюватиме так, як рекламується, замість того, щоб сліпо розгортатись і сподіватися на краще, - це не марна трата часу.
MadHatter

Дякую за оновлення запитання, я відкликав свою групову заявку. З цього приводу ви можете відчувати себе прикро, коли ви приїхали назад, звідки ви приїхали, але якщо ви не скажете нам, де ви були, коли задаєте питання, як ми можемо знати? Я також зазначу, що сам текст, який ви публікуєте вище, включає вказівник на науковий документ, що вивчає точність серверів NTP. Ви це читали, і якщо так, чи можете ви вказати, чому цього було недостатньо?
MadHatter

Справедливо. Доповідь - це загальне опитування в мережі NTP за 14 років. Він має подальші зв’язки, але всі вони, звичайно, ще старші. Я спробував Google Scholar та CiteSeer, але більшість посилань - це ті самі роботи Mills і Millnar з дев'яностих. Я все ще переглядаю, але я трохи далекий від теми, і це може зайняти багато часу, тому я вирішив попросити громаду про допомогу.
akalenuk

1
NTP не змінювався принаймні 14 років, чому б його точність суттєво змінилася ?? Як згадувалося нижче, NTP не повинен бути надто точним, він повинен бути в межах 1s (це, мабуть, звідки прийшла ця недоінформована цитата). Якщо вам потрібна точність під 1 мс, тоді ви хочете використовувати PTP. Я справді не бачу жодної цінності в вивченні точності того, що при дуже широкому розгортанні робить саме те, що було призначено.
Chris S

2
На насправді, Кріс, дві частини роботи цитованої робить ясно , що точність серверів NTP в Інтернеті (не саме протокол, який завжди був чудовий) має період з 1999-го і в даний час. Я підозрюю, що це частково тому, що в Інтернеті кращі терміни затримки дещо нижчі та набагато менші, ніж колись вони були, а також частково тому, що якість серверів S1 покращилася (документ 1999 р. Говорить, що найпоширенішим джерелом тактових годин для серверів S1 є Годинник ОС!). Я радий, що ОП задало це питання, я думаю, що це варте того.
MadHatter

Відповіді:


14

Ніхто не може гарантувати, наскільки добре буде працювати NTP у вашій мережі, оскільки ніхто не знає, наскільки добре підключена ваша мережа до Інтернету та до годинникових серверів. Однак, згідно з алгоритмом годинної дисципліни на ntp.org

Якщо безперервно працювати, клієнт NTP у швидкій локальній мережі в домашньому або офісному середовищі може підтримувати синхронізацію номінально в межах однієї мілісекунди. Коли коливання температури навколишнього середовища менше градусів Цельсія, частота генератора тактової частоти дисциплінується в межах однієї частини на мільйон (PPM), навіть коли зсув частоти частоти генератора тактового генератора становить 100 PPM або більше.

Зауважте, що велика, але стабільна затримка між вашою локальною мережею та серверами тактових годин Інтернету не має настільки поганого впливу на точність, як сильно змінна затримка.

Ви не кажете, звідки у вас були оцінки вище ('50 мікросекунд до ... 'нижче однієї секунди' '), тому я не можу їх коментувати, але, на моєму досвіді, 50us навряд чи, якщо у вас безпосередньо не додається джерело тактових годин та позначення 1s навряд чи, якщо у вас є шматочок мокрої струни, що з'єднує вас з Інтернетом, і ви не використовуєте сервери вгору за течією в Антарктиді.

Редагувати : текст, який ви цитуєте зараз у своєму запитанні, дає вказівку на документ, який у 1999 році дійсно встановив, що 99% серверів ntp синхронізовано протягом однієї секунди. На щастя, є новітні роботи; У цьому документі деякі автори з Федерального університету Парана, Бразилія, повторили експеримент у 2005 році і виявили (якщо я правильно зрозумів їх Рис. 1), що на північ 99% - більше як 99,5% - серверів тепер мають компенсації менше, ніж 100 мс, і 90% мають компенсації менше 10 мс. Це дуже добре поєднується з моїм досвідом (див. Вище).

Редагувати 2 : остання зморшка: усі ці дослідження не досліджують, наскільки точний місцевий годинник, а наскільки він відрізняється від базового годинника. Це, очевидно, не одне і те ж. Але перше непізнаване; щоб знати, наскільки неправильний ваш годинник, ви повинні точно знати, який він годинник, і якби ви знали це, чому б ви встановили годинник неправильно в першу чергу? Тільки майте на увазі, що те, що ці дослідження вимірюють, полягає не в різниці між місцевим та абсолютним часом, а між місцевим та опорним.


+1 Я також запустив сервер пулу, і> 20-метровий відбій відслідковувався чітко по всій країні, було дивним.
Chris S

9

Яку проблему ви намагаєтеся вирішити?

Рішення, з яким я стикався для середовищ, що вимагають більшої точності, ніж NTP, - це протокол точності часу (PTP) . У мене це було в науково-обчислювальних і фінансових обчисленнях. Однак є компроміси .

Також див.: Синхронізація птп часу на centos6 / rhel


4
"Яку проблему ви намагаєтеся вирішити?" Моє улюблене запитання - я його постійно задаю.
mfinni

@mfinni, Коли вам потрібно оцінити, хто з клієнтів подає перше (наприклад, HFT ), це допомагає бути точним зі своїм часом.
Печер'є

6

Ще кілька речей, які варто згадати:

  • Вам пощастить отримати <100 мс тремтіння годинника на віртуальній машині, тому все нижче наведено для фізичного хоста
  • Тремтіння під 100 мс майже незмірно для кожного завдання і легко досяжне через Інтернет
  • Джиттер суб 30мс може знадобитися для деяких загальних середовищ, що обслуговують (мені це потрібно для кореляції журналів на попередньому завданні), і це легко досягається за допомогою серверів NTP на тому ж континенті, де з'єднання не здійснюється через посилання "споживача" (наприклад, не супутник , ADSL, DOCSIS, GPON, UMTS / LTE / HSPA / тощо)
  • Для абсолютної точності нижче цього вам слід встановити апаратні сервери NTP від ​​постачальника якості (наприклад, Symmetricom)
  • Місцеві згоди суб 10 м (найчастіше під 1 мс) можна легко досягти, просто маючи тріо (можна зробити і менше, але є причини використовувати три або п’ять) в одному центрі обробки даних, достатньо для майже будь-якого додатка, який не є наукою

5

Я виявляв інтерес з мого боку: я агент Майнберга :-)

Так, NTP може досягти точності від кінця до приблизно. 50 нас (це мікросекунди) джиттера, якщо ви синхронізуєте "клієнт" Linux на голому металі під керуванням Chrony або ntpd, на сервері NTP на базі Linux, дисциплінованому GPS, локальним атомним годинником або яким-небудь таким джерелом.

На машині, яка має локальний GPS (з підключенням PPS), ви, мабуть, побачите зміщення 0-2 мікросекунди між екземпляром ntpd, що працює в ОС, і входом драйвера PPS reflock.

Ці залишкові 50 нас "від кінця до кінця через локальну мережу" є результатом декількох етапів буферизації, змінної затримки IRQ, іншого втручання трафіку в локальну мережу та залучених комп’ютерних шин і багато чого іншого. 50 нас означає мережу з дуже невеликим трафіком. Навіть просто перемикач може додати кілька мікросекунд джиттера - а вищі комутатори зі складними функціями додають більше затримки та тремтіння. Іншими словами, досягти цих 50 мікросекунд у ваших реальних умовах в деяких практичних локальних мережах може бути досить важко.

Аналогічно, ці cca <2us зсуву PPS є результатом просто невизначеності затримки IRQ та загального тремтіння затримки в шині на добре поводячомусь апаратному забезпеченні ПК.

Зауважте, що NTP та його реалізація ntpd та Chrony, безумовно, вимірюють час трансляції NTP транзакцій та віднімають (додають насправді) половину цієї туди-назад, як міру відфільтрувати систематичну транспортну затримку (в один бік). Вони також виконують відхилення від зовнішнього вигляду, домовленість про кворум, вибори системи та будь-який демон NTP фільтрує відповіді, які він отримує на свої upstream запити. Як уже говорили інші, мілісекунди, які ви бачите в Ping і Traceroute, не компенсують ваш місцевий годинник безпосередньо. Важливим є мінливість зворотної транзакції транзакцій, тобто іншого трафіку на шляху до вашого поточного сервера NTP. Ntpq -p - твій друг.

Основний GPS-приймач для використання в режимі синхронізації, з TCXO, може мати 100-200 нс залишкового тремтіння + блукання на своєму виході PPS. Досить добре для NTP, поки GPS залишається заблокованим. (Продуктивність Holdover не дуже хороша для TCXO.) Якість GPS синхронізації з OCXO може бути в межах 100 нс, можливо, більше, ніж 10-30 нс залишкової помилки (зміщення від глобального UTC).

Зауважте, що фактичні супутники, що летять над головою та промінькують на вас через атмосферу, можуть бути трохи жорсткішою грою для приймача, ніж тестування в лабораторії з генератором GPS.

ПТП - молоток. Вам потрібна підтримка HW у гросмейстера, і у рабів, і в будь-яких комутаторах, - але якщо ви все це отримаєте, можливі залишкові зсуви до низьких двозначних наносекунд. Я особисто бачив це в ptp4l, що працює з i210 NIC, який має підтримку HW (мітка часу з наносекундною роздільною здатністю).

Чіп i210 - це диво. Він має 4 штифта загального призначення, які можна використовувати для введення або виведення сигналу PPS. Довідкова плата Intel addon NIC з i210 (і її версії OEM від декількох великих постачальників) оснащена штифтовим заголовком, який надає вам доступ до щонайменше двох цих штифтів GPIO (SDP називають Intel). Окрім впровадження порту великого майстра PTP, вхід PPS можна використовувати для точного позначення часу при захопленні пакетів. Вам потрібне точне джерело PPS та спеціальний фрагмент програмного забезпечення, щоб запустити серво цикл, точно налаштувавши PHC i210 на ext.PPS. На моїй тестовій установці це призвело до однозначної ns (за 1 с ітерації) залишкового зміщення. Це точність, яку ви отримуєте в часових мітках захоплення, якщо ви запустите нещодавній tcpdump або wireshark на сучасному ядрі Linux (все програмне забезпечення потребує підтримки для вирішення наносекундного рівня). А ще краще: я пройшов увесь шлях і створив простий синтезатор PLL для створення 25 МГц для NIC-годинників, зафіксованих до точної 10MHz-посилання. Після цього залишковий зсув у контурі сервоприводу моєї установки захоплення пакетів знизився до чистого 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 фактично містять часові позначки, що зберігаються у типі даних, що дозволяє отримати глибоку субнаносекундну роздільну здатність. Але "субнаносекундне дробове поле" в наш час зазвичай не використовується. ПІСЛЯ тільки проект «Білий кролик» (пов'язаний із швейцарським дослідницьким центром «ЦЕРН») до цих пір здійснив точність підрядів.

PTP також доступний у чистому програмному забезпеченні, без прискорення HW. У цьому випадку, для GM на базі SW та клієнта, що базується на SW, розраховуйте отримати аналогічний залишковий тремтіння, як і для NTP - тобто близько 50 нас у спеціальній, але не відомій для PTP локальній мережі. Я пам’ятаю, що отримував субмікросекундну точність від великого майстра HW за прямим взаємозв’язком (без переключення між ними) та клієнтом, що працює лише на SW (на ПК, що не знає ПК PIC). У порівнянні з NTP, сервоприймач PTP зближується набагато швидше.

Виконуючи деякі "домашні завдання", мені нещодавно прийшло в голову, що транспортування PPS або подібних "дискретних" сигналів синхронізації по широкосмугових волоконно-оптичних маршрутах може бути сприйнятливим до залежного від температури часу "поширення". І хоча я не маю можливості це експериментально перевірити, деякі джерела в інтерверті наводять цифри від 40 до 76 пікосекунд на км і Кельвіна. Зауважте, що хоча подібного типу "теплової блукання" неможливо пом'якшити "в смузі" в симплексній передачі PPS, PTP поступово це компенсує, грунтуючись на стандартних вимірюваннях затримки шляху (що залежить від повної дуплексної передачі).

Отож, для огляду того, як виглядають "точності", за різних технологій / інтерфейсів хронометражу. Який рівень точності вам достатньо хороший, це залежить від вашої заявки, від ваших реальних потреб.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.