The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Синхронизация времени, !*! Gor, 26-Июл-07, 23:21  [смотреть все]

Я пытаюсь сейчас синхронизировать время между моим Ноутбуком и машинами с очень ограниченным набором "включённых служб" и доступных ресурсов, работающих на embedded Linuxе через локальную сеть.

Решил сделать это с помощью сокетов в С с TCP/IP.
Запрашиваю время с помощью:

time_t stime;
stime=htonl( (long)time( NULL )+2208988800UL );//персчитываю время на базис 1.1.1990
write( client, &stime, sizeof( stime ));

Получаю с помощью:
read(sd, &stime, sizeof( stime ));//для упрощения привожу код без проверок
stime = ntohl( stime ) - 2208988800UL;
printf( "%s", ctime( &stime ) );

Вопрос теперь в том, как мне записать это время в системное время на локальных машинах?!

  • Синхронизация времени, !*! anonymous, 05:15 , 27-Июл-07 (1)
    • Синхронизация времени, !*! Gor, 09:37 , 27-Июл-07 (2)
      >
      >Не учитывается время, потраченное на отправку, передачу, доставку и обработку пакетов --
      >а на не-realtime системах оно может быть значительным и достигать нескольких
      >секунд.  Таким образом вы очень сильно снижаете точность передаваемого времени.

      Система с RTPreemt патчем, поэтому обработка будет занимать не сильно большое время,- думаю максимум - миллисекунды. Пересылка тоже сьест некоторое время, - но для меня самое главное сейчас не идеально установленное время, а синхронизированное,причём даже не с Ноутбуком, а между машинами; так как машины имеют абсолютно одинаковую систему и находятся на одинаковом удалении от Ноута я рассчитываю таким образом на разницу в несколько микросекунд между машинами, что на данном этапе подходит.

      >Советую почитать спецификацию протокола NTP и написать минимально возможную реализацию.  Хотя
      >наверное проще будет взять готовый клиент NTP: на моей системе /usr/sbin/ntpdate
      >занимает всего 45 килобайт -- не очень это и много даже
      >для embedded-реализации.

      Какой адрес имеет Ваша система? Мне при этом полагаю потребуется также NTP-Сервер для ноутбука программить или скопировать где-то,- так как выхода в интернет из локальной сетки не предусмотрено?

      >man stime, но очень советую обратить внимание на NTP.

      Большое спасибо, сейчас посмотрю.


      • Синхронизация времени, !*! anonymous, 15:34 , 27-Июл-07 (3)
        • Синхронизация времени, !*! Gor, 23:48 , 27-Июл-07 (6)
          >Если вы синхронизируете время между одинаковыми машинами, то ведь и отставать/спешить эти
          >машины будут одинаково.  Поэтому я вижу мало смысла в такой
          >пиринговой синхронизации для получения точного времени.  Хотя всё зависит от
          >задачи -- если главное чтобы на всех машинах было одинаковое время,
          >а какое -- да пусть хоть 90-й год, тогда да, вы
          >мыслите в правильном направлении.

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

          >В смысле? Это мой домашний компьютер-десктоп.  Полноценная система, но как видите
          >-- NTP-клиент весит мало.

          Я Вас неправильно понял поначалу,- сори. Сейчас почитал доку по НТП и понимаю больше, спасибо большое за совет!

  • Синхронизация времени, !*! vic, 17:05 , 27-Июл-07 (4)
  • Синхронизация времени, !*! FarID, 11:30 , 07-Авг-07 (7)



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру