Time Protocol

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Time protocol)
Time Protocol

Informations
Fonction Synchronisation des horloges
Sigle TP
Port 37
RFC RFC 868

Time Protocol (TP) est un protocole réseau visant à synchroniser les horloges de plusieurs systèmes informatiques sur un même réseau informatique.

Histoire[modifier | modifier le code]

Il est proposé en mai 1983 par Jon Postel et Ken Harrenstien (RFC 868[1] : Time Protocol), comme un standard pour le réseau Internet. Il devint obsolète avec l'arrivée de protocoles tels que Network Time Protocol (NTP, RFC 1305[2]), qui offrent une précision largement inférieure à la seconde.

Principe[modifier | modifier le code]

Très simple dans le principe et sa mise en œuvre, TP fonctionne aussi bien en mode connecté (avec TCP), qu'en non-connecté (UDP). Le mode de communication est typiquement celui du client-serveur, avec la demande de l'heure par le client au serveur et la réponse de ce dernier.

Le format de l'heure envoyée par le serveur est sous la forme d'un entier de 32 bits non-signé, représentant le nombre de secondes écoulées depuis le à minuit UTC. Le nombre de secondes possibles est donc de secondes, ce protocole est donc utilisable jusqu'en 2036.

Le serveur n'envoie aucune autre information additionnelle en plus du timestamp[3].

Transaction en TCP[modifier | modifier le code]

Voici le déroulement d'une transaction en TCP :

  1. serveur : écoute sur le port 37
  2. client : se connecte sur le port 37 du serveur
  3. serveur : envoie l'heure
  4. client : reçoit l'heure et ferme la connexion
  5. serveur : ferme la connexion

Si le serveur ne peut définir son heure, il refuse la connexion du client ou il ferme la connexion établie sans rien envoyer.

Transaction en UDP[modifier | modifier le code]

Voici le déroulement d'une transaction en UDP :

  1. serveur : écoute sur le port 37
  2. client : envoie un message vide sur le port 37 du serveur
  3. serveur : reçoit le message et envoie l'heure
  4. client : reçoit l'heure

Si le serveur ne peut définir son heure, il rejette le message du client.

Incohérence[modifier | modifier le code]

Il y a une incohérence dans la RFC. Il est dit que le protocole peut être utilisé jusqu'en 2036 et un exemple donne le nombre de secondes écoulées depuis au  :

"2,629,584,000 corresponds to 00:00 1 May 1983 GMT"

Cela ne peut être possible que si la valeur est représentée par un entier sur 32 bits non-signé.

Or, le dernier exemple :

"-1,297,728,000 corresponds to 00:00 17 Nov 1858 GMT"

dit que si la valeur est négative (ce qui est impossible avec un type non-signé), cela représente une date inférieure au . En prenant en compte cet exemple, on ne sait pas si l'heure est représentée sur 32 bits signé ou non.

Références[modifier | modifier le code]

  1. (en) « Time Protocol », Request for comments no 868,
  2. (en) « Network Time Protocol (Version 3) Specification, Implementation and Analysis », Request for comments no 1305,
  3. (en) Judah Levine, « The NIST Internet Time Service », dans Richard L. Sydnor (dir.), 25th Annual Precise Time and-Time Interval (PTTI) Applications and Planning Meeting, NASA Conference Publication 3267, actes d'un congrès à l'hôtel Ritz-Carlton de Marina Del Rey du 29 novembre au 2 décembre 1993, p. 505–514 [lire en ligne].

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]