网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议。NTP用于在一系列分布式时间服务器与客户端之间同步时钟。
随着网络拓扑的日益复杂,整个网络内设备的时钟同步将变得十分重要。如果依靠管理员手工修改系统时钟,不仅工作量巨大,而且时钟的准确性也无法得到保证。NTP的出现就是为了解决网络内设备系统时钟的同步问题。
NTP主要应用于网络中所有设备时钟需要保持一致的场合,比如: ?网络管理:对从不同路由器采集来的日志信息、调试信息进行分析时,需要以时间作为参照依据。 ?计费系统:要求所有设备的时钟保持一致。 ?多个系统协同处理同一个复杂事件:为保证正确的执行顺序,多个系统必须参考同一时钟。 ?备份服务器和客户机之间进行增量备份:要求备份服务器和所有客户机之间的时钟同步。 ?系统时间:某些应用程序需要知道用户登录系统的时间以及文件修改的时间。
NTP基本原理
设定参数及同步方式 如图所示,NTP客户端和NTP服务器相连,它们都有自己独立的系统时钟,现在通过NTP实现系统时钟自动同步。 设定参数及同步方式如下: ?在NTP客户端和NTP服务器的系统时钟同步之前,NTP客户端的时钟设定为Ta,NTP服务器的时钟设定为Tb。 ?NTP服务器作为NTP时间服务器,NTP客户端的时钟要与NTP服务器的时钟进行同步。 ?这里描述的原理是在NTP客户端和NTP服务器的系统时钟精度为0,即完全精确的场景下进行的。
** **
系统时钟的同步流程 系统时钟的同步流程如下: 1.NTP客户端在T1时刻发送一个NTP请求报文给NTP服务器,该请求报文携带离开NTP客户端时的时间戳T1。 2.NTP请求报文到达NTP服务器,此时NTP服务器的时刻为T2。NTP服务器处理之后,于T3时刻发出NTP应答报文。该应答报文中携带离开NTP客户端时的时间戳T1、到达NTP服务器时的时间戳T2、离开NTP服务器时的时间戳T3。 3.NTP客户端在T4时刻接收到该应答报文。
NTP客户端与NTP服务器之间的时间差 通过上面的NTP报文交互,NTP客户端获得4个时间参数,分别为T1、T2、T3、T4。由于NTP客户端和NTP服务器的时钟完全精确,我们可以通过以下公式计算出NTP客户端与NTP服务器之间的时间差,也就是NTP客户端需要调整的时间。 1.计算NTP报文从NTP客户端发送到NTP服务器所需要的时间Delay。 Delay = [ ( T4 - T1 ) - ( T3 – T2 ) ] / 2 2.计算NTP客户端与NTP服务器之间的时间差Offset。 以T4时刻为例,在这个时刻点,NTP服务器发送过来的报文被NTP客户端接收到时,服务器的时刻已经为T3 + Delay。那么时间差Offset可由以下公式进行计算: T4 + Offset = T3 + Delay 公式整理之后,Offset = T3 + Delay – T4 = T3 + [ ( T4 - T1 ) - ( T3 – T2 ) ] / 2 – T4 = [ ( T2- T1 ) + ( T3 – T4 ) ] / 2。 NTP客户端根据计算得到Offset来调整自己的时钟,实现与NTP服务器的时钟同步。
NTP网络结构
名称概念 在NTP的网络结构中,主要存在如下概念: ?同步子网:如图所示,由主时间服务器、二级时间服务器、PC客户端和它们之间互连的传输路径组成同步子网。 ?主时间服务器:通过线缆或无线电直接同步到标准参考时钟,标准参考时钟通常是Radio Clock或卫星定位系统等。 ?二级时间服务器:通过网络中的主时间服务器或者其他二级服务器取得同步。二级时间服务器通过NTP将时间信息传送到局域网内部的其它主机。 ?层数(stratum):层数是对时钟同步情况的一个分级标准,代表了一个时钟的精确度,取值范围1~15,数值越小,精确度越高。1表示时钟精确度最高,15表示未同步。
设计目的 在正常情况下,同步子网中的主时间服务器和二级时间服务器呈现出一种分层主从结构。在这种分层结构中,主时间服务器位于根部,二级时间服务器向叶子节点靠近,层数递增,准确性递减,降低的程度取决于网络路径和本地时钟的稳定性。 如此设计的目的是: ?当一台或多台主/二级时间服务器或它们之间的网络路径发生故障时,同步子网的主从分层结构将自动发生重构以获得最精确和最可靠的时间。 ?当同步子网中正常使用的主时间服务器都失效,备用的主时间服务器将继续运行。 当子网中所有的主时间服务器都失效时,其它二级时间服务器将在它们内部达到同步。此时,这些二级时间服务器将脱离同步子网,自动运行在它们最后一次确定的时间和频率。由于这些路由器计算精度很高,所以当一台具有比较稳定的振荡器的路由器长时间脱离子网时,它的计时误差可以保持在一天不大于几毫秒。
|