Секунда координации. Кто и почему решает вводить дополнительную секунду

27.02.2019

Постоянно, по причине того, что вращение Земли замедляется, приходится добавлять секунду координации. Могли бы мы ускорить вращение Земли так, чтобы она нам больше не понадобилась?

Антон (Берлин, Германия)

Вращение Земли замедляется. Это раздражает.

Раздражает в том числе и потому, что стандарты времени из-за этого становятся все сложнее. У нас и так слишком много временных стандартов , включая:

  • TAI [ # ] ↲ Международное атомное время . - Прим. пер. ↳ - отслеживается по атомным часам, которые игнорируют все движение Земли.
  • UT0 и UT1 [ # ] ↲ Всемирное время . - Прим. пер. ↳ - основано на точном измерении вращения Земли.
  • GPS [ # ] ↲ GPS - время, основанное на атомных часах, расположенных на спутниках и на наземных пунктах управления системы глобального позиционирования. Время GPS было синхронизировано 6 января 1980 года в 00:00. - Прим. пер. ↳ - стандарт времени, используемый в спутниках GPS.
  • UTC [ # ] ↲ Всемирное координированое время . - Прим. пер. ↳ - стандарт, используемый в компьютерной индустрии, который похож на TAI , но с учетом секунд координации для синхронизации с Землей.
  • TDT , TBT , TCB и TCG [ # ] ↲ Динамическое время . - Прим. пер. ↳ - даже хуже предыдущих.

Это приносит разную мелкую головную боль, в основном программистам. Например, на смартфоне время в GPS отличается на 16 секунд от времени по системным часам. Так происходит потому, что системные часы используют всемирное координированое время (с секундами координации), а GPS - нет. Они были синхронны в январе 1980 года и, вероятно, больше не будут никогда.

Полмиллиарда лет назад (когда Земле было 4 миллиарда лет, а не 4,5) сутки длились не 24 часа, а 22. День стал длиннее из-за действия приливных сил Луны.

Грубо говоря, приливные силы работают так: Луна поднимает на Земле выпуклости, но с вращением нашей планеты они смещаются в сторону от спутника. Гравитация Луны пытается притянуть эти выпуклости назад, что создает замедляющий планету крутящий момент:

Странно, но на деле Земля замедляется не так сильно, как, казалось бы, должна от действия приливных сил. Основная причина расхождения состоит в том, что во время последнего ледникового периода континенты были вдавлены вниз под весом ледников и все еще возвращаются на место. Это приводит к смещению масс к полюсам, ближе к оси вращения:


Это заставляет нас вращаться быстрее, ну или, по крайней мере, позволяет замедляться не так быстро.

Сейчас каждый день на 0,8 миллисекунд длинее значения в 86 400 секунд, при котором секунды координации были бы не нужны.


Эта разница колеблется со временем в зависимости от погоды и других эффектов (она в самом деле немного уменьшилась в 1990-х). Хотя в долгосрочной перспективе разрыв однозначно будет увеличиваться с замедлением Земли.

Если мы хотим избавиться от координационных секунд, нужно заставить Землю вращаться с более постоянной скоростью. Значит, придется ускорить Землю и сократить каждый день на 0,8 миллисекунд.

Это серьезная проблема. Вот несколько способов, которые не будут работать:

Вращаться против часовой стрелки на стуле . Временно изменит скорость вращения Земли, но совсем незначительно.

Установить ракетные двигатели на экваторе. Не сработает, поскольку выхлопы, выпускаемые в атмосферу, вернут момент Земле за счет сопротивления воздуха - это как пытаться разогнать велосипед, толкая его в ручки руля. Если бы двигатели каким-то образом были закреплены над атмосферой, они могли бы замедлить Землю, но не настолько, чтобы достигнуть нашей цели.

Вызывать большие землетрясения. Это может изменять продолжительность дня , но даже такие землетрясения не будут достаточно мощными, чтобы на что-то повлиять.

В конце концов остается только одно решение - ударить Землю астероидом.

При наличии достаточного времени мы могли бы отправить космический корабль (с капитаном в лице анти-Брюса Уиллиса), чтобы совершать повторяющиеся облеты кометы. Через некоторое время гравитационное возмущение смогло бы перенаправить комету на такой курс, чтобы она столкнулась с Землей. Попав по Земле под правильным углом, мы придадим ей толчок:

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

А вот и плохие новости: чтобы получить достаточный крутящий момент, нам придется бить по Земле камнями с интенсивностью порядка миллиарда литров в секунду (это в семь раз больше, чем объемный расход воды в Амазонке). Это все равно, что шестимильный астероид - убийца динозавров, - прилетающий раз в пару дней. Человечество, да и жизнь в принципе, не выдержит такую бомбардировку долго.

Как насчет постоянного потока астероидов поменьше?

Пусть, скажем, астероид B-612 из «Маленького принца» четырех метров в диаметре и состоит из камня. Чтобы поддерживать нужное давление, в атмосферу должно входить около пятидесяти тысяч таких астероидов в секунду.


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

Но, по крайней мере, мы можем перестать беспокоиться о секундах координации.

В ночь с 31 декабря на 1 января ко всемирному координированному времени (UTC) добавят одну дополнительную секунду.

"Для времени UTC действует следующая последовательность дат: 31 декабря 2016 года, 23.59.59, 31 декабря 2016 23.59.60, 1 января 2017 года 00.00.00", - говорится в сообщении Международной службы вращения Земли (IERS).

Откуда берется дополнительная секунда?

Согласно стандарту UTC, одни земные сутки, за которые Земля полностью оборачивается вокруг своей оси, длятся ровно 24 часа или 86 400 секунд, но в реальности период этого вращения сейчас равняется примерно 86 400,002 секунды. За год время UTC убегает вперед астрономического почти на целую секунду и для компенсации этой разницы периодически начисляют дополнительную или, как ее еще называют, високосную или координационную секунду.

Когда добавляют лишнюю секунду?

Это происходит либо в ночь с 30 июня на 1 июля, либо в ночь с 31 декабря на 1 января. Впервые координационную секунду ввели в 1972 году, с тех пор ее начисляли 26 раз, последний - 30 июня 2015 года. Теоретически дополнительная секунда может вводиться и несколько раз в год, но пока такого не было. Кроме того, есть возможность начисления и "отрицательной" координационной секунды (после 23.59.58 сразу идет 0.00.00 - для случая когда время UTC отстало от астрономического), но к этой опции тоже пока никогда не прибегали.

Кто и почему решает вводить дополнительную секунду?

Это решает Международная служба вращения Земли, созданная в 1987 году. Астрономическое время они определяют по положению Земли относительно квазаров - чрезвычайно ярких источниках излучения, находящихся от нас на расстояниях миллиардов световых лет. Всемирное координированное время отсчитывают точные атомные часы - ошибка в секунду набегает за 1,4 миллиона лет. Когда астрономическое время начинает отличаться от всемирного координированного более чем на 0,9 секунды, эксперты IERS принимают решение начислить дополнительную секунду в ближайшее доступную дату - 30 июня или 31 декабря. Обычно они сообщают об этом за несколько месяцев - так, о вводе координационной секунды 31 декабря 2016 года заявили еще 6 июля 2016 года.

Какое отношение високосная секунда имеет к високосному году?

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

Это опасно для техники?

В 1997 году введение дополнительной секунды на сутки вывело из строя систему ГЛОНАСС, от 2012 года есть сообщения о нарушениях в работе интернет-сервисов Linkedin, Foursquare, Instagram и даже задержках более 400 авиарейсов в Австралии. В 2015 году координационная секунда опять сбила работу многих интернет-сервисов, а также мобильных устройств на Android (у пользователей стала неверно отражаться дата). В целом, начисления координационных секунды не должны приводить к серьезным глобальным сложностям.

Что будет дальше?

Длительность астрономических суток не просто больше 24 часов - из-за замедления вращения Земли она увеличивается (это связано с гравитационным взаимодействием нашей планеты с Солнцем и Луной, различными атмосферными процессами и другими факторами). Поэтому в XXII веке придется регулярного добавлять лишнюю секунду два раза в год, а в XXIII - уже почти каждый месяц.

Международный астрономический союз в 2009 году предложил отказаться от секунды координации и вместо этого прибавлять к всемирному координированному времени один час каждые 6000 лет, но эта идея не получила одобрения. После серии обсуждений окончательное решение этого вопроса отложили до 2023 года.

К сожалению, наш мир устроен так, что угловая скорость вращения Земли не постоянна. Хуже того, не постоянна и производная этой скорости. Из этого следуют два неприятных вывода:
  1. какой бы отрезок времени не был бы выбран в качестве эталона секунды, через некоторое время обнаружится разница между нашей шкалой времени и солнечным временем, которую необходимо скорректировать;
  2. корректировку невозможно осуществлять на какой-либо регулярной основе.
Для компенсации разницы между всемирном координированном временем (UTC) и средним солнечным временем (UT1) вводят секунду координации (leap second) . Секунду координации вводят в конце суток по всемирному времени 30 июня или 31 декабря так, чтобы время UTC не отличалось от UT1 более, чем на ±0,9 секунды. Считается, что в такие дни после времени 23:59:59 идёт 23:59:60 или же после 23:59:58 следующая секунда будет 00:00:00.
Так как корректировку невозможно осуществлять на какой-либо регулярной основе, корректировка автономных часов осуществляется вручную. В случае же часов с внешней синхронизацией корректировка может быть выполнена автоматически, на основе данных, полученных от внешнего источника.

Распространение информации о предстоящей секунды координации

Большинство служб и сетей точного времени предоставляют информацию о предстоящей секунде координации, например, GPS. Протокол NTP тоже предоставляет данную информацию. На нем я и остановлюсь поподробнее.
NTP-сервер может узнать о предстоящей секунде синхронизации тремя путями:
  1. информация может быть задана вручную (в случае ntpd это делается при помощи файла leapfile , который содержит сведения о всех секундах синхронизации, и директивы leapfile);
  2. посредством информации от драйвера эталонного источника времени;
  3. посредством протокола NTP.
Получив любым из этих способов информацию о предстоящей секунде координации, и с наступлением суток, к которым эта секунда относится, сервер устанавливает соответствующее значение внутренней переменной, информирует ядро ОС и начинает соответствующим образом информировать своих клиентов.
В датаграмме протокола NTP предусмотрено двухбитное поле для анонса секунды координации. Обычно оба бита установлены в ноль. Установка одного из битов в единицу означает, что в конце суток будет введена положительная или же отрицательная секунда координации (в ряде случаев оба бита могут быть установлены в единицу, что означает, что по тем или иным причинам сервер не может предоставить точное время).
По результатам опроса NTP серверов проводится голосование, на основании которого клиент устанавливает соответствующее значение внутренней переменной, информирует ядро ОС о предстоящей секунде координации и начинает соответствующим образом информировать своих клиентов.
Казалось бы вполне логичная и работоспособная схема, но, возможны грабли.
Грабли
Грабли обычно вызваны неправильной конфигурацией первичных серверов, когда сервер ничего не знает о предстоящей секунде координации и узнает о ней в лучшем случае постфактум. Примером тому . Так же могут быть экзотические случаи, когда в цепочку синхронизации вклинивается сервер, не полностью поддерживающий NTP, или фаервол, некорректно «зачищающий» пакеты.
Ошибки Stratum 1 серверов наиболее часто встречаются, когда в качестве эталонного источника используется приемник GPS или ГЛОНАСC с протоколом NMEA, который передаёт информацию только об уже наступившей координационной секунде. Так что, если вы являетесь владельцем сервера Stratum 1 и не уверены в том, что драйвер вашего эталонного источника сможет передать нужную информацию, пожалуйста, «скормите» вашему серверу leapfile .
Проверить корректность конфигурации сервера в случае ntpd достаточно просто. Дайте команду ntpq -c rv . Вы получите приблизительно такой результат:

Associd=0 status=0419 leap_none, sync_uhf_radio, 1 event, leap_armed, version="ntpd [email protected] Wed Jun 13 10:36:21 UTC 2012 (1)", processor="x86_64", system="Linux/3.2.20", leap=00, stratum=1, precision=-22, rootdelay=0.000, rootdisp=0.002, refid=GPS, reftime=d3856e94.2052bbf0 Fri, Jun 15 2012 15:19:32.126, clock=d3856e97.6bdc8f80 Fri, Jun 15 2012 15:19:35.421, peer=48525, tc=3, mintc=3, offset=0.001, frequency=23.641, sys_jitter=0.000, clk_jitter=0.000, clk_wander=0.001, tai=34, leapsec=201207010000, expire=201212280000
Если вы видите leapsec=201207010000 , значит ваш сервер правильно настроен и использует адекватный leapfile. Если выполнить такую же команду 30 июня, то leap_none в первой строке должно измениться на leap_add_sec . Убедиться, что все в порядке, можно и анализируя ваш NTP-трафик 30 июня. Например, tcpdump с опцией -v успешно парсит пакеты NTP и показывает упомянутые выше биты анонса в читаемом виде.
Отдельно хочется отметить поведение операционных систем. Если Linux, FreeBSD и большинство современных UNIX-like операционных систем корректно обрабатывают секунду координации, то для Windows это будет сюрпризом. В какой-то момент времени Windows Time Service обнаружит, что время ОС отличается где-то на секунду. Будет ли Windows компенсировать эту разницу постепенно, замедляя (ускоряя) ход системных часов, или же рывком - зависит от параметра MaxAllowedPhaseOffset . В данном случае можно рекомендовать администратору определить, какой сценарий компенсации нанесет наименьший урон и задать данный параметр соответствующим образом.