NTP est l'un des plus anciens protocoles d'Internet encore en service. Il fut conçu pour offrir une précision inférieure à la seconde dans la synchronisation des horloges et remplace à ce titre le Time protocol (TP, RFC 868), datant de mai 1983.
La version 3 de NTP est la plus aboutie à ce jour, elle spécifie plusieurs aspects :
La mise au point de ce protocole et des algorithmes ont été menés de pair avec le développement d'un logiciel conforme à ces spécifications. De ce fait, cette réalisation fait office de référence dans le domaine et est appelée logiciel NTP. Ces travaux ont été réalisés en grande partie par l'Université du Delaware sous la houlette du professeur David L. Mills.
Aussitôt après la parution de cette version 3 de NTP, une version simplifiée est apparue, appelée Simple Network Time Protocol (SNTP) qui a également fait l'objet de plusieurs RFC. Par rapport à NTP, cette version est simplifiée dans le sens qu'elle ne spécifie pas les algorithmes à mettre en place dans les machines.
date | version | RFC | description | statut |
---|---|---|---|---|
septembre 1985 | v0 | RFC 958 | C'est le professeur David L. Mills de l'Université du Delaware, qui en septembre 1985 proposa NTP (RFC 958), cette version est une version de développement, elle est à ce titre considérée comme une version 0. Mais le développement de NTP remonte à quelques années auparavant, avec une démonstration en 1979 à la National computer conference (NCC) et sa mise en application quelques années plus tard dans le routeur logiciel Fuzzball, via le protocole de routage HELLO (RFC 891). | rendu obsolète par RFC 1059 |
juillet 1988 | v1 | RFC 1059 | NTP a atteint la version 1 en juillet 1988 (RFC 1059). Dans cette première version stable, des filtres et des algorithmes de sélections sont ajoutés (RFC 956), ce qui offre une nette amélioration de la précision. | rendu obsolète par RFC 1119 |
octobre 1989 | v2 | RFC 1119 | En octobre 1989, NTP passa en version 2 (RFC 1119), avec notamment l'ajout d'une authentification par clé symétrique (utilisant DES-CBC). | rendu obsolète par RFC 1305 |
mars 1992 | v3 | RFC 1305 | En 1989, Digital Equipment Corporation (DEC) présenta un protocole de synchronisation concurrent, le Digital time synchronization service (DTSS). Selon la communauté développant NTP, le gros défaut de DTSS était que le protocole pouvait dans certains cas avoir une importante perte de précision, car il ne prenait pas en compte la fréquence des horloges. Alors que la communauté autour de DTSS pointait du doigt la mauvaise architecture des algorithmes de correction. C'est ainsi qu'après discussion, il fut décidé que NTP utiliserait l'algorithme de Marzullo, utilisé par DTSS. Cela aboutit au passage à la version 3 de NTP (RFC 1305), en mars 1992. Cette version ajoute également le mode broadcast, aux deux modes déjà existant (client-serveur et symétrique). | Draft Standard |
juin 2010 | v4 | RFC 5905 | Depuis 1994, une nouvelle révision du protocole est en cours. Cette version 4 est très utilisée. Les améliorations portent notamment sur :
Parallèlement à cela, des travaux sur un nouveau modèle d'horloge pour les noyaux des systèmes d'exploitation, ayant une précision de l'ordre de la nanoseconde, sont également en cours. | Proposed Standard |
date | version | RFC | description | statut |
---|---|---|---|---|
août 1992 | RFC 1361 | SNTP | rendu obsolète par RFC 1769 | |
mars 1995 | v3 | RFC 1769 | SNTP | rendu obsolète par RFC 4330 |
octobre 1996 | v4 | RFC 2030 | SNTP pour IPv4, IPv6 et OSI | rendu obsolète par RFC 4330 |
janvier 2006 | v4 | RFC 4330 | SNTP pour IPv4, IPv6 et OSI | Informational |
La spécification SNTP recommande de n'utiliser SNTP qu'aux extrémités d'un réseau NTP, c'est-à-dire au niveau stratum 1 (avec une seule source de synchronisation) et au niveau des nœuds de stratum le plus élevé.