Cunoștințe, prelegere, protocol de rețea de timp ntp

Variabilele partajate

Următoarele variabile sunt comune pentru două sau mai multe sisteme, parteneri și clase de pachete. Când trebuie să faceți o distincție între variabilele partajate cu nume identice, introduceți un identificator variabil.

Indicatorul de incrementare (sys.leap.peer.leap.pkt.leap) este un cod de avertizare pe două biți pentru includerea secundelor suplimentare în cronologia NTP. Acești biți sunt setați până la ora 23:59 și sunt resetați după ora 00:00 a doua zi. Ca rezultat, ziua pentru care se efectuează această procedură va fi mai lungă sau mai scurtă cu o secundă. Pentru servere secundare, acești biți sunt setați de protocolul NTP. Biții 0 și 1 (LI) iau valorile enumerate în Tabelul 7.1.

Tabelul 7.1. Valorile codurilor indicatorului LI

În toate cazurile, cu excepția alarmei (alarma = 112), protocolul NTP nu modifică în nici un fel acești biți, ci le transferă numai în programele de conversie în timp care nu fac parte din protocol. O situație de urgență apare atunci când, din orice motiv, ceasul local nu este sincronizat. Acest lucru se poate întâmpla în timpul inițializării sistemului sau în cazul în care ceasul primar nu este disponibil pentru o perioadă lungă de timp.

Modul (peer.mode, pkt.mode) este un număr întreg de 3 biți indicând codul modului de asociere, care poate lua valorile date în Tabelul 7.2.

Tabelul 7.2. Cod Values ​​Mode

Pentru comparație, valoarea zero pentru codul de strat este considerată mai mare decât orice altă valoare. Rețineți că valoarea maximă a întregului, codificată ca variabilă lot. este limitată de parametrul ntp .maxstratum.

Perioada de schimb (sys.poll, peer.hostpoll, peer.peerpoll, pkt.poll). Aceasta este o variabilă întreagă cu un semn care indică intervalul minim dintre mesajele transmise, măsurat în secunde și reprezentat ca o putere de 2. De exemplu, o valoare de 6 indică un interval minim de 64 de secunde.

Precizie (sys.precision, peer.precision, pkt.precision). Aceasta este o variabilă întreg cu semn care indică o precizie de ceas în secunde și exprimată ca cea mai apropiată putere de 2. Valoarea trebuie să fie rotunjită la cea mai apropiată putere de 2, de exemplu, o frecvență de rețea de 50 Hz (20 ms) sau 60 Hz (16,67 ms ) va fi atribuită o valoare de 5 (31,25 ms), în timp ce frecvența de cuarț 1000 Hz (1 ms) i se atribuie o valoare de -9 (1,95 ms).

Baza de întârziere (sys.rootdelay, peer.rootdelay, pkt.rootdelay). Acesta este un număr de punct fix cu un semn care indică valoarea întârzierii ciclice totale (RTT) la referința frecvenței primare, exprimată în secunde.

Varianță de bază (sys.rootdispersion, peer.rootdispersion, pkt.rootdispersion). Acest număr de punct fix este mai mare decât zero, indicând valoarea maximă a erorii de timp relativ la standardul primar în secunde.

Id-ul de referință de ceas (sys.refid, peer.refid, pkt.refid). Acesta este un cod pe 32 de biți care identifică un anumit ceas de referință. În cazul stratului 0 (nespecificat) sau stratul 1 (sursă de referință primară), este o ASCII -Row 4-octetului, aliniate de-a lungul marginii din stânga și completate cu zerouri necesare, de exemplu:

Tabelul 7.4. ID-uri de ceas

Referință timestamp-ul (sys.reftime, peer.reftime, pkt.reftime) - ora locală în formatul amprentei de timp corespunzătoare ultimei corecție de timp al ceasului. Dacă ceasul local nu a fost sincronizat, variabila conține zero.

