Recherche-11 NTP (Network Time Protocol)
Recherche-11 NTP (Network Time Protocol)
Recherche-11 NTP (Network Time Protocol)
Introduction
En 1983, un premier protocole, le Time Protocole est ralis RFC 868. Il est rapidement popularis et repris sur les systmes Unix au travers du dmons timed et de la commande rdate. Cependant ses limites sont vite atteintes car, d'une part, il n'offre qu'une prcision de l'ordre de la seconde, et d'autre part, il n'implmente aucun mcanisme pour compenser la drive des horloges. Dans le mme temps, les toutes premires versions de NTP sont labores sous le nom d'Internet Clock Service. On voit cette implmentation utilise dans le protocole de routage HELLO. Cependant, la premire version de NTP proprement parl apparat en 1988 et ses spcifications sont relates dans le RFC 1059. Dans cette version sont dj prsents les modes de communication client/serveur et symtrique pour la distribution du temps. Un an plus tard (1989), apparat la deuxime version de NTP RFC 1119 qui introduit un aspect scuritaire car il permet de crypter les paquets de communication grce un algorithme de chiffrage cl secrte (DES-CBS). De son cot, la Digital Equipment Corporation (DEC) met au point le Digital Time Synchronisation Service (DTSS). Se basant alors sur les bonnes ides de ce dernier et sur NTPv2, une troisime version de NTP voit le jour en 1992 RFC 1305. C'est la plus utilise jusqu' ce jour. Depuis 1994, une nouvelle spcification de NTP est l'tude pour prendre en compte les changements de l'Internet comme le support d'IPv6 ou bien encore le chiffrement des paquets avec un systme cl publique. Bien que cette dernire spcification n'ai toujours pas t rendue publique, une implmentation de cette version est dj disponible. Pour le moment elle est trs peu rpandue bien qu'elle assure comme ses prdcesseurs une compatibilit ascendante. On la trouve surtout sur le rseau "DCnet Research Network" o son comportement est mis l'preuve. Bien videmment, chaque version de NTP a apport son lot d'amliorations quant l'efficacit des algorithmes afin d'obtenir une meilleure fiabilit et disponibilit du systme.
NTP a t port sur la plupart des plateformes dont Windows, Linux, Unix,... La version 3 de NTP, dont nous parlons ici, est utilise depuis 1992.
2.2 - Prcision
Le protocole NTP fournit diffrents niveaux de prcision :
de l'ordre d'une dizaine de millisecondes sur les rseaux WAN infrieure la milliseconde sur les rseaux LAN infrieure la microseconde lorsqu'on utilise une rfrence de temps de type GPS (sur les LAN)
L'architecture de NTPv4 permet d'atteindre une prcision 10 fois plus grande, de l'ordre de la microseconde sur les nouveaux rseaux plus performants.
3 - Mcanismes de synchronisation
La synchronisation d'un client ncessite plusieurs changes de messages afin d'amliorer chaque fois l'estimation du temps. Dans la pratique, il faut peu prs cinq minutes pour que l'horloge du systme devienne fiable. Une fois cette synchronisation effectue, le client pourra devenir son tour un systme de rfrence. De plus, plus le client change des messages avec ses serveurs de rfrence, plus il est capable de discerner, parmi eux, ceux qui amnent une certaine part d'erreur dans la dtermination du temps. Le cas chant, il peut dcider de ne plus faire appel ces systmes appels falsetickers .
Le client lui aussi vrifie la validit de la rponse pour savoir si elle doit tre prise en compte. Le systme client peut alors estimer le dcalage de son horloge avec le systme de rfrence.
Les premires tapes franchir servent assurer la scurit du protocole : Les filtres liminent les rponses non conformes aux attentes du protocole. L'algorithme de slection dtecte les donnes errones afin de lutter contre les comportements byzantins des serveurs.
Ensuite l'algorithme de combinaison compare les rponses des diffrents serveurs entres elles et avec les rponses prcdentes pour dterminer le mieux possible le dcalage de l'horloge locale. Enfin l'algorithme de contrle de l'horloge utilisera les mthodes qui sont sa disposition pour recaler l'horloge.
Il existe beaucoup de serveur NTP publique disponible sur Internet, cependant, il y a un regroupement de serveur que vous pouvez retrouver l'adresse suivante : http://ntp.vuntz.net/ Le principe est de se synchroniser vis vis d'un serveur de temps de rfrence. Pour rsoudre la problmatique de charge sur ce serveur de temps, un groupement de serveur lieu et la redistribution se fait l'aide du Round Robin DNS. Vous pouvez requter plusieurs noms d'htes diffrent :
pool.ntp.org 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
Pour obtenir une meilleur prcision, vous pouvez aussi spcifier le pays o vous dsirez prendre le temps de rfrence, comme par exemple la France qui vous garantira un temps de rponse plus rapide et plus pertinent. Pour cela, vous rajoutez fr comme cela :
fr.pool.ntp.org 0.fr.pool.ntp.org 1.fr.pool.ntp.org 2.fr.pool.ntp.org 3.fr.pool.ntp.org
Conclusion
Le protocole NTP est le plus utilis travers le monde pour la synchronisation des machines. Son succs est du sa facilit de mise en place, sa haute fiabilit ainsi qu' l'exprience des chercheurs qui travaillent sur le projet depuis plus de vingt ans. La quatrime version du protocole permettra encore plus de fiabilit et de prcision dans la dtermination du temps. Mais la version actuellement utilise en fait dj un protocole incontournable que tout bon informaticien devrait connatre.