Я читал лекции по алгоритму синхронизации часов Кристиана.
Алгоритм утверждает следующие предположения:
- Минимальное значение времени односторонней передачи клиент-сервер составляет: min
- Сервер ставит метку времени для сообщения в последний возможный момент перед его отправкой обратно.
Предположим, что клиент отправляет сообщение с запросом на синхронизацию времени с сервера .
Сервер отмечает свое текущее время T и отвечает в ответ.
Предполагая, что время отправки == время приема, клиент устанавливает свои часы на T + (RTT / 2) где RTT - время приема-передачи. В нем говорится, что точность этого находится в пределах (T + min, T + RTT - min).
Мое доказательство того, что это неверно:
Пусть время передачи отправки T c = min + x, где x> = 0.
Это потому, что член x вводит неограниченную задержку отправки, которая нам неизвестна.
Пусть время приема передачи Ts = min + y где y> = 0 (y - термин, аналогичный x для обратного направления).
Таким образом, время для установки часов клиента равно T + Ts.
Также RTT = T c + Ts = 2min + x + y
Минимально возможная граница для времени, которое может быть установлено = T + min, когда y = 0.
Максимально возможная граница для времени, которое может быть установлено = T + RTT - (min + x).
Поскольку T + RTT - (min + x) <= T + RTT - min, мы должны установить наши часы на время, превышающее время сервера, если граница указана в книге / лекции правильно. Где я ошибаюсь? </p>
Спасибо!