精华内容
下载资源
问答
  • rac节点时间同步方法

    万次阅读 2010-05-06 00:27:00
    author:skatetime:2010-05-06在rac环境中,会要求各个节点之间的时间差不能超时。...或者让节点之间进行时间同步,保证各节点时间同步,但无法保证rac数据库的时间的准确性。 目录:一. 节点间的时间同步方法: 

    author:skate

    time:2010-05-06


    在rac环境中,会要求各个节点之间的时间差不能超时。一般如果超过30秒,节点很可能会重启。
    所以要同步各节点的时间。例如,我们需要配置一个ntp时钟服务器,来给rac的各个节点进行时
    间同步。或者让节点之间进行时间同步,保证各节点的时间同步,但无法保证rac数据库的时间的准确性。

     

    目录:
    一. 节点间的时间同步方法:
            方法一:建立ntp时钟服务器,各节点与ntp server同步时间
            方法二:利用定时任务,让节点间时间同步(用rdate或ntpdate)
    二. ntp相关错误及解决方法
    三. ntp原理

     

    --------------------------------------------------------------------------


    一. 节点间的时间同步方法

     

    环境:ntp server是wxp
          client是centos5


    在这里,我以windows机器(192.168.2.29)做ntp server,以1台linux为clent客户端(192.168.2.245)来说明时间同步方法。

     

    方法一:

     

    1.ntp服务端配置


    首先下载安装windows版的ntp server —— ntp-424p311502-foehr-v2-o-win32-setup

     

    安装很简单,直接运行exe文件即可,安装后修改ntp.conf配置文件,添加如下两行内容:

     

    server 127.127.1.0 prefer      
    fudge 127.127.1.0 stratum 10


    说明:
    127.127.1.0 : 该IP为NTP定义的server自己的IP
    prefer :这个参数表示该server是master server
    fudge:这个参数表示该IP为NTPserver,
    stratum:表示该系统所在的NTP层级.

     

    我的windows ntpserver的"C:/Program Files/NTP/etc/ntp.conf"文件如下:

     

    # NTP Network Time Protocol
    # Configuration File created by Windows Binary Distribution Installer Rev.: 1.22  mbg
    # please check
    http://www.ntp.org for additional documentation and background information

    # Use drift file
    driftfile "C:/Program Files/NTP/etc/ntp.drift"

    # your local system clock, could be used as a backup
    # (this is only useful if you need to distribute time no matter how good or bad it is)
    #server 127.127.1.0
    # but it should operate at a high stratum level to let the clients know and force them to
    # use any other timesource they may have.
    #fudge 127.127.1.0 stratum 12

    #skate add
    server 127.127.1.0 prefer
    fudge 127.127.1.0 stratum 10
    #skate add

    # End of generated ntp.conf --- Please edit this to suite your needs

     

     

    配置完成后,重新启动ntp

    重启方法:开始-》运行-》services.msc-》Network Time Protocol Daemon。

     

    2.配置client的linux

     

    A.修改客户端linux的配置文件 /etc/ntp.conf,添加如下一行

    server 192.168.2.29 prefer

     

    如果是多个time server服务器的话,可以按如下的方式:

     

    server 192.168.2.29 prefer        ---prefer表示该server是master server
    server 192.168.3.29
    server 192.168.4.29
    server 192.168.5.29

     

    注释掉如下一行
    server 127.127.1.0 # local clock

     


    在这里要另外说一下,网上的有朋友说要把

    “fudge   127.127.1.0 stratum 10” 改成 “fudge   192.168.2.29 stratum 10”

     

    但经过我的测试发现,如果这样修改的的话,就不能自动同步时间了。

     

     

    我的客户端的linux的 /etc/ntp.conf 内容如下:


    [root@localhost ~]# more /etc/ntp.conf
    # 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 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


    # -- CLIENT NETWORK -------
    # Permit systems on this network to synchronize with this
    # time service.  Do not permit those systems to modify the
    # configuration of this service.  Also, do not use those
    # systems as peers for synchronization.
    # restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap


    # --- OUR TIMESERVERS -----
    # 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
    server 1.centos.pool.ntp.org
    server 2.centos.pool.ntp.org


    # --- NTP MULTICASTCLIENT ---
    #multicastclient                        # listen on default 224.0.1.1
    # restrict 224.0.1.1 mask 255.255.255.255 nomodify notrap
    # restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

     

    # --- GENERAL CONFIGURATION ---
    #
    # Undisciplined Local Clock. This is a fake driver intended for backup
    # and when no outside source of synchronized time is available. The
    # default stratum is usually 3, but in this case we elect to use stratum
    # 0. Since the server line does not have the prefer keyword, this driver
    # is never used for synchronization, unless no other other
    # synchronization source is available. In case the local host is
    # controlled by some external source, such as an external oscillator or
    # another protocol, the prefer keyword would cause the local host to
    # disregard all other synchronization sources, unless the kernel
    # modifications are in use and declare an unsynchronized condition.
    #

    #server 127.127.1.0     # local clock
    fudge   127.127.1.0 stratum 10

    #skate add
    server 192.168.2.29 prefer
    #skate add


    #
    # Drift file.  Put this in a directory which the daemon can write to.
    # No symbolic links allowed, either, since the daemon updates the file
    # by creating a temporary in the same directory and then rename()'ing
    # it to the file.
    #
    driftfile /var/lib/ntp/drift
    broadcastdelay  0.008

    #
    # Keys file.  If you want to diddle your server at run time, make a
    # keys file (mode 600 for sure) and define the key number to be
    # used for making requests.
    #
    # PLEASE DO NOT USE THE DEFAULT VALUES HERE. Pick your own, or remote
    # systems might be able to reset your clock at will. Note also that
    # ntpd is started with a -A flag, disabling authentication, that
    # will have to be removed as well.
    #
    keys            /etc/ntp/keys
    [root@localhost ~]#


    B.修改/etc/ntp/ntpservers文件,把里面的server IP改为自己的ntp server的IP,

       也就是windows机器,下面是我的/etc/ntp/ntpservers:

     

    [root@localhost ~]# more /etc/ntp/ntpservers

    #This file contains a list of ntp servers to show in the system-config-date user interface.
    #It is not recommended that you modify this file by hand.

    0.centos.pool.ntp.org
    1.centos.pool.ntp.org
    2.centos.pool.ntp.org
    3.centos.pool.ntp.org

    #skate add
    192.168.2.29
    #skate add

    [root@localhost ~]#

     

    C.修改/etc/hosts文件,加入windows主机的IP和主机名。---测试中发现不用修改这个

     

    D。手工做一次时间同步,因为如果客户端和时间服务器的时间偏移量超过1000秒,在启动ntp服务后
       客户端不能自动与NTP master服务器进行同步。

     

    [root@localhost ~]# service ntpd status
    ntpd is stopped


    [root@localhost ~]# service ntpd start
    Starting ntpd: [  OK  ]


    [root@localhost ~]# ntpdate 192.168.2.29
     5 May 18:57:55 ntpdate[27167]: the NTP socket is in use, exiting

     

    [root@localhost ~]# ps -ef |grep ntp
    ntp      27164     1  0 19:08 ?        00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
    root     27185 26987  0 19:15 pts/4    00:00:00 grep ntp
    [root@localhost ~]# kill 27164


    [root@localhost ~]# ps -ef |grep ntp
    root     27187 26987  0 19:15 pts/4    00:00:00 grep ntp


    [root@localhost ~]# ntpdate 192.168.2.28
     5 May 19:15:29 ntpdate[27188]: no server suitable for synchronization found

     

    [root@localhost ~]# ntpdate -u 192.168.2.28
     5 May 19:15:40 ntpdate[27190]: no server suitable for synchronization found

     

     间隔一段时间后,就可以同步了,因在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,
     这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。


    [root@localhost ~]# ntpdate 192.168.2.28
     5 May 19:55:49 ntpdate[27226]: step time server 192.168.2.28 offset 939.130626 sec
    [root@localhost ~]# ntpdate 192.168.2.28
     5 May 19:56:25 ntpdate[27227]: adjust time server 192.168.2.28 offset 0.000300 sec

     

    E. 启动客户端的ntp服务

     

    [root@localhost ~]# service ntpd status
    ntpd dead but pid file exists


    [root@localhost ~]# service ntpd start
    Starting ntpd: [  OK  ]


    [root@localhost ~]# service ntpd status
    ntpd (pid 27248) is running...

     
    [root@localhost ~]#

     

    配置其自启动的级别


    [root@localhost ~]# chkconfig --list |grep ntp
    ntpd            0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭
    [root@localhost ~]# chkconfig --level 5 ntpd on
    [root@localhost ~]# chkconfig --list |grep ntp
    ntpd            0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:启用  6:关闭
    [root@localhost ~]#

     

    ##########################################################################


    方法二:

     

    环境:ntp server是redhat4
          client是centos5

     

    除了用上面的ntp协议来实现时间的同步外,还可以用date和ntpdate命令做定时任务来实现和远程服务器同步时间。例如

     

    (一).ntp server端的配置:

     

    1.查看ntp协议是否安装
    2.修改ntp.conf
    3.启动ntp服务

     

    实际步骤:

     

    1.查看ntp协议是否安装


    [root@svr-db-test ~]# rpm -qa | grep ntp
    ntp-4.2.2p1-5.el5
    chkfontpath-1.10.1-1.1
    You have new mail in /var/spool/mail/root

     

    如果没有安装,可以用rpm -Uvh ntp*.rpm或者yum命令安装

     

    2.修改ntp.conf

     

    修改这个配置文件是为了让远程客户端有权来同步时间

     

    [root@svr-db-test ~]# vi /etc/ntp.conf
    # Permit time synchronization with our time source, but do not
    # permit the source to query or modify the service on this system.

     

    #skate modify
    #restrict default kod nomodify notrap nopeer noquery
    #restrict -6 default kod nomodify notrap nopeer noquery
    #skate modify

    #skate add
    restrict default kod nomodify  nopeer noquery
    restrict -6 default kod nomodify  nopeer noquery
    #skate add


    # 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 -6 ::1

    # Hosts on local network are less restricted.
    #restrict 192.168.1.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.rhel.pool.ntp.org
    server 1.rhel.pool.ntp.org
    server 2.rhel.pool.ntp.org

    #broadcast 192.168.1.255 key 42         # broadcast server
    #broadcastclient                        # broadcast client
    #broadcast 224.0.1.1 key 42             # multicast server
    #multicastclient 224.0.1.1              # multicast client
    #manycastserver 239.255.254.254         # manycast server
    #manycastclient 239.255.254.254 key 42  # manycast client

    # Undisciplined Local Clock. This is a fake driver intended for backup
    # and when no outside source of synchronized time is available.
    server  127.127.1.0     # local clock
    server  192.168.2.245
    fudge   127.127.1.0 stratum 10

    # Drift file.  Put this in a directory which the daemon can write to.
    # No symbolic links allowed, either, since the daemon updates the file
    # by creating a temporary in the same directory and then rename()'ing
    # it to the file.
    driftfile /var/lib/ntp/drift

    # Key file containing the keys and key identifiers used when operating
    # with symmetric key cryptography.
    keys /etc/ntp/keys

    # Specify the key identifiers which are trusted.
    #trustedkey 4 8 42

    # Specify the key identifier to use with the ntpdc utility.
    #requestkey 8

    # Specify the key identifier to use with the ntpq utility.
    #controlkey 8
    [root@svr-db-test ~]#

     

    注意:这个文件这里有两种修改方法:


    A、第一种配置:允许任何IP的客户机都可以进行时间同步
    将“restrict default kod nomodify notrap nopeer noquery”这行修改成:
    restrict default kod nomodify notrap nopeer

     

    B、第二种配置:只允许192.168.211.***网段的客户机进行时间同步
    在restrict default kod nomodify notrap nopeer noquery(表示默认拒绝所有IP的时间同步)之后增加一行:
    restrict 192.168.211.0 mask 255.255.255.0 nomodify notrap

     

    但是在我的修改中我只是把”restrict default kod nomodify notrap nopeer noquery“改为
    ”restrict default kod nomodify  nopeer noquery“

     

    为什么这么做呢?如果不去掉notrap的话,在客户端同步时间会报错,例如:

     

    [root@localhost ~]# ntpdate 192.168.2.203
     5 May 21:35:14 ntpdate[27467]: no server suitable for synchronization found

     

    [root@localhost ~]# ntpdate -u 192.168.2.203
     5 May 21:35:07 ntpdate[27466]: no server suitable for synchronization found

     

    [root@localhost ~]# ntpdate -d 192.168.2.203
     5 May 21:35:20 ntpdate[27470]: ntpdate 4.2.0a@1.1190-r Mon Jul 28 11:06:17 EDT 2008 (1)
    Looking for host 192.168.2.203 and service ntp
    host found : 192.168.2.203
    transmit(192.168.2.203)
    transmit(192.168.2.203)
    transmit(192.168.2.203)
    transmit(192.168.2.203)
    transmit(192.168.2.203)
    192.168.2.203: Server dropped: no data
    server 192.168.2.203, port 123
    stratum 0, precision 0, leap 00, trust 000
    refid [192.168.2.203], delay 0.00000, dispersion 64.00000
    transmitted 4, in filter 4
    reference time:    00000000.00000000  Thu, Feb  7 2036 14:28:16.000
    originate timestamp: 00000000.00000000  Thu, Feb  7 2036 14:28:16.000
    transmit timestamp:  cf8bf29b.578ef34d  Wed, May  5 2010 21:35:23.342
    filter delay:  0.00000  0.00000  0.00000  0.00000
             0.00000  0.00000  0.00000  0.00000
    filter offset: 0.000000 0.000000 0.000000 0.000000
             0.000000 0.000000 0.000000 0.000000
    delay 0.00000, dispersion 64.00000
    offset 0.000000

     5 May 21:35:24 ntpdate[27470]: no server suitable for synchronization found

     

     

    出现这个问题的原因可能有二:

     

    1。检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,
       在restrict的定义中使用了notrust的话,会导致以上错误。

     

    解决方法:把restrict定义中的notrust去掉

     

    2。检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。
       如果关闭防火墙,再尝试从ntp客户端的同步,如果成功,证明是防火墙
       的问题,需要更改iptables的设置。
      
    解决方法: service iptables stop


    开始诊断:

     

    在ntp server端执行

    首先看是不是ntp server的防火墙的问题:

    [root@svr-db-test ~]# service iptables status
    防火墙已停

     

    在查看ntp的版本:
    [root@svr-db-test ~]# ntpq -c version
    ntpq 4.2.2p1@1.1570 Wed Nov 29 15:16:31 UTC 2006 (1)中

     

    在我的ntp server的ntp.conf中restrict的定义中使用了notrust,然后修改配置文件
    把notrust去掉,再重起ntp server 的ntp服务,从客户端就可以同步时间了,不过要等几分钟
    因为ntp server要先自己同步一段时间,前面有介绍。在这期间你要尝试同步的话,会得到
    错误”no server suitable for synchronization found“

     

    下面是来自ntp官方网站的说明:
    A. The behavior of notrust changed between versions 4.1 and 4.2.
    B. In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".
    C. In 4.2 (and later) notrust means "Ignore all NTP packets that are not
       cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd

     

    3.启动ntp服务

     

    [root@svr-db-test ~]# service ntpd restart
    ntpd (pid 13608 13597) 正在运行...
    或者
    [root@svr-db-test ~]# /etc/init.d/ntpd restart
    ntpd (pid 13608 13597) 正在运行...
    [root@svr-db-test ~]#

     

    开机启动ntp服务的方法:

     

    [root@svr-db-test ~]# chkconfig --list |grep ntp
    ntpd            0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭
    [root@svr-db-test ~]# chkconfig --level 5 ntpd on
    [root@svr-db-test ~]# chkconfig --list |grep ntp
    ntpd            0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:启用  6:关闭
    [root@svr-db-test ~]#


    (二)。客户端的配置

    利用crontab来执行
    crontab -e
    0 21 * * * ntpdate 192.168.2.29 >> /root/ntpdate.log 2>&1
    每天晚上9点进行同步

    说明:rdate命令时间同步的方法要简单些,也没有ntpdate时间精确。就不介绍了啊


    参考:

    http://www.oracleblog.cn/working-case/install-ntp/
    http://liuchao11006-163-com.javaeye.com/blog/576421

     

     

    -------------------------------------------------------------------------------


    二。ntp相关错误及解决方法

    ntpdate相关命令:

    ntpdate  192.168.2.29
    ntpdate -d 192.168.2.29 调试模式
    ntpdate -u 192.168.2.29  用非授权端口
    ntpdate -s 5 192.168.2.29 延时5秒看行否

     

    1. ntpdate同步时间时经常出错如下:“no server suitable for synchronization found”

     

    A。

      在重启ntp服务的时候,ntp server自身或者与其server的同步的需要一个时间段,
       这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生
       no server suitable for synchronization found的错误。

     

    那么如何知道何时ntp server完成了和自身同步的过程呢?可以用如下的命令

     

    在ntp server上执行:
    [root@svr-db-test ~]# watch ntpq -p

    Every 2.0s: ntpq -p                                                               Wed May  5 22:07:19 2010

         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *LOCAL(0)        .LOCL.          10 l   54   64  377    0.000    0.000   0.001
     192.168.2.245   .INIT.          16 u    -  256    0    0.000    0.000   0.000

     

    注意LOCAL的这个就是与自身同步的ntp server

    注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,
    从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。
    如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。

     

    2.用ntpdate –d ip可能诊断出两个错误

     

    A。错误1.Server dropped: Strata too high

     

    在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客户端。


    server 127.127.1.0              
    fudge 127.127.1.0 stratum 8

     

    B。错误2.Server dropped: no data

     

    这个问题上面已经说过了啊,这里就不说了啊。

     

    参考:
    http://www.blogjava.net/spray/archive/2008/07/10/213964.html


    ---------------------------------------------------------------------

     

     

    三。ntp原理

         NTP(Network Time Protocol)是由美国德拉瓦大学的David L. Mills教授于1985年提出,除了可以估算封包在网络上的往返延迟外,
    还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,它是设计用来在Internet上使不同的机器能维持相同时间
    的一种通信协议。时间服务器(time server)是利用NTP的一种服务器,通过它可以使网络中的机器维持时间同步。在大多数的地方,
    NTP可以提供1-50ms的可信赖性的同步时间源和网络工作路径。

     

          网络时间协议(NTP)的详细说明在RFC-1305[Mills 1992]中。RFC-1305对 NTP协议自动机在事件、状态、转变功能和行为方面给出了明确的说明。它以合适的算法以增强时钟的准确性,并且减轻多个由于同步源而产生的差错,实现了准确性低于毫秒的时间服务,以满足目前因特网中路径量测的需要。

     

    NTP是一个跨越广域网或局域网的复杂的同步时间协议,它通常可获得毫秒级的精度。RFC2030[Mills 1996]描述了SNTP(Simple Network Time Protocol),目的是为了那些不需要完整NTP实现复杂性的主机,它是NTP的一个子集。通常让局域网上的若干台主机通过因特网与其他的NTP主机同步时钟,接着再向局域网内其他客户端提供时间同步服务。

     

    NTP的特点

     

    1,从UTC获取标准时间
    网络时间协议,提供在互连的网络上提供校时服务和发送标准时间给计算机。目前已成为Internet上时间同步的标准协议。NTP提供准确时间,首先要有准确的时间来源,这一时间应是国际标准时间UTC。NTP获得UTC的时间来源可以是原子钟,天文台,卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。

     

    2,NTP服务器分层提供服务
    时间按NTP服务器的等级传播。按照离外部UTC源的远近将所有服务器归入不同的Stratum(层)中。Stratum-1在顶层,由外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。

     

    3,过滤算法选择时间的最佳路径和来源
    计算机主机一般同多个时间服务器连接,利用统计学的算法过滤来自不同服务器的时间包,以选择最佳的路径和来源来校正主机时间。即使主
    机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。

     

    4,识别机制抗干扰和恶意破坏
    为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。


    NTP的实现方式

     

    1,无线时钟:服务器系统可以通过串口连接一个无线时钟。无线时钟接收GPS(全球卫星定位系统)的卫星发射的信号来决定当前时间。
       无线时钟是一个非常精确的时间源,但是需要花一定的费用。

     

    2,时间服务器:还可以使用网络中NTP时间服务器,通过这个服务器来同步网络中的系统的时钟。http://www.eecis.udel.edu/~mills/ntp/servers.html 列出了Internet上有效的一级时间服务器。

     

    3,局域网内的同步:如果只是需要在本局域网内进行系统间的时钟同步,那么就可以使用局域网中任何一个系统的时钟。你需要选择局
       域网中的一个节点的时钟作“权威的”的时间源,然后其它的节点就只需要与这个时间源进行时间同步即可。使用这种方式,所有的节
       点都会使用一个公共的系统时钟,但是不需要和局域网外的系统进行时钟同步。如果一个系统在一个局域网的内部,同时又不能使用
       无线时钟,这种方式是最好的选择。


    NTP的工作模式

     

    1,Sever/Client mode:用户向一个多几个服务器提出服务请求,根据所交换的信息,从中选择认为最准确的时间,并调整本地的时钟。

    2,Multicast/Broadcast mode:此种模式是适用于用在高速的LAN上。利用一个或多个服务器在固定的周期向某个多播地址做广播。

    3,Symmetric mode:二个以上的Server互相进行时间消息的通讯,可以互相校正对方的时间,以维持整个subnet的时间一致性。

     

    NTP协议结构

     

    NTP packet = NTP header + Four TimeStamps = 48bytes
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    [header, 16bytes]
    2   3      3         8              8      8      共32bits
    LI  VN  Mode  Stratum  Poll  Precision
    Root Delay (32bits)
    Root Dispersion (32bits)
    Reference Identifier (32bits)

    [Timestamp 1, 8bytes]
    Reference Timestamp (64bits)

    [Timestamp 2, 8bytes]
    Originate Timestamp (64bits)

    [Timestamp 3, 8bytes]
    Receive Timestamp (64bits)

    [Timestamp 4, 8bytes]
    Transmit Timestamp (64bits)

    Key Identifier (optional) (32bits)
    Message digest (optional) (128bits)
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

     

    字段说明:

    * LI:LeapYearIndicator, 跳跃指示器,警告在当月最后一天的最终时刻插入的迫近闺秒(闺秒)。
    * VN:VersionNumber, 版本号。
    * Mode:模式, 0-预留;1-对称行为;3-客户机;4-服务器;5-广播;6-NTP 控制信息
    * Stratum:层级。
    * Poll:PollInterval, 有符号整数表示连续信息间的最大间隔。
    * Precision:有符号整数表示本地时钟精确度。
    * Root Delay:有符号固定点序号表示主要参考源的总延迟,很短时间内的位15到16间的分段点。
    * Root Dispersion:无符号固定点序号表示相对于主要参考源的正常差错。
    * Reference Identifier:识别特殊参考源。

    * Reference Timestamp
    * Originate Timestamp:这是向服务器请求分离客户机的时间,采用64位时标格式。
    * Receive   Timestamp:这是向服务器请求到达客户机的时间,采用64位时标(Timestamp)格式。
    * Transmit  Timestamp:这是向客户机答复分离服务器的时间,采用64位时标(Timestamp)格式。

    * Authenticator(可选):主要标识符和信息数字域就包括已定义的信息认证代码(MAC)信息。

     

     

    网络延时与时钟偏差的测量

     

    Timestamp Name             ID        When Generated
    Originate Timestamp       T1        time request sent by client
    Receive Timestamp         T2        time request received at server
    Transmit Timestamp        T3        time reply sent by server
    Destination Timestamp   T4        time reply received at client

    t 为服务器和客户端之间的时间偏差;

    d 为两者之间的往返时间

     

    ∵ T2 = T1 + t + d/2; ∴ T2 - T1 = t + d/2;
    ∵ T4 = T3 - t + d/2;  ∴ T3 - T4 = t - d/2;
    ∴ d = (T2 - T1) + (T4 - T3); t = [(T2 - T1) + (T3 - T4)] / 2;

     


    -------end-----

     

     

     

     

     

    展开全文
  • 节点时间是从网络同步时间 从节点是从主节点进行同步时间 首先,查看一下主节点的ntp服务是否启动,输入命令 sudo systemctl status ntpd 如果没有启动,然后再通过启动命令,sudo systemctl start ntpd 再...

    主节点时间是从网络同步时间

    从节点是从主节点进行同步时间

    首先,查看一下主节点的ntp服务是否启动,输入命令  sudo systemctl status ntpd

    如果没有启动,然后再通过启动命令, sudo systemctl start ntpd

    再输入查看命令,如下图所示

    此为还未启动的

    此为启动后的

    启动后,再将从节点的同步机制,从网上同步改为从主节点进行同步

    先进入文件:   sudo vi /etc/ntp.conf

    然后将其同步机制进行修改。

    然后,退出,再启动输入命令    sudo systemctl start ntpd    启动ntpd

    同理,其他从节点也是按此操作。

    最后一步,通过查看命令看他们的同步情况。输入命令   watch ntpq -p

    主节点是从网络同步, 

    所有从节点是从主节点进行同步。

    最后可以通过按 Ctrl +C 退出。

    到此,其NTP的服务配置已经完成。

     

     

     

     

    展开全文
  • 具有不连续不连续节点的复杂网络的有限时间同步
  • 具有时间同步节点定位的工业无线网络协议.pdf
  • 针对传感器网络传统定时同步协议(TPSN)的缺点,我们提出了一种新的时间同步算法,其中几个主节点使用网络模拟器通过多跳无线网络节点之间提供有效的网络范围时间同步。 结果表明,新算法比传统的 TPSN 算法更...
  • 已在Linux操作系统,NS2网络环境中得到验证,实现了WSN中三节点间的时间同步,所上传为工程文件,使得节点间时间偏差小于80us
  • 为满足煤矿井下网络海量节点时间同步高精度、低能耗需求,基于多Sink节点非均匀分簇结构的煤矿井下时间敏感网络(TSN),提出了一种分布式精确时间同步算法。煤矿井下TSN分为3层:包含所有Sink节点的TSN汇聚层;Sink...
  • 无线传感器网络中的关键技术部分,包括时间同步节点定位两方面。
  • 介绍了一种在IEEE 1588协议基础上改进的时间同步算法的实现,通过精简的IEEE1588协议发送的follow-up报文,来降低ZigBee网络的开销,同时改变了同步信息的发起者,由主节点换成从节点,从而适应了ZigBee网络节点即时...
  • 针对煤矿井下液压支架模糊控制监测系统网络拓扑,提出了一种适用于线型结构无线传感器网络时间同步算法。该算法同步过程分为簇间同步和簇内同步,簇间同步采用双向同步机制修正时间偏移的方法减少同步误差,簇内同步...
  • Linux集群下各节点时间同步

    千次阅读 2018-05-18 11:39:40
    所有节点不能连接外网一些命令说明: date命令: date :查看当前时间, date -s 09:38:40 :设置当前时间 ntpdate命令: ntpdate -u 210.72.145.44 :网络时间同步命令 注意:若不加上-u参数,...

    一般而言分三种情况:1,各节点可以连接外网  2.集群中某个节点可以连接外网  3.所有节点不能连接外网

    一些命令说明:                

        date命令
        date :查看当前时间,
        date -s 09:38:40 :设置当前时间
        ntpdate命令
        ntpdate  -u 210.72.145.44 :网络时间同步命令
        注意:若不加上-u参数, 会出现以下提示: no server suitable for synchronization found
        -u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;
        210.72.145.44:中国国家授时中心的官方服务器。
        
        ntp常用服务器
        中国国家授时中心:210.72.145.44
        NTP服务器(上海) :ntp.api.bz
        美国:time.nist.gov 
        复旦:ntp.fudan.edu.cn 
        微软公司授时主机(美国) :time.windows.com 
        台警大授时中心(台湾):asia.pool.ntp.org
        经测试中国国家授时中心与NTP上海服务器可以正常同步时间,注意需要加上-u参数!

        当所有节点都可以联网,在各节点采用上面命令即可,
        如果节点太多,在主节点上用for循环既可:
        for i in`seq 1 82`;do ssh node$i "ntpdate  -u ntp.api.bz"   
        注意 1-82是集群中的计算节点,并且集群已经配置好了ssh
    .

    第二种情况:连不上外网,比如:自己搭建的用来学习的集群中所有机器需要同步时间:

    思路:可以把其中一台配置为时间服务器,其他机器通过定时任务来同步时间

    Linux自带了ntp服务 -- /etc/init.d/ntpd,这个服务不仅可以设置让本机和某台/某些机器做时间同步,

    他本身还可以扮演一个time server的角色,让其他机器和他同步时间。配置文件就是/etc/ntp.conf。

    step1:

            因为实验室集群有83个节点,node100是主节点,所以可以把node100作为time server,node100本身不和其他机器 

            时间同步,就是取本地时间。所以,先把node100机器的时间调准了:

            node100是可以联网的,可以采用上面的方式设置时间,如果不能联网,可以用如下命令手动设置:

                date -s 18/05/2018             -----设置指日期

                date -s 11:12:00     ----设置具体时间

            用如下两条命令把设置的时间写到硬件时间中去(也就是CMOS里面的时间)。

            clock -w

            hwclock --systohc

    step2:
                将node100配置成一个time server,修改 /etc/ntp.conf ,            

                1. 注释掉原来的restrict default ignore这一行,这一行本身是不响应任何的ntp更新请求,

                    其实也就是禁用了本机的ntp server的功能,所以需要注释掉。

                2. 加入下面3行: 

           restrict 10.10.10.0 mask 255.255.255.0 nomodify notrap

                (注释:用于让10.10.10.0/24网段上的机器能和本机做时间同步

                        server 127.127.1.0 # local clock
                        fudge 127.127.1.0 stratum 10

                        后两行是让本机的ntpd和本地硬件时间同步。

                3./etc/init.d/ntpd restart或者 service ntpd restart

                4.chkconfig ntpd on 设置开机自启动

                5.修改iptables配置,将tcp和udp 123端口开放,这是ntp需要的端口,在/etc/services中可以查到这个端口

        vim /etc/sysconfig/iptables 
        按类似如下的图片修改
        
    step3:
                这样node100就成为一台time server了,现在我们配置其他的所有机器(这里我们用定时任务来定时同步时间)
                
                 下面的可以不用做,也可以做:

                首先关掉这台机器上的ntpd服务:

        service ntpd stop(本次关掉)

        chkconfig ntpd off(再关掉开机自启动);

             


            
    展开全文
  • 针对无线传感器网络时间同步技术,降低同步误差的问题,通过优化生成树模型的结构,利用协作同步时间同步技术与生成树生成过程结合,降低生成树的深度,解决同步中误差累积,减少了时间同步误差。通过模拟实验证明,节点...
  • 基于多普勒原理提出了一种分布式时间同步算法(NU-Sync),通过计算相对速度解决由节点移动导致传播时延不确定的问题,利用自主式水下潜器作为信标节点,通过不断广播时间信息的方式计算时钟频率偏斜,节省网络的能量...
  • 针对无线传感器网络经典同步算法稳定性较差,时钟相偏和频偏联合校正算法存在高开销等问题,提出一种基于频偏估计的无线传感器网络时间同步算法(CSMS算法)。CSMS算法采用低开销相偏和频偏估计方法,提高了成对节点...
  • 介绍了一种在IEEE 1588协议基础上改进的时间同步算法的实现,通过精简的IEEE1588协议发送的follow-up报文,来降低ZigBee网络的开销,同时改变了同步信息的发起者,由主节点换成从节点,从而适应了ZigBee网络节点即时...
  • CentOS7 时间与网络时间同步

    万次阅读 多人点赞 2019-04-29 15:18:12
    今天分享一下Centos下如何将本地集群时间和网络时间同步,这样妈妈再也不用担心我因为时间不一致而出现的失败情况。 问题描述:使用date命令查看之后,发现时间与本地时间不一致。 三步解决方法: 1、安装...

    在做分布式集群开发时,经常会遇见集群时间节点不一致,从而造成某个节点服务进程启动失败或者通信失败。今天分享一下Centos下如何将本地集群时间和网络时间同步,这样妈妈再也不用担心我因为时间不一致而出现的失败情况。

    问题描述:使用date命令查看之后,发现时间与本地时间不一致。

       

    三步解决方法:

    1、安装ntpdate工具

    [root@slave1 ~]#  yum -y install ntp ntpdate

    安装成功!

    2、设置系统时间与网络时间同步

    [root@slave1 ~]#  ntpdate 0.asia.pool.ntp.org

    这里主要就是通过时间服务器对系统时间进行同步,所以0.asia.pool.ntp.org并不是固定的,大家可以选择time.nist.gov、time.nuri.net、0.asia.pool.ntp.org、1.asia.pool.ntp.org、2.asia.pool.ntp.org、3.asia.pool.ntp.org中任意一个,只要保证可用就OK。

    3、将系统时间写入硬件时间

    [root@slave1 ~]# hwclock --systohc

    这里是为了防止系统重启后时间被还原,因此需要写到硬件设备中去。

    This article create by XPU.Xiaxing,If you think this article is not bad, please give me a compliment, Thank u so much!

    展开全文
  • 针对目前煤矿井下大多数传感器的有线传输方式带来的布线繁琐、信号对线路的依赖性强、安装布设维护成本较大等问题,介绍了一种矿用无线传感器网络节点的设计方案...
  • 根据水下传感器网络的特点,采用基于无时间同步的往返飞行时间(RTOF)的测距技术来计算节点之间的距离。 采用了改进的粒子群算法(PSO)在三维空间中直接定位节点。 在不同的测距误差和不同的信标节点数和未知节点...
  • Node.js 和浏览器的网络对等时间同步。 关于 这是一个用于 Node.js 和浏览器的小型 JavaScript 库,通过确定全局对齐的本地时间来同步网络对等点之间的时间。 这在对等网络中是不可避免的,在该网络中,交换的数据...
  • 时间同步可确保无线传感器网络中的所有传感器节点具有相同的时钟时间。 有多种应用,例如地震研究,军事应用,污染监测,其中传感器节点需要同步的时间。 时间同步对于许多无线传感器网络协议(例如MAC协议)是强制...
  • 一种面向移动无线传感器网络时间同步算法,刘俊,,本文提出一种面向移动无线传感器网络时间同步算法,该算法依据已同步节点的自身状况,以一定的概率发送同步信息对其他节点进行
  • 针对水声通信传播延迟长和节点移动性强的问题, 提出一种水声传感器网络中成簇时间同步协议。该协议将时间同步分为簇间同步和簇内同步两个过程, 并且通过簇间同步和簇内同步的局部并发执行减少同步过程中产生的报文...
  • 针对FTSP在安全性上的漏洞,提出一种相对应的防御机制来加强 FTSP 的安全性。在根节点选择机制中,通过BS来进行根节点的选择,同时...通过实验和数据分析得知,所提出的防御机制可以对时间同步的运行提供合理的安全性。
  • 时间同步从机: #include <iostream> #include <cstdio> #include <unistd.h> #include <uavcan/uavcan.hpp> /* * Implementations for the standard application-level functions are ...
  • 摘要:讨论面向5G的同步支撑网在网络架构、同步精度、安全性、可靠性、监测性等方面的需求,介绍一种基于光纤的高精度时间同步网的实现方案,并给出经过现网1300km、19个节点传递的时间同步测试结果。利用该方案既...
  • 研究节点运动的脉冲耦合无线传感器网络的同步问题,提出一种依赖节点间运动和脉冲调整全网络节点间的耦合结构,实现稀疏节点分布无线传感网络时钟同步的新算法.以Peskin模型确定的相响应函数、网络节点稀疏和低速...
  • 时间同步技术是无线传感器网络中非常重要的协议之一,是保证传感器网络中各个节点协同工作的核心机制。根据有无参考节点时间同步算法分为双向消息交换时间同步算法和分布式一致时间同步算法,其中双向消息同步机制...
  • 该协议采用层次结构机制收集统计网络中每个节点的子节点数,消除叶子节点广播信息数据包的环节。仿真实验结果表明,该协议可以取得与洪泛时间同步协议一样的精确度,且能量消耗仅为洪泛时间同步协议的74%。
  • 针对无线传感器网络(Wireless Sensor Network,WSN)能量受限的问题,提出一种基于双向报文交换同参考广播报文相结合的能量高效无线传感器网络时间同步算法。采用交替回复信息时间同步算法(Repeating Message ...
  • 以太坊geth节点同步亲测经历

    万次阅读 2018-02-03 15:28:36
    看到技术讨论群中好多朋友在以太坊节点数据同步的过程中遇到很多疑问,于是亲自购买一天服务器,进行节点同步测试,本文将分享整个测试过程中遇到的问题,及解决方案。 服务器配置 服务器配置比较简单,在阿里...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 189,646
精华内容 75,858
关键字:

网络节点时间同步