What is SNTP (compared to NTP)?

Cuckoo is an SNTP server, not an NTP server. Some basic terms and concepts:

NTP stands for Network Time Protocol, and is the industry standard method of synchronizing computer time.

SNTP stands for Simple Network Time Protocol.

Any machine on your network that needs to get accurate time is an NTP or SNTP Client.

SNTP servers and clients are fully compatible with NTP servers and
clients. The protocol used between the NTP and SNTP is identical.

The "Simple" part of SNTP refers to the fact that the server
operates in a standalone mode, and does not apply the NTP filtering
algorithms to the clock source. Unlike NTP, SNTP does not rely on (and
in fact cannot use) external NTP servers, or "peers". NTP specifies a
number of filters and calculations required to gather those independent
times from multiple servers, sift good time sources from bad time
sources, and regulate the clock. SNTP consults and trusts a single time
source. Cuckoo relies on its ability to always have a connection with
its time source (the GPS receiver) to provide consistent time.

How does Cuckoo time accuracy compare?

This diagram shows actual time requests from Cuckoo and several major NTP servers on the Internet.
The data collected for this chart comes from our YellowBill application.

Several important facts can be gleaned from this chart.

PC Clock Drift - Over the course of the test run (about one day), this PC's
clock drifted about 800 milliseconds, or almost one second. This is represented by the upward sloping
line from left to right--the further the distance from 0, the further the PC's clock is from true time.
This is pretty typical performance of most new commercial PCs.
Older or off-brand machines can often be much worse.

Latency - Notice that all of the Internet servers (not Cuckoo) have periods where their time readings
are significantly skewed. This primarily comes from Internet routing latency. The NTP protocol
is designed to correct for this by slowly slewing your computer's clock to match the average time.
But the more discrepencies, the longer this process can take.

Repeatability - You'll notice on the chart that some of the
servers time requests appear to jump up or down by tens of milliseconds
over long periods. Although your time requirements may not be that
precise, it is troublesome to think that not all time servers are
created equal. This effect is
independent of network latency, since not all servers are subject to
it. The effect may be related to other tasks that the server is
responsible for during those periods, such as system backups or other
periodic tasks. Or it may be an effect of the server not being directly
connected to a reliable source of UTC time. For example, look at the
blue server, which although "high" between 12 and 15 hours, drops "low"
between 15 and 18 hours. This "jumping" represents a sudden skewing of
that server's time results, where the reported times change from one
packet to the next by 30 milliseconds or more.

Cuckoo - In the center of the pack, you'll find a steady white line. This represents
the time responses sent back by our Cuckoo device. Because Cuckoo doesn't have to contend with variable
Internet routing, massive client requests, or service other tasks, it can deliver consistent time, every time.

Why buy Cuckoo when you can get NTP for free?

This is a very good question, because there are NTP servers on the
Internet run by people who generously allow others to access them.
There are several reasons why you might want to consider owning your
own time server.

Reliability - Because Internet routing can vary, so can the latency of the timestamps.
See the diagram below for a comparison of some very popular NTP servers against Cuckoo.

Independence - With your own time server, you are not making
your companies vital functions
dependent on outside organizations. Anyone providing a free time server
is not contractually bound to provide you with continuous,
uninterrupted service. Servers may go down for maintenance, be moved,
or decommissioned without you knowing it.

Security - You can keep your own time server completely
behind your firewall. There is no possibility of someone blocking or
corrupting time packets being sent to your network, as there is when
using an external server. NTP timestamps are delivered using the UDP
protocol, which means they are subject to IP address spoofing. By
running your own time server, you remove a possible means for malicious
interference in your businesses operation. Because a SNTP server (like
Cuckoo) operates without any peers, it can be fully isolated behind a
network firewall unlike an NTP server.

Congestion - External time servers often have many clients
to service. The more clients there are, the more jitter there is in the
round-trip latency, which directly affects the time's accuracy. This is
something over which you have no control or knowledge.

Unconnected - Systems that are either sporadically connected
to the Internet or are using a dial-up connection cannot reliably use
Internet NTP servers. And believe it or not, some systems are not
connected to the Internet at all, either by choice or necessity. All of
these are perfect candidates for Cuckoo.

How does it work?

Cuckoo is an SNTP (Simple Network Time Protocol) server.
Simply stated, this means that Cuckoo delivers the same timestamps used by any other NTP or
SNTP client software, but does not consult with other NTP servers first.
Instead, Cuckoo gets its time directly from the Global Positioning System, better known as GPS.
Everyone knows that GPS satellites can be used to get an accurate location.
But those same GPS satellites can give you an accurate time as well.
Cuckoo uses its built-in GPS receiver to track time, and by constant monitoring of the GPS time signals
can deliver timestamps accurate to +/- 1 millisecond.

Where does it go?

Cuckoo can be plugged directly into your network, just like any
other Ethernet-based device. Because Cuckoo needs to track GPS
satellites, it does need to have visible access to the sky. We provide
a marine-grade antenna with a pole mount and 50 feet of cable for
outside installations. In some instances, if you have a good
orientation you may be able to avoid an outside mount by placing the
antenna next to a window.

