Использует ли Android NTP для синхронизации времени
Использует ли Android NTP для синхронизации времени?
Используют ли устройства Android протокол сетевого времени (NTP) для синхронизации времени?
В настройках моего устройства я вижу checkbox со следующим текстом «синхронизировать с сетью», но я не знаю, используют ли они NTP.
Мне это нужно для моей бакалаврской диссертации, для которой я использую GPS. Для получения точного сигнала GPS приемник должен иметь точные часы.
Я нашел эту запись в блоге в интернете, но не уверен, что он говорит правду: ускорение NTP, блокировка GPS в Android
4 ответа
- Как проверить, готов ли порт 123 к синхронизации времени?
Я собираюсь сделать синхронизацию времени для своего сервера. Попробовал portqry на сервер времени с приведенными ниже результатами: C:PortQryV2>portqry -n time server -e 123 -p оба Вызывается целевая система запроса: time server Попытка преобразовать адрес IP в имя. Не удалось разрешить IP.
Насколько точен NTP для синхронизации времени набора серверов? Я пишу сервис, который требует набора серверов (некоторые действуют как клиенты, некоторые как серверы), синхронизированных с детализацией второго уровня. Мне интересно, является ли NTP лучшей вещью для использования, или есть что-то.
Я знаю о Android ICS, что он использует пользовательскую службу под названием: NetworkTimeUpdateService . Эта служба также реализует синхронизацию времени NTP через NtpTrustedTime singleton.
В NtpTrustedTime сервер NTP по умолчанию запрашивается из источника системной строки Android:
Если в настройках системы установлен флажок автоматическая синхронизация времени и служба NITZ времени недоступна, то время будет синхронизировано с сервером NTP с com.android.internal.R.string.config_ntpServer .
Чтобы получить значение com.android.internal.R.string.config_ntpServer , вы можете использовать следующий метод:
я хотел спросить, использует ли Android устройства протокол сетевого времени (ntp) для синхронизации времени.
Для общей синхронизации времени устройства с возможностью телефонии, где поставщик беспроводной связи предоставляет информацию NITZ, будут использовать NITZ. Насколько я понимаю, NTP используется в других обстоятельствах: NITZ-бесплатные поставщики беспроводной связи, WiFi-только и т. Д.
Ваше цитируемое сообщение в блоге предполагает еще одно обстоятельство: синхронизация времени по требованию в поддержку GPS. Это, конечно, возможно, хотя я не знаю, используется ли он или нет.
У меня есть Samsung Galaxy Tab 2 7.0 с Android 4.1.1. По-видимому, он не синхронизируется с ntp. Я загрузил приложение, в котором говорится, что мой планшет отключен от ntp на 20 секунд, но он не может установить его, если я не укореню устройство.
Не точный ответ на ваш вопрос, но немного информации: если ваше устройство использует NTP в течение времени (например, если это планшет без возможностей 3G или GPS), сервер может быть настроен в /system/etc/gps.conf — очевидно, что этот файл можно редактировать только с корневым доступом, но он доступен для просмотра на некорневых устройствах.
Похожие вопросы:
Я где-то читал, что NTP основан на UDP, и нет никакой безопасности, построенной с помощью NTP связи, поэтому легко подделать ответы NTP. Это правда? Разве это не будет серьезной проблемой.
Я хочу синхронизировать время с NTP по JavaScript. Клиент может быть обычным ПК или смартфоном или планшетом. Соединение может быть WLAN или 3G и т. д. Я уже нашел эти вопросы и сайты как добраться.
В настоящее время я изучаю последствия ошибок опрокидывания 2036 и 2038 годов для конкретного проекта. Программное обеспечение, реализуемое этим проектом, должно быть способно работать и после этих.
Я собираюсь сделать синхронизацию времени для своего сервера. Попробовал portqry на сервер времени с приведенными ниже результатами: C:PortQryV2>portqry -n time server -e 123 -p оба Вызывается.
Насколько точен NTP для синхронизации времени набора серверов? Я пишу сервис, который требует набора серверов (некоторые действуют как клиенты, некоторые как серверы), синхронизированных с.
Я хотел бы синхронизировать два события между двумя (или более) проводными сетевыми машинами Linux. Могу ли я использовать NTP для этого? NTP, похоже, в основном сосредоточен на синхронизации с.
Я пытаюсь исправить некоторый временной дрейф, который мы наблюдаем на серверах out azure, упомянутых в этой статье . Кто-нибудь мог настроить сервер azure для синхронизации с сервером NTP за.
Мне пришлось собрать ntp пакетов из исходного кода и установить их все на некоторых хостах. После установки ntpdate 1.us.pool.ntp.org работает для синхронизации. Однако, когда я попытался сделать.
Как говорится в Теме: лучше ли когда-нибудь использовать алгоритм Berkeleys over NTP для синхронизации времени? Насколько я понимаю, NTP-это надежный современный алгоритм, который дает наилучшую.
У меня есть настройка raspberrypi для синхронизации времени с сервера NTP, так как на нем нет часов HW, однако это обновление происходит не сразу и занимает некоторое время (
Синхронизация андроид с сервером точного времени
Не все сотовые операторы поддерживают функцию автоматической настройки времени, используя механизм NITZ. Если у вас включена эта опция, это не означает что она работает. Даже если оператор поддерживает NITZ, довольно часто сотовые вышки могут присылать неправильное время. Кроме того, существуют устройства без SIM карт, например планшеты, для них эта функция вообще не работает. Если системная опция автоматического определения времени работает правильно, то вам повезло, возможно, ClockSync вам не пригодится. В противном случае рекомендуется отключить автоматическое определение чтобы избежать конфликтов между приложениями.
Протокол NTP используемый для синхронизации времени работает через UDP соединение, порт 123. Ваш маршрутизатор, локальный или корпоративный файрвол, прокси сервер, либо Интернет провайдер (включая сотового оператора) может блокировать доступ к публичным NTP серверам. При блокированном доступе к NTP ClockSync не сможет получить точное время. Для решения проблемы вы можете попробовать WiFi соединение вместо 3G/LTE, или наоборот. Обратитесь к системному администратору, в техподдержку провайдера или сотового оператора чтобы узнать почему доступ к NTP заблокирован и что с этим можно сделать.
В планах развития ClockSync есть новые функции, которые позволят синхронизировать время при заблокированном доступе к NTP. К ним относится синхронизация через GPS и получение времени из HTTP заголовков публичных серверов (точность будет меньше чем у NTP, но это лучше чем полное отсутствие синхронизации).
Операционная система Android запрещает сторонним приложениям менять системное время, это ограничение безопасности. Чтобы его обойти, необходимо получить права root. Начиная с версии 1.1.2 вы можете использовать режим Без root для ручной синхронизации. Подробнее про root.
Этот режим делает программу ClockSync полезной даже если на вашем устройстве нет root. Когда он включен, ClockSync покажет уведомление при разнице системных часов и точных часов выше заданного порогового значения (по умолчанию 60 секунд). Нажмите на уведомление чтобы запустить режим помощи в установке времени. Этот же процесс можно запустить нажатием на системном времени или через меню Синхронизировать. Программа откроет системный диалог Дата и Время и покажет подсказку, когда и какое время выставить. Вам необходимо вручную выставить нужное время следуя подсказке на экране, как только время установлено с максимально возможной точностью, режим помощи отключится и вы вернетесь в приложение ClockSync. Режим помощи можно прервать нажав на уведомление.
В худшем случае точность будет в районе 30 секунд (если ваше устройство не сбрасывает секунды). Почему не 60 секунд? ClockSync автоматически учитывает разницу между текущим значением секунд системного времени и точного времени. Если эта разница больше 30 секунд, то будет предложено установить на 1 минуту больше, если разница меньше минус 30 секунд — на минуту меньше.
Некоторые устройства (в основном Samsung и HTC) сбрасывают секунды при ручной установке времени. Начиная с версии 1.1.5 в ClockSync появилась специальная опция: «Обнуление секунд». Если она включена, подсказка в ручном режиме попросит вас установить время на одну минуту вперед текущего точного времени и будет показывать обратный отсчет до момента, когда наступит следующая минута по точному времени. Таким образом, при нажатии кнопки Установить в этот момент, вы получите точное время на устройстве (точность зависит только от скорости вашей реакции). Для дополнительной помощи в этой задаче ClockSync начнет проигрывать сигнал точного времени за 5 секунд до наступления следующей минуты. Сигнал представляет из себя 5 коротких гудков и 1 длинный. Вам нужно установить время после 5-го короткого гудка, в самом начале 6-го (длинного) гудка, обозначающего начало новой минуты.
Для максимальной пользы от программы в режиме без root должна быть включена автоматическая синхронизация (которая работает как автоматическая проверка времени) и опция «Показывать уведомление».
Изначально ClockSync использует системный вызов System.setCurrentTimeMillis() для установки времени. Чтобы он работал, с помощью root изменяются права устройства /dev/alarm. Этот метод возвращает false в случае ошибки. Обычно это происходит если время изменить не удалось (например, из-за защиты KNOX/SELinux на устройствах Samsung и в свежих версиях Android). В таком случае ClockSync использует альтернативный метод установки времени через команду date. Существует очень маленький процент устройств, где setCurrentTimeMillis возвращает ошибку, но при этом время на самом деле выставляется корректно. Все бы было хорошо, но на некоторых устройствах вызов команды date приводит к установке неправильного времени (различие в параметрах, нестандартная версия утилиты date).
Из-за наложения этих двух ошибок ClockSync собьет время и предложит обратиться к разработчику. Включите эту опцию если такое происходит на вашем устройстве. В этом случае ClockSync будет игнорировать результат вызова setCurrentTimeMillis и не будет использовать команду date для установки времени. К сожалению, это не поможет если date является единственным способом установки времени на вашем устройстве, но при вызове из ClockSync приводит к неправильной установке времени. Свяжитесь со мной если эта проблема затрагивает ваше устройство, попробуем разобраться.
Если у вас отключена опция автоматической синхронизации при загрузке, ClockSync не будет ничего делать и моментально завершится. Система освободит память автоматически, как только в этом возникнет необходимость, вам не нужно об этом волноваться. До версии 1.1.3 при загрузке устанавливались таймеры для автоматической синхронизации с нужным интервалом, но в новых версиях таймеры выставляются по событию наличия сетевого подключения и удаляются при отключении сети, это позволяет максимально экономить батарею, т.к. при отсутствии Интернета ClockSync даже не будет запускаться. Начиная с версии 1.1.6 при загрузке также устанавливается таймер для перевода на зимнее/летнее время, но только если включена «Автономная база» и это актуально для выбранного часового пояса. Для России это больше не актуально, поэтому такой таймер не ставится.
Скорее всего это связано с настройками часового пояса. За более подробной информацией обратитесь к разделу О часовых поясах.
Также убедитесь что отключена опция автоматической установки времени и даты в настройках системы и у вас не установлено других приложений, которые могут менять время или часовой пояс (например, навигационное ПО).
Если на вашем устройстве время очень быстро убегает, то сразу после синхронизации смещение может превышать секунду, в таких случаях рекомендуется уменьшить интервал автоматической синхронизации.
Если вы сравниваете точное время с телевизором или радио, имейте в виду, что в цифровую эпоху к задержке распространения сигнала добавляется еще и задержка цифрового оборудования, ресиверов, буферы декодеров в несколько секунд и т.д. Разница с точным временем может достигать десятков секунд.
Это сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью. Читайте статью в Wikipedia для более подробной информации.
Да, есть возможность использовать GPS для получения времени, но это непрактично по нескольким причинам. Самая главная причина в том, что Android не поддерживает функцию PPS (pulse-per-second), которая необходима для точной синхронизации с устройством GPS. Без этой функции максимальная точность синхронизации будет около 300мс, вместо 1-10мс при использовании NTP. Другая причина в том, что GPS требует долгого старта, открытого неба, сильно расходует батарею. Это делает автоматическую синхронизацию с GPS не очень полезной для большинства пользователей, т.к. в ваших квартирах и офисах, где вы находитесь большинство времени, скорее всего нет видимости спутников. Я планирую добавить синхронизацию с GPS в одном из будущих обновлений ClockSync для случаев, когда вы находитесь в роуминге или в районе без Интернета. В настоящий момент есть несколько известных проблем с GPS на платформе Android, которые делают невозможным получение времени с GPS устройства на многих Android устройствах. До тех пор, пока эти проблемы не будут исправлены, эта возможность будет работать не на всех устройствах. Если вам нужна синхронизация с GPS, воспользуйтесь другой программой из Маркета: GPS Time.
Чтобы иметь возможность устанавливать время, ClockSync изменяет права устройства /dev/alarm , делая его доступным на запись для всех пользователей. Если вы включите эту опцию, то каждая синхронизация времени будет вызывать приложение su (Superuser) 3 раза: для проверки наличия root, для установки прав на запись, и для восстановления старых прав. Если вы боитесь что какое-то другое приложение сможет использовать права на запись к этому устройству в каких-то нехороших целях, включите эту опцию. Имейте в виду, что каждый вызов su относительно дорогая операция в плане ресурсов процессора, памяти и батареи. При отключенной опции ClockSync выставляет права только один раз, все последующие разы, если права на запись есть, su вообще не вызывается, что экономит ресурсы устройства и делает процесс синхронизации времени мгновенным.
Прежде всего убедитесь что у вас включена опция «Фоновой режим» в настройках аккаунтов и синхронизации, иначе сервис ClockSync не будет использовать сеть в фоне. Если вы включили опцию «Только через WiFi», имейте в виду, что у вас может быть включен Спящий режим в дополнительных настройках WiFi, при котором WiFi будет отключаться, когда экран устройства выключен, и ClockSync не будет синхронизироваться в это время. Опция «При включении» может работать некорректно на некоторых устройствах, отключите ее если синхронизация не происходит. Для диагностики проблем синхронизации используйте функцию «История и Статистика».
Интервалы, отмеченные звездочкой (15/30 минут, 1/12 часов, 1 день), могут срабатывать не обязательно точно для экономии батарейки. Система Android делает так, что несколько неточных таймеров от разных приложений срабатывали одновременно, чтобы лишний раз не будить устройство. Первое срабатывание таймера будет не раньше чем заданный интервал, но может пройти еще практически столько же времени до того как таймер сработает. Другими словами, время между срабатываниями таймера будет различаться.
Эта опция может быть полезна для коротких интервалов, но может стать проблемой если вы используете длинный интервал, например 1 день. В этом случае синхронизация не гарантирована точно через день, а может произойти почти через 2 дня. Если вы включите опцию «Точный интервал», то таймер сработает точно через заданный интервал что позволяет сделать синхронизацию более стабильной и предсказуемой в случае если вы используете длинный интервал.
Более высокая точность синхронизации достигается двумя техниками. Первая заключается в опросе NTP сервера 5 раз подряд с задержкой в одну секунду между запросами, после чего берется среднее значение 5 смещений. Несмотря на то что протокол NTP учитывает задержки передачи пакетов, постоянно меняющаяся сетевая среда все равно немного сказывается на точности. Использование среднего значения позволяет увеличить точность. Вторая хитрость — полностью разбудить устройство. В обычном режиме ClockSync будит устройство не полностью и не дает ему заснуть, пока не закончится синхронизация. Из-за экономичного режима работы при неполном пробуждении задержки передачи пакетов возрастают в несколько раз, что сказывается на точности.
Что с временем на телефоне
Знание точного времени очень важно в современном мире, в котором все может поменяться буквально за считанные минуты. А для решения некоторых задач могут отводиться и вовсе несколько секунд. К счастью, определение точного времени в любой точке земного шара — несложная задача. Достаточно лишь иметь под рукой любое устройство с выходом в интернет. Рассмотрим, как определить точное время на смартфонах и планшетах, работающих под управлением операционной системы Android.
О синхронизации времени
Существуют различные способы определения точного времени. Для обычных людей наиболее удобным и простым способом является использование серверов синхронизации времени (NTP-сервер). Большинство операционных систем, устанавливающихся на компьютеры и мобильные устройства, имеют встроенную функцию для работы с такими NTP-серверами. Алгоритм синхронизации внутренних часов устройства со временем на удаленном сервере достаточно прост:
- Пользовательское устройство посылает запрос на сервер синхронизации запрос, для чего используется специальный сетевой протокол — NTP (Network Time Protocol).
- В ответ на запрос сервер формирует NTP-пакет с нужными данными и отправляет его обратно на пользовательское устройство.
- Встроенная функция синхронизации обрабатывает пакет и настраивает внутренние часы устройства, используя данные из NTP-пакета.
- Высокая точность синхронизации (вплоть до одной сотой секунды, т.е. 10 миллисекунд) достигается благодаря тому, что функция установки времени учитывает задержку между и отправкой запроса и получение от сервера NTP-пакета.
Сам же NTP-сервер определяет точное время по реально (физически) существующему эталону времени. Это целый комплекс оборудования, в задачу которого входит отчет времени. В мире существует несколько эталонов времени, расположенных в технологически развитых странах, включая Россию. Атомные часы имеются в распоряжении «Всероссийского научно-исследовательского института физико-технических и радиотехнических измерений» (ВНИИФТРИ).
Синхронизация времени с TimeServer на Android
В операционных системах Android также имеется встроенная функция синхронизация времени по сети. Однако пользователи не могут ее настраивать. Т.е. система сверяет время с NTP-сервером, который, по сути, неизвестен владельцу Андроид-устройства. Также остается секретом и то, насколько точно работает базовая функция синхронизации часов в Android.
Для возможности синхронизации времени на смартфонах и планшетах под управлением Андроид существует только один выход — использование специальных приложений. Но и здесь есть свои нюансы. ОС Android запрещает сторонним приложениям изменять настройки даты и времени, что сделано в целях безопасности. Для полноценной работы приложений синхронизации времени требуется root-права. Без root-прав такие программы не могут изменять системные настройки в автоматическом режиме, однако определять точное время они все же в состоянии. В этом случае пользователю придется время от времени устанавливать время на своем Android-устройстве вручную.
Из статьи вы узнаете
Довольно частая проблема, когда сбрасываются часы и дата на телефоне под управлением Andro >
В этой статье мы постараемся помочь вам решить все трудности, чтобы время на вашем Андроиде всегда держалось точно и не сбивалось всякий раз. Нужно понимать, что нет точного способа решить подобную проблему, так как она лежит в основе памяти устройства. Вы лишь можете попробовать обезопасить себя от подобных случаев парой способов.
Какие бывают причины сброса даты и времени?
Вот основные причины, по которым смартфон может терять дату и время, и возвращается на заводской вариант, установленный производителем ещё на стадии создания программной части на заводе:
- Часто перезапускается сам по себе, либо вы его каждый раз неосторожно перезапускаете, либо прерываете на долгое время;
- Аккумулятор иногда вынимается. Телефон выключается при падении или каким-либо ещё силовым воздействиям, которые доводят его до неработоспособности;
- Память не способна выдержать дату из-за вирусов.
Способы решения проблемы
Для решения ошибки с постоянным сбросом даты и времени на Андроид смартфоне можно сделать следующее:
- Включить автоматическую настройку даты и времени через интернет;
- Выключить регулярное выключение смартфона на ночь, если такая опция присутствует и активна;
- Обезопасить смартфон от падений и неожиданных выключений.
Включение автоматической настройки даты и времени через интернет
Для включения автоматической настройки состояния времени на смартфоне сделайте следующие действия:
- Откройте настройки. Сделать это можно, нажав на иконку шестеренки в шторке уведомлений либо запустив настройки через ярлык в лаунчере.
- В настройках зайдите в раздел «Система».
Теперь поставьте галочку напротив двух пунктов, а именно «Дата и время сети» и «Часовой пояс сети».
После этих действий время и дата на телефоне будут подстраиваться исходя из информации из интернета. Но после каждого сброса данных вам нужно будет подключится к сети чтобы информация восстановилась на правильную позицию. Изменить самостоятельно часы в таком положении нельзя.
Деактивация регулярного выключения смартфона на ночь
Если ваше время сбрасывается при каждом выключении, отключите автоматическое выключение по расписанию и постарайтесь сами не отрубать смартфон, тогда все будет нормально.
Чтобы сделать это проделайте следующие действия:
- В настройках откройте раздел «Экран».
Далее откройте пункт «Ночной режим».
В «Ночном режиме» выберите вкладку «Включать автоматически».
Появится список с всевозможными вариантами, а именно: никогда, мое расписание, от заката до рассвета. Выберите подходящий для вас вариант, а для решения этой проблемы – вариант «Никогда».
В настройках телефона стоит галочка типа «Обновлять время автоматически» (видимо, телефон должен получать информацию у оператора сотовой связи), но время со стандартного на летнее до сих пор не перевелось.
Ради эксперимента решил не переводить время вручную хотя бы сутки и посмотреть, работает ли автоматическая коррекция.
P. S. Nokia 6230i + МТС.
- Вопрос задан более трёх лет назад
- 42512 просмотров
Ни у одного нашего оператора толком не работает передача времени.
За границей у меня такая опция работала.
Мой N900 перевел время сам, как и все нормальние линуксы 🙂
На телефонах с gprs замечал что время не переводиться, пока его не настроишь. То есть один из способов через интернет. В телефонах без интерната или либо вообще не будет работать, либо с помощью посыла служебного запроса.
Давно помню была у меня какая-то старая нокия, так вот когда вставлял в нее симку билайна, при регистрации в сети она предлагала установить точное время. И у нее это получалось. Интернета на телефоне не было.
ClockSync на Android iPhone/iPad
? ВНИМАНИЕ: с 30 октября на территории России время назад не переводится, но на большинстве Android телефонов оно перевелось на час назад, это не вина программы ClockSync, происходит так потому, что в вашем телефоне устаревшая база данных часовых поясов. Внутри программы читайте обращение разработчика «О часовых поясах», там подробно описано как решить проблему. Виджет часов от HTC может показывать время неправильно, т.к. он не использует системную настройку часового пояса, это можно исправить только через TimeZone Fixer, подробнее по ссылке: http://bit.ly/htc-widget-tz.
ClockSync синхронизирует системное время устройства через Интернет по протоколу NTP с серверами точного времени.
Программа будет полезна если ваш сотовый оператор не поддерживает NITZ (автоматическую синхронизацию времени) или посылает неверное время, а также если часы сильно убегают вперед или отстают.
Доступно 2 режима работы: автоматический, для тех у кого есть root; и ручной, для пользователей без прав root.
Возможности режима без root:
— автоматическое получение точного времени с заданным интервалом
— если разница с точным временем превышает заданное значение, показывается уведомление
— помощник для ручной синхронизации с подсказками какие значения даты/времени установить
— точность в интервале между 1 и 30 секундами (т.к. Android не позволяет устанавливать секунды)
— точность
1 секунда если ваше устройство обнуляет секунды при ручной установке времени (большинство устройств Samsung)
— сигнал точного времени для помощи при ручной установке если устройство обнуляет секунды
Возможности режима с правами root:
— автоматическая синхронизация с заданным интервалом
— точность
1-20мс в зависимости от соединения и сервера
— статистика (среднее смещение в день, общее скорректированное время)
Root нужен из-за ограничений системы Android, голосуйте за http://bit.ly/set_time_without_root если хотите чтобы программа смогла менять время без root.
Другие возможности:
— настраиваемый NTP/SNTP сервер и таймаут
— отображение текущей даты или времени последней синхронизации
— подробная информация об NTP сервере
— определение и настройка часового пояса по географическим координатам
— ручная установка смещения часового пояса
— использование автономной и актуальной базы часовых поясов
— 3 цветовые схемы (тёмная, светлая, по-умолчанию)
— вибрациях при нажатиях и синхронизации
— простой и удобный интерфейс (нажимайте на значения или используйте меню)
Если у вас нет root, обратитесь к http://bit.ly/phoneroot за подробными инструкциями. Информацию на русском можно найти на форуме http://4pda.ru/forum.
Не хотите или не можете сделать root? ClockSync всё равно пригодится как источник точного времени для корректировки других часов и устройств вручную, поможет оценить точность хода часов в телефоне, точно выставить время вручную через подсказки.
Перенос на SD карту отключен, иначе не будет работать автоматическая синхронизация (таймеры), также это не сэкономит вам более 50Кб места, само приложение очень маленькое и система переносит на карту только часть файлов.
Если у вас есть вопросы, предложения, или вы столкнулись с какими-либо проблемами, пишите мне на почту, разработчики не могут отвечать на комментарии в Маркете. Я гарантирую ответ в течение одного дня (обычно моментально).
Сайт программы: http://bit.ly/clocksync
Страница в Google+: http://bit.ly/clocksync-plus
tags: time sync synchronize atomic internet clock drift adjust client precise timezone accurate accuracy zoneinfo Olson IANA