NTP Временски Скок и Скокови Секунди

Source: https://www.eecis.udel.edu/~mills/leap.html

gifод  Алиса у земљи чуда , Левис Карролл

Тхе Мад Хаттер и март Зец се расправља да ли је Чајник серијски број треба да имају два или четири цифре.

Сажетак

Временски период користи Нетворк Тиме Протоцол (NTP) се заснива на координиран Универал време (УТЦ), која је и сама се заснива на ротацији Земље око своје осе. Како је ротација Земље се успорава веома постепено, то захтева преступна секунда да се убаци у временској скали на око осамнаест интервалима месеци. Овај документ описује механизме убацивање и како то утиче на временске рокове непосредно пре, за време и после преступна секунда.

1. Представљање

Конвенционални цивилног временски период се користи у многим деловима света се заснива на координираном универзалном времену (УТЦ сиц). Стопа УТЦ заснива се на Међународном Атомиц Тиме (Таи сиц), која је изведена од стотина цезијумових и водоника сатова у лабораторијама националним стандардима многих земаља. УТЦ-временски рок је изведена из УТ1 временској скали, која се заснива на ротацији Земље око своје осе. Корекције УТЦ односу на УТ1 се реализује у форми преступне секунде, који се јављају у интервалима од неколико месеци до неколико година. Овај документ разматра шта се дешава у NTP временској скали на епохе преступне секунде и како и зашто се разликује од уобичајених модела Уник, као што су POSIX.

Док Таи је користан у научној заједници, већина нас рачунати време у складу са Сунцем и сезоне. Почев од ТАИ је УТ0 временски период се одређује коришћењем корекције за орбите и нагиба Земље (Једначина времена као користи Сундиалс). Међународни Земља Ротација сервис (МЗРС)  на опсерваторије у Паризу користи астрономске опсервације које пружају УСНО и других опсерваторија за одређивање УТ1 (навигатора) временски оквир исправљени за незаконите варијације у ротацији Земље.

2. Како у УТЦ мисли са Скок Сецондс

Док УТ1 дефинише соларни дан, усвајање било би потребно ресетовање часовник неки делић секунде сваки месец или два. На епоха 0х 1 јануара 1972, у УТЦ је дефинисан Таи – 10 с, у 0,5 секунди од УТ1, али офсет ТАИ – УТ1 је полако расте од тада; Средином 2007. године је 33 с. Када је оффсет УТ1 – у УТЦ постаје већа од око 0.5 с, а преступна секунда убачена у УТЦ временској скали. Преостала разлика се назива ДУТ1 корекција у електронским Тимецоде форматима и заступљена је у децисецондс (0.1 с).

За најпрецизнија координацију и временском одредницом догађаја од 1972. године, потребно је знати када су преступне секунде реализован у УТЦ и како су секунде бројевима. Ово је тренутно у надлежности Иерс, која објављује периодичне билтене доступне на Интернету. Као што је наведено у ЦЦИР Репорт 517 и касније ревидирана, скок друга је убачен након другог 23:59:59 последњег дана сваког одређеног месеца и постаје други 23:59:60 од тог дана. Скок Други ће бити избрисани изостављањем другог 23:59:59 на један од ових дана, иако то никада није догодило.

Запис о преступне секунде, и историјски и предвиђено, је укључен у  НИСТ-временској скали података Архива , који је ажуриран на месечном нивоу, јер у УТЦ почела 1972. Резиме Рачунар читљив је доступан у  преступној-сецондс.лист  фајл , која обухвата време NTP сваке преступне секунде, заједно са Таи-УТЦ оффсет. Датотека је доступна преко ФТП-а у већини НИСТ време сервера, укључујући и утцнист2.цолорадо.еду. Узорак  скок-сецондс.лист  фајл је приказан у Додатку А.

УТЦ временски рок тако крпеља у стандардним СИ секунди и била је постављена Таи – 10 с ат 0х Модифиед Јулиан Даи (МЈД) 41,317.5 према календару Јулиан дана или 0х 1. јануара 1972. према грегоријанском календару. Ово је основао прву крпеља на УТЦ ере и његов измирење с овим календарима. Након тога, у УТЦ временски период је марширали уназад у односу на ТАИ временском оквиру тачно један другом на заказаним наврата забележених у институционалном сећања на наше цивилизације.

