Насколько можно доверять времени в интернете?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
MiK13
Сообщения: 1180
ОС: Linux Debian

Насколько можно доверять времени в интернете?

Сообщение MiK13 »

Вопрос возник потому, что по работе используем GPS/ГЛОНАСС приёмник. Начальник когда-то давно сказал, что он обеспечивать чуть ли не микросекундную точность.Но я сравниваю свои часы с тем временем, которое получается из GPS приёмника и вижу, что мои часы спешат на 20 секунд. Затем иду к своему компьютеру, котрый синхронизируется по NTP и вижу, что мои часы спешат на 10 секунд. То есть расхождение между NTP и GPS приёмником составляет примерно 10 секунд. Вот поэтому у меня и возник вопрос: кому доверять?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Насколько можно доверять времени в интернете?

Сообщение Bizdelnick »

MiK13 писал(а):
30.03.2017 16:42
своему компьютеру, котрый синхронизируется по NTP

С кем синхронизируется? Чем синхронизируется? Если смотреть ntpdate ru.pool.ntp.org, расхождение есть?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Насколько можно доверять времени в интернете?

Сообщение MiK13 »

Bizdelnick писал(а):
30.03.2017 16:44
MiK13 писал(а):
30.03.2017 16:42
своему компьютеру, котрый синхронизируется по NTP

С кем синхронизируется? Чем синхронизируется?

Код: Выделить всё

grep ^server /etc/ntp.conf
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst


Bizdelnick писал(а):
30.03.2017 16:44
Если смотреть ntpdate ru.pool.ntp.org, расхождение есть?
Нет.

Код: Выделить всё

ntpdate -u ru.pool.ntp.org
30 Mar 17:34:24 ntpdate[9824]: adjust time server 46.254.216.9 offset -0.002556 sec


Есть два предположения.
1. GPS приёмник у нас покупной, но декодирование делали самостоятельно. Может быть тут что-то напутали
2. Разсхождение из-за високосных секунд.Моэет быть какая-то из систем их не учитывает. Правда, это очень сомнительно.
Первый вариант постараюсь проверить с помощью бытового GPS навигатора Garmin (когда-то купил).Надеюсь, он принимает не только координаты, но и время.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Насколько можно доверять времени в интернете?

Сообщение Bizdelnick »

MiK13 писал(а):
30.03.2017 17:54
Надеюсь, он принимает не только координаты, но и время.

Они все принимают время, вопрос только, что он показывает. ☺
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Насколько можно доверять времени в интернете?

Сообщение s.xbatob »

Приёмник GPS должен знать время с той же точностью, что и координаты, то есть порядка единиц метров или, если перевести в секунды, порядка сотен наносекунд.
Високосные секунды там действительно не учитываются, и с момента запуска GPS их нагорело 19. Если сами декодируете время, то их надо вычитать. Судя по тому, что вы видите, вы это не делаете. "Железные" навигаторы их корректируют, но только на момент их изготовления, и по мере добавления секунд тоже начинают спешить.
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Насколько можно доверять времени в интернете?

Сообщение Vascom »

Время системы GPS не корректируется на високосную секунду, поэтому сейчас может отличаться от времени UTC секунд на 20. Для учёта этого различия выпускаются специальные корректирующие бюллетени.

Можно погуглить, но вот более-менее короткое описание ситуации http://youarehere.ru/etries/31.html

В любом случае синхронизация времени по NTP подходит лишь для примерно одинакового времени на разных компьютерах. Если же требуется жёсткая привязка (как у базовых станций сотовой связи или для других профессиональных применений), то надо ставить по приёмнику GPS на каждый компьютер. В этом случае компьютеры будут иметь синхронное время с точностью до 100нс в любой точке Земли.

MiK13 писал(а):
30.03.2017 17:54
Надеюсь, он принимает не только координаты, но и время.

