NTP协议介绍及实现方案(服务器端和客户端)_第1页
NTP协议介绍及实现方案(服务器端和客户端)_第2页
NTP协议介绍及实现方案(服务器端和客户端)_第3页
NTP协议介绍及实现方案(服务器端和客户端)_第4页
NTP协议介绍及实现方案(服务器端和客户端)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、NTP协议介绍及实现方案1 NTP协议简介22 NTP协议实现原理22.1 NTP协议的分层结构22.2 NTP协议的对时方式32.3 NTP协议的工作模式43 NTP报文格式44 NTP实现方案74.1 服务器端实现方案84.2 客户端实现方案95 遗留问题106 参考文献101 NTP协议简介NTP(Network Time Protocol,网络时间协议)是由RFC1305定义的时间同步协议,用来在分布时间服务器和客户端之间进行时钟同步,同时也是一个因特网标准,它采用应用层同步方法将计算机时钟和UTC时间(格林尼治时间)进行同步,因此时间精度不高,一般在10ms到100ms之间。NTP协

2、议属于应用层协议,定义了协议实现过程中所使用的结构、算法、实体和协议,它是基于IP和UDP的,也可以被其它协议组使用。NTP协议时OSI参考模型的最高层协议,符合UDP传输协议格式,拥有专用端口123。NTP协议是OSI参考模型的高层协议,符合UDP传输协议格式,拥有专用端口123,在嵌入式linux系统中,采用Server/Cilent的模式来实现网络通信,客户端主动提出申请,而服务器端被动打开。又由于使用UDP套接字建立连接的好处在于,只有被该套接字指定为远程地址的计算机端口才能向该套接字发送数据,如果没有建立连接,任何IP地址和端口都能将数据发送到这个UDP套接字上。所以采用建立连接的U

3、DP套接字来传输时间信息。2 NTP协议实现原理2.1 NTP协议的分层结构NTP采用分层的方法来定义时钟的准确性,可分为从015共16个级别,级别编码越低,精确度和重要性越高。第0级设备是时间同步网络的基准时间参考源,位于同步子网络的顶端,目前普遍采用全球卫星定位系统,即由GPS播出的UTC时间代码。级别(n+1)从级别n获取时间。图1 NTP协议分层结构图子网络中的设备可以扮演多重角色,可以做客户机、服务器,也可以做对等机。比如图1中的第二层设备,对于第一层来讲是客户机,对于第三层来讲是服务器,对于第二层其它设备来讲可以是对等机。NTP协议就是通过这种网络层状结构一层一层延伸下去,为其它设

4、备提供对时服务。2.2 NTP协议的对时方式NTP协议的精确对时主要是在主从工作方式下实现的。NTP算法首先要根据服务器和客户端的往返报文来确定两地时钟的差值和报文在网络中传输的延迟。求出多组差值和延迟值之后,将误差明显很大的去掉,然后根据时钟选择算法选则合适的时延来调整客户端时钟。假设客户方A要向服务器方B请求时间服务。A首先要生成一个标准的NTP查询信息包,通过网络发送到B。B收到查询信息包后,根据自己的本地时间,生成一个标准的NTP时间信息包,通过网络发回给A。具体过程如图2所示。图2 NTP服务器和客户端对时过程 图2中,T1为客户方发送查询请求时间,T2为服务器收到查询请求的时间,T

5、3为服务器回复时间信息包的时间,T4为客户方收到时间信息包的时间。T1包含在A发到B的查询信息包中,到了B方后,B记下T2和T3的时间,并将其写到回复给A的时间信息包中。当这个包到达A时,A记录下当时的时间T4。这样,A就拥有了4个时间T1、T2、T3、T4,通过这几个值计算出A和B之间时间上的差值,用以调整客户方时钟。假设A与B之间时差值为,A和B之间用于网络传输的往返延时为,A发送至B的请求信息在网络上传播所消耗的时间为,B发送至A的回复信息在网络上传播所消耗的时间为。则有: (1)如果查询信息包和回复的时间信息包在网络上传播的时间相同,即当网络路径对称时有,则由式(1)可得: (2)时差

