Aller au contenu principal

Annexe B. Messages de Contrôle NTP

Cette annexe décrit le format de message de contrôle NTP, qui fournit un mécanisme pour surveiller et contrôler une implémentation NTP. Les messages de contrôle sont une fonctionnalité optionnelle et n'ont pas besoin d'être implémentés dans tous les cas. Lorsqu'ils sont implémentés, les messages de contrôle sont utilisés uniquement en mode client/serveur et ne sont pas appropriés en mode diffusion. Les messages de contrôle sont formatés comme des messages NTP standard avec le champ mode défini sur 6 (message de contrôle).

Les messages de contrôle fournissent un mécanisme simple de requête/réponse pour surveiller et contrôler une implémentation NTP. Ils sont principalement utilisés pour la gestion et la surveillance de l'implémentation NTP, fournissant un accès aux variables internes maintenues par la machine de protocole. Ces variables peuvent être examinées par des applications de gestion externes et, dans certains cas, modifiées. Les messages de contrôle fournissent un moyen d'examiner l'état et les performances de l'implémentation sans interférer avec le fonctionnement normal du protocole.

B.1. Format de Message de Contrôle NTP

Le message de contrôle NTP est formaté comme suit:

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|LI | VN | Mode |R|E|M| OpCode | Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Status | Association ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Offset | Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. Data .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key Identifier (optionnel) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Message Digest (optionnel) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Descriptions des Champs

Indicateur de Saut (LI): Il s'agit d'un code de deux bits avertissant d'une seconde intercalaire imminente, tel que défini dans le format de message NTP.

Numéro de Version (VN): Il s'agit d'un entier de trois bits indiquant le numéro de version NTP, actuellement 3.

Mode: Il s'agit d'un entier de trois bits indiquant le mode. Pour les messages de contrôle, ce champ est défini sur 6.

Bit de Réponse (R): Défini sur 0 pour une requête, 1 pour une réponse.

Bit d'Erreur (E): Défini sur 0 pour une réponse normale, 1 pour une réponse d'erreur.

Bit More (M): Défini sur 1 si plus de données suivent ce fragment, 0 pour le dernier fragment.

Code d'Opération (OpCode): Il s'agit d'un code de cinq bits spécifiant l'opération à effectuer:

ValeurOpération
0réservé
1lire l'état
2lire les variables
3écrire les variables
4lire les variables d'horloge
5écrire les variables d'horloge
6définir l'adresse de piège
7réponse de piège
8-31réservé

Séquence: Il s'agit d'un entier de 16 bits utilisé pour faire correspondre les requêtes avec les réponses.

État: Il s'agit d'un code de 16 bits indiquant l'état du système, du pair ou de l'horloge.

ID d'Association: Il s'agit d'un entier de 16 bits identifiant une association de pair particulière. La valeur 0 indique les variables système.

Décalage: Il s'agit d'un entier de 16 bits spécifiant le décalage du premier octet dans la zone de données.

Compteur: Il s'agit d'un entier de 16 bits spécifiant le nombre d'octets dans la zone de données.

Données: Ce champ de longueur variable contient les données de la requête ou de la réponse. Le format dépend du code d'opération.

Authentificateur (optionnel): Lorsque l'authentification est implémentée, ce champ contient l'identifiant de clé et le condensé de message définis dans l'Annexe C.

B.2. Mots d'État

Le champ d'état dans l'en-tête du message de contrôle contient un code de 16 bits fournissant des informations sur le système, le pair ou l'horloge. Le format dépend du type d'état rapporté.

B.2.1. Mot d'État Système

Le mot d'état système apparaît dans le champ d'état de la réponse à une commande de lecture d'état avec un identifiant d'association nul.

B.2.2. Mot d'État de Pair

Le mot d'état de pair apparaît dans le champ d'état de la réponse à une commande de lecture d'état avec un identifiant d'association non nul.

B.2.3. Mot d'État d'Horloge

Le mot d'état d'horloge apparaît dans le champ d'état de la réponse à une commande de lecture de variables d'horloge. Le format dépend de l'implémentation.

B.2.4. Mot d'État d'Erreur

Le mot d'état d'erreur apparaît dans le champ d'état d'une réponse d'erreur.

B.3. Commandes

Les commandes de message de contrôle fournissent un mécanisme pour lire et écrire les variables système, de pair et d'horloge. Les commandes suivantes sont définies:

Lire l'État: Cette commande renvoie le mot d'état du système (ID d'association = 0) ou d'un pair particulier (ID d'association != 0).

Lire les Variables: Cette commande renvoie les valeurs d'une ou plusieurs variables du système ou d'un pair particulier. Le champ de données contient une liste de noms de variables séparés par des virgules.

Écrire les Variables: Cette commande définit les valeurs d'une ou plusieurs variables. Le champ de données contient une liste de paires variable=valeur séparées par des virgules.

Lire les Variables d'Horloge: Cette commande renvoie les valeurs d'une ou plusieurs variables d'horloge de référence.

Écrire les Variables d'Horloge: Cette commande définit les valeurs d'une ou plusieurs variables d'horloge de référence.

Définir l'Adresse de Piège: Cette commande définit l'adresse du récepteur de piège. Lorsqu'un événement significatif se produit, l'implémentation envoie un message de réponse de piège non sollicité à l'adresse spécifiée.

Réponse de Piège: Il s'agit d'un message non sollicité envoyé au récepteur de piège lorsqu'un événement significatif se produit.

La fonctionnalité de message de contrôle fournit un mécanisme puissant pour surveiller et gérer une implémentation NTP. Cependant, elle doit être utilisée avec prudence pour éviter de perturber le fonctionnement normal du protocole ou de compromettre la sécurité.