We don't have roof or outside access; will Cuckoo still work indoors?

We do offer a low-profile antenna instead of the larger outdoor
mast-mount version. The antenna cable length on the low profile antenna
is about 15 feet, and it can be placed on a windowsill. This antenna
option can be substituted for the pole mounted antenna for the same
price.

Any inside antenna placement, even in a window location, prevents
the receiver from seeing more than 180° of the sky. Intuitive Circuits
recommends an external mounted antenna for that reason. Whether or not
you are able to still get a strong enough GPS signal from a windowsill
depends on several factors. The orientation of the window, whether or
not there are obstructions around the window (trees, other buildings,
etc.), and the window itself (some solar reflective glazes can reduce
the GPS signal to unreadable levels) are all factors.

Our location needs an antenna cable longer than 50 feet. Can we extend the antenna?

Intuitive Circuits is now providing a special order antenna that is 100 feet long; please call for details.

Intuitive Circuits does not provide GPS antenna extenders, although you can provide one of your own. The
extra cable and connectors will introduce some amount of signal loss. The GPS receiver expects between
15dB and 30dB of signal gain, and the marine mount antenna under optimal conditions has a gain of
roughly 40dB. To reduce the signal attenuation as much as possible, use high quality cable and connectors
(SMA male one one end, SMA female on the other).

Note: The GPS receiver is actively powering the antenna. We do not recommend use of any
amplified in-line devices. Voltage from these devices may interfere with or even damage
your antenna or your Cuckoo.

Can you install a lightning suppressor on the antenna?

Although this is not something we have tested at Intuitive Circuits, we have had a customer
try this with success. Tim Hodges of Triangle Telephone Cooperative was
kind enough to share with us his setup and some very helpful advice.

Antenna:

PCTEL Maxrad AGPS26

Lightning arrestor:

Polyphaser IS-MR50LNZ+6

Cable:

About 65' of Times Microwave LMR-240-MA

All equipment was purchased from Tessco.
His average signal strength is about 52. He also mentioned that proper installation of the
lightning suppressor requires a good ground attached to the suppressor, and pointed us to
this whitepaper about GPS lightning protection.

How many GPS satellites must be visible to get accurate time?

There are 24 operational GPS satellites with orbits distributed so that at least 4 of them
are always visible from any point on the Earth at any given instant. There may be up to 12
visible at one time. Cuckoo needs to receive signals from at least 4 satellites to maintain
a time fix.

Does Cuckoo report when it loses synchronization with GPS time?

Can I detect this condition externally?

If Cuckoo does lose GPS sync, it will continue to operate on an
internal clock but will report its non-synchronized status to all
clients requesting time. A status LED on the front of Cuckoo blinks
when there is not a good fix. Although Cuckoo will continue to run
without GPS sync, the internal clock is not a precise time keeper, and
eventually will drift from UTC time.

To remotely determine a GPS synchronization loss, there are a number of methods you can use.

SNTP Protocol: NTP Resolution field. This is set to a number that
indicates a power of 2 resolution in seconds. Normally when Cuckoo is
in sync it reports -10 or 2-10 seconds (which translates to
about 1 ms resolution). Immediately after it loses sync, it will report
a less accurate number to indicate the new resolution with the loss of
sync state.

SNTP Protocol: The NTP Reference field. This is the last time that
the unit received a GPS signal. This tells you how long of a GPS signal
outage there has been.

SNTP Protocol: The NTP Transmit field. The protocol demands that if
the primary reference isn't operating, you also must set the Transmit
field to 0 (i.e. no timestamp). Note: Cuckoo provides an
override to this behavior to allow the unit to report "okay" times in a
GPS outage if your situation can tolerate non-reference derived time
for a stretch of time. Although the default is to zero out Transmit
immediately, the duration of outage before the problem is reported is
user-configurable.

DAYTIME Protocol. Using NTP protocol requires forming binary
packets of a specific structure, but Cuckoo also supports the DAYTIME
protocol. DAYTIME is just plain text over a TCP socket, which makes it
very easy to script with a simple command-line utility like "netcat".
The administrator has complete control over configuration of the
DAYTIME string, so you can put whatever information you want in
Cuckoo's response. The "normal" types of things that one would include
are time, date, timezone, etc. One of the fields we provide is one that
indicates the state of the GPS lock. (GPS lock state can be displayed
on the LCD as well--the LCD display is completely user configurable.)

What is network latency, and why does it matter?

Network latency is a measurement of two times: the time required to
send a packet from your computer to the time server,
and the time required to send a packet from the time server back to
your computer. These two times added together are round-trip network
latency (or just "latency" for short
in this description).

Each Network Time Protocol (NTP) packet contains timestamps that are
used to compute the exact time that your PC needs.
But the round-trip time is required to compute the true time, and the
larger the latency, the more uncertainty that is introduced into the
result.
This means that more NTP packets may be required to hone in on the true
time, and it will take even longer to gradually adjust to the correct
time.

