IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Maîtrisez le temps avec Delphi


précédentsommairesuivant

II. Les protocoles « réseau » utilisés par les serveurs de temps

Dans ce chapitre, je ne vais pas vous parler du fonctionnement de base des réseaux.
Pour avoir de plus en amples informations, je vous invite à visiter les sites suivants :

Cependant, afin que nous parlions le même langage, je vous donne une petite explication d'un protocole.
Un protocole, à l'instar des langues (français, anglais, etc.), est une convention permettant à deux ordinateurs de se comprendre. Les spécificités de chaque protocole sont définies dans les Request For Comments (RFC), assurant ainsi un standard international.
Vous trouverez les différentes Request For Comments sur les sites suivants :

Je vais vous présenter brièvement les différents protocoles en vigueur actuellement sur Internet.

II-A. Time Protocol

II-A-1. Présentation et fonctionnement

Le « Time Protocol » est conforme à la norme définie, en mai 1983, dans la Request For Comments n° 868 (RFC868).

On interroge un serveur de temps Time sur le port 37, et la réponse est envoyée aux formats UDP/IP ou TCP/IP.

Ce protocole est le plus simple à utiliser pour interroger un serveur de temps, mais il tombe en désuétude, car certaines informations importantes lui font défaut comme la gestion de l'heure d'été ou encore la fiabilité du serveur.

Il n'est plus, actuellement, utilisé que par environ 1 % des serveurs de temps. Le National Institute of Standards and Technology (NIST) propose, à ma connaissance, l'un des derniers serveurs de temps utilisant ce protocole : time.nist.gov.

II-A-2. Format de la valeur renvoyée

La valeur renvoyée par un serveur de temps Time est composée d'un nombre binaire 32 bits non formaté. Elle représente le temps en secondes UTC séparant la date du jour du 1er janvier 1900 à minuit.

Le format de la valeur renvoyée est défini au niveau du serveur et non au niveau du client, charge au client de créer ses propres routines de formatage de date et heure.

II-A-3. Utilisation de ce protocole dans Delphi

Ce protocole est notamment utilisé par ces composants standards de Delphi :

Palette

Composant

FastNet

TNMTime

TNMTime

Indy

TIdTime

TIdTime

Nota : La palette « FastNet » de Delphi 6 va disparaître avec Delphi 7.

II-B. DayTime Protocol

II-B-1. Présentation et fonctionnement

Le « DayTime Protocol » est conforme à la norme définie, en mai 1983, dans la Request For Comments n° 867 (RFC867).

On interroge un serveur de temps DayTime, en écoute sur le port 13, via le protocole TCP.

À la différence des serveurs Time du NIST (voir Time Protocol ci-dessus), l'heure renvoyée par un serveur DayTime est l'heure locale de l'endroit où il est installé. En effet, il est possible d'interroger le serveur américain time.nist.gov par le protocole DayTime, mais les valeurs renvoyées concerneront uniquement les États-Unis…

II-B-2. Format de la valeur renvoyée

La valeur renvoyée par un serveur DayTime est composée d'une série de champs « Date » et « Heure » au format ASCII anglais.

Il n'y a pas de syntaxe spécifique au protocole DayTime.

Cependant, il est recommandé de délimiter les champs par des caractères ASCII tels que la virgule, le point-virgule ou encore l'espace.

Le format de la valeur renvoyée est défini au niveau du serveur et non au niveau du client, charge au client de créer ses propres routines de formatage de date et heure.

Voici deux exemples de valeurs renvoyées par un serveur DayTime :

Exemple 1

Format

Weekday,Month Day,Year,Time-TimeZone

Valeur

Thursday,August 15,2002,12:30:47-PST

Exemple 2

Format

DD MMM YY HH:mm:ss ZZZ

Valeur

15 AUG 02 12:30:47 PST

II-B-3. Utilisation de ce protocole dans Delphi

Ce protocole est notamment utilisé par ces composants standards de Delphi :

Palette

Composant

FastNet

TNMDateTime

TNMDateTime

Indy

TIdDayTime

TIdDayTime

Nota : La palette « FastNet » de Delphi 6 va disparaître avec Delphi 7.

II-C. Network Time Protocol

II-C-1. Présentation et fonctionnement

Le « Network Time Protocol » est conforme à la norme définie, en mars 1992, dans la Request For Comments n° 1305 (RFC1305).

Ce protocole est le plus utilisé actuellement, car il fournit des informations plus complètes et plus fiables que les autres protocoles.

De nombreux systèmes d'exploitation fournissent des logiciels NTP en standard. Ces logiciels fonctionnent en tâche de fond et mettent à jour périodiquement l'horloge du poste « Client ».
Sur les gros systèmes et les serveurs, ces logiciels interrogent plusieurs serveurs de temps, ignorent les réponses qui lui semblent mauvaises et font la moyenne des bonnes réponses.
Sur les ordinateurs individuels, ces logiciels synchronisent l'horloge du poste « Client » en n'interrogeant qu'un seul serveur. Ce type de logiciel s'appelle « Logiciel SNTP » (Voir Simple Network Time Protocol ci-après).

On interroge un serveur de temps Network Time sur le port 123, et la réponse est envoyée sous la forme d'un paquet de données UDP/IP au format NTP.

Le « Network Time Protocol » est un protocole sophistiqué permettant la synchronisation permanente avec plusieurs serveurs. De plus, ce protocole prend en compte la correction du décalage provoqué par les délais de transmission des données et par la dérive des horloges locales.

Les serveurs NTP sont répartis en différentes couches numérotées (Strate). Le numéro indique l'éloignement sur le réseau entre le serveur concerné et son horloge de référence :

  • un serveur connecté à une horloge de référence est un serveur « Strate 1 » ;
  • un serveur synchronisé sur un serveur « Strate 1 » est un serveur « Strate 2 » ;
  • et ainsi de suite…
Les strates du protocole NTP

L'avantage de cette structure arborescente réside dans le fait que le trafic réseau des serveurs « Strate 1 » est déchargé sur les serveurs secondaires, « Strate 2 » et autres.

II-C-2. Format de la valeur renvoyée

Le paquet de données renvoyé inclut un horodateur 64 bits contenant le temps en secondes UTC séparant la date du jour du 1er janvier 1900 avec une résolution 200 picosecondes.

Le format de la valeur renvoyée est défini au niveau du serveur et non au niveau du client, charge au client de créer ses propres routines de formatage de date et heure.

II-C-3. Utilisation de ce protocole dans Delphi

Actuellement, le « Network Time Protocol » n'est pas utilisé sous sa forme normalisée dans Delphi.
Certains composants en utilisent la forme simplifiée : Le « Simple Network Time Protocol » que je vais vous présenter dès maintenant.

II-D. Simple Network Time Protocol

II-D-1. Présentation et fonctionnement

Le « Simple Network Time Protocol » est conforme à la norme définie, en octobre 1996, dans la Request For Comments n° 2030 (RFC2030).

C'est une version simplifiée du « Network Time Protocol », dépourvue des mécanismes de sélection.

Il est destiné à des utilisations où une précision de l'ordre de la seconde est suffisante.

Un client SNTP peut bien sûr se synchroniser sur un serveur NTP.

Bien qu'ayant plutôt été conçu pour implémenter des clients simples, SNTP permet également de mettre en œuvre des serveurs, mais ceux-ci doivent alors être synchronisés directement par une référence temporelle.

II-D-2. Format de la valeur renvoyée

Le paquet de données renvoyé inclut un horodateur 64 bits contenant le temps en secondes UTC séparant la date du jour du 1er janvier 1900 avec une résolution 200 picosecondes.

Le format de la valeur renvoyée est défini au niveau du serveur et non au niveau du client, charge au client de créer ses propres routines de formatage de date et heure.

II-D-3. Utilisation de ce protocole dans Delphi

Ce protocole est notamment utilisé par ce composant standard de Delphi :

Palette

Composant

Indy

TIdSNTP

TIdSNTP

Nous verrons l'utilisation de ces composants dans la suite du tutoriel.

Vous connaissez désormais les bases nécessaires permettant l'étude du fonctionnement de l'horloge de Windows. Rendez-vous au chapitre suivant… ;-)


précédentsommairesuivant

Copyright © 2003 Stéphane Vaillant. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.