NTP
Network Time Protocol (NTP) — сеткавы пратакол для сінхранізацыі ўнутранага гадзінніка камп’ютара з выкарыстоўваннем сетак са змяняльнай латэнтнасцю. Выкарыстоўваецца з 1985 г., адзін з найстарэйшых пратаколаў. Быў распрацаваны Дэвідам Мілзам (англ.: David L. Mills) з Дэлавэрскага ўніверсітэту. Стваральнік пратаколу дасюль удасканальвае і абслугоўвае яго разам з камандай добраахвотнікаў.
Апісанне
[правіць | правіць зыходнік]NTP аддае карыстальніку Ўніверсальны каардынаваны час з папраўкай на высакосную секунду. Інфармацыя пра часавыя паясы і пераход на летні час не перадаецца. Пратакол выкарыстоўвае алгарытм Марзула (англ.: Marzullo's algorithm), які дазваляе паменшыць уздзеянне змяняльнай латэнтнасці сеткі. NTP можа аддаваць час з хібнасцю ў дзесяць мілісекунд праз агульнадаступныя серверы Інтэрнэту, ці з хібнасцю да адной мілісекунды праз лакальныя сеткі ў ідэальных умовах.
Паводле стану на чэрвень 2010, дзейнае апісанне пратаколу NTP чацвёртай версіі (яна з'яўляецца цяперашнім прапанаваным стандартам) задакументаванае ў RFC5905. Існуе трэцяя версія, задакументаваная ў RFC1305.
Пратакол выкарыстоўвае UDP-порт 123.
Найпрасцейшая рэалізацыя гэтага пратаколу - SNTP (англ.: Simple Network Time Protocol) выкарыстоўваецца ва ўбудаваных сістэмах і тых праграмах, што не патрабуюць высокай дакладнасці.
NTP ужываецца для арганізацыі сервераў дакладнага часу, перадачы часу на камп'ютары лакальных сетак і г.д.
Часавыя пласты
[правіць | правіць зыходнік]![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Network_Time_Protocol_servers_and_clients.svg/220px-Network_Time_Protocol_servers_and_clients.svg.png)
NTP выкарыстоўвае іерархічную сістэму крыніц часу. Кожны ўзровень гэтай іерархіі называюць пластом (англ.: stratum) і нумаруюць ад нуля ўверсе. Варта адзначыць, што нумар пласта не з'яўляецца паказчыкам якасці — крыніца трэцяга пласта можа даваць дакладнейшы час за крыніцу другога ўзроўню. Пласты ўжываюцца для размеркавання нагрузкі на сетку.
Нулявы пласт (stratum 0) — гэта апаратная крыніца часу: эталонны атамны, квантавы, радыёгадзіннік, GPS-прыёмнік. Звычайна гэтыя прылады не далучаныя да Інтэрнэту, але звязаныя з лакальным камп'ютарам, напр., праз COM-порт і перадаюць PPS-сігналы для сінхранізацыі.
Першы пласт (stratum 1) — камп'ютар, які мае непасрэднае злучэнне з апаратным гадзіннікам. Ён з'яўляецца серверам часу, адказваючы на NTP-запыты ад камп'ютараў другога ўзроўню.
Камп'ютары ў startum 2 атрымліваюць інфармацыю праз NTP ад камп'ютараў пласта 1. Звычайна камп'ютары з пласта 2 звяртаюцца да некалькіх сервераў часу. Выкарыстоўваючы NTP-алгарытм, яны адкідаюць звесткі з відавочна няправільным часам (сервер, які не сінхранізуецца з крыніцай часу, мае статус stratum 16). Камп'ютары могуць параўноўваць свае значэнні часу з іншымі ЭВМ свайго пласта, каб атрымаць у выніку стабільныя звесткі. Да таго ж, камп'ютары з другога пласта з'яўляюцца серверамі часу для камп'ютараў з трэцяга пласта.
Трэці пласт (stratum 3) працуе гэтак жа, як і камп'ютары startum 2, але крыніца часу для іх — не stratum 1, а камп'ютары stratum 2. ЭВМ з трэцяга пласта могуць з'яўляцца серверамі часу для камп'ютараў з чацвёртага і г.д.
Прыклад ужывання NTP-сінхранізацыі
[правіць | правіць зыходнік]Ніжэй прыведзены просты bash-скрыпт для сінхранізацыі часу ў сістэме Linux. Выкарыстоўваецца праграма-дэман ntpd:
: /etc/init.d/ntp stop ntpdate -q by.pool.ntp.org ntpdate by.pool.ntp.org /etc/init.d/ntp start exit 0
Скрыпт спыняе ntp-кліент на камп'ютары, паказвае інфармацыю пра сервер, атрымлівае дакладны час і запускае ntp. Інфармацыя ад дэмана выглядае наступным чынам:
Stopping NTP server: ntpd. server 86.57.151.18, stratum 4, offset -0.012289, delay 0.08080 server 93.84.115.2, stratum 2, offset 0.017060, delay 0.12947 server 31.130.200.2, stratum 3, offset 0.021241, delay 0.13731 server 82.209.245.153, stratum 3, offset -0.002228, delay 0.08522 30 Sep 01:09:52 ntpdate[1021]: adjust time server 93.84.115.2 offset 0.017060 sec 30 Sep 01:09:59 ntpdate[1035]: adjust time server 93.84.115.2 offset 0.017371 sec Starting NTP server: ntpd.
Пасля спынення ntp-кліента, мы бачым інфармацыю пра крыніцы часу (чатыры серверы з рознымі IP і пластамі ад 2 да 4). Дэман ntpd абірае крыніцу stratum 2 са зрухам у 0,17 с ад часу на камп'ютары карыстальніка і затрымкай каля 0,13 с. У момант паказу інфармацыі ў камандным радку зрух часу складаў 0,01706 с, а ў момант сінхранізацыі — 0,017371 с.
Бяспека
[правіць | правіць зыходнік]Толькі некалькі праблем з бяспекаю пратаколу былі зафіксаваныя за яго шматгадовую гісторыю. NTP праглядаўся і аналізаваўся на працягу свайго існавання. Паводле стану на студзень 2011, пратакол не мае праблем з бяспекай. Справаздачы ад Каардынацыйнага Цэнтру CERT пра сур'ёзныя памылкі ў рэалізацыі пратаколу не зафіксаваныя. Актуальная праграмная рэалізацыя пратаколу рэгулярна зведвае аўдыт коду, які паказвае, што крытычныя памылкі, звязаныя з бяспекай, адсутнічаюць.