Algoritmul lui Cristian este o metodă de sincronizare a ceasurilor propusă de Flaviu Cristian în 1989. Algoritmul este utilizat în domeniul sistemelor distribuite și este potrivit mai ales pentru intraneturi cu latență redusă. Cristian a arătat că această metodă simplă are un caracter probabilistic: sincronizarea este obținută numai atunci când timpul dus-întors al cererii, cunoscut prin abrevierea RTT, este suficient de mic în raport cu precizia cerută. Implementările bazate pe un singur server au și o limitare de robustețe, ceea ce le face nepotrivite pentru numeroase aplicații distribuite în care redundanța este importantă.
Descriere Algoritmul lui Cristian se aplică între un proces P și un server de timp S, conectat la o sursă de referință temporală. Funcționarea de bază este următoarea:
P trimite către S o cerere pentru ora curentă, la momentul t0. După primirea cererii, S pregătește răspunsul și atașează valoarea T indicată de propriul ceas. P primește răspunsul la momentul t1 și își setează ceasul la valoarea T + RTT/2, unde RTT = t1 − t0.
Dacă timpul dus-întors este împărțit în mod egal între trimiterea cererii și primirea răspunsului, sincronizarea nu introduce eroare. În practică, această ipoteză nu este întotdeauna validă, deoarece comunicația poate fi afectată de factori imprevizibili. Un RTT mai mare indică de regulă interferențe, iar acestea pot fi asimetrice. Din acest motiv, decalajul și variația temporizării sunt reduse prin alegerea unor valori RTT adecvate dintr-un set de mai multe schimburi cerere-răspuns. Acceptarea unei valori RTT la un anumit moment depinde de deriva ceasului și de distribuția statistică a valorilor RTT. Aceste mărimi pot fi estimate în timpul procesului de sincronizare, ceea ce permite optimizarea adaptivă a metodei.
Note
Vezi și
, protocol mai vechi de sincronizare a timpului, care folosește portul 13 prin TCP sau UDP mecanisme mai vechi de sincronizare a timpului prin ICMP
International Atomic Time , colecție de calculatoare distribuite la nivel mondial care furnizează timp de mare precizie prin Network Time Protocol
, protocol mai vechi de sincronizare a timpului, care folosește portul 37 prin TCP sau UDP
Categorie:Algoritmi Categorie:Programare Categorie:Calcul distribuit Categorie:Sisteme de operare