网络时间获取方法、装置及系统、可读介质及存储控制器与流程

文档序号:11657482阅读:232来源:国知局
网络时间获取方法、装置及系统、可读介质及存储控制器与流程

本发明涉及网络通信技术领域,特别涉及一种网络时间获取方法、装置及系统、可读介质及存储控制器。



背景技术:

如今,手机、平板及机顶盒等智能电子设备均可提供诸如直播、回看及点播记忆等功能,不过实现这些功能时则需以当前网络时间为基础,所以智能电子设备还需获取网络时间。

目前,主要是通过设置的唯一ntp(networktimeprotocol,网络时间协议)服务器地址,从该地址对应的ntp时间服务器上获取网络时间。

然而,由于不同地区的兼容性不同,那么在部分地区通过该默认地址极可能获取不到网络时间,或者是每次获取到网络时间的速度较慢,但无论是哪种情况,均会对直播等功能的实现造成一定影响。可见,如何能够较可靠的获取到网络时间成为目前亟待解决的问题。



技术实现要素:

本发明实施例提供了一种网络时间获取方法、装置及系统、可读介质及存储控制器,能够较可靠的获取到网络时间。

第一方面,本发明实施例提供了一种网络时间获取方法,预先设置至少两个网络时间协议ntp服务器地址;

s1:从各个所述ntp服务器地址中,确定至少一个可从相对应的ntp时间服务器获取到网络时间的可用ntp服务器地址;

s2:分别确定从各个所述可用ntp服务器地址对应的ntp时间服务器上获取到网络时间所需的获取时长;

s3:确定各个所述获取时长中的最短获取时长,并标记与所述最短获取时长相对应的所述可用ntp服务器地址,执行s4;还包括:

s4:按照预设周期从标记的所述可用ntp服务器地址对应的所述ntp时间服务器上获取网络时间,执行s5;

s5:判断是否从标记的所述可用ntp服务器地址对应的所述ntp时间服务器中获取到网络时间,如果是,执行s4,否则,依次执行s1、s2、s3。

优选地,

所述从各个所述ntp服务器地址中,确定至少一个可从相对应的ntp时间服务器获取到网络时间的可用ntp服务器地址,包括:

根据各个所述ntp服务器地址,逐个访问对应的所述ntp时间服务器;

针对每个所述ntp时间服务器,在接收到当前ntp时间服务器根据访问发送的网络时间时,确定所述当前ntp时间服务器对应的ntp服务器地址为所述可用ntp服务器地址。

优选地,

所述分别确定从各个所述可用ntp服务器地址对应的ntp时间服务器上获取到网络时间所需的获取时长,包括:

针对于每一个所述可用ntp服务器地址,均执行:

确定向所述可用ntp服务器地址对应的ntp时间服务器发送获取指令的发送时间点;

确定接收到所述ntp时间服务器根据所述获取指令发送的网络时间的接收时间点;

计算所述发送时间点与所述接收时间点之间的差值,并将所述差值的绝对值作为获取时长。

优选地,

所述预先设置至少两个网络时间协议ntp服务器地址,包括:

预先设置至少两个且不多于16个网络时间协议ntp服务器地址。

第二方面,本发明实施例提供了一种网络时间获取装置,包括:

设置模块,用于预先设置至少两个网络时间协议ntp服务器地址;

第一确定模块,用于从各个所述ntp服务器地址中,确定至少一个可从相对应的ntp时间服务器获取到网络时间的可用ntp服务器地址;

第二确定模块,用于分别确定从各个所述可用ntp服务器地址对应的ntp时间服务器上获取到网络时间所需的获取时长;

标记模块,用于确定各个所述获取时长中的最短获取时长,并标记与所述最短获取时长相对应的所述可用ntp服务器地址,并触发获取模块;

所述获取模块,用于按照预设周期从标记的所述可用ntp服务器地址对应的所述ntp时间服务器上获取网络时间,并触发判断模块;

所述判断模块,用于判断是否从标记的所述可用ntp服务器地址对应的所述ntp时间服务器中获取到网络时间,如果是,触发所述获取模块,否则,触发所述第一确定模块。

优选地,

所述第一确定模块,具体用于根据各个所述ntp服务器地址,逐个访问对应的所述ntp时间服务器;针对每个所述ntp时间服务器,在接收到当前ntp时间服务器根据访问发送的网络时间时,确定所述当前ntp时间服务器对应的ntp服务器地址为所述可用ntp服务器地址。

优选地,

所述第二确定模块,具体用于针对于每一个所述可用ntp服务器地址,均执行:确定向所述可用ntp服务器地址对应的ntp时间服务器发送获取指令的发送时间点;确定接收到所述ntp时间服务器根据所述获取指令发送的网络时间的接收时间点;计算所述发送时间点与所述接收时间点之间的差值,并将所述差值的绝对值作为获取时长。

