Какие порты используются для ntp
Со времени начала использования компьютеров (сперва в специализированных системах, в потом и в повседневной жизни) появилась задача поддерживать точность хода системных часов, т.е. иметь точно синхронизированное время с остальными компьютерами и системами. Особенно точность времени критична в распределенных системах, которые критичны к порядку вычисления задач, обработки данных и т.п.
Одним из примеров такой синхронизации, где впервые был применен популярный протокол синхронизации времени NTP, может быть диспетчерская служба управления полетами.
Также немаловажно, чтобы сама сеть компьютеров имела те только синхронизированное время, но и это время было точным с другими системами по всей планете. Т.е. время по всей территории планеты было одинаковым (или достаточно близким).
Протоколы DAYTIME и TIME
Первыми протоколами точного времени, используемым на компьютерах, были DAYTIME (RFC 867) и TIME (RFC 868). Первый предназначался для сообщения даты и времени в понятном человеку виде, второй — понятном компьютеру виде. Формат ответа DAYTIME строго не регламентируется и не предназначен для машинной обработки — предполагается лишь, что человеку, прочитавшему полученную строку, станет ясно текущее время.
Протокол TIME, напротив, предназначен для обмена времени между машинами. На подключившийся к TIME-серверу компьютер приходит UDP-пакет, содержащий единственное 32-битное беззнаковое число, соответствующе числу прошедших с 1 января 1900 г. секунд по UTC. Поскольку такое число переполняется через 136 лет, этот протокол способен функционировать только до 2036 г.
Протокол NTP
Понятно, что ни DAYTIME, ни TIME не могут обеспечить необходимую точность синхронизации времени. В связи с этим, в 1985 г. Дэвидом Л. Миллсом (David L. Mills) из университета Дэлавера был разработан сетевой протокол синхронизации времени NTP, точнее его начальная, позднее названная нулевой (NTPv0) версия, описанная в RFC 958. Протокол NTP использует алгоритм Марзулло (предложен Кейтом Марзулло (Keith Marzullo) из Университета Калифорнии, Сан-Диего), включая такую особенность, как учёт времени передачи. В версии 4 способен достигать точности 10 мс при работе через Интернет, и до 0,2 мс внутри локальных сетей.
Описывать сами протоколы, а тем более их работу и взаимодействие мы не будем — этому посвящено много статей в Интернете — начиная с официальных документов RFC и заканчивая обзорами. Отметим лишь, что NTP для синхронизации использует протокол UDP и 123 порт, DAYTIME — 13 порт TCP/UDP, TIME — 37 порт TCP/UDP.
Протокол NTP совершенствовался не один раз: NTPv1 (1988 г, RFC 1059), NTPv2 (1989 г., RFC1119), NTPv3 (1992 г., RFC1305), NTPv4 (1996 г., RFC2030).
Для определения точности или значимости того или иного NTP-сервера используют параметр Stratum (стратум) — целое число от 1 до 15. Стратум 1 соответствует серверам, имеющим непосредственно связь с эталонном времени, стратум 2 — сервер, получающий сведения о времени от серверов первого стратума и т.д. При построении цепочки связей значение стратума увеличивается на 1.
Принцип определения точного времени
Работа алгоритма NTP достаточно проста и может быть проиллюстрированна задачей Рэймонда М. Смаллиана (1978 г.):
У одного человека не было наручных часов, но зато дома висели точные настенные часы, которые он иногда забывал заводить. Однажды, забыв очередной раз завести часы, он отправился в гости к своему другу, провел у того вечер, а вернувшись домой, сумел правильно поставить часы. Каким образом ему удалось это сделать, если время в пути заранее известно не было?
Ответ таков: выходя из дома, человек заводит часы и запоминает, в каком положении находятся стрелки. Придя к другу и уходя из гостей, он отмечает время своего прихода и ухода. Это позволяет ему узнать, сколько он находился в гостях. Вернувшись домой и взглянув на часы, человек определяет продолжительность своего отсутствия. Вычитая из этого времени то время, которое он провел в гостях, человек узнает время, затраченное на дорогу туда и обратно. Прибавив ко времени выхода из гостей половину времени, затраченного на дорогу, он получает возможность узнать время прихода домой и перевести соответствующим образом стрелки своих часов.
Таким образом, по четырём данным: время отправки запроса (по часам клиента); время получения запроса сервером (по часам сервера); время отправки ответа сервером (по часам сервера); время получения ответа (по часам клиента) можно найти время пакета в пути туда и обратно, а затем — откорректировать локальное время.
При этих расчетах мы пользуемся тремя важными предположениями:
- Пакет проходит путь от клиента до сервера и обратно за равное время.
- Скорость хода часов клиента и сервера равна.
- На вычисление нового локального времени не уходит дополнительное время.
На самом деле все эти предположения, строго говоря, не верны, и получить точное значение серверного времени с помощью одного NTP-запроса невозможно. Поэтому для синхронизации часов обычно используется несколько NTP-серверов, на которые постоянно шлются запросы. Накапливая статистику за длительное время, математическими методами можно определить точность показаний каждого из серверов, скорость хода часов на каждом из них, и т.п. величины, используя которые, можно добиться математически доказуемой точности синхронизации. Конкретные используемые методы описаны в RFC и чрезвычайно сложны. Кстати, из-за третьего предположения, использование синхронизации по NTP по несимметричным каналам связи (спутниковые и т.п.) не правомерно.
Кроме собственно обмена показаниями времени, в NTP начиная с версии 2 включён механизм обмена метаинформацией в виде "управляющих сообщений" NTP. Формат самих управляющих сообщений не задан в RFC, но существующий стандарт де-факто позволяет с их помощью запрашивать у NTP-сервера такие параметры, как адреса всех его клиентов и вышестоящих серверов, задержку до каждого из них и т.п.
NTP позволяет добиться высокоточной синхронизации времени в сети синхронизирующихся серверов, каждый из которых получает показания из нескольких источников, обрабатывает их, и передаёт дальше. Он применим только внутри небольших локальных сетей и сетей с малыми задержками пакетов; в Интернете он практически неприменим из-за большой (и, что важно, случайной) задержки пакетов, которая на порядки превосходит разницы в показаниях часов клиента и сервера. Такая NTP-сеть характеризуется масштабируемостью и устойчивостью к сбоям — даже в случае отказа часов одного из серверов остальные немедленно это заметят и перестанут использовать его показания.
Протокол SNTP
Помимо NTP, существует упрощенная версия этого протокола — SNTP (Simple Network Time Protocol). Он реализован для синхронизации времени конечным клиентом, поскольку все преимущества протокола NTP проявляются именно в сети серверов, а для получения показаний конечным пользователем NTP излишне сложен. Поэтому для синхронизации времени конечными компьютерами и серверами был предложен протокол SNTP (SNTPv3: 1992 г., RFC1361 и 1995 г., RFC1769; SNTPv4 включён как подпротокол в NTPv4).
На самом деле SNTP — это не новый протокол, а способ использования NTP-пакетов и NTP-серверов в приложениях, где не требуется высокоточное время, либо оно недостижимо. В этом случае клиент использует только часть информации UDP-пакета NTP-сервера. SNTP-клиент может работать с любыми версиями NTP-серверов, и кроме них — с особыми SNTP-серверами, которые в откликах заполняют только необходимые данные UDP-пакета.
Таким образом, "облегченный" SNTP образует не сеть синхронизирующихся серверов, а пары "клиент-сервер". Любой NTP-сервер является одновременно SNTP-сервером. Клиент, который не передаёт полученное время дальше, может работать как NTP- или SNTP-клиент, в зависимости от условий. Для SNTP, как и для NTP, зарезервирован 123-й UDP-порт.
Какие порты используются для ntp
Network Time Protocol
Network Time Protocol (NTP) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью.
NTP использует для своей работы протокол UDP. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи.
NTP использует алгоритм Марзулло (предложен Кейтом Марзулло (Keith Marzullo) из Университета Калифорнии, Сан-Диего), включая такую особенность, как учёт времени передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 0,2 мс (1/5000 с) и лучше внутри локальных сетей.
NTP — один из старейших используемых протоколов. NTP разработан Дэвидом Л. Миллсом (David L. Mills) из университета Дэлавера в 1985 году и в настоящее время продолжает совершенствоваться. Текущая версия — NTP 4.
NTP использует иерархическую систему «часовых уровней» (stratum). Уровень 1 синхронизирован с высокоточными часами, например, с системой GPS, ГЛОНАСС (Единая Государственная шкала времени РФ) или атомным эталоном времени. Уровень 2 синхронизируется с одной из машин уровня 1, и так далее.
Время представляется в системе NTP 64-битным числом (8 байт), состоящим из 32-битного счётчика секунд и 32-битного счётчика долей секунды, позволяя передавать время в диапазоне 2 32 секунд, с теоретической точностью 2 −32 секунды. Поскольку шкала времени в NTP повторяется каждые 2 32 секунды (136 лет), получатель должен хотя бы примерно знать текущее время (с точностью 50 лет). Также следует учитывать, что время отсчитывается с полуночи 1 января 1900 года, а не с 1970, поэтому из времени NTP нужно вычитать почти 70 лет (с учётом високосных лет), чтобы корректно совместить время с Windows или Unix-системами.
Наиболее широкое применение протокол NTP находит для реализации серверов точного времени. Для достижения максимальной точности предпочтительна постоянная работа программного обеспечения NTP в режиме системной службы. В семействе операционных систем Microsoft Windows, — это служба W32Time (модуль w32time.dll, выполняющийся в svchost.exe), Linux — сервис Ntpd.
Более простая реализация этого алгоритма известна как SNTP — простой синхронизирующий сетевой протокол. Используется во встраиваемых системах и устройствах, не требующих высокой точности, а также в пользовательских программах точного времени.
Подробная реализация протокола и системы в целом описана в:
NTP не следует путать с daytime protocol RFC 867 или time protocol RFC 868 (win программа FG Time Sync).
Часовые слои

