Network Time Protocol - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Synchronisation des horloges

Les ordinateurs utilisent des horloges au quartz et elles ont la fâcheuse tendance à dériver au bout d'un certain temps, pour certaines de plusieurs secondes par jour et cela de façon totalement aléatoire.

Avec le développement des réseaux informatiques, la synchronisation des horloges des systèmes informatiques communicants entre eux est devenue nécessaire. Certains domaines ont absolument besoin d'avoir un temps de référence, on peut citer notamment :

  • le contrôle aérien ;
  • les échanges commerciaux ;
  • les transactions journalisées des bases de données ;
  • la diffusion de contenu multimédia en temps-réel, comme pour des vidéoconférences ;
  • etc.

Sans une bonne synchronisation des horloges de tous les systèmes communicants entre eux, certains services ne sont pas utilisables correctement. C'est ainsi que rapidement, il a été nécessaire de définir des méthodes permettant de synchroniser les horloges sur une heure de référence. Dans le cas de NTP, ce dernier utilise le temps universel coordonné (UTC).

Description détaillée du « fonctionnement NTP »

Le message de demande d'heure envoyé par un client vers un serveur et celui pour la réponse ont la même structure. Celle-ci est schématisée ci-dessous, elle correspond à la version 3 de NTP, mais le principe général décrit ci-dessous est conservé au fil des versions; les informations principales utilisées dans ce message pour calculer les écarts d'heure entre client et serveur sont les suivantes :

Structure du message NTP extrait de RFC 1305
  • OT : Originate Timestamp; heure de départ de la requête,
  • RT : Receive Timestamp; heure de réception de la requête,
  • TT : Transmit Timestamp; heure d'émission de la requête et/ou de la réponse.


Les autres informations contenues dans ce message sont utilisées à des fins de gestion; leur usage n'est pas détaillé dans cet article, on pourra se reporter à la RFC 1305 pour plus de détails.

  • LI  : indicateur d'insertion/retrait d'une seconde intercalaire la dernière minute du jour courant,
  • VN  : numéro de version,
  • Mode  : mode de fonctionnement,
  • Stratum  : stratum de l'horloge locale,
  • Poll  : intervalle minimum entre deux messages successifs,
  • Precision: précision de l'horloge locale.

Description du paradigme NTP « client/serveur »

La façon dont client et serveur gèrent ces informations est illustrée sur le schéma ci-dessous :

Illustration du paradigme « client/serveur NTP »
  • à T1, lorsque le client émet son message pour interroger le serveur sur l'heure courante, il envoie un message dans lequel il renseigne le champ TT avec l'heure courante T1 indiquée par son horloge locale ;
  • à T'1, lorsque le serveur reçoit le message, il complète aussitôt le champ RT du message avec l'heure courante T'1 indiquée par son horloge locale, et recopie le champ TT dans le champ OT ;
  • à T'2, lorsque le serveur émet son message de réponse, il complète le champ TT du message avec l'heure courante T'2 indiquée par son horloge locale ;
  • à T2, lorsque le client reçoit le message de réponse, il note aussitôt l'heure T2 de réception indiquée par son horloge locale.

Le client peut alors calculer le délai aller/retour δ de ces 2 messages ainsi que l'écart θ entre son horloge locale et celle du serveur :

délai δ aller/retour écart θ entre les horloges
Client \scriptstyle{(T2 - T1) - (T'2 - T'1)} \textstyle{\frac{(T'1 + T'2)}{2} - \frac{(T1 + T2)}{2}}
Serveur aucun calcul aucun calcul

Plus court est le délai δ, meilleure est la précision avec laquelle est connu l'écart θ entre les deux horloges.

Description du paradigme NTP « symétrique Actif / Passif »

Ce paradigme est proche du précédent avec la différence suivante : une fois la demande initiale émise, « serveur » et « client » échangent leur rôle tour à tour, la réponse de l'un devient une demande pour l'autre, c'est ce que montre l'image ci-dessous.

Illustration du paradigme NTP « symétrique Actif / Passif »

Chacun des nœuds « Actif » et « Passif » peut alors calculer le délai aller/retour des messages et l'écart entre son horloge locale et celle du nœud opposé :

délai δ aller/retour écart θ entre les horloges
Actif \scriptstyle{(T2 - T1) - (T'2 - T'1)} \textstyle{\frac{(T'1 + T'2)}{2} - \frac{(T1 + T2)}{2}}
Passif \scriptstyle{(T'3 - T'2) - (T3 - T2)} \textstyle{\frac{(T2 + T3)}{2} - \frac{(T'2 + T'3)}{2}}

Et de la même façon que précédemment, de façon symétrique pour chacun des deux nœuds, plus court est le délai δ et meilleure est la précision avec laquelle est connue l'écart <θ entre les deux horloges.

Description du paradigme NTP « broadcast »

Le nœud émetteur du message renseigne le champ TT avec l'heure courante T1 indiquée par son horloge locale. Le récepteur de ce message utilise cette heure comme heure locale en retranchant au préalable le délai estimé de transmission du message.

Page générée en 0.112 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise