синхронизировать часы через интернет - PullRequest
5 голосов
/ 03 марта 2009

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

Это, конечно, задержка.

Для отладки и оптимизации мне бы хотелось, чтобы оба компьютера использовали одну и ту же базу времени. Т.е. мне нужно знать разницу во времени их часов, чтобы я мог лучше судить о задержках.

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

Недостаточно полагаться только на NTP - в моем опыте часы могут быть отключены на полсекунды (пояснение: я до сих пор полагался на стандартную, предоставленную Apple).

Мне нужна точность в диапазоне 1/10, как минимум. Два компьютера не будут находиться слишком далеко друг от друга, обычно время пинга ICMP составляет менее 100 мс.

Любые предложения, как это сделать?

(в настоящее время задействованные машины работают под управлением OS X, поэтому, если вы знаете решение только для них, это будет началом)

Ответы [ 4 ]

10 голосов
/ 03 марта 2009

Получить время от GPS-приемника, подключенного к машинам. Если они находятся в центре обработки данных, может быть трудно доставить антенну в место, где она может получить блокировку, хотя, к сожалению.

7 голосов
/ 03 марта 2009

Я бы посоветовал вам установить на одном из серверов ntp-сервер, а другой синхронизировать его.

2 голосов
/ 03 марта 2009

Опора только на NTP не отображается достаточно хорошо - часы могут быть выключены полсекунды в моем опыте.

Странно. NTPd через Интернет должен дать вам гораздо большую точность.

2 голосов
/ 03 марта 2009

Вы пытались использовать один из компьютеров в качестве NTP-сервера для другого? Возможно, они не будут синхронизированы с «реальным» временем, но это может привести вас к той точности, которая вам требуется.

...