# NTP

**NTP**(ing. Network Time Protocol) ― dəyişkən gecikmə şəbəkələrindən istifadə edərək kompüterin daxili saatını sinxronizasiya etmək üçün istifadə olunan bir şəbəkə protokolu. Protokol 1985-ci ildə Delaver Universitetinin professoru David L. Mills tərəfindən hazırlanmışdır. 2015-ci il versiyası NTPv4-dür.

Marzullo alqoritminə əsaslanan NTP, iş üçün UDP protokolundan istifadə edir və ötürmə vaxtını nəzərə alır. NTP sistemi ötürücü mühitdə gecikmə dəyişikliklərinə son dərəcə davamlıdır. 4-cü versiyada İnternet vasitəsilə işləyərkən 10 ms (1/100 s), yerli şəbəkələrin daxilində isə 0,2 ms (1/5000 s) və daha yaxşı nəticə əldə edə bilir.

Ən geniş tətbiq olunan NTP protokolu serverlərin dəqiq vaxt sinxronizasiyası üçündür. Microsoft Windows əməliyyat sistemi ailəsində bu W32Time-dır, Linux əməliyyat sistemi ailəsindəisə Ntpd demon və ya chronyd-dır.

Bu alqoritmin daha sadə tətbiqi SNTP, sadə bir şəbəkə vaxt protokolu olaraq bilinir. Yüksək dəqiqlik tələb etməyən əlaqədar sistemlərdə və cihazlarda, habelə dəqiq vaxt üçün istifadəçi proqramlarında istifadə olunur.

## Paketin quruluşu

Paketin quruluşu RFC 5905-də təsvir edilmişdir. Paket 32 bitlik sözlərin tam sayından ibarətdir. Başlıqdakı məlumatlar müxtəlif iş rejimləri üçün fərqlənəcəkdir. Məsələn, sahələrdə istifadəçi vaxt təbəqəsini, mənbə identifikatorunu, ilkin vaxtı və qəbul vaxtını sıfır yazmalıdır.

### Başlıq

NTP başlıq| *Giriş* | Oktet | 0 | 1 | 2 | 3 |
| --- | --- | --- | --- | --- | --- |
| Oktet | Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | 0 | DG | Versiya | Rejim | Vaxt təbəqəsi | Sorğu intervalı | Dəqiqlik |
| 4 | 32 | Gecikmə |
| 8 | 64 | Dispersiya |
| 12 | 96 | Mənbə göstəricisi |
| 16 | 128 | Yenilənmə vaxtı |
| 20 | 160 |
| 24 | 192 | Başlama vaxtı |
| 28 | 224 |
| 32 | 256 | Qəbul vaxtı |
| 36 | 288 |
| 40 | 320 | Ötürmə vaxtı |
| 44 | 352 |

#### Düzəltmə göstəricisi

NTP serverlər
Uzunluq — 2 bit, Leap Indicator-dan.
Koordinasiya xəbərdarlığının ikincisini göstərən tam ədəddir.

| Miqdar | Təsvir |
| --- | --- |
| 0 | Xəbərdarlıq yoxdur |
| 1 | Günün son dəqiqəsi 61 saniyəni əhatə edir |
| 2 | Günün son dəqiqəsi 59 saniyəni əhatə edir. |
| 3 | Məlum deyil (vaxt sinxronizasiya olunmur) |

#### Versiya nömrəsi

Uzunluq — 3 bit, Version Number-dan.
Rejimi təqdim edən tam ədəddir. Dəyərlər aşağıdakı cədvəldə verilmişdir.
#### Rejim

Uzunluq — 3 bit, Mode-dan.
Rejimi təmsil edən tam ədəddir. Dəyərlər aşağıdakı cədvəldə verilmişdir.

| Miqdar | Təsvir |
| --- | --- |
| 0 | Bronlanmış |
| 1 | Simmetrik aktiv rejim |
| 2 | Simmetrik passivrejim |
| 3 | İstifadəçi |
| 4 | Server |
| 5 | Yayım rejimi |
| 6 | Yoxlanış NTP məlumatı |
| 7 | Şəxsi istifadə üçün qorunur. |

#### Vaxt təbəqəsi

NTP idarəetmə protokolu proqramı
Uzunluq— 8 bit, Stratum-dan.
Vaxt qatını təmsil edən tam ədəd.

| Miqdar | Təsvir |
| --- | --- |
| 0 | Müəyyən edilməmiş və ya yolverilməzdir. |
| 1 | Birincili server |
| 2–15 | NTP-dən istifadə etmiş ikincili server |
| 16 | Sinxronizasiya edilməmişdir |
| 17–255 | Bronlaşdırılmışdır |

#### Sorğu intervalı

