algorithm - Cristian 的分布式系统时钟同步方法中的精度是如何计算的?
问题描述
在用于时钟同步的 Cristian 算法 ( https://en.wikipedia.org/wiki/Cristian%27s_algorithm ) 中,其中 S 代表服务器进程,分布式系统概念与设计一书中提到:
因此,当回复消息到达时,S 时钟的时间在 [t + min, t + T round - min ] 范围内。这个范围的宽度是T round - 2min,所以精度是+-(T round /2 - min)
这里的精度是如何计算的,是范围宽度的一半吗?如果是,为什么?
解决方案
是的,精度计算为范围宽度的一半。
一般来说,当仪器或设备可以在一个范围内提供输出时,精度被认为是该范围的一半。因为如果您使用范围的中点作为答案,您只能偏离范围的一半到任一侧。
简而言之,范围[l, l + h]
也可以写为(l + h/2) ± h/2
,说明 的误差值h/2
。
当然,要记住的重要一点是,应该选择中点作为上述错误分析正确的答案。在您描述的算法中,可能的时间范围从T + min
到T + RTT - min
。范围的中点是T + RTT / 2
,这正是算法为实现最小误差而选择的。
推荐阅读
- c# - 避免使用 .NET Core 重复 POST
- javascript - 由于使用 .parentNode,For 循环被转义
- reactjs - 用 Jest 反应本机 - 无法读取属性
未定义的 - python - Google 日历 API 与 Python 的集成 - 在日历 API 中更改发件人的邮件地址
- python - python del函数如何在不调用__getitem__的情况下工作
- ms-access - ms 访问使用全局变量将表单的文本框值传递给报表
- javascript - 如何在 onClick 事件中增加计数器值?
- reactjs - React root.js 大约 9MB
- python - 具有常量和方法的类
- java - 为什么相同的文件在克隆和从浏览器下载时会出现不同的大小?