Recherche-11 NTP (Network Time Protocol)

Télécharger au format doc, pdf ou txt
Télécharger au format doc, pdf ou txt
Vous êtes sur la page 1sur 5

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.

I- A quoi sert NTP


donner la meilleure prcision possible compte tenu des conditions matrielles rsister une multitude de pannes (y compris les bugs d'implmentation) optimiser l'utilisation de la diversit et de la redondance prsentes sur Internet organiser de manire automatique la topologie d'un sous-rseau afin d'avoir une prcision et une fiabilit optimales raliser l'authentification cryptographique base sur des infrastructures de clefs symtriques et de clefs publiques

2 - Architecture systme et rseau, NTP v3


NTP est un protocole bas sur les protocoles UDP et IP. C'est donc un protocole Internet bas sur l'adressage IP, en mode non connect avec User Datagram Protocol sur le port 123. La synchronisation de l'heure est diffuse depuis des serveurs primaires dans une arborescence en rseau. Prs de 200 000 clients et serveurs utilisent NTP sur internet.

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.1 - Rfrences de temps


Elles sont toutes drives plus ou moins directement d'horloges atomiques. On peut citer :
les horloges pilotes par des signaux radio mis par des metteurs spcialiss comme DCF77 en Allemagne les horloges pilotes par des metteurs de radio-diffusion publiques transmettant, en plus de leur programme, des informations horaires comme l'metteur TDF d'Allouis diffusant France-Inter les systmes de positionnement, comme le GPS, constituent d'excellentes sources de rfrence

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.

2.3 - Structure d'un rseau NTP


L'une des caractristiques principales d'un rseau NTP est sa structure pyramidale. Un certain nombre de sources de rfrence, dites primaires, synchronises par la radio ou un rseau filaire sur les standards nationaux, sont connectes des ressources largement accessibles, comme des passerelles de backbone et des serveurs de temps primaires. Le but de NTP est de transporter ces informations de temps de ces serveurs vers d'autres serveurs de temps relis Internet. Il vrifie aussi les horloges pour minimiser les erreurs dues aux problmes de propagation sur le rseau. Quelques machines ou passerelles des rseaux locaux, agissant en tant que serveurs de temps secondaires, font tourner NTP, en connexion avec un ou plusieurs serveurs primaires. Dans l'optique de rduire le trafic engendr par le protocole, les serveurs de temps secondaires distribuent le temps via NTP aux machines restantes sur le rseau local. Dans un souci de fiabilit, certaines machines peuvent tre quipes avec des horloges moins prcises, mais aussi moins chres, afin d'tre utilises pour des sauvegardes, en cas de dfaillance des serveurs de temps (primaires ou secondaires) ou des chemins rseaux. Pour rsumer : des rfrences de temps synchronisent des serveurs NTP qui leur sont directement raccords. Ceux-ci constituent la strate 1 et ils vont synchroniser chacun plusieurs dizaines d'autres serveurs qui vont constituer la strate 2 et ainsi de suite jusqu'aux clients terminaux. Ce principe permet de bien rpartir la charge des serveurs tout en conservant une distance aux sources de rfrence relativement faible. Relations entre serveurs NTP :

3 - Mcanismes de synchronisation

3.1 - Gestion des messages


Comme beaucoup de systmes distribus sur un rseau, les htes NTP (clients ou serveurs) utilisent des messages pour communiquer. Voici les champs contenus dans un paquet NTP :

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 .

L'change de messages conduisant la synchronisation suit la procdure suivante :


Le systme dsirant tre synchronis envoie d'abord un paquet dans lequel il initialise le champ Originate timestamp avec sa propre heure systme. Le serveur stocke ensuite l'heure de rception du paquet dans le champ Receive timestamp du mme paquet. Ensuite il effectue un contrle de validit du paquet pour s'assurer qu'il doit bien effectuer le traitement (vrification du stratum du client, authentification, ...). Avant de retourner le paquet l'expditeur, le champ Transmit timestamp est renseign avec l'heure courante du serveur. Le client enregistre l'heure de rception de la rponse afin de pouvoir estimer le temps de trajet du paquet. En supposant que les dlais de transmission des messages sont symtriques, le temps de trajet correspond la moiti du temps d'attente total moins le temps de traitement sur la machine distante. (NTP implmente un algorithme de Huff&Puff pour compenser les dlais de transmission asymtriques)

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.

3.2 - Traitements internes


Une fois la rponse du serveur obtenue, un ensemble d'algorithmes prend le relais afin de dterminer le dcalage de l'horloge locale avec le systme distant. On peut reprsenter la suite des traitements comme ci-dessous :

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.

4 - Les serveurs NTP d'Internet

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.

Vous aimerez peut-être aussi