Baza de timp de bază (peer.org, pkt.org) este ora locală în formatul timbrului, care corespunde momentului în care a fost trimis ultimul mesaj NTP. Dacă partenerul nu poate fi găsit, variabila are valoarea zero.

Baza de timp a primirii (peer.rec, pkt.rec) este ora locală în formatul timbru, care corespunde momentului sosirii ultimului mesaj NTP primit de la partener. Dacă partenerul nu poate fi găsit, variabila are valoarea zero.

Momentul de transmisie (peer.xmt, pkt.xmt) este ora locală în formatul timbrului de timp, corespunzător momentului de trimitere a mesajului NTP.

Variabile de sistem

Următoarele variabile sunt utilizate de sistemul de operare pentru a sincroniza ceasurile locale.

Un ceas local variabil (sys.clock) conține o indicație locală a ceasului în format timbru. Timpul local este obținut de la ceasul hardware al unui anumit computer și se incrementează discret cu creșteri specificate structural.

Variabila Ceas de bază (sys.peer) este un selector care identifică sursa de sincronizare utilizată. Acesta este, de obicei, un indicator pentru o structură care conține variabilele partenerului. O valoare de zero indică faptul că în prezent nu există nici o sursă de sincronizare.

Parteneri variabile

Mai jos sunt enumerate toate variabilele partenere care sunt utilizate pentru a gestiona și implementa procedurile de măsurare.

Bitul de configurare (peer.config) este un pic. Indicând faptul că asociația a fost creată pe baza informațiilor de configurare și nu ar trebui dizolvată atunci când partenerul devine indisponibil.

Actualizarea timerului (peer.update) - ora locală într-un format de timbru, marcând momentul în care a fost primit ultimul mesaj NTP. O variabilă este utilizată pentru a calcula varianța trecerii de timp.

Registrul de accesibilitate (peer.reach) este registrul de deplasare al biților de fereastră ntp. Utilizați pentru a determina starea de accesibilitate a partenerului. Introducerea datelor se face de la biții de ordin mic (dreapta). Un partener este considerat realizabil dacă cel puțin un bit al acestui registru este egal cu 1.

Timerul partener (peer.timer) este un numărător întreg. Folosit pentru a controla intervalul dintre mesajele NTP consecutive trimise. După setarea valorii contorului, conținutul său este redus cu 1 (1 sec) până când ajunge la zero. În acest caz, se solicită procedura de transfer. Rețineți că funcționarea acestui timer nu trebuie să depindă de ceasul local.

Lot variabile

Numărul versiunii (pkt.version) este un număr întreg. indicând numărul versiunii expeditorului. Mesajele NTP sunt întotdeauna trimise cu versiunea curentă a versiunii ntp. Vor fi acceptate numai dacă codurile versiunii (ntp .version) se potrivesc. Excepțiile sunt permise numai atunci când numărul versiunii este modificat.

Filtrul ceasului

Când se utilizează filtre și algoritmi de selecție, sunt implicate suplimentar următoarele variabile de stare.

Registrul de filtre (peer.filter) este registrul de deplasare al cascadelor ntp. schimbare. unde fiecare cascadă își amintește întârzierea măsurată, biasul și valorile de variație calculate corespunzând unei singure observații. Acești trei parametri sunt introduși din partea de comandă superioară și sunt trimiși către biți de ordin inferior (la dreapta). Când primiți noi rezultate de observație, rezultatele vechi sunt pierdute.

Contorul corect de date (peer.valid) este un numărător întreg. indicând eșantioanele corecte rămase în registrul filtrului. Acesta este folosit pentru a determina starea de disponibilitate și pentru a controla creșterea și scăderea perioadei de expediere a mesajului.

Offsetul (peer.offset) este un număr de punct fix cu un semn care indică deplasarea ceasului partenerului față de ceasul local în secunde.

număr de punct fix cu un semn care indică întârzierea ciclică completă (RTT) ore partener în raport cu ceasul local, în funcție de timpul de propagare a mesajului și răspunsul pe rețea în secunde - latența (peer.delay). Rețineți că variabila poate avea o valoare pozitivă sau negativă în funcție de precizia ceasului și de eroarea de compensare acumulată.

