Здравствуйте, это сайт Альянса сетевых технологий.
Время является важной частью нашей повседневной жизни, и в эпоху цифровых технологий синхронизация времени также играет жизненно важную роль в компьютерных и сетевых системах. Протокол сетевого времени (NTP) — это ключевой протокол, используемый для обеспечения точного времени различными устройствами в сети. С популяризацией Интернета и постоянным развитием цифровых технологий НТП становится все более важным, затрагивая множество областей, от связи и безопасности до финансов и медицинского обслуживания.
В этой статье брат Руи подробно расскажет вам о протоколе NTP. Я надеюсь, что после прочтения этой статьи вы сможете получить некоторое представление о нем.
Оглавление:
TOC
NTP,Полное английское имя:Network Time Protocol
,Полное имя на китайскомпротокол сетевого времени,Это протокол, используемый для синхронизации часов устройств в компьютерных сетях.
Его основная цель — обеспечить, чтобы каждое устройство в сети имело постоянную привязку ко времени, чтобы они могли работать вместе для отметки времени, синхронизации данных и выполнения различных вычислительных задач. NTP использует многоуровневую структуру для обеспечения синхронизации времени, чтобы все устройства в сети могли получать точную информацию о времени.
Грубо говоря, синхронизация сетевого времени призвана решить проблему, заключающуюся в том, что многие приложения и системы предъявляют очень высокие требования к точности времени. Краткий список причин таков:
Многие приложения и системы используют временные метки для записи последовательности событий. Даже небольшие различия во времени, например различия на уровне миллисекунд, могут привести к ошибкам в порядке событий, что имеет решающее значение для точности и надежности транзакций.
В некоторых критически важных приложениях, таких как финансовые транзакции и сетевые коммуникации, даже кратковременный сбой может привести к огромным потерям. Синхронизируя сетевое время, вы можете гарантировать согласованность времени различных сетевых устройств и приложений, тем самым избегая проблем, вызванных рассинхронизацией времени.
При устранении неполадок и восстановлении сети точная информация о времени важна для определения основной причины проблемы и отслеживания сбоев. Синхронизация сетевого времени может помочь точно записывать временные метки событий, помогая быстро диагностировать и устранять проблемы.
Многие отрасли и организации сталкиваются с требованиями соответствия и нормативных требований, которые требуют синхронизации времени для обеспечения точности и полноты данных. Синхронизация сетевого времени помогает удовлетворить эти нормативные требования.
В научных исследованиях и экспериментах точность синхронизации имеет решающее значение для сбора и анализа данных. Синхронизация сетевого времени обеспечивает повторяемость и точность экспериментальных результатов.
NTP — это высоконадежный и гибкий протокол синхронизации времени, подходящий для различных сетевых сред и сценариев применения.
Stratum — это иерархическая система, используемая для представления источников синхронизации в протоколе сетевого времени (NTP). Иерархическая структура NTP обеспечивает высокоточную синхронизацию времени, поскольку позволяет устройствам в сети выбирать источник времени на основе их близости к источнику часов более высокого уровня. Это помогает гарантировать, что синхронизация времени остается в допустимых пределах даже в сложных сетевых средах, таких как Интернет.
NTP использует иерархическую систему источников времени, каждый уровень называется «слоем», а опорным часам верхнего уровня присваивается номер 0. Серверы на каждом уровне синхронизируются с серверами на следующем уровне, и такая иерархическая структура помогает предотвратить циклические зависимости в иерархии.
Номер уровня указывает расстояние от эталонных часов и не обязательно отражает качество или надежность. Источники времени более высокого уровня обычно имеют более высокое качество. Поле слоя в пакете NTP установлено в 0, что указывает на то, что уровень не указан.
Это самый высокий уровень, который обычно обеспечивается основным источником времени на Земле, таким как спутники глобальной системы позиционирования (GPS), атомные часы и т. д. Источник синхронизации Stratum 0 считается наиболее точным и надежным. Сервер NTP не может быть назначен на уровень 0.
Этот уровень включает серверы NTP, подключенные непосредственно к источнику синхронизации Stratum 0. Как правило, эти NTP-серверы обладают высокой точностью, например, используют сигналы GPS или атомные часы для получения точного времени. Серверы Stratum 1 также называются главными серверами. Они предоставляют информацию о времени подчиненным серверам Stratum.
Уровень 2 включает в себя те серверы NTP, которые синхронизируются с серверами уровня 1. Эти серверы полагаются на информацию о времени, предоставляемую серверами уровня 1, но они все равно могут предоставлять время с относительно высокой точностью. Серверы Stratum 2 обычно используются в локальных сетях или других небольших сетях.
Уровень 3 включает клиент NTP, который синхронизируется с серверами уровня 2. Эти клиенты подключаются к серверам Stratum 2 по сети для синхронизации времени. Серверы Stratum 3 обычно используются в более крупных сетях.
Иерархия NTP может продолжаться вплоть до уровня 15 или 16, который обычно представляет собой несинхронизированные устройства или системы. По мере спуска по уровням точность синхронизации времени снижается, поскольку каждый уровень добавляет некоторую задержку сети к уровню выше.
Между серверами времени в пределах одного слоя они могут согласовывать время посредством двухточечной связи, чтобы гарантировать, что их часы остаются согласованными. Это достигается, как показано горизонтальной стрелкой.
Верхний предел уровней — 15, а уровень 16 используется для обозначения того, что устройство не синхронизировано. Алгоритм NTP на каждом компьютере использует связующее дерево кратчайшего пути Беллмана-Форда, чтобы минимизировать совокупную задержку туда и обратно от всех клиентов до сервера уровня 1.
Помимо иерархии, NTP также использует ссылочные идентификаторы для идентификации источника синхронизации каждого сервера. Это помогает определить путь синхронизации для каждого сервера.
💡Иерархическая структура обеспечивает надежность синхронизации времени, поскольку при возникновении сбоя или проблемы система может переключиться на сервер времени более высокого уровня для поддержания точности времени. Иерархия серверов времени NTP является ядром протокола NTP, обеспечивая согласованность времени в сети. Иерархическая структура обеспечивает надежность синхронизации времени, поскольку в случае сбоя или проблемы система может переключиться на более высокий уровень. уровень сервера времени для поддержания точности времени. Иерархия серверов времени NTP является ядром протокола NTP и обеспечивает согласованность времени в сети.
T1 — это отметка времени, когда клиент отправляет сообщение запроса NTP, а T4 — это отметка времени, когда клиент получает ответное сообщение NTP. Например, Т1 = 50 секунд, Т4 = 70 секунд.
T2 — это временная метка, когда NTP-сервер получает сообщение запроса NTP, а T3 — это временная метка, когда NTP-сервер отправляет ответное сообщение NTP. Например, Т2 = 80 секунд, Т3 = 90 секунд.
Время приема-передачи (RTT) — это общее время с момента отправки клиентом запроса до момента получения ответа. RTT можно найти, рассчитав T4 – T1: RTT = T4 – T1 = 70 секунд – 50 секунд = 20 секунд.
Поскольку сервер получает запрос в момент Т2 и отправляет ответ в момент Т3, время, затрачиваемое сервером между обработкой запроса и генерацией ответа, составляет Т3 – Т2 = 90 секунд – 80 секунд = 10 секунд.
Время между отправкой запроса клиентом и получением его сервером рассчитывается как T2 – T1 = 80 секунд – 50 секунд = 30 секунд.
Время, необходимое серверу для обработки запроса после получения запроса, рассчитывается как T3 – T2 = 90 секунд – 80 секунд = 10 секунд.
Клиент оценивает время, необходимое для того, чтобы ответ сервера достиг клиента. Например, клиент оценивает задержку как половину RTT, поскольку RTT включает общее время между запросом, достигающим сервера, и ответом, возвращаемым клиенту. Таким образом, расчетная задержка клиента составляет (RTT/2) = 20 секунд/2 = 10 секунд.
Клиент настраивает локальные часы клиента, вычитая расчетную задержку клиента (10 секунд) из точного времени, полученного от сервера (T3). Это обеспечит синхронизацию часов клиента с часами NTP-сервера, т. е. часы клиента должны опережать фактическое время на 10 секунд, поэтому минус 10 секунд часы будут синхронизированы с сервером.
Метка времени NTP является ключевым компонентом ее успеха, позволяя NTP обеспечивать высокоточную и надежную синхронизацию времени для использования в различных областях, включая компьютерные сети, связь и научные исследования.
NTP настраивает локальные часы посредством расчета меток времени и сетевых задержек, чтобы обеспечить максимальное соответствие системных часов часам сервера NTP и достижения высокоточной синхронизации времени.
Клиент NTP инициирует запрос времени к серверу NTP и запрашивает точное время сервера. Этот запрос обычно включает текущую временную метку клиента.
в целом,Это черезПорт 123 для протокола UDPзавершенный。NTPклиент Это может быть компьютер、маршрутизатор、Выключатель или другое Сетевое оборудование.
Сервер NTP получает запрос клиента и включает в ответ свою временную метку. Время сервера обычно более точное, чем время клиента. Ответ сервера включает четыре временные метки: T1, T2, T3, T4.
Сервер NTP может быть сервером уровня 1 (обычно это высокоточный источник времени, такой как атомные часы или часы GPS) или сервером уровня 2 и т. д.
Клиент использует метки времени T1, T2, T3, T4 для расчета задержки в сети и отклонения часов. На основе этих временных меток клиент может рассчитать задержку в сети, то есть время, необходимое сигналу для прохождения от клиента к серверу и обратно. В своем примере вы рассчитали задержку, которая очень важна для NTP, поскольку задержка в сети влияет на синхронизацию часов.
Клиент использует рассчитанную сетевую задержку и временную метку сервера для настройки своих локальных часов. Эта настройка выравнивает часы клиента с часами сервера, чтобы уменьшить рассогласование часов.
💡Помните: синхронизация времени — это не разовое мероприятие, а происходит регулярно. Клиентские устройства обычно выполняют синхронизацию времени с NTP-сервером через регулярные промежутки времени (обычно каждые 10 минут или каждый час), чтобы обеспечить точность часов. Последующие обмены синхронизацией времени обычно требуют только одного обмена сообщениями, поскольку клиент уже установил синхронизацию времени с сервером NTP.
Сетевое оборудование. В качестве примера мы возьмем Cisco.
Как показано на рисунке выше, R1 действует как NTP-сервер, а R2 — как NTP-клиент. Между ними существует физическое соединение, а интерфейс Loopback0 служит исходным адресом для связи NTP. R1 предоставляет услугу синхронизации времени, а R2 синхронизирует время с R1.
R1# configure terminal
R1(config)# interface Loopback0
R1(config-if)# ip address 1.1.1.1 255.255.255.255
Здесь мы используем интерфейс Loopback0 в качестве исходного адреса NTP-сервера, а IP-адрес — 1.1.1.1.
R1(config-if)# ip ospf 1 area 0
R1(config)# interface FastEthernet0/0
R1(config-if)# ip address 10.1.1.1 255.255.255.0
Это физический интерфейс между сервером и клиентом.
R1(config-if)# ip ospf 1 area 0
R1(config)# clock timezone GMT +8
R1# clock set 16:00:00 6 nov 2023
R1(config)# ntp master 1
Это означает, что R1 будет действовать как главный сервер NTP, обеспечивая синхронизацию времени.
R1(config)# ntp source loopback 0
Это гарантирует, что пакеты NTP будут использовать IP-адрес интерфейса Loopback0.
R2# configure terminal
R2(config)# interface Loopback0
R2(config-if)# ip address 2.2.2.2 255.255.255.255
R2(config-if)# ip ospf 1 area 0
R2(config)# interface FastEthernet0/0
R2(config-if)# ip address 10.1.1.2 255.255.255.0
R2(config-if)# ip ospf 1 area 0
R2(config)# clock timezone GMT +8
R2(config)# ntp server 1.1.1.1
Это скажет R2 синхронизировать время с 1.1.1.1.
R2(config)# ntp source loopback 0
R2(config)# ntp server 202.112.10.36 source FastEthernet0/0
Это позволит синхронизировать время с использованием NTP-сервера Интернета.
R2# show clock
R2# show ntp status
Здесь мы возьмем в качестве примера систему Ubantu.
Как показано на рисунке выше, у нас есть две машины: одна — NTP-клиент, а другая — NTP-сервер.
sudo apt update
sudo apt install ntp
Отредактируйте файл конфигурации NTP-сервера, чтобы он работал в качестве NTP-сервера. Откройте терминал и выполните следующую команду:
sudo nano /etc/ntp.conf
В файле найдите и отредактируйте следующие строки, чтобы настроить его в качестве NTP-сервера. Вы можете выбрать, разрешить ли другим клиентам синхронизировать время с вашим NTP-сервером:
# Разрешить другому клиенту синхронизировать время
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Используйте местные часы в качестве ориентира
server 127.127.1.0
fudge 127.127.1.0 stratum 10
Сохраните файл конфигурации и перезапустите службу NTP, чтобы изменения вступили в силу:
sudo systemctl restart ntp
Вы можете использовать следующую команду для проверки конфигурации NTP-сервера:
Используйте следующие команды для просмотра состояния и информации о синхронизации NTP-сервера:
ntpq -p
Используйте следующую команду для просмотра текущего системного времени:
date
Если в вашей системе еще нет установки программного обеспечения NTP, откройте терминал и выполните следующую команду, чтобы установить его:
sudo apt update
sudo apt install ntp
Отредактируйте файл конфигурации клиента NTP, указав сервер NTP. Откройте терминал и выполните следующую команду:
sudo nano /etc/ntp.conf
в файле,Найдите и отредактируйте следующие строки, чтобы добавить или изменитьNTPсервер。Воляyour_ntp_server_ip
Заменить реальнымNTPсерверIPадрес:
# Укажите NTP сервер
server your_ntp_server_ip
Сохраните файл конфигурации и перезапустите службу NTP, чтобы изменения вступили в силу:
sudo systemctl restart ntp
Вы можете использовать следующую команду для проверки конфигурации NTP-клиента:
Используйте следующие команды для просмотра состояния и информации о синхронизации NTP-сервера:
ntpq -p
Используйте следующую команду для просмотра текущего системного времени:
date
Подводя итог сегодняшней статье, я пишу не просто ради обобщения, я просто резюмирую протокол NTP. Надеюсь, что каждый сможет быстро понять протокол NTP, прочитав здесь краткое изложение.
ЯсуществоватьучаствоватьНа третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 года будет проводиться конкурс сочинений. Соберите команду, чтобы выиграть приз!