6、可直接由T1、T2、T3、T4四个时刻值计算得到,与往返时延无关。但实际情况中,网络路径是不对称的,时差只能由式(1)计算得到,此时就必须估计出网络传输的单程延时,影响NTP协议精度最关键的因素在于由网络延迟的随机性而导致的始终延迟计算的不准确。2.3 NTP协议的工作模式NTP协议支持三种对时方式:(1)服务器客户端模式:用户向一个或几个服务器提出服务请求,根据所交换的信息,计算两地时间偏差和网络延迟,从中选择认为最准确的时间偏差,并调整本地的时钟。(2)广播模式:此种模式适用于高速的局域网中。局域网中一个或多个服务器以固定的时间周期向某个多播地址广播自己的时标,客户端不计算时间偏差和网络延

7、迟,直接用收到的时标修正自己的时钟,忽略各种误差。该种方式的精度不高。(3)对称模式:两个以上的时间服务器互为主从,进行时间信息的通讯,相互校正对方的时间,以维持整个同步子网的时间一致性。该种方式的可靠性比较高。对称模式和服务器客户端模式两种方式比较类似,只是服务器客户端模式不给同层的时间服务器提供时间同步服务。3 NTP报文格式NTP有两种不同类型的报文,一种是时钟同步报文,另一种是控制报文。控制报文仅用于需要网络管理的场合,对于时钟同步功能来说并不是必须的。时钟同步报文封装在UDP报文中。NTP的报文格式见图3所示。图3 NTP协议时钟同步报文格式Leap Indicator(LI):2b

8、it 码,对当日发生的跳跃(闰秒)的最后一分钟发出警告,插入或者删除了一秒。VN(Version Number):3bit 的整数,表示 NTP 的版本号码,目前最新的版本是 3。Mode:3bit 整数,表示工作模式,其定义的数值如表1所示。表1 工作模式字段描述0保留1主动对称2被动对称3客户端4服务器端5广播6保留给 NTP 控制信息7保留给个人使用Stratum: 8bit 的无符号整数,值越大,层数越低,值越小,层数越高,表示级别更高的服务器。最大值为15,其数值定义如表2所示。表2 Stratum字段描述0无定义1首级时钟源215次级时钟源(通过NTP)Poll:8bit有符号整数

9、,表示相继两个消息间的最大间隔。单位为秒,以 2 的幂表示,范围在 NTP.MINPOLL 和 NTP.MAXPOLL 之间,理论上的范围为 4(16sec)-14(16284sec),大多数实际应用范围为 6(64sec)-10(1024sec)。Precision:8bit 有符号整数,用来表示本地时钟的准确性,单位为秒,以 2 的幂表示。Root delay:32bit有符号定点数,表示到主要时间源往返的时间延迟,小数点在 15 和 16bit 之间。依靠相对的频率和时间作为补偿,记录值可呈现正值和负值,范围从几毫秒到几百毫秒。(本地时钟和当前时钟源同步得到的网络延迟)。Root dis

10、persion:32bit 有符号定点数,表示相对于主要时间参考源的最大差错,小数点在 15 和 16bit 之间,只有可能出现正值,这值通常从 0 毫秒到几百毫秒。(本地时钟和当前时钟源同步得到的最大可能误差的最佳估计值)。Reference Clock Identifier:32bit 码,识别特殊的参考时间源。0 层(未具体说明)或 1 层(主要参考),这是一个 4 组 8bit、左边对齐的 0 填充 ASCII 字符串,ASCII标识符说明见表3所示。表3 ASCII标识符说明StratumCode字段含义0DCNDCN DCN路由选择协议0NISTNIST NIST公众模式0TSPT

11、SP TSP时间协议0DTSDTS 数字时间服务器1ATOMATOM 原子钟(已校准)1VLFVLF VLF无线电(OMEGA等等)1callsigncallsign 一般无线电1LORCLORC LORAN-C无线电导航1GOESGOES GPES UHF环境卫星1GPSGPS GPS UHF卫星定位Reference timestamp:本地时钟最后被设定或校正的时间,64bitOriginate timestamp:Client 对 Server 发出请求的本地时间,64bitReceive timestamp:请求到达 Server 的本地时间,64bitTransmit timest

