Forum Linux.général Le protocole NTP

Posté par  .
Étiquettes : aucune
0
15
mar.
2006
Bonjour, j'utilise le protocole NTP pour synchroniser l'horloge de mon PC à partir d'une horloge de référence (via un serveur de strate 2). Bon tout fonctionne correctement seulement, j'ai un petit problème de compréhension. Je préviens, j'ai lu les docs de NTP avant, et recherché sous google mais quelques points restent obscurs. Peut être y a t'il un spécialiste de ce protocole parmi vous. J'aimerai donc engager une petite discussion sur ce protocole...

Donc voilà ce que je comprends du protocole NTP.
Notre horloge de notre PC a fortement tendance à dériver c'est à dire à gagner des secondes ou a en perdre. NTP se propose de corriger celà. Pour cela, on définit un serveur NTP (en général de strate 2) qui va se synchroniser sur un serveur NTP de strate 1 qui lui est synchronisé sur une horloge de référence précise (genre GPS, horloge atomique etc...).
Donc en gros, chaque serveur NTP se synchronise avec le serveur qui est au dessus de lui, et synchronise les serveurs en dessous de lui.
Le problème vient du comment il fait?
J'ai compris que la machine désirant se synchroniser (client NTP) envoie un paquet NTP au serveur, qui lui lui réponds. A partir de celà, on a la différence entre le temps du serveur et le temps du client et c'est là que NTP rentre vraiment en jeu. A partir de cette différence, il va faire ralentir ou accélérer la fréquence de l'horoge du PC pour converger vers le bon temps.
Ca, je pense que j'ai compris mais c'est vraiment la base de la base... est ce que quelqu'un sait comment il calcule la correction de fréquence, quel est le temps moyen de convergence de l'horloge, quel est l'influence du jitter réseau, quel précision peut on attendre avec NTP et surtout, comment voit t'on cette précision???
Si je demande ça en gros, c'est que ça fait parti de mon stage, alors oui, je peux faire mes tests avec mes ptites mimines, mais à raison d'une journée par test en gros car c'est très long à mettre en place, c'est pas évident. De plus, je dois juste indiquer quelle est l'influence des différents paramêtres cités plus haut, pas forcemment mettre en place un truc précis de test donc je me disais que quelqu'un avait peut être les infos car là, je suis un peu perdu.
Voilà, j'espère avoir posté dans la bonne section, merci d'avance
  • # Quelques réponses :

    Posté par  . Évalué à 2.

    • [^] # Re: Quelques réponses :

      Posté par  . Évalué à 1.

      Pour le premie lien, n'avais-je pas précisé que j'avais cherché sous google... enfin bref, je suppose que ça doit être un message de bienvenue. Le deuxième, je l'ai déja lu, et il ne dit absolument rien de concret, vulgarise bien mais c'est tout. Le troisième, c'est la FAQ que j'ai lu attentivement, et qui explique bien comment installé, comment NTP fonctionne (du point de vue informatique, comment fonctionne le démon etc...) mais ne dit pas précisément comment fait NTP pour fonctionner. Enfin si mais ne répond pas clairement aux questions posées ci-dessus, ou alors je n'arrive pas à comprendre.
      Quel précision attendre de NTP? Comment voir la précision sur une machine synchronisée par NTP? Quels est l'impact de la jigue réseau sur la stabilité de NTP, exemple, le délai pour aller au serveur fluctue énormément? Est ce que le but de NTP au final est t'il simplement de calculer la dérive de la fréquence et de l'appliquer toutes les secondes à l'horloge interne, et de recalculer cette dérive selon un intervalle de temps?
      Toutes ces questions qui je trouve n'ont pas clairement de réponse dans ce document....
      Merci quand même
  • # Wikpédia pour la définition

    Posté par  (site web personnel) . Évalué à 1.

    http://fr.wikipedia.org/wiki/NTP

    Les explications de ce qu'est NTP sont décrites sur Wikipédia. Il y a aussi une version anglaise sur Wikipédia qui me parrait moins complète, il y a surtout beaucoups de liens:

    http://en.wikipedia.org/wiki/Network_Time_Protocol
  • # RFC

    Posté par  . Évalué à 1.

    Je crois que dans ton cas, il faut aller directement aux documents de
    references concernant ce protocole : les RFC.

    Le protocol NTP est definie par :

    http://www.ietf.org/rfc/rfc778.txt
    http://www.faqs.org/rfcs/rfc1305.html

    Et plus globalement par plein d'autre RFC qui sont citées
    dans le bel article de WikiPedia.

    http://en.wikipedia.org/wiki/Network_Time_Protocol

    K.
    • [^] # Re: RFC

      Posté par  . Évalué à 0.

      Effectivement, j'avais pensé au RFC, j'avais commencé à les lire et pi je me suis dis, peut être que quelqu'un aurait pu simplement me répondre parce que c'était pas trop pointu ce que je demandais, et que je n'avais peut être pas besoin de comprendre les algorithmes de calculs de temps en détail pour cela... Sachant en plus que le RFC 1305 décrit la version NTP3, et que j'utilise la version NTP4 qui n'est pas encore documenté sous forme de RFC. Il y a bien la page du créateur de NTP, david mills, mais ce monsieur semble plus doué pour la création que pour la pédagogie!
      Merci quand même
  • # Une question pour avancer : quelle horloge est synchronisée ?

    Posté par  (site web personnel) . Évalué à 2.

    Je pense qu'il y a une question fondamentale à se poser : quelle est l'horloge qui est synchronisée par NTP.

    Dans ton journal, tu parle d'une action sur la fréquence de l'horloge du PC. Si tu parle bien du coté matériel de la chose, moi j'y crois pas.
    Je crois plutôt qu'il joue sur l'horloge système, c'est à dire la vision informatique du temps que donne le noyau au reste du système.

    Mais bon, j'y connais rien, c'est juste une réflexion personnelle.
    • [^] # Re: Une question pour avancer : quelle horloge est synchronisée ?

      Posté par  . Évalué à 2.

      NTP "joue" sur l'horloge système (a priori).

      Sur mon poste:
      /sbin/hwclock --show
      montre à décalage d'une heure et quelques minutes alors que
      /bin/date
      affiche correctement l'heure.

      /sbin/hwclock --systohc --localtime
      permet de remettre les pendules à l'heure.
      • [^] # Re: Une question pour avancer : quelle horloge est synchronisée ?

        Posté par  . Évalué à 2.

        NTP change effectivement l'horloge système mais je me demande toujours selon quelle stratégie. C'est vraiment un foutoir pas possible la doc, et à chaque fois que je pense avoir un début de solution, et bien je retombe sur un problème.
        En effet, le client semble obtenir la déviation de son horloge interne par rapport au serveur NTP, et applique cette correction... la question est, comment calcule t'il cette déviation (qui est une fréquence appelée compensation drift)???
  • # Exposé sur NTP

    Posté par  . Évalué à 2.

    Tiens, si tu ne l'as pas encore trouvé, voilà un document qui semble assez complet et qui pose les bonnes questions.

    http://alexandre.alapetite.net/iup-gmi/ntp/

    bon stage

    Jms
    • [^] # Re: Exposé sur NTP

      Posté par  . Évalué à 2.

      Ce document (que j'avais déja lu) et effectivement un des meileurs disponibles car il vulguarise mais en rentrant quand même dans les détails, le seul problème, c'est qu'il n'y rentre pas assez mais c'est vrai que si quelqu'un repasse par là, pour un premier contact avec NTP, je conseillerai ce document.... me reste plus qu'à plonger dans les RFC et sur la page de Mr "adorateur de lapins pas pédagogue" Mills...
  • # Serveur NTP

    Posté par  . Évalué à 1.

    Bonjour,
    J'ai aussi un projet à faire autour des serveurs de temps.
    J'ai lu qu'un ordinateur avec l'OS FreeBSD, avec la version 4 d'NTP, et se synchronisant avec un récepteur GPS pouvait avoir une précision inférieure à 1ms dans un LAN.

    Mais l'utilisation d'un serveur NTP n'est seulement nécessaire que pour synchroniser beaucoups de clients, sinon il suffirait d'utiliser le récepteur GPS pour timestamper l'horloge!

    Il existe autrement un autre protocole, plus orienté vers les réseaux ethernet pour l'automatisme et la métrologie. Ce protocole est l'IEEE 1588, plus communément appelé Precision Time Protocol. Apparement ce protocole utilise une carte PCI - IEEE 1588 et un programme en C/C++ pour synchroniser des équipements réseaux.
    Si vous avez d'autres informations, elles sont bienvenues!
    Merci.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.