shichunda 发表于 2013-11-08 08:47

ntp协议原理疑问

谁明白ntp原理中的delay和offset为什么这么计算啊?
如下
客户端服务器模式:该模式由客户端主动发出NTP 时间服务请求,在发出请求时,在请求数据包中打上发出时间戳T1;服务器收到时间服务请求后打上接收时间戳T2;经过对数据包进行处理后,打上传输时间戳T3,并发回客户端;客户端接收到授时数据包后,记录接收时间T4;客户端得到T1,T2,T3,T4 后,在假定客户端和服务器间传输数据的时延是相等的前提下,进行如下计算:
        网络时延为delay=(T4-T2)+(T3-T1)
        客户端计算机时间偏差为offset = ((T3-T1)-(T4-T2) )/2
那位高手能指点一下?

q1208c 发表于 2013-11-08 09:27

兄弟你的意思要如何计算呢?

shichunda 发表于 2013-11-08 11:12

本帖最后由 shichunda 于 2013-11-08 11:13 编辑

我不理解为什么这么计算,我觉得计算方式应该是这样:
服务器端
               T2            T3
------------|-----------|--------
                /               \
            /                  \
---------|----------------|-----------
            T1                   T4         
客户端

T1是客户端发送包的时间戳
T2是服务器收到包的时间戳
T3是服务器发送包的时间戳
T4是客户端收到包的时间戳

我觉得
T1到T2;T3到T4之间是网络延迟
T2到T3之间是服务器端处理数据包的时间

所以
网络时延为delay=(T2-T1)+(T4-T3)
客户端计算机时间偏差为offset=(T2-T1)+(T4-T3)+(T3-T2)=T4-T1

q1208c 发表于 2013-11-08 14:54

回复 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

希望我的理解是正确的.

shichunda 发表于 2013-11-09 00:15

仁兄说的非常有道理,小弟理解了,谢谢。
不过没想到我看得资料竟然是错误的!:outu:

shichunda 发表于 2013-11-09 10:29

"其中, t1 - t0 带的是正向延时, t2 - t3 带的逆向延时, 两个相加, 延时就抵消了, 但时间差是2倍了"
这里我还是有些不理解。延时没有正负吧,怎么能抵消呢?

shichunda 发表于 2013-11-14 20:09

顶起来......

wenhq 发表于 2013-11-14 22:46

kanntp.org或许对你帮助大

shichunda 发表于 2013-11-15 13:47

wenhq 发表于 2013-11-14 22:46 static/image/common/back.gif
kanntp.org或许对你帮助大

这个网站打不开

wenhq 发表于 2013-11-15 13:51

http://www.ntp.org/


是这个link 。
页: [1] 2
查看完整版本: ntp协议原理疑问