精华内容
下载资源
问答
  • NTP 时钟同步协议
    2020-07-27 09:35:34

    NTP 时钟同步协议
    网络时间协议(Network Time Protocol,NTP)是以交换封包把两台电脑的时钟同步化的网络协议。NTP使用udp123作为端口。

    思科
    R1(config)#clock timezone UTC +8
    修改时区
    R1#clock set 11:11:11 21 jan 2020
    修改时间
    R1(config)#ntp master
    设置为时间同步服务器
    R2(config)#ntp server 1.1.1.1
    设置此设备为时间服务器的客户端,1.1.1.1为服务器的地址
    验证
    R1#show ntp status
    R1#show ntp associations

    华为
    [HUAWEI] ntp-service refclock-master
    设置本地设备时钟作为NTP主时钟
    display ntp-service status命令用来查看NTP的状态信息。
    display ntp-service sessions命令用来查看本地NTP维护的所有会话信息。

    更多相关内容
  • H3C_NTP时钟同步基础配置案例,原创文档。 适用于H3CV7版本的网络设备,包括交换机、路由器等。 搭建环境为HCL3.0.1,适用于刚入门的网络工程师学习参考。
  • redhat/centos 7 搭建NTP服务器,yum安装 ntp服务,并对外提供时间服务的详细说明
  • NTP时钟同步配置

    千次阅读 2021-02-25 19:26:48
    Centos7 NTP时钟同步配置 01、计算机时钟偏差分析 通用PC机自带两类时钟源:硬件时钟和软件时钟(或称为系统时钟)。不论是硬件时钟还是软件时钟,都是由石英晶体振荡器驱动的,通过累计石英晶体振荡器输出脉冲数,...

    Centos7 NTP时钟同步配置
    01、计算机时钟偏差分析

    通用PC机自带两类时钟源:硬件时钟和软件时钟(或称为系统时钟)。不论是硬件时钟还是软件时钟,都是由石英晶体振荡器驱动的,通过累计石英晶体振荡器输出脉冲数,换算出时间。所以计算机时钟的准确度取决于晶振频率准确度。受温度变化、电压、芯片老化等因素影响,晶振频率会发生小幅度波动,其中温度对晶振频影响最大。

    由于工艺和材料的原因,同一生产线上标称频率相同的石英晶体,其实际频率是不同的,实际频率与标称频率偏差率从10-4量级到10-9量级不等。以10-4量级为例,时钟每天至少误差8.64 s。

    02、基于NTP减少计算机时钟频率偏差

    时钟频率偏差是时钟长期计时累积误差的主要原因,要提高时钟长期计时精度,必须补偿时钟频率偏差。联网的计算机可采用NTP方式,可非常方便地校准时钟频率偏差。以NTP服务器时钟为标准时间,在某一时刻设置NTP客户机时间为NTP服务器当前时间T0,经过一段时间后,NTP服务器时间为T0+tsn,NTP客户端时间为T0+tcn。因为存在时钟频率偏差,tsn与tcn并不相等。NTP客户端时间tcn需乘以时钟频率偏差系数k才等于tsn,即tsn=k×tcn,所以k=tsn/tcn。

    任何晶振实际工作频率都是不稳定的,只是程度不同而已。即使温度补偿的晶振,在常温范围内(摄氏10℃~35℃)也有大约5×10-7~2×10-6的误差。晶振实际频率是受外界多种因素(温度、电压、老化等)影响而改变的。因此,时钟频率偏差系数k并非恒定不变的。每隔一定时间,NTP客户机要对时钟频率偏差系数k进行校正,才能保证计时精度。

    NTP在Linux
    下有两种时钟同步方式:直接同步(也称跳跃同步)和平滑同步(也称微调同步)。
    直接同步
    使用ntpdate命令进行同步,直接进行时间变更。
    如果服务器上存在一个12点运行的任务,当前服务器时间是13点,但标准时间时11点,使用此命令可能会造成任务重复执行。因此使用ntpdate同步可能会引发风险,因此该命令也多用于配置时钟同步服务时第一次同步时间时使用。
    注意:如果NTP Client和NTP Server时间偏差太大,可能导致Client的ntpd进程退出。

    平滑同步

    使用ntpd进行时钟同步,可以保证一个时间不经历两次,它每次同步时间的偏移量不会太陡,是慢慢来的,这正因为这样,ntpd平滑同步可能耗费的时间比较长。刚开始可能时钟不同步,多等待时间后慢慢就同步了。

    如果配置成平滑同步 ,vi /etc/sysconfig/ntpd,在OPTIONS选项中增加"-x"参数:
    SYNC_HWCLOCK=yes
    OPTIONS="-g -x"

    查看网络中的NTP服务器

    [root@localhost ~]# ntpq  -p
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    +ntp1.flashdance 192.36.143.153   2 u  383  256  376  319.818   18.600   9.687
    *tock.ntp.infoma .GPS.            1 u  191  256  377  242.887  -38.469  10.506
    +ntp.xtom.nl     193.79.237.14    2 u  139  256  277  143.730    8.851   4.274
    -time.cloudflare 10.12.2.186      3 u  186  256  317  210.689   -1.533   7.971
     localhost       .INIT.          16 l    - 1024    0    0.000    0.000   0.000
    

    状态说明

    *表示目前使用的NTP Server,这里选择的本机;
    st:即stratum阶层,值越小表示ntp serve的精准度越高;
    when:单位秒,几秒前曾做过时间同步更新的操作;
    poll表示,每隔多少毫秒与ntp server同步一次;
    reach:已经向上层NTP服务器要求更新的次数;
    delay:网络传输过程钟延迟的时间;
    offset:时间补偿的结果;
    jitter:Linux系统时间与BIOS硬件时间的差异时间

    注意:

    1. NTP Server端重启后,Client端需要等5分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。等待的时间可以通过命令 watch ntpq -p来监控。

    实验:

    局域网内的NTP同步配置
    局域网内1台服务器作为NTP Server,2台服务器作为NTP Client与服务器进行时钟同步:
    IP 描述
    192.168.40.111 ntpd Server,用于和外部公共ntpd同步标准时间,同时作为内网的Server
    192.168.40.113 ntpd Client,用于与ntpd Server同步时间

    1.在实验时NTP服务需要使用到UDP端口号123,需要打开,或者关闭防火墙
    2.通过date把时间改了在进行下一步操作
    3.修改/etc/ntp.conf文件

    # For more information about this file, see the man pages
    # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
    driftfile /var/lib/ntp/drift
    # Permit time synchronization with our time source, but do not
    # permit the source to query or modify the service on this system.
    restrict default nomodify notrap nopeer noquery
     
    # Permit all access over the loopback interface.  This could
    # be tightened as well, but to do so would effect some of
    # the administrative functions.
    restrict 127.0.0.1
    restrict ::1
     
    # Hosts on local network are less restricted.
    #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 
    # 允许内网其他机器同步时间,如果不添加该约束默认允许所有IP访问本机同步服务
    restrict 192.168.40.0 mask 255.255.255.0 nomodify notrap (修改)
     
    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    #server 0.centos.pool.ntp.org iburst
    #server 1.centos.pool.ntp.org iburst
    #server 2.centos.pool.ntp.org iburst
    #server 3.centos.pool.ntp.org iburst
     
    # 配置和上游标准时间同步 (添加)
    #server 101.201.72.121   # 中国国家授时中心
    #server 133.100.11.8  #日本[福冈大学]
    server ntp.ntsc.ac.cn   #中科院
    server time2.aliyun.com #阿里云NTP
    server cn.ntp.org.cn    #国家授时中心
    server 3.cn.pool.ntp.org
    server 1.asia.pool.ntp.org
    server 3.asia.pool.ntp.org
     
    # 配置允许上游时间服务器主动修改本机(内网ntp Server)的时间  (添加)
    #restrict  101.201.72.121  nomodify notrap noquery
    #restrict 133.100.11.8 nomodify notrap noquery
    restrict ntp.ntsc.ac.cn      nomodify notrap noquery
    restrict time2.aliyun.com    nomodify notrap noquery
    restrict cn.ntp.org.cn       nomodify notrap noquery
    restrict 3.cn.pool.ntp.org nomodify notrap noquery
    restrict 1.asia.pool.ntp.org nomodify notrap noquery
    restrict 3.asia.pool.ntp.org nomodify notrap noquery
     
    # 确保localhost有足够权限,使用没有任何限制关键词的语法。
    # 外部时间服务器不可用时,以本地时间作为时间服务。
    # 注意:这里不能改,必须使用127.127.1.0,否则会导致无法
    #在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误。
    #在ntp客户端用ntpdate –d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。
    #这是因为NTP server还没有和其自身或者它的server同步上。
    #以下的定义是让NTP Server和其自身保持同步,如果在ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。
    #下面这个配置,建议NTP Client关闭,建议NTP Server打开。因为Client如果打开,可能导致NTP自动选择合适的最近的NTP Server、也就有可能选择了LOCAL作为Server进行同步,而不与远程Server进行同步。
     
    server 127.127.1.0  # local clock
    fudge 127.127.1.0  stratum 10
    
    1. 修改完以后重启ntp服务
      systemctl restart ntpd
    2. 客户端配置
    # For more information about this file, see the man pages
    # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
     
    driftfile /var/lib/ntp/drift
     
    # Permit time synchronization with our time source, but do not
    # permit the source to query or modify the service on this system.
    restrict default nomodify notrap nopeer noquery
     
    # Permit all access over the loopback interface.  This could
    # be tightened as well, but to do so would effect some of
    # the administrative functions.
    restrict 127.0.0.1
    restrict ::1
     
    # Hosts on local network are less restricted.
    #restrict 192.168.40.0 mask 255.255.255.0 nomodify notrap
     
    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    #server 0.centos.pool.ntp.org iburst
    #server 1.centos.pool.ntp.org iburst
    #server 2.centos.pool.ntp.org iburst
    #server 3.centos.pool.ntp.org iburst
     
    #配置上游时间服务器为本地的ntpd Server服务器  (添加)
    server 192.168.40.111
     
    # 配置允许上游时间服务器主动修改本机的时间     (添加)
    restrict 192.168.40.111 nomodify notrap noquery
     
    #下面这个配置,建议NTP Client关闭,建议NTP Server打开。因为Client如果打开,可能导致NTP自动选择合适的最近的NTP Server、也就有可能选择了LOCAL作为Server进行同步,而不与远程Server进行同步。
    #server 127.127.1.0  # local clock  (添加)
    #fudge 127.127.1.0  stratum 10   (添加)
    
    1. 启动ntp服务
    systemctl  start  ntpd
    
    1. 查看ntp状态
     # ntpq -p
    
    1. date查看时间是否更改需要等待5分钟
      借鉴学习文献:https://blog.csdn.net/sunny05296/article/details/65980897?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161425347516780255268536%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161425347516780255268536&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~hot_rank-1-65980897.first_rank_v2_pc_rank_v29&utm_term=NTP%E6%97%B6%E9%92%9F%E5%90%8C%E6%AD%A5%E9%85%8D%E7%BD%AE
      https://blog.csdn.net/hhcjb/article/details/84940823?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161425347516780255268536%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161425347516780255268536&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~hot_rank-10-84940823.first_rank_v2_pc_rank_v29&utm_term=NTP%E6%97%B6%E9%92%9F%E5%90%8C%E6%AD%A5%E9%85%8D%E7%BD%AE
    展开全文
  • 1、SNTP时钟同步,获取指定IP主机系统时间并设置本地时间的程序源码。 2、客户端调用方法。 3、winXP及win7下开启NTP服务方法.pdf 4、NTP协议格式(中文).doc
  • windows NTP时钟同步

    2019-03-06 17:32:01
    本文介绍了NTP基础知识以及在WINDOWS下如何开启NTP服务的操作办法
  • Linux NTP时钟同步

    千次阅读 2018-11-01 00:32:04
    一、为什么要了解时钟同步时钟同步在大数据方向,用到的地方很多。举个例子来说吧,像Zookeeper、RegionServer服务都是需要实时和各节点进行通信的。假如各节点差超过30s,那么RegionServer会由于Zookeeper会话...

    一、为什么要了解时钟同步?

    时钟同步在大数据方向,用到的地方很多。举个例子来说吧,像Zookeeper、RegionServer服务都是需要实时和各节点进行通信的。假如各节点差超过30s,那么RegionServer会由于Zookeeper会话超时而停止服务。所以时钟同步在大数据里被广泛应用且必不可少的一步。

    二、了解时间

    在Linux系统中,时间分为两部分:系统时间和硬件时间。默认情况下,系统时间和硬件时间会以异步的方式进行,互不干扰。系统时间使用CPU tick维持,硬件时间使用Bios维持。在系统开机的时候,会自动从Bios中获取硬件时间,并设置为系统时间。

    三、了解时区

    在Linux系统中,/usr/share/zoneinfo目录下存在很多时区,其中Asia/Shanghai代表中国时区,如果需要更改时区,仅需做个软链接到/etc目录,软链名字为localtime

    四、了解NTP

    NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。

    使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。

    对于运行NTP的本地系统,既可以接收来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。

    五、NTP时间同步方案选择

    ​ NTP同步方式在linux下一般两种:使用ntpdate命令直接同步和使用NTPD服务平滑同步。有什么区别呢,简单说下,免得时间长了,概念又模糊。

    ​ 现有一台设备,系统时间是 13:00 , 真实的当前时间(在空中,也许卫星上,这里假设是在准备同步的上级目标NTP服务器)是: 12:30 。如果我们使用ntpdate同步(ntpdate -u 目标NTP服务器IP),操作系统的时间立即更新为12:30,假如,我们的系统有一个定时应用,是在每天12:40运行,那么实际今天这个的任务已经运行过了(当前时间是13:00嘛),现在被ntpdate修改为12:30,那么意味作10分钟后,又会执行一次任务,这就糟糕了,这个任务只能执行一次的嘛!!我想你已经懂了ntpdate时间同步的隐患,当然这个例子有些极端,但的确是有风险的,生产环境我不打算这么干,还是稳妥点好。所以解决该问题的办法就是时间平滑更改,不会让一个时间点在一天内经历两次,这就是ntpd服务方式平滑同步时间,它每次同步时间的偏移量不会太陡,是慢慢来的(问:怎么来,没有细究,只晓得一次一点的同步,完全同步好需要较长时间,所以一般开启ntpd服务同步前先用ntpdate先手动同步一次)。

    六、时间同步方案说明

    上面介绍了那么多,需要如何做呢?假设有三台主机搭建的集群,使用ntp服务进行时钟同步,主节点作为时钟源:

    • 设置上海时区(各节点)
    • yum安装ntp服务,并设置为ntpd开机自启动,修改ntp配置文件,开启ntp服务(各节点)
    • 硬件时间以系统时间为标准进行同步(主节点)
    • 从节点使用ntpdate -u命令进行时钟同步,并开启ntpd服务

    配置文件修改说明:

    主节点修改:

    # 将下列字段注释:
        # server 0.centos.pool.ntp.org iburst
        # server 1.centos.pool.ntp.org iburst
        # server 2.centos.pool.ntp.org iburst
        # server 3.centos.pool.ntp.org iburst
    # 添加:
        server 127.127.1.0   # 表示NTP主服务器是与自身的系统时钟同步
        fudge 127.127.1.0 stratum 10   # 指定阶层编号为10,降低其优先度
    

    从节点修改:

    # 将下列字段注释:
        # server 0.centos.pool.ntp.org iburst
        # server 1.centos.pool.ntp.org iburst
        # server 2.centos.pool.ntp.org iburst
        # server 3.centos.pool.ntp.org iburst
    # 添加:
        server 127.127.1.0   # 表示NTP主服务器是与自身的系统时钟同步
        fudge 127.127.1.0 stratum 10   # 指定阶层编号为10,降低其优先度
        server liuyzh1.xdata   # 配置时间服务器为本地的时间服务器
        restrict liuyzh1.xdata nomodify notrap noquery   # 允许上层时间服务器主动修改本机时间
    

    配置参数和命令简单说明请参考:点击访问

    总结:

    上面采取的是ntpdate + ntpd的同步方案。先使用ntpdate命令实现时间同步,然后再开启ntpd服务进行平滑式的逐渐时间调整。

    修改主节点配置文件,使NTP主服务器与自身系统时钟同步,也就是说主节点为时间服务器。

    修改从节点配置文件,配置主节点为本地的时间服务器,允许主节点主动修改本机时间。

    七、具体的脚本命令

    可以新建文件,里面存放集群内所有需要时钟同步的节点

    192.168.162.41
    192.168.162.42
    192.168.162.43
    # 将上面节点ip保存到 ~/nodeslist下
    
    #!/usr/bin/env bash
    bin=`dirname $0`
    bin=`cd "$bin"; pwd`
    cd $bin
    host_list=$(cat ~/nodeslist)
    master_hostip=$(sed -n 1p ~/nodeslist)
    ips_no_host=$(sed -n '2,$p' ~/nodeslist)
    # 判断当前系统版本,方便用户单独执行
    os_version=`sh checkOSVersion.sh`
    # 遍历所有节点
    # 操作:1.修改时区为上海时区 2.设置开机自启动 3.修改配置文件ntp.cnf
    for host in $host_list
    do
        # 设置时区
        ssh $host ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
        # 开机自启动
        flag=`ssh $host grep -c \"service ntpd restart\" /etc/rc.d/rc.local`
        if [ $flag -eq '0' ]; then
            ssh $host "echo service ntpd restart >> /etc/rc.d/rc.local"
            echo "service ntpd restart in /etc/rc.d/rc.local add successfully!"
        else
            echo "service ntpd restart in /etc/rc.d/rc.local already exist, not need to add."
        fi
        flag=`ssh $host grep -c \"hwclock --systohc\" /etc/rc.d/rc.local`
        if [ $flag -eq '0' ]; then
            ssh $host "echo "hwclock --systohc" >> /etc/rc.d/rc.local"
            echo "hwclock --systohc in /etc/rc.d/rc.local add successfully!"
        else
            echo "hwclock --systohc in /etc/rc.d/rc.local already exist, not need to add."
        fi
        ssh $host "chmod +x /etc/rc.d/rc.local"
        # 安装ntp服务
        ssh $host yum install -y -q ntp
        if [[ $os_version = "centos6" ]];then
            ssh $host "sed -i -e '22 s/^/# /' -i -e '23 s/^/# /' -i -e '24 s/^/# /' -i -e '25 s/^/# /' /etc/ntp.conf"
        else
            ssh $host "sed -i -e '21 s/^/# /' -i -e '22 s/^/# /' -i -e '23 s/^/# /' -i -e '24 s/^/# /' /etc/ntp.conf"
        fi
        flag=`ssh $host grep -c \"server 127.127.1.0\" /etc/ntp.conf`
        if [ $flag -eq '0' ]; then
            ssh $host "echo server 127.127.1.0 >> /etc/ntp.conf"
            echo "server 127.127.1.0 in /etc/ntp.conf add successfully!"
        else
            echo "server 127.127.1.0 in /etc/ntp.conf already exist,not need to add."
        fi
        flag=`ssh $host grep -c \"fudge 127.127.1.0 stratum 10\" /etc/ntp.conf`
        if [ $flag -eq '0' ]; then
            ssh $host "echo fudge 127.127.1.0 stratum 10 >> /etc/ntp.conf"
            echo "fudge 127.127.1.0 stratum 10 in /etc/ntp.conf add successfully!"
        else
            echo "fudge 127.127.1.0 stratum 10 in /etc/ntp.conf already exist,not need to add."
        fi
    done
    # 主节点操作
    # 1.重启ntpd 2.硬件时间以系统时间为标准进行同步 3.打印主节点当前系统时间
    service ntpd restart
    hwclock --systohc
    echo -e "\e[0;32;1m==== "$master_hostip"当前系统时间为: ====\e[0m"
    date
    echo -e "\e[0;32;1m==== "$master_hostip"当前硬件时间为: ====\e[0m"
    hwclock
    # 从节点操作,开启ntp服务,使用ntpdate命令进行时钟同步
    for slave in $ips_no_host
    do
        echo -e "\e[0;33;1m==== 开始对"$slave"进行时钟同步配置 ====\e[0m"
        # 将 server 主节点 写入配置文件/etc/ntp.conf中
        flag=`ssh $slave grep -c \"server $master_hostip\" /etc/ntp.conf`
        if [ $flag -eq '0' ]; then
            ssh $slave "echo server $master_hostip >> /etc/ntp.conf"
            echo "server $master_hostip in /etc/ntp.conf add successfully!"
        else
            echo "server $master_hostip in /etc/ntp.conf already exist,not need to add."
        fi
        # 将 restrict 主节点 nomodify notrap noquery 写入配置文件/etc/ntp.conf中
        flag=`ssh $slave grep -c \"restrict $master_hostip nomodify notrap noquery\" /etc/ntp.conf`
        if [ $flag -eq '0' ]; then
            ssh $slave "echo restrict $master_hostip nomodify notrap noquery >> /etc/ntp.conf"
            echo "restrict $master_hostip nomodify notrap noquery in /etc/ntp.conf add successfully!"
        else
            echo "restrict $master_hostip nomodify notrap noquery in /etc/ntp.conf already exist,not need to add."
        fi
        ssh $slave service ntpd restart
        ssh $slave "ntpdate -u $master_hostip"
        echo -e "\e[0;32;1m==== "$slave"当前系统时间为: ====\e[0m"
        ssh $slave "date"
        ssh $slave "hwclock --systohc"
        echo -e "\e[0;32;1m==== "$slave"当前硬件时间为: ====\e[0m"
        ssh $slave "hwclock"
        echo -e "\e[0;33;1m==== 完成对"$slave"的时钟同步配置 ====\e[0m"
    done
    echo -e "\e[0;32;1m==== 时钟同步配置流程结束 ====\e[0m"
    

    更多精彩干货内容,请关注微信公众号,谢谢

    展开全文
  • NTP时钟同步原理及误差简析

    万次阅读 2018-12-10 15:33:27
    在我们某试验系统方案设计中,由于...但要求WP4000变频功率测试系统与其它系统之间保持同步,在同步性要求不是特别高的情况下,可以采用NTP时钟同步的方式进行多系统间的同步,以下就NTP时钟同步系统误差进行简析...

    在我们某试验系统方案设计中,由于数据同步性的要求,需要将我们WP4000变频功率分析仪的时钟与客户的NI系统的时钟进行同步,对于WP4000变频功率测试系统而言,多台分析仪之间可通过同步光纤接口达到严格同步,同步时序达us级。但要求WP4000变频功率测试系统与其它系统之间保持同步,在同步性要求不是特别高的情况下,可以采用NTP时钟同步的方式进行多系统间的同步,以下就NTP时钟同步系统误差进行简析。

    一、NTP协议简介

    网络时间协议NTP(Network Time Protocol)的主要开发者是美国特拉华大学的MILLS David L教授设计实现的,由时间协议、ICMP时间戳消息及IP时间戳选项发展而来。NTP用于将计算机客户或服务器的时间与另一服务器同步,使用层次式时间分布模型。在配置时,NTP可以利用冗余服务器和多条网络路径来获得时间的高准确性和高可靠性。即使客户机在长时间无法与某一时间服务器相联系的情况下,仍可提供高准确度时间。

    实际应用中,还有确保秒级精度的简单的网络时间协议SNTP(Simple Network Time Protocol)。SNTP是NTP的一个子集,主要用于那些不需要NTP的精度以较高实现复杂性的网络时间同步客户机。SNTP协议已减少了网络延时对校对准确的影响,但没有冗余服务器和校正时钟频率误差功能。

    一般的计算机和嵌入式设备在时钟度方面没有明确的指标要求, 时钟精度只有10-4~10-5,每天可能误差达十几秒或更多,如果不及时校正,其累积时间误差不可忽视。许多工业控制过程需要高准确度时间,如:电力系统内众多的计算机监控系统、保护装置、故障录波器等时间同步要在ms级以内。

    联网计算机同步时钟最简便的方法是网络授时。网络授时分为广域网授时和局域网授时。广域网授时精度通常能达50ms级,但有时超过500ms,这是因为每次经过的路由器路径可能不相同。现在还没有更好的办法将这种不同路径延迟的时间误差完全消除。局域网授时不存在路由器路径延迟问题,因而授时精度理论上可以提到亚毫秒级。Windows内置NTP服务,在局域网内其最高授时精度也只能达10ms级。因此,提高局域网NTP授时精度成为一个迫切需要解决的问题。

    二、NTP授时原理

    NTP最典型的授时方式是Client/Server方式。如下图1所示,客户机首先向服务器发送一个NTP 包,其中包含了该包离开客户机的时间戳T1,当服务器接收到该包时,依次填入包到达的时间戳T2、包离开的时间戳T3,然后立即把包返回给客户机。客户机在接收到响应包时,记录包返回的时间戳T4。客户机用上述4个时间参数就能够计算出2个关键参数:NTP包的往返延迟d和客户机与服务器之间的时钟偏差t。客户机使用时钟偏差来调整本地时钟,以使其时间与服务器时间一致。

    图1 Client/Server方式下NTP授时原理

    图1中:T1为客户发送NTP请求时间戳(以客户时间为参照);T2为服务器收到NTP请求时间戳(以服务器时间为参照);T3为服务器回复NTP请求时间戳(以服务器时间为参照);T4为客户收到NTP回复包时间戳(以客户时间为参照);d1为NTP请求包传送延时,d2为NTP回复包传送延时;t为服务器和客户端之间的时间偏差,d为NTP包的往返时间。

    现已经T1、T2、T3、T4,希望求得t以调整客户方时钟:

    ....................................................式(1)

    假设NPT请求和回复包传送延时相等,即d1=d2,则可解得“

    .....................................式(2)

    根据式(1),t也可表示为:t=(T2-T1)+d1=(T2-T1)+d/2.....................式(3)

    可以看出,t、d只与T2、T1差值及T3、T4差值相关,而与T2、T3差值无关,即最终的结果与服务器处理请求所需的时间无关。因此,客户端即可通过T1、T2、T3、T4计算出时差t去调整本地时钟。

    三、NTP授时精度分析

    NTP授时精度与NTP服务器与用户间的网络状况有关,主要取决于NTP包往返路由的延时对称程度,往返路由的延时不对称值最大不超过网络延时。式(2)是在假设NTP请求和回复包在网上传送延时相等,即d1=d2=d/2的情况下得出的,而d1、d2的取值范围在(0...d)间,由式(3)可以得出最大授时误差是±d/2。一般广域网的网络延时在10 ms~500ms之间;局域网的网络延时在计时操作系统内核处理延迟的情况下通常小于1ms。

    假定局域网内NTP延时小于1ms,理论上授时误差小于0.5ms,但对于Windows操作系统内置的NTP客户和NTP服务,并不能达到此精度。Windows NTP时钟分辨率因操作系统和硬件不同而有所不同,时钟分辨率通常为10ms或15ms。基于Windows操作系统内置的NTP授时精度最高不超过10ms。

    四、基于NTP减少计算机时钟偏差

    01、计算机时钟偏差分析

    通用PC机自带两类时钟源:硬件时钟和软件时钟(或称为系统时钟)。不论是硬件时钟还是软件时钟,都是由石英晶体振荡器驱动的,通过累计石英晶体振荡器输出脉冲数,换算出时间。所以计算机时钟的准确度取决于晶振频率准确度。受温度变化、电压、芯片老化等因素影响,晶振频率会发生小幅度波动,其中温度对晶振频影响最大。

    由于工艺和材料的原因,同一生产线上标称频率相同的石英晶体,其实际频率是不同的,实际频率与标称频率偏差率从10-4量级到10-9量级不等。以10-4量级为例,时钟每天至少误差8.64 s。

    02、基于NTP减少计算机时钟频率偏差

    时钟频率偏差是时钟长期计时累积误差的主要原因,要提高时钟长期计时精度,必须补偿时钟频率偏差。联网的计算机可采用NTP方式,可非常方便地校准时钟频率偏差。以NTP服务器时钟为标准时间,在某一时刻设置NTP客户机时间为NTP服务器当前时间T0,经过一段时间后,NTP服务器时间为T0+tsn,NTP客户端时间为T0+tcn。因为存在时钟频率偏差,tsn与tcn并不相等。NTP客户端时间tcn需乘以时钟频率偏差系数k才等于tsn,即tsn=k×tcn,所以k=tsn/tcn。

    任何晶振实际工作频率都是不稳定的,只是程度不同而已。即使温度补偿的晶振,在常温范围内(摄氏10℃~35℃)也有大约5×10-7~2×10-6的误差。晶振实际频率是受外界多种因素(温度、电压、老化等)影响而改变的。因此,时钟频率偏差系数k并非恒定不变的。每隔一定时间,NTP客户机要对时钟频率偏差系数k进行校正,才能保证计时精度。

    五、进一步提高NTP授时精度的方法

    局域网络延相对较大的原因在于时间戳一般都是在应用层加盖。为减少操作系统内核处理延时的影响提高NTP授时精度,发/收NTP包时间戳应尽量接近主机真实发/收包时刻。在不改变硬件的条件下,一个可行的办法是修改网卡驱动程序,将记录NTP包发/收时间戳从应用程序移至网卡驱动程序处,可消除操作系统内核处理延时不确定而引入的误差。这种方法在局域网中可大幅提高NTP授时精度至μs级。

    为了减少温度引起晶振频率漂移对时钟准确度的影响,可以采用数字温漂补偿方法,提高时钟长期计时准确度。先测出工作温度范围内温度对应的温漂补偿系数,工作时每隔一定时间,根据实际温度查出对应补偿系数动态地修正时间。

    时钟频率偏差和时钟分辨率低是局域网NTP授时精度不高的主要原因。

    [原文:https://www.vfe.cc/]

    展开全文
  • NTP时钟同步

    千次阅读 2019-07-05 21:53:36
    选择一台机器作为同步服务A,A与外网同步,B,C 同步A 配置A:sudo vi /etc/ntp.conf 删除默认配置: #restrict default kod nomodify notrap nopeer noquery #restrict -6 default kod nomodify notrap nope.....
  • 一 实验环境 前提条件: 需要确保ntp服务端能连外网。...在服务端和客户端都安装下ntp(ntp安装包包含ntpdate): wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p3.tar.gz tar zxf ntp-4.
  • 原标题:linux下ntp时钟同步的搭建和使用(超详细)NTP(Network Time Protocol),即网络时间协议,它是用来同步网络中各个计算机的时间的一种协议。在生产和学习过程中,是一个最容易被忽略却又很重要的协议。 一、...
  • ntp同步服务器时间NTP服务目前用的并不多,最近做一个项目,DB2集群,对时间一致性有些要求,所以想了ntp,虽说timed也可以用,但是只对广播域有效,还是ntp功能强大些。配置:首先,选择一台服务器作为校准服务器。...
  • NTP时钟同步服务器

    2021-07-31 09:06:45
    NTP时钟同步服务器是针对计算机、自动化装置等进行校时而研发的高科技产品,中文名NTP时钟同步服务器产品类型针对计算机、自动化装置等进行校时而研发的高科技产品NTP时钟同步服务器基本内容编辑语音NTP时钟同步...
  • ntp时钟同步服务

    千次阅读 2019-04-08 18:37:20
    因为公司内部服务器不能上外网,内部没有同一时间标准,因此时间的同步有了需求。目前所使用的就是 Network Time Protocol 协议。...(3)NTP 客户端接收到 NTP 服务器的消息后,以进行调整,从而完成时间同步 ...
  • [转载]NTP时钟同步原理及误差简析

    千次阅读 2019-03-01 07:23:01
    一、NTP协议简介   网络时间协议NTP(Network Time Protocol)的主要开发者是美国特拉华大学的MILLS David L教授...NTP用于将计算机客户或服务器的时间与另一服务器同步,使用层次式时间分布模型。在配置时,NTP可以...
  • 环境说明 NTP服务端:Rich63.cn IP:192.168.1.63 ...修改配置文件,使该NTP服务器在不联网的情况下,使用本服务器的时间作为同步时间 vim /etc/ntp.conf # 编辑配置文件,注释掉以下4行 #server 0.centos.pool.ntp.o
  • 该文档详细介绍了在多台服务器中运行大数据框架时所存在的时间不同步问题的解决办法
  • 内网配置NTP时钟同步

    2018-10-22 22:57:22
    环境介绍Node1作为NTP主节点,其他所有节点从node1进行时间同步,节点 IpNode1 192.168.20.101Node2 192.168.20.102 所有节点安装ntp包: yum install ntp 修改node1主节点的/etc/ntp.conf添加如下内容: ...
  • 整合网络时间同步系统(NTP时钟同步设备)解决方案 整合网络时间同步系统(NTP时钟同步设备)解决方案 电力系统对统一时间的要求愈来愈迫切,高精度、可管理、高可靠的时间同步网已经成为现代化电力系统稳定运行的...
  • ntp时钟同步

    2018-02-05 17:06:16
    服务器时间的一致性,很关键的。...[root@server0 ~]# yum -y install chrony //NTP客户端 centos7.x centos6.x ntp [root@server0 ~]# vim /etc/chrony.conf server classroom.example.com iburst [ro
  • 基于HPC互联模拟环境动态NTP时钟同步算法,李奇龙,罗红,HPC互联模拟环境对于降低超级计算机研发成本,缩短开发周期具有重要意义。然而,HPC互联模拟环境下各个节点相互协作共同完成并行任
  • 计算机网络系统 NTP时钟同步服务器 IP地址汇总 中国国家授时中心的时间服务器IP地址及时间同步方法(附多个时间服务器地址) 大家都知道计算机电脑的时间是由一块电池供电保持的,而且准确度比较差经常出现走时不准...
  • 今天不是不是很忙,趁着这会有时间就来和大家聊聊Linux的NTP时间同步设置问题。其实这个操作很简单,只需要几步可以了。下面我做一个示范: 一、确认时区,如果不正确修改即可 看时间就知道不是我们常用的时区,...
  • 本篇文章主要介绍了在 Ubuntu 中使用 NTP 进行时间同步设置,通常客户端向服务器请求当前的时间,并根据结果来设置其时钟
  • Windows与Linux的NTP时钟同步

    千次阅读 2021-11-25 16:36:06
    根据chrony官网提示,如果linux去同步windows系统需要更改默认的maxdistance值,官网建议改为16.0
  • 1U机架式NTP时钟同步设备(NTP服务器)设计原理 1U机架式NTP时钟同步设备(NTP服务器)设计原理 时钟同步装置是针对计算机、自动化装置等进行校时而研发的高科技设备,该产品可从GPS卫星(北斗卫星、B码接口、PTP)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,951
精华内容 5,580
关键字:

ntp时钟同步

友情链接: base.zip