优选地,

所述设置模块,具体用于预先设置至少两个且不多于16个网络时间协议ntp服务器地址。

第三方面,本发明实施例提供了一种网络时间获取系统,包括:至少一个ntp时间服务器,以及至少一个上述任意网络时间获取装置,其中,

每一个所述ntp时间服务器,用于向各个所述网络时间获取装置发送网络时间。

第四方面,本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行任一所述的方法。

第五方面,本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一所述的方法。

本发明实施例提供了一种网络时间获取方法、装置及系统、可读介质及存储控制器,通过预先设置至少两个ntp服务器地址,以尽量满足不同地区对于不同ntp时间服务器的需求,而且针对各个ntp服务器地址,通过确定能否从对应的ntp时间服务器获取到网络时间,及如果能够获取到网络时间,那么确定所需的获取时长,这样,就可以通过比对找出能够获取到网络时间的最短获取时长,从而之后在按照预设周期获取网络时间时,就可以从确定的最短获取时长对应的ntp服务器地址的ntp时间服务器上获取网络时间,而且如果之后判断出并未获取到网络时间时,还可重新找出当前的最短获取时长对应的ntp服务器地址,并周期性的获取网络时间。因此,本发明在相对保证能够获取到网络时间的同时,还能较快的获取到网络时间,因此本方案能够较可靠的获取到网络时间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种网络时间获取方法的流程图;

图2是本发明另一个实施例提供的一种网络时间获取方法的流程图;

图3是本发明实施例提供的网络时间获取装置所在设备的硬件架构图;

图4是本发明一个实施例提供的一种网络时间获取装置的结构示意图;

图5是本发明一个实施例提供的一种网络时间获取系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种网络时间获取方法,该方法可以包括以下步骤:

步骤101:预先设置至少两个网络时间协议ntp服务器地址。

步骤102:从各个所述ntp服务器地址中,确定至少一个可从相对应的ntp时间服务器获取到网络时间的可用ntp服务器地址。

步骤103:分别确定从各个所述可用ntp服务器地址对应的ntp时间服务器上获取到网络时间所需的获取时长。

步骤104:确定各个所述获取时长中的最短获取时长,并标记与所述最短获取时长相对应的所述可用ntp服务器地址,执行步骤105。

步骤105:按照预设周期从标记的所述可用ntp服务器地址对应的所述ntp时间服务器上获取网络时间,执行步骤106。

步骤106:判断是否从标记的所述可用ntp服务器地址对应的所述ntp时间服务器中获取到网络时间,如果是,执行步骤105,否则,依次执行步骤102、步骤103、步骤104。

在本发明实施例中,通过预先设置至少两个ntp服务器地址,以尽量满足不同地区对于不同ntp时间服务器的需求,而且针对各个ntp服务器地址,通过确定能否从对应的ntp时间服务器获取到网络时间,及如果能够获取到网络时间,那么确定所需的获取时长,这样,就可以通过比对找出能够获取到网络时间的最短获取时长,从而之后在按照预设周期获取网络时间时,就可以从确定的最短获取时长对应的ntp服务器地址的ntp时间服务器上获取网络时间,而且如果之后判断出并未获取到网络时间时,还可重新找出当前的最短获取时长对应的ntp服务器地址,并周期性的获取网络时间。因此,本发明在相对保证能够获取到网络时间的同时,还能较快的获取到网络时间,因此本方案能够较可靠的获取到网络时间。

在本发明一个实施例中,为了避免网络拥堵,所述步骤102的具体实施方式包括:根据各个所述ntp服务器地址,逐个访问对应的所述ntp时间服务器;针对每个所述ntp时间服务器,在接收到当前ntp时间服务器根据访问发送的网络时间时,确定所述当前ntp时间服务器对应的ntp服务器地址为所述可用ntp服务器地址。

举例来说,预先设置了3个ntp服务器地址,分别是s1a.time.edu.cn、s2g.time.edu.cn、s2a.time.edu.cn,那么为避免同时访问多个ntp时间服务器造成网路拥堵,可首先访问s1a.time.edu.cn,当接收到s1a.time.edu.cn对应的ntp时间服务器发送的网络时间,或者是在预设的时间阈值(如1秒)内未接收到网络时间,则表示对s1a.time.edu.cn对应的ntp时间服务器的访问结束,并在当前访问结束后,在对s2g.time.edu.cn对应的ntp时间服务器进行访问,依次类推。

