WHY
在网络世界中, 各个计算机之间要想协同工作, 时间同步是一个十分重要的基础. 在计算机内部是有自己的时间的, 这个时间通过内部的晶体振荡器差生的固定频率, 来模拟时间流逝进行计算....好了, 现在, 在另一个地方, 有一个标准时间, 如何将这个标准时间通过网络同步到你的本地计算机呢? 如何在同步的过程中, 尽量消除网络延迟带来的影响呢?...OK, 现在遇到的问题就是网络延时了, 如果能够消除网络延迟, 就可以精准同步了, 但以现在的技术水平是做不到的....首先要明确的是, C2和SC2是不想等的, 否则二者时间相同就不需要校准了嘛.
首先, 我们本地知道的信息有: C1, C2, 可以令服务器在返回结果中, 告诉我们S1, S2....不过, 如此同步的时间也是有误差的, 首先上面就假设了往返的网络延时相同, 如果延时不对称, 则同步结果就会不准确, 而且, 协议跑在应用层, 从物理层到应用层之间的时延也会影响最终结果.