Artificial Intelligence | Economics | Electromagnetics | Games | Green Energy | Model Portfolios | Robotics | Store | Search | Admin

Time

1.0 NTP Network Time Protocol

The goal is to synchronize a computers clock as accurately as possible to Universal Coordinated Time (UTC) by using Network Time Protocol (NTP).

1.1 Description

Network Time Protocol (version 4.2.8p4) is a software package for synchronizing computer clocks. The configuration files /etc/ntp.conf listed below are used here.

The local time server is a homebrew computer with ECS NFORCE6M-A V:2.0 motherboard, Athlon 64 X2 Dual Core 4800+ processor, Insignia NS-PCW5250 520W power supply, and Ubuntu 16.04.3 64 bit operating system.

The local time clients are (1) a Compaq Presario CQ57 notebook computer, with the Windows OS replaced by Ubuntu 16.04.3 64 bit operating system, (2) an older OutsideLoop desktop computer with Ubuntu 12.04 32 bit operating system, (3) a homebrew desktop computer with a Sempron cpu called "Greenie", (4) an eMachines T5022 with Windows OS replaced by Ubuntu 14.04.5 32 bit operating system, (5) an Acer Aspire T180 with Windows OS replaced by Xubuntu 17.10 64 bit operating system, and (6) a HP 17 inch quad core laptop with Windows OS replaced by Ubuntu 18.04 64 bit operating system. Only three or four of these clients are connected to the local network at any given time. No special precautions are taken to temperature control these computers.

The network connection between the five internet time servers (see configuration file below) and the local time server is Comcast broadband cable, to a Zoom 5341J cable modem, to a LinkSys EA6400 router, to the local homebrew computer, all hardwired ethernet. Network speed is limited by Comcast cable to typically 20 Mb/s or by the speed of each of the five internet time servers. The speed of the internet servers is generally unknown and may vary from server to server, and the internet servers themselves change over time (selected from a pool of servers).

All connections between the local time server and clients on the local network are hardwired ethernet. The network connection between the local time server and all local time clients except the CQ57 is a LinkSys EA6400 router. The path to the CQ57 includes the EA6400 and a LinkSys WRT54G router. Speed is limited to 100 Mb/s.

1.2 Performance

1.2.1 Loopstats

LAN Homebrew Time Server

Past 24 Hours

LAN HP17 Time Client

Past 24 Hours

LAN CQ57 Time Client

Past 24 Hours

LAN OutsideLoop Time Client

Past 24 Hours

LAN Greenie Time Client

Past 24 Hours

LAN eMachines Time Client

Past 24 Hours

LAN Aspire T180 Time Client

Past 24 Hours

1.2.2 Discussion

The performance of this setup is shown above under Loopstats. The raw data for the graphs is generated by the NTP software daemons of the local homebrew server, and the HP17, CQ57, OutsideLoop, Greenie, eMachines, and Aspire clients. GNUplot is used to create the graphs once per day at one minute intervals just before midnight UTC. Cron is used to schedule scripts that archive the raw data, call GNUplot to generate png images of the graphs, and call ftp to upload the png images to the webserver of this page. The whole process is automatic and requires no intervention.

Typical accuracy of the local homebrew server is a few milliseconds and worst case error is about 20 milliseconds, except when the local server is rebooted. Immediately after a reboot, the time offset can be hundreds of milliseconds, and can take from several hours to a half a day to settle out.

The hardwired local time clients Greenie and OpenLoop follow the local homebrew server within a worst case error of about 10 milliseconds, reboots excluded. The wireless local time client CQ57 follows the local homebrew server within a worst case error of about 100 milliseconds, reboots excluded.

1.3 Software Configuration

1.3.1 Local Time Server (Homebrew) Configuration File
/etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
server ntp.ubuntu.com

# local clock
server	127.127.1.0
fudge	127.127.1.0 stratum 10

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

1.3.2 Local Time Client (CQ57, OutsideLoop, Greenie, eMachines, and Aspire) Configuration File
/etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 192.168.0.100 iburst

# local clock
server	127.127.1.0
fudge	127.127.1.0 stratum 10

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

2.0 WWV Receiver and TRAK Systems Model 8391 Time Code Generator

Under construction.

3.0 GPS and Rubidium Oscillator

Under construction.