Синхронизация времени приёмника и системы GPS - базовая функция, необходимая для решения навигационной задачи. Для точного определения координат необходимо решить систему уравнений с четырьмя неизвестными - три координаты и время (поэтому и спутников минимум надо четыре, чтобы получить четыре уравнения).
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Насколько можно доверять времени в интернете?

Сообщение MiK13 »

Спасибо за информацию.
Vascom писал(а):
31.03.2017 09:40
Время системы GPS не корректируется на високосную секунду, поэтому сейчас может отличаться от времени UTC секунд на 20. Для учёта этого различия выпускаются специальные корректирующие бюллетени.
У меня пока возникло обратное впечатление: то, что мы получаем от GPS, учитывает високосную секунду. А система времени в компьютере -- нет.

Vascom писал(а):
31.03.2017 09:40
В любом случае синхронизация времени по NTP подходит лишь для примерно одинакового времени на разных компьютерах.
Для наших нужд этого пока достаточно.
Vascom писал(а):
31.03.2017 09:40
Если же требуется жёсткая привязка (как у базовых станций сотовой связи или для других профессиональных применений), то надо ставить по приёмнику GPS на каждый компьютер. В этом случае компьютеры будут иметь синхронное время с точностью до 100нс в любой точке Земли.
Необходимо, чтобы ещё и интерфейс к этому приёмнику гарантировал соответствующее время задержки.
А вот что у нас сделано... Смотрел в окне, в котором отображаются данные GPS. Спутников показывает достаточно: 5-7, иногда 10 GPS, примерно столько же ГЛОНАСС. Но вермя обновляется не каждую секунду. Бывает, что через 2 секунды, как-то видел задержку в 7 сеекунд. Данные от приёмника поступают в сеть CAN, от неё через переходник на USB и потом уже в программу на Qt.
Vascom писал(а):
31.03.2017 09:40
Синхронизация времени приёмника и системы GPS - базовая функция, необходимая для решения навигационной задачи. Для точного определения координат необходимо решить систему уравнений с четырьмя неизвестными - три координаты и время (поэтому и спутников минимум надо четыре, чтобы получить четыре уравнения).
Я не разбирался в деталях, как работает система определения координат GPS. Но когда-то читал про методику определения координат на море с помощью радиомаяков. Там принцип был такой: один маяк ведущий, а два других -- ведомые, отвечают на сигнал от ведущего. По разности между сигналами от пары маяков можно определить уравнение гиперболы своего местонахождения. По разности от другой пары -- другой гиперболы. Точка их пересечения и будет указывать на текущее место. Предполагаю, что в GPS что-то аналогичное. Только всё сложнее, так как надо учитывать движение спутников. Кроме того, раз спутники в пространстве, то будет уже не гиперболы, а гиперболоиды. Пересечение двух даст линию, поэтому надо ещё третий, а значит нужен четвёртый спутник.
Что касается високосной секунды, то вполне в сообщениях от спутников может передаваться и информация о том, сколько было дополнительных секунд.
А вот что касается времени в компьютере...
Написал простой скрипт

Код: Выделить всё

#! /bin/bash

s1=`date -d 1970-01-01 +%s`
for((g=1971;g<=2021;g++)) ; do
  s2=`date -d $g-01-01 +%s`
  let ds=$s2-$s1
  s1=$s2
  echo $g $ds >>s
  done
И посмотрел содержимой файла s.В нём встречаются числа либо 31536000 -- число секунд в обычном году (60*60*24*365), либо 31622400 -- число секунд в високосном году (60*60*24*366). То есть никакой информации о високосной секунде нет (хотя могли бы добавить в файл /etc/localtime).
В советское время радиостанция «Маяк» каждый час передавала сигналы точного времени (включая само время). Я уже много лет не слушаю радио, поэтому не знаю, передаётся ли что-то подобное сейчас. Можно было бы сравнить с NTP.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Насколько можно доверять времени в интернете?

Сообщение Bizdelnick »

Если NTP настроен правильно, погрешность должна быть в пределах десятков миллисекунд, а никак не секунд.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Насколько можно доверять времени в интернете?

