免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3906 | 回复: 10
打印 上一主题 下一主题

[其他] ntp协议原理疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-08 08:47 |只看该作者 |倒序浏览
谁明白ntp原理中的delay和offset为什么这么计算啊?
如下
客户端服务器模式:该模式由客户端主动发出NTP 时间服务请求,在发出请求时,在请求数据包中打上发出时间戳T1;服务器收到时间服务请求后打上接收时间戳T2;经过对数据包进行处理后,打上传输时间戳T3,并发回客户端;客户端接收到授时数据包后,记录接收时间T4;客户端得到T1,T2,T3,T4 后,在假定客户端和服务器间传输数据的时延是相等的前提下,进行如下计算:
        网络时延为delay=(T4-T2)+(T3-T1)
        客户端计算机时间偏差为offset = ((T3-T1)-(T4-T2) )/2
那位高手能指点一下?

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2013-11-08 09:27 |只看该作者
兄弟你的意思要如何计算呢?

论坛徽章:
0
3 [报告]
发表于 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

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
4 [报告]
发表于 2013-11-08 14:54 |只看该作者
回复 3# shichunda


我还真没注意你前面发的贴, 原来你第一次写的是错的.

http://en.wikipedia.org/wiki/Network_Time_Protocol 这上面提供的算法如下:

  1. ------t1--------------t2-----------
  2.        |                     |
  3. ------t0--------------t3-----------

  4. delay = (t3 - t0) - (t2 - t1)

  5. 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

希望我的理解是正确的.

论坛徽章:
0
5 [报告]
发表于 2013-11-09 00:15 |只看该作者
仁兄说的非常有道理,小弟理解了,谢谢。
不过没想到我看得资料竟然是错误的!

论坛徽章:
0
6 [报告]
发表于 2013-11-09 10:29 |只看该作者
"其中, t1 - t0 带的是正向延时, t2 - t3 带的逆向延时, 两个相加, 延时就抵消了, 但时间差是2倍了"
这里我还是有些不理解。延时没有正负吧,怎么能抵消呢?

论坛徽章:
0
7 [报告]
发表于 2013-11-14 20:09 |只看该作者
顶起来......

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
8 [报告]
发表于 2013-11-14 22:46 |只看该作者
kanntp.org或许对你帮助大

论坛徽章:
0
9 [报告]
发表于 2013-11-15 13:47 |只看该作者
wenhq 发表于 2013-11-14 22:46
kanntp.org或许对你帮助大


这个网站打不开

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
10 [报告]
发表于 2013-11-15 13:51 |只看该作者
http://www.ntp.org/


是这个link 。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP