时钟同步

时钟同步（Clock synchronization）是计算机科学与工程学中的一个概念，旨在协调多个独立的时钟。现实中的多个时钟，即使时间已调至一致，但在一段时间后依然会因为而显示不同的时间，因为它们计时的速率会略有差异。时钟计时速率的差异会造成多种问题，但已有多种解决方案，最佳的解决方案须由实际情况决定。

 术语 
在串行通信中，时钟同步可以指代，即频率同步，与相对。这种时钟同步被用在电信通信中的同步与波特率自动检测。

或操作指一个系统具有频率同步，但并没有严格要求相位同步。同步操作对时间（可能包括频率）具有更高的同步要求。

 问题 
如果无法在更小的尺度管理时间，在具有较高时间同步要求的分布式计算中，会产生许多因时间偏移引发的问题。

例如，在 Unix 系统中，make 命令可用于增量编译代码，并避免编译已经编译过且未发生改变的代码。make 命令使用主机的时钟来确定哪些源代码需要编译，如果源代码处于另一台单独的文件服务器上，而两者时钟不一致，make 就可能导致错误的结果。

 解决方案 
在一个具有中心服务器的系统中，同步方案较为简单：由这个中心服务器指示时间。在这种环境中，或 可能是最佳的解决方案。

在分布式系统中，问题变得更为复杂，因为并没有全局通用的时间。在互联网上最常用的时钟同步协议是 NTP，采用 UDP 通信，并形成层级的客户端 - 服务端架构。分布式系统的涉及到的概念包括 与。

在无线网络中，因为其不稳定性，包括同步数据包的碰撞等，这一问题变得更为艰难。
 Berkeley 算法 
 适用于无线电时钟（radio clock）不可用的分布式系统，此类系统无法得知真实时间，只能通过维护一个全局的平均时间作为标准时间。一台时间服务器会周期性地获取各个客户端上的时间，将其平均处理后，回传每个客户端的时间与平均时间的偏移，以达到统一使用此平均时间的目的。此算法适用于不仅时间可能不一致，时钟速率也可能不一致的系统。

如果一个客户端的时间偏移过大，超出了容忍值，则通常不会参与平均时间的计算。如此可以防止系统的时间被单个异常的时钟过度影响。

 时钟采样网络互同步 

 Cristian 算法 

 GPS 时钟 

 靶场仪器组时间码 

 网络时间协议 

 精确时间协议 

 基础设施参考点广播同步 

 同步以太网 

 Ad-hoc 无线网络中的时间同步 

 参考文献 

Category:计算机技术