Имајте на уму у пролазу тај корак друга подешавања утичу на број секунди дневно, а тиме и број секунди годишње. Очигледно, да бирамо да бринемо о томе, у УТЦ сат, Грегоријански календар и разни космички осцилатора ће неумитно дрифт, осим са временом док рационализује будуће Папа.

Док од мање користи компјутерски мерилац времена, Глобал Поситионинг Систем (ГПС) који се широко користи за ширење стандардно време, има свој временски оквир. ГПС временски период је Синтониц са ТАИ, али на одређено време оффсет из ТАИ очигледно, јер коначни преглед пројектовање система је била у 1980. ГПС-референтним тактовима -19 с, типично претворити из ГПС у УТЦ за спољне читања.

3. Како NTP и POSIX-рачунати са Скок Секундс

NTP и POSIX рокови се заснивају на УТЦ временској скали, али не увек поклапа са њим. Порекло NTP временског рока, примарни епоха, је 0х 1 јануара 1900, док је главни епоха POSIX временском року је 0х 1 јануара 1970. Оба рокови рачунати у стандардним (СИ) секунди од премијера епохе. На пример, по први крпеља у УТЦ на 0х 1. јануара 1972. NTP сат прочита 2,272,060,800, представља број СИ секунди од премијера епохе.

Уметање преступне секунде у УТЦ а потом исувише NTP и POSIX утичу на систем сат, а самим тим и конверзију између времена систем сат и конвенционалног грађанског време у сатима, минутама и секундама. Међутим, пошто је једини институционални меморије одредити конверзије су у УТЦ национални електронски сервиси, конверзија је ефекат ресетовања на УТЦ како је примљен сваки пренос Тимецоде. Тако, када је преступна секунда уметнут у УТЦ а потом у NTP или POSIX, познавање свих претходних преступне секунде је изгубљен.

Други начин да се опише ово значи да постоји онолико NTP или POSIX рокови као историјски преступној секунди. У ствари, нови временски период је обновљена након сваког новог преступна секунда. Тако, сви претходни преступне секунде, а да не помињемо очигледан порекло самог временској скали, скакали уназад једну секунду како се успоставља сваки нови временски рок. На пример, ако је сат синхронизован на УТЦ у 2005. години је коришћена за утврђивање УТЦ епоху догађаја који се десио почетком 1972. године, без корекције, догађај ће се појавити 22 секунди касније. Као резултат тога, за већину прецизно одређивање епоху у односу на историјске грегоријанског календара и УТЦ временској скали, корисник мора одузети од привидне NTP или POSIX-епоха релевантна померај обезбеђен од стране Иерс. Ово је карактеристика готово свих присутних дан временских механизама за дистрибуцију.

4. Како NTP и POSIX-Број секунде

Постоје три приступа спровођењу преступна секунда. Први приступ је да повећате системски часовник током скока други и наставити инцрементинг након скока. Проблем са овим приступом је да конверзија у УТЦ захтева познавање свих претходних преступне секунде и епоху уметање. Други приступ је да повећате системски часовник током преступна секунда и корак сат уназад једну секунду на крају преступна секунда. Ово је приступ предузму POSIX конвенцијама. Проблем са овим приступом је да је резултат временски период је испрекидан и двосмислен, јер је читање током скока се понавља једну секунду касније. Трећи приступ је да се замрзне на сат током скока други дозвољава време да ухвати корак на крају преступна секунда. То је приступ који се NTP конвенцијама.