Uzunluq — 8 bit, Poll-dan.
Ardıcıl mesajlar arasında maksimum interval təmsil edən imzalı tam ədəddir. Dəyər saniyələrin ikili loqarifmidir. Minimum və maksimum sorğu üçün standart hədlər müvafiq olaraq 6 və 10-dur.
#### Dəqiqlik

Uzunluq — 8 bit, Precision-dan.
Sistem saatının düzgünlüyünü təmsil edən imzalı tam ədəddir. Dəyər saniyələrin ikili loqarifmidir. Məsələn, 18 dəyəri təxminən 1 μs dəqiqliyinə uyğun olardı.
#### Gecikmə

Uzunluq — 32 bit, Root Delay-dan
Qısa NTP formatında hər iki istiqamətdə siqnalın ümumi yayılma müddətidir.
#### Dispersiya

Uzunluq — 32 bit, Root Dispersion-dan.
Qısa NTP formatında vaxt mənbəyi üçün ümumi fərqdir.
#### Mənbə tanınması

Uzunluq — 32 bit, Reference ID-dan.
Sinxronizasiyanın mənbə kodudur. Zaman təbəqəsi sahəsindəki dəyərdən asılıdır.
"0" təbəqəsi üçün, bunlar "kiss code" adlanan dörd ASCII simvoldur, diskusiya və izləmə üçün istifadə olunur.
"1" təbəqəsi üçün, istinad nöqtəsinə təyin olunan, solda sıfırlar ilə doldurulmuş ASCII simvoldan ibarət dörd oktetdir.

| ID | Mənbə |
| --- | --- |
| GOES | Geostasionar peyk ətraf mühitin monitorinqi və nəzarət sistemi |
| GPS | Qlobal mövqe sistemi |
| GAL | "Qalio" yer tanıma sistemi |
| PPS | Bir saniyədə bir impuls müddəti olan ümumi bir radiosiqnal |
| IRIG | Telemetrik Standartlaşdırma Qrupu, ABŞ |
| WWVB | Aşağıtezlikli radioötürücü, 60 kHs, Fort Kollins, Kolorado, ABŞ |
| DCF | Aşağıtezlikli radioötürücü, 77.5 kHs, DCF77, Maynflinqen, FRQ |
| HBG | Aşağıtezlikli radioötürücü, 75 kHs, Parnqins, İsveçrə |
| MSF | Aşağıtezlikli radioötürücü, 60 kHs, Antxorn, Böyük Britaniya |
| JJY | Aşağıtezlikli radioötürücü, 40 kHs, Fukusima, 60 kHs, Saqa, Yaponiya |
| LORC | Ortatezlikli radioötürücü, 100 kHs, radionaviqasiya, LORAN-C |
| TDF | Ortatezlikli radioötürücü, 162 kHs, Allouis, Fransa |
| CHU | Yüksəktezlikli radioötürücü, Ottava, Ontario, Kanada |
| WWV | Yüksəktezlikli radioötürücü, Fort Kollinz, Kolorado, ABŞ |
| WWVH | Yüksəktezlikli radioötürücü, Kauai, Havai, ABŞ |
| NIST | Telefon modemi, ABŞ Milli Standartlar və Texnologiya İnstitutu |
| ACTS | Telefon modemi, ABŞ Milli Standartlar və Texnologiya İnstitutu |
| USNO | Telefon modemi, ABŞ Milli Rəsədxanası |
| PTB | Telefon modemi, ABŞ Milli Standartlar və Texnologiya İnstitutu |

"2 və daha yuxarı" təbəqə üçün, bu server identifikatorudur və vaxt boşluqlarını düzəltmək üçün istifadə edilə bilər. Əgər "IPv4" istifadə olunursa, identifikator özündə dörd oktet IP ünvan cəmləşdirir. Əgər "IPv6" istifadə olunursa, onda bu MD5 keş ünvanının dörd oktetidir. Qeyd etmək lazımdır ki, NTPv4 serveri və NTPv3 istifadəçisi üçün IPv6 ünvanını istifadə edən zaman, identifikator təsadüfi qiymət ala bilər, bu səbəbdən də vaxt döngələri qeydə alınmaya bilinər.
#### Yenilənmə vaxtı

Uzunluq — 64 bit, Reference Timestamp-dan
Sistemin son təyin etdiyi və ya tənzimləndiyi vaxtdır. NTP formatı.
#### Başlanğıc vaxtı

Uzunluq — 64 bit, Origin Timestamp-dan
Sorğunun serverə göndərildiyi zaman istifadəçi vaxtıdır.
#### Qəbul vaxtı

Uzunluq — 64 bit, Receive Timestamp-dan
Sorğunun serverə göndərildiyi zaman istifadəçi vaxtıdır. NTP formatı.
#### Göndərmə vaxtı

Uzunluq — 64 bit, Transmit Timestamp-dan
Sorğunun müştəriyə göndərildiyi zaman server vaxtıdır. NTP formatı.
### NTP-mesaj "Kiss-o'-Death"

