当前位置:首页 期刊杂志

网络时间协议简析

时间:2024-07-28

康 凯

(内蒙古集通铁路集团有限责任公司,呼和浩特 010050)

1 概述

网络时间协议(Network  Time  Protocol,NTP)主要作用是使各个计算机、服务器、路由器或终端等支持NTP协议的设备做到时间上的统一。

NTP协议是一种应用层协议,在OSI七层模型中,该协议位于第七层应用层,如图1所示。

在实际应用中,NTP协议数据包使用TCP/IP协议族中的UDP协议,位于TCP/IP结构的最高层(应用层),如图2所示。

在NTP的服务器端,开放UDP的123端口提供授时功能,任何计算机都可通过访问NTP服务器UDP的123端口取得当前时间信息。

2 NTP协议结构

NTP数据包必选内容包含48个字节,其中NTP包头16 Byte,时间戳信息共32 Byte,其协议结构如图3所示。

2.1 NTP协议报头

NTP 协议的报头共 16 Byte(128 bit),包括指示信息域、往返时延、参考误差精度和参考时钟标识各4个字节。

1)指示信息域(4 Byte)

在指示信息域中,主要包括如下内容。

跳跃指示 LI(Leap Indicator):2 bit,该值为“11”时表示告警状态,表明本时钟未被同步,为其他值时NTP协议不做处理。

协议版本 VN(Version  Number):3 bit,标识NTP的版本号信息。目前的最新版本为3(NTP-V3版本)。

模式信息Mode:3 bit,表示NTP协议的工作模式。该值对应的含义为:0未定义、1主动对等体模式、2被动对等体模式、3客户模式、4服务器模式、5广播模式或组播模式、6 NTP控制报文标识、7预留。

层级标识Stratum:8 bit,表示系统时钟的层数,其取值范围为1至16。该值表明时钟的准确度,层数为1的时钟准确度最高,依次递减。值为16时,表示时钟处于未同步状态,不作为参考时钟。

轮询间隔Poll:8 bit,表示轮询时间,即两个连续NTP报文之间的时间间隔。

精度标识Precision:8 bit,表示系统时钟的精度。

2)往返时延信息(root delay)

该信息共 4 Byte(32 bit),表明本地时钟到参考时钟源的往返时间差。

3)最大误差信息(root dispersion)

该信息共 4 Byte(32 bit),表明本地时钟相对于参考时钟源的最大误差。4)参考时钟源标识(reference identifier)该标识共4 Byte,用于标识参考时钟源。

2.2 NTP必选信息域

在NTP协议16 Byte包头之后,是合计32 Byte(256 bit)的时间差分信息,包含 4 个4 Byte的时间戳信息。

1)本地时间最后更新时间戳(reference timestamp)

该信息域4 Byte,表示当前的本地时钟最后一次被更新或设定的时间。

2)发包时间戳(originate timestamp)

3)接收时间戳(receive timestamp)

该信息域4 Byte,表示NTP到达接收端时接收端的时间信息。

4)传输时间戳(transmit timestamp)

该信息域4 Byte,表示接收端收到NTP请求后应答该请求发送应答包时的时间信息。

2.3 可选信息域

可选信息域的长度为 12 Byte(96 bit),包含了NTP服务器和客户端的认证信息。

3 NTP协议流程

3.1 NTP的工作模式

在NTP协议中定义了多种工作模式,主要包括客户端/服务器模式、对等体模式、广播模式、组播模式等。

限于篇幅,本文以高铁客运专线主要使用(也是唯一在用)的客户端/服务器模式为例,对NTP协议流程进行说明。

高血压合并动脉粥样硬化是临床常见的疾病,临床大量的研究数据表明,高血压患者如果血压水平不能稳定在正常范围内很容易引发各类心血管事件的发生,因此对于老年高血压合并动脉粥样硬化的患者实施有效的护理措施对于患者的生活质量具有积极的意义[1-2]。康复护理属于临床中新型的护理模式,其护理原则旨在促进患者疾病康复、提升生活质量和预防进一步展开。尤其是老年高血压患者同时合并动脉粥样硬化,血压水平趋于稳定具有重要的作用。本次研究以康复护理对老年高血压合并动脉粥样硬化患者的血压水平的影响展开,现将研究报告如下。

3.2 NTP协议流程与时间的计算

3.2.1 协议流程

客户端/服务器模式的NTP协议交互流程主要是:由NTP客户端向一个标准的NTP时间源发起NTP同步请求,时钟源应答该请求并返回相关信息。

其交互流程示意如图4所示。

1)客户端A以标准NTP协议格式向时钟源B发送一个NTP数据包,该包包含了A的当前本地时钟(T1)。

2)该包到达时钟源B时,B首先将接收到该包时的本地标准时间信息存入receive timestamp中(T2)。

3)时钟源B发送NTP协议应答数据包时,将发送时的当前基准时间信息存入receive timestamp中(T3)。

4)客户端A收到应答数据包时,将本地的参考时间存入 reference timestamp 中(T4)。

3.2.2 标准时间的计算

根据上述流程,则可以对当前实际时间进行如下计算。

1)网络时延的计算

从上述分析可知,时钟源B的处理时延应为收到请求包的时间与发送应答包的时间差,即T3-T2,计算网络时延时应将时钟源B的处理时延剔除。而无论客户端A的时间与标准时间相差多少,因其发送和接收数据包时本身尚未进行时间调整,则客户端A的数据包收发总时延应为客户端A发送请求包与收到应答包的时间差,即T4-T1。

因此从客户端A到时钟源B间的网络传输时延的计算公式为:

网络传输时延(双向)=(T4-T1)-(T3-T2)

而单向网络传输时延可以近似认为为双向传输时延的一半,即以上公式除以2。

2)标准时间的计算

根据上述流程,客户端A可以采用如下方式确定自己的当前时间:

当前时间 =T3+[(T4-T1)-(T3-T2)]÷2

即当前时间可通过时钟源B发送应答包的时间加上网络单程时延的方法进行计算。

3.2.3 算法分析

在上述计算中,误差主要在网络时延的计算不是准确值,因为数据网存在着普遍的路由不对称(即发送数据包和接收数据包经过的物理径路不同)现象,网络时延的计算存在一定误差,当然对于一般的网络来说,这种误差已经基本可以满足一般需求。

在RFC1305等规范中,NTP标准时间的计算方法要比上述方法复杂得多,这些算法多借鉴了反馈环路的算法,将误差信息逐步利用类似于反馈、锁相的方式减少误差(震荡幅度),从而尽可能地实现精准的时间同步。

4 结束语

在目前的高速铁路及客运专线通信系统建设中,时间同步系统作为一个重要的、不可或缺的子系统,已经得到广泛的应用,其中主要甚至唯一的协议就是NTP网络时间协议。

该系统主要用于对通信网管系统、电力远动系统、CTC调度集中系统、旅客服务系统等提供标准时间。NTP时间系统分别与上述系统实现IP网互联,提供NTP标准时间接口,供这些系统的服务器或计算机终端获取全网统一时间信息。

[1]兰少华.TCP/IP网络与协议[M].北京:清华大学出版社,2006.

[2]陆玉库.最新网络通信协议手册[M].北京:电子工业出版社,1999.

[3]范明钰,王光卫.网络安全协议理论与技术[M].北京:清华大学出版社,2009.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!