在本发明一个实施例中,为每次能够较快速的从ntp时间服务器获取到网络时间,提高网络时间获取的可靠性,所述步骤103的具体实施方式包括:针对于每一个所述可用ntp服务器地址,均执行:确定向所述可用ntp服务器地址对应的ntp时间服务器发送获取指令的发送时间点;确定接收到所述ntp时间服务器根据所述获取指令发送的网络时间的接收时间点;计算所述发送时间点与所述接收时间点之间的差值,并将所述差值的绝对值作为获取时长。

例如,以访问s1a.time.edu.cn对应的ntp时间服务器a为例,向a发送获取指令(该指令是获取网络时间)的发送时间点为00:00:00,接收到a发来的网络时间的接收时间点为00:00:25,则发送时间时间点与接收时间点之间的差值为-25或25,那么获取时长为相应的绝对值,即为25ms。

其中,发送时间点和接收时间点可通过相应的计时编程程序得到。

在本发明一个实施例中,所述步骤101的具体实施方式包括:预先设置至少两个且不多于16个网络时间协议ntp服务器地址。

考虑到实际需求,以及网络拥堵等情况,设置的ntp服务器地址的数量较优的是16个。但也并不局限于此,用户可根据自身需求自行设定,可通过配置文件添加不同项目、不同地区的ntp服务器地址。

下面将以设置16个ntp服务器地址为例,详细说明本发明实施例提供的一种网络时间获取方法,如图2所示,该方法可以包括以下步骤:

步骤201:预先设置16个ntp服务器地址。

可建立ntp服务器地址存储表格,然后将获取到的全国及全球比较可靠的ntp服务器地址从上到下按行存储在该表格中。

例如,第一行为北京大学的ntp服务器地址s2m.time.edu.cn;第二行为东北地区网络中心的ntp服务器地址s2f.time.edu.cn;第三行为西南地区网络中心的ntp服务器地址s2d.time.edu.cn…,第十六行为西北地区网络中心的ntp服务器地址s2e.time.edu.cn。

步骤202:预先设置周期为半小时。

为能够显示较准确的网络时间,几乎每半个小时需要从相应的ntp时间服务器上获取网络时间,如果跟当前显示的时间一致,则无需进行更新,但如果本次获取到的网络时间与当前显示的不一致,则需将当前显示的时间更新为本次获取到的网络时间。

步骤203:逐个的向各个ntp服务器地址对应的ntp时间服务器发送获取指令。

根据步骤201,可根据表格中按行存储的顺序,从上到下逐个对各个ntp服务器地址对应的ntp时间服务器进行访问。如,首先是对北京大学的ntp服务器地址s2m.time.edu.cn对应的ntp时间服务器进行访问,只有当访问结束后,再对东北地区网络中心的ntp服务器地址s2f.time.edu.cn对应的ntp时间服务器进行访问,以此避免同时对多个ntp时间服务器进行访问造成的网络拥堵。

步骤204:共接收到10个ntp时间服务器根据获取指令发送的网络时间,确定这10个ntp时间服务器对应的为可用ntp服务器地址。

例如,针对表格中的前10行存储的ntp服务器地址,均可获取到网络时间,而针对后6行存储的ntp服务器地址,可能由于地区的限制,均未能获取到网络时间。

步骤205:针对这10个可用ntp服务器地址中的每一个,确定向对应的ntp时间服务器发送获取指令时的发送时间点。

在逐个的访问16个ntp服务器地址对应的ntp时间服务器时,可自动记录发送获取指令的发送时间点,此时,只需确定能够获取到网络时间对应的10个发送时间点即可。例如,针对ntp服务器地址s2m.time.edu.cn的发送时间点为08:00:00;针对ntp服务器地址s2f.time.edu.cn的发送时间点为08:00:13;针对ntp服务器地址s2d.time.edu.cn的发送时间点为08:00:44…

步骤206:针对这10个可用ntp服务器地址中的每一个,确定接收到对应的ntp时间服务器发送的网络时间的接收时间点。

例如,针对s2m.time.edu.cn的接收时间点为08:00:12;针对s2f.time.edu.cn的接收时间点为08:00:42;针对s2d.time.edu.cn的接收时间点为08:01:03…

步骤207:针对确定出的10个发送时间点以及相对应的接收时间点,计算出10个获取时长。

根据步骤205和206,从s2m.time.edu.cn对应的ntp时间服务器获取到网络时间的获取时长是|0-12|=12ms;从s2f.time.edu.cn对应的ntp时间服务器获取到网络时间的获取时长是|13-42|=29ms;从s2d.time.edu.cn对应的ntp时间服务器获取到网络时间的获取时长是19ms;假设剩余的7个获取时长依次为16ms、14ms、14ms、20ms、22ms、16ms、15ms。

