• NTP报文解析及对时原理


    参考:https://blog.csdn.net/dosthing/article/details/81588219

    NTP(Network Time Protocol)网络时间协议基于UDP,默认端口为123。

    1、NTP报文示例

    其中192.10.10.189为NTP的server端,192.10.10.32为client端。



    2、NTP服务端与客户端的交互过程

    示意图
    客户端和服务端都有一个时间轴,分别代表着各自系统的时间,当客户端想要同步服务端的时间时,客户端会构造一个NTP协议包发送到NTP服务端,客户端会记下此时发送的时间t0,经过一段网络延时传输后,服务器在t1时刻收到数据包,经过一段时间处理后在t2时刻向客户端返回数据包,再经过一段网络延时传输后客户端在t3时刻收到NTP服务器数据包。t0和t3是客户端时间系统的时间、t1和t2是NTP服务端时间系统的时间,它们是有区别的。
    t0、t1、t2分别对应着server->cient NTP报文中的三个参数:
    t0:origin timestamp
    t1: receive timestamp
    t2: transmit timestamp
    t3为client收到回复报文时本地的时间。

    3、延时和时间偏差计算

    假设:客户端与服务端的时间系统的偏差定义为θ、网络的往/返延迟(单程延时)定义为δ。
    推导过程:
    1)根据交互原理,可以列出方程组:
    t0+θ+δ=t1
    t2-θ+δ=t3
    2)求解方程组,得到以下结果:
    θ=(t1-t0+t2-t3)/2
    δ=(t1-t0+t3-t2)/2
    记忆时可以采用极限法,分别假设延时和偏差为0.

    4、client时间校准:

    对于时间要求不那么精准设备,client端可把server端的返回时间t2固化为本地时间。但是作为一个标准的通信协议,必须计算上网络的传输延时,需要把t2+δ 固化为本地时间。
    以上client时间校准算法只为理解过程,不代表真实做法

    5、报文中其他参数说明

    mode:工作模式

    服务器 / 客户模式(server / client)
    对等体模式(symmetric active / symmetric passive)
    广播模式(broadcast server / broadcast client)
    组播模式(multicast server / multicast client)

    关于NTP的层数

    层数(取值范围 1-15): 层数是NTP中一个比较重要的概念,它基本上可以说是代表了一个时钟的准确度,层数为1的时钟准确度最高,从1到15依次递减.

  • 相关阅读:
    SharePoint Designer
    SharePoint Tricks
    树型dp(2019/1/19学习笔记) by csy
    2019/2/21测试(noip2015提高组day2
    loj刷题记录2019/2/20
    2019/2/16测试
    splay(水题)
    noip2016提高组day2
    2019/2/13测试(noip2016提高组day1原题)
    洛谷p1083借教室
  • 原文地址:https://www.cnblogs.com/21summer/p/14819406.html
Copyright © 2020-2023  润新知