title: NTP Server and Client millisecond precision sync
body: <p>I'm facing an issue with getting my NTP Client (Running on Ubuntu) to have it's time sync to a NTP Server (running on windows) to millisecond precision.</p>
  
  <p>The NTP Server runs using an open source python module: <a href="https://github.com/limifly/ntpserver" rel="nofollow noreferrer">https://github.com/limifly/ntpserver</a></p>
  
  <p>The NTP Client has <code>server 192.168.0.28 prefer iburst</code> in the ntp.conf file.</p>
  
  <p>I found that the client requests for the time every 2 - 15 seconds.</p>
  
  <p>To check the time I have a simple python script running on both devices and I'll do a screen shot with both print outs displaying:</p>
  
  <pre><code>from datetime import datetime
  
  def main():
      while True:
          try:
              print datetime.utcnow().strftime("%Y-%m-%d_%H-%M-%S.%f")
          except KeyboardInterrupt:
              print "Exiting..."
              break
  
  if __name__ == '__main__':
      main()
  </code></pre>
  
  <p>I am getting deviations of 5 seconds to 100 milliseconds.</p>
  
  <p>When I run the command:</p>
  
  <pre><code>sudo service ntp stop
  sudo ntpdate -s [NTP SERVER ADDRESS]
  sudo service ntp start
  </code></pre>
  
  <p>I found that I can get 70 milliseconds to 5 microseconds precision immediately. After about 5 minutes I can see that the time deviates by 7 seconds...</p>
  
  <p>My goal is to get millisecond precision so my question is am I doing everything correctly to achieve this goal? Also is there a better way to measure the time sync time?</p>