NTP конвенције заснивају се на скупу формалних тврдње које је предложила теорије заједнице рачунарства.

  • Време очигледне зависних процеса мора бити квази-континуиран. То је, ако δк је стварни интервал између два сата читања и δи се мери разлика између читања, затим као δк тежи нули, максимална вредност δи приступа  п , где  стр је прецизност као што је дефинисано у спецификацији.
  • Време очигледне зависних процеса морају бити монотоне-дефините повећава. То је, ако Процес Б чита сат после процеса А, читање Б мора бити строго већи од читања А. Ово је последица Лампорт је “догоди пре” однос, који је дизајниран да произведе делимичну редослед сата читања .
  • Време очигледне зависних процеса морају бити тачни пре и после скока другог самог. То је, корак сат, чак и ако није очигледно да зависних процеса, јавља негде током скока другог самог. У NTP корак се јавља на почетку преступна секунда, док је у POSIX корак се јавља на крају.

Детаљан цхронометри са било којим од POSIX или NTP конвенција је приказано на слици 1. Она показује да секунди броји на почетку другог непосредно пре, за време и непосредно после скока други у 23:59:59 УТЦ 31. децембра 1998. године.

Датум
Време
Таи Оффсет
Контент скок
NTP Секунди
31 Јул 98
23:59:59
31
01
3.124.137.599
23:59:60
31
01
3.124.137.600
1 Нов 99
00:00:00
32
00
3.124.137.600
00:00:01
32
00
3.124.137.601

Слика 1. Контент преступна секунда бројева

Док је последњи друго нормалан дан је 23:59:59, последњој секунди дан скок је 23:59:60. С обзиром да чини дан једну секунду дуже од уобичајеног дана, дан превртања неће појавити до краја првог појављивања другог 3,124,137,600.

Имајте на уму да NTP секунди колона на слици 1 заправо показује епоху скок други самог, који је прецизан ера убацивања. Таи Офсет колона приказује кумулативне секунди оффсет УТЦ односу на ТАИ; то јест, број секунди да додате УТЦ како би се очувала номинално споразум са ТАИ.

Коначно, приметите да епоха уметањем односу на временској скали непосредно пре тој епохи; нпр епоха 31. децембра 1998. убацивање се одређује на временској скали на снази непосредно пре овог убацивања, што значи стварни убацивање у односу на Таи је 21 секунди пре него очигледне времена на УТЦ временској скали.

5. Како Контент Спроводи Скок Секунди

Очигледно питање које су покренули NTP конвенцијама је оно што се дешава током преступна секунда сама кад престане Контент времена и сат остаје непромењен. NTP скачу битови су постављени на дан преступне, било директно од стране возача референца сат или индиректно протоколом. Скок Други се спроводи на крају нормалног дана 86,400 с, а затим су преступне битови су ресетовање.

Ако су спроведене измене кернел прецизност време, језгро укључује државну машину која спроводи акције потребне за сценарија. Државна машинерија спроводи у последњих Уникс зрна је описан у  нанокернел  дистрибуцији софтвера. На првом појављивању другог 3,124,137,600, систем сат стао уназад једну секунду. Рутина за конверзију време кернел оперативног система може препознати ово стање и показати скок други као број 60.

Међутим, рутина која заправо стоји сат је ограничен никада на корак уназад, уколико корак је знатно већи од једне секунде, што би могло доћи због експлицитног правцу оператера. У овом тренутку дизајна мирује током преступне секунде, али је тачно који почиње са следећој секунди.

gif

Слика 2. NTP Оффсет У близини једног Скок Секонд

Слика 2 приказује понашање са модификованом дизајном користи у већини зрнима. За разлику од POSIX конвенцијама, NTP сат је замрзнута, а не напредовала током преступна секунда, тако да нема потребе да се уназадити једну секунду на крају преступна секунда. Цхронометриц преписка између УТЦ и NTP временских оквира се наставља, али Контент је заборавио све досадашње скок уметања. Тако, одређивање УТЦ временских интервала која обухвата скок секунди ће бити у заблуди, осим тачне времена убацивањем су познати из НИСТ табеле и његових наследника.

Одмах након преступна секунда уметање, оба рокови наставимо откуцава секунде као да је скок никада није догодило. Сат читање је приморан да увек повећава, тако да свако читање током преступна секунда повећава NTP сат најмање један микросекунди за старије зрна и један наносекунди за новијих.

