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

UTC является современной версией WET (Западноевропейское время). UTC введено в 1964 году и относится к земной международной системе координат (ITRS). Для расчета времени в отношении небесных тел используется международная система астрономических координат (ICRS).
В повседневной жизни вполне достаточно GMT, но если необходима более точная координация, то без UTC не обойтись. UTC является связующим звеном между временем на среднем гринвичском меридиане (GMT) и Международным атомным временем (TAI).
После установки первого сервера ARPANET (2 сентября 1969) возникла необходимость описывать и передавать по сети единое время. Для совместимости время описали в рамках стандарта POSIX. Отправной точкой взяли 1 января 1970 года. Таким образом был запущен таймер отсчёта времени в миллисекундах с полуночи 1 января 1970 года. 30 января 1970 года после первой секунды координации возникло секундное отставание POSIX времени от времени UTC. Вплоть до 1981 года отставание корректировали в ручную, пока Дэвид Л. Майлс не изобрёл протокол синхронизации UTC и POSIX времени (NTP).
В последствии NTP начал использоваться не только внутри сети ARPANET, но и таких сетей как NSFNet, CSNET и других. В настоящее время все современные компьютеры умеют работать с NTP.
Если раньше все дороги вели в Рим, то теперь Париж можно смело называть центром времени. Именно в Париже в 1987 году сформировалась «Международная служба вращения земли» (hpiers.obspm.fr), которая отвечает за поддержание всемирного времени.
От её работы зависит устойчивая связь и работа не только сети Интернет, но и спутниковых систем.
Что касается спутниковых систем (GLONASS, GPS, DORIS, QZSS, IRNSS, EGNOS,WAAS), то они в основном служат для уточнения астрономических расчетов, а также ретранслируют сигналы точного времени на землю.
Наблюдением за вращением земли в основном осуществляется с помощью радиотелескопов, сейсмических датчиков расположенных в разных частях планеты, а также тахеометров и другой аппаратуры установленной в обсерваториях. С помощью всей этой аппаратуры специалистами международной службы времени отслеживается скорость движения литосферных плит, которая оказывает влияние на значение времени по Гринвичу (GMT).

Современная сеть Интернет базируется на протоколе TCP/IP (RFC739, RFC791), на транспортном уровне которого активно используются точное время. UTC играет ключевую роль, позволяя сети работать в единой системе координат. Источником точного времени для компьютера, подключенного к сети Интернет служат в основном сервера времени (SNTP, NTP), либо аппаратные часы (CMOS), которые могут синхронизироваться с GPS-спутником посредством GPS-устройства для получения точного времени со спутника.

