Miroslav Lichvar wrote:
On Thu, Dec 12, 2013 at 09:59:03AM +0100, Martin Burnicki wrote:
A major problem was that the standard NTP protocol doesn't support a
way to send the captured time stamp of a previously sent packet to
its client, as done by the so-called followup message in PTP.

ntpd has the peer and broadcast interleave modes to send the followup
time stamps.
http://www.eecis.udel.edu/~mills/ntp/html/xleave.html

Yes, but as you say above this is only supported in peer associations and broadcast mode, so I see no benefit for "normal" clients. :-(

Also, there is a feature called launch time, which is supported in
some NICs, so the follow up message is not always necessary.

OK, but if I understand correctly then the sending ntpd would have to know that a specific interface supports this, and put the lauch time as transmit time into the NTP packet, and schedule sending of the packet at the predetermined point in time.

I see some potential problems here if using this with ntpd. I'm assuming the process or task (launcher?) which has to send the packets at the predetermined launch time is located somewhere down in the lowest levels of the network stack. So the lanuch time determined by ntpd must be "far enough" after the current time so that the launcher has surely received the packet to be sent *before* the current time reaches the launch time.

If the launch time is too near in the future then the launcher might receive a packet from ntpd after the launch time has already passed. If the launch time is too far in the future the launcher has to queue the packet for "a long time" before it can be sent, and there might be a limited queue size if a large number of packets have to be sent, e.g. to a large number of clients.

To avoid this the launcher could be aware of special NTP packets, send each packet when a free "slot" is available on the wire, and put the current time into each sent packet.

If this is not possible, then ntpd would have to keep track ot the packet is has scheduled to be launched at a given time on a given interface. Otherwise It could schedule 2 packets for different clients with the same launch time.

And what happens if a different application schedules a different packet on the same interface with the same launch time?

This sound pretty error-prone to me. :-(

I don't know if new standard NIC chips which support PTP
timestamping can also timestamp NTP packets, but even if they do
then in practice there's still the problem with network switches,
etc.

Some NICs can time stamp any packets.

OK, that's great.

There are network switches out there which are PTP-aware and also
timestamp incoming and outgoing PTP packets to compensate the
introduced packet delay in some way, but there are no switches
(AFAIK) which can do this with NTP packets, so even if you used
hardware time stamping of NTP packets on NTP end nodes the resulting
accuracy would still be worse than with PTP.

That's too sad.

Agreed. I think it's possible to implement a HW NTP support, but there
is problem that the switch would have to keep some state about each
NTP association. If there was a standardized extension field to store
the processing delay in both directions, that wouldn't be necessary.
I'm not sure what would have to be done to not break the NTP
authentication.

Yes, I know. Authentication is still another restriction which makes things even more difficult.

A major advantage NTP has over PTP is that it knows the delay for
each measurement in the client/server and symmetric modes, which
allows it to filter out bad measurements. In PTP the delay is measured
independently (similarly to the NTP broadcast mode), so bad
measurements can't be easily ignored and it's necessary to have all
networking HW with PTP support to account for all processing delays.

Agreed. I'm very impressed how good NTP can determine and compensate varying network latencies over WAN connections with unknown network nodes on the route.


Martin
--
Martin Burnicki

Meinberg Funkuhren
Bad Pyrmont
Germany

_______________________________________________
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions

Reply via email to