Müəyyən olunmamış və ya etibarsız hesab olunan "0 səviyyə" üçün, KVS ID sahəsindən sistem statusu məlumatları və giriş nəzarəti rolunu oynayan mesajları çatdırmaq üçün istifadə edilə bilər. Bu cür mesajlara "Kiss-o'-Death" (KoD) deyilir və təqdim etdikləri ASCII məlumatları "kiss codes" ("yardım kodları") adlanır. Hazırda qəbul edilmiş "yardım" kodlarının siyahısı aşağıdakı cədvəldə verilmişdir.

KoD mesajlarını alanlardan onları yoxlamaq və aşağıdakı hərəkətləri etmək tələb olunur:

* "DENY" və "RSTR" kod birləşmələrini aldıqdan sonra istifadəçi zaman serverinə virtual bağlantıları bağlamalı və bu serverə mesaj göndərməyi dayandırmalıdır.
* "RATE" kod birləşməsini aldıqdan sonra istifadəçi dərhal bu server üçün sorğu intervalını azaltmalı və hər dəfə bu kod birləşməsi alındıqda azaltmağa davam etməlidir.
* Təcrübəli tədqiqat və sonrakı təkmilləşdirmələr üçün nəzərdə tutulmuş ASCII simvollu "X" ilə başlayan kod birləşməsini aldığı zaman tanınmadığı təqdirdə rədd edilməlidir.
* Bu protokolla müəyyən edilməmiş bütün digər kod birləşmələri və KoD mesajları təsdiqləndikdən sonra məhv edilir.

"Yardım" kodları| Kod | Təsvir |
| --- | --- |
| ACST | Bir ünvanlı server ilə virtual əlaqə quruldu |
| AUTH | Server identifikasiyası uğursuz oldu |
| AUTO | Autokey-ardıcıllıq səhvdir |
| BCST | Genişyayımlı server ilə virtual əlaqə quruldu |
| CRYP | Kriptoqrafik identifikasiya və ya identifikasiya uğursuz oldu |
| DENY | Məsafədən server girişi rədd etdi |
| DROP | Simmetrik rejimdə məsafədən vaxt serverini itirmək |
| RSTR | Yerli Təhlükəsizlik Strategiyası səbəbindən giriş rədd edildi |
| INIT | Virtual əlaqə ilk dəfədən qurulmadı |
| MCST | Virtual sinxron əlaqə dinamik olaraq aşkar edilmiş server tərəfindən qurulur |
| NKEY | Açar tapılmadı |
| RATE | Sürət həddini aşdı. İstifadəçi sürət həddini aşdığı üçün server müvəqqəti olaraq rədd edildi |
| RMOT | Birbaşa NTP protokolundan istifadə edərək məsafədən IP qovşaq virtual əlaqəni dəyişdirmək |
| STEP | Sistem vaxtını dəyişdirmək üçün təkrarlama baş verdi, virtual sinxron əlaqə qurulmadı |

## Vaxt təbəqəsi

NTP, təbəqə adlandırılan hər bir səviyyənin nömrələnmiş olduğu iyerarxik şəbəkədən istifadə edir. "1-ci təbəqə" — peyk, radio və ya telefon modemi vasitəsilə birbaşa milli vaxt xidmətləri ilə sinxronizasiya olunan ilkin serverlər. "2-ci təbəqə" — ikincili serverlər ilkin serverlərlə və b. ilə bir qayda olaraq sinxronizasiya olunur. Daha yüksək təbəqələrdə işləyən bir neçə yüz ictimai ikincili serverlər var. Onlara adətən daha çox üstünlük verirlər.

## Vaxt formatı

Sarı oxlar avadanlıq bağlantısını göstərir; qırmızı oxlar isə şəbəkə əlaqəsini göstərir
Vaxt NTP sistemində 64 bitlik rəqəmlər ilə təşkil olunur. Burada, 32 bitlik saniyə sayğacı və 32 bitlik ikincili saniyə sayğacı olur. Buda nəzəri dəqiqliyi 2−32 saniyə olmaqla, 232 saniyə aralığında vaxt ötürməyə imkan verir. NTP-də vaxt miqyası hər 232 saniyədə (136 il) təkrarlandığından, alıcı ən azı cari vaxtı (68 il dəqiqliyi ilə) bilməlidir. Həmçinin qeyd etmək lazımdır ki, vaxt 1970-ci ildən deyil, 1 yanvar 1900-cü ildən hesablanır, bunun üçün də NTP vaxtından 70 il çıxmaq lazımdır.

Vaxtın qısa formatı| Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0 | Saniyə | Saniyə kəsrləri |

Vaxtın qısa formatı| Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0 | Saniyə | Saniyə kəsrləri |

Tarixin formatı| Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0 | Era nömrəsi |
| 4 | Bir dövrün girişi |
| 8 | Kəsr |
| 12 |

## İstinadlar