NTP использует иерархическую, многоуровневую систему источников времени. Каждый уровень этой иерархии называется слоем, каждому слою присваивается номер, начиная с 0 (ноль) в верхней части. Уровень слоя определяет расстояние от эталонных часов и существует, чтобы предотвратить циклические зависимости в иерархии. Важно отметить, что слой не является показателем качества и надежности, это значит, что источник слоя 3 может дать сигнал более высокого качества, чем некоторые источники слоя 2. В основном, слои служат для распределения нагрузки и обеспечения большей площади покрытия. Это определение слоя также отличается от понятия часовых слоёв, используемых в телекоммуникационных системах.
Слой 0 — это высокоточные приборы служащие эталоном времени, такие как атомные (молекулярные, квантовые) часы, радиочасы или их аналоги. Обычно эти устройства не подключены к сети; вместо этого они подключены к локальному компьютеру (например, через интерфейс RS-232) и передают сигналы PPS для синхронизации.
Это компьютер, к которому напрямую подключены эталонные часы. Он выступает в качестве сетевого сервера времени и отвечает на NTP-запросы посылаемые компьютерами слоя 2.
Это компьютеры, которые получают время от серверов первого слоя, используя для этого протокол NTP. Обычно, компьютеры второго слоя обращаются к нескольким серверам первого слоя, и используя NTP-алгоритм, получают наилучший образец данных, отсеивая сервера с очевидно неверным временем. Компьютеры могут сравнивать свои данные с другими компьютерами своего слоя для получения стабильных и непротиворечивых данных на всех компьютерах слоя. Компьютеры второго слоя в свою очередь выступают в качестве серверов для компьютеров третьего слоя и отвечают на NTP-запросы.
Компьютеры третьего слоя работают точно так же как и компьютеры второго слоя, с той лишь разницей, что серверами для них являются компьютеры вышележащего второго слоя. Они так же могут выступать в качестве серверов для нижележащего слоя. NTP (в зависимости от версии) поддерживает до 256 слоев.
Какие порты используются для ntp
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.
Содержание
[править] Теория
Network Time Protocol (NTP) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью.
NTP использует для своей работы протокол UDP 123 порт. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи.
NTP использует алгоритм Марзулло (предложен Кейтом Марзулло (Keith Marzullo) из Университета Калифорнии, Сан-Диего), включая такую особенность, как учёт времени передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 0.2 мс (1/5000 с) и лучше внутри локальных сетей.
NTP — один из старейших используемых протоколов. NTP разработан Дэвидом Л. Миллсом (David L. Mills) из университета Дэлавера в 1985 году и в настоящее время продолжает совершенствование. Текущая версия — NTP 4.
NTP использует иерархическую систему «часовых уровней». Уровень 1 синхронизован с высокоточными часами, например, с системой GPS, ГЛОНАСС (Единая Государственная шкала времени РФ) или атомным эталоном времени. Уровень 2 синхронизируется с одной из машин уровня 1, и так далее.
Время представляется в системе NTP 64-битным числом (8 байт), состоящим из 32-битного счётчика секунд и 32-битного счётчика долей секунды, позволяя передавать время в диапазоне 2 32 секунд, с теоретической точностью 2 −32 секунды. Поскольку шкала времени в NTP повторяется каждые 2 32 секунды (136 лет), получатель должен хотя бы примерно знать текущее время (с точностью 50 лет).
Более простая реализация этого алгоритма известна как SNTP — простой синхронизирующий сетевой протокол. Используется во встраиваемых системах и устройствах, не требующих высокой точности, а также в пользовательских программах точного времени.
Протоколы NTP и SNTP: различия и как они работают
Компания НТП (Cеть Протокол времени) и SNTP (простой протокол сетевого времени) два основных протокола для правильного функционирования Интернета. Оба протокола позволяют всем устройствам в сети, таким как компьютеры, серверы, коммутаторы, маршрутизаторы, Smart TV или любые другие устройства, подключенные к Интернету, иметь возможность иметь правильное время в вашей системе, чтобы не возникало проблем. при просмотре. онлайн или выполнить любую задачу. Сегодня в этой статье мы собираемся подробно объяснить оба временных протокола, различия между NTP и SNTP, а также то, как они настроены на разных устройствах.
Что такое NTP (сетевой протокол времени) и как он работает?
Протокол NTP — это первый протокол, который был запущен для синхронизировать часы разных компьютерных систем , NTP не только работает на компьютерах или серверах, но и является основной частью маршрутизаторов, коммутаторов, Wi-Fi точки доступа и любое сетевое оборудование, например межсетевые экраны. NTP был одним из первых интернет-протоколов, который родился в 1981 году, и он до сих пор используется для синхронизации часов различных компьютерных систем. Протокол NTP позволяет синхронизировать время с различными серверами NTP, которые развернуты по всему миру и доступны через Интернет, кроме того, протокол NTP позволяет синхронизировать время, даже если у нас очень высокая или переменная задержка. , поскольку он включает механизмы, позволяющие избежать задержек во времени из-за этой задержки.
Протокол NTP использует Протокол транспортного уровня UDP на порту 123 для связи с различными серверами NTP по всему миру. . Очень важная деталь заключается в том, что этот протокол NTP использует порт 123 UDP как в исходном, так и в целевом портах, поэтому мы должны учитывать это, если у нас есть устройства за брандмауэр или если есть контрольные списки доступа в различных управляемых коммутаторах локальной сети. Если у вас есть устройство, использующее протокол NTP, и управляемый коммутатор с включенными различными сетевыми атаками, вам необходимо отключить » Атака Блата ”Атака для правильной работы протокола NTP. Эта «атака Blat» заключается в блокировании пакетов TCP или UDP, имеющих одинаковые порты источника и назначения, в точности то, что делает NTP при использовании портов источника и назначения UDP 123. Поэтому мы должны учитывать это при настройке нашей сети.

