On 11/25/16, Achim Gratz <[email protected]> wrote: > Daniel Franke writes: >> The reference timestamp isn't really used for anything > > The server is supposed to return this value unchanged, so one of the BSD > implementations of the ntp client uses this field to send random data in > order to weed out replay and fake packets. Checking for out-of-order > replies may actually have been the original intention anyway.
You have a couple things mixed up here. The server copies the client's *transmit* timestamp unchanged into the *origin* timestamp in its response. All implementations, not just OpenNTPD, check for this match. However, OpenNTPD randomizes the entire field rather than just the low bits, a practice that I shortly plan to duplicate in NTPsec and advocate in https://www.ietf.org/id/draft-dfranke-ntp-data-minimization-01.txt. The reference timestamp is supposed to be copied unchanged from *upstream* in the hierarchy. So whatever reference a stratum 2 server's system peer is reporting to it, it will in turn report to its stratum 3 clients. Stratum 1 servers will set the reference timestamp to whatever time was mostly recently given to them by their reference clock. But despite this information being maintained, it isn't used for anything except perhaps diagnostics. This may not always have been the case; I suspect that in some point in the past the reference timestamp was important in server selection, but I haven't verified this. _______________________________________________ devel mailing list [email protected] http://lists.ntpsec.org/mailman/listinfo/devel
