Мрежен протокол за време

Од Википедија — слободната енциклопедија
Прејди на: содржини, барај

Мрежниот протокол за време (анг: Network Time Protocol – NTP) е протокол за синхронизирање на часовниците кај компјутерските системи преку податочните мрежи. Мрежниот протокол за време користи протокол на кориснички датаграми на влез 123 како негов транспортен слој. Овој протокол е дизајниран да ги издржи ефектите на варијаблите на латентност со користење на одреден бафер. Исто така се однесува за упатување на спроведувањето на програмот која се распределува од страна на проектот за јавни услуги на мрежниот протокол за време.

Мрежниот протокол за време еден од најстарите семрежни протоколи кој уште се користи. Мрежниот протокол за време бил дизајниран од страна на Дејв Милс од универзитетот Делавер, кој сеуште го одржува протоколот со тим од волунтери.

Мрежниот протокол за време го користи алгоритмот на Марзуло (Marzullo) кој содржи функции наречени скок секунди. Овој протокол обично може да го одржува времето до 10 милисекунди преку семрежјето и може да постигне прецисност до 200 микросекунди и дури подобри резултати под идеални услови во локалната мрежа.

Мрежниот протокол за време обезбедува Координирано универзално време (анг: Coordinated Universal Time - UTC). Нема инфотмации за временските зони, но има за заштедување на времето кој се пренесува. Оваа информација е надвор од нејзиниот опсег и мора да се добие посебно. Во изолираната локална мрежа, мрежниот протокол за време може да се користи за распределба во различен временски опсег.

Оперативните делати на мрежниот протокол за време се специфивирани во RFC 778, RFC 891, RFC 956, и RFC 1305. Моменталната референтната имплементација е верзијата 4 (NTPv4) [1] меѓутоа, почнувајки од 2005 година, само верзиите до 3 се документирани во RFC. Работната група [2] Семрежното инженерство ја стандардизира работата на заедницата на мрежниот протокол за време по објавувањето на RFC 1305. Помалку сложена имплементација на мрежниот протокол за време се прави со користење на истиот протокол без складирање на состојбата во одредено време, овој протокол е уште познат како Едноставен мрежен протокол за време (Simple Network Time Protocol - SNTP). Се користи во некои вградени уреди и во апликации каде точноста на тајмингот не е битен (RFC 1361, RFC 1769, RFC 2030, и RFC 4330).

Програмски спроведувања на мрежниот протокол за време[уреди]

Unix[уреди]

За модерните Unix системи, клиентот на мрежниот протокол за време се спроведува како демон процес кој работи постојано во корисничкиот простор (ntpd). Поради чувствиделноста на тајмингот важно е да се има стандардниот часовник на мрежниот протокол за време кој се спроведува во кернеловиот простор. Сите понови верзии на Linux, BSD, Mac OS X и Solaris се споредуваат на овој начин.

Microsoft Windows[уреди]

Сите верзии почнувајки од Windows 2000 во себе вклучуваат Windows временски сервис (Windows Time Service) [3] која има способност да ги синхронизира компјутерските часовници на серверот на мрежниот протокол за време. Иако верзијата Windows 2000 го користи Едноставниот мрежен протокол за време, исто така и не ги задоволува сите потреби на верзија 3 [4] на мрежниот временски протокол. Но со верзијата Windows Server 2003, Microsoft документацијата тврди дека Windows временскиот сервис го спроведува целиот мрежен [5] протокол за време на верзија 3 како што е наведено во RFC 1305.

Сепак, Windows временскиот сервис не може да го одржува системското време повеќе од 1 до 2 секунди. Microsoft не гарантира и не ја подржува точноста на услугата W32Time помежу јазлите во мрежата. W32Time услугата не е целосното решение на мрежниот протокол за време кое треба да ги задоволува потребите на апликацијата. [6] Повикувачкото спроведување на мрежниот временски протокол може да се користи во Microsoft Windows системите.[7]

Слоеви на часовникот[уреди]

жолтите стрелки ознашуваат директна врска: црвените стрелки означуваат мрежна конекција

Mрежниот протокол за време користи хиреархиски, полу-слоевит систем на нивото на изворот од часовниците.Секое ниво од ова хиреархија се нарекува стратум (stratum), на кој му е доделен број на слојот почнувајки од 0 (нула). Стратум нивото го дефинира растојанието од референтниот часовник и помага за спречување на цикличните зависности во хиреархијата.

