时间同步算法探究

背景

时间同步这个问题其实大家都会遇到,比如最常见的,我们的电脑上设置时间为,选择为 internet 时间同步,还有网游服务器面对各个客户端的时间不固定,如何才能进行客户端的时间同步,当然还有电商在搞活动的时候,也需要考虑同步客户端的时间。

简单的模型

客户端每次请求服务端的时候,带上偏移信息,服务端将客户端上传的数据时间部分进行矫正,主要是加上这个偏移值,那么客户端如果计算这个偏移值呢?

假设

网络传输时间不变

客户端发送请求前的时间为 t1, 服务端接受请求的时间为 T1, 服务端处理完数据,开始响应数据的时间为 T2, 客户端收到响应的时间为 t2。
client server
t1 -----> T1
-----------|
t2 <----- T2

本次同步网络传输时间为
nt = (t2 - t1) / 2

偏移offset 定义为 同一时刻 服务端时间戳 - 客户端时间戳

请求时offset1为:

offset1 = T1 - nt - t1   ---------1

响应时 offset2 为:

offset2 = T2 + nt - t2    ----------2

略去 nt :

offset = (offset1 + offset2) / 2 = (T1 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值