Текущая версия NTP — это версия 4, поскольку со временем этот важный протокол был обновлен и улучшен. Протокол NTP использует шкалу времени UTC (всемирное координированное время), включая поддержку дополнительных секунд, кроме того, последняя версия NTP позволяет поддерживать синхронизацию с максимальной разницей в 10 миллисекунд через Интернет, если в локальной сети можно достичь точности до 200 микросекунд, хотя это будет зависеть от того, как настроена ваша сеть. В разных операционных системах, таких как Windows, Linux или macOS протокол NTP всегда работает для правильной синхронизации с серверами времени.
Со временем проблемы безопасности, связанные с протоколом NTP были обнаружены как в реализации в различных операционных системах, в клиентах NTP на разных компьютерах, так и во внутренней безопасности самого протокола, который он не использует. любой тип аутентификации или шифрования данных для обмена сообщениями. Серверы NTP уязвимы для атак Man in the Middle, если пакеты не подписаны криптографически, то же самое касается самих компьютеров, он может выполнять атаки MitM для изменения времени на конечных компьютерах. Протокол NTP отправляет всю информацию в виде обычного текста, он не имеет какого-либо типа шифрования, аутентичность или целостность данных проверяется. Чтобы этого избежать, сетевое время Охранник (NTS) был разработан протокол, который представляет собой безопасную версию NTP, использующую TLS и AEAD для защиты связи, и что никто не может выдавать себя за сервер NTP для неправильной настройки времени в нашей системе.
Что делать, если в моей системе нет правильного времени?
- Невозможность просмотра Интернета с помощью любого веб-браузера, в зависимости от настроенного времени, он будет постоянно указывать на ошибки в различных сертификатах SSL / TLS веб-сайтов.
- Проблемы с некоторым программным обеспечением, для работы которого требуется определенное время.
- У нас могут быть проблемы с обновлениями Windows.

