时间同步算法的应用非常广泛。
譬如在Unix系统里面,Make命令,只是用来编译新修改过的代码文件。Make命令使用运行的客户端的时钟来决定哪个文件是被修改过的。但是,如果把代码放到文件服务器上面,而运行make命令的主机与文件服务器的时间不同的时候,make命令就有可能工作不正常。
譬如玩dota的时候,几个客户端需要一个同步过的时钟来使每个人的画面保持一致。、再譬如PC电脑同步服务器上面的时间可以做到很高的同步精度。
时间同步算法
时间同步算法,有以下几个解决方案:
Cristian’s algorithm算法
Cristian's Algorithm算法的应用背景,主要是在一个进程P像一个服务器S请求时间:
1. P发送一个请求包到S请求时间。
2. S收到P的请求包以后,在包上面加上当前S的时间,然后回发过去。
3. P收到数据包之后,把当前时间设置为T+RTT/2。
RTT表示一个Round Trip Time,即P从发送到接受到数据包的时间。该算法假设发送数据包和接受数据包在网络上所用的时间是一样的