- 论坛徽章:
- 33
|
回复 3# shichunda
我还真没注意你前面发的贴, 原来你第一次写的是错的.
http://en.wikipedia.org/wiki/Network_Time_Protocol 这上面提供的算法如下:
- ------t1--------------t2-----------
- | |
- ------t0--------------t3-----------
- delay = (t3 - t0) - (t2 - t1)
- offset = ((t1 - t0) + (t2 - t3)) / 2
复制代码 楼主可能忘了, server 和 client 的时间是不一致的, 所以, t1 - t0 得到的结果没有意义, 同理, t3 - t2 得到的结果也是没有意义的.
t0 和 t3 是同一台机器上的时间, 所以, 这个差,是这次请求发出的总时间, t1 和 t2 是同一台机器上的时间, 这个差 是 服务器处理请求花掉的时间, 所以, delay = (t3 - t0) - (t2 - t1).
t1 - t0 是 两台机器的时间差, 加上半个网络延时, t2 - t3 也是两个机器的时间差, 加上半个网络延时, 其中, t1 - t0 带的是正向延时, t2 - t3 带的逆向延时, 两个相加, 延时就抵消了, 但时间差是2倍了, 所以,
offset = ((t1 - t0) + (t2 - t3)) / 2
希望我的理解是正确的. |
|