Модель TCP/IP (RFC 1122) |
---|
Прикладний рівень |
Транспортний рівень |
Мережевий рівень |
Канальний рівень |
Мережевий протокол часу (англ. Network Time Protocol) — мережевий протокол синхронізації внутрішнього годинника комп'ютера з використанням мереж зі змінною латентністю, заснований на комутації пакетів.
Хоча традиційно NTP використовує для своєї роботи протокол UDP, він також здатний працювати й поверх TCP. Система NTP надзвичайно стійка до змін латентності середовища передачі.
NTP використовує алгоритм Марзулло (запропонований Кейтом Марзулло (Keith Marzullo) з Університету Каліфорнії, Сан-Дієго), включаючи таку особливість, як облік часу передачі. У версії 4 він здатний досягати точності 10 мс (1/100 с) при роботі через Інтернет, і до 200 мікросекунд (1/5000 с) і краще усередині локальних мереж.
NTP — один з найстарших використовуваних протоколів. NTP розроблений Девідом Л. Міллсом (David L. Mills) з університету Делавера й у цей час продовжує вдосконалення. Поточна версія — NTP 4.
Демон NTP — програма рівня користувача, працює постійно.
NTP використовує ієрархічну систему «годинникових рівнів», рівень 1 синхронізований з високоточними годинниками, наприклад, система GPS або еталони часу. NTP рівень 2 синхронізується з однієї з машин рівня 1, і так далі.
Час, представляється в системі NTP 64-бітним числом, що складається з 32-бітного лічильника секунд й 32-бітного лічильника часток секунди, дозволяючи передавати час у діапазоні 232 секунд, з теоретичною точністю 2−32 секунди. Оскільки шкала часу в NTP повторюється кожні 232 секунди (136 років), одержувач повинен хоча б приблизно знати поточний час (з точністю 50 років).
Простіша реалізація цього алгоритму відома як SNTP — простий синхронізуючий мережний протокол. Використовується у вбудованих системах, і пристроях, що не вимагають високої точності.
Докладна реалізація протоколу й системи в цілому описана в:
NTP не слід плутати з Daytime Protocol[en] RFC 868.