计算客户端与服务器之间的时间延迟:
- 客户端A先记录自己的本地时间TA1,然后给服务器B发送一个报文
- 服务器B收到报文之后,记录自己的本地时间TB,然后把TB放入报文里发送给客户端A
- 客户端A收到信息之后,记录下收到报文的时间TA2.
由于报文往返的时间基本事相等的,所以客户端发送个服务器的时间延迟P=(TA2 - TA1)/ 2.一般延迟P只计算一次是不够精确的,可以让客户端A定时的给服务器B发送测量信息,然后计算P的平均值。
如果想要知道客户端和服务器的本地时间差,可以怎么获取呢?
也可以通过公式计算出来:
先假设A和B的本地时钟是一样的(当然这个假设明显不成立),那么TB = TA1 + P,把上面的P套入公式,整理后可以的TB = (TA1 + TA2) / 2, 可是实际上A 和 B之间是有时间差 X 的,于是 TB + X = (TA1 + TA2) / 2, 整理后可得 X = (TA1 + TB2) / 2 - TB.