Насколько можно доверять времени в интернете?
Модератор: Bizdelnick
Насколько можно доверять времени в интернете?
Вопрос возник потому, что по работе используем GPS/ГЛОНАСС приёмник. Начальник когда-то давно сказал, что он обеспечивать чуть ли не микросекундную точность.Но я сравниваю свои часы с тем временем, которое получается из GPS приёмника и вижу, что мои часы спешат на 20 секунд. Затем иду к своему компьютеру, котрый синхронизируется по NTP и вижу, что мои часы спешат на 10 секунд. То есть расхождение между NTP и GPS приёмником составляет примерно 10 секунд. Вот поэтому у меня и возник вопрос: кому доверять?
- Bizdelnick
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Насколько можно доверять времени в интернете?
С кем синхронизируется? Чем синхронизируется? Если смотреть ntpdate ru.pool.ntp.org, расхождение есть?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Насколько можно доверять времени в интернете?
Код: Выделить всё
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
Нет.
Код: Выделить всё
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
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Насколько можно доверять времени в интернете?
Они все принимают время, вопрос только, что он показывает. ☺
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Насколько можно доверять времени в интернете?
Приёмник GPS должен знать время с той же точностью, что и координаты, то есть порядка единиц метров или, если перевести в секунды, порядка сотен наносекунд.
Високосные секунды там действительно не учитываются, и с момента запуска GPS их нагорело 19. Если сами декодируете время, то их надо вычитать. Судя по тому, что вы видите, вы это не делаете. "Железные" навигаторы их корректируют, но только на момент их изготовления, и по мере добавления секунд тоже начинают спешить.
Високосные секунды там действительно не учитываются, и с момента запуска GPS их нагорело 19. Если сами декодируете время, то их надо вычитать. Судя по тому, что вы видите, вы это не делаете. "Железные" навигаторы их корректируют, но только на момент их изготовления, и по мере добавления секунд тоже начинают спешить.
Re: Насколько можно доверять времени в интернете?
Время системы GPS не корректируется на високосную секунду, поэтому сейчас может отличаться от времени UTC секунд на 20. Для учёта этого различия выпускаются специальные корректирующие бюллетени.
Можно погуглить, но вот более-менее короткое описание ситуации http://youarehere.ru/etries/31.html
В любом случае синхронизация времени по NTP подходит лишь для примерно одинакового времени на разных компьютерах. Если же требуется жёсткая привязка (как у базовых станций сотовой связи или для других профессиональных применений), то надо ставить по приёмнику GPS на каждый компьютер. В этом случае компьютеры будут иметь синхронное время с точностью до 100нс в любой точке Земли.
Синхронизация времени приёмника и системы GPS - базовая функция, необходимая для решения навигационной задачи. Для точного определения координат необходимо решить систему уравнений с четырьмя неизвестными - три координаты и время (поэтому и спутников минимум надо четыре, чтобы получить четыре уравнения).
Можно погуглить, но вот более-менее короткое описание ситуации http://youarehere.ru/etries/31.html
В любом случае синхронизация времени по NTP подходит лишь для примерно одинакового времени на разных компьютерах. Если же требуется жёсткая привязка (как у базовых станций сотовой связи или для других профессиональных применений), то надо ставить по приёмнику GPS на каждый компьютер. В этом случае компьютеры будут иметь синхронное время с точностью до 100нс в любой точке Земли.
Синхронизация времени приёмника и системы GPS - базовая функция, необходимая для решения навигационной задачи. Для точного определения координат необходимо решить систему уравнений с четырьмя неизвестными - три координаты и время (поэтому и спутников минимум надо четыре, чтобы получить четыре уравнения).
Re: Насколько можно доверять времени в интернете?
Спасибо за информацию.
А вот что у нас сделано... Смотрел в окне, в котором отображаются данные GPS. Спутников показывает достаточно: 5-7, иногда 10 GPS, примерно столько же ГЛОНАСС. Но вермя обновляется не каждую секунду. Бывает, что через 2 секунды, как-то видел задержку в 7 сеекунд. Данные от приёмника поступают в сеть CAN, от неё через переходник на USB и потом уже в программу на Qt.
Что касается високосной секунды, то вполне в сообщениях от спутников может передаваться и информация о том, сколько было дополнительных секунд.
А вот что касается времени в компьютере...
Написал простой скриптИ посмотрел содержимой файла s.В нём встречаются числа либо 31536000 -- число секунд в обычном году (60*60*24*365), либо 31622400 -- число секунд в високосном году (60*60*24*366). То есть никакой информации о високосной секунде нет (хотя могли бы добавить в файл /etc/localtime).
В советское время радиостанция «Маяк» каждый час передавала сигналы точного времени (включая само время). Я уже много лет не слушаю радио, поэтому не знаю, передаётся ли что-то подобное сейчас. Можно было бы сравнить с NTP.
У меня пока возникло обратное впечатление: то, что мы получаем от GPS, учитывает високосную секунду. А система времени в компьютере -- нет.
Для наших нужд этого пока достаточно.
Необходимо, чтобы ещё и интерфейс к этому приёмнику гарантировал соответствующее время задержки.Vascom писал(а): ↑31.03.2017 09:40Если же требуется жёсткая привязка (как у базовых станций сотовой связи или для других профессиональных применений), то надо ставить по приёмнику GPS на каждый компьютер. В этом случае компьютеры будут иметь синхронное время с точностью до 100нс в любой точке Земли.
А вот что у нас сделано... Смотрел в окне, в котором отображаются данные GPS. Спутников показывает достаточно: 5-7, иногда 10 GPS, примерно столько же ГЛОНАСС. Но вермя обновляется не каждую секунду. Бывает, что через 2 секунды, как-то видел задержку в 7 сеекунд. Данные от приёмника поступают в сеть CAN, от неё через переходник на USB и потом уже в программу на Qt.
Я не разбирался в деталях, как работает система определения координат GPS. Но когда-то читал про методику определения координат на море с помощью радиомаяков. Там принцип был такой: один маяк ведущий, а два других -- ведомые, отвечают на сигнал от ведущего. По разности между сигналами от пары маяков можно определить уравнение гиперболы своего местонахождения. По разности от другой пары -- другой гиперболы. Точка их пересечения и будет указывать на текущее место. Предполагаю, что в GPS что-то аналогичное. Только всё сложнее, так как надо учитывать движение спутников. Кроме того, раз спутники в пространстве, то будет уже не гиперболы, а гиперболоиды. Пересечение двух даст линию, поэтому надо ещё третий, а значит нужен четвёртый спутник.Vascom писал(а): ↑31.03.2017 09:40Синхронизация времени приёмника и системы 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
В советское время радиостанция «Маяк» каждый час передавала сигналы точного времени (включая само время). Я уже много лет не слушаю радио, поэтому не знаю, передаётся ли что-то подобное сейчас. Можно было бы сравнить с NTP.
- Bizdelnick
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Насколько можно доверять времени в интернете?
Если NTP настроен правильно, погрешность должна быть в пределах десятков миллисекунд, а никак не секунд.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Насколько можно доверять времени в интернете?
MiK13 писал(а): ↑31.03.2017 14:08Но когда-то читал про методику определения координат на море с помощью радиомаяков. Там принцип был такой: один маяк ведущий, а два других -- ведомые, отвечают на сигнал от ведущего. По разности между сигналами от пары маяков можно определить уравнение гиперболы своего местонахождения. По разности от другой пары -- другой гиперболы. Точка их пересечения и будет указывать на текущее место. Предполагаю, что в GPS что-то аналогичное. Только всё сложнее, так как надо учитывать движение спутников. Кроме того, раз спутники в пространстве, то будет уже не гиперболы, а гиперболоиды. Пересечение двух даст линию, поэтому надо ещё третий, а значит нужен четвёртый спутник.
Ну это обычная триангуляция, только трёхмерная. Приёмник знает координаты спутников и расстояние до спутников. То есть относительно каждого спутника приёмник находится на поверхности сферы. Место пересечения этих сфер - и есть координаты приёмника.
- Bizdelnick
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Насколько можно доверять времени в интернете?
Так а где её взять-то по 2021 год?
https://ru.wikipedia.org/wiki/NTP#.D0.98.D0....86.D0.B8.D0.B8
К тому же если бы обстояло так, как у Вас сложилось впечатление, компьютерные часы отставали бы, а не спешили.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Насколько можно доверять времени в интернете?
Bizdelnick писал(а): ↑31.03.2017 15:30Если NTP настроен правильно, погрешность должна быть в пределах десятков миллисекунд, а никак не секунд.
К синхронизации времени с помощью NTP у меня вопросов нет.
Два компьютера. На одном запущен АРМ (arm), на другом программа, разоаботчик которой сделал, чтобы она чуть ли не каждую минуту выдавала ntpdate -u arm. Я на АРМе меняю время, вскоре и на втором компьютере время меняется. Причём, секунда идут практически синхронно.
Мне показалось странным, что на часах, которые получают время от приёмника GPS время заметно отличается от часов на компьютере, которые синхронизируются через NTP. Вот я и хочу понять. Либо это программа декодирования времени GPS так работает, либо действительно время GPS со временем NTP серверов совпадает с точностью до какой-то константы.
Re: Насколько можно доверять времени в интернете?
Так в том-то и дело, что это не обычная триангуляция. Координаты спутников приёмник действительно может знать, а вот откуда у него может быть расстояние до спутников? Ведь, чтобы его узнать, надо знать свои координаты.
Поэтому, я думаю, собственные координаты находятся по пересечению не сфер, а гиперболоидов. Так как приёмник может узнать только разность времени прихода сигнала от разных спутников, а не само время прохожления сигнала от спутника до приёмника.
за 2017 и поcледующие годы информации пока нет.Но за предыдущие годы занести можно. Тем более, что Linux обновляется очень часто. Даже не знаю, что чаше, Linux или Windows. Правда, Windows, говорят, обновляется сам, даже без предупреждения, а у меня по 2-3 раза в неделю появляются сообщения о том, что есть обновления. И я уже сам решаю, обновлять их или нет. И не раз видел, что обновлялся пакет tzdata.
По-мему, именно спешили бы.Bizdelnick писал(а): ↑31.03.2017 15:46
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
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Насколько можно доверять времени в интернете?
Да, что-то я загнался.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Насколько можно доверять времени в интернете?
MiK13 писал(а): ↑31.03.2017 16:47Так в том-то и дело, что это не обычная триангуляция. Координаты спутников приёмник действительно может знать, а вот откуда у него может быть расстояние до спутников? Ведь, чтобы его узнать, надо знать свои координаты.
Поэтому, я думаю, собственные координаты находятся по пересечению не сфер, а гиперболоидов. Так как приёмник может узнать только разность времени прихода сигнала от разных спутников, а не само время прохожления сигнала от спутника до приёмника.
Неверно. Приёмник вычисляет именно задержку прихода сигнала со спутника, а значит и расстояние до него.
- Bizdelnick
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Насколько можно доверять времени в интернете?
Чтобы вычислить задержку, надо знать точное время, а собственного источника точного времени у приёмника нет.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Насколько можно доверять времени в интернете?
А как он может вычислить задержку прихода сигнала? Для этого он должен знать момент пуска сиглана по СВОИМ часам. А этой информации у него нет. Также он не может знать время получения сигнала по часам спутника.
Хотя... может быть как-то учитывается изменение расстояния до спутника во времени?
Re: Насколько можно доверять времени в интернете?
Не спорьте, я работаю в этой области.
Приёмник вычисляет задержку относительно своих часов. Поскольку сигналы со всех спутников синхронизованы, то расхождение часов приёмника и системы GPS - одна неизвестная. Ещё три неизвестные - координаты. Решая систему из четырёх линейных уравнений с четырьмя неизвестными приёмник узнаёт свои координаты и расхождение своих часов с часами системы.
Под "часами" подразумевается не время суток, а тактовый генератор. В приёмнике это кварц, а на спутниках атомный эталон. Кстати, на спутниках GPS эталоны более точные, чем на спутниках GLONASS, что позволяет получать бОльшую точность координат.
Приёмник вычисляет задержку относительно своих часов. Поскольку сигналы со всех спутников синхронизованы, то расхождение часов приёмника и системы GPS - одна неизвестная. Ещё три неизвестные - координаты. Решая систему из четырёх линейных уравнений с четырьмя неизвестными приёмник узнаёт свои координаты и расхождение своих часов с часами системы.
Под "часами" подразумевается не время суток, а тактовый генератор. В приёмнике это кварц, а на спутниках атомный эталон. Кстати, на спутниках GPS эталоны более точные, чем на спутниках GLONASS, что позволяет получать бОльшую точность координат.
Re: Насколько можно доверять времени в интернете?
Задержку чего?Момента отправки сигнала спутником?
А что это за система? Можно ли её где-нибудь увидеть?Vascom писал(а): ↑31.03.2017 21:52Поскольку сигналы со всех спутников синхронизованы, то расхождение часов приёмника и системы GPS - одна неизвестная. Ещё три неизвестные - координаты. Решая систему из четырёх линейных уравнений с четырьмя неизвестными приёмник узнаёт свои координаты и расхождение своих часов с часами системы.
- Bizdelnick
- Модератор
- Сообщения: 20794
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Насколько можно доверять времени в интернете?
Ладно, не будем спорить. Тем более что в своём сообщении Вы фактически подтвердили то, о чём выше писали Вам:
Стало быть абсолютную задержку вычислить невозможно.
На всякий случай: https://en.wikipedia.org/wiki/Global_Positi...ellite_geometry
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Насколько можно доверять времени в интернете?
Как-то вечером, когда я уже лёг спать, я взял планшет и решил погуглить на счёт високосной секунды в линуксе.
И натолкнулся на одну ссылку. Почитал её и вспомнил одну фразу из одной знаменитой комедии. "Всё уже украдено до нас".
Тем более, что я в описании системных вызовов читал, что значение секунд может быть в диапазоне 0..60, чтобы учитывать возможную високосную секунду.
Поэтому меня удивлял результат работы скрипта, который я приводил выше
А именно то, что во всех значениях в младших двух разрядах были нули.
После этого дома я заглянул в каталог /usr/share/zoneinfo и увидел, что там действительно есть каталоги posix и right. Нашёл файл right/Europe/Minsk и увидел, что его размер не 1342, а 1862.
Я тогда скопировал его в /etc/localtime (и как localtime1), сохранив исходный как localtime0.
Запустил скрипт ещё раз и увидел, что во многих годах в младшем разряде не 0, а 1.
Написал ещё один скрипт
И вот результат его работы
Расхождение между системами posix и right составляет 26 секунд
Общий вывод. Доверять в отношении времени интернету с системой NTP вполне можно. С одной поправкой. NTP выдаёт время в СВОЁМ формате.. А уж как интерпретировать это время -- это дело каждого. Ну или устройства, которое показывает это время.
Часы в компьютере хранят, например, 1491056686 секунд. А это значение можно интерпретировать и как 17:24:20 и как 17:24:46.
Пр идее правильный вариант -- right, но, похоже, большинство компьютеров используют posix.
И натолкнулся на одну ссылку. Почитал её и вспомнил одну фразу из одной знаменитой комедии. "Всё уже украдено до нас".
Тем более, что я в описании системных вызовов читал, что значение секунд может быть в диапазоне 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.
Re: Насколько можно доверять времени в интернете?
Bizdelnick писал(а): ↑01.04.2017 17:41Стало быть абсолютную задержку вычислить невозможно.
На всякий случай: https://en.wikipedia.org/wiki/Global_Positi...ellite_geometry
Всё же измеряется конечно относительная задержка сигнала от каждого спутника. А абсолютная вычисляется.