Dispersia (peer. Dispersia) este un număr de punct fix. Indică eroarea maximă a ceasului partenerului în raport cu ceasul local, luând în considerare întârzierea din rețea în secunde. Numai valori mai mari decât zero sunt permise.

Parametrii pentru toate implementările care funcționează pe Internet sunt descriși mai jos. Este necesar să se convină asupra valorilor acestor parametri pentru a elimina redundanța inutilă și pentru a stabiliza asociațiile partenere. Parametrii de mai sus se aplică tuturor asociațiilor.

Numărul versiunii (ntp .versiune) este numărul versiunii curente a NTP (3).

Portul NTP (ntp .port) este numărul de port standard (123) atribuit protocolului NTP.

Numărul maxim de strat (ntp .maxstratum) este numărul maxim al stratului care poate fi utilizat la codarea unei variabile de lot. Acest parametru este, de obicei, interpretat ca definirea infinitului (imposibilitatea de a atinge protocolul de rutare în subrețea).

Vârsta maximă a ceasului (ntp .maxage) este intervalul maxim în secunde în timpul căruia ceasul de referință va fi tratat ca fiind corect după ultima reconciliere.

Eroarea maximă (ntp .maxskew) este eroarea maximă de offset asociată cu defectarea ceasului local în timpul ntp .maxage, în secunde. Raportul ntp. Max la ntp .maxage este interpretat ca fiind eșecul maxim cauzat de întregul set de factori.

Distanța maximă (ntp.maxdistance) este distanța maximă admisibilă între parteneri atunci când se sincronizează folosind algoritmul de selecție.

Perioada minimă de distribuire (ntp .minpoll) este perioada minimă de distribuire, care este acceptabilă pentru oricare dintre partenerii de pe Internet. Această perioadă este exprimată în secunde și reprezintă o putere de 2.

Perioada maximă de trimitere (ntp .maxpoll) - perioada maximă de distribuire permisă pentru oricare dintre partenerii de pe Internet. Această perioadă este exprimată în secunde și reprezintă o putere de 2.

Minimul orelor selectate (ntp .minclock) este numărul minim de parteneri necesari pentru sincronizare (folosind algoritmul de selecție).

Numărul maxim de ore selectate> (ntp .maxclock) - numărul maxim de parteneri necesari pentru organizarea selecției (utilizând algoritmul de selectare).

Varianța minimă (ntp.) Nu reprezintă variația de variație minimă pentru fiecare strat în câteva secunde (folosind algoritmul de filtrare).

Varianța maximă (ntp Maxdisperse) este varianța maximă în secunde, luând în considerare datele pierdute (folosind algoritmul de filtrare).

Dimensiunea registrului de disponibilitate (ntp .window) este dimensiunea registrului de disponibilitate (peer.reach) în biți.

Dimensiunea filtrului (ntp .shift) - mărimea registrului de deplasare al filtrului de ceas (peer.filter) în cascade.

Greutatea filtrului (filtrul ntp.) Este greutatea. Se utilizează la calcularea dispersiei filtrului (utilizat la lucrul cu algoritmul de filtrare).

Greutatea selectată (selecția ntp) este greutatea. utilizat la calcularea varianței selectate (se aplică funcționării algoritmului de selecție).

Moduri de operare

Cu excepția modului de difuzare, asociația NTP este formată atunci când doi parteneri schimbă mesaje și unul sau ambii realizează și întreține o mașină de protocol numită asociere. Asocierea poate funcționa într-unul din cele 5 moduri specificate de variabila peer.mode. simetric activ. simetric pasiv. client. server și difuzare:

Activitate simetrică (1). Un computer care rulează în acest mod trimite periodic mesaje indiferent de disponibilitatea sau stratul partenerului. Când lucrați în acest mod, computerul vă informează despre intenția sa de a se sincroniza și a fi partener sincronizat.

