1981 - NTP (Network Time Protocol)
Par Vincaria le dimanche 22 mars 2009, - Logiciels - Lien permanent
En février 1981, David
Mills rédige la note IEN173 qui pose
les bases d'un protocole de synchronisation des horloges des ordinateurs du
réseau DCNET
(Réseau de recherche du département informatique de l'Université du
Delaware). Suivra rapidement, toujours en avril 1981, la RFC778 (DCNET
Internet Clock Service
), puis en septembre 1985, la RFC958 (Network Time
Protocol
).
Dès les années 1980, le besoin d'un mécanisme de synchronisation d'horloge
apparait, notamment pour les protocoles de routage. Mais les premières
implémentations ne permettent une synchronisation qu'avec une précision d'une
centaine de millisecondes. La mise en oeuvre d'un modèle Client-Serveur est
nécessaire pour un équipement souhaitant synchroniser son horloge sur un
serveur temps
.
S'appuyant sur la couche IP, NTP se positionne comme un protocole applicatif
basé sur la couche de transport UDP. Il a néanmoins été conçu pour ne pas subir
les délais de latence d'UDP, grâce à l'emploi d'un tampon de compensation des
latences (appelés aussi Jitter Buffer
). Il existe des logiciels client
NTP pour la plupart des systèmes d'exploitation et ils permettent de se
connecter à un serveur NTP (usuellement sur le port UDP 123) afin de récupérer
la date et l'heure avec laquelle se synchroniser.
En raison du nombre importants d'équipements (ordinateurs, routeurs, ...)
appelés à se synchroniser avec des serveurs NTP, un système en couches
hiérarchiques a été mis au point, chaque serveur de la couche N se
synchronisant avec un serveur de la couche N-1 (la couche 0 étant la plus haute
de la hiérarchie, la couche de référence). Cette hiérarchie évite par ailleurs
les problèmes de boucle dans la synchronisation des serveurs.
La composition de la hiérarchie NTP est composée comme suit :
- Couche 0 : il s'agit principalement de serveurs reliés par interface RS232 à des horloges atomiques, GPS ou Radio.
- Couche 1 : serveurs connectés à des serveurs de la couche 0, on les nommé souvent "serveurs temps"
- Couche 2 : serveurs connectés à des serveurs de la couche 1 qui auto-détectent toute défaillence d'un serveur de la couche 1 et se synchronisent aussi avec des serveurs de la même couche
- Couche 3 : serveurs connectés à des serveurs de la couche 2 qui peuvent supporter de 16 à 256 couches inférieurs (selon la version du protocole NTP)
NTP est l'un des plus vieux protocoles Internet encore en utilisation et
David Mills participe toujours
activement à ses évolutions.