假设我们有一个时钟滴答作响的服务器(只是一个整数变量,它保存了从纪元开始的毫秒数,并在每次系统时间改变时进行更新)。
每个客户端都应该能够同步自己的时钟(而不是系统时钟!只是一个抽象的计时器,一个随时间增加的整数值)。
例如,客户端可以发送“同步”请求,服务器将用其当前时钟值进行响应。
问题是我们不能确切地知道发送和接收数据需要多长时间。我们知道从发送请求到接收数据所经过的时间,我们可以将这个差值除以2,然后将其与从服务器收到的值相加,但这并不是很准确!
是否有一个通用的概念,即在执行同步后,服务器和客户端之间的时钟同步两端的值差异最小?
发布于 2015-05-26 22:08:21
为此,我建议使用NTP (网络时间协议),这正是在整个网络中同步时钟的方法。
http://de.wikipedia.org/wiki/Network_Time_Protocol
几乎每个操作系统(我负责管理Linux、Solaris、BSD和Windows)都有用于NTP的客户机和服务器。该协议具有内置的处理网络延迟的功能。
https://stackoverflow.com/questions/30460844
复制相似问题