步骤208:从10个获取时长中确定出最短获取时长,并标记该最短获取时长对应的可用ntp服务器地址。

从上述步骤207中可以看出,最短时长为12ms,从而标记的可用ntp服务器地址的s2m.time.edu.cn。

实现方式可为:将s2m.time.edu.cn通过编程语句settings.global.putstring单独存储起来,从而之后在周期性的获取网络时间时,利用编程语句settings.global.getstring将该地址拿到,以进行网络时间的获取。

步骤209:按照预设周期,每半小时从标记的可用ntp服务器地址对应的ntp时间服务器上获取网络时间。

之后,每半个小时均从s2m.time.edu.cn对应的ntp时间服务器上获取网络时间,尽量保证在最短时间内获取到网络时间,以避免影响到直播、回看等功能的实现。

步骤210:判断是否从标记的可用ntp服务器地址对应的ntp时间服务器上获取到网络时间,如果是,则执行步骤209,否则,执行步骤203。

值得说明的是,可能由于更换地区,在s2m.time.edu.cn对应的ntp时间服务器上并不能获取到网络时间,此时,可重新依次执行步骤203至208,以对标记的可用ntp服务器地址进行更新,找出在该地区既能获取到网络时间且用时较短的ntp服务器地址。

如图3、图4所示,本发明实施例提供了一种网络时间获取装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的网络时间获取装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的cpu将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种网络时间获取装置,包括:

设置模块401,用于预先设置至少两个网络时间协议ntp服务器地址;

第一确定模块402,用于从各个所述ntp服务器地址中,确定至少一个可从相对应的ntp时间服务器获取到网络时间的可用ntp服务器地址;

第二确定模块403,用于分别确定从各个所述可用ntp服务器地址对应的ntp时间服务器上获取到网络时间所需的获取时长;

标记模块404,用于确定各个所述获取时长中的最短获取时长,并标记与所述最短获取时长相对应的所述可用ntp服务器地址,并触发获取模块405;

所述获取模块405,用于按照预设周期从标记的所述可用ntp服务器地址对应的所述ntp时间服务器上获取网络时间,并触发判断模块406;

所述判断模块406,用于判断是否从标记的所述可用ntp服务器地址对应的所述ntp时间服务器中获取到网络时间,如果是,触发所述获取模块405,否则,触发所述第一确定模块402。

其中,本方案中的网络时间获取装置可以集成在机顶盒、手机、平板电脑等多种电子设备中。

在本发明一个实施例中,所述第一确定模块402,具体用于根据各个所述ntp服务器地址,逐个访问对应的ntp时间服务器;在接收到当前ntp时间服务器根据访问发送的网络时间时,确定所述当前ntp时间服务器对应的ntp服务器地址为可用ntp服务器地址。

在本发明一个实施例中,所述第二确定模块403,具体用于针对于每一个所述可用ntp服务器地址,均执行:确定向所述可用ntp服务器地址对应的ntp时间服务器发送获取指令的发送时间点;确定接收到所述ntp时间服务器根据所述获取指令发送的网络时间的接收时间点;计算所述发送时间点与所述接收时间点之间的差值,并将所述差值的绝对值作为获取时长。

在本发明一个实施例中,所述设置模块401,具体用于预先设置至少两个且不多于16个网络时间协议ntp服务器地址。

如图5所示,本发明实施例提供了一种网络时间获取系统,包括:至少两个ntp时间服务器501,以及至少一个上述任意网络时间获取装置502,其中,

每一个所述ntp时间服务器501,用于向各个所述网络时间获取装置502发送网络时间。

本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一实施例的方法。

本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一实施例的方法。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

综上,本发明各个实施例至少具有如下有益效果:

1、在本发明实施例中,通过预先设置至少两个ntp服务器地址,以尽量满足不同地区对于不同ntp时间服务器的需求,而且针对各个ntp服务器地址,通过确定能否从对应的ntp时间服务器获取到网络时间,及如果能够获取到网络时间,那么确定所需的获取时长,这样,就可以通过比对找出能够获取到网络时间的最短获取时长,从而之后在按照预设周期获取网络时间时,就可以从确定的最短获取时长对应的ntp服务器地址的ntp时间服务器上获取网络时间,而且如果之后判断出并未获取到网络时间时,还可重新找出当前的最短获取时长对应的ntp服务器地址,并周期性的获取网络时间。因此,本发明在相对保证能够获取到网络时间的同时,还能较快的获取到网络时间,因此本方案能够较可靠的获取到网络时间。

2、在本发明实施例中,通过逐个的对设置的各个ntp服务器地址对应的ntp时间服务器进行访问,可避免同时对多个ntp时间服务器访问造成的网络拥堵,影响整个系统的稳定运行。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1