Aller au contenu principal

Annexe D. Différences par Rapport aux Versions Précédentes

Cette annexe résume les différences entre NTP Version 3 et les versions précédentes (Version 2 et Version 1). Les modifications ont été apportées pour améliorer la précision, la stabilité et la fiabilité, ainsi que pour clarifier les ambiguïtés dans la spécification. La plupart des modifications sont des améliorations et des améliorations qui n'affectent pas l'interopérabilité avec les versions précédentes.

Modifications de la Version 3 par Rapport à la Version 2

1. Algorithme d'Horloge Locale

L'algorithme d'horloge locale a été complètement repensé pour améliorer la stabilité et la précision. Le nouvel algorithme utilise une conception de boucle à verrouillage de phase (PLL) avec contrôle de bande passante adaptatif. Les changements clés incluent:

  • Compensation de fréquence améliorée qui peut suivre la dérive de l'oscillateur plus précisément
  • Constante de temps adaptative qui s'ajuste automatiquement en fonction des conditions réseau
  • Logique de seuil pas/ajustement améliorée pour mieux gérer les corrections importantes
  • Temporisateur watchdog pour empêcher les données de décalage obsolètes d'affecter l'horloge

Le nouvel algorithme est décrit en détail dans la Section 5 et l'Annexe G. Les implémentations sont fortement encouragées à adopter le nouvel algorithme, bien que l'ancien algorithme reste compatible.

2. Algorithme de Combinaison d'Horloge

Un nouvel algorithme optionnel pour combiner les décalages de plusieurs pairs a été ajouté (Annexe F). Cet algorithme:

  • Utilise une moyenne pondérée basée sur la distance de synchronisation
  • Améliore la précision lorsque plusieurs pairs sont disponibles
  • Réduit l'impact des valeurs aberrantes et des chemins asymétriques
  • Est basé sur des techniques utilisées par les laboratoires de normes nationales

L'algorithme de combinaison d'horloge est optionnel et n'affecte pas l'interopérabilité.

3. Améliorations du Budget d'Erreur

La façon dont le délai, le décalage et la dispersion sont calculés a été affinée:

  • Le calcul de dispersion inclut maintenant tous les composants d'erreur (erreur de mesure, accumulation de biais, dispersion de filtre)
  • Le calcul de délai est simplifié en déplaçant les termes d'erreur vers la dispersion
  • La distance de synchronisation tient maintenant correctement compte de toutes les sources d'erreur
  • Les limites d'erreur peuvent être formellement prouvées sous des hypothèses énoncées (voir Annexe H)

Ces changements fournissent une base plus rigoureuse pour les assertions de correction mais n'affectent pas significativement l'opération normale.

4. Algorithme de Sélection d'Horloge

La procédure de sélection d'horloge a été modifiée pour améliorer la fiabilité:

  • L'algorithme d'intersection adopté du Service de Temps Numérique (DTS) remplace l'étape de tri précédente
  • L'algorithme de regroupement a été affiné pour mieux gérer plusieurs candidats
  • La détection de faux chronométreurs a été améliorée en utilisant l'algorithme de Marzullo
  • La sélection des survivants considère maintenant à la fois la strate et la distance de synchronisation

Le nouvel algorithme est plus robuste dans la détection et le rejet des horloges défaillantes tout en maintenant la compatibilité avec les versions précédentes.

5. Algorithme de Filtre d'Horloge

Améliorations mineures de l'algorithme de filtre d'horloge:

  • Le calcul de dispersion de filtre a été amélioré pour mieux représenter la variance d'échantillon
  • La gestion du registre à décalage a été affinée pour de meilleures performances
  • Le vieillissement de la dispersion tient maintenant correctement compte du temps écoulé depuis la dernière mise à jour
  • Le plafonnement de dispersion maximale empêche le débordement numérique

6. Gestion des Secondes Intercalaires

Améliorations de la gestion des secondes intercalaires:

  • Les bits d'indicateur de saut sont maintenant correctement propagés à travers le sous-réseau de synchronisation
  • La procédure d'horloge locale a été améliorée pour gérer correctement les minutes de 61 et 59 secondes
  • L'intervalle de pas minimum a été ajouté pour empêcher les changements de pas prématurés pendant les événements de saut
  • Les tables de secondes intercalaires peuvent être mises à jour sans modifications de code

7. Gestion de l'Intervalle de Sondage