Parțial simetric (2). Acest tip de asociere este inițial creat la sosirea unui mesaj de la un partener care operează într-un mod activ în mod simetric. Aceasta persistă până când partenerul este accesibil și funcționează într-un strat mai mic sau egal cu cel calculat. Altfel, asociația se dezintegrează. Totuși, asocierea va exista până când cel puțin un mesaj va fi trimis ca răspuns. Când lucrați în acest mod, computerul vă informează despre intenția sa de a se sincroniza și a fi partener sincronizat.

Client (3). Un computer care rulează în acest mod trimite periodic mesaje indiferent de disponibilitatea sau stratul partenerului. Când lucrați în acest mod, computerul (de obicei o stație de lucru de rețea) notifică despre intenția sa de a fi un partener sincronizat.

Serverul (4). Acest tip de asociere este inițial creat la sosirea solicitării clientului și există doar pentru a răspunde acestei solicitări. După răspuns, asociația este lichidată. Când lucrați în acest mod, computerul (de obicei un post de rețea de lucru) vă anunță intenția de a sincroniza partenerul.

Difuzarea (5). Un computer care rulează în acest mod trimite periodic mesaje indiferent de disponibilitatea sau nivelul partenerilor. Când lucrați în acest mod, computerul (de obicei un server de rețea de rețea care funcționează într-un mediu de difuzare) vă anunță intenția de a sincroniza toți partenerii.

În modurile simetrice, diferența dintre client și server dispare practic. Modul pasiv în mod simetric este destinat utilizării de către serverele temporare care rulează în apropierea nodurilor de bază (stratul inferior) al subrețelei de sincronizare și cu un număr relativ mare de parteneri. În acest mod, identificarea partenerului nu este necesară în avans, deoarece o asociere cu variabilele sale de stare este creată numai atunci când este recepționat un mesaj NTP. În plus, starea stocată poate fi utilizată mai târziu, când partenerul devine inaccesibil sau va funcționa la un nivel superior și din acest motiv nu va fi potrivit ca sursă de sincronizare.

Modul activ în mod simetric este destinat utilizării de către serverele de timp care funcționează în apropierea nodurilor terminale (cel mai înalt strat) de sincronizare. Un serviciu temporar fiabil poate fi implementat, de obicei, cu ajutorul a doi parteneri pe cel mai apropiat strat și unul în același strat. Din acest motiv, debitul mesajului este, de obicei, mic, chiar și atunci când conexiunea este pierdută și apare un răspuns de eroare pentru fiecare solicitare.

Într-o situație normală, un partener funcționează într-un mod activ (client activ sau difuzat simetric activ), configurat în fișierul de pornire, în timp ce alții lucrează în mod pasiv (pasiv sau simetric), adesea fără o configurație anterioară. Cu toate acestea, ambii parteneri pot fi configurați să funcționeze în mod simetric. Condiția de eroare apare atunci când ambii parteneri lucrează în același mod, dar nu în modul activ simetric. În astfel de cazuri, fiecare partener va ignora mesajele care provin de la celălalt și asociația. dacă ar exista, vor fi eliminate din cauza neatinsului partenerului.

Modul de difuzare este proiectat să funcționeze în rețele locale de mare viteză, cu un număr mare de stații de lucru, unde nu este necesară o mare precizie. Într-un scenariu tipic, una sau mai multe servere LAN temporare trimit periodic mesaje difuzate către stații de lucru care determină apoi timpul bazat pe o întârziere de propagare predeterminată, de ordinul mai multor milisecunde.

Manipularea evenimentelor

Evenimente semnificative din punctul de vedere al protocolului NTP apar atunci când expiră cronometrul, dintre care unul se concentrează în mod specific asupra partenerului în asociere activă, precum și atunci când primește mesaje NTP de la diverși parteneri. Un eveniment poate apărea ca urmare a unei comenzi a operatorului sau a unei erori detectate, cum ar fi o eșec al unei referințe primare.

Articole similare