Только за последние 40 лет «Международной службой вращения земли» к UTC было добавлено 24 секунды. Для разработчиков высоконагруженных систем и сетевых администраторов каждое решение принятое Междун��родной службой вращения земли может стать очередной проблемой. Обычно на время добавления секунды координации администраторы проводят плановую перезагрузку серверов, дабы избежать аномальной нагрузки на процессор или после потери связи с сервером.
Другой проблемой при использовании UTC с которой может столкнуться разработчик многозвенных систем на базе архитектуры Windows состоит в том, что одна и таже программа на компьютерах с одними и теми же характеристиками, но в разной сетевой инфраструктуре может работать с разной производительностью, и источником проблемы может быть вовсе не программа, а настройки TCP/IP. Не оптимально установленные значения параметров TcpDelAskTicks (время задержки подтверждения) или TcpInitialRTT (время ожидания) могут парализовать работу сети, в итоге клиентские приложения просто не получат подтверждения в том, что пакет успешно доставлен на сервер и будут пытаться отправить его снова. Проблема может усугубится после установки на сервере параметра TcpMaxDataRetransmissions (максимальное количество повторных передач) на медленном канале до 1 и на быстром в 4294967295. В этом случае параметр TcpDelAskTicks, установленный по умолчанию может сыграть роковую роль. Кажется очевидным, что на быстрых каналах параметр времени ожидания можно уменьшить, также как и параметр времени задержки подтверждения, при этом пропускная способность канала увеличится. На самом деле характеристики канала связи могут меняться в течении суток по различным причинам, в том числе и из-за «секунды координации». Для адаптации значения интервала ожидания используется опция Timestamps (параметр Tcp1323Opts), позволяющая автоматически устанавливать значение для таймера повторной передачи.
Самой известной проблемой, связанной с UTC является «проблема 2038 года», когда значение UTC в компьютерных системах выйдет за рамки 32-бит. Случится это должно будет 19 января 2038 года в 3 часа 14 минут и 8 секунд. В случае использования NTP -сервера можно получать по сети уведомления о наступающей координационной секунде и провести корректировку в реальном режиме времени, а не после. В этом случае можно заранее обнулить в компьютерных системах таймер отсчета времени, и начать считать UTCv2. Компьютерным системам без внешней синхронизации придётся переходить на UTCv2 уже после наступления координационной секунды.
Существует также альтернатива UTC и связанной с ней временной зоне — это Biel Mean Time (далее BMT). BMT предлагается использовать, как универсальную единицу измерения времени в сети интернет. Время BMT официально объявлено 23 октября 1998 года и в основном финансируется швейцарской фирмой Swatch, поэтому в интернете наряду с BMT можно увидеть аббревиатуру SIT, что в переводе означает Swatch Интернет-время. BMT также имеет отношение к GMT, как и WET к UTC, но в отличие от WET точно привязан к зимнему времени, которое соответствует времени UTC+1, поэтому вычисляя время BMT нужно учитывать не только часовые зоны, но и перевод часов на летнее время и обратно.
BMT не имеет временных зон за счет введения единой условной единицы для времени — .beats. Условно 1000 .beats равно одним средним солнечным суткам. Полночь в пересчете на .beat будет равно 000, а полдень 500 .beats. BMT время всегда трёхзначно и не имеет часовых поясов.
Быть может в будущем UTCv2 будет таким же простым, как BMT и точнее, чем POSIX time.

Немного истории
UTC является современной версией WET (Западноевропейское время). UTC введено в 1964 году и относится к земной международной системе координат (ITRS). Для расчета времени в отношении небесных тел используется международная система астрономических координат (ICRS).
В повседневной жизни вполне достаточно GMT, но если необходима более точная координация, то без UTC не обойтись. UTC является связующим звеном между временем на среднем гринвичском меридиане (GMT) и Международным атомным временем (TAI).
После установки первого сервера ARPANET (2 сентября 1969) возникла необходимость описывать и передавать по сети единое время. Для совместимости время описали в рамках стандарта POSIX. Отправной точкой взяли 1 января 1970 года. Таким образом был запущен таймер отсчёта времени в миллисекундах с полуночи 1 января 1970 года. 30 января 1970 года после первой секунды координации возникло секундное отставание POSIX времени от времени UTC. Вплоть до 1981 года отставание корректировали в ручную, пока Дэвид Л. Майлс не изобрёл протокол синхронизации UTC и POSIX времени (NTP).В последствии NTP начал использоваться не только внутри сети ARPANET, но и таких сетей как NSFNet, CSNET и других. В настоящее время все современные компьютеры умеют работать с NTP.
Международная служба вращения земли
Если раньше все дороги вели в Рим, то теперь Париж можно смело называть центром времени. Именно в Париже в 1987 году сформировалась «Международная служба вращения земли» (hpiers.obspm.fr), которая отвечает за поддержание всемирного времени.
От её работы зависит устойчивая связь и работа не только сети Интернет, но и спутниковых систем.
Что касается спутниковых систем (GLONASS, GPS, DORIS, QZSS, IRNSS, EGNOS,WAAS), то они в основном служат для уточнения астрономических расчетов, а также ретранслируют сигналы точного времени на землю.
Наблюдением за вращением земли в основном осуществляется с помощью радиотелескопов, сейсмических датчиков расположенных в разных частях планеты, а также тахеометров и другой аппаратуры установленной в обсерваториях. С помощью всей этой аппаратуры специалистами международной службы времени отслеживается скорость движения литосферных плит, которая оказывает влияние на значение времени по Гринвичу (GMT).

