Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

RFC 867: Daytime Protocol

Date de publication du RFC : Mai 1983
Auteur(s) du RFC : J. Postel (University of Southern California (USC)/Information Sciences Institute)
Statut inconnu, probablement trop ancien
Première rédaction de cet article le 10 juillet 2012


Voici un RFC qui bat des records de concision. Il spécifie un protocole trivial, permettant d'obtenir l'heure d'une machine distante, et le fait en un seul paragraphe.

Le protocole daytime n'a plus un grand intérêt pratique aujourd'hui mais il a été longtemps un des outils de débogage les plus utilisés, pour vérifier la synchronisation temporelle d'une machine distante. Difficile de faire plus simple : le client daytime se connecte en TCP sur le port 13 et n'envoie rien. Le serveur envoie une ligne qui donne la date et l'heure chez lui.

Conçu pour être utilisé par des humains, le format de daytime n'est pas spécifié : n'importe quoi de lisible, en pur ASCII, conviendra (au contraire du protocole du RFC 868, conçu pour les machines, ou bien de normes ultérieures comme le RFC 3339).

Voici un exemple d'utilisation, avec telnet en client :

% telnet $REMOTESERVER daytime
Trying 192.168.2.26...
Connected to $REMOTESERVER.
Escape character is '^]'.
Tue, 10 Jul 2012 20:07:45 GMT
Connection closed by foreign host.

On trouve des serveurs daytime un peu partout, en général inclus dans les mises en œuvre d'inetd. Le serveur utilisé pour le test ci-dessus est en Node.js et son code est simplement :

var net = require('net');
 
net.createServer(function (stream) {
    var now = new Date();
    stream.write(now.toUTCString());
    stream.end('\r\n');
}).listen(13);

Il se lance avec :

# node daytime.js

On a vu que telnet suffit comme client daytime mais, sinon, n'importe quel programme qui se connecte au port 13 suffit (il existe, par exemple, un client daytime en C dans le contrib d'echoping, daytime.c).


Téléchargez le RFC 867

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)