Network Time Protocol NTP — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью, основанных на коммутации пакетов.
Хотя традиционно 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 RFC 867 или time protocol RFC 868.
Источник: Википедия, свободная энциклопедия [Электронный ресурс] : NTP / Авторы Википедии. — Электрон. дан. — Штат Флорида. : Фонд Викимедиа, 2006. — Режим доступа: