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:
| Valeur | Opération |
|---|---|
| 0 | réservé |
| 1 | lire l'état |
| 2 | lire les variables |
| 3 | écrire les variables |
| 4 | lire les variables d'horloge |
| 5 | écrire les variables d'horloge |
| 6 | définir l'adresse de piège |
| 7 | réponse de piège |
| 8-31 | ré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é.