Современная сеть Интернет базируется на протоколе TCP/IP (RFC739, RFC791), на транспортном уровне которого активно используются точное время. UTC играет ключевую роль, позволяя сети работать в единой системе координат. Источником точного времени для компьютера, подключенного к сети Интернет служат в основном сервера времени (SNTP, NTP), либо аппаратные часы (CMOS), которые могут синхронизироваться с GPS-спутником посредством GPS-устройства для получения точного времени со спутника.

Проблема №1. Синхронизация времени в компьютерных системах
Только за последние 40 лет «Международной службой вращения земли» к UTC было добавлено 24 секунды. Для разработчиков высоконагруженных систем и сетевых администраторов каждое решение принятое Междун��родной службой вращения земли может стать очередной проблемой. Обычно на время добавления секунды координации администраторы проводят плановую перезагрузку серверов, дабы избежать аномальной нагрузки на процессор или после потери связи с сервером.
Проблема №2. Настройка времени в компьютерных системах
Другой проблемой при использовании UTC с которой может столкнуться разработчик многозвенных систем на базе архитектуры Windows состоит в том, что одна и таже программа на компьютерах с одними и теми же характеристиками, но в разной сетевой инфраструктуре может работать с разной производительностью, и источником проблемы может быть вовсе не программа, а настройки TCP/IP. Не оптимально установленные значения параметров TcpDelAskTicks (время задержки подтверждения) или TcpInitialRTT (время ожидания) могут парализовать работу сети, в итоге клиентские приложения просто не получат подтверждения в том, что пакет успешно доставлен на сервер и будут пытаться отправить его снова. Проблема может усугубится после установки на сервере параметра TcpMaxDataRetransmissions (максимальное количество повторных передач) на медленном канале до 1 и на быстром в 4294967295. В этом случае параметр TcpDelAskTicks, установленный по умолчанию может сыграть роковую роль. Кажется очевидным, что на быстрых каналах параметр времени ожидания можно уменьшить, также как и параметр времени задержки подтверждения, при этом пропускная способность канала увеличится. На самом деле характеристики канала связи могут меняться в течении суток по различным причинам, в том числе и из-за «секунды координации». Для адаптации значения интервала ожидания используется опция Timestamps (параметр Tcp1323Opts), позволяющая автоматически устанавливать значение для таймера повторной передачи.
Проблема №3. Проблема 2038
Самой известной проблемой, связанной с UTC является «проблема 2038 года», когда значение UTC в компьютерных системах выйдет за рамки 32-бит. Случится это должно будет 19 января 2038 года в 3 часа 14 минут и 8 секунд. В случае использования NTP -сервера можно получать по сети уведомления о наступающей координационной секунде и провести корректировку в реальном режиме времени, а не после. В этом случае можно заранее обнулить в компьютерных системах таймер отсчета времени, и начать считать UTCv2. Компьютерным системам без внешней синхронизации придётся переходить на UTCv2 уже после наступления координационной секунды.
Альтернативное время — BMT
Существует также альтернатива UTC и связанной с ней временной зоне — это Biel Mean Time (далее BMT). BMT предлагается использовать, как универсальную единицу измерения времени в сети интернет. Время BMT официально объявлено 23 октября 1998 года и в основном финансируется швейцарской фирмой Swatch, поэтому в интернете наряду с BMT можно увидеть аббревиатуру SIT, что в переводе означает Swatch Интернет-время. BMT также имеет отношение к GMT, как и WET к UTC, но в отличие от WET точно привязан к зимнему времени, которое соответствует времени UTC+1, поэтому вычисляя время BMT нужно учитывать не только часовые зоны, но и перевод часов на летнее время и обратно.
Вычисляем Biel Mean Time
<html> <body> <script> var sputnikLaunch = new Date(); isSummerTime=60; TimeZone=sputnikLaunch.getTimezoneOffset()/60; Hours = sputnikLaunch.getUTCHours()+3+TimeZone; Min = sputnikLaunch.getUTCMinutes(); Seconds = sputnikLaunch.getUTCSeconds(); SIT=Math.floor(((Hours*3600)+((Min-isSummerTime)*60)+Seconds)*1000/86400); document.write("@"+SIT); </script> </body> </html>
BMT не имеет временных зон за счет введения единой условной единицы для времени — .beats. Условно 1000 .beats равно одним средним солнечным суткам. Полночь в пересчете на .beat будет равно 000, а полдень 500 .beats. BMT время всегда трёхзначно и не имеет часовых поясов.
Быть может в будущем UTCv2 будет таким же простым, как BMT и точнее, чем POSIX time.
Информационные материалы:
1. itrf.ensg.ign.fr/doc_ITRF/Brewster_WA_Site%20Survey.pdf
2.http://ru.wikipedia.org/wiki/Служба_точного_времени
3. ru.wikipedia.org/wiki/NTP
4. ru.wikipedia.org/wiki/SNTP
5.http://ru.wikipedia.org/wiki/Секунда_координации
6.http://en.wikipedia.org/wiki/Satelite
7.https://support.ntp.org/bin/view/Servers/StratumOneTimeServers
8.https://support.ntp.org/bin/view/Servers/StratumTwoTimeServers
9.http://technet.microsoft.com/en-us/library/cc938206.aspx
10.http://upload.wikimedia.org/wikipedia/commons/e/e9/Year_2038_problem.gif
11. How the Windows Time Service Works.-http://technet.microsoft.com/ru-ru/library/cc773013(WS.10).aspx
12.http://ru.wikipedia.org/wiki/ARPANET
13.http://www.timeanddate.com/time/internettime.html
14.http://www.swatch.com/zz_en/internettime/
15. en.wikipedia.org/wiki/David_L._Mills
16. en.wikipedia.org/wiki/Swatch_Internet_Time
17.http://images.wikia.com/lostpedia/es/images/6/60/Hieroglyphs.JPG
18.itrf.ensg.ign.fr/ITRF_solutions/2008/doc/ITRF2008-Vel.gif
2.http://ru.wikipedia.org/wiki/Служба_точного_времени
3. ru.wikipedia.org/wiki/NTP
4. ru.wikipedia.org/wiki/SNTP
5.http://ru.wikipedia.org/wiki/Секунда_координации
6.http://en.wikipedia.org/wiki/Satelite
7.https://support.ntp.org/bin/view/Servers/StratumOneTimeServers
8.https://support.ntp.org/bin/view/Servers/StratumTwoTimeServers
9.http://technet.microsoft.com/en-us/library/cc938206.aspx
10.http://upload.wikimedia.org/wikipedia/commons/e/e9/Year_2038_problem.gif
11. How the Windows Time Service Works.-http://technet.microsoft.com/ru-ru/library/cc773013(WS.10).aspx
12.http://ru.wikipedia.org/wiki/ARPANET
13.http://www.timeanddate.com/time/internettime.html
14.http://www.swatch.com/zz_en/internettime/
15. en.wikipedia.org/wiki/David_L._Mills
16. en.wikipedia.org/wiki/Swatch_Internet_Time
17.http://images.wikia.com/lostpedia/es/images/6/60/Hieroglyphs.JPG
18.itrf.ensg.ign.fr/ITRF_solutions/2008/doc/ITRF2008-Vel.gif