Сообщение Vascom »

MiK13 писал(а):
31.03.2017 14:08
Но когда-то читал про методику определения координат на море с помощью радиомаяков. Там принцип был такой: один маяк ведущий, а два других -- ведомые, отвечают на сигнал от ведущего. По разности между сигналами от пары маяков можно определить уравнение гиперболы своего местонахождения. По разности от другой пары -- другой гиперболы. Точка их пересечения и будет указывать на текущее место. Предполагаю, что в GPS что-то аналогичное. Только всё сложнее, так как надо учитывать движение спутников. Кроме того, раз спутники в пространстве, то будет уже не гиперболы, а гиперболоиды. Пересечение двух даст линию, поэтому надо ещё третий, а значит нужен четвёртый спутник.

Ну это обычная триангуляция, только трёхмерная. Приёмник знает координаты спутников и расстояние до спутников. То есть относительно каждого спутника приёмник находится на поверхности сферы. Место пересечения этих сфер - и есть координаты приёмника.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Насколько можно доверять времени в интернете?

Сообщение Bizdelnick »

MiK13 писал(а):
31.03.2017 14:08
никакой информации о високосной секунде нет (хотя могли бы добавить в файл /etc/localtime).

Так а где её взять-то по 2021 год?

MiK13 писал(а):
31.03.2017 14:08
У меня пока возникло обратное впечатление: то, что мы получаем от GPS, учитывает високосную секунду. А система времени в компьютере -- нет.

https://ru.wikipedia.org/wiki/NTP#.D0.98.D0....86.D0.B8.D0.B8
К тому же если бы обстояло так, как у Вас сложилось впечатление, компьютерные часы отставали бы, а не спешили.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Насколько можно доверять времени в интернете?

Сообщение MiK13 »

Bizdelnick писал(а):
31.03.2017 15:30
Если NTP настроен правильно, погрешность должна быть в пределах десятков миллисекунд, а никак не секунд.

К синхронизации времени с помощью NTP у меня вопросов нет.
Два компьютера. На одном запущен АРМ (arm), на другом программа, разоаботчик которой сделал, чтобы она чуть ли не каждую минуту выдавала ntpdate -u arm. Я на АРМе меняю время, вскоре и на втором компьютере время меняется. Причём, секунда идут практически синхронно.
Мне показалось странным, что на часах, которые получают время от приёмника GPS время заметно отличается от часов на компьютере, которые синхронизируются через NTP. Вот я и хочу понять. Либо это программа декодирования времени GPS так работает, либо действительно время GPS со временем NTP серверов совпадает с точностью до какой-то константы.
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Насколько можно доверять времени в интернете?

Сообщение MiK13 »

Vascom писал(а):
31.03.2017 15:35
Ну это обычная триангуляция, только трёхмерная. Приёмник знает координаты спутников и расстояние до спутников. То есть относительно каждого спутника приёмник находится на поверхности сферы. Место пересечения этих сфер - и есть координаты приёмника.
Так в том-то и дело, что это не обычная триангуляция. Координаты спутников приёмник действительно может знать, а вот откуда у него может быть расстояние до спутников? Ведь, чтобы его узнать, надо знать свои координаты.
Поэтому, я думаю, собственные координаты находятся по пересечению не сфер, а гиперболоидов. Так как приёмник может узнать только разность времени прихода сигнала от разных спутников, а не само время прохожления сигнала от спутника до приёмника.

Bizdelnick писал(а):
31.03.2017 15:46
MiK13 писал(а):
31.03.2017 14:08
никакой информации о високосной секунде нет (хотя могли бы добавить в файл /etc/localtime).

