CN116614199B - 时钟同步方法、装置、从时钟设备、时钟同步系统和介质 - Google Patents
时钟同步方法、装置、从时钟设备、时钟同步系统和介质 Download PDFInfo
- Publication number
- CN116614199B CN116614199B CN202310864866.6A CN202310864866A CN116614199B CN 116614199 B CN116614199 B CN 116614199B CN 202310864866 A CN202310864866 A CN 202310864866A CN 116614199 B CN116614199 B CN 116614199B
- Authority
- CN
- China
- Prior art keywords
- clock
- slave
- clock synchronization
- clock device
- message
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000001514 detection method Methods 0.000 claims abstract description 137
- 230000004044 response Effects 0.000 claims abstract description 110
- 238000004590 computer program Methods 0.000 claims abstract description 24
- 238000003860 storage Methods 0.000 claims abstract description 16
- 238000012937 correction Methods 0.000 claims description 17
- 239000000284 extract Substances 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 36
- 238000004891 communication Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 108700009949 PTP protocol Proteins 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008439 repair process Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002147 killing effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本申请涉及一种时钟同步方法、装置、从时钟设备、时钟同步系统、存储介质和计算机程序产品。所述方法包括:在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。采用本方法能够提供时钟同步方法的通用性。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种时钟同步方法、装置、从时钟设备、时钟同步系统、存储介质和计算机程序产品。
背景技术
作为数字通信网的基础支撑技术,时钟同步技术的发展演进始终受到通信网技术发展的驱动。随着通信新业务和新技术的不断发展,其同步要求越来越高,包括钟源、锁相环等基本时钟技术经历了多次更新换代,同步技术也在不断地推陈出新,时间同步技术更是当前业界关注的焦点。
时钟同步误差的计算作为网络和通信领域的基础和关键问题,在任何一个对时间敏感的项目中都十分重要。然而,目前仍未提出一种通用且使用简单的方法来计算主从时钟设备之间的时钟同步误差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够通用且使用简单的时钟同步方法、装置、从时钟设备、时钟同步系统、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种时钟同步方法。所述方法包括:
在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;
分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;
基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;
在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
第二方面,本申请还提供了一种时钟同步装置。所述装置包括:
报文文件获取模块,用于在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;
时间戳提取模块,用于分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;
误差确定模块,用于基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;
矫正控制模块,用于在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
第三方面,本申请还提供了一种从时钟设备,所述从时钟设备与主时钟设备连接;
所述从时钟设备向所述主时钟设备发送时延检测请求报文,接收所述主时钟设备反馈的时延检测应答报文;
所述从时钟设备接收所述主时钟设备发送的第一报文文件,并从本地抓取第二报文文件,所述第一报文文件和所述第二报文文件均包括所述时延检测请求报文和所述时延检测应答报文;
所述从时钟设备分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳,基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;在所述时钟同步误差大于允许误差阈值的情况下,向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
第四方面,本申请还提供了一种第三方平台,所述第三方平台分别与从时钟设备与主时钟设备连接;所述从时钟设备用于向所述主时钟设备发送时延检测请求报文,所述主时钟设备用于响应所述时延检测请求报文并反馈时延检测应答报文至所述从时钟设备;
所述第三方平台接收所述主时钟设备发送的第一报文文件,并接收所述从时钟设备发送的第二报文文件,所述第一报文文件和所述第二报文文件均包括所述时延检测请求报文和所述时延检测应答报文;
所述第三方平台分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳,基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;在所述时钟同步误差大于允许误差阈值的情况下,向所述从时钟设备发送时钟同步指令,以使所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
第五方面,本申请还提供了一种时钟同步系统,所述时钟同步系统包括主时钟设备、从时钟设备和时钟同步工具;
在所述主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,所述时钟同步工具获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;
所述时钟同步工具分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;
所述时钟同步工具基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;
所述时钟同步工具在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
第六方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;
分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;
基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;
在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
第七方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;
分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;
基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;
在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
上述时钟同步方法、装置、从时钟设备、时钟同步系统、存储介质和计算机程序产品,通过在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至从时钟设备的情况下,获取从主时钟设备抓取的第一报文文件和从从时钟设备抓取的第二报文文件,以确保获取的第一报文文件和第二报文文件包含从主从时钟设备分别抓取的时延检测请求报文,以及分别抓取的时延检测应答报文,确保获取的数据源的全面性和准确性。通过分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差,通过设置触发条件结合主动触发机制,来对从时钟设备的时钟进行主动式矫正,由纯软件算法驱动实现简单,具有较高的拓展能力,解决了现有时钟同步方法的通用性不强的问题。
附图说明
图1为一个实施例中时钟同步方法的应用环境图;
图2为另一个实施例中时钟同步方法的应用环境图;
图3为一个实施例中时钟同步方法的流程示意图;
图4为一个实施例中时钟同步系统的交互示意图;
图5为一个实施例中时钟同步方法的应用场景示意图;
图6为另一个实施例中时钟同步方法的应用场景示意图;
图7为再一个实施例中时钟同步方法的应用场景示意图;
图8为又一个实施例中时钟同步方法的应用场景示意图;
图9为还一个实施例中时钟同步方法的应用场景示意图;
图10为另一个实施例中时钟同步方法的应用场景示意图;
图11为另一个实施例中时钟同步方法的流程示意图;
图12为一个实施例中时钟同步方法的应用场景示意图;
图13为一个实施例中时钟同步装置的结构框图;
图14为一个实施例中从时钟设备或第三方平台的内部结构图;
图15为一个实施例中客户端所在终端的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的时钟同步方法,可以应用于如图1和图2所示的应用环境中。其中,时钟同步系统包括主时钟设备102、从时钟设备104和时钟同步工具110。主时钟设备102通过网络与从时钟设备104进行通信。如图1所示,时钟同步工具110可以部署于从时钟设备104中,如图2所示,时钟同步工具110也可以部署于第三方平台106中。其中,主时钟设备102与从时钟设备104的对应关系可以是一对一,也可以是一对多。例如,单个从时钟设备104与单个主时钟设备102之间的时钟同步,再例如,多个从时钟设备104与单个主时钟设备102之间的时钟同步。
主时钟设备包含的时钟为主时钟,主时钟是产生准确定时信号用以控制其他时钟及其他设备的时钟。在数字网中,在由单一参考时钟控制所有时钟以取得完全同步网的情形,该控制时钟一般称为主时钟,在具有两个以上参考时钟的完全同步网,其间通过链路互相同步的情形,其中参考时钟的精度和稳定度最高的,作为主时钟。其中,主时钟可由以下来源得到:(1)一个外部产生的时钟信号;(2)带有外部连接晶体的片内振荡器;(3)一个内片PLL(phase locked loop,锁相环)或频率合成器,它由外部时钟信号产生一个主时钟。
一般来说,服务器的时钟精度和稳定度会高于客户端,在一个具体的应用中,如图1所示,以服务器与客户端的时间同步场景为例,主时钟设备102可以是服务器,从时钟设备104可以是客户端。然而,在一些特殊的场景下,当服务器出现老化精度和稳定度下降,导致服务器的时间精度和稳定度低于客户端的时间精度和稳定度的情况下,也可以将客户端作为主时钟设备,将服务器作为从时钟设备。
以图1为例,作为从时钟设备的客户端104中部署有时钟同步工具110,在服务器102响应客户端104发送的时延检测请求报文,反馈时延检测应答报文至客户端104的情况下,客户端104中的时钟同步工具110接收服务器102抓取并发送的第一报文文件,并从客户端104本地抓取第二报文文件,然后分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定服务器102和客户端104之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,向服务器102发起时钟同步请求,以矫正时钟同步误差。
以图2为例,第三方平台106与客户端104和服务器102通过网络连接,在第三方平台106中,部署有时钟同步工具110,在服务器102响应客户端104发送的时延检测请求报文,反馈时延检测应答报文至客户端104的情况下,服务器102会将抓取的第一报文文件发送至第三方平台106的时钟同步工具110,客户端104会将抓取的第二报文文件发送至第三方平台106的时钟同步工具110。时钟同步工具110在获取到第一报文文件和第二报文文件之后,分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定服务器102和客户端104之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,向客户端104发送时钟同步指令,以使客户端104向服务器102发起时钟同步请求,以矫正时钟同步误差。
其中,客户端104可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。第三方平台106可以是提供云计算的云平台,如云服务器等,也可以是其他提供算力的服务器。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
为便于描述,以下各实施例以网络上下行链路对称的网络环境为例进行说明。网络上下行链路对称,是指网络中上传和下载的带宽相同,即上传速度和下载速度相等的现象。这种现象通常出现在对称型网络中,如对称型数字用户线路(DSL)和对称型光纤接入(S-FTTH)等。例如,当用户使用DSL 上网时,上传和下载的带宽都是相同的,都是1Mbps 或2Mbps 等。这种对称性可以提高网络的稳定性和可靠性,同时也可以提高用户的体验和满意度。网络上下行链路对称在对称型网络中比较常见,如DSL 和S-FTTH 等。而在非对称型网络中,如广域网(WAN)和互联网等,上传和下载的带宽通常是不对称的,下载速度比上传速度快。这是因为在这些网络中,用户通常需要从互联网上下载大量的数据,而上传的数据量相对较少,因此网络服务提供商(ISP)会优先保证下载速度,而降低上传速度,以满足用户的需求。
此外,网络上下行链路对称还受到网络拓扑、网络设备和网络负载等因素的影响。网络上下行链路对称是网络设计和优化中需要考虑的重要因素之一。在对称型网络中,上传和下载的带宽相同,可以提高网络的稳定性和可靠性,同时也可以提高用户的体验和满意度。而在非对称型网络中,上传和下载的带宽通常是不对称的,需要根据用户的需求和网络负载等因素进行合理的调整。此外,网络上下行链路对称还需要考虑网络拓扑、网络设备和网络负载等因素的影响,以实现网络的高效和可靠运行。
本申请提供的时钟同步方法,可有效支撑工业互联网项目、云游戏项目、5G 远程驾驶以及实时孪生等对网络质量和设备同步有严格要求的项目。
在一个实施例中,如图3所示,提供了一种时钟同步方法,以该方法应用于图1中的时钟同步工具110为例进行说明,可以理解,时钟同步工具110可以部署在从时钟设备104,也可以部署在第三方平台106。时钟同步方法具体包括以下步骤:
步骤302,在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至从时钟设备的情况下,获取从主时钟设备抓取的第一报文文件和从从时钟设备抓取的第二报文文件。
其中,主时钟设备是指在多设备时钟同步的过程中,用于提供基准时间,以实现对其他从时钟设备的时间校准的设备。从时钟设备是跟随主时钟设备的时间进行同步的,以使得其时间与主时钟设备相同的设备。多设备中的主时钟设备和从时钟设备,可以基于每一设备所提供时间的精度和稳定性来确定,将时间精度和稳定性更高的一者作为主时钟设备,将主时钟设备建立有网络连接,且时间精度和稳定性较弱的设备作为从时钟设备。
时钟同步误差的发生是由于不同设备之间的时钟存在精度和稳定性的差异,同时通信延迟也会对时钟同步造成影响。存在时钟同步误差的现象叫做时钟漂移。时钟漂移问题是指不同设备之间的时钟存在差异,导致它们在时间上的同步出现偏差的现象,并且随着时间的推进这种误差会越来越大。
例如,当两台计算机之间进行数据传输时,如果它们的时钟存在差异,那么就会导致数据传输的时间戳不准确,从而影响到数据的可靠性和正确性。时钟漂移现象会发生的原因是由于时钟本身的精度和稳定性以及通信延迟等因素造成的。为了应对时钟漂移现象,可以采用时钟同步协议,如NTP (Network Time Protocol)协议、PTP (Precision TimeProtocol)协议等,通过网络传输时间信息,使得不同设备之间的时钟保持同步。时钟同步协议可以修复时钟漂移现象,保证系统的时间戳准确无误。时钟漂移问题会给网络通信和传输带来很多危害。
PTP协议是一种用于同步计算机时钟的协议,基于PTP协议实现时钟同步主要包括建立同步体系,通过最佳主时钟算法,在整个同步系统中建立主从同步体系,通过交换PTP协议报文,计算并同步本地时钟。
NTP也是一种用于同步计算机时钟的协议。它是一种分布式协议,通过在网络中的多个计算机之间传递时间信息来同步它们的时钟。NTP 协议的主要目的是确保计算机之间的时间同步,以便它们能够协同工作。其主要功能是同步计算机时钟。它通过在网络中的多个计算机之间传递时间信息来实现这一目的。NTP 协议的作用是确保计算机之间的时间同步,以便它们能够协同工作。NTP 协议还可以用于时间戳、日志记录、安全认证等方面。NTP协议的使用场景非常广泛,在交通领域,NTP 协议可以用于同步交通信号灯的时钟,以确保交通信号灯的同步性,从而提高交通效率和安全性。在工业领域,NTP 协议可以用于同步工业自动化系统的时钟,以确保工业自动化系统的同步性,从而提高生产效率和质量。在金融领域,NTP 协议可以用于同步交易系统的时钟,以确保交易系统的同步性,从而提高交易效率和安全性。
例如,当两台计算机之间进行数据传输时,如果它们的时钟存在差异,那么就会导致数据传输的时间戳不准确,从而影响到数据的可靠性和正确性。此外,时钟漂移问题还会影响到网络的性能和稳定性,从而导致网络的故障和中断。因此,我们需要采用时钟同步协议来修复时钟漂移。
时延检测请求报文是指从时钟设备向主时钟设备发送的、用于进行时延检测的报文。其中,时延检测请求报文可以通过触发从时钟设备上部署的Ping工具来实现报文的发送,时延检测请求报文具体可以是ICMP报文。具体地,Ping 是一种网络工具,用于测试网络连接和测量网络延迟。它通过向主时钟设备发送ICMP 回显请求报文,然后等待主时钟设备返回ICMP 回显应答报文,来测试网络连接和延迟。时钟同步工具可以通过解析Ping 收发的ICMP 报文,对其中的ICMP-seqID、时间戳数据进行核对和计算,得到精准的时钟同步误差。
在主时钟设备与从时钟设备进行时延检测交互的情况下,在主时钟设备抓取的第一报文文件包括主时钟设备向从时钟设备发送的时延检测请求报文、以及主时钟设备接收的时延检测应答报文。在从时钟设备抓取的第二报文文件包括从时钟设备接收的时延检测请求报文、以及从时钟设备向主时钟设备发送的时延检测应答报文。
其中,第一报文文件和第二报文文件可以是通过抓包得到的pcap文件。具体地,第一报文文件可以基于在主时钟设备部署的抓包工具抓取得到,第二报文文件可以基于在从时钟设备部署的抓包工具抓取得到。在主时钟设备和在从时钟设备部署的抓包工具可以基于设备类型或设备系统来确定。例如,在一些实施例中,不同OS 平台可利用不同的抓包工具,如windows 平台使用wireshark 进行抓包,Linux 上使用tcpdump 进行抓包。其中wireshark,是一个网络封包分析软件,能够适用于Linux系统。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Tcpdump是根据使用者的定义对网络上的数据包进行截获的包分析工具,能够适用于windows系统。
具体地,在主时钟设备和从时钟设备均启动抓包工具的情况下,通过触发从时钟设备的网络时延检测工具,以使从时钟设备向主时钟设备发送时延检测请求报文,在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至从时钟设备的情况下,时钟同步工具获取从主时钟设备抓取的第一报文文件和从从时钟设备抓取的第二报文文件,在本实施例中,通过直接从主时钟设备和从时钟设备抓取报文文件,能够有效减少获取报文文件,主时钟设备和从时钟设备所需要的实现的交互次数,减少网络资源的占用,提高网络资源的利用率。
步骤304,分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳。
其中,第一报文文件包括主时钟设备向从时钟设备发送的时延检测请求报文、以及主时钟设备接收的时延检测应答报文。第二报文文件包括从时钟设备接收的时延检测请求报文、以及从时钟设备向主时钟设备发送的时延检测应答报文。需要说明的是,主时钟设备向从时钟设备发送的时延检测请求报文,携带的时间戳是由从时钟设备决定的,表征的是主时钟设备发出时延检测请求报文的时间点。主时钟设备接收的时延检测应答报文,携带的时间戳也是由从时钟设备决定的,表征的是主时钟设备接收到时延检测应答报文的时间点。
从时钟设备接收的时延检测请求报文,携带的时间戳是由从时钟设备决定的,表征的是从时钟设备接收到时延检测请求报文的时间点。从时钟设备向主时钟设备发送的时延检测应答报文,携带的时间戳也是由从时钟设备决定的,表征的是从时钟设备发送时延检测请求报文的时间点。
可以理解,从主时钟设备获取的第一报文文件中每一报文所携带的时间戳都是由主时钟设备决定的,而从从时钟设备获取的第二报文文件中每一报文所携带的时间戳都是由从时钟设备决定的。同一时延检测报文在发送端和接收端分别被抓取时,携带的时间戳不同。
基于同一时延检测报文在发送端和接收端被抓去的报文所携带的时间戳之间的时差,可以计算得到网络时延。网络时延是指数据从发送端到接收端所需的时间。具体地,网络时延包括发送时延、传播时延、处理时延和排队时延等。其中,发送时延是指数据从发送端到网络上第一个路由器所需的时间;传播时延是指数据在传输介质中传播所需的时间;处理时延是指路由器对数据进行处理所需的时间;排队时延是指数据在路由器的缓存队列中等待处理所需的时间。单程时延是指数据从发送端到接收端的时间,可以通过报文的发送时间戳和接收时间戳的差值来计算。
进一步地,为确保第一报文文件和第二报文文件中进行时间戳提取的报文均为ICMP报文,减少其他报文的干扰,可以在时间戳提取处理之前,对第一报文文件和第二报文文件进行报文过滤,仅保留ICMP报文。其中,报文过滤的处理过程,可以在主时钟设备和从时钟设备中,在报文抓取之后实现,先进行报文过滤再发送至时钟同步工具中。当时钟同步工具所在设备的算力强大时,报文过滤也可以在时钟同步工具所在设备中实现,在此不做限定。
步骤306,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差。
其中,存在时钟同步误差是指不同设备之间的时钟存在差异,导致它们在时间上的同步出现偏差的现象。时钟同步误差是由于时钟本身的精度和稳定性以及通信延迟等因素造成的。为了修复该误差,可以采用时钟同步协议,如NTP 协议、PTP 协议等,通过网络传输时间信息,使得不同设备之间的时钟保持同步。
例如,当两台计算机之间进行文件传输时,如果它们的时钟存在差异,那么在文件传输过程中就会出现时间戳不一致的情况,导致文件的创建时间、修改时间等信息不准确。时钟同步误差的发生是由于不同设备之间的时钟存在精度和稳定性的差异,同时通信延迟也会对时钟同步造成影响。为了解决这个问题,可以采用时钟同步协议,通过网络传输时间信息,使得不同设备之间的时钟保持同步。
时钟同步误差可能会导致系统的时间戳不准确,进而影响到系统的各种功能,如日志记录、事件触发等。采用时钟同步协议可以修复该误差,保证系统的时间戳准确无误。时钟同步误差过大,还可能会影响到网络通信和传输,导致数据包的时间戳不准确,进而影响到数据的可靠性和正确性。
具体的,基于第一报文文件中每一报文各自携带的由主时钟设备决定的时间戳、以及第二报文文件中每一报文各自携带的由从时钟设备决定的时间戳,进行时钟同步误差计算,从而得到主时钟设备和从时钟设备之间的时钟同步误差。
进一步地,主时钟设备和从时钟设备之间的时钟同步误差,具体可以包括绝对时钟同步误差和相对时钟同步误差。其中,绝对时钟同步误差,是不考虑主时钟设备和从时钟设备谁快谁慢,仅计算时钟误差的绝对值。相对时钟同步误差,则是考虑主时钟设备和从时钟设备之间的时钟前后问题,计算结果为有符号数。时钟同步工具中可以融合以上绝对时钟同步误差和相对时钟同步误差的两种时钟同步误差计算模式,可以通过参数配置来供使用者选择使用,在实际应用中响应使用者按需求来触发的操作,选择计算绝对时钟同步误差还是相对时钟同步误差作为时钟同步误差。
步骤308,在时钟同步误差大于允许误差阈值的情况下,控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差。
其中,允许误差阈值是主时钟设备和从时钟设备之间可以接受的最大时钟同步误差。允许误差阈值可以是提前设定的固定值,也可以是基于主时钟设备和从时钟设备当前所处场景的时间同步精度要求,来实时计算得到的。
对时间精度要求越高的场景下,对主时钟设备和从时钟设备之间的时钟同步误差的容忍性越小,相应的,允许误差阈值的取值会越小。对时间精度要求较低的场景下,对主时钟设备和从时钟设备之间的时钟同步误差的容忍性相对较大,相应的,允许误差阈值的取值会较大。对于场景变化基本不变或者变化较小的情况下,允许误差阈值的取值可以是固定值,对于场景变化基本不变或者变化较大的情况下,允许误差阈值的取值可以是基于当前场景的场景参数实时计算得到的。
可以理解,步骤302至步骤306的数据处理的主要目的,是为了确定是否需要发起从时钟设备与主时钟设备的时间同步。在时钟同步误差小于或等于允许误差阈值的情况下,可以直接结束当前的时钟同步任务。在时钟同步误差大于允许误差阈值的情况下,时间同步工具控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差。
具体的,时间同步工具控制从时钟设备向主时钟设备发起时钟同步请求的具体实现方式,基于时间同步工具的部署位置来确定,当时间同步工具部署在从时钟设备时,从时钟设备可以基于时间同步工具直接向主时钟设备发起时钟同步请求。当时间同步工具未部署在从时钟设备时,如部署在第三方平台,时间同步工具可以先向从时钟设备发送时间同步指令,以指示从时钟设备向主时钟设备发起时钟同步请求。
时间同步请求是从时钟设备向主时钟设备发送的请求,用于使得主时钟设备响应时间同步请求,通过从时间同步请求提取时钟同步误差确定时间矫正参数,然后将该时间矫正参数发送至从时钟设备进行时间误差矫正。系统中各时钟的同步,并不要求各时钟完全与统一标准时钟对齐。只要求知道各从时钟设备与主时钟设备提供的标准时钟在比对时刻的钟差以及比对后它相对标准钟的漂移修正参数即可。
在本申请中,只有在时间同步工具确认时钟同步误差超过允许误差阈值时,才进行主动同步来矫正时钟,以实现对传输资源的节省,降低开销和成本。
上述时钟同步方法,通过在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至从时钟设备的情况下,获取从主时钟设备抓取的第一报文文件和从从时钟设备抓取的第二报文文件,以确保获取的第一报文文件和第二报文文件包含从主从时钟设备分别抓取的时延检测请求报文,以及分别抓取的时延检测应答报文,确保获取的数据源的全面性和准确性。通过分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差,通过设置触发条件结合主动触发机制,来对从时钟设备的时钟进行主动式矫正,由纯软件算法驱动实现简单,具有较高的拓展能力,解决了现有时钟同步方法的通用性不强的问题。
在一些实施例中,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差,包括:
从各时间戳中,确定时延检测请求报文的请求发送时间戳和请求接收时间戳、以及时延检测应答报文的应答发送时间戳和应答接收时间戳;基于请求接收时间戳与请求发送时间戳,确定请求时延,并基于应答接收时间戳与应答发送时间戳,确定应答时延;基于请求时延和应答时延,计算主时钟设备和从时钟设备之间的时钟同步误差。
其中,时延检测请求报文的请求发送时间戳是由发送端即从时钟设备的时钟决定的,时延检测请求报文的请求接收时间戳是由接收端即主时钟设备的时钟决定的。时延检测应答报文的应答发送时间戳是由发送端即主时钟设备的时钟决定的,时延检测应答报文的应答接收时间戳是由接收端即从时钟设备的时钟决定的。
请求接收时间戳与请求发送时间戳之间的请求时延,用于表征发送时延检测请求报文的单程时延,应答接收时间戳与应答发送时间戳,用于表征发送时延检测应答报文的单程时延。单程时延是指数据从发送端到接收端的时间,可以通过发送时间戳和接收时间戳的差值来计算。
进一步地,时钟同步误差的计算可以基于时钟同步工具中包含的时钟同步误差自动计算模块来实现。时钟同步误差自动计算模块,具体可以是基于pyshark开发的计算模块。Pyshark 是基于Tshark 的Python 封装库,它允许用户以Python 代码的方式使用Wireshark 的功能。Tshark 是Wireshark 的命令行版本,它可以在不需要图形界面的情况下捕获和分析网络数据包。Pyshark 提供了一个Pythonic 的API接口,使得用户可以方便地使用Tshark 的功能,而无需了解Tshark 的命令行参数。主要功能是捕获和分析网络数据包。Pyshark可以读取pcap文件或从网络接口捕获数据包,并提供了一系列的过滤器和解析器,使得用户可以方便地对数据包进行过滤和解析。
时钟同步误差自动计算模块基于请求时延和应答时延,可以计算主时钟设备和从时钟设备之间的绝对时钟同步误差和相对时钟同步误差。不同格式的时钟同步误差可以基于不同的计算方式来得到。下文将分别详细介绍绝对时钟同步误差和相对时钟同步误差的计算方式。
在本实施例中,通过确定请求时延和应答时延,分两个单程时延来计算主时钟设备和从时钟设备之间的时钟同步误差,一方面能够提高计算的是时钟同步误差的准确性,另一方面能够简化计算复杂度,提高计算速率,快速得到计算结果。
在其中一些实施例中,以时钟同步误差为绝对时钟同步误差为例,基于请求时延和应答时延,计算主时钟设备和从时钟设备之间的时钟同步误差的过程,具体包括以下步骤:
基于请求发送时间戳和应答接收时间戳,确定平均单向传播时长;
确定请求时延和平均单向传播时长的第一绝对差值、以及应答时延和平均单向传播时长的第二绝对差值;
将第一绝对差值和第二绝对差值的平均值,确定为主时钟设备和从时钟设备之间的时钟同步误差。
其中,请求发送时间戳和应答接收时间戳之间的时间差即为round-trip 时延。round-trip 时延是指数据从发送端到接收端再返回发送端所需的时间,可以通过发送时间戳和接收时间戳的差值来计算。round-trip 时延包括两个平均单向传播时长,请求发送时间戳和应答接收时间戳之间的时间差的一半,即为平均单向传播时长。绝对时钟同步误差,是不考虑主时钟设备和从时钟设备谁快谁慢,仅计算时钟误差的绝对值。
在一个实施例中,T1 为从时钟设备向主时钟设备发送ICMP 请求报文的发送时刻,该时间戳的值由从时钟设备的时钟所决定,T2 为主时钟设备接收到从时钟设备发送来的ICMP 请求报文的时刻,其时间戳的值由主时钟设备的时钟所决定;T3 则是主时钟设备响应ICMP 请求报文,向从时钟设备发送ICMP应答报文的时刻,其时间戳的值由主时钟设备的时钟所决定;T4 为从时钟设备收到来自主时钟设备的ICMP 应答报文的时刻,该时间戳的值由从时钟设备的时钟所决定。主时钟设备和从时钟设备之间的绝对时钟同步误差的计算方式可以为:
其中,T4- T1即为round-trip 时延。
在本实施例中,通过计算绝对时钟同步误差,可以计算得到精准时延,可以帮助更好地了解网络的性能和瓶颈,从而优化网络的设计和配置,提高网络的可靠性和性能。
在一些实施例中,时钟同步误差为相对时钟同步误差;基于请求时延和应答时延,计算主时钟设备和从时钟设备之间的时钟同步误差,包括:将请求时延和应答时延的平均值,确定为主时钟设备和从时钟设备之间的时钟同步误差。
其中,相对时钟同步误差,则是考虑主时钟设备和从时钟设备之间的时钟前后问题,计算结果为有符号数。在一个实施例中,T1 为从时钟设备向主时钟设备发送ICMP 请求报文的发送时刻,该时间戳的值由从时钟设备的时钟所决定,T2 为主时钟设备接收到从时钟设备发送来的ICMP 请求报文的时刻,其时间戳的值由主时钟设备的时钟所决定;T3 则是主时钟设备响应ICMP 请求报文,向从时钟设备发送ICMP应答报文的时刻,其时间戳的值由主时钟设备的时钟所决定;T4 为从时钟设备收到来自主时钟设备的ICMP 应答报文的时刻,该时间戳的值由从时钟设备的时钟所决定。主时钟设备和从时钟设备之间的相对时钟同步误差的计算方式可以为:
在本实施例中,通过计算主时钟设备和从时钟设备之间的相对时钟同步误差,能够考虑主时钟设备和从时钟设备之间的时钟前后问题,使得在数据处理过程中,能够直接基于结果的符号,确定主时钟设备和从时钟设备中哪个设备的时钟在前,哪个设备的时钟在后,主从时钟设备之间的时间矫正提供参考依据,便于后续快速便捷地进行主从时钟设备之间的时间矫正。
在一些实施例中,第一报文文件由主时钟设备中处于工作状态的第一抓包工具抓取;第二报文文件由从时钟设备中处于工作状态的第二抓包工具抓取;第一抓包工具从休眠状态到工作状态的切换,是响应于从时钟设备发送的启动指令执行的;启动指令,是从时钟设备在检测到第二抓包工具从休眠状态切换至工作状态的情况下,向主时钟发送的。
其中,主时钟设备和从时钟设备中的抓包工具,可以是基于设备系统类型来确定,如windows 平台使用wireshark 进行抓包,Linux 上使用tcpdump 进行抓包。wireshark是网络封包分析软件,能够截取网络封包,并尽可能显示出最为详细的网络封包资料。Tcpdump是根据使用者的定义对网络上的数据包进行截获的包分析工具。当主时钟设备和从时钟设备的设备系统类型相同时,第一抓包工具和第二抓包工具可以是相同的抓包工具。当主时钟设备和从时钟设备的设备系统类型不同时,第一抓包工具和第二抓包工具是不同的抓包工具。需要指出的是,第一抓包工具和第二抓包工具抓包的对象是相同的,均是从时钟设备与主时钟设备在进行时延检测交互过程中的报文。
第一抓包工具和第二抓包工具可以与时间同步工具连接,第一抓包工具可以将从主时钟设备抓取的第一报文文件发送至时间同步工具,第二抓包工具可以将从从时钟设备抓取的第二报文文件发送至时间同步工具,从而实现时间同步工具对第一报文文件和第二报文文件的获取。其中,在一个实施例中,第二抓包工具与时间同步工具可以均部署在从时钟设备;在另一个实施例中,第一抓包设备、第二抓包工具与时间同步工具也可以分别部署在不用的设备。
具体地,从时钟设备向主时钟设备发送时延检测请求报文,并接收主时钟设备反馈的时延检测应答报文,这一过程会持续一段时间,在此阶段,需要使得主时钟设备的第一抓包工具以及从时钟设备的第二抓包工具均处于工作状态。
在具体的实现中,第一抓包工具和第二抓包工具的启动均可以通过用户手动控制,适用于用户可以同时对从时钟设备与主时钟设备进行的场景。对于从时钟设备与主时钟设备之间远程连接的场景,为确保第一抓包工具和第二抓包工具均从休眠状态切换至工作状态,需要在从时钟设备的第二抓包工具启动的情况下,自动启动主时钟设备的第一抓包工具。
自动启动第一抓包工具的具体的实现方式包括:从时钟设备在检测到第二抓包工具从休眠状态切换至工作状态的情况下,从时钟设备向主时钟发送指示第一抓包工具启动的启动指令,主时钟设备通过响应该启动指令,执行第一抓包工具从休眠状态到工作状态的切换。其中,主时钟设备中可以配置有触发脚本,在接收到从时钟设备发送的启动指令时,通过执行该触发脚本,使得主时钟设备执行第一抓包工具从休眠状态到工作状态的切换动作。
在本实施例中,通过在第二抓包工具启动时,从时钟设备通过向主时钟设备发送启动指令,能够使得第一抓包工具自动启动,从而是的第一抓包工具和第二抓包工具均从休眠状态切换至工作状态,以分别对主时钟设备和从时钟设备进行抓包,避免其中一个抓包工具抓取到过多的无效数据,提高资源利用率。
在其中一些实施例中,第一抓包工具和第二抓包工具从工作状态到休眠状态,可以通过配置抓包结束条件自动触发切换。其中,抓包结束条件可以是抓取到设定数量的数据包,也可以是抓包时长达到设定的时长,抓包结束条件可以根据实际场景进行设定。
在一些实施例中,方法还包括:获取主时钟设备和从时钟设备所处场景的时间精度条件;基于时间精度条件,确定与场景匹配的允许误差阈值;将时钟同步误差与允许误差阈值进行比较,确定时钟同步误差是否大于允许误差阈值;在时钟同步误差小于或等于允许误差阈值的情况下,结束时钟同步任务。
其中,时间精度条件是基于主时钟设备和从时钟设备所处场景确定的,不同的场景可以对应不同的时间精度条件。具体地,可以提前构建主时钟设备和从时钟设备所处场景的时间精度条件的关联关系,在实际应用场景中,可以根据关联关系查找,确定主时钟设备和从时钟设备所处场景的时间精度条件。
进一步地,对时间精度要求越高的场景下,对主时钟设备和从时钟设备之间的时钟同步误差的容忍性越小,相应的,时间精度条件越严格,允许误差阈值的取值会越小。对时间精度要求较低的场景下,对主时钟设备和从时钟设备之间的时钟同步误差的容忍性相对较大,相应的,时间精度条件越宽松,允许误差阈值的取值会较大。
允许误差阈值是主时钟设备和从时钟设备之间可以接受的最大时钟同步误差。允许误差阈值可以是提前设定的固定值,也可以是基于主时钟设备和从时钟设备当前所处场景的时间同步精度要求,来实时计算得到的。对于场景变化基本不变或者变化较小的情况下,允许误差阈值的取值可以是固定值,对于场景变化基本不变或者变化较大的情况下,允许误差阈值的取值可以是基于当前场景的场景参数实时计算得到的。
在本实施例中,通过是将时钟同步误差与允许误差阈值进行比较可以确定是否需要发起从时钟设备与主时钟设备的时间同步。在时钟同步误差小于或等于允许误差阈值的情况下,可以直接结束当前的时钟同步任务。在时钟同步误差大于允许误差阈值的情况下,时间同步工具控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差,只有在时间同步工具确认时钟同步误差超过允许误差阈值时,才进行主动同步来矫正时钟,以实现对传输资源的节省,降低开销和成本。
需要说明的是,时钟同步工具是由纯软件算法驱动的,可以灵活进行部署,例如时钟同步工具可以直接部署在从时钟设备,以便在确定需要进行时钟同步的情况下,不需要通过网络进行判断结果的传输,可以直接由从时钟设备快速敏捷地进行数据处理操作,向从时钟设备发送时钟同步请求。
在一些实施例中,时钟同步方法由从时钟设备实现;第一报文文件为主时钟设备发送至从时钟设备的。
进一步地,在时钟同步误差大于允许误差阈值的情况下,控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差,包括:在时钟同步误差大于允许误差阈值的情况下,向主时钟设备发起时钟同步请求,以矫正时钟同步误差。
具体来说,以从时钟设备与主时钟设备的交互过程来说,从时钟设备向主时钟设备发送时延检测请求报文,接收主时钟设备反馈的时延检测应答报文,从时钟设备接收主时钟设备抓取并发送的第一报文文件,并从本地抓取第二报文文件,从时钟设备在获取到第一报文文件或第二报文文件之后,分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差;在时钟同步误差大于允许误差阈值的情况下,向主时钟设备发起时钟同步请求,以矫正时钟同步误差。
在其中一个实施例中,以主时钟设备为部署有第一抓包工具的服务器,从时钟设备为部署有第二抓包工具和时钟同步工具的客户端,服务器与客户端之间远程连接为例进行说明。
用户在客户端启动第二抓包工具,第二抓包工具从休眠状态切换为工作状态,同时触发生成启动指令发送至服务器,服务器响应启动指令,将第一抓包工具从休眠状态切换为工作状态。客户端发送时延检测请求报文至服务器,服务器响应该时延检测请求报文,并反馈时延检测应答报文至客户端,客户端中的时钟同步工具接收服务器的第一抓包工具抓取并发送的第一报文文件,并获取第二抓包工具从客户端本地抓取的第二报文文件,时钟同步工具在获取到第一报文文件和第二报文文件之后,分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定服务器和客户端之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,时钟同步工具通过客户端向服务器发起时钟同步请求,以矫正时钟同步误差。
在一些实施例中,时钟同步工具也可以部署在第三方平台,时钟同步方法由第三方平台实现;
进一步地,在时钟同步误差大于允许误差阈值的情况下,控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差,包括:在时钟同步误差大于允许误差阈值的情况下,向从时钟设备发送时钟同步指令,以使从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差。
其中,第三方平台可以是云平台,或其他独立于主时钟设备和从时钟设备以外的第三方设备。第三方平台可以是具有将强大的算力的平台,适应于抓取的报文数量特别多需要比较强大的算力进行处理,或是从时钟设备所能提供的算力有限的场景。
在其中一个实施例中,以主时钟设备为部署有第一抓包工具的服务器,从时钟设备为部署有第二抓包工具的客户端,时间同步工具部署在第三方平台。服务器、客户端、第三方平台三者之间通过网络连接为例进行说明。
用户在客户端启动第二抓包工具,第二抓包工具从休眠状态切换为工作状态,同时触发生成启动指令发送至服务器,服务器响应启动指令,将第一抓包工具从休眠状态切换为工作状态。客户端发送时延检测请求报文至服务器,服务器响应该时延检测请求报文,并反馈时延检测应答报文至客户端,第三方平台的时钟同步工具接收服务器的第一抓包工具抓取并发送的第一报文文件,并接收客户端的第二抓包工具抓取并发送的第二报文文件,第三方平台的时钟同步工具在获取到第一报文文件和第二报文文件之后,分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定服务器和客户端之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,第三方平台的时钟同步工具向客户端发送时钟同步指令,以使客户端向服务器发起时钟同步请求,以矫正时钟同步误差。
在一个实施例中,提供了一种从时钟设备,从时钟设备与主时钟设备连接;
从时钟设备向主时钟设备发送时延检测请求报文,接收主时钟设备反馈的时延检测应答报文;
从时钟设备接收主时钟设备发送的第一报文文件,并从本地抓取第二报文文件,第一报文文件和第二报文文件均包括时延检测请求报文和时延检测应答报文;
从时钟设备分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差;在时钟同步误差大于允许误差阈值的情况下,向主时钟设备发起时钟同步请求,以矫正时钟同步误差。
进一步地,以主时钟设备为部署有第一抓包工具的服务器,从时钟设备为部署有第二抓包工具和时钟同步工具的客户端,服务器与客户端之间远程连接为例进行说明。用户在客户端启动第二抓包工具,第二抓包工具从休眠状态切换为工作状态,同时触发生成启动指令发送至服务器,服务器响应启动指令,将第一抓包工具从休眠状态切换为工作状态。客户端发送时延检测请求报文至服务器,服务器响应该时延检测请求报文,并反馈时延检测应答报文至客户端,客户端中的时钟同步工具接收服务器的第一抓包工具抓取并发送的第一报文文件,并获取第二抓包工具从客户端本地抓取的第二报文文件,时钟同步工具在获取到第一报文文件和第二报文文件之后,分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定服务器和客户端之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,时钟同步工具通过客户端向服务器发起时钟同步请求,以矫正时钟同步误差。
上述从时钟设备,通过在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至从时钟设备的情况下,获取从主时钟设备抓取的第一报文文件和从本地抓取的第二报文文件,以确保获取的第一报文文件和第二报文文件包含从主从时钟设备分别抓取的时延检测请求报文,以及分别抓取的时延检测应答报文,确保获取的数据源的全面性和准确性。通过分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差,通过设置触发条件结合主动触发机制,来对从时钟设备的时钟进行主动式矫正,由纯软件算法驱动实现简单,具有较高的拓展能力,解决了现有时钟同步方法的通用性不强的问题。
可以理解,在其他实施例中,在服务器的时钟精度或稳定性低于客户端的时钟的精度和稳定性的情况下,主时钟设备可以为客户端,从时钟设备可以为部署有时钟同步工具的服务器。
需要说明的是,从时钟设备实现上述时钟同步的过程和具体实现方式可以参考上述时钟同步方法中的各个实施例,在此不做赘述。
在一个实施例中,提供了一种第三方平台,第三方平台分别与从时钟设备与主时钟设备连接;从时钟设备用于向主时钟设备发送时延检测请求报文,主时钟设备用于响应时延检测请求报文并反馈时延检测应答报文至从时钟设备。
第三方平台接收主时钟设备发送的第一报文文件,并接收从时钟设备发送的第二报文文件,第一报文文件和第二报文文件均包括时延检测请求报文和时延检测应答报文。
第三方平台分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差;在时钟同步误差大于允许误差阈值的情况下,向从时钟设备发送时钟同步指令,以使从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差。
进一步地,以主时钟设备为部署有第一抓包工具的服务器,从时钟设备为部署有第二抓包工具的客户端,时间同步工具部署在第三方平台。服务器、客户端、第三方平台三者之间通过网络连接为例进行说明。
用户在客户端启动第二抓包工具,第二抓包工具从休眠状态切换为工作状态,同时触发生成启动指令发送至服务器,服务器响应启动指令,将第一抓包工具从休眠状态切换为工作状态。客户端发送时延检测请求报文至服务器,服务器响应该时延检测请求报文,并反馈时延检测应答报文至客户端,第三方平台的时钟同步工具接收服务器的第一抓包工具抓取并发送的第一报文文件,并接收客户端的第二抓包工具抓取并发送的第二报文文件,第三方平台的时钟同步工具在获取到第一报文文件和第二报文文件之后,分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定服务器和客户端之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,第三方平台的时钟同步工具向客户端发送时钟同步指令,以使客户端向服务器发起时钟同步请求,以矫正时钟同步误差。
上述第三方平台,通过在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至从时钟设备的情况下,获取从主时钟设备抓取的第一报文文件和从从时钟设备抓取的第二报文文件,以确保获取的第一报文文件和第二报文文件包含从主从时钟设备分别抓取的时延检测请求报文,以及分别抓取的时延检测应答报文,确保获取的数据源的全面性和准确性。通过分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差,通过设置触发条件结合主动触发机制,来对从时钟设备的时钟进行主动式矫正,由纯软件算法驱动实现简单,具有较高的拓展能力,解决了现有时钟同步方法的通用性不强的问题。
可以理解,在其他实施例中,在服务器的时钟精度或稳定性低于客户端的时钟的精度和稳定性的情况下,主时钟设备可以为客户端,从时钟设备可以为服务器。需要说明的是,第三方平台实现上述时钟同步的过程和具体实现方式可以参考上述时钟同步方法中的各个实施例,在此不做赘述。
在一个实施例中,还提供了一种时钟同步系统,时钟同步系统包括主时钟设备、从时钟设备和时钟同步工具。其中,时钟同步工具部署于从时钟设备或第三方平台,第三方平台分别与主时钟设备和从时钟设备建立有网络连接。
如图4所示,在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至从时钟设备的情况下,时钟同步工具获取从主时钟设备抓取的第一报文文件和从从时钟设备抓取的第二报文文件;时钟同步工具分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳;时钟同步工具基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差;时钟同步工具在时钟同步误差大于允许误差阈值的情况下,控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差。
上述时钟同步系统,通过在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至从时钟设备的情况下,获取从主时钟设备抓取的第一报文文件和从从时钟设备抓取的第二报文文件,以确保获取的第一报文文件和第二报文文件包含从主从时钟设备分别抓取的时延检测请求报文,以及分别抓取的时延检测应答报文,确保获取的数据源的全面性和准确性。通过分别提取第一报文文件和第二报文文件中每一报文各自携带的时间戳,基于各时间戳,确定主时钟设备和从时钟设备之间的时钟同步误差,在时钟同步误差大于允许误差阈值的情况下,控制从时钟设备向主时钟设备发起时钟同步请求,以矫正时钟同步误差,通过设置触发条件结合主动触发机制,来对从时钟设备的时钟进行主动式矫正,由纯软件算法驱动实现简单,具有较高的拓展能力,解决了现有时钟同步方法的通用性不强的问题。
本申请还提供一种应用场景,该应用场景应用上述的时钟同步方法。具体地,该时钟同步方法在该应用场景的应用如下:
本申请技术方案的研究目标是设计一种较为简单、实用性强的NTP 时钟同步误差计算和时钟矫正算法,以解决现有方法存在的通用性不强、实用场景有限以及成本开销问题。NTP 时钟同步问题作为设备协同通信领域的关键问题,解决好该问题意义重大。
图5 展示了本申请的技术方案对工业互联网项目的支持。在绝大多数情况下,工业互联网项目对时钟同步精度要求极高,甚至达到微妙级别。因此,对于多设备联网协同工作的工业控制项目,保证设备之间的时钟高度一致性具备重要意义。例如,当需要对多台设备发送的信号数据进行融合和拼接时,若这些设备之间的时钟不一致,则会导致数据难以有效融合,造成后续的数据处理不当问题。又比如,金融领域中的限时秒杀场景,如果客户A和客户B 的设备时钟不一致,则会在抢购时导致严重的不公平问题。本申请设计和提出的目标在于解决对时钟同步精度要求极高的任务场景。就图1 具体而言,本申请设计时钟同步工具提供的算法充当一个决策大脑的角色,通过获取各个设备发送来的实时抓包pcap文件,并基于pcap 文件和ICMP 报文分析来计算这些设备彼此之间的NTP 时钟同步误差。当某个设备的误差超出预警线时,说明该设备发生了较为严重的时钟漂移问题,因此基于触发机制和同步工具来矫正和恢复该设备的时钟,以此实现网络中的设备时钟的高度一致性。
图6 展示了本申请对车联网相关项目的支撑。与图1 展示的功能相同,本申请的技术方案通过计算路侧感知设备如毫米波雷达、摄像头、激光雷达等设备之间的NTP 时钟同步误差,然后基于触发机制来及时矫正时钟偏差较大的设备。以此实现计算路侧设备与车载设备之间的时钟高度同步,确保信号通信和指令下发的效率以及车辆行驶的安全性。
图7展示了本申请对监测场景下的流媒体数据同步问题的支撑和优化,基于本申请设计的NTP 时钟误差计算和矫正算法,可以有效保证多路视频数据在渲染和呈现时处于同一时刻,避免由于时钟偏差导致的监测质量下降问题。
进一步地,本申请提供的时钟同步方法的实现包括以下步骤:
1)待测设备中的客户端和服务端均保证已经启动抓包,不同OS 平台可利用不同的抓包工具,如windows 平台使用wireshark 进行抓包,Linux 上使用tcpdump 进行抓包。同时,为减小不必要的开销,可以使用netfilter 对抓取的报文进行过滤,仅抓取ICMP 报文,ICMP 报文如图8所示。
2)待测设备中的客户端启动Ping 工具,向服务端发送ICMP 报文,
3)客户端和服务端均完成对ICMP 报文的抓取。将client-pcap 文件和server-pcap 文件送入本申请设计的NTP 时钟同步误差计算模块中,进行NTP 时钟误差的自动计算。该计算模块主要基于对ICMP 报文的分析来确认NTP 时钟同步误差的计算公式,然后基于pyshark 开发和完成计算步骤,以实现对于海量报文数据的高精度、自动化计算功能。
其中,基于ICMP 收发报文对NTP 时钟同步误差进行计算的方式有两种——绝对误差和相对误差,公式分别如下:
其中,绝对误差和相对误差均基于通信链路对称的假设进行计算,前者不考虑客户端和服务端谁快谁慢,仅计算时钟误差的值(正整数);后者则是考虑客户端和服务端之间的时钟前后问题,因此计算结果为有符号数。在本申请中,计算模块融合了以上两种计算模式,可以通过参数配置来选择使用,在实际应用中根据使用者的需求来选择计算绝对误差还是相对误差。公式中的T1、T2、T3、T4 四个时间戳的得到如图9所示。
其中,T1 为客户端向服务端Ping 时的ICMP 报文发送时刻,该时间戳的值由客户端时钟所决定;T2 为服务端接收到发送来的ICMP 报文的时刻,其值由服务端的时钟所决定;T3 则是服务端响应客户端ICMP 回复报文的时刻,T4 为客户端收到来自服务端的ICMP回复报文的时刻。
4)基于pyshark 编写python 脚本和相关工具,将上述NTP 时钟误差的计算过程自动化,即输入pcap 文件,程序将自动输出实时的NTP 时钟同步误差。
5)比较当前计算出的NTP 时钟同步误差是否超过预警值(提前设定的阈值),如果超过阈值,则触发设备上的时钟同步软件,如Linuxptp、ntpdate,主动向主时钟源发起同步请求,以实现矫正当前设备的时钟偏差的效果。
本申请的整体架构如图10 所示,提出的算法能够使得设备之间的NTP 时钟同步误差的计算自动化,且方法实施较为简单,跨平台特性好,能够有效的应用到如工业互联网等时间敏感项目中,保证设备的时钟一致性和设备之间有效的进行协同运作。
本申请的测试环境如图11 所示。测试目标为计算用户设备和服务器之间的时钟误差,在误差超过阈值的情况下自动进行NTP 时钟同步,以矫正用户设备的时间,保持二者之间的时钟一致性。该图展示了一个较为简单的通信场景,然而本申请设计的算法可以适用于任何联网设备中,且不仅可以计算一对一设备之间的误差,也可以同时计算一对多(一个server 和多个client)之间的时钟误差。
本申请的测试步骤如图12的流程图所示:
1)client 和server 均启动抓包工具;
2)作为客户端的一方设备开启Ping,向服务端一方发送ICMP 请求报文,服务端接收ICMP 报文并响应客户端;
3)客户端和服务端均导出抓包得到的Pcap 文件,并将两份文件同时输入到本申请基于pyshark开发的时钟同步误差自动计算模块中;
4)计算得到当前两台设备之间的NTP 时钟同步误差;
5)判断计算的误差是否超过阈值,如果没有超过,说明设备之间的时钟偏差处于可接受范围内,不需要额外的开销去进行时钟同步服务;
6)如果计算的误差超过阈值,说明当前设备之间的时间高度不一致,此时触发客户端(从时钟设备)上的时钟同步软件,主动向服务端(主时钟设备)发起时钟同步。
本申请设计的架构具备较好的可拓展性,可以支持多种主流开源的时钟同步软件,如ntpdate 和linuxptp。一般而言,ntpdate的使用较为简单且跨平台特性较好,本申请中的测试场景就采用ntpdate 软件进行时钟同步,而linuxptp 软件相较于ntpdate 同步精度更高,然而需要额外的网卡支持,部署难度较大。综合而言,使用者可根据需求自行选择要使用的时钟同步软件。
本申请面向网络通信和设备协同与交互领域,设计了一种基于ICMP 报文解析和触发式时钟同步服务的时钟一致性保证算法。能够有效解决现有方法存在的成本问题、自动化水平不高问题以及通用性不强等问题。同时,本申请设计和开发的算法具备适用性强,支持如Windows、MacOS 和Linux 等主流的OS 平台,且使用成本较低,架构上均采用开源的软件和python 库进行算法研发。
相较于现有的方法,本申请提出了基于Ping 指令和ICMP 报文分析的NTP 时钟同步误差精准计算方案,解决了当前NTP 时钟同步领域的精准误差计算问题。其次,本申请结合触发机制和多种工具来对设备的时钟进行主动式矫正,大幅度提高了时钟同步服务的可拓展性,该方法符合当下异构网络的发展趋势。
本申请提出的架构可以分为时钟误差计算和触发矫正两个模块。该两个模块均具备高拓展能力,在计算模块中,本申请已集成了两种NTP 时钟误差的计算策略——绝对误差计算和相对误差计算,该两种策略均基于链路对称的假设。然而,本申请设计的计算模块具备较好的兼容性和拓展性,在后续任务中可根据需求集成新的时钟误差计算策略。其次,在触发矫正模块中,可以集成多种主流的时钟同步软件,本申请目前集成了两种主流开源的软件——ntpdate 和linuxptp,然而使用者可以根据需求集成其他时钟同步软件。最后,本申请设计的算法具备较高的通用能力,且使用简单、实用性较好,可以跨平台运行,只需要用户提供抓包文件即可进行计算和判断。
本申请面向的场景:实时性要求高、时间敏感的项目产品,如金融交易、工业控制、远程驾驶项目等。当前,这些时间敏感项目急需一种部署方便、成本较低以及扩展性较好的时钟同步策略,而本申请设计的算法可以有效保证设备之间的时钟一致性,确保项目的正常运转和安全性。本申请提出的方法符合工业4.0 这一趋势,同时对目前的时钟同步研究具备一定的参考价值。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的申请构思,本申请实施例还提供了一种用于实现上述所涉及的时钟同步方法的时钟同步装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个时钟同步装置实施例中的具体限定可以参见上文中对于时钟同步方法的限定,在此不再赘述。
在一个实施例中,如图13所示,提供了一种时钟同步装置,包括:报文文件获取模块1302、时间戳提取模块1304、误差确定模块1306和矫正控制模块1308,其中:
报文文件获取模块1302,用于在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;
时间戳提取模块1304,用于分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;
误差确定模块1306,用于基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;
矫正控制模块1308,用于在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
在一些实施例中,误差确定模块1306,还用于从各所述时间戳中,确定所述时延检测请求报文的请求发送时间戳和请求接收时间戳、以及所述时延检测应答报文的应答发送时间戳和应答接收时间戳;基于所述请求接收时间戳与所述请求发送时间戳,确定请求时延;基于所述应答接收时间戳与所述应答发送时间戳,确定应答时延;基于所述请求时延和所述应答时延,计算所述主时钟设备和所述从时钟设备之间的时钟同步误差。
在一些实施例中,所述时钟同步误差为绝对时钟同步误差;所述误差确定模块1306,还用于基于所述请求发送时间戳和所述应答接收时间戳,确定平均单向传播时长;确定所述请求时延和所述平均单向传播时长的第一绝对差值、以及所述应答时延和所述平均单向传播时长的第二绝对差值;将所述第一绝对差值和所述第二绝对差值的平均值,确定为所述主时钟设备和所述从时钟设备之间的时钟同步误差。
在一些实施例中,所述时钟同步误差为相对时钟同步误差;所述误差确定模块1306,还用于将所述请求时延和所述应答时延的平均值,确定为所述主时钟设备和所述从时钟设备之间的时钟同步误差。
在一些实施例中,所述第一报文文件由所述主时钟设备中处于工作状态的第一抓包工具抓取;所述第二报文文件由所述从时钟设备中处于工作状态的第二抓包工具抓取;所述第一抓包工具从休眠状态到工作状态的切换,是响应于所述从时钟设备发送的启动指令执行的;所述启动指令,是所述从时钟设备在检测到所述第二抓包工具从休眠状态切换至工作状态的情况下,向所述主时钟发送的。
在一些实施例中,所述时钟同步装置还包括误差比较模块,用于获取所述主时钟设备和所述从时钟设备所处场景的时间精度条件;基于所述时间精度条件,确定与所述场景匹配的允许误差阈值;将所述时钟同步误差与所述允许误差阈值进行比较,确定所述时钟同步误差是否大于允许误差阈值;在所述时钟同步误差小于或等于允许误差阈值的情况下,结束时钟同步任务。
在一些实施例中,所述时钟同步装置应用于从时钟设备;所述第一报文文件为所述主时钟设备发送至所述从时钟设备的;所述矫正控制模块1308,还用于在所述时钟同步误差大于允许误差阈值的情况下,向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
在一些实施例中,所述时钟同步装置应用于第三方平台;所述矫正控制模块1308,还用于在所述时钟同步误差大于允许误差阈值的情况下,向所述从时钟设备发送时钟同步指令,以使所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
上述时钟同步装置,通过在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件,以确保获取的第一报文文件和第二报文文件包含从主从时钟设备分别抓取的时延检测请求报文,以及分别抓取的时延检测应答报文,确保获取的数据源的全面性和准确性。通过分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳,基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差,在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差,通过设置触发条件结合主动触发机制,来对从时钟设备的时钟进行主动式矫正,由纯软件算法驱动实现简单,具有较高的拓展能力,解决了现有时钟同步方法的通用性不强的问题。
上述时钟同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种实现时钟同步方法的从时钟设备或第三方平台,该从时钟设备或第三方平台可以是服务器,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种时钟同步方法。
在一个实施例中,提供了一种实现时钟同步方法的从时钟设备或第三方平台,该从时钟设备或第三方平台可以是终端,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种时钟同步方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14和图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种从时钟设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种第三方平台,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (19)
1.一种时钟同步方法,其特征在于,所述方法包括:
在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;所述第一报文文件由所述主时钟设备中处于工作状态的第一抓包工具抓取;所述第二报文文件由所述从时钟设备中处于工作状态的第二抓包工具抓取;对于所述从时钟设备与所述主时钟设备之间远程连接的场景,所述第一抓包工具从休眠状态到工作状态的切换,是响应于所述从时钟设备发送的启动指令执行的;所述启动指令,是所述从时钟设备在检测到所述第二抓包工具从休眠状态切换至工作状态的情况下,向所述主时钟发送的;
分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;
基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;
在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
2.根据权利要求1所述的方法,其特征在于,所述基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差,包括:
从各所述时间戳中,确定所述时延检测请求报文的请求发送时间戳和请求接收时间戳、以及所述时延检测应答报文的应答发送时间戳和应答接收时间戳;
基于所述请求接收时间戳与所述请求发送时间戳,确定请求时延;
基于所述应答接收时间戳与所述应答发送时间戳,确定应答时延;
基于所述请求时延和所述应答时延,计算所述主时钟设备和所述从时钟设备之间的时钟同步误差。
3.根据权利要求2所述的方法,其特征在于,所述时钟同步误差为绝对时钟同步误差;
所述基于所述请求时延和所述应答时延,计算所述主时钟设备和所述从时钟设备之间的时钟同步误差,包括:
基于所述请求发送时间戳和所述应答接收时间戳,确定平均单向传播时长;
确定所述请求时延和所述平均单向传播时长的第一绝对差值、以及所述应答时延和所述平均单向传播时长的第二绝对差值;
将所述第一绝对差值和所述第二绝对差值的平均值,确定为所述主时钟设备和所述从时钟设备之间的时钟同步误差。
4.根据权利要求2所述的方法,其特征在于,所述时钟同步误差为相对时钟同步误差;
所述基于所述请求时延和所述应答时延,计算所述主时钟设备和所述从时钟设备之间的时钟同步误差,包括:
将所述请求时延和所述应答时延的平均值,确定为所述主时钟设备和所述从时钟设备之间的时钟同步误差。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述主时钟设备和所述从时钟设备所处场景的时间精度条件;
基于所述时间精度条件,确定与所述场景匹配的允许误差阈值;
将所述时钟同步误差与所述允许误差阈值进行比较,确定所述时钟同步误差是否大于允许误差阈值;
在所述时钟同步误差小于或等于允许误差阈值的情况下,结束时钟同步任务。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述时钟同步方法由所述从时钟设备实现;所述第一报文文件为所述主时钟设备发送至所述从时钟设备的;
所述在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差,包括:
在所述时钟同步误差大于允许误差阈值的情况下,向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述时钟同步方法由第三方平台实现;
所述在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差,包括:
在所述时钟同步误差大于允许误差阈值的情况下,向所述从时钟设备发送时钟同步指令,以使所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
8.一种从时钟设备,其特征在于,所述从时钟设备与主时钟设备连接;
所述从时钟设备向所述主时钟设备发送时延检测请求报文,接收所述主时钟设备反馈的时延检测应答报文;
所述从时钟设备接收所述主时钟设备发送的第一报文文件,并从本地抓取第二报文文件,所述第一报文文件和所述第二报文文件均包括所述时延检测请求报文和所述时延检测应答报文;
所述从时钟设备分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳,基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;在所述时钟同步误差大于允许误差阈值的情况下,向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差;
所述第一报文文件由所述主时钟设备中处于工作状态的第一抓包工具抓取;所述第二报文文件由所述从时钟设备中处于工作状态的第二抓包工具抓取;对于所述从时钟设备与所述主时钟设备之间远程连接的场景,所述第一抓包工具从休眠状态到工作状态的切换,是响应于所述从时钟设备发送的启动指令执行的;所述启动指令,是所述从时钟设备在检测到所述第二抓包工具从休眠状态切换至工作状态的情况下,向所述主时钟发送的。
9.一种第三方平台,其特征在于,所述第三方平台分别与从时钟设备与主时钟设备连接;所述从时钟设备用于向所述主时钟设备发送时延检测请求报文,所述主时钟设备用于响应所述时延检测请求报文并反馈时延检测应答报文至所述从时钟设备;
所述第三方平台接收所述主时钟设备发送的第一报文文件,并接收所述从时钟设备发送的第二报文文件,所述第一报文文件和所述第二报文文件均包括所述时延检测请求报文和所述时延检测应答报文;
所述第三方平台分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳,基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;在所述时钟同步误差大于允许误差阈值的情况下,向所述从时钟设备发送时钟同步指令,以使所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差;
所述第一报文文件由所述主时钟设备中处于工作状态的第一抓包工具抓取;所述第二报文文件由所述从时钟设备中处于工作状态的第二抓包工具抓取;对于所述从时钟设备与所述主时钟设备之间远程连接的场景,所述第一抓包工具从休眠状态到工作状态的切换,是响应于所述从时钟设备发送的启动指令执行的;所述启动指令,是所述从时钟设备在检测到所述第二抓包工具从休眠状态切换至工作状态的情况下,向所述主时钟发送的。
10.一种时钟同步系统,其特征在于,所述时钟同步系统包括主时钟设备、从时钟设备和时钟同步工具;
在所述主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,所述时钟同步工具获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;所述第一报文文件由所述主时钟设备中处于工作状态的第一抓包工具抓取;所述第二报文文件由所述从时钟设备中处于工作状态的第二抓包工具抓取;对于所述从时钟设备与所述主时钟设备之间远程连接的场景,所述第一抓包工具从休眠状态到工作状态的切换,是响应于所述从时钟设备发送的启动指令执行的;所述启动指令,是所述从时钟设备在检测到所述第二抓包工具从休眠状态切换至工作状态的情况下,向所述主时钟发送的;
所述时钟同步工具分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;
所述时钟同步工具基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;
所述时钟同步工具在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
11.根据权利要求10所述的系统,其特征在于,所述时钟同步工具部署于所述从时钟设备或第三方平台,所述第三方平台分别与所述主时钟设备和所述从时钟设备建立有网络连接。
12.一种时钟同步装置,其特征在于,所述装置包括:
报文文件获取模块,用于在主时钟设备响应从时钟设备发送的时延检测请求报文,反馈时延检测应答报文至所述从时钟设备的情况下,获取从所述主时钟设备抓取的第一报文文件和从所述从时钟设备抓取的第二报文文件;所述第一报文文件由所述主时钟设备中处于工作状态的第一抓包工具抓取;所述第二报文文件由所述从时钟设备中处于工作状态的第二抓包工具抓取;对于所述从时钟设备与所述主时钟设备之间远程连接的场景,所述第一抓包工具从休眠状态到工作状态的切换,是响应于所述从时钟设备发送的启动指令执行的;所述启动指令,是所述从时钟设备在检测到所述第二抓包工具从休眠状态切换至工作状态的情况下,向所述主时钟发送的;
时间戳提取模块,用于分别提取所述第一报文文件和所述第二报文文件中每一报文各自携带的时间戳;
误差确定模块,用于基于各所述时间戳,确定所述主时钟设备和所述从时钟设备之间的时钟同步误差;
矫正控制模块,用于在所述时钟同步误差大于允许误差阈值的情况下,控制所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
13.根据权利要求12所述的装置,其特征在于,所述误差确定模块,还用于从各所述时间戳中,确定所述时延检测请求报文的请求发送时间戳和请求接收时间戳、以及所述时延检测应答报文的应答发送时间戳和应答接收时间戳;基于所述请求接收时间戳与所述请求发送时间戳,确定请求时延;基于所述应答接收时间戳与所述应答发送时间戳,确定应答时延;基于所述请求时延和所述应答时延,计算所述主时钟设备和所述从时钟设备之间的时钟同步误差。
14.根据权利要求13所述的装置,其特征在于,所述时钟同步误差为绝对时钟同步误差;
所述误差确定模块,还用于基于所述请求发送时间戳和所述应答接收时间戳,确定平均单向传播时长;确定所述请求时延和所述平均单向传播时长的第一绝对差值、以及所述应答时延和所述平均单向传播时长的第二绝对差值;将所述第一绝对差值和所述第二绝对差值的平均值,确定为所述主时钟设备和所述从时钟设备之间的时钟同步误差。
15.根据权利要求13所述的装置,其特征在于,所述时钟同步误差为相对时钟同步误差;所述误差确定模块,还用于将所述请求时延和所述应答时延的平均值,确定为所述主时钟设备和所述从时钟设备之间的时钟同步误差。
16.根据权利要求12所述的装置,其特征在于,所述时钟同步装置还包括误差比较模块,用于获取所述主时钟设备和所述从时钟设备所处场景的时间精度条件;基于所述时间精度条件,确定与所述场景匹配的允许误差阈值;将所述时钟同步误差与所述允许误差阈值进行比较,确定所述时钟同步误差是否大于允许误差阈值;在所述时钟同步误差小于或等于允许误差阈值的情况下,结束时钟同步任务。
17.根据权利要求12至16中任一项所述的装置,其特征在于,所述时钟同步装置应用于从时钟设备;所述第一报文文件为所述主时钟设备发送至所述从时钟设备的;所述矫正控制模块,还用于在所述时钟同步误差大于允许误差阈值的情况下,向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
18.根据权利要求12至16中任一项所述的装置,其特征在于,所述时钟同步装置应用于第三方平台;所述矫正控制模块,还用于在所述时钟同步误差大于允许误差阈值的情况下,向所述从时钟设备发送时钟同步指令,以使所述从时钟设备向所述主时钟设备发起时钟同步请求,以矫正所述时钟同步误差。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310864866.6A CN116614199B (zh) | 2023-07-14 | 2023-07-14 | 时钟同步方法、装置、从时钟设备、时钟同步系统和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310864866.6A CN116614199B (zh) | 2023-07-14 | 2023-07-14 | 时钟同步方法、装置、从时钟设备、时钟同步系统和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116614199A CN116614199A (zh) | 2023-08-18 |
CN116614199B true CN116614199B (zh) | 2023-10-17 |
Family
ID=87685664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310864866.6A Active CN116614199B (zh) | 2023-07-14 | 2023-07-14 | 时钟同步方法、装置、从时钟设备、时钟同步系统和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116614199B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117728913B (zh) * | 2023-12-27 | 2024-09-24 | 小米汽车科技有限公司 | 时间同步的方法、装置、存储介质和车辆 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009065579A (ja) * | 2007-09-10 | 2009-03-26 | Nec Corp | 時刻同期システム、時刻同期方法、ノード及びプログラム |
CN102412999A (zh) * | 2011-12-23 | 2012-04-11 | 华为技术有限公司 | 一种基于抓包的远程故障定位方法、系统及设备 |
CN106341218A (zh) * | 2015-07-06 | 2017-01-18 | 北京东土军悦科技有限公司 | 一种基于windows操作系统的时钟同步方法及装置 |
CN106656398A (zh) * | 2016-05-03 | 2017-05-10 | 中国移动通信集团湖北有限公司 | 一种时钟同步监管方法和装置 |
CN108880727A (zh) * | 2018-06-13 | 2018-11-23 | 合肥工业大学 | 一种基于PTPd2协议的精确时钟同步实现方法 |
-
2023
- 2023-07-14 CN CN202310864866.6A patent/CN116614199B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009065579A (ja) * | 2007-09-10 | 2009-03-26 | Nec Corp | 時刻同期システム、時刻同期方法、ノード及びプログラム |
CN102412999A (zh) * | 2011-12-23 | 2012-04-11 | 华为技术有限公司 | 一种基于抓包的远程故障定位方法、系统及设备 |
CN106341218A (zh) * | 2015-07-06 | 2017-01-18 | 北京东土军悦科技有限公司 | 一种基于windows操作系统的时钟同步方法及装置 |
CN106656398A (zh) * | 2016-05-03 | 2017-05-10 | 中国移动通信集团湖北有限公司 | 一种时钟同步监管方法和装置 |
CN108880727A (zh) * | 2018-06-13 | 2018-11-23 | 合肥工业大学 | 一种基于PTPd2协议的精确时钟同步实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116614199A (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10965537B2 (en) | Self-adjusting data processing system | |
US20220123849A1 (en) | Technologies to compensate for errors in time synchronization due to clock drift | |
CN110730105B (zh) | 图片数据传输方法、装置、设备及存储介质 | |
CN103457973B (zh) | 一种图片上传方法、系统、图片上传客户端及网络服务器 | |
WO2017124938A1 (zh) | 一种数据同步方法、装置及系统 | |
CN112838903B (zh) | 一种时钟同步方法、设备及存储介质 | |
CN116614199B (zh) | 时钟同步方法、装置、从时钟设备、时钟同步系统和介质 | |
Babaoglu et al. | Firefly-inspired heartbeat synchronization in overlay networks | |
CN104702462A (zh) | 网络测试系统 | |
CN105634840B (zh) | 一种丢包的测量方法及装置 | |
CN103188064A (zh) | 时钟同步方法及装置 | |
CN112003768B (zh) | 多节点测试系统及用于执行多节点测试的方法 | |
CN114390578A (zh) | 一种网络性能的测试方法、装置、电子设备及介质 | |
CN114144808A (zh) | 用于基于内容缩减日志条目的机制 | |
CN115580667B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN111881083A (zh) | 一种文件同步方法、装置、设备及介质 | |
US10334539B2 (en) | Metered interface | |
CN114827967B (zh) | 软件更新方法、蓝牙设备及存储介质 | |
EP4329219A1 (en) | Packet transmission method and apparatus, device, and storage medium | |
CN115567431A (zh) | 一种网络稳定性测试方法、装置、被测设备及存储介质 | |
CN113556200A (zh) | 时钟校准方法、基于时钟同步的网络安全防护方法和装置 | |
US11019129B1 (en) | System for controlling transfer of data to a connected device | |
EP4456620A1 (en) | Time synchronization method, apparatus and system | |
WO2016188499A1 (zh) | 网络管理方法、装置、网络设备及数据同步系统 | |
CN118316562B (zh) | 一种双模通信模块的时钟同步方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40092596 Country of ref document: HK |