Подтвердить что ты не робот

Какой лучший способ синхронизировать время с точностью до миллисекунды и точностью между машинами?

Из того, что я понимаю, кристаллы на ПК печально известны для перекоса часов. Если часы всегда перекошены, каков наилучший способ синхронизации часов между машинами с точностью до миллисекунды? Из того, что я нашел, NTP и PTP - это возможные решения, но мне было интересно, есть ли у кого-нибудь опыт работы с stackoverflow.com!

Я понимаю, что NTP - это популярный выбор, но мне интересно, есть ли у кого-нибудь опыт работы с PTP (IEEE1588)

4b9b3361

Ответ 1

Просто запустите стандартный демон NTP.

У него есть опции для ввода данных с нескольких устройств GPS, а также для разговора с сетевыми серверами.

Изменить: я имел в виду http://www.ntp.org/, а не тот, который поставляется с Windows.

У меня нет никаких предложений относительно того, какие клиенты NTP лучше всего подходят для Windows, но для машин Unix нет реальной причины не запускать NTP.

Ответ 2

Вы не можете синхронизировать машины с уровнем миллисекунд, обмениваясь данными, потому что любой обмен данными уже занимает не менее миллисекунды, и таким образом портит ваш результат! Даже протоколы, которые пытаются в первую очередь измерить, как долго переносится передача данных, а затем отправляют информацию о времени (принимая взвешенную задержку во внимание), немного лучше, чем в среднем, но они все еще не очень хороши, поскольку не каждая передача данных занимает равное время ( просто постоянно пинговать сервер в Интернете и посмотреть, как каждый пинг имеет разную задержку).

Единственный способ действительно синхронизировать два компьютера в диапазоне миллисекунд - это заставить их получить время от того же источника с помощью метода передачи, который не имеет неизвестной или постоянно меняющейся задержки. Например. если оба получат спутниковый сигнал, который передает время. Сигнал всегда будет иметь постоянную задержку (со спутника на землю), и оба они получают его почти в пределах одной и той же наносекунды.

В Германии, например, есть радиоуправляемое время. Где-то в стране есть атомные часы (у которых есть правильное время для наносекунды в течение сотен лет), и некоторые отправители постоянно транслируют текущее время на заданной частоте по всей стране. Существуют часы для будильников и даже наручные часы, которые могут получать это время и постоянно синхронизироваться с ним (ну, на самом деле, на самом деле, большинство моделей делают это только один раз каждые 24 часа, чтобы сэкономить время автономной работы). Такие приемные устройства также существуют для компьютеров и поставляются с программным обеспечением, которое может постоянно синхронизировать ваши компьютерные часы с этим сигналом времени.

Насколько я знаю, GPS также отправляет информацию о времени (либо это, либо время можно как-то вычислить из информации GPS, я не слишком хорошо знаком с протоколом GPS). Поэтому подключение GPS-приемника к обоим компьютерам также может привести к их синхронизации с миллисекундой. Если ваша синхронизация выполняется через Интернет, не ожидайте лучшей синхронизации, чем один компьютер не более чем на 20 миллисекунд.

Чтобы обновить комментарий,
NTP не так точен, как люди любят заявлять здесь:

NTP обычно может поддерживать время с точностью до нескольких десятков миллисекундобщедоступный Интернет, и может достичь более чем одной миллисекундной точности в локальных сетях в идеальных условиях.

Источник: Wikipedia

Я предпочел бы держать их всех в синхронизации без какой-либо задействованной сети и дальше держать их в синхронизации с официальным временем GMT, и здесь GPS, вероятно, единственный способ получить действительно точные результаты на всех машинах (и что не только до мс, фактически вплоть до микросекунд).

Ответ 3

Вот несколько 10-летних программ, которые синхронизируются в пределах сотых миллисекунды. (Моя команда написала это, когда NTP был недостаточно хорош для нашей лаборатории.)

Из реферата: "Распределенные часы для сетевых компьютеров с товарным ПК. Без дополнительного оборудования эти часы коррелируют данные датчиков с нескольких ПК с задержкой и джиттером менее 10 микросекунд в среднем, в наименьшем случае на 100 микросекунд".

Описание: http://scholar.google.com/citations?view_op=view_citation&citation_for_view=QmbeOvsAAAAJ:5nxA0vEk-isC

Исходный код: http://zx81.isl.uiuc.edu/clockkit/

Ответ 4

Я использую NTP по всей сети в своей компании, и он работает довольно хорошо. Ключ должен иметь один авторитетный сервер в локальной сети и синхронизировать с ним каждую машину в сети. Лучше всего установить на этом сервере радиочасы. NTP велик, потому что он не просто корректирует часы раз в то время, но фактически вычисляет и исправляет тактовую частоту, делая ее более точной.

Как только я установил NTP в сети, я открыл, как пять сеансов VNC, на другой сервер и сидел там, наблюдая за часами. Часы на всех серверах синхронизировались с миллисекундами, и это сразу после настройки. Он становится более точным, когда он работает.

Ответ 5

Решения на основе NTP или SNTP могут работать очень хорошо, но это сильно зависит от того, насколько хорошо клиент реализован.

Конечно, ответ на этот вопрос не, чтобы использовать службу времени по умолчанию, если вы хотите получить вторую секундную точность. Это, как известно, неудовлетворительно при сохранении стабильной временной базы на машине и, как правило, перерегулирует исправления и почти нестабильно даже, особенно когда машины имеют довольно неточные временные рамки для начала - что является общим. Предположим, что стандартные встроенные инструменты Window могут надежно хранить достоверность там, как правило, всего в несколько секунд между всеми машинами, и я обычно вижу разворот на расстоянии до 30 секунд между машинами, даже если вы настраиваете настройки реестра.

Средство бесплатного программного обеспечения Achron - довольно хорошее решение, чтобы перейти в диапазон плюс/минус 500 миллисекунд. Для достижения лучшего результата потребуется более промышленное силовое решение, например, от Greyware

Ответ 6

NTP - это, безусловно, путь. В принципе, вы можете отключить брандмауэр на своем локальном сервере (обычно это брандмауэр или маршрутизатор).

Ответ 7

Как вы уже сказали, NTP является отраслевым стандартным решением этой проблемы, но для него требуется либо подключение к Интернету, либо источник stratum 0 (точные аппаратные часы, такие как GPS-приемник с компьютерным интерфейсом).

Если вы используете подключение к Интернету, рассмотрите возможность использования NTP Pool.

Ответ 8

Имейте в виду, что часы аппаратной системы (то есть неточные) считываются только при запуске машины - если вы говорите о серверных машинах, вы не потеряете время из-за них.

Ответ 9

В последнее время я изучил (прочитал Googled) эту тему, и вот что я узнал до сих пор:

  • Чтобы получить точность в миллисекундах (или лучше), вам нужна аппаратная поддержка. GPS-источник или аппаратное время-тиснение (и хороший источник времени) в PTP.

  • Аппаратное время-штамповка в PTP выполняется с поддержкой NIC - у Intel есть.

  • Без аппаратного времени тимпинг точность между NTP и PTP аналогична.

  • (Не используется PTP раньше) Я читал, что NTP проще настроить.

  • Мой ограниченный опыт работы с источником времени GPS (по серийному номеру) меняется. Он отлично работает, если вы можете заставить его работать, но есть устройство, которое у нас есть в центре обработки данных, что мне никогда не удалось заставить его работать...

  • Если ваши компьютеры находятся в colo, спросите DC, что они могут предоставить, поэтому вам не нужно решать.: D

НТН