Because of limitations in the Internet, only the round-trip time can
be measured. The round-trip time is assumed (for lack of any other
information)
to consist of half of the time is in sending the packet and half of the
time in receiving it.
However, packet routing times are often asymetrical (e.g. upload
bandwidth is often smaller
than download bandwidth), and halving the round-trip time does not
always result in an accurate measurement.
So its always beneficial when possible to have the lowest possible
latency to your time server.

How does Cuckoo latency compare?

This chart shows latency comparision over the same data as the first
chart. You'll notice that where Cuckoo's latency is less than 2
milliseconds, it is
orders of magnitude higher for many commonly used NTP servers.
This shows how geographic location and other factors affect Internet
routing latencies.
This is an example only--although typical for smaller networks, not all
networks will have Cuckoo latencies this low.

This data was measured on a system with the following characteristics:

What do your computers need to use Cuckoo?

All computers and devices on your network that need accurate time
must be running a NTP or SNTP client to synchronize their time with
Cuckoo. NTP client software is platform specific, but in many cases
will already come with the operating system.

Most versions of Microsoft Windows (XP, ME, 2000, and NT) provide a
NTP client, accessible by right-clicking on the time in the status bar,
and choosing Adjust Date/Time; and selecting Internet Time. All known Unix and Linux distributions include NTP support either in the default installation, or as an available package.

The provided Windows NTP client provides very little control, and it may not be suitable
for more demanding applications. Because of this, Intuitive Circuits provides a free SNTP client for Windows called YellowBill. Although YellowBill can be used with any NTP server, it was designed for use with Cuckoo.

Finally, there are many implementations of NTP and SNTP clients that
are available as freeware, public-domain software or as low-cost
shareware.

How many computers can Cuckoo support?

There is no actual "maximum" of devices that Cuckoo can support. As
you add more devices, the time requests will incur more and more
latency. The individual circumstances of your situation dictates the
maximum latency that you can tolerate, and hence, the maximum effective
number of clients.

It takes Cuckoo roughly 250 microseconds to receive an NTP request,
prepare an outgoing packet, and send the reply. That means the maximum
theoretical rate of NTP packets is about 4000 packets per second.

For planning purposes, the number of computers that Cuckoo can
support depends on the speed of the network in use, what type of client
time software is used, the client's latency tolerance, the clients
accuracy requirements, and the synchronization of the requests. For
example, if each client is programmed to send out a request exactly at
the minute rollover, then all clients will be sending their requests at
the exact same time. The other 59 seconds in a minute, Cuckoo will be
doing nothing.

Here are some possible use cases, but please remember that your mileage may vary.

Realistic Case 1. The clients requests are not perfectly
synchronized with UTC time, and that the time requests are once per
minute. You are also using NTP clients (not SNTP clients) on the
requesting machines. If you are using an NTP client, it will average
out any error over time unlike an SNTP client. And your latency
requirements are 100 milliseconds or less. Under these conditions, the
maximum number of supportable clients is probably somewhere between 150
and 200.

Realistic Case 2. Same conditions as above, but your latency
requirements are much more strict: you can tolerate a maximum latency
of only 10ms. The maximum number of supportable clients is probably
less than 100.

Worst Possible Case. All clients are asking simultaneously,
and each client can only tolerate 5ms latency (typical latency for a
roundtrip on a 100MBit ethernet). Under those circumstances, Cuckoo can
only handle about 20 simultaneous client requests (and hence, 20
clients) before the latency exceeds 5ms.

Unrealistically Optimistic Case. If every time client was
designed to minimize their interference with their neighbors, you could
have each client interleave its request perfectly with each other. In
that case, the theoretical maximum packet rate could be reached while
still keeping minimal latency. For one client time request every
minute, the theoretical maximum is 240,000 clients! This is almost
certainly impossible to achieve in reality, and would require an
extremely careful and special design of the time clients and a
completely dedicated network. With the expense of the software
engineering and IT infrastructure required, it would be much cheaper
and easier to just buy more Cuckoos! (This use case is provided for
entertainment value--under no circumstances would Intuitive Circuits actually
recommend having more than 256 clients per Cuckoo.)

What NTP Stratum does Cuckoo report?

Cuckoo is an NTP stratum 1 device.

Stratum 0 is the reference clock (in this case the GPS satellites)
receiving a reliable source of UTC. Stratum 1 is a time server with a
direct link to the reference clock. Cuckoo has a direct link to the GPS
time via the GPS receiver.

If the product fails to perform as described in our product description or specification, within 1 year from the date of shipment to the buyer, we will repair or replace the product and/or accessories originally supplied. Failure due to improper installation, misuse, abuse or accident is not covered by this warranty. Incidental and consequential damages are not covered by this warranty.The buyer must obtain a Return Material Authorization by calling (248) 588-4400, and shipping the defective product to Intuitive Circuits, 3928 Wardlow Ct., Troy, MI 48083, freight prepaid. After the warranty expires, we will promptly supply an estimate for the repair cost.