У случају да сат није прочитана током скок другог, тако да изгледа да и даље стоје. У случају Б Тхе сат је прочитао један или више пута током скока секунди, тако да корацима вредности изван прошлог читања. То ће остати све док скок друга је стао-врати сат ухвати на ту вредност.

6. Раздвајање пуцањ

Можда постоји извесна забринутост због могућности опасности софтвера који покушава да прочита система сат што је брже могуће. У принципу, то би могло да доведе до великог разлика између читања сат и стварног времена, а који би могао расти у недоглед. Са модерним Наносецонд зрна и типичног времена да прочитате систем сат од 100 нс, разлика на крају преступне секунде неће бити више од 10 мс. С друге стране, са старијом микросекунда језгра и типичног времена да прочитате систем сат од 1000 нс, разлика после преступне секунде може бити онолико колико један другог. Средства би требало да се обезбеди заштиту од ове врсте опасности.

7. Додатак А. Узорак НИСТ leap-seconds.list Филе

Следи дословно копија узорка leap-seconds.list фајл доступним преко ФТП од већине НИСТ време сервера. Име датотеке је веза са стварним датотеке име и проширење у зависности од генерације датотеке, као што су  преступне-секунди.

 #
# У даљем тексту, симбол '#' уводи
# Коментар, који се наставља од тог симбола до 
# Крај линије. Једноставна коментар линија има
# Размак карактер након коментар индикатор.
# Постоје и посебни коментар линије испод дефинисане. 
# Посебан коментар ће увек имати без размака 
# Лик у колони 2.
#
# Празан ред треба игнорисати.
#
# Следећа табела приказује исправке које мора
# Бити примењена за израчунавање Међународни Атомиц Тиме (ТАИ)
# Од координисано универзално време (УТЦ) вредностима које
# Преносе готово све време службе.
#
# Прва колона приказује епоху као број секунди
# Од 1900.0 и друга колона показује број
# секунди да се мора додати да УТЦ да израчуна Таи за
# Свака Време у или после тој епохи. Вредност на
# Свака линија је важећа од назначене почетне инстант
# До епохе датог на следећи или неограничено 
# У будућност уколико не постоји следећи ред.
# (Коментар на свакој линији показује заступљеност
# Одговарајући почетни епоха у уобичајено 
# Дан-месец-година формата. Епоха увек почиње у
# 00:00:00 ЦДТ он назначеном дан. Видети напомену 5 у наставку.)
#	
# Важне напомене:
#
# 1. координисано универзално време (УТЦ) се често назива
# Као Гриничу (ГМТ). Време ГМТ скалом није
# Више не користи, а употреба ГМТ да одреде у УТЦ
# Обесхрабрени.
#
# 2. временска скала у УТЦ реализује многи национални 
# лабораторије и вријеме центара. svaka лабораторија
# Идентификује његову реализацију својим именом: Тако
# УТЦ (НИСТ), (УТЦ УСНО), итд Разлике међу
# Ови различити реализације су обично на
# Ред од неколико наносекунди (тј 0.000 000 00Кс и)
# И може да се игнорише за многе сврхе. ove разлике
# Су табеларно у Цирцулар Т, који је објављен месечно
# Од стране Међународног бироа за тегове и мере
# (БИПМ). Погледајте ввв.бипм.фр за више информација.
#
# 3. Садашњи ДЕФИНИЦИЈА односа између УТЦ 
# И Таи датира од 1. јануара 1972. године велики број различитих 
# временске скале су у употреби пре него епохе, а то може бити 
# Прилично тешко да се израчуна прецизне временске ознаке и време 
# интервали у тим праисторијских дана. За више информација,
# консултовати:
#
# У Експланаторном Допуна астрономских
# Ефемериде.
# или
# Тери Куинн БИПМ и тачно мјерење
# Времена, Проц. на ИЕЕЕ, Вол. 79, стр. 894-905,
# Јула, 1991.
#
# 4. убацивање преступне секунде у УТЦ је тренутно
# Одговорност Међународног Еартх Ротатион Сервице,
# Која се налази у опсерваторији у Паризу: 
#
# Централни завод за Иерс
# 61, авенуе де л'Обсерватоире
# 75014 Париз, Француска.
#
# Скок секунде су најавили Иерс у свом билтену Ц
#
# Сее хпиерс.обспм.фр или ввв.иерс.орг за више детаља.
#
# Све националне лабораторије и тајминг центри користити
# подаци из БИПМ и Иерс изградити и
# локалних реализације у УТЦ.
#
# Иако дефиниција укључује и могућност
# Напуштања секунди (негативна преступне секунде), ово је 
# Никада није урађено и мало је вероватно да ће бити потребно у 
# блиској будућности.
#
# 5. Ако је ваш систем настави пут као број секунди од
# Неки епоха (нпр, NTP временске ознаке), а затим алгоритам за
# Додели у УТЦ временску ознаку за догађај који се дешава током позитиван
# Преступна секунда није добро дефинисан. Званични назив тог скока
# Друга је 23:59:60, али не постоји начин приказивања тог времена 
# У овим системима. 
# Многи системи ове врсте ефикасно зауставити систем сат за 
# Једне секунде током преступне секунде и користе време које је еквивалент 
# До 23:59:59 УТЦ двапут. За ове системе, одговарајући Таи
# Време би се добила напредује на следећи унос у
# Следећој табели када је време еквивалент 23:59:59 УТЦ
# Се користи за други пут. Тако је преступна секунда која
# Догодио 30. јуна 1972. у 23:59:59 УТЦ ће имати Таи
# временске ознаке израчунате на следећи начин:
#
# ...
# 30 Јун 1972 23:59:59 (2287785599, први пут): Таи = УТЦ + 10 секунди
# 30 Јун 1972 23:59:60 (2287785599, други пут): Таи = УТЦ + 11 секунди
# 1 Jули 1972 00:00:00 (2287785600) Таи = УТЦ + 11 секунди
# ...
#
# Ако ваш систем остварује скок другу понављањем 00:00:00 УТЦ двапут
# (Ово је могуће, али није уобичајено), затим напредовање у следећи унос
# У табели мора доћи други пут да је време да се екуивлент 
# 00:00:00 УТЦ је користи. Тако, користећи исти пример као горе:
#
# ...
# 30 Јун 1972 23:59:59 (2287785599): Таи = УТЦ + 10 секунди
# 30 Јун 1972 23:59:60 (2287785600, први пут): Таи = УТЦ + 10 секунди
# 1 Jули 1972 00:00:00 (2287785600, други пут): Таи = УТЦ + 11 секунди
# ...
#
# У оба случаја је употреба тиместампс на основу ТАИ производи глатке
# Временска скала без дисконтинуитета у временском интервалу.
#
# Ова комплексност не би било потребно за негативне преступне секунде (ако су 
# Су икада користили). УТЦ-време ће прескочити 23:59:59 и напредовање из
# 23:59:58 да 00:00:00 у том случају. Таи оффсет би се смањила за
# 1 други у истом тренутку. Ово је много лакше ситуација да се баве
# Са, с обзиром на тешкоће у недвосмислено представља епоху 
# Током скока други не јављају.
#
# Питања и коментари на:
# Јуда Левин
# Време и фреквенција дивизија
# НИСТ-
# Боулдер, Цолорадо
# јлевине@боулдер.нист.гов
#
# Ласт упдате оф преступна секунда вредности: 8 Август 2008
#
# Следећи линија показује овај последњи датум ажурирања у NTP тиместамп 
# Формата. Ово је датум када је најновију промена
# Други подаци скок је додат у фајлу. Ова линија може
# Могу препознати по јединственом пар ликова у прва два 
# колоне као што је приказано у наставку.
#
# $ 3427142400
#
# NTP временске ознаке су у јединицама секунди од NTP епохе,
# Која је 1900.0. Модификована Јулиан Даи нумбер цорреспондинг
# На NTP време печат Кс, може да се израчуна као 
#
# Кс / 86400 + 15020
#
# Где је први термин претвара секунди до неколико дана и другом 
# Термин додаје МЈД одговара 1900.0. Целобројни део
# Резултата је цео број МЈД за тај дан, и било остатак
# Је доба дана, изражена као фракција дана од 0 
# сати УТЦ. Конверзија из дана фракције секундама или
# сати, минуте и секунде може да подразумева заокруживање или одсецање
# Зависно од методе која се користи за израчунавање.
#
# Подаци у овом фајлу ће бити ажуриран периодично као нови скок 
су најавили # секунди. Поред тога што је ушао на линији
# Горе, време ажурирања (у NTP формату) ће бити додат у основни 
# Филе наме скок-секунди да се формира име скок-секунди.
# Поред тога, генеричко име скок-сецондс.лист ће увек указују на 
# Најновија верзија датотеке.
#
# Ова Процедура за ажурирање ће се вршити само када нова преступна секунда
# Је најављено. 
#
# Следећи унос прецизира датум истека података
# У овом фајлу у јединицама секунди од 1900.0. Овај датум истека
# Ће се мењати најмање два пута годишње без обзира да ли је нови скок 
# Друга је најављено. Ови полу-годишње промене ће бити не
# Најкасније до 1. јуна и 1. децембра сваке године да укаже шта
# Акције (ако их има) треба да се узима 30. јуна и 31. децембра, 
# редом. (Ово су уобичајене ефективни датуми за ново
# Преступне секунде.) Овај датум истека ће бити идентификоване од стране
# Јединствен пар ликова у колони 1 и 2 као што је приказано у наставку.
# У случају да преступна секунда је најављено са неким 
# Датум ступања на снагу, осим 30. јуна или 31. децембра, онда ово
# Фајл ће бити измењено да укључи тај корак други чим је
# Објавио или бар месец дана пре ступања на снагу
# (Шта год је касније). 
# Ако најава од стране Иерс прецизира да ни скок друга је 
# Распореду, онда само датум истека датотеке ће 
# Се напредни да покажу да су информације у датотеци је још увек
# Струје - време ажурирање печат, подаци и име датотеке 
# Неће променити.
#
# Ажурирано кроз Иерс Буллетин Ц41
# Фајл истиче: 28 Дец 2011
#
# @ 3534019200
#
2272060800 10 # 1 Дец 1972
2287785600 11 # 1 Jул 1972
2303683200 12 # 1 Дец 1973
2335219200 13 # 1 Јул 1974
2366755200 14 # 1 Јул 1975
2398291200 15 # 1 Јун 1976
2429913600 16 # 1 Јул 1977
2461449600 17 # 1 Дец 1978
2492985600 18 # 1 Дец 1979
2524521600 19 # 1 Дец 1980
2571782400 20 # 1 Jул 1981
2603318400 21 # 1 Jул 1982
2634854400 22 # 1 Jул 1983
2698012800 23 # 1 Jул 1985
2776982400 24 # 1 Дец 1988
2840140800 25 # 1 Дец 1990
2871676800 26 # 1 Јул 1991
2918937600 27 # 1 Jул 1992
2950473600 28 # 1 Jул 1993
2982009600 29 # 1 Jул 1994
3029443200 30 # 1 Нов 1996
3076704000 31 # 1 Jул 1997
3124137600 32 # 1 Дец 1999
3345062400 33 # 1 Дец 2006
3439756800 34 # 1 Јул 2009
#
# Следеће посебан коментар садржи
# Хасх вредност података у овом фајлу израчунати
# Користи алгоритам сигуран хеш као што је наведено
# Од ФИПС 180-1. Погледајте фајлове у ~ / Сха по
# Детаље о томе како ова хасх вредност је
# Израчунато. Имајте на уму да хасх рачунање
# Игнорише коментаре и белине знакова
# У редовима података. Она обухвата вредности NTP
# Од обоје последњи пут измене и 
# Време истека датотеке, али не и
# Белог простора на тим линијама.
# Хасх линија је такође игнорише у
# Рачунање.
#
За # 465а56фc 6c72f658 f1фе29c8 ееc831а4 е19b5438