RFC Errata
RFC 5905, "Network Time Protocol Version 4: Protocol and Algorithms Specification", June 2010
Note: This RFC has been updated by RFC 7822, RFC 8573, RFC 9109, RFC 9748
Source of RFC: ntp (int)
Errata ID: 5020
Status: Rejected
Type: Technical
Publication Format(s) : TEXT
Reported By: Ferenc Wágner
Date Reported: 2017-05-15
Rejected by: Erik Kline
Date Rejected: 2022-08-29
Section 8 says:
theta = T(B) - T(A) = 1/2 * [(T2-T1) + (T3-T4)]
It should say:
theta = T(B) - T(A) = 1/2 * [(T2-T1) + (T4-T3)]
Notes:
The corresponding code line in A.5.1.1. agrees with this correction:
offset = (LFP2D(r->rec - r->org) + LFP2D(r->dst - r->xmt)) / 2;
taking Figure 7 into account:
| org | T1 | origin timestamp |
| rec | T2 | receive timestamp |
| xmt | T3 | transmit timestamp |
| dst | T4 | destination timestamp |
--VERIFIER NOTES--
As noted this thread:
https://mailarchive.ietf.org/arch/msg/ntp/AR7k0IP2PMgXdq2bknx6Eiz4upE/
'''
Theta is "the offset of B relative to A". The proposed revision is
1/2 * [(T2-T1) + (T4-T3)]
Example: Let's assume that B and A are exactly synced to UTC and that the
network delay is 50msec in each direction.
T2-T1 is the NTP mode 3 request delay (including network delay).
This gives 50 msec
T4-T3 is the NTP mode 4 response delay (including network delay).
This gives 50 msec.
The proposed revision gives 100msec/2 = RTT/2, not the expected offset of
zero.
The RFC5905 formula seems correct.
theta = T(B) - T(A) = 1/2 * [(T2-T1) + (T3-T4)]
but might have been clearer had it been written:
theta = T(B) - T(A) = 1/2 * [(T2-T1) - (T4-T3)]
'''