CN113839730A - 时间同步方法、网络设备及存储介质 - Google Patents
时间同步方法、网络设备及存储介质 Download PDFInfo
- Publication number
- CN113839730A CN113839730A CN202010589393.XA CN202010589393A CN113839730A CN 113839730 A CN113839730 A CN 113839730A CN 202010589393 A CN202010589393 A CN 202010589393A CN 113839730 A CN113839730 A CN 113839730A
- Authority
- CN
- China
- Prior art keywords
- time
- module
- system time
- synchronization
- counter
- 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
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及通信技术领域,公开了一种时间同步方法、网络设备及存储介质。本发明的部分实施例中,时间同步方法包括:获取系统时间;将系统时间同步至编程模块的计数器和交换模块,以通过交换模块和编程模块分别与上一级设备和下一级设备进行系统时间同步。该实施例使得能够减少降低网络设备的生产成本。
Description
技术领域
本发明实施例涉及通信技术领域,特别涉及一种时间同步方法、网络设备及存储介质。
背景技术
随着通信技术的不断发展,同步基站技术被广泛使用。基站工作的切换、漫游等都需要高精度的时间同步,提高精确的时间控制。而基于硬件的时间戳技术和网络时间同步协议的IEEE 1588v2时间同步技术可以达到纳秒级的时间同步精度,已经成为当前主流的时间同步技术。根据不同的应用场景,时间同步模型分为普通时钟(Ordinary Clock,OC)、边界时钟(Boundary Clock,BC)、透传时钟(Transparent Clock,TC)这三种模型。OC模型只有一个1588端口,只工作在主(master)状态或从(slave)状态;BC模型有多个1588端口,其中一个端口为slave,可以通过此端口将系统时间同步于上一级设备,其它端口作为master,为下一级设备提供时间同步;TC是透传模式,不终结1588报文,只进行报文的转发。
设备使用BC时间模型时,通常设有第一交换芯片和第二交换芯片,这导致设备存在体积大和成本高的问题。
发明内容
本发明实施例的目的在于提供一种时间同步方法、网络设备及存储介质,使得降低网络设备的生产成本。
为解决上述技术问题,本发明的实施例提供了一种时间同步方法,包括:获取系统时间;将系统时间同步至编程模块的计数器和交换模块,以通过交换模块和编程模块分别与上一级设备和下一级设备进行系统时间同步。
本发明的实施例还提供了一种网络设备,包括:获取模块和同步模块;获取模块用于获取系统时间;同步模块用于将系统时间同步至编程模块的计数器和交换模块,以通过交换模块和编程模块分别与上一级设备和下一级设备进行系统时间同步。
本发明的实施例还提供了一种网络设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的时间同步方法。
本发明的实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施方式提及的时间同步方法。
本发明实施例将系统时间同步至交换模块和编程模块,使得交换模块和编程模块的时间基准相同,且交换模块的时间与系统时间同步,进而使得网络设备通过一个交换模块就可以分别与上一级设备和下一级设备进行系统时间同步,减少了网络设备中交换模块的数量,降低了网络设备的生产成本,减小了网络设备的体积。解决了现有技术由于采用的时间基准不同,所以必须通过两个交换模块才能完成与上一级设备、下一级设备之间的时间同步,使得设备成本过高的问题。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是根据本发明的第一实施例中的时间同步方法流程图;
图2是图1所示的本发明的第一实施例中的时间同步方法中网络设备与上一级设备进行系统时间同步的过程示意图;
图3是图1所示的本发明的第一实施例中的时间同步方法中网络设备将系统时间通过下联网口同步给下一级设备的过程示意图;
图4是根据本发明的第二实施例中的时间同步方法流程图;
图5是图4所示的本发明的第二实施例中的时间同步方法中CF1出现异常和CF1异常的处理过程图;
图6是图4所示的本发明的第二实施例中时间同步方法中CF2出现异常和CF2异常的处理过程图;
图7是根据本发明的第三实施例中的网络设备的结构示意图;
图8是根据本发明的第四实施例中的网络设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施例涉及一种时间同步方法,包括以下步骤:获取系统时间;将系统时间同步至编程模块的计数器和交换模块,以通过交换模块和编程模块分别与上一级设备和下一级设备进行系统时间同步。采用该时间同步方法时,将系统时间同步至交换模块和编程模块,使得交换模块和编程模块的时间基准相同,且交换模块的时间与系统时间同步,进而使得网络设备通过一个交换模块就可以与上一级设备和下一级设备进行系统时间同步,减少了网络设备中交换模块的数量,降低了网络设备的生产成本,减小了网络设备的体积。
下面对本实施例的时间同步方法的实现细节进行说明,以下内容仅为方便理解而提供的实现细节,并非实施本方案的必须。
本实施例中的时间同步方法应用于网络设备,如图1所示,具体包括以下步骤:
步骤101,获取系统时间。
具体的说,网络设备实时获取当前的系统时间,以便进行后续操作。其中,获取的系统时间可以是编程模块内的系统时间,也可以是其他模块内的系统时间,本实施方式不做限制。
步骤102:将系统时间同步至编程模块的计数器和交换模块,以通过交换模块和编程模块分别与上一级设备和下一级设备进行系统时间同步。
具体的说,现有技术中,网络设备中往往需要设置两个交换芯片。其中,第一个交换芯片的端口作为网络设备的上联口,采用了连续的定时器/计数器(T/C)时间基准。第二个交换芯片的端口作为网络设备的下联口,采用系统时间基准。由网络设备的上联口作为slave端口,通过第一个交换芯片和可编程门阵列(Field Programmable Gate Array,FPGA)芯片,将系统时间同步于上一级设备。由网络设备的下联口作为master端口,通过第二个交换芯片和FPGA芯片,向下一级设备进行时间同步。因此,现有的网络设备必须设置两个交换芯片来实现网络设备与上一级设备和下一级设备的系统时间同步。而本实施方式中,网络设备将系统时间同步至编程模块的计数器和交换模块,以使编程模块的计数器时间和交换模块的时间与系统时间同步,使得网络设备通过交换模块和编程模块分别与上一级设备和下一级设备进行系统时间同步。
在一个例子中,编程模块可以是可编程门阵列(FPGA芯片),交换模块为交换芯片。FPGA芯片和交换芯片的时钟同源,以使FPGA芯片和交换芯片处于同步状态。
在一个例子中,由FPGA芯片执行该时间同步方法,系统时间为FPGA芯片内的系统时间,网络设备与上一级设备进行系统时间同步的过程如图2所示,包括以下步骤:
步骤201:将系统时间同步到FPGA芯片的计数器和交换芯片的计数器。
具体的说,FPGA芯片将FPGA芯片的系统时间同步到FPGA芯片的计数器和交换芯片的计数器。由于FPGA芯片的计数器和交换芯片的计数器均与系统时间同步,使得FPGA芯片打的时间戳和交换芯片打的时间戳基于同样的时间基准,使得可以基于FPGA芯片打的时间戳和交换芯片打的时间戳计算的驻留时间,保障了计算的驻留时间的准确性。
步骤202:同步(synchronization,sync)报文到达交换芯片后,交换芯片打上时间戳A。
具体的说,基于1588协议的sync报文从上联网口达到交换芯片后,交换芯片打上时间戳A,为计算sync报文在网络设备内部的驻留时间,交换芯片在接收到sync报文时,打上时间戳A。
步骤203:sync报文达到FPGA芯片后,在FPGA芯片打上时间戳B,并记录当前网络设备的系统时间T2。
步骤204:网络设备的中央处理器(Central Processing Unit,CPU)根据时间戳A和时间戳B,计算CF1,记录sync报文中携带的时间戳T1。其中,CF1为sync报文在网络设备内部的驻留时间。T1为上一级设备发送sync报文时,上一级设备的系统时间。
需要说明的是,CF1的计算步骤可以在打上时间戳B的步骤之后,计算偏差的步骤之前的任一步骤执行,本实施方式仅为举例说明,实际应用中,可以根据需要设置CF1的计算步骤和其他步骤的执行顺序。
步骤205:FPGA芯片发出延时请求(delay_req)报文时,记录系统时间T3,打上时间戳C。
具体的说,FPGA芯片发出delay_req报文时,记录发送delay_req报文时的系统时间T3,并基于FPGA芯片的计数器,确定当前的计数器时间,打上时间戳C。
步骤206:delay_req报文到达交换芯片时打上时间戳D,CPU根据时间戳C和时间戳D,计算CF2。CF2为delay_req报文在网络设备内部的驻留时间。
具体的说,CPU可以在交换芯片打上时间戳D后,立即计算CF2,也可以在执行步骤207后,再根据时间戳C和时间戳D,计算CF2,本实施方式不限制CF2的计算步骤与步骤207的先后顺序。
步骤207:FPGA芯片收到上一级设备回应的delay_resp报文,记录delay_resp报文中携带的T4。其中,T4为上一级设备发出delay_resp报文时上一级设备的系统时间。
步骤208:CPU根据T1、T2、T3、T4、CF1和CF2计算出网络设备的系统时间和上一级设备的系统时间的偏差(offset),再根据offset对网络设备的系统时间进行校准。之后重新回到步骤201,进入下一个循环的时间同步步骤。
具体的说,CPU根据T1、T2、T3和T4,可以得出以下方程组:
其中,delay为上一级设备与本端网络设备的上联网口之间的网络延时,offset表示网络设备的系统时间与上一级设备的基准时间之间的偏差。根据上述方程组可以得出:
公式a:offset=[(T2-T1)-(T4-T3)]/2;
在T1、T2、T3和T4这四个时间戳中,网络设备的上联网口打的时间戳T2和时间戳T3包含了sync报文在网络设备内部的驻留时间CF1和delay_req报文在网络设备内部的驻留时间CF2。因此,在实际计算过程中,需要将驻留时间减去,即:
公式b:offset={[(T2-CF1)-T1]-[T4-(T3-CF2)]}/2;
网络设备根据公式b计算出offset值后,根据offset的数值对网络设备的系统时间进行调整,使得网络设备的时间与对端的上游设备保持一致。网络设备在与上游设备同步时间的同时,也将自己的系统时间通过下联口同步给下一级设备,从而实现时间的精确传递。
需要说明的是,本领域技术人员可以理解,本实施方式中,为阐述清楚,把将系统时间同步至编程模块的计数器和交换模块的步骤作为接收sync报文的前一步骤,实际应用中,可以根据需要设置网络设备将系统时间同步至编程模块的计数器和交换模块的时机,本实施方式不限制网络设备将系统时间同步至编程模块的计数器和交换模块的步骤与其他步骤的先后顺序。
需要说明的是,本领域技术人员可以理解,实际应用中,可以根据需要设置将系统时间同步至编程模块的计数器和交换模块这一步骤的触发条件。
在一个例子中,网络设备将自己的系统时间通过下联网口同步给下一级设备的过程如图3所示,包括以下步骤:
步骤301:交换芯片在发送sync报文时,在sync报文上打上时间戳T5。
具体的说,由于交换芯片的计数器时间与网络设备的系统时间同步,故交换芯片打上的时间戳为网络设备的系统时间。下一级设备在接收sync报文后,可以参考图2的步骤201至步骤206,记录用于计算下一级设备和网络设备的系统时间的偏差所需要的各种数据,并发送delay_req报文至网络设备。
步骤302:网络设备在接收到delay_req报文后,通过交换芯片发送delay_resp报文至下一级设备,交换芯片在发送delay_resp报文时,在delay_resp报文上打上时间戳T6。
具体的说,下一级设备在接收delay_resp报文报文后,可以参考图2的步骤207至步骤208,计算下一级设备和网络设备的系统时间的偏差,并根据计算得到的偏差,调整下一级设备的系统时间,以使下一级设备的系统时间和网络设备的系统时间同步。
需要说明的是,本实施方式中,以网络设备以1588方式向下一级设备同步系统时间的方法为例,对网络设备向下一级设备同步系统时间的方法进行了举例说明,本领域技术人员可以理解,实际应用中,还可以通过其他方法将系统时间同步至下一级设备,本实施方式仅为举例说明。
通过上述描述可知,本实施方式中,将系统时间同步至交换芯片和FPGA芯片,使得交换芯片的时间戳可以复用。该交换芯片的时间戳既可以用于计算驻留时间,也可以用于向下一级设备进行时间同步,从而优化了芯片处理过程,节约了芯片数目,降低了网络设备的生产成本,减小了网络设备的体积。
由此,本实施例提供了一种时间同步方法,将系统时间同步至交换模块和编程模块,使得交换模块和编程模块的时间基准相同,且交换模块的时间与系统时间同步。由于交换模块和编程模块的时间基准相同,在与上一级设备进行系统时间同步时,交换模块的时间戳可以用于计算各报文在网络设备内部的驻留时间。由于交换模块的时间与系统时间同步,在向下一级设备进行时间同步时,交换模块的时间戳可以作为网络设备的系统时间,传递下一级设备。网络设备通过一个交换模块就可以与上一级设备和下一级设备进行系统时间同步,减少了网络设备中交换模块的数量,降低了网络设备的生产成本,减小了网络设备的体积。解决了现有技术由于采用的时间基准不同,所以必须通过两个交换模块才能完成与上一级设备、下一级设备之间的时间同步,使得设备成本过高的问题。
本发明的第二实施例涉及一种时间同步方法,第二实施例与第一实施例大致相同,在本实施例中,在将系统时间同步至编程模块的计数器和交换模块之前,根据驻留时间的异常情况,确定同步时间。本实施方式中,在驻留时间发生异常后,及时调整同步时间,避免由于同步时间不合适影响网络设备的系统时间与上一级设备的系统时间的同步效果。
本实施例中的时间同步方法的具体流程图如图4所示,包括步骤401至步骤403,其中,步骤401和步骤403分别与步骤101和步骤102大致相同,此处不再赘述,下面主要介绍不同之处:
步骤401:获取系统时间。
步骤402:根据驻留时间的异常情况,确定同步时间。
具体的说,由于编程模块向交换模块同步系统时间时,本身也需要一定的时间(微秒级别)进行系统时间的同步。如果这时网络设备刚好收到sync报文,sync报文在交换芯片被打上时间戳A时,编程模块还没有给交换模块和编程模块的计数器同步系统时间,而sync报文被发送至编程模块的过程中,将系统时间同步至编程模块的计数器和交换模块。sync报文到达编程模块,并打上时间戳B。这时候时间戳B和时间戳A的时间基准就不一样了,从而造成CF1不准确。同样,如果同步系统时间前后,正在发送delay_req报文,也会造成时间戳C和时间戳D的基准不一样,造成CF2不准确。因此,当设备发现驻留时间有异常时,需要对同步系统时间的时刻进行微调,例如,向后延迟0.1秒,以错开sync报文的接收时刻和delay_req报文的发送时刻。
在一个例子中,若驻留时间异常,可以按照预设的调整值,对原有的同步时间进行调整,得到后续的同步时间。例如,重新确定的同步时间=原有的同步时间+u,其中,u为小于同步周期的任一时间长度,例如,原有的同步时间为1s,u等于0.1秒,同步周期为1s,则重新确定的同步时间为1.1s,后续的同步时间为2.1s、3.1s、4.1s……以此类推。
在一个例子中,系统时间同步至编程模块和交换模块的周期是上一级设备发送同步报文的发送周期的N倍,N为正整数。具体的说,由于同步周期为上一级设备发送同步报文的发送周期(即网络设备的系统时间与上一级设备的系统时间的同步周期)的N倍,若在初始的同步时间将系统时间同步至编程模块的计数器和交换模块时,未出现驻留时间异常,则在基于该初始的同步时间和同步周期确定的其他同步时间进行的同步操作也不会造成驻留时间异常,这可以减少由于同步时间不合适导致驻留时间异常的情况。
以下对检测驻留时间是否异常的方法进行举例说明。
方法1:网络设备若确定系统时间收敛异常,则确定驻留时间异常。
具体的说,当驻留时间异常时,会影响offset的计算,导致系统时间一直不能收敛和锁定。因此,当offset的调整次数达到一定数量后,系统时间仍不能锁定,可认为是驻留时间出现了异常,这时需要对同步系统时间的时刻进行微调。
在一个例子中,网络设备确定系统时间收敛异常的过程包括:若与上一级设备进行M次系统时间同步后的系统时间和上一级设备的系统时间的偏差大于第一预设值,则确定系统时间收敛异常,M为大于1的正整数。其中,M可以根据对系统时间同步的速度等各方面的要求设置,或者,根据网络设备完成自身与上一级设备的系统时间的同步所需要的同步次数的经验值设置。第一预设值可以根据项目对系统时间的精准度的要求设置,例如,设置为3ns。
方法2:网络设备若确定驻留时间大于第二预设值,则确定驻留时间异常。
具体的说,由于驻留时间是网络设备内部各系统的延时总和,其时长一般在一个经验值范围内,当驻留时间的超过了这个经验值,就可以认为驻留时间出现了异常,这时需要对同步驻留时间的时刻进行微调。其中,第二预设值可以根据经验设置。
需要说明的是,本领域技术人员可以理解,实际应用中,可以针对sync报文在网络设备内部的驻留时间CF1和delay_req报文在网络设备的驻留时间CF2分别设置阈值,以监控CF1和CF2是否异常。网络设备若确定CF1大于CF1对应的阈值,或,CF2大于CF2对应的阈值,则认为驻留时间异常。其中,CF1对应的阈值和CF2对应的阈值可以相同,也可以不同,本实施方式不做限制。
基于上述提及的判断方法,以下对发现驻留时间异常的过程和异常处理过程进行简要说明。
以编程模块为FPGA芯片,交换模块为交换芯片为例,CF1出现异常和CF1异常的处理过程如图5所示,包括以下步骤:
步骤501:sync报文从上联网口达到交换芯片后,交换芯片打上时间戳A。
步骤502:FPGA芯片将系统时间同步到自己的计数器和交换芯片。此时FPGA芯片的计数器的计数基准发生了改变。
步骤503:sync报文到达FPGA芯片后,在FPGA芯片打上时间戳B,并记录系统时间T2。
步骤504:CPU根据时间戳A和时间戳B计算出CF1,并记录sync报文中携带的时间戳T1。
步骤505:CPU发现CF1超出合理范围或者发现系统时间在较长时间内都无法收敛,对同步时间进行调整。
具体的说,由于时间戳A和时间戳B的计数基准不同,因此通过时间戳A和时间戳B计算出的CF1出现异常。
基于调整后的同步时间,将系统时间同步至编程模块的计数器和交换模块。
以编程模块为FPGA芯片,交换模块为交换芯片为例,CF2出现异常和CF2异常的处理过程如图6所示,包括以下步骤:
步骤601,在FPGA芯片发出delay_req报文时,记录系统时间T3,基于计数器时间,打上时间戳C。
步骤602:FPGA芯片将系统时间同步到自己的计数器和交换芯片。此时FPGA芯片的计数器和交换芯片的计数基准发生了改变。
步骤603:delay_req报文到达交换芯片,在交换芯片打上时间戳D。CPU根据时间戳C和时间戳D,计算出CF2。
步骤604:CPU发现CF2超出合理范围或者发现系统时间在较长时间内都无法收敛,对同步时间进行调整。
具体的说,由于时间戳C和时间戳D的计数基准不同,通过时间戳C和时间戳D计算出的CF2出现异常,需要对同步时间进行调整。
基于调整后的同步时间,将系统时间同步至编程模块的计数器和交换模块。
可选择的,当网络设备发现驻留时间异常后,可以对驻留时间进行调整,尽可能恢复正常的驻留时间。具体的,网络设备调整驻留时间;根据调整后的驻留时间,计算系统时间与上一级设备的系统时间的偏差;根据计算得到的偏差,调整系统时间。
以下对调整驻留时间的方法进行举例说明。
在第一个例子中,网络设备在确定驻留时间异常后,获取前T次系统时间同步过程中计算得到的偏差;根据前T次的偏差,调整驻留时间;其中,T为第一时间到第二时间内与上一级设备进行系统时间同步的次数;第一时间为上一次执行将系统时间同步至编程模块的计数器和交换模块的时间,第二时间为本次执行将系统时间同步至编程模块的计数器和交换模块的时间。与上一级设备进行系统时间同步的次数确定的获取方式可以是:网络设备中设置专门用于计算次数的计数器,在第一时间对计数器进行清零,网络设备每次上一级设备发送的同步报文时,计数器的计数值加1。到第二时间时,计数器的计数值即为第一时间到第二时间内与上一级设备进行系统时间同步的次数确定。
例如,第一时间到第二时间内,网络设备与上一级设备进行系统时间同步的次数为3,则调整后的驻留时间=调整前的驻留时间-前3次系统时间同步过程中计算得到的偏差的和。
在第二个例子中,网络设备在确定驻留时间异常后,获取同步编程模块的计数器时间前编程模块的第一时间戳,以及同步编程模块的计数器时间后编程模块的第二时间戳;或者,获取同步交换模块的时间前交换模块的第一时间戳,以及同步交换模块的时间后交换模块的第二时间戳;根据第一时间戳和第二时间戳,确定调整量;根据调整量,调整驻留时间。具体的说,在监控驻留时间是否异常的过程中,若监控结果为CF1异常,则根据调整量,调整CF1,若监控结果为CF2异常,则根据调整量,调整CF2。当调整驻留时间后,网络设备基于调整后的驻留时间重新计算offset,重新同步系统时间。
值得一提的是,网络设备对异常的驻留时间进行调整,并基于调整后的驻留时间,重新同步系统时间,可以减小网络设备的系统时间和上一级设备的系统时间的偏差。
以下针对第二个例子所提供的调整驻留时间的方法,对调整驻留时间的过程进行举例说明。
情况1,监控结果为CF1异常。若调整量=同步编程模块的计数器时间后编程模块的第二时间戳-同步编程模块的计数器时间前编程模块的第一时间戳,或者,调整量=同步交换模块的时间后交换模块的第二时间戳-同步交换模块的时间的计数器前交换模块的第一时间戳,则调整后的CF1=调整前的CF1-调整量。若调整量=同步编程模块的计数器时间前编程模块的第一时间戳-同步编程模块的计数器时间后编程模块的第二时间戳,或者,调整量=同步交换模块的时间前交换模块的第一时间戳-同步交换模块的时间后交换模块的第二时间戳,则调整后的CF1=调整前的CF1+调整量。
情况2,监控结果为CF2异常。若调整量=同步编程模块的计数器时间后编程模块的第二时间戳-同步编程模块的计数器时间前编程模块的第一时间戳,或者,调整量=同步交换模块的时间后交换模块的第二时间戳-同步交换模块的时间前交换模块的第一时间戳,则调整后的CF2=调整前的CF2-调整量。若调整量=同步编程模块的计数器时间前编程模块的第一时间戳-同步编程模块的计数器时间后编程模块的第二时间戳,或者,调整量=同步交换模块的时间前交换模块的第一时间戳-同步交换模块的时间后交换模块的第二时间戳,则调整后的CF2=调整前的CF2-调整量。
在一个例子中,网络设备在确定系统时间收敛异常之后,将异常次数加1,其中,异常次数的初始值为0;若更新后的异常次数大于第三预设值,提示系统故障。具体的说,当多次调整同步时间后,仍然存在系统时间收敛异常的情况,说明可能是其他原因导致系统时间收敛异常,此时,网络设备可以通过发送信息给运维人员,或者,发出报警提示等方式,提示运维人员网络设备的系统存在故障,以便运维人员对网络设备进行维护。
值得一提的是,在确定非同步时间导致系统时间收敛异常的情况下,及时提示运维人员对网络设备进行维护,降低了网络设备的维护成本。
步骤403:根据同步时间,将系统时间同步至编程模块的计数器和交换模块,以通过交换模块和编程模块分别与上一级设备和下一级设备进行系统时间同步。
由此,本实施例提供了一种时间同步方法,将系统时间同步至交换模块和编程模块,使得交换模块和编程模块的时间基准相同,且交换模块的时间与系统时间同步。由于交换模块和编程模块的时间基准相同,在与上一级设备进行系统时间同步时,交换模块的时间戳可以用于计算各报文在网络设备内部的驻留时间。由于交换模块的时间与系统时间同步,在向下一级设备进行时间同步时,交换模块的时间戳可以作为网络设备的系统时间,传递下一级设备。网络设备通过一个交换模块就可以与上一级设备和下一级设备进行系统时间同步,减少了网络设备中交换模块的数量,降低了网络设备的生产成本,减小了网络设备的体积。解决了现有技术由于采用的时间基准不同,所以必须通过两个交换模块才能完成与上一级设备、下一级设备之间的时间同步,使得设备成本过高的问题。对驻留时间是否异常进行监控,并在驻留时间发生异常后,及时调整同步时间,避免由于同步时间不合适影响网络设备的系统时间与上一级设备的系统时间的同步效果。
此外,本领域技术人员可以理解,上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明的第三实施例涉及一种网络设备,如图7所示,包括:获取模块701和同步模块702;获取模块701用于获取系统时间。同步模块702用于将系统时间同步至编程模块的计数器和交换模块,以通过交换模块和编程模块分别与上一级设备和下一级设备进行系统时间同步。
在一个例子中,在将系统时间同步至编程模块的计数器和交换模块之前,还包括:根据驻留时间的异常情况,确定同步时间;将系统时间同步至编程模块的计数器和交换模块,包括:根据同步时间,将系统时间同步至编程模块的计数器和交换模块。
在一个例子中,确定驻留时间的异常情况,包括:若确定系统时间收敛异常,则确定驻留时间异常。
在一个例子中,确定系统时间收敛异常,包括:若与上一级设备进行M次系统时间同步后的系统时间和上一级设备的系统时间的偏差大于第一预设值,则确定系统时间收敛异常,M为大于1的正整数。
在一个例子中,确定驻留时间异常,包括:若确定驻留时间大于第二预设值,则确定驻留时间异常。
在一个例子中,网络设备还包括调整模块,调整模块用于若确定驻留时间异常,还包括:调整驻留时间;根据调整后的驻留时间,计算系统时间与上一级设备的系统时间的偏差;根据计算得到的偏差,调整系统时间。
在一个例子中,调整驻留时间,包括:获取前T次系统时间同步过程中计算得到的偏差;根据前T次的偏差,调整驻留时间;其中,T为第一时间到第二时间内与上一级设备进行系统时间同步的次数;第一时间为上一次执行将系统时间同步至编程模块的计数器和交换模块的时间,第二时间为本次执行将系统时间同步至编程模块的计数器和交换模块的时间;或者,获取同步编程模块的计数器时间前编程模块的第一时间戳,以及同步编程模块的计数器时间后编程模块的第二时间戳;或者,获取同步交换模块的时间前交换模块的第一时间戳,以及同步交换模块的时间后交换模块的第二时间戳;根据第一时间戳和第二时间戳,确定调整量;根据调整量,调整驻留时间。
在一个例子中,网络设备还包括提示模块,提示模块用于在确定系统时间收敛异常之后,将异常次数加1,其中,异常次数的初始值为0;若更新后的异常次数大于第三预设值,提示系统故障。
在一个例子中,系统时间同步至编程模块和交换模块的周期是上一级设备发送同步报文的周期的N倍,N为正整数。
不难发现,本实施例为与第一或第二实施例相对应的装置实施例,本实施例可与第一或第二实施例互相配合实施。第一或第二实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一或第二实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明的第四实施例涉及一种网络设备,如图8所示,包括:至少一个处理器801;以及,与至少一个处理器801通信连接的存储器802;其中,存储器802存储有可被至少一个处理器801执行的指令,指令被至少一个处理器801执行,以使至少一个处理器801能够执行上述的时间同步方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明的第五实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种时间同步方法,其特征在于,包括:
获取系统时间;
将所述系统时间同步至编程模块的计数器和交换模块,以通过所述交换模块和所述编程模块分别与上一级设备和下一级设备进行系统时间同步。
2.根据权利要求1所述的时间同步方法,其特征在于,在所述将所述系统时间同步至编程模块的计数器和交换模块之前,还包括:
根据驻留时间的异常情况,确定同步时间;
所述将所述系统时间同步至编程模块的计数器和交换模块,包括:
根据所述同步时间,将所述系统时间同步至编程模块的计数器和交换模块。
3.根据权利要求2所述的时间同步方法,其特征在于,确定所述驻留时间的异常情况,包括:
若确定所述系统时间收敛异常,或者,若确定所述驻留时间大于第二预设值,则确定所述驻留时间异常。
4.根据权利要求3所述的时间同步方法,其特征在于,所述确定所述系统时间收敛异常,包括:
若与所述上一级设备进行M次系统时间同步后的系统时间和所述上一级设备的系统时间的偏差大于第一预设值,则确定所述系统时间收敛异常,M为大于1的正整数。
5.根据权利要求2所述的时间同步方法,其特征在于,若确定驻留时间异常,所述时间同步方法还包括:
调整所述驻留时间;
根据调整后的驻留时间,计算所述系统时间与所述上一级设备的系统时间的偏差;
根据计算得到的偏差,调整所述系统时间。
6.根据权利要求5所述的时间同步方法,其特征在于,所述调整所述驻留时间,包括:
获取前T次系统时间同步过程中计算得到的偏差;根据前T次的偏差,调整所述驻留时间;其中,T为第一时间到第二时间内与所述上一级设备进行系统时间同步的次数;所述第一时间为上一次执行所述将所述系统时间同步至编程模块的计数器和交换模块的时间,第二时间为本次执行所述将所述系统时间同步至编程模块的计数器和交换模块的时间;
或者,
获取同步所述编程模块的计数器时间前所述编程模块的第一时间戳,以及同步所述编程模块的计数器时间后所述编程模块的第二时间戳;或者,获取同步所述交换模块的时间前所述交换模块的第一时间戳,以及同步所述交换模块的时间后所述交换模块的第二时间戳;根据所述第一时间戳和所述第二时间戳,确定调整量;根据所述调整量,调整所述驻留时间。
7.根据权利要求3所述的时间同步方法,其特征在于,在所述确定系统时间收敛异常之后,所述时间同步方法还包括:
将异常次数加1,其中,所述异常次数的初始值为0;
若更新后的异常次数大于第三预设值,提示系统故障。
8.根据权利要求1至7中任一项所述的时间同步方法,其特征在于,所述系统时间同步至编程模块和交换模块的周期是所述上一级设备发送同步报文的周期的N倍,N为正整数。
9.一种网络设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8中任一项所述时间同步方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的时间同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589393.XA CN113839730A (zh) | 2020-06-24 | 2020-06-24 | 时间同步方法、网络设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589393.XA CN113839730A (zh) | 2020-06-24 | 2020-06-24 | 时间同步方法、网络设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113839730A true CN113839730A (zh) | 2021-12-24 |
Family
ID=78964696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010589393.XA Pending CN113839730A (zh) | 2020-06-24 | 2020-06-24 | 时间同步方法、网络设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113839730A (zh) |
-
2020
- 2020-06-24 CN CN202010589393.XA patent/CN113839730A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9923656B2 (en) | Methods, systems, and computer readable media for testing recovered clock quality | |
CN102104475B (zh) | 基于ieee1588的同步系统及其同步方法 | |
EP3284217B1 (en) | Methods, systems, and computer readable medium for synchronizing timing among network interface cards (nics) in a network equipment test device | |
EP2487819B1 (en) | Network element for a packet-switched network | |
EP3284244B1 (en) | Methods, systems, and computer readable media for emulating network devices with different clocks | |
US20120275501A1 (en) | Pluggable synchronization clocks, networks, systems and methods related thereto | |
CN104836630B (zh) | Ieee1588时钟同步系统及其实现方法 | |
US8819161B1 (en) | Auto-syntonization and time-of-day synchronization for master-slave physical layer devices | |
CN108259109B (zh) | Ptp域中的网络设备及tod同步方法 | |
EP2991250A1 (en) | Method and apparatus for ptp synchronous network | |
EP2749968A1 (en) | Time control device, time control method, and program | |
CN106603183A (zh) | 一种时间戳过滤方法及装置 | |
CN112217588B (zh) | 时间戳抖动补偿方法及系统 | |
CN101247169A (zh) | 一种在通信网络中实现时间同步的方法和系统以及设备 | |
CN104243079A (zh) | 一种实时以太网的微秒级时钟同步方法 | |
CN105281885A (zh) | 用于网络设备的时间同步方法、装置及时间同步服务器 | |
CN103117829A (zh) | 一种不对称网络间的时间同步与补偿方法或者装置 | |
CN103441833A (zh) | 一种主从设备频率同步方法及系统 | |
CN104486058A (zh) | 一种ptp系统时间同步方法以及装置 | |
Kohler | A practical implementation of an IEEE1588 supporting Ethernet switch | |
Moreira et al. | IEEE 1588 Transparent Clock architecture for FPGA-based network devices | |
CN102571253B (zh) | 实现精确时间同步的方法和设备 | |
US20230050042A1 (en) | Clock determining method and related apparatus | |
CN113839730A (zh) | 时间同步方法、网络设备及存储介质 | |
US9442511B2 (en) | Method and a device for maintaining a synchronized local timer using a periodic signal |
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 |