Стратум 0
Во ова ниво спаѓаат уредите атомички часовниви, GPS часовници и радио часовници. Стратум 0 уредите не се приклучени во мрежата, наместо тие се локално конектирани со компјутери.
Стратум 1
Компјутерите се приклучени со Стратум 0 уредите. Обично тие служат како сервери за временските барања од Стратум 2 серверите на мрежниот протокол за време. Овие компјутери исто така се однесуваат и како сервери за време. Повеќето од Стратум 1 серверите (NTP v3 и поранешните верзии) можаат да не работат со голема прецизност. Како што се развива мрежниот протокол за време се помалку и помалку ќе можат да се користат Стратум 1 серверите, бидејќи протоколот автоматски ќе може да го намали нивото на слојот од еден на друг.
Стратум 2
Овие се компјутери кој праќаат NTP барања до серверите на Стратум 1. Обично, одреден компјутер од Стратум 2 ќе му биде прирачник на Стратум 1 серверите кој ќе го користи алгортимот на мрежниот протокол за време за да ги собери примероците од најважните податоци и ќе изостави ако има сервери од Стратум 1 кој не функционираат по потребите. Стратум 2 компјутерите се поврзуваат со други Стратум 2 компјутери за да обезбеди постабилно и рпбусно време за сите уреди во таа фрупа на компјутери. Стратум 2 компјутерите обично работаат како сервери за Стратум 3 барањата од мрежниот протокол за време.
Стратум 3
Овие функции ги користат истите NTP функции за поврзување на компјутерите и собирање на примероците од информациите како и кај Стратум 2. Можаат да работат и како серверви за понистките нивоа на Стратум, дури до 16-ти ниво на слоеви. Мрежниот протокол за време (во зависност од верзијата кој се користи) поддржува до 256 нивоа на Стратум слоеви.
Се претпоставува дека мрежниот протокол за време со верзија 5, кој што се уште е во фаза на развој, ќе содржи само 8 стратуми. Бидејќи повеќето од NTP клиенти ги користат Стратум 2 серверите, се очекува дека намалениот број на стратумите нема да влијае за корисниците на овој протокол.

Маркери за време кај NTP[уреди]

64 битните маркери се користат од страна на мрежниот протокол за време. Во кој, првиот дел се состои од 32 бита на секунди и вториот дел од 32 бита на фракциони секунди, кој му дава 232 секунди (136 години) и теоретска резолуција 2−32 секунди (233 пикосекунди) на NTP.

Маркерите за време кај NTP врши повторување на системот на секое 232 секунди (136 години). Ако препоставиме дека овој протокол почнало да функционира од 1 Јануари 1900 година, значи повторувањето треба да се вржи во 2036-та година.

Спроведувањата треба да помогнат за полесно разбиранње на точното време на мрежниот протокол за време со користење на информациите од други извори. Мрежниот протокол за време работи само за наоѓање на разликите помеѓу маркерите за времето, а не нивните апсолутни вредности и исто така ќе е невидлив се додека маркерите се меѓусебо поврзани за 68 години.

Ова значи дека тие можат да бидат невидливи на повеќето од работните системи бидејќи тие ќе го имаат точното време со многу мала толеранција. Сепак, системите кои почнуваат да го користат овој систем треба да знаат точно за времето за да не е повеќе од 68 години. Со оглед на дозволените големи грешки, не се очекуваат премногу големи услови. Еден од предложените методи е користење на часовници кој не ќе се наместени да работат пред датумот кој бил изграден системот. Повеќето системи користат часовници со батерии кој ќе го спречат овој проблем.

Исто така, новата верзија на мрежниот протокол за време може да содржи дури до 128 бита, кој привот дел од нив ќе има 64 бита за секунди и вториот дел 64 бита за фракциони секунди.

Според Милс, 64 битната вредност ќе е доволна на фракцијата за решавање на голем дел од проблемите со времето, кој користи фотон за да го постигне електронот со брзината на светлина. Исто така 64 битните секунди се доволни за да обезбедат време со билиони години. [8] Тоа математички може да се прикажи, 2−64 секунди се околу 54 зептосекунди и 264 секунди се околу 585 билиони години.

Загриженост за безбедноста[уреди]

Само неколку безбедносни проблеми се пронајдни во референтното спроведување во базата на кодирање на мрежниот протокол за време во својата 25+ годишна историја.

Самиот мрежен протокол за време е во процес на ревизија и преглед на својата историја каде никогаш не биле пријавени некои безбедносни проблеми со спецификациите на NTP.[9]

Веќе со години тековната база на кодови за референтното спроведување е во процес на ревизии од неколку извори. Каде исто така нема пропусти или проблеми со голем ризик на безбедност во објавениот софтвер.[10]

Наводи[уреди]

Надворешни врски[уреди]

  • NTP Public Services Project This is the home for the NTP (Network Time Protocol) Public Services Project which provides public support for the NTP Project and the IETF NTP Working Group. Also a Wiki with lists of NTP servers.