Algorithme de Cristian
L'algorithme de Cristian (introduit par Flaviu Cristian en 1989)[1] est une mĂ©thode de synchronisation d'horloges utilisable dans plusieurs domaines de lâinformatique, principalement dans les rĂ©seaux intranets Ă faible latence. Cristian a remarquĂ© que cet algorithme trĂšs simple est probabiliste, et nâeffectue correctement la synchronisation que si le round-trip time (RTT) de la requĂȘte est court par rapport Ă la prĂ©cision nĂ©cessaire. Il est Ă©galement limitĂ© par ses implĂ©mentations qui se basent sur un serveur unique, le rendant impropre Ă une utilisation dans les applications distribuĂ©es oĂč la redondance peut s'avĂ©rer critique.
L'algorithme
Il fonctionne entre un processus P et un serveur temporel S â connectĂ© Ă une source de temps UTC.
En résumé :
- P demande le temps Ă S
- Ă la rĂ©ception de cette requĂȘte, S prĂ©pare une rĂ©ponse et y ajoute le tempsT de sa propre horloge
- P rĂšgle alors son horloge comme T + RTT/2
P doit enregistrer le RTT de la requĂȘte qu'il a effectuĂ©e Ă S pour calculer le temps synchronisĂ©. On suppose que la durĂ©e d'aller/retour de la requĂȘte est identique entre la requĂȘte et la rĂ©ponse, ce qui n'est pas nĂ©cessairement le cas mais est une hypothĂšse raisonnable dans le cas d'un rĂ©seau local.
La prĂ©cision peut ĂȘtre amĂ©liorĂ©e en effectuant de nombreuses requĂȘtes et en utilisant le RTT minimal pour le calcul. La prĂ©cision peut alors ĂȘtre estimĂ©e de la maniĂšre suivante : Soit min la durĂ©e minimale pour transporter un message dans un sens. Le temps le plus tĂŽt auquel S aurait pu placer le temps T Ă©tait min aprĂšs que P a envoyĂ© sa requĂȘte. Par consĂ©quent, le temps de S, quand le message est reçu par P, est dans l'intervalle [(T + min) .. (T + RTT - min)]. Donc la prĂ©cision qui en dĂ©coule est (RTT/2) - min.
Références
- (en) F. Cristian, « Probabilistic clock synchronization », Distributed Computing, Springer, vol. 3, no 3,â , p. 146â158 (DOI 10.1007/BF01784024, lire en ligne)
- (en) Cet article est partiellement ou en totalitĂ© issu de lâarticle de WikipĂ©dia en anglais intitulĂ© « Cristian's algorithm » (voir la liste des auteurs).
Voir aussi
- Variance d'Allan
- Temps atomique international
- ntpd, OpenNTPD et Ntpdate (en)
- NTP Pool, une collection de serveurs de temps NTP du monde entier avec une haute précision
- Abus et mauvais usages des serveurs NTP (en)
- Serveur de temps
Autres algorithmes de synchronisation temporelle :