SNTP (Simple network time protocol) : le protocole simple pour la synchronisation des heures système
L’expansion croissante des réseaux et des processus inter-systèmes a nécessité l’invention d’une solution uniforme et performante pour la synchronisation des heures système. Le Network Time Protocol (NTP) s’est imposé comme standard officiel. Il a notamment recours à différents algorithmes pour corriger les écarts et utilise le temps universel officiel comme heure de référence. La variante simplifiée, publiée en 1990 sous le nom de Simple network time protocol (SNTP), est due en premier lieu à la puissance de calcul encore très inégale des ordinateurs disponibles à l’époque. Dans le cas du SNTP, la puissance de calcul est en effet nettement moins mise à contribution pour la synchronisation qu’avec le protocole de base.
Le SNTP : qu’est-ce que c’est ?
Le Simple network time protocol (SNTP) est un protocole de synchronisation des heures appartenant à la suite des protocoles TCP/IP. Il est basé sur User Datagram Protocol (UDP) sans connexion et peut être utilisé sur tous les appareils supportant ce protocole pour la synchronisation des heures système dans les réseaux IP (IPv4 et IPv6). Ce protocole repose sur une structure client/serveur dans laquelle les différents clients acquièrent les informations temporelles à partir d’un serveur de temps sélectionné dans le même réseau. Des serveurs de temps de secours sont prévus dans l’hypothèse où ce serveur ne serait pas disponible. La première version du SNTP date de 1992 et est spécifiée dans la RFC 1361. Le protocole y est notamment décrit comme une version simplifiée du Network Time Protocol, le NTP, qui peut également être utilisée pour réajuster l’heure système dans les réseaux.
Après avoir subi différentes révisions, ce protocole développé par un groupe de travail de l’Université du Delaware en est aujourd’hui à sa quatrième version (SNTPv4). L’université a publié cette dernière version en 2006 dans la requête RFC 4330.
Le Simple network time protocol, abrégé en SNTP, est un protocole de la suite des protocoles Internet utilisé pour la synchronisation des heures système dans les réseaux. La version actuelle SNTPv4 supporte aussi bien les réseaux IPv4 que IPv6 et est décrite dans la RFC 4330. Pour ajuster l’heure, les clients SNTP ont recours à un serveur de temps préalablement sélectionné.
Comment fonctionne la synchronisation SNTP ?
À l’instar du NTP, le SNTP sert à synchroniser de façon simple les heures système de tous les appareils au sein d’un réseau. Pour y parvenir, le protocole s’appuie sur un modèle client/serveur et utilise l’heure universelle officielle (« Coordinated Universal Time ») comme heure de référence. Les serveurs de temps jouent alors un rôle de « répartiteur » de l’heure pour les clients SNTP, c’est-à-dire les appareils dont l’heure système doit être synchronisée à l’aide du Simple network time protocol. Les paquets IP utilisés à cet effet passent par le port UDP 123. La différence entre le SNTP et le NTP étant très faible, les serveurs NTP habituels sont souvent utilisés pour le processus de synchronisation.
La transmission des paquets peut aussi bien se dérouler à travers de simples connexions directes (unicast) entre un client et un serveur qu’à travers des connexions multipoints entre un serveur et plusieurs clients (broadcast et multicast).
Différence entre le SNTP et le NTP
Les différences entre le SNTP et le NTP portent principalement sur les deux points suivants :
- le nombre de serveurs utilisés pour le processus de synchronisation et,
- le nombre d’algorithmes utilisés pour comparer les écarts de temps et assurer ainsi des résultats aussi précis que possible.
La synchronisation SNTP est souvent basée uniquement sur un serveur de temps unique
Contrairement au protocole NTP, plus complexe, le Simple network time protocol place la simplification de l’interrogation serveur au premier plan. En pratique, la spécification SNTP recommande d’acquérir les informations temporelles d’un seul serveur tout en évitant, dans la mesure du possible, toute dépendance client/serveur supplémentaire. Par ailleurs, l’utilisation de SNTP côté serveur est uniquement prévue si aucune autre source de synchronisation n’est disponible. A contrario, la synchronisation via NTP repose sur un ensemble complexe de différents serveurs transmettant les informations dans un système de couches hiérarchiques. Les systèmes impliqués dans le processus peuvent alors être aussi bien client que serveur selon leur position dans la chaîne.
Le Simple network time protocol comporte un nombre moins important d’algorithmes
Le SNTP abandonne certains algorithmes prévus par défaut dans la spécification NTP. Ces algorithmes servent à compenser les écarts de l’heure système locale afin de toujours fournir la meilleure correspondance avec l’heure universelle. Par conséquent, le SNTP offre un degré de précision inférieur à celui du NTP et ne convient donc pas aux applications et processus nécessitant des valeurs temporelles particulièrement précises. Grâce à un nombre moins important d’algorithmes et à une communication client/serveur, la synchronisation SNTP nécessite toutefois des ressources nettement moins importantes, ce qui se révèle tout particulièrement avantageux pour les appareils simples ou les systèmes intégrés disposant d’une puissance de calcul inférieure.
En raison de la puissance de calcul fortement accrue des PC modernes courants, le protocole SNTP n’est plus utilisé pour la synchronisation des heures sur ce type d’appareils. Des protocoles plus complexes, comme le NTP, constituent ici la norme et peuvent être utilisés sans répercussion sensible sur la performance.