Так а где её взять-то по 2021 год?
за 2017 и поcледующие годы информации пока нет.Но за предыдущие годы занести можно. Тем более, что Linux обновляется очень часто. Даже не знаю, что чаше, Linux или Windows. Правда, Windows, говорят, обновляется сам, даже без предупреждения, а у меня по 2-3 раза в неделю появляются сообщения о том, что есть обновления. И я уже сам решаю, обновлять их или нет. И не раз видел, что обновлялся пакет tzdata.
Bizdelnick писал(а):
31.03.2017 15:46
MiK13 писал(а):
31.03.2017 14:08
У меня пока возникло обратное впечатление: то, что мы получаем от GPS, учитывает високосную секунду. А система времени в компьютере -- нет.

https://ru.wikipedia.org/wiki/NTP#.D0.98.D0....86.D0.B8.D0.B8
К тому же если бы обстояло так, как у Вас сложилось впечатление, компьютерные часы отставали бы, а не спешили.
По-мему, именно спешили бы.
Прсле момента 2016-12-31 23:59:59 наступил момент 2016-12-31 23:59:60, а часы, которые об этом не знают, показывали бы 2017-01-01 00:00:00, то есть стали бы спешить на одну секунду.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Насколько можно доверять времени в интернете?

Сообщение Bizdelnick »

MiK13 писал(а):
31.03.2017 16:47
Прсле момента 2016-12-31 23:59:59 наступил момент 2016-12-31 23:59:60, а часы, которые об этом не знают, показывали бы 2017-01-01 00:00:00, то есть стали бы спешить на одну секунду.

Да, что-то я загнался.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Насколько можно доверять времени в интернете?

Сообщение Vascom »

MiK13 писал(а):
31.03.2017 16:47
Vascom писал(а):
31.03.2017 15:35
Ну это обычная триангуляция, только трёхмерная. Приёмник знает координаты спутников и расстояние до спутников. То есть относительно каждого спутника приёмник находится на поверхности сферы. Место пересечения этих сфер - и есть координаты приёмника.
Так в том-то и дело, что это не обычная триангуляция. Координаты спутников приёмник действительно может знать, а вот откуда у него может быть расстояние до спутников? Ведь, чтобы его узнать, надо знать свои координаты.
Поэтому, я думаю, собственные координаты находятся по пересечению не сфер, а гиперболоидов. Так как приёмник может узнать только разность времени прихода сигнала от разных спутников, а не само время прохожления сигнала от спутника до приёмника.

Неверно. Приёмник вычисляет именно задержку прихода сигнала со спутника, а значит и расстояние до него.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Насколько можно доверять времени в интернете?

Сообщение Bizdelnick »

Vascom писал(а):
31.03.2017 17:01
Приёмник вычисляет именно задержку прихода сигнала со спутника

Чтобы вычислить задержку, надо знать точное время, а собственного источника точного времени у приёмника нет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Насколько можно доверять времени в интернете?

Сообщение MiK13 »

Vascom писал(а):
31.03.2017 17:01
Неверно. Приёмник вычисляет именно задержку прихода сигнала со спутника, а значит и расстояние до него.

А как он может вычислить задержку прихода сигнала? Для этого он должен знать момент пуска сиглана по СВОИМ часам. А этой информации у него нет. Также он не может знать время получения сигнала по часам спутника.
Хотя... может быть как-то учитывается изменение расстояния до спутника во времени?
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Насколько можно доверять времени в интернете?

Сообщение Vascom »

Не спорьте, я работаю в этой области.

Приёмник вычисляет задержку относительно своих часов. Поскольку сигналы со всех спутников синхронизованы, то расхождение часов приёмника и системы GPS - одна неизвестная. Ещё три неизвестные - координаты. Решая систему из четырёх линейных уравнений с четырьмя неизвестными приёмник узнаёт свои координаты и расхождение своих часов с часами системы.

Под "часами" подразумевается не время суток, а тактовый генератор. В приёмнике это кварц, а на спутниках атомный эталон. Кстати, на спутниках GPS эталоны более точные, чем на спутниках GLONASS, что позволяет получать бОльшую точность координат.
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Насколько можно доверять времени в интернете?

