Вы наверняка не задумывались, но почти все часы вокруг вас — на телефоне, ноутбуке — все они показывают время с небольшой погрешностью. Да, они врут. Но самое интересное, что врут они не сильно. Настолько несильно, что разница между временем на вашем устройстве и самыми точными атомными часами в мире составляет всего несколько десятков миллисекунд.
И это не просто так. Без такой синхронизации наш мир бы просто развалился. Электросети, финансовые рынки, аукционы — всё это зависит от точного времени. А за всем этим стоит одна незаметная, но гениальная система, созданная 40 лет назад. Она до сих пор работает благодаря группе энтузиастов, которые просто хотят, чтобы в мире всё отлажено работало.
Откуда ваш компьютер знает точное время?
Давайте начнём с простого. Ваш компьютер может отсчитывать время даже без интернета. Даже если он выключен и просто стоит в шкафу. Всё благодаря маленьким часам на материнской плате, которые питаются от батарейки. Эта батарейка, кстати, выглядит как маленькая монетка, и её хватает на 5–20 лет.
Но эти часы далеки от шедевра точности. Они могут отставать или спешить на несколько секунд в день. И уж точно они не знают, решило ли Международное бюро мер и весов добавить в этом году високосную секунду или нет. Поэтому ваш компьютер время от времени сверяет часы с более точными источниками. Но как это происходит?
Протокол сетевого времени
Вот тут-то и появляется NTP (Network Time Protocol) — протокол сетевого времени. Это система, которая регулирует, как время передаётся через интернет.
В мире всего 19 источников точного времени. Да, всего 19 на весь мир. Это атомные часы, которые являются эталоном для всех остальных часов. Они находятся в разных точках планеты: в Германии, Швейцарии, Японии, России и даже в космосе. Эти часы настолько точны, что их погрешность составляет доли секунды за миллионы лет. Но как время от этих часов попадает в компьютер?
Иерархия часов
- На вершине — Stratum 0, это сами атомные часы. Они — абсолютный авторитет в мире времени.
- Далее идут Stratum 1 — серверы, которые получают время напрямую от атомных часов. Их немного, и они почти так же точны, как и атомные часы.
- Затем идут Stratum 2 — серверы, которые получают время от Stratum 1. Эти серверы уже доступны для широкой публики. Например, time.windows.com, который используется по умолчанию в Windows, находится на этом уровне.
- А ваш компьютер, скорее всего, относится к Stratum 3. Но не переживайте, он всё равно отстаёт от атомных часов всего на несколько миллисекунд.
Как время передаётся через интернет?
Теперь самое интересное. Как время с атомных часов попадает на ваш компьютер? Всё просто: время передаётся по проводам. Но есть одна проблема: задержка. Когда ваш компьютер спрашивает у сервера: «Который час?», ответ приходит не мгновенно.
Чтобы учесть эту задержку, используется хитрый математический трюк. Ваш компьютер записывает время отправки запроса (T0), сервер записывает время получения (T1) и отправки ответа (T2), а ваш компьютер записывает время получения ответа (T3). С помощью этих четырёх меток можно вычислить точное время, учитывая задержку.
Итог
Представьте, что произойдёт, если время на всех устройствах начнёт расходиться. Электросети перестанут синхронизироваться, финансовые транзакции будут путаться. Всё это держится на тонкой ниточке точного времени. И за этим стоит невидимая армия энтузиастов, которые следят за тем, чтобы часы шли правильно.
Так что в следующий раз, когда вы посмотрите на время в углу экрана, помните: это не просто цифры. Это результат работы сложной системы, которая объединяет атомные часы, интернет, математику.