所以我试着解决关于伯克利算法的这个练习:
说明伯克利算法在以下情况下是如何工作的。有一组计算机需要内部同步。一台主计算机S和其他五台奴隶计算机P1、P2、P3、P4和P5。主计算机定期轮询从计算机并从从机接收时间戳。主组播在11:11:5.129 (hr:min:sec:ms)向奴隶发送请求,所有从站的往返时间S分别为: P1 10 ms、P2 12 ms、P3 16 ms、P4 20 ms和P5 16 ms。P1的时间戳为11:11:3.200,P2为11:11:1.500,P3为11:11:5.600,P4为11:11:10.000,P5为11:11:22.200。主人S将丢弃来自错误时钟的时间戳,这些时钟的读数与其他时钟相差超过10秒。计算的平均时间S是多少?这五个从节点中的每个节点的偏移量是多少?
这就是我在网上发现的一些课堂讲稿所能做的:
平均= (5.129 + 3.2 + 1.5 + 5.6 + 10)/5 = 5.0658偏移: S:-0.0632 P1:+1.8658 P2:+3.5658 P3:-0.5342 P4:-4.9342 P5:-17.1342
这些讲座没有提到RTT的时间,所以我想知道我是否应该用它们来解决这个问题。那么,我该怎么办呢?
发布于 2014-10-10 05:13:29
如果您收到来自另一台计算机的时间戳,则需要说明携带它的数据包到达您所需的时间。在没有任何其他信息的情况下,您可能只能假设这次是往返时间的一半。
作为比较,Protocol详细描述了NTP的等效计算。这样做的好处是获得服务器和客户端两个方向的接收和传输时间戳,计算出的时钟偏移θ是接收减去传输和传输减去接收的平均值,后者试图平衡传输延迟--但只有在两个方向的传输延迟相等的情况下,这相当于假设相同的事情,实际上,文章说非对称数据包延迟将产生系统性的偏差。
https://stackoverflow.com/questions/26289552
复制相似问题