HTTP Time Server that returns the current server time
t0
: time when the client sends the requestt1
: time when the server receives the requestt2
: time when the server sends the responset3
: time when the client receives the response
- The Client sends a request
GET /tt
to the server.
The server is written in Go and returns the current time in the following format:
18446744073709551615$18446744073709551615
-
The Client can parse the response by splitting the string by
$
and converting the first part tot1
and the second part tot2
. -
The Client can calculate offset by the following formula:
offset = (t1 - t0 + t2 - t3) / 2;
- The Client also can calculate sync error by the following formula:
error = Math.abs(t3 - t0 - (t2 - t1)) / 2;
-
The Client repeats the request several times and calculates and records the offset and error for each request.
-
After that client calculates the confidence interval using the Intersection algorithm.