12、amp:Server 对 Client 发出响应的本地时间,64bitAuthenticator (optional):当 NTP 认证机制被实现时,此项包含有认证信息。4 NTP实现方案图4 使用NTP协议实现对时的应用图4中,北斗/GPS双模授时机从GPS/BD卫星接收时间信号,需要校时的设备通过Internet向时间服务器发送NTP查询信息包,时间服务器接收并生成时间信息包,再通过Internet发送给校时请求方。4.1 TCP/IP通信协议选择TCP/IP协议模型与OSI参考模型一样采用了分层结构,但是它更侧重于互联设备之间的数据传输,而不是严格的功能层次划分。该模型称为DARPA,时

13、根据最初开发TCP/IP的美国政府机构的名称命名的。DARPA模型共分4层,见图5所示。(1)数据链路层:数据链路层管理网络的连接并提供网络上的报文输入输出。它主要包括ARP地址解析协议和RARP逆地址解析协议,以太网接口芯片及其驱动程序。(2)网络层:网络层处理报文的路由管理,根据接收报文的信息决定报文的去向。它包含了TCPIP协议族里的IP协议、ICMP协议、IGMP协议。(3)传输层:传输层的作用是管理源和目的之间的报文传输。这一层包含了两个协议。一个是有连接的TCP协议,一个是无连接的UDP协议。(4)应用层:应用层包括一些服务,这些服务是和用户相关的认证、数据处理、压缩等等。它主要包

14、括FTP协议、SMTP协议、SNMP协议、Telnet协议等等。图5 TCP/IP协议参考模型TCP/IP参考模型共有4层:应用层、传输层、网络层和链路层。与OSI参考模型相比,TCP/IP参考模型没有表示层和会话层。链路层相当于OSI模型中的物理层和数据链路层。NTP协议中接收和发送数据量较小、可靠性要求也不是很高,所以NTP协议包的传输采用可靠性要求不高的UDP报文,系统只需要实现TCP/IP协议的一个子集。相应的协议处理流程见图6所示。网络层实现ARP、IP、ICMP协议。ARP协议主要完成网络地址(IP地址)与以太网物理地址的转换,包括ARP请求和应答。IP协议是TCP/IP协议族中最

15、核心的协议,所有的TCP、UDP、ICMP及IGMP数据都以IP数据报文格式传输,NTP协议是UDP协议的子集,NTP报文是以UDP数据报文格式传输的。ICMP协议负责对IP包的失败发送进行诊断并报告错误。在传输层实现UDP协议。UDP协议是无连接的传输层协议,与TCP协议相比,使用该协议传输数据时通信双方无需事先建立连接,因而实现起来比较简单、传输速度也比较快,特别适合网络时间同步服务。使用 UDP 协议可以减轻系统的负担,使服务器能够应付多客户端重复请求对时的状况,保证时间同步服务的响应速度和的精度。UDP 数据字段包含 NTP 报文的全部内容。应用层接收经过UDP协议解析的NTP报文,根

16、据NTP协议拆开报文,并计算时间同步所需要数据。图6 TCP/IP协议处理流程4.2 服务器端实现方案NTP接口包括客户端和服务器端软件,这两部分是相互独立,互不影响。对于服务器端,设备要求能接收NTP查询数据包,按NTP协议规范,从本地时间产生NTP信息数据包并发回给查询方。服务器方的总体设计方案见图7所示。图7 服务器方总体设计方案该系统主要由3部分组成:GPS/BD时钟源部分、单片机数据处理部分和网络接口部分。GPS/BD时钟源提供与UTC时间同步的1PPS脉冲和10KHz时钟输出。RS-232串口输出UTC时间,精确到秒。CPLD实现一个14位计数器和一个锁存器,接收机每一次1PPS信号清空计数器,然后计数器开始计数10KHz脉冲个数,当单片机需要取用时间时,给锁存器一个中断,锁存器锁存计数器计数个数,然后送给单片机,作为当前时刻秒以下的时间。单片机从串口接收秒以上的UTC时间,从锁存器接收精度在ms级的UTC时间,两处接收的时间组合成NTP报文需要的64bit二进制时间。网络接口芯片实现报文的网络传输。服务器方的软件设计方案见图8所示。图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论