Сообщение MiK13 »

Vascom писал(а):
31.03.2017 21:52
Приёмник вычисляет задержку относительно своих часов.
Задержку чего?Момента отправки сигнала спутником?
Vascom писал(а):
31.03.2017 21:52
Поскольку сигналы со всех спутников синхронизованы, то расхождение часов приёмника и системы GPS - одна неизвестная. Ещё три неизвестные - координаты. Решая систему из четырёх линейных уравнений с четырьмя неизвестными приёмник узнаёт свои координаты и расхождение своих часов с часами системы.
А что это за система? Можно ли её где-нибудь увидеть?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Насколько можно доверять времени в интернете?

Сообщение Bizdelnick »

Vascom писал(а):
31.03.2017 21:52
Не спорьте, я работаю в этой области.

Ладно, не будем спорить. Тем более что в своём сообщении Вы фактически подтвердили то, о чём выше писали Вам:
Vascom писал(а):
31.03.2017 21:52
Под "часами" подразумевается не время суток, а тактовый генератор.
Стало быть абсолютную задержку вычислить невозможно.

На всякий случай: https://en.wikipedia.org/wiki/Global_Positi...ellite_geometry
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Насколько можно доверять времени в интернете?

Сообщение MiK13 »

Как-то вечером, когда я уже лёг спать, я взял планшет и решил погуглить на счёт високосной секунды в линуксе.
И натолкнулся на одну ссылку. Почитал её и вспомнил одну фразу из одной знаменитой комедии. "Всё уже украдено до нас".
Тем более, что я в описании системных вызовов читал, что значение секунд может быть в диапазоне 0..60, чтобы учитывать возможную високосную секунду.
Поэтому меня удивлял результат работы скрипта, который я приводил выше

Код: Выделить всё

! /bin/bash

s1=`date -d 1970-01-01 +%s`
for((g=1971;g<=2020;g++)) ; do
  s2=`date -d $g-01-01 +%s`
  let ds=$s2-$s1
  echo $g $ds >>s
  s1=$s2
done

А именно то, что во всех значениях в младших двух разрядах были нули.
После этого дома я заглянул в каталог /usr/share/zoneinfo и увидел, что там действительно есть каталоги posix и right. Нашёл файл right/Europe/Minsk и увидел, что его размер не 1342, а 1862.
Я тогда скопировал его в /etc/localtime (и как localtime1), сохранив исходный как localtime0.
Запустил скрипт ещё раз и увидел, что во многих годах в младшем разряде не 0, а 1.
Написал ещё один скрипт

Код: Выделить всё

cd /etc ; # чтобы не засорять /etc
date ; date +%s
cp -p localtime0 localtime
date ; date +%s
cp -p localtime1 localtime
date ; date +%s

И вот результат его работы

Код: Выделить всё

Сб апр  1 17:24:20 MSK 2017
1491056686
Сб апр  1 17:24:46 MSK 2017
1491056686
Сб апр  1 17:24:20 MSK 2017
1491056686

Расхождение между системами posix и right составляет 26 секунд

Общий вывод. Доверять в отношении времени интернету с системой NTP вполне можно. С одной поправкой. NTP выдаёт время в СВОЁМ формате.. А уж как интерпретировать это время -- это дело каждого. Ну или устройства, которое показывает это время.
Часы в компьютере хранят, например, 1491056686 секунд. А это значение можно интерпретировать и как 17:24:20 и как 17:24:46.
Пр идее правильный вариант -- right, но, похоже, большинство компьютеров используют posix.
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Насколько можно доверять времени в интернете?

Сообщение Vascom »

Bizdelnick писал(а):
01.04.2017 17:41
Стало быть абсолютную задержку вычислить невозможно.

На всякий случай: https://en.wikipedia.org/wiki/Global_Positi...ellite_geometry

Всё же измеряется конечно относительная задержка сигнала от каждого спутника. А абсолютная вычисляется.
Спасибо сказали:
Ответить