CN107888315B - 一种时间同步方法 - Google Patents

一种时间同步方法 Download PDF

Info

Publication number
CN107888315B
CN107888315B CN201711261556.6A CN201711261556A CN107888315B CN 107888315 B CN107888315 B CN 107888315B CN 201711261556 A CN201711261556 A CN 201711261556A CN 107888315 B CN107888315 B CN 107888315B
Authority
CN
China
Prior art keywords
port
message
clock source
clock
source priority
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
Application number
CN201711261556.6A
Other languages
English (en)
Other versions
CN107888315A (zh
Inventor
任丰原
钱坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201711261556.6A priority Critical patent/CN107888315B/zh
Publication of CN107888315A publication Critical patent/CN107888315A/zh
Application granted granted Critical
Publication of CN107888315B publication Critical patent/CN107888315B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提供一种时间同步的方法,包括:在第一帧间隙期间向服务器模式的端口发送SYN消息并记录发送时刻的低位部分,以使得服务器模式的端口记录接收到SYN消息时刻的低位部分,并在第二帧间隙期间返回ACK消息,ACK消息中包含接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分;接收服务器模式的端口返回的ACK消息,根据ACK消息获取服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分,记录接收到ACK消息时刻的低位部分;根据上述所有时刻的低位部分,计算本地时钟的误差并修正本地时钟的时间。本发明将帧间隙作为时间同步信息的传输载体,使设备在仅使用标准时钟晶振的情况下仍能够达到微秒级的时间同步精度。

Description

一种时间同步方法
技术领域
本发明涉及时间同步领域,更具体地,涉及一种时间同步方法。
背景技术
在时间敏感以太网中,为了保证各个端节点互相配合,协同完成任务,整个系统要求所有节点都有高精度的时间同步。一般认为,时间敏感以太网需要微秒级的时间同步精度。目前基于以太网的高精度时间同步解决方案是精确时间同步协议(英文全称PrecisionTime Protocol,简称PTP)。PTP通过发送和接收以太网数据帧的方式来交换同步消息。这种同步信息交互过程会产生额外的数据包,为了控制对于网络可用带宽的负面影响,PTP的时间同步周期通常为1~2秒。PTP在所有时间同步设备上引入高精度时钟晶振来减少时钟漂移造成的误差。
现有的时间同步方案的同步周期都比较长,通常为秒级别的同步精度,为达到微秒级的时间同步精度,时钟晶振的精度必须高于百万分之一。这样的高品质时钟晶振通常要花费数千元人民币,如一个10811D晶振需要约1600元,这样严重的限制了时间同步方案的实际部署。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的时间同步方法。
一方面,本发明提供了一种客户端模式的端口的时间同步方法,包括:
S1,在第一帧间隙期间向服务器模式的端口发送SYN消息,并记录发送SYN消息时刻的低位部分,以使得所述服务器模式的端口记录接收到所述SYN消息时刻的低位部分,并在第二帧间隙期间返回ACK消息,所述ACK消息中包含该服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分;
S2,接收所述服务器模式的端口返回的ACK消息,根据所述ACK消息获取所述服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分,记录接收到所述ACK消息时刻的低位部分;
S3,根据上述所有时刻的低位部分,计算本地时钟的误差,根据所述误差修正所述本地时钟的时间;
其中,低位部分是指将时刻转换成二进制时数值较低的部分。
优选地,所述步骤S1前还包括:
接收任一端口返回的时间同步消息,从所述时间同步消息中获取第一时钟源优先级,比较所述第一时钟源优先级与本地时钟源优先级的大小;
根据所述本地时钟源优先级小于所述第一时钟源优先级,将工作状态切换为客户端模式,并将所在的网络设备的其它端口切换为服务器模式;
其中,时间同步消息包括ACK消息与SYN消息,时钟源优先级表示时钟源的时钟精度。
优选地,步骤S2中所述接收所述服务器模式的端口返回的ACK消息还包括:
从所述ACK消息中获取第二时钟源优先级,比较所述第二时钟源优先级与本地时钟源优先级的大小;
根据所述第二时钟源优先级小于所述本地时钟源优先级,将工作状态切换为服务器模式;
其中,时钟源优先级表示时钟源的时钟精度。
优选地,所述比较所述第二时钟源优先级与本地时钟源优先级的大小还包括:
根据所述第二时钟源优先级大于所述本地时钟源优先级,将所述第二时钟源优先级作为所述本地时钟源优先级。
优选地,步骤S3中所述根据上述所有时刻的低位部分,计算本地时钟的误差具体包括:
将发送所述SYN消息时刻的低位部分和接收到所述ACK消息时刻的低位部分的和值作为第一和值,将所述服务器模式的端口接收到所述SYN消息时刻的低位部分和发送所述ACK消息时刻的低位部分的和值作为第二和值;
根据所述第一和值与所述第二和值的差值除以2,获取本地时钟的误差。
优选地,还包括:
接收所述服务器模式的端口发送的信标消息,获取所述信标消息中的时钟信息,将所述时钟信息赋给本地时钟当前时刻的高位部分;
其中,高位部分是指将时刻转换成二进制时数值较高的部分。
优选地,包括:
S101,接收所述客户端模式的端口发送的SYN消息,并记录接收到所述SYN消息时刻的低位部分;
S102,在第二帧间隙期间向客户端模式的端口返回ACK消息,所述ACK消息中包含该服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分,以使得所述客户端模式的端口根据接收到的所述ACK消息计算本地时钟的误差,并根据所述误差修正本地时间;
其中,低位部分是指将时刻转换成二进制时数值较低的部分。
优选地,所述步骤S101前还包括:
接收任一端口返回的时间同步消息,从所述时间同步消息中获取第一时钟源优先级,比较所述第一时钟源优先级与本地时钟源优先级的大小;
根据所述本地时钟源优先级大于或等于所述第一时钟源优先级,将工作状态切换为服务器模式;
其中,时间同步消息包括ACK消息与SYN消息,时钟源优先级表示时钟源的时钟精度。
优选地,步骤S101中所述接收所述客户端模式的端口发送的SYN消息还包括:
从所述SYN消息中获取第三时钟源优先级,比较所述第三时钟源优先级与本地时钟源优先级的大小;
根据所述第三时钟源优先级大于或等于所述本地时钟源优先级,将工作状态切换为客户端模式,并将所在的网络设备的其它端口切换为服务器模式;
其中,时钟源优先级表示时钟源的时钟精度。
优选地,还包括:
开启一个计时器,设置所述计时器的初始时间为预设时间后开始倒计时;
当所述计时器计时为零时,将本地时钟当前时刻的高位部分作为时钟信息写入信标消息,并第三帧间隙期间将所述信标消息发送给所述客户端模式的端口,以使得所述客户端模式的端口接收所述信标消息,获取所述信标消息中的时钟信息,将所述时钟信息赋给所述客户端模式的端口的本地时钟当前时刻的高位部分;
其中,高位部分是指将时刻转换成二进制时数值较高的部分。
本发明提供的一种时间同步的方法,利用帧间隙作为时间同步信息的传输载体,在两个数据帧的间隙期间让客户端模式的端口发送SYN消息给服务器模式的端口,并让服务器模式的端口接收到SYN消息后给客户端模式的端口返回一个ACK消息,大幅度缩短了时间同步的周期,减少了两次时间同步周期之间的时钟漂移,通过两个端口进行交互时对时间同步消息的收发时间的计算,获取时间同步的误差并使得时钟精度较低的网络设备的时间向时钟精度较高的网络设备的时间同步,使得设备在仅使用标准时钟晶振的情况下仍然能够达到微秒级的时间同步精度。此外,由于本发明是利用帧间隙作为时间同步信息的传输载体,因此本发明在同步的过程中并不会产生额外的数据帧,对网络带宽也不会造成任何影响。
附图说明
图1为本发明一个实施例的客户端模式的端口的时间同步方法;
图2为本发明一个实施例的服务器模式的端口的时间同步方法。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,为本发明一个实施例的客户端模式的端口的时间同步方法,包括:S1,在第一帧间隙期间向服务器模式的端口发送SYN消息,并记录发送SYN消息时刻的低位部分,以使得所述服务器模式的端口记录接收到所述SYN消息时刻的低位部分,并在第二帧间隙期间返回ACK消息,所述ACK消息中包含该服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分;S2,接收所述服务器模式的端口返回的ACK消息,根据所述ACK消息获取所述服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分,记录接收到所述ACK消息时刻的低位部分;S3,根据上述所有时刻的低位部分,计算本地时钟的误差,根据所述误差修正所述本地时钟的时间;其中,低位部分是指将时刻转换成二进制时数值较低的部分。
具体地,将多个网络设备通过以太网相连,根据IEEE 802.3标准的定义,以太网在发送两个相邻的数据帧之间需要至少有96比特的间隔,这个间隔就是帧间隙,上述的数据帧是指数据链路层的协议数据单元。在每个网络设备上存在多个端口,至多只有一个端口工作状态为客户端模式,用于和其它更高优先级的时钟同步,而其他端口工作状态为服务器模式,用于在等到帧间隙时将高优先级的时钟信息传递给其他客户端模式的端口。这里的优先级是指时钟源的精度,时钟源的精度越高,优先级就越大。
当每个服务器模式的端口所在网络设备的时钟源优先级,都大于与该端口相连接的客户端模式的端口所在网络设备的时钟源优先级时,以太网中相互连接的每个网络设备的每个端口都处于稳定的工作状态,服务器模式的端口能稳定地将高优先级的时钟信息传递给与其相连的客户端模式的端口,使得客户端模式的端口可以据此调整端口所在的较低优先级的网络设备的本地时钟的时间,此时以太网中的各网络设备建立了一个以时钟精度最高的网络设备为根节点的同步树。作为同步树的根节点的端口的工作状态处于服务器模式,与该端口直连的其它端口则处于客户端模式。则在所有端口都稳定工作的情况下,每一客户端模式的端口都与服务器模式的端口相连,每一服务器模式的端口也只与客户端模式的端口相连。
此时对于任一不同网络设备的两个端口间,可通过点对点通信的方式将本地时钟精度较低的网络设备的时间向本地时钟精度较高的网络设备的时间同步。由于时间同步的周期较短,因此网络设备时钟在一次同步周期中一般仅会有低位部分发生变化,这里的同步周期是指任意两个设备的端口间,处于客户端模式的端口向处于服务器模式的端口发送SYN消息,处于服务器模式的端口收到消息后向处于客户端模式的端口返回一个ACK消息的过程,低位部分是指将时刻转换成二进制时数值较低的部分。
举例来说,存在客户端模式的端口A与服务器模式的端口B,端口A与端口B通过数据链路连接进行数据传输,在两个数据帧间存在有可用的第一帧间隙期间,端口A向端口B发送了一个同步(英文全称synchronous,简称SYN)消息,并记录下了发送SYN消息时刻的低位部分t1,端口B接收到端口A发送的SYN消息后,记录了接收到SYN消息时刻的低位部分t2,并在有可用的第二帧间隙期间向端口A返回了一个确认(英文全称Acknowledgement,简称ACK)消息,这个ACK消息中包括了t2以及端口B返回ACK消息时刻的低位部分t3,端口A接收到端口B返回的ACK消息后,再次记录下接收到该ACK消息时刻的低位部分t4。此时,端口A可通过记录到的t1与t4,以及从ACK消息中获取的t2与t3,计算获得端口A所在的网络设备的本地时钟的误差,并根据计算得到的误差修正本地时钟的时间,使得端口A所在的网络设备的本地时钟的时间与端口B所在的网络设备的本地时钟的时间同步。则完成了一次时间同步周期的时间同步,循环执行上述操作直到系统运行结束,则可不断通过SYN消息与ACK消息的交互消除本地时钟精度较低的网络设备的时钟误差。
需要说明的是,SYN消息与ACK消息的第1~nF为时间同步消息的标志域,用于区分时间同步消息为SYN消息还是ACK消息,第(nF+1)~(nF+nP)位为时间同步消息的优先级域,用于记录发送该时间同步消息的端口所在设备的时间源优先级。此外,在ACK消息中,第(nF+nP+1)~(nF+nP+nL)位记录了服务器模式的端口收到SYN消息时刻的低位部分,在第(nF+nP+nL+1)~(nF+nP+2nL)位记录了服务器模式的端口发送ACK消息时刻的低位部分。由于时间同步消息都是在帧间隙期间发送的,因此SYN消息与ACK消息的长度均不能超过帧间隙的最小长度,则有nF+nP+2nL<96b。
本发明利用帧间隙作为时间同步信息的传输载体,在两个数据帧的间隙期间让客户端模式的端口发送SYN消息给服务器模式的端口,并让服务器模式的端口接收到SYN消息后给客户端模式的端口返回一个ACK消息,大幅度缩短了时间同步的周期,减少了两次时间同步周期之间的时钟漂移,通过两个端口进行交互时对时间同步消息的收发时间的计算,获取时间同步的误差并使得时钟精度较低的网络设备的时间向时钟精度较高的网络设备的时间同步,使得设备在仅使用标准时钟晶振的情况下仍然能够达到微秒级的时间同步精度。此外,由于本发明是利用帧间隙作为时间同步信息的传输载体,因此本发明在同步的过程中并不会产生额外的数据帧,对网络带宽也不会造成任何影响。
基于上述实施例,作为一种可选的实施例,所述步骤S1前还包括:接收任一端口返回的时间同步消息,从所述时间同步消息中获取第一时钟源优先级,比较所述第一时钟源优先级与本地时钟源优先级的大小;根据所述本地时钟源优先级小于所述第一时钟源优先级,将工作状态切换为客户端模式,并将所在的网络设备的其它端口切换为服务器模式;其中,时间同步消息包括ACK消息与SYN消息,时钟源优先级表示时钟源的时钟精度。
具体地,在时间同步的初始状态下,将每个网络设备的时钟源优先级的初始值设为该网络设备本地时钟的优先级,将每个网络设备的所有端口的工作状态都设定为服务器模式,所谓优先级是根据本地时钟的精度的评级,时钟精度越高优先级越高。在每一端口等待到有可用的帧间隙期间向与其相连的端口发送一个SYN消息,并在该SYN消息中附上发送消息的端口的时钟源优先级,使得收到SYN消息的网络设备将自己本身的时钟源优先级与SYN消息中携带的时钟源优先级进行比较。则有服务器模式的端口A向另一服务器模式的端口B发送了SYN消息,端口B比较自身的时钟源优先级与SYN消息中携带的端口A的所在网络设备的时钟源优先级的大小后,发现自身的时钟源优先级较低,则端口B切换为客户端模式,并将端口B所在的网络设备的其它端口都切换为服务器模式,使得端口B将接收到的更高精度的时钟信息通过其它服务器模式的端口传递给其它网络设备。
此外,当服务器模式的端口A向服务器模式的端口B发送了SYN消息,比较后时钟源优先级后,得到端口B的所在的网络设备的时钟源精度大于端口A所在的网络设备的时钟源精度,则端口B的工作状态保持不变,向端口A返回了ACK消息,并在ACK消息中也附上了端口B的所在网络设备的时钟源优先级。端口A比较自身的时钟源优先级与ACK消息中携带的端口B的所在网络设备的时钟源优先级的大小后,发现自身的时钟源优先级较低,则端口A切换为客户端模式,并将端口A所在的网络设备的其它端口都切换为服务器模式。
则以太网中的每个设备的各个端口通过在时间同步消息上附加该端口所在的网络设备的时钟源优先级,在与其它网络设备的端口通过时间同步消息进行时间同步时,比较网络设备间的时钟源优先级的大小,若接收到时间同步消息的端口发现本地时钟源优先级小于时间同步消息中携带的发送端口所在的网络设备的第一时钟源优先级,则接收端口将工作状态切换为客户端模式,并将所在的网络设备的其它端口切换为服务器模式,以便通过交换各网络设备的时钟源优先级,并切换各端口的工作状态,建立一个以时钟精度最高的网络设备为根节点的同步树,方便时间同步操作的进行。
基于上述实施例,作为一种可选的实施例,步骤S2中所述接收所述服务器模式的端口返回的ACK消息还包括:从所述ACK消息中获取第二时钟源优先级,比较所述第二时钟源优先级与本地时钟源优先级的大小;根据所述第二时钟源优先级小于所述本地时钟源优先级,将工作状态切换为服务器模式;其中,时钟源优先级表示时钟源的时钟精度。
具体地,在进行时间同步的过程中,若网络结构或者任一端口的时钟源优先级发生变化,需要自动更新同步树,使同步树再度趋于稳定状态。则当客户端模式的端口A接收到服务器模式的端口B返回的ACK消息后,从ACK消息中获取端口B所在网络设备的时钟源优先级作为第二时钟源优先级,比较第二时钟源优先级与端口A所在的网络设备的本地时钟源优先级的大小,发现第二时钟源优先级小于本地时钟源优先级,则可知本地时钟源所代表的时钟精度较高,则端口A所在网络设备的时钟精度更高,则将端口A切换为服务器模式,自动更新同步树,使得同步树的根节点保持为时钟精度最高的网络设备。
基于上述实施例,作为一种可选的实施例,所述比较所述第二时钟源优先级与本地时钟源优先级的大小还包括:根据所述第二时钟源优先级大于所述本地时钟源优先级,将所述第二时钟源优先级作为所述本地时钟源优先级。
具体地,比较端口A所在网络设备的第二时钟源优先级与端口B所在网络设备的本地时钟源优先级的大小后,若发现第二时钟源优先级大于本地时钟源优先级,则可知端口A所在网络设备的时钟精度更高,则可将端口A所在网络设备的时钟源优先级作为端口B所在网络设备的时钟源优先级,使得端口B通过服务器端与其它网络设备的端口进行时间同步的交互时,能够将更高精度的时钟信息传递给其它网络设备,或是通过将较大的时钟源优先级与其它网络设备的时钟源优先级相比较,最终获得最大的时钟源优先级,则时钟源优先级最大的网络设备作为同步树的根节点,以使得其它时钟源优先级较低的网络设备都能同步到高精度的时间信息。
基于上述实施例,作为一种可选的实施例,步骤S3中所述根据上述所有时刻的低位部分,计算本地时钟的误差具体包括:将发送所述SYN消息时刻的低位部分和接收到所述ACK消息时刻的低位部分的和值作为第一和值,将所述服务器模式的端口接收到所述SYN消息时刻的低位部分和发送所述ACK消息时刻的低位部分的和值作为第二和值;根据所述第一和值与所述第二和值的差值除以2,获取本地时钟的误差。
具体地,在一次时间同步周期中,客户端模式的端口记录有发送SYN消息时刻的低位部分t1和接收服务器模式的端口返回的ACK消息时刻的低位部分t4,并从上述ACK消息中获取到服务器模式的端口接收客户端模式的端口发送的SYN消息时刻的低位部分t2和发送所述ACK消息时刻的低位部分t3,并可通过下述公式计算得到时钟误差O为:
由于在同步树稳定的状态下,客户端模式的端口所在的网络设备的本地时钟的精度较低,因此可通过计算得到的时钟误差修正本地时钟的时间,使得客户端模式的端口所在的网络设备的本地时钟的时间与以太网中最高精度时钟的时间同步。
基于上述实施例,作为一种可选的实施例,还包括:接收所述服务器模式的端口发送的信标消息,获取所述信标消息中的时钟信息,将所述时钟信息赋给本地时钟当前时刻的高位部分;其中,高位部分是指将时刻转换成二进制时数值较高的部分。
具体地,由于时间同步的周期较短,因此网络设备时钟在一次同步周期中一般仅会有低位部分发生变化,则将网络设备时钟日的时刻切分为低位与高位两个部分,通过点对点通信加上广播通信相结合的方式来分别进行网络设备时钟时刻低位部分与高位部分的同步。其中,点对点通信在每一次同步周期的中都会执行,用于同步两个不同网络设备的本地时钟时刻的低位部分,而广播通信则是每隔一定周期执行一次,用于精度最高的服务器模式端口向精度较低的客户端模式端口传递时钟时刻的高位部分。
则在时间同步消息中,还包括有一种信标(英文全称BEACON)消息,BEACON消息的第1~nF也表示时间同步消息的标志域,将其与SYN消息和ACK消息等时间同步消息区分出来,第(nF+1)~(nF+nP)位为时间同步消息的优先级域,用于记录发送该时间同步消息的端口所在设备的时间源优先级。此外,第(nF+nP+1)~(nF+nP+nH)位记录了服务器模式的端口当前本地时钟的时间信息。当客户端模式的端口接收到服务器模式的端口发送的BEACON消息后,可从BEACON消息中获取服务器模式的端口所在网络设备的本地时钟当前时刻的时钟信息,将所述时钟信息赋给本地时钟当前时刻的高位部分,使得时钟精度较低的网络设备与时钟精度较高的网络设备在时间的高位部分也获得同步。
其中,高位部分是指将时刻转换成二进制时数值较高的部分,而低位部分则是指将时刻转换成二进制时数值较低的部分。需要说明的是,由于时间同步消息都是在帧间隙期间发送的,因此BEACON消息的长度也不能超过帧间隙的最小长度,则有nF+nP+nH<96b。此外,时刻的低位部分的长度nL与高位部分的长度nH的和值nL+nH大于等于网络设备本地时钟的位长,且时刻低位部分的长度nL与网络设备本地时钟的单位时间TU的积nLTU>32ns。因为当时刻的低位部分过短时,两次时间同步周期间的时钟误差有可能会对高位部分造成影响。理论分析表明本发明在相邻两个设备之间的时间同步误差为±16ns,因此设置32ns作为界限。
本发明利用帧间隙作为时间同步信息的传输载体,将网络设备时钟切分为低位与高位两个部分,通过点对点通信加上广播通信相结合的方式来分别进行网络设备时钟低位部分与高位部分的同步。其中,点对点通信通过在两个数据帧的间隙期间发送SYN与ACK消息,大幅度缩短了时间同步的周期,减少了两次时间同步周期之间的时钟漂移,使得设备在仅使用标准时钟晶振的情况下仍然能够达到微秒级的时间同步精度。此外,由于本发明是利用帧间隙作为时间同步信息的传输载体,因此本发明在同步的过程中并不会产生额外的数据帧,对网络带宽也不会造成任何影响。
参见图2,为本发明一个实施例的服务器模式的端口的时间同步方法,包括:S101,接收所述客户端模式的端口发送的SYN消息,并记录接收到所述SYN消息时刻的低位部分;S102,在第二帧间隙期间向客户端模式的端口返回ACK消息,所述ACK消息中包含该服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分,以使得所述客户端模式的端口根据接收到的所述ACK消息计算本地时钟的误差,并根据所述误差修正本地时间;其中,低位部分是指将时刻转换成二进制时数值较低的部分。
具体地,对于任一不同网络设备的两个端口间,可通过点对点通信的方式将本地时钟精度较低的网络设备的时间向本地时钟精度较高的网络设备的时间同步。由于时间同步的周期较短,因此网络设备时钟时刻在一次同步周期中一般仅会有低位部分发生变化,这里的同步周期是指任意两个设备的端口间,处于客户端模式的端口向处于服务器模式的端口发送SYN消息,处于服务器模式的端口收到消息后向处于客户端模式的端口返回一个ACK消息的过程,低位部分是指将时刻转换成二进制时数值较低的部分。
举例来说,存在客户端模式的端口A与服务器模式的端口B,端口A与端口B通过数据链路连接进行数据传输,端口B接收到端口A在可用的第一帧间隙期间发送的SYN消息后,记录了接收到SYN消息时刻的低位部分t2,并在有可用的第二帧间隙期间向端口A返回了一个确认消息,这个ACK消息中包括了t2以及端口B返回ACK消息时刻的低位部分t3,端口A接收到端口B返回的ACK消息后,再次记录下接收到该ACK消息时刻的低位部分t4。使得端口A可通过记录到的发送SYN消息时刻的低位部分t1与接收到ACK消息时刻的低位部分t4,以及从ACK消息中获取的t2与t3,计算获得端口A所在的网络设备的本地时钟的误差,并根据计算得到的误差修正本地时钟的时间,使得端口A所在的网络设备的本地时钟的时间与端口B所在的网络设备的本地时钟的时间同步。则完成了一次时间同步周期的时间同步,循环执行上述操作直到系统运行结束,不断通过SYN消息与ACK消息的交互消除本地时钟精度较低的网络设备的时钟误差。
本发明利用帧间隙作为时间同步信息的传输载体,在两个数据帧的间隙期间让客户端模式的端口发送SYN消息给服务器模式的端口,并让服务器模式的端口接收到SYN消息后给客户端模式的端口返回一个ACK消息,大幅度缩短了时间同步的周期,减少了两次时间同步周期之间的时钟漂移,通过两个端口进行交互时对时间同步消息的收发时间的计算,获取时间同步的误差并使得时钟精度较低的网络设备的时间向时钟精度较高的网络设备的时间同步,使得设备在仅使用标准时钟晶振的情况下仍然能够达到微秒级的时间同步精度。
基于上述实施例,作为一种可选的实施例,所述步骤S101前还包括:接收任一端口返回的时间同步消息,从所述时间同步消息中获取第一时钟源优先级,比较所述第一时钟源优先级与本地时钟源优先级的大小;根据所述本地时钟源优先级大于或等于所述第一时钟源优先级,将工作状态切换为服务器模式;其中,时间同步消息包括ACK消息与SYN消息,时钟源优先级表示时钟源的时钟精度。
具体地,当客户端模式的端口A接收到与其相连接的其它网络设备的端口B发送的时间同步消息后,端口A比较自身的时钟源优先级与时间同步消息中携带的端口B的所在网络设备的时钟源优先级的大小,发现自身的时钟源优先级较高,则端口A切换为服务器模式。即以太网中的每个设备的各个端口通过在时间同步消息上附加该端口所在的网络设备的时钟源优先级,在与其它网络设备的端口通过时间同步消息进行时间同步时,比较网络设备间的时钟源优先级的大小,若接收到时间同步消息的端口发现本地时钟源优先级大于或等于时间同步消息中携带的发送端口所在的网络设备的第一时钟源优先级,则接收端口将工作状态切换为服务器模式,以便通过交换各网络设备的时钟源优先级,并切换各端口的工作状态,建立一个以时钟精度最高的网络设备为根节点的同步树,方便时间同步操作的进行
基于上述实施例,作为一种可选的实施例,步骤S101中所述接收所述客户端模式的端口发送的SYN消息还包括:从所述SYN消息中获取第三时钟源优先级,比较所述第三时钟源优先级与本地时钟源优先级的大小;根据所述第三时钟源优先级大于或等于所述本地时钟源优先级,将工作状态切换为客户端模式,并将所在的网络设备的其它端口切换为服务器模式;其中,时钟源优先级表示时钟源的时钟精度。
具体地,在进行时间同步的过程中,若网络结构或者任一端口的时钟源优先级发生变化,需要自动更新同步树,使同步树再度趋于稳定状态。则当服务器模式的端口A接收到客户端模式的端口B发送的SYN消息后,从SYN消息中获取端口B所在网络设备的时钟源优先级作为第三时钟源优先级,比较第三时钟源优先级与端口A所在的网络设备的本地时钟源优先级的大小,发现第三时钟源优先级大于或等于本地时钟源优先级,则可知本地时钟源所代表的时钟精度较高,则端口B所在网络设备的时钟精度更高,则将端口A切换为客户端模式,并将端口A所在的网络设备的其它端口都切换为服务器模式,自动更新同步树,使得同步树的根节点保持为时钟精度最高的网络设备。
基于上述实施例,作为一种可选的实施例,还包括:开启一个计时器,设置所述计时器的初始时间为预设时间后开始倒计时;当所述计时器计时为零时,将本地时钟当前时刻的高位部分作为时钟信息写入信标消息,并第三帧间隙期间将所述信标消息发送给所述客户端模式的端口,以使得所述客户端模式的端口接收所述信标消息,获取所述信标消息中的时钟信息,将所述时钟信息赋给所述客户端模式的端口的本地时钟当前时刻的高位部分;其中,高位部分是指将时刻转换成二进制时数值较高的部分。
具体地,广播通信每隔一定周期执行一次,用于精度最高的服务器模式端口向精度较低的客户端模式端口传递时钟的高位部分,在初始状态下,所有服务器模式的端口开启一个计时器T,设置计时器T的初始时间为预设时间C,并开始倒计时,当端口的计时器计数为0时,由于服务器模式的端口所在的网络设备的本地时钟的精度较高,则将该端口所在网络设备的本地时钟的高位部分写入信标(英文全称BEACON)消息,并在等待到可用的第三帧间隙期间将BEACON消息广播给其他客户端模式的端口,用以校准与该网络设备相连的客户端模式的端口所在的网络设备的本地时钟时刻的高位部分,然后重置该端口的计时器,使得计时器T再次从预设时间C开始倒计时,每当计时器倒数至0时广播BEACON信息,使客户端模式的端口每次接收到服务器模式的端口发送的BEACON消息后,从BEACON消息中获取服务器模式的端口所在网络设备的本地时钟当前时刻的时钟信息,将所述时钟信息赋给本地时钟当前时刻的高位部分,使得时钟精度较低的网络设备与时钟精度较高的网络设备在当前时刻的高位部分也获得同步。
本发明利用帧间隙作为时间同步信息的传输载体,将网络设备时钟切分为低位与高位两个部分,通过点对点通信加上广播通信相结合的方式来分别进行网络设备时钟低位部分与高位部分的同步。其中,点对点通信通过在两个数据帧的间隙期间发送SYN与ACK消息,大幅度缩短了时间同步的周期,减少了两次时间同步周期之间的时钟漂移。广播通信则是每过一定周期,精度最高的服务器模式的端口向时钟精度较低的客户端模式端口传递当前本地时钟时刻的高位部分,使得以太网中各网络设备的本地时钟时刻的高位部分也能进行时间同步,使得设备在仅使用标准时钟晶振的情况下仍然能够达到微秒级的时间同步精度。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种客户端模式的端口的时间同步方法,其特征在于,包括:
S1,在第一帧间隙期间向服务器模式的端口发送SYN消息,并记录发送SYN消息时刻的低位部分,以使得所述服务器模式的端口记录接收到所述SYN消息时刻的低位部分,并且所述服务器模式的端口在第二帧间隙期间返回ACK消息,所述ACK消息中包含该服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分;
S2,接收所述服务器模式的端口返回的ACK消息,根据所述ACK消息获取所述服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分,记录接收到所述ACK消息时刻的低位部分;
S3,根据上述所有时刻的低位部分,计算本地时钟的误差,根据所述误差修正所述本地时钟的时间;
其中,低位部分是指将时刻转换成二进制时数位较低的,且时间同步周期中会发生变化的部分。
2.根据权利要求1所述的客户端模式的端口的时间同步方法,其特征在于,所述步骤S1前还包括:
接收任一端口返回的时间同步消息,从所述时间同步消息中获取第一时钟源优先级,比较所述第一时钟源优先级与本地时钟源优先级的大小;
根据所述本地时钟源优先级小于所述第一时钟源优先级,将工作状态切换为客户端模式,并将所在的网络设备的其它端口切换为服务器模式;
其中,时间同步消息包括ACK消息与SYN消息,时钟源优先级表示时钟源的时钟精度。
3.根据权利要求1所述的客户端模式的端口的时间同步方法,其特征在于,步骤S2中所述接收所述服务器模式的端口返回的ACK消息还包括:
从所述ACK消息中获取第二时钟源优先级,比较所述第二时钟源优先级与本地时钟源优先级的大小;
根据所述第二时钟源优先级小于所述本地时钟源优先级,将工作状态切换为服务器模式;
其中,时钟源优先级表示时钟源的时钟精度。
4.根据权利要求3所述的客户端模式的端口的时间同步方法,其特征在于,所述比较所述第二时钟源优先级与本地时钟源优先级的大小还包括:
根据所述第二时钟源优先级大于所述本地时钟源优先级,将所述第二时钟源优先级作为所述本地时钟源优先级。
5.根据权利要求1所述的客户端模式的端口的时间同步方法,其特征在于,步骤S3中所述根据上述所有时刻的低位部分,计算本地时钟的误差具体包括:
将发送所述SYN消息时刻的低位部分和接收到所述ACK消息时刻的低位部分的和值作为第一和值,将所述服务器模式的端口接收到所述SYN消息时刻的低位部分和发送所述ACK消息时刻的低位部分的和值作为第二和值;
根据所述第一和值与所述第二和值的差值除以2,获取本地时钟的误差。
6.根据权利要求1所述的客户端模式的端口的时间同步方法,其特征在于,还包括:
接收所述服务器模式的端口发送的信标消息,获取所述信标消息中的时钟信息,将所述时钟信息赋给本地时钟当前时刻的高位部分;
其中,高位部分是指将时刻转换成二进制时数位较高的,且除低位部分以外的部分。
7.一种服务器模式的端口的时间同步方法,其特征在于,包括:
S101,接收客户端模式的端口发送的SYN消息,并记录接收到所述SYN消息时刻的低位部分;
S102,在第二帧间隙期间向客户端模式的端口返回ACK消息,所述ACK消息中包含该服务器模式的端口接收到SYN消息时刻的低位部分以及返回ACK消息时刻的低位部分,以使得所述客户端模式的端口根据接收到的所述ACK消息计算本地时钟的误差,并根据所述误差修正本地时间;
其中,低位部分是指将时刻转换成二进制时数位较低的,且时间同步周期中会发生变化的部分。
8.根据权利要求7所述的服务器模式的端口的时间同步方法,其特征在于,所述步骤S101前还包括:
接收任一端口返回的时间同步消息,从所述时间同步消息中获取第一时钟源优先级,比较所述第一时钟源优先级与本地时钟源优先级的大小;
根据所述本地时钟源优先级大于或等于所述第一时钟源优先级,将工作状态切换为服务器模式;
其中,时间同步消息包括ACK消息与SYN消息,时钟源优先级表示时钟源的时钟精度。
9.根据权利要求7所述的服务器模式的端口的时间同步方法,其特征在于,步骤S101中所述接收所述客户端模式的端口发送的SYN消息还包括:
从所述SYN消息中获取第三时钟源优先级,比较所述第三时钟源优先级与本地时钟源优先级的大小;
根据所述第三时钟源优先级大于或等于所述本地时钟源优先级,将工作状态切换为客户端模式,并将所在的网络设备的其它端口切换为服务器模式;
其中,时钟源优先级表示时钟源的时钟精度。
10.根据权利要求7所述的服务器模式的端口的时间同步方法,其特征在于,还包括:
开启一个计时器,设置所述计时器的初始时间为预设时间后开始倒计时;
当所述计时器计时为零时,将本地时钟当前时刻的高位部分作为时钟信息写入信标消息,并第三帧间隙期间将所述信标消息发送给所述客户端模式的端口,以使得所述客户端模式的端口接收所述信标消息,获取所述信标消息中的时钟信息,将所述时钟信息赋给所述客户端模式的端口的本地时钟当前时刻的高位部分;
其中,高位部分是指将时刻转换成二进制时数位较高的,且除低位部分以外的部分。
CN201711261556.6A 2017-12-04 2017-12-04 一种时间同步方法 Active CN107888315B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711261556.6A CN107888315B (zh) 2017-12-04 2017-12-04 一种时间同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711261556.6A CN107888315B (zh) 2017-12-04 2017-12-04 一种时间同步方法

Publications (2)

Publication Number Publication Date
CN107888315A CN107888315A (zh) 2018-04-06
CN107888315B true CN107888315B (zh) 2019-06-18

Family

ID=61773040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711261556.6A Active CN107888315B (zh) 2017-12-04 2017-12-04 一种时间同步方法

Country Status (1)

Country Link
CN (1) CN107888315B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108737004B (zh) * 2018-05-07 2020-04-10 青岛中电绿网新能源有限公司 一种获取精准遥信变位时间的方法
CN111525972B (zh) * 2020-03-16 2022-12-30 徐州市口腔医院 一种基于二次多项式的时间同步方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159485B (zh) * 2007-10-28 2013-05-08 中兴通讯股份有限公司 一种时分双工系统信号的传输方法及帧结构
CN101217328B (zh) * 2007-12-29 2011-04-20 杭州华三通信技术有限公司 时间同步方法、系统和设备
CN101741701B (zh) * 2008-11-12 2012-01-11 中兴通讯股份有限公司 同步调度方法和装置

Also Published As

Publication number Publication date
CN107888315A (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
US11470568B2 (en) Synchronizing TSN master clocks in wireless networks
CN106992830B (zh) 一种fc-ae-1553网络中的时钟同步方法
CN103201971B (zh) 用于同步具有节点之间的聚合连接的分组交换网络的主时钟和从时钟的方法以及相关联的同步装置
CN102104476B (zh) 时钟同步装置及方法
CN101594673B (zh) 一种分布式处理1588时间戳的方法及系统
RU2598034C2 (ru) Распространение информации тактовой синхронизации в оптической сети связи
CN102013931B (zh) 时间同步方法及系统、从属定时设备及主定时设备
RU2638645C2 (ru) Способ для определения опорных синхросигналов, подвергнутых воздействию изменения в асимметрии задержки трассы распространения между узлами в сети связи
US20130121347A1 (en) Communication apparatus
CN102244603B (zh) 传输承载时间的报文的方法、设备及系统
CN102237941A (zh) 时间同步系统及方法
US10444788B2 (en) Device, system, and method for synchronizing time partition windows
CN103259640B (zh) 一种同步时间的方法和设备
US11683150B2 (en) Methods, apparatus and computer-readable media for synchronization over an optical network
CN102036361A (zh) 时钟源选择的处理方法、装置和系统
CN103595494B (zh) 一种适用于无线自组网的无中心时分多址同步方法
Hann et al. Synchronous ethernet to transport frequency and phase/time
Schüngel et al. Analysis of time synchronization for converged wired and wireless networks
CN102342051B (zh) 用于通过经由至少一个时间分发协议分开传输第一和第二数据来同步时钟的方法和相关的系统及模块
CN107888315B (zh) 一种时间同步方法
JPWO2020089962A1 (ja) 時刻同期システム、タイムマスタ、管理マスタおよび時刻同期方法
CN114584246A (zh) 基于fpga的无线自组网时间同步方法、系统及介质
Schüngel et al. Heterogeneous synchronization in converged wired and wireless time-sensitive networks
CN107959537B (zh) 一种状态同步方法及装置
EP2897312B1 (en) Clock synchronization method, system and device

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