В маршрутизаторах и брандмауэрах отсутствие правильного времени также означает невозможность установить VPN туннели, если используются цифровые сертификаты, потому что возможно, что время выходит за рамки даты и времени создания сертификата или его истечения, кроме того, все записи, в которых они будут отображаться, будут с неправильным временем, поэтому мы также должны учитывать это учетная запись. В случае с управляемыми NTP коммутаторами, которые у нас есть, мы не могли правильно видеть записи с их датой и временем, а также не могли запрограммировать PoE для включения и выключения точек доступа. Наконец, еще одно сетевое оборудование, которое может быть повреждено, — это контроллеры WiFi, мы не смогли увидеть, в какие часы больше трафика, потому что время настроено неправильно.
Как видите, у нас много проблем, когда дело доходит до неправильного времени в определенной компьютерной системе.
Что такое SNTP (простой протокол сетевого времени) и как он работает?
Компания SNTP (Simple Network Time Protocol) протокол является менее сложная реализация протокола NTP , он использует тот же протокол и служит той же цели. Этот протокол широко используется во встроенном оборудовании, таком как домашние маршрутизаторы или домашние коммутаторы, где полная возможность протокола NTP не требуется. В настоящее время используется протокол SNTPv4, определенный в RFC4330.

SNTPv4 обеспечивает упрощенный доступ для серверов и клиентов, которые используют текущую и предыдущую версии NTP и сам SNTP, доступ идентичен протоколу UDP / TIME, поэтому адаптация должна быть очень простой. Этот протокол разработан для работы в конфигурации с выделенным сервером, который включает в себя встроенные радиочасы, кроме того, были улучшены и контролировались задержки, точное время можно вводить за несколько микросекунд без каких-либо проблем.
Протокол SNTP со временем развивался, улучшая его производительность, а также совместимость с различными базовыми протоколами. Например, единственное существенное изменение в SNTPv4 по сравнению с предыдущими версиями — это заголовки, адаптированные к протоколу IPv6. Некоторые дополнительные расширения также были добавлены к базовому NTP. В настоящее время, когда мы настраиваем NTP-сервер в различных NTP-клиентах, существующих во всем мире, операции и обмен информацией могут выполняться как с использованием протоколов NTP, так и SNTP, операция то же самое, так как у нас есть совместимость.
Различия между NTP и SNTP
Основное различие между NTP и SNTP заключается в том, что последний не требует какого-либо типа хранения состояния в течение очень длительных периодов времени, что делает протокол NTP. Очень важным отличием для сетевых администраторов является работа связи, позволяющая или запрещать трафик на межсетевых экранах или создавать списки контроля доступа на управляемых коммутаторах.
Протокол NTP работает с протоколом UDP на порту 123, этот порт 123 UDP используется для связи как в источнике, так и в пункте назначения. Как мы объясняли ранее, если вы активировали «атаку Blat» в коммутаторах, и у вас есть устройство, которое использует чистый протокол NTP, оно наверняка блокирует трафик только от NTP без вашего ведома.
Протокол SNTP работает с протоколом UDP на порту 123, связь использует случайный порт UDP в качестве источника , и порт 123 UDP в качестве пункта назначения. Согласно стандарту SNTP, исходный порт может быть любым, кроме 0, для выполнения мультиплексирования, конечно, сервер правильно отвечает на исходный порт, выбранный клиентом в первом сеансе связи, чтобы не иметь проблем с NAT, который они есть роутеры. Цель этого важного изменения — позволить идентифицировать конкретного клиента, чтобы не было проблем с NAT, и предотвратить блокировку связи коммутаторами с активированной атакой Blat.
Как вы видели, протоколы NTP и SNTP являются двумя фундаментальными и очень важными протоколами для компьютерных систем, поэтому важно правильно настроить время либо в операционной системе вашего настольного компьютера, либо в другом сетевом оборудовании, которое у вас есть.