La gestion de l'intervalle de sondage a été affinée:

  • Sondage adaptatif basé sur la conformité et la stabilité de l'horloge locale
  • Intervalles de sondage minimum et maximum maintenant configurables
  • Plafonnement de l'intervalle de sondage pour la source de synchronisation sélectionnée
  • Hystérésis pour empêcher les changements rapides d'intervalle de sondage

8. Modifications des Variables d'État

Plusieurs variables d'état ont été ajoutées ou modifiées:

  • Le compteur peer.valid a été ajouté pour suivre les échantillons valides
  • L'horodatage peer.update a été ajouté pour le vieillissement de la dispersion
  • sys.poll a été ajouté pour contrôler le comportement de sondage à l'échelle du système
  • Divers paramètres ont été renommés ou réorganisés pour plus de clarté

9. Format de Paquet

Le format de paquet reste identique à la Version 2, avec une exception:

  • L'interprétation du champ d'identifiant de référence a été clarifiée pour les strates 0 et 1
  • L'interprétation du champ de précision a été affinée
  • Le champ d'intervalle de sondage est maintenant interprété de manière cohérente comme une puissance de deux

10. Authentification

Le mécanisme d'authentification reste inchangé par rapport à la Version 2, mais:

  • Les procédures de gestion des clés ont été clarifiées
  • Les considérations de performance ont été documentées
  • L'interaction avec les procédures d'horloge a été spécifiée plus précisément

Modifications de la Version 2 par Rapport à la Version 1

Pour l'exhaustivité, les changements majeurs de la Version 1 à la Version 2 sont résumés:

1. Format de Paquet

  • Le champ de strate a été étendu de 2 à 8 bits
  • Le champ de précision a été ajouté pour indiquer la précision de l'horloge
  • Les champs de délai racine et dispersion racine ont été ajoutés
  • Le champ d'identifiant de référence a été modifié pour prendre en charge les chaînes ASCII

2. Algorithme de Synchronisation

  • L'algorithme de sélection de pair a été affiné pour utiliser la strate et la distance de synchronisation
  • Le mécanisme de disponibilité a été ajouté pour détecter les défaillances de connectivité
  • L'algorithme de filtre d'horloge a été ajouté pour lisser les échantillons

3. Horloge Locale

  • Le registre de conformité a été ajouté pour suivre la stabilité de l'horloge locale
  • La compensation de fréquence a été améliorée
  • Les ajustements de phase graduels ont été affinés

4. Modes de Fonctionnement

  • Le mode diffusion a été ajouté pour les environnements LAN
  • La distinction client/serveur a été clarifiée
  • Les modes symétriques ont été affinés

5. Messages de Contrôle

  • La fonctionnalité de message de contrôle optionnelle a été ajoutée (Annexe B)

Considérations d'Interopérabilité

NTP Version 3 est conçu pour interopérer avec les versions précédentes:

  • Les implémentations de Version 2 et Version 3 peuvent interopérer sans restrictions
  • Les implémentations de Version 1 peuvent interopérer mais peuvent ne pas atteindre la même précision
  • Les réseaux mixtes fonctionneront correctement, les implémentations de Version 3 bénéficiant des nouveaux algorithmes

Directives de Compatibilité

  1. Le champ de version doit être défini sur 3 dans les messages transmis
  2. Les messages avec version 2 doivent être acceptés et traités normalement
  3. Les messages avec version 1 doivent être acceptés avec une fonctionnalité réduite
  4. Les messages de contrôle ne doivent être envoyés qu'aux pairs connus pour les prendre en charge

Chemin de Mise à Niveau

Les organisations peuvent passer à la Version 3 de manière incrémentielle:

  1. Les serveurs primaires doivent être mis à niveau en premier pour profiter des algorithmes améliorés
  2. Les serveurs secondaires peuvent être mis à niveau selon les besoins
  3. Les clients peuvent être mis à niveau en dernier, car ils bénéficient de la précision améliorée des serveurs
  4. Les versions mixtes peuvent coexister indéfiniment sans problèmes

Notes d'Implémentation

Les implémentations devraient:

  • Adopter les nouveaux algorithmes dans la mesure du possible pour améliorer les performances
  • Maintenir la compatibilité avec les versions précédentes
  • Documenter les extensions au protocole standard
  • Fournir des options de configuration pour activer/désactiver les fonctionnalités optionnelles
  • Tester l'interopérabilité avec les implémentations existantes

Les changements de la Version 3 représentent l'expérience accumulée de plusieurs années d'exploitation sur Internet. Ils fournissent des améliorations significatives en termes de précision, de stabilité et de fiabilité tout en maintenant une compatibilité ascendante complète.