CN105680969A - 一种时钟同步方法及装置 - Google Patents
一种时钟同步方法及装置 Download PDFInfo
- Publication number
- CN105680969A CN105680969A CN201511031100.1A CN201511031100A CN105680969A CN 105680969 A CN105680969 A CN 105680969A CN 201511031100 A CN201511031100 A CN 201511031100A CN 105680969 A CN105680969 A CN 105680969A
- Authority
- CN
- China
- Prior art keywords
- time
- client
- unit
- cycle
- deviation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Electric Clocks (AREA)
Abstract
本发明实施例公开了一种时钟同步方法和装置,所述方法包括:获取客户端向服务器发送时间同步报文的发送时间T1、服务器接收所述时间同步报文的接收时间T2、服务器向客户端发送所述时间同步报文的发送时间T3以及客户端接收所述时间同步报文的接收时间T4;根据所述T1、T2、T3和T4得到客户端的偏离时间,所述偏离时间为客户端时钟与服务器时钟之间的偏差;根据所述T1、T2、T3和T4得到网络传输延迟时间,所述网络传输延迟时间为所述时间同步报文从客户端传输到服务器的时间与从服务器传输到客户端的时间之和;若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步。
Description
技术领域
本发明涉及工业控制领域,尤其涉及一种时钟同步方法及装置。
背景技术
工业控制系统对实时性要求非常高,尤其在工业控制系统中测试、测量以及大量的通讯应用中都要求高精度的时钟同步。而随着工业以太网在工业控制系统的广泛应用,基于以太网的高精度时钟同步技术已经成为工业控制系统中极为重要的一项技术。
SNTP(SimpleNetworkTimeProtocol,简单网络时间协议)是一种基于以太网实现网络时钟同步的协议规约,是目前在网络时钟同步中应用最广泛的技术。所谓时钟同步技术是将客户端的时钟与服务器的时钟进行同步的技术,SNTP的基本原理是:客户端将一个时间同步报文发送给服务器,同时在时间同步报文上打上发送的时间,假设该时间为T1。服务器在接收到该时间同步报文后,在所述时间同步报文上打上接收的时间,假设该时间为T2。服务器将该时间同步报文发送给客户端,同时在时间同步报文上打上发送的时间,假设该时间为T3。客户端在接收到该时间同步报文后,在所述报文上打上接收的时间,假设该时间为T4。另外假设时间同步报文从客户端传输到服务器的时间为t1,从服务器传输到客户端的时间为t2。根据上述六个时间可以得到客户端时钟偏离服务器时钟的时间T,具体的,所述T=[(T2-t1-T1)-(T4-t2-T3)]/2,由于通常情况下时间同步报文在客户端和服务器之间传输的时间均较短,因此默认t1和t2相等,二者相减为零,这样得到计算公式为:T=(T2-T1+T3-T4)/2。在计算得到所述偏离时间T后,根据所述偏离时间T同步客户端的时钟。
然而,在工业控制系统中可能会存在网络流量剧烈波动的状况,因此t1和t2之差较大,无法忽略为零,导致必然影响到偏离时间T的值,也就影响到客户端时钟同步的精度。
发明内容
为了解决现有技术中存在的由于网络流量波动而导致影响客户端时钟同步精度的技术缺陷,本发明提供一种时钟同步方法和装置,提高了客户端时钟同步的精度。
本发明实施例提供了一种时钟同步方法,所述方法包括:
获取客户端向服务器发送时间同步报文的发送时间T1、服务器接收所述时间同步报文的接收时间T2、服务器向客户端发送所述时间同步报文的发送时间T3以及客户端接收所述时间同步报文的接收时间T4;
根据所述T1、T2、T3和T4得到客户端的偏离时间,所述偏离时间为客户端时钟与服务器时钟之间的偏差;
根据所述T1、T2、T3和T4得到网络传输延迟时间,所述网络传输延迟时间为所述时间同步报文从客户端传输到服务器的时间与从服务器传输到客户端的时间之和;
若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步。
优选的,所述方法还包括:
获取最近一个周期的网络传输延迟时间,所述一个周期为所述客户端进行时钟同步周期的至少两倍;
利用所述最近一个周期的网络传输延迟时间得到所述预设延迟时间。
优选的,所述客户端和所述服务器之间具有至少两条冗余网络,所述客户端分别通过所述至少两条冗余网络同时向所述服务器发送所述时间同步报文,并得到每个时间同步报文对应的偏离时间和网络传输延迟时间;所述若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步包括:
从同时发送的至少两个时间同步报文各自对应的网络传输延迟时间中,选择最小的、且满足小于或等于所述预设延迟时间条件的网络传输延迟时间,利用该网络传输延迟时间对应的偏离时间对所述客户端进行时钟同步。
优选的,在利用所述偏离时间对所述客户端进行时钟同步之后,所述方法还包括:
根据所述偏离时间得到一个时钟同步周期内的单位偏离时间;
利用所述单位偏离时间和上一个时钟同步周期对应的单位偏离时间修正单位时间。
优选的,所述方法还包括:
以时钟同步周期为单位进行累加,若累计达到一个调整周期,则计算该调整周期的时间误差均值,所述时间误差均值为本次调整周期中的每个时钟同步周期对应的偏离时间的均值;
判断本次调整周期的时间误差均值与上次调整周期的时间误差均值之差是否小于或等于阈值,若是,则延长对客户端进行时钟同步的时钟同步周期。
本发明实施例还提供了一种时钟同步装置,所述装置包括:时间获取单元、偏离时间计算单元、延迟时间计算单元以及时钟同步单元;其中,所述时间获取单元分别与所述偏离时间计算单元和所述延迟时间计算单元连接,所述偏离时间计算单元和所述延迟时间计算单元分别于所述时钟同步单元连接;
所述时间获取单元,用于获取客户端向服务器发送时间同步报文的发送时间T1、服务器接收所述时间同步报文的接收时间T2、服务器向客户端发送所述时间同步报文的发送时间T3以及客户端接收所述时间同步报文的接收时间T4;
所述偏离时间计算单元,用于根据所述T1、T2、T3和T4得到客户端的偏离时间,所述偏离时间为客户端时钟与服务器时钟之间的偏差;
所述延迟时间计算单元,用于根据所述T1、T2、T3和T4得到网络传输延迟时间,所述网络传输延迟时间为所述时间同步报文从客户端传输到服务器的时间与从服务器传输到客户端的时间之和;
所述时钟同步单元,用于若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步。
优选的,所述装置还包括:预设延迟时间计算单元,连接在所述延迟时间计算单元和所述时钟同步单元之间,用于获取最近一个周期的网络传输延迟时间,所述一个周期为所述客户端进行时钟同步周期的至少两倍,并利用所述最近一个周期的网络传输延迟时间得到所述预设延迟时间。
优选的,所述客户端和所述服务器之间具有至少两条冗余网络,所述客户端分别通过所述两条冗余网络同时向所述服务器发送所述时间同步报文,并得到每个时间同步报文对应的偏离时间和网络传输延迟时间;
所述时钟同步单元具体包括:
从同时发送的至少两个时间同步报文各自对应的网络传输延迟时间中,选择最小的、且满足小于或等于所述预设延迟时间条件的网络传输延迟时间,利用该网络传输延迟时间对应的偏离时间对所述客户端进行时钟同步。
优选的,所述装置还包括:单位时间修正单元,与所述时钟同步单元连接,用于根据所述偏离时间得到一个时钟同步周期内的单位偏离时间,并利用所述单位偏离时间和上一个时钟同步周期对应的单位偏离时间修正单位时间。
优选的,所述装置还包括:时间误差均值计算单元、判断单元和周期延长单元;
所述时间误差均值计算单元与所述时钟同步单元连接,所述判断单元与所述时间误差均值计算单元连接,所述周期延长单元与所述判断单元连接;
所述时间误差均值计算单元,用于以时钟同步周期为单位进行累加,若累计达到一个调整周期,则计算该调整周期的时间误差均值,所述时间误差均值为本次调整周期中的每个时钟同步周期对应的偏离时间的均值;
所述判断单元,用于判断本次调整周期的时间误差均值与上次调整周期的时间误差均值之差是否小于或等于阈值,若是,则激活所述周期延长单元;
所述周期延长单元,用于延长对客户端进行时钟同步的时钟同步周期。
相对于现有技术,本发明的优点在于:
由于网络在不平稳的情况下会导致所述网络传输延迟时间高于网络在平稳情况下网络传输延迟时间,因此本发明通过根据T1、T2、T3和T4计算得到网络传输延迟时间,并设置一个预设延迟时间,只有网络传输延迟时间小于或等于所述预设延迟时间,才能利用计算得到的偏离时间对所述客户端进行时钟同步;若网络传输延迟时间大于所述预设延迟时间,则认为获取的数据不合格,不对客户端进行时钟同步,这样保证了客户端的时间不会受到网络流量不平稳的影响,提高了时钟同步的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明提供的一种时钟同步方法实施例一的流程图;
图2为本发明提供的一种时钟同步方法实施例二的流程图;
图3为本发明提供的一种时钟同步方法实施例二的流程图;
图4为本发明提供的一种时钟同步装置实施例的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例一:
参见图1,该图为本发明提供的一种时钟同步方法实施例一的流程图。
本实施例提供的时钟同步方法包括如下步骤:
步骤S101:获取客户端向服务器发送时间同步报文的发送时间T1、服务器接收所述时间同步报文的接收时间T2、服务器向客户端发送所述时间同步报文的发送时间T3以及客户端接收所述时间同步报文的接收时间T4。
在工业控制系统中,所述客户端包括工业电脑(IndustrialPC,简称IPC)、可编程逻辑控制器(ProgrammableLogicController,简称PLC)等需要进行时钟同步的设备,本发明不做具体限定。
步骤S102:根据所述T1、T2、T3和T4得到客户端的偏离时间。
在本实施例中,所述偏离时间为客户端时钟与服务器时钟之间的偏差。如背景技术中所述,所述偏离时间T=(T2-T1+T3-T4)/2。
举个例子,假设客户端向服务器发送时间同步报文的发送时间T1为2:00:00pm;服务器接收到所述时间同步报文的接收时间T2为2:05:00pm,时间同步报文从客户端到服务器网络传输的时间为1秒钟,服务器向客户端发送所述时间同步报文的发送时间T3为2:05:01pm。假设网络流量平稳,那么时间同步报文从服务器传输到客户端的时间也为1秒钟,那么客户端接收所述时间同步报文的接收时间T4应当为2:00:03pm。所述偏离时间T=(T2-T1+T3-T4)/2=(2:05:00-2:00:00+2:00:01-2:00:03)/2=4分钟58秒。也就是说,若时间同步报文从客户端传输到服务器的时间和从服务器传输到客户端的时间相同或近似相同,那么所述偏移时间的公式可以将这两个时间抵消掉,得到的结果正好是客户端时钟和服务器时钟之间的偏差。
但是若网络流量激增,时间同步报文从服务器传输到客户端的时间延迟至2秒钟,那么客户端接收所述时间同步报文的接收时间T4应当为2:00:04pm,所述偏移时间(T2-T1+T3-T4)/2=(2:05:00-2:00:00+2:00:01-2:00:03)/2=4分钟57秒,差距的这1秒钟(4分钟58秒-4分钟57秒)就是由于时间同步报文从客户端传输到服务器的时间和从服务器传输到客户端的时间相差较大而导致的。
步骤S103:根据所述T1、T2、T3和T4得到网络传输延迟时间。
在本实施例中,所述网络传输延迟时间为所述时间同步报文从客户端传输到服务器的时间与从服务器传输到客户端的时间之和。所述时间同步报文从客户端传输到服务器的时间,以及从服务器传输到客户端的时间无法直接测量出,发明人利用所述T1、T2、T3和T4得到所述网络传输延迟时间T’,具体公式为:T’=T2-T1+T4-T3。
以上述例子为例,在网络流量平稳的情况下,所述T’=T2-T1+T4-T3=2:05:00-2:00:00+2:00:03-2:05:01=2秒钟;若在网络流量不平稳的情况下,所述T’=T2-T1+T4-T3=2:05:00-2:00:00+2:00:04-2:05:01=3秒钟。
步骤S104:若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步。
由于网络在不平稳的情况下会导致所述网络传输延迟时间高于网络在平稳情况下网络传输延迟时间,因此本实施例通过根据T1、T2、T3和T4计算得到网络传输延迟时间,并设置一个预设延迟时间(以上述例子为例,预设延迟时间可以是1秒钟~2秒钟),只有网络传输延迟时间小于或等于所述预设延迟时间,才能利用计算得到的偏离时间对所述客户端进行时钟同步;若网络传输延迟时间大于所述预设延迟时间,则认为获取的数据不合格,不对客户端进行时钟同步,这样保证了客户端的时间不会受到网络流量不平稳的影响,提高了时钟同步的可靠性。
至于如何设计所述预设延迟时间,本发明不做具体限定。本实施例提供一种预设延迟时间的计算方法:
首先获取最近一个周期的网络传输延迟时间,所述一个周期为所述客户端进行时钟同步周期的至少两倍。例如,假设时钟同步周期为1分钟,那么可以以20分钟为一个周期,得到最近20个网络传输延迟时间的值。接着,可以将这20个网络传输延迟时间的均值作为所述预设延迟时间,或者,将刚开始进行时钟同步的20个网络传输延迟时间的均值作为初始网络传输延迟时间,将所述初始网络传输延迟时间和最近20个网络传输延迟时间的均值进行权重分配,得到本周期的网络传输延迟时间,其中最近20个网络传输延迟时间的均值的权重可以比所述初始网络传输延迟时间的权重高。在实际应用中,上一个时钟同步周期计算得到的预设延迟时间可以应用于接下来的一个时钟同步周期中。通过本实施例提供的预设延迟时间的计算方法,可以实现动态的调整所述预设延迟时间,使得所述预设延迟时间与对应的网络环境相契合。
此外,为了进一步确保时钟同步的可靠性,可以在所述客户端和所述服务器之间设置至少两条冗余网络。所述客户端分别通过所述两条冗余网络同时向所述服务器发送所述时间同步报文(例如客户端通过至少两个IP端口分别同时向所述服务器发送所述时间同步报文),所述服务器在接收到来自所述至少两条冗余网络的时间同步报文后,再将所述时间同步报文通过对应的冗余网络返回客户端。所述客户端接收到的每个时间同步报文都分别携带四个时间:T1、T2、T3和T4,根据这四个时间可以分别得到对应的偏离时间和网络传输延迟时间。网络传输延迟时间越小,表示受网络流量波动的影响越小,因此我们可以从所述同时发送的至少两个时间同步报文分别对应的网络传输延迟时间中选择最小的,且满足小于或等于所述预设延迟时间条件的网络传输延迟时间,利用该网络传输延迟时间对应的偏离时间对所述客户端进行时钟同步,可以提高时间同步的精度。
方法实施例二
晶体振荡器,简称晶振,是通过振动晶体产生时钟信号的器件。在实际应用中,外界温度、压力、磁场或晶振本身老化等因素可能影响安装在客户端的晶体振荡器中晶体的振荡频率,导致客户端晶振的振荡频率和服务器中晶振的振荡频率不同。嵌入式系统的内部时钟定时器是通过对晶体振动的次数进行计数而计时的,晶体每振动一次,时钟计数器就累计一次,假设晶体每振动1000次,就认为过了1秒,那么时钟计数器在累计1000时,就触发一个信号,表示过了1秒钟,然后时钟计数器清零,重新计数。但是,晶体振动频率的偏差会影响时钟定时器的计时。而晶振偏差会随着时间而累加,以至于客户端的时钟与服务器的时钟相差越来越大。为了克服这个技术问题,本发明提供了一种时钟同步方法实施例二,参见图2。
本实施例提供的时钟同步方法包括如下步骤:
步骤S201:获取客户端向服务器发送时间同步报文的发送时间T1、服务器接收所述时间同步报文的接收时间T2、服务器向客户端发送所述时间同步报文的发送时间T3以及客户端接收所述时间同步报文的接收时间T4。
步骤S202:根据所述T1、T2、T3和T4得到客户端的偏离时间,所述偏离时间为客户端时钟与服务器时钟之间的偏差。
步骤S203:根据所述T1、T2、T3和T4得到网络传输延迟时间,所述网络传输延迟时间为所述时间同步报文从客户端传输到服务器的时间与从服务器传输到客户端的时间之和。
步骤S204:若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步。
所述步骤S201至步骤S204与方法实施例一中的步骤S101至步骤S104相同,因此具体内容参照方法实施例一,此处不再赘述。
步骤S205:根据所述偏离时间得到一个时钟同步周期内的单位偏离时间。
步骤S206:利用所述单位偏离时间和上一个时钟同步周期对应的单位偏离时间修正单位时间。
在本实施例中,当利用所述偏离时间对所述客户端进行时钟同步后,根据所述偏离时间得到一个时钟同步周期内的单位偏离时间,然后利用所述单位偏离时间修正单位时间。
例如,一个时钟同步周期为1分钟,单位时间为1秒,也就是说,一个时钟同步周期包括60个单位时间。在对客户端进行一段时间的时钟同步后,客户端时钟和服务器时钟基本一致,但是仍然存在一些误差,这个误差多数情况是由于晶振导致的。假设晶振中晶体每振动1000次,时钟定时器就计一秒钟。但是由于温度、压力、老化等原因,晶体振动缓慢,导致晶体振动1000次所需时间大于1s,因此我们需要计算实际晶体振动1000次需要多长时间,并以累加的方式进行调整。
根据经验,假设前10次时钟同步后客户端时钟和服务器时钟就大体上相同了,那么在第11次时钟同步时,开始执行步骤S205和步骤S206,以针对晶振造成的时间误差进行调整。假设用于第11次时钟同步的偏离时间T为0.18秒,那么单位偏离时间为T/60=0.18/60=0.003秒。在第11个周期开始时,根据所述调整时间T对客户端时钟进行同步,在第11个周期中,在每次晶体振动得到1秒的基础上,再多加0.003秒,以补偿由于晶体振动迟缓造成的误差积累。假设经过第11个周期更加精准的时间同步,在第12个周期开始时,计算得到的偏离时间T为0.06秒,那么单位偏离时间为T/60=0.06/60=0.001秒。在依据步骤S201至步骤S204对客户端时钟进行调整后,第12个周期的每次时钟定时器计时都需要在1秒的基础上多加0.004秒(0.003秒+0.001秒),以使调整后的单位时间更加接近服务器的单位时间。
方法实施例三:
与所述方法实施例一和所述方法实施例二的区别在于,本实施例能够实现在不影响对客户端时钟同步精度的前提下,减少时钟同步的频率,以达到减少对网络资源占用的效果。
参见图3,该图为本发明提供的一种时钟同步方法实施例三的流程图。
本实施例提供的时钟同步方法包括如下步骤:
步骤S301:获取客户端向服务器发送时间同步报文的发送时间T1、服务器接收所述时间同步报文的接收时间T2、服务器向客户端发送所述时间同步报文的发送时间T3以及客户端接收所述时间同步报文的接收时间T4。
步骤S302:根据所述T1、T2、T3和T4得到客户端的偏离时间,所述偏离时间为客户端时钟与服务器时钟之间的偏差。
步骤S303:根据所述T1、T2、T3和T4得到网络传输延迟时间。
所述网络传输延迟时间为所述时间同步报文从客户端传输到服务器的时间与从服务器传输到客户端的时间之和。
步骤S304:若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步。
步骤S305:将时钟同步周期的个数加1后,判断得到的值是否等于预设个数,若是,则执行步骤S306;若否,则执行步骤S301。
步骤S306:计算本次调整周期的时间误差均值,所述时间误差均值为本次调整周期中的每个时钟同步周期对应的偏离时间的均值。
步骤S307:判断本次调整周期的偏离时间均值与上一个调整周期的偏离时间均值之差是否小于或等于阈值,若是,则执行步骤S308。
步骤S308:延长对客户端进行时钟同步的时钟同步周期。
本实施的步骤S301至步骤S304与方法实施例一的步骤S101至步骤104相同,相关描述请参见方法实施例一,此处不再赘述。
在本实施例中,一个调整周期包括预设个时钟同步周期,每个时钟同步周期内均分别至少进行一次时钟同步。若一个时钟同步周期内进行一次时钟同步,那么就对应一个偏离时间;若进行多次时钟同步,那么就对应多个偏离时间。本实施例将一个调整周期内所有的偏离时间都加起来,并处以所述偏离时间的个数,得到偏离时间的均值,也就是时间误差均值。
若本次调整周期的时间误差均值与上一个时调整周期的时间误差均值之差满足小于或等于阈值的条件,则延长时钟同步周期;若不满足小于或等于阈值的条件,则以上一次调整周期对应的时钟同步周期为最终的时钟同步周期。
例如,假设初始时钟同步周期为30秒。假设一个调整周期包括30次时钟同步,每时钟同步30次,就计算这30次的偏离时间均值。若第二个调整周期的偏离时间均值与第一个调整周期的偏离时间均值之差小于或等于阈值(例如0.1ms),则可以将时钟同步周期延长30秒,即在第三个调整周期中每次时钟同步之间的间隔为1分钟;若大于阈值,则在第三个调整周期中每次时钟同步之间的间隔仍为30秒。
通过本实施例提供的时钟同步方法,可以在保证时钟同步精度的前提下延长时钟同步周期,即降低了客户端和服务器之间发送时间同步报文的频率,因此减少了网络资源的占用。
基于以上实施例提供的一种时钟同步方法,本发明实施例还提供了一种时钟同步装置,下面结合附图来详细说明其工作原理。
参见图3,该图为本发明提供的一种时钟同步装置实施例一的结构框图。
本实施例提供的时钟同步装置包括:时间获取单元101、偏离时间计算单元102、延迟时间计算单元103以及时钟同步单元104;其中,所述时间获取单元101分别与所述偏离时间计算单元102和所述延迟时间计算单元103连接,所述偏离时间计算单元102和所述延迟时间计算单元103分别与所述时钟同步单元104连接;
所述时间获取单元101,用于获取客户端向服务器发送时间同步报文的发送时间T1、服务器接收所述时间同步报文的接收时间T2、服务器向客户端发送所述时间同步报文的发送时间T3以及客户端接收所述时间同步报文的接收时间T4;
所述偏离时间计算单元102,用于根据所述T1、T2、T3和T4得到客户端的偏离时间,所述偏离时间为客户端时钟与服务器时钟之间的偏差;
所述延迟时间计算单元103,用于根据所述T1、T2、T3和T4得到网络传输延迟时间,所述网络传输延迟时间为所述时间同步报文从客户端传输到服务器的时间与从服务器传输到客户端的时间之和;
所述时钟同步单元104,用于若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步。
由于网络在不平稳的情况下会导致所述网络传输延迟时间高于网络在平稳情况下网络传输延迟时间,因此本实施例通过设置一个预设延迟时间,只有网络传输延迟时间小于或等于所述预设延迟时间,才能利用计算得到的偏离时间对所述客户端进行时钟同步;若网络传输延迟时间大于所述预设延迟时间,则认为获取的数据不合格,不对客户端进行时钟同步,这样保证了客户端的时间不会受到网络流量不平稳的影响,提高了时钟同步的可靠性。
进一步,所述装置还包括:预设延迟时间计算单元,连接在所述延迟时间计算单元和所述时钟同步单元之间,用于获取最近一个周期的网络传输延迟时间,所述一个周期为所述客户端进行时钟同步周期的至少两倍,并利用所述最近一个周期的网络传输延迟时间得到所述预设延迟时间。
进一步,所述客户端和所述服务器之间具有至少两条冗余网络,所述客户端分别通过所述两条冗余网络同时向所述服务器发送所述时间同步报文,并得到每个时间同步报文对应的偏离时间和网络传输延迟时间;
所述时钟同步单元具体包括:
从同时发送的至少两个时间同步报文各自对应的网络传输延迟时间中,选择最小的、且满足小于或等于所述预设延迟时间条件的网络传输延迟时间,利用该网络传输延迟时间对应的偏离时间对所述客户端进行时钟同步。
进一步,所述装置还包括:单位时间修正单元,与所述时钟同步单元连接,用于根据所述偏离时间得到一个时钟同步周期内的单位偏离时间,并利用所述单位偏离时间和上一个时钟同步周期对应的单位偏离时间修正单位时间。
进一步,所述装置还包括:时间误差均值计算单元、判断单元和周期延长单元;
所述时间误差均值计算单元与所述时钟同步单元连接,所述判断单元与所述时间误差均值计算单元连接,所述周期延长单元与所述判断单元连接;
所述时间误差均值计算单元,用于以时钟同步周期为单位进行累加,若累计达到一个调整周期,则计算该调整周期的时间误差均值,所述时间误差均值为本次调整周期中的每个时钟同步周期对应的偏离时间的均值;
所述判断单元,用于判断本次调整周期的时间误差均值与上次调整周期的时间误差均值之差是否小于或等于阈值,若是,则激活所述周期延长单元;
所述周期延长单元,用于延长对客户端进行时钟同步的时钟同步周期。
当介绍本发明的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。
需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种时钟同步方法,其特征在于,所述方法包括:
获取客户端向服务器发送时间同步报文的发送时间T1、服务器接收所述时间同步报文的接收时间T2、服务器向客户端发送所述时间同步报文的发送时间T3以及客户端接收所述时间同步报文的接收时间T4;
根据所述T1、T2、T3和T4得到客户端的偏离时间,所述偏离时间为客户端时钟与服务器时钟之间的偏差;
根据所述T1、T2、T3和T4得到网络传输延迟时间,所述网络传输延迟时间为所述时间同步报文从客户端传输到服务器的时间与从服务器传输到客户端的时间之和;
若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取最近一个周期的网络传输延迟时间,所述一个周期为所述客户端进行时钟同步周期的至少两倍;
利用所述最近一个周期的网络传输延迟时间得到所述预设延迟时间。
3.根据权利要求1所述的方法,其特征在于,所述客户端和所述服务器之间具有至少两条冗余网络,所述客户端分别通过所述至少两条冗余网络同时向所述服务器发送所述时间同步报文,并得到每个时间同步报文对应的偏离时间和网络传输延迟时间;所述若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步包括:
从同时发送的至少两个时间同步报文各自对应的网络传输延迟时间中,选择最小的、且满足小于或等于所述预设延迟时间条件的网络传输延迟时间,利用该网络传输延迟时间对应的偏离时间对所述客户端进行时钟同步。
4.根据权利要求1所述的方法,其特征在于,在利用所述偏离时间对所述客户端进行时钟同步之后,所述方法还包括:
根据所述偏离时间得到一个时钟同步周期内的单位偏离时间;
利用所述单位偏离时间和上一个时钟同步周期对应的单位偏离时间修正单位时间。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述方法还包括:
以时钟同步周期为单位进行累加,若累计达到一个调整周期,则计算该调整周期的时间误差均值,所述时间误差均值为本次调整周期中的每个时钟同步周期对应的偏离时间的均值;
判断本次调整周期的时间误差均值与上次调整周期的时间误差均值之差是否小于或等于阈值,若是,则延长对客户端进行时钟同步的时钟同步周期。
6.一种时钟同步装置,其特征在于,所述装置包括:时间获取单元、偏离时间计算单元、延迟时间计算单元以及时钟同步单元;其中,所述时间获取单元分别与所述偏离时间计算单元和所述延迟时间计算单元连接,所述偏离时间计算单元和所述延迟时间计算单元分别于所述时钟同步单元连接;
所述时间获取单元,用于获取客户端向服务器发送时间同步报文的发送时间T1、服务器接收所述时间同步报文的接收时间T2、服务器向客户端发送所述时间同步报文的发送时间T3以及客户端接收所述时间同步报文的接收时间T4;
所述偏离时间计算单元,用于根据所述T1、T2、T3和T4得到客户端的偏离时间,所述偏离时间为客户端时钟与服务器时钟之间的偏差;
所述延迟时间计算单元,用于根据所述T1、T2、T3和T4得到网络传输延迟时间,所述网络传输延迟时间为所述时间同步报文从客户端传输到服务器的时间与从服务器传输到客户端的时间之和;
所述时钟同步单元,用于若所述网络传输延迟时间小于或等于预设延迟时间,则利用所述偏离时间对所述客户端进行时钟同步。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:预设延迟时间计算单元,连接在所述延迟时间计算单元和所述时钟同步单元之间,用于获取最近一个周期的网络传输延迟时间,所述一个周期为所述客户端进行时钟同步周期的至少两倍,并利用所述最近一个周期的网络传输延迟时间得到所述预设延迟时间。
8.根据权利要求6所述的装置,其特征在于,所述客户端和所述服务器之间具有至少两条冗余网络,所述客户端分别通过所述两条冗余网络同时向所述服务器发送所述时间同步报文,并得到每个时间同步报文对应的偏离时间和网络传输延迟时间;
所述时钟同步单元具体包括:
从同时发送的至少两个时间同步报文各自对应的网络传输延迟时间中,选择最小的、且满足小于或等于所述预设延迟时间条件的网络传输延迟时间,利用该网络传输延迟时间对应的偏离时间对所述客户端进行时钟同步。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:单位时间修正单元,与所述时钟同步单元连接,用于根据所述偏离时间得到一个时钟同步周期内的单位偏离时间,并利用所述单位偏离时间和上一个时钟同步周期对应的单位偏离时间修正单位时间。
10.根据权利要求6至9任意一项所述的装置,其特征在于,所述装置还包括:时间误差均值计算单元、判断单元和周期延长单元;
所述时间误差均值计算单元与所述时钟同步单元连接,所述判断单元与所述时间误差均值计算单元连接,所述周期延长单元与所述判断单元连接;
所述时间误差均值计算单元,用于以时钟同步周期为单位进行累加,若累计达到一个调整周期,则计算该调整周期的时间误差均值,所述时间误差均值为本次调整周期中的每个时钟同步周期对应的偏离时间的均值;
所述判断单元,用于判断本次调整周期的时间误差均值与上次调整周期的时间误差均值之差是否小于或等于阈值,若是,则激活所述周期延长单元;
所述周期延长单元,用于延长对客户端进行时钟同步的时钟同步周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511031100.1A CN105680969A (zh) | 2015-12-31 | 2015-12-31 | 一种时钟同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511031100.1A CN105680969A (zh) | 2015-12-31 | 2015-12-31 | 一种时钟同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105680969A true CN105680969A (zh) | 2016-06-15 |
Family
ID=56298505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511031100.1A Pending CN105680969A (zh) | 2015-12-31 | 2015-12-31 | 一种时钟同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105680969A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107277385A (zh) * | 2017-06-12 | 2017-10-20 | 深圳市瑞立视多媒体科技有限公司 | 一种多相机系统同步曝光的控制方法、装置及终端设备 |
CN107800529A (zh) * | 2017-11-07 | 2018-03-13 | 北京飞利信电子技术有限公司 | 一种网络节点的时钟频率同步方法 |
CN108153284A (zh) * | 2017-12-28 | 2018-06-12 | 北京金风科创风电设备有限公司 | 控制程序测试方法和系统 |
CN108259107A (zh) * | 2018-01-17 | 2018-07-06 | 深圳聚点互动科技有限公司 | 多个无线设备间系统时间同步的方法、装置、设备及存储介质 |
CN108269570A (zh) * | 2018-01-17 | 2018-07-10 | 深圳聚点互动科技有限公司 | 语音控制背景音乐主机的方法、装置、设备及存储介质 |
CN108495239A (zh) * | 2018-01-17 | 2018-09-04 | 深圳聚点互动科技有限公司 | 多设备间音频精确同步播放的方法、装置、设备及存储介质 |
CN109560889A (zh) * | 2018-11-09 | 2019-04-02 | 福建福诺移动通信技术有限公司 | 一种实现App与服务端时间同步的方法 |
CN110266420A (zh) * | 2019-04-29 | 2019-09-20 | 北京达佳互联信息技术有限公司 | 时钟同步方法、时钟同步装置和计算机可读存储介质 |
CN110278047A (zh) * | 2018-03-16 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 用于时钟同步、设置流媒体帧的pts值的方法、装置及设备 |
CN110634488A (zh) * | 2019-10-08 | 2019-12-31 | 北京小米智能科技有限公司 | 信息处理方法、装置和系统以及存储介质 |
CN110649984A (zh) * | 2019-09-26 | 2020-01-03 | 北京和利时系统工程有限公司 | 一种时钟同步的方法、装置、计算机存储介质及电子设备 |
CN111343482A (zh) * | 2020-03-12 | 2020-06-26 | 青岛海信宽带多媒体技术有限公司 | 基于Ipv6扩展报头的时钟同步方法、装置及显示设备 |
WO2021004005A1 (zh) * | 2019-07-10 | 2021-01-14 | 烽火通信科技股份有限公司 | 时间戳抖动补偿方法及系统 |
CN112257379A (zh) * | 2020-10-30 | 2021-01-22 | 上海兆芯集成电路有限公司 | 电路时钟延迟的校正方法 |
CN113965488A (zh) * | 2021-09-10 | 2022-01-21 | 北京百度网讯科技有限公司 | 数据包的延迟获取方法及设备、电子设备与存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227246A (zh) * | 2008-01-28 | 2008-07-23 | 中兴通讯股份有限公司 | 一种主从时钟同步的方法及装置 |
CN101252429A (zh) * | 2008-02-22 | 2008-08-27 | 浙江大学 | 一种提高分布式网络系统中时钟同步精度的方法 |
CN101534249A (zh) * | 2009-04-15 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种在捆绑链路上发送数据的方法及网络设备 |
CN202160283U (zh) * | 2011-06-03 | 2012-03-07 | 中国普天信息产业北京通信规划设计院 | 用于确定基站时钟间是否同步的检测装置 |
CN104464247A (zh) * | 2014-12-12 | 2015-03-25 | 武汉中原电子信息公司 | 一种降低集中器公网对时误差的方法 |
CN104993896A (zh) * | 2015-05-14 | 2015-10-21 | 四川泰富地面北斗科技股份有限公司 | 一种由专用光路由组成的授时系统及其实现方法 |
-
2015
- 2015-12-31 CN CN201511031100.1A patent/CN105680969A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227246A (zh) * | 2008-01-28 | 2008-07-23 | 中兴通讯股份有限公司 | 一种主从时钟同步的方法及装置 |
CN101252429A (zh) * | 2008-02-22 | 2008-08-27 | 浙江大学 | 一种提高分布式网络系统中时钟同步精度的方法 |
CN101534249A (zh) * | 2009-04-15 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种在捆绑链路上发送数据的方法及网络设备 |
CN202160283U (zh) * | 2011-06-03 | 2012-03-07 | 中国普天信息产业北京通信规划设计院 | 用于确定基站时钟间是否同步的检测装置 |
CN104464247A (zh) * | 2014-12-12 | 2015-03-25 | 武汉中原电子信息公司 | 一种降低集中器公网对时误差的方法 |
CN104993896A (zh) * | 2015-05-14 | 2015-10-21 | 四川泰富地面北斗科技股份有限公司 | 一种由专用光路由组成的授时系统及其实现方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107277385A (zh) * | 2017-06-12 | 2017-10-20 | 深圳市瑞立视多媒体科技有限公司 | 一种多相机系统同步曝光的控制方法、装置及终端设备 |
CN107277385B (zh) * | 2017-06-12 | 2020-04-17 | 深圳市瑞立视多媒体科技有限公司 | 一种多相机系统同步曝光的控制方法、装置及终端设备 |
CN107800529A (zh) * | 2017-11-07 | 2018-03-13 | 北京飞利信电子技术有限公司 | 一种网络节点的时钟频率同步方法 |
CN107800529B (zh) * | 2017-11-07 | 2020-10-20 | 北京飞利信电子技术有限公司 | 一种网络节点的时钟频率同步方法 |
CN108153284A (zh) * | 2017-12-28 | 2018-06-12 | 北京金风科创风电设备有限公司 | 控制程序测试方法和系统 |
CN108495239B (zh) * | 2018-01-17 | 2020-09-29 | 深圳聚点互动科技有限公司 | 多设备间音频精确同步播放的方法、装置、设备及存储介质 |
CN108259107A (zh) * | 2018-01-17 | 2018-07-06 | 深圳聚点互动科技有限公司 | 多个无线设备间系统时间同步的方法、装置、设备及存储介质 |
CN108269570A (zh) * | 2018-01-17 | 2018-07-10 | 深圳聚点互动科技有限公司 | 语音控制背景音乐主机的方法、装置、设备及存储介质 |
CN108495239A (zh) * | 2018-01-17 | 2018-09-04 | 深圳聚点互动科技有限公司 | 多设备间音频精确同步播放的方法、装置、设备及存储介质 |
CN110278047A (zh) * | 2018-03-16 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 用于时钟同步、设置流媒体帧的pts值的方法、装置及设备 |
CN109560889A (zh) * | 2018-11-09 | 2019-04-02 | 福建福诺移动通信技术有限公司 | 一种实现App与服务端时间同步的方法 |
CN110266420A (zh) * | 2019-04-29 | 2019-09-20 | 北京达佳互联信息技术有限公司 | 时钟同步方法、时钟同步装置和计算机可读存储介质 |
WO2021004005A1 (zh) * | 2019-07-10 | 2021-01-14 | 烽火通信科技股份有限公司 | 时间戳抖动补偿方法及系统 |
CN110649984A (zh) * | 2019-09-26 | 2020-01-03 | 北京和利时系统工程有限公司 | 一种时钟同步的方法、装置、计算机存储介质及电子设备 |
CN110634488A (zh) * | 2019-10-08 | 2019-12-31 | 北京小米智能科技有限公司 | 信息处理方法、装置和系统以及存储介质 |
CN110634488B (zh) * | 2019-10-08 | 2022-04-15 | 北京小米智能科技有限公司 | 信息处理方法、装置和系统以及存储介质 |
CN111343482A (zh) * | 2020-03-12 | 2020-06-26 | 青岛海信宽带多媒体技术有限公司 | 基于Ipv6扩展报头的时钟同步方法、装置及显示设备 |
CN112257379A (zh) * | 2020-10-30 | 2021-01-22 | 上海兆芯集成电路有限公司 | 电路时钟延迟的校正方法 |
CN112257379B (zh) * | 2020-10-30 | 2023-04-25 | 上海兆芯集成电路有限公司 | 电路时钟延迟的校正方法 |
CN113965488A (zh) * | 2021-09-10 | 2022-01-21 | 北京百度网讯科技有限公司 | 数据包的延迟获取方法及设备、电子设备与存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105680969A (zh) | 一种时钟同步方法及装置 | |
CN101388741B (zh) | 一种用于计算机网络的高精度时间同步设备、系统及方法 | |
CN105429725B (zh) | 一种基于sopc组网的亚微秒级时钟同步方法及系统 | |
US10868664B2 (en) | Minimizing timestamp error in PTP systems | |
CN103532652B (zh) | 一种时间同步装置和方法 | |
US10019333B2 (en) | Methods, systems, and computer readable media for emulating network devices with different clocks | |
CN108023723B (zh) | 频率同步的方法以及从时钟 | |
CN106160914B (zh) | 一种基于干扰观测反馈控制技术的ieee1588时钟同步方法 | |
CN102983927B (zh) | 一种基于ieee 1588协议的主从时钟对时的时间补偿方法 | |
CN103368721A (zh) | 时间触发以太网中透明时钟的计算方法 | |
EP3284217A1 (en) | Methods, systems, and computer readable media for synchronizing timing among network interface cards (nics) in a network equipment test device | |
Ferrari et al. | Experimental characterization of uncertainty sources in a software-only synchronization system | |
CN101729180A (zh) | 精准时钟同步方法及系统、精准时钟频率/时间同步装置 | |
CN109462454A (zh) | 基于ptp协议的汽车传感器时间同步方法及系统 | |
CN110492965A (zh) | 一种主从系统内串行报文对时的方法和装置 | |
CN102480350A (zh) | 一种基于频率偏差估计的时间同步和维持的方法及装置 | |
CN103532693B (zh) | 一种时间同步装置和方法 | |
CN104486058A (zh) | 一种ptp系统时间同步方法以及装置 | |
CN115333660A (zh) | 精确时间戳校正 | |
CN112395231A (zh) | 一种多处理器间的数据延迟时间计算方法及装置 | |
CN111865468A (zh) | 一种精准时间同步方法 | |
Pandey et al. | Analysis and design of precision time protocol system based on IEEE1588 standards | |
Kim et al. | Time synchronization method of IEEE 802.1 AS through automatic optimal sync message period adjustment for in-car network | |
CN113359948A (zh) | 时间同步装置及同步方法 | |
Kopetz | Why a global time is needed in a dependable sos |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160615 |
|
RJ01 | Rejection of invention patent application after publication |