`
michales003
  • 浏览: 403353 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

NTP技术原理介绍

 
阅读更多

http://blog.csdn.net/gl1987807/article/details/7547708

 

 

NTP

简介

NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。

使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。

对于运行NTP的本地系统,既可以接受来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。

NTP的应用

对于网络中的各台设备来说,如果依靠管理员手工输入命令来修改系统时钟是不可能的,不但工作量巨大,而且也不能保证时钟的精确性。通过NTP,可以很快将网络中设备的时钟同步,同时也能保证很高的精度。

NTP主要应用于需要网络中所有设备时钟保持一致的场合,比如:

l              在网络管理中,对于从不同设备采集来的日志信息、调试信息进行分析的时候,需要以时间作为参照依据。

l              计费系统要求所有设备的时钟保持一致。

l              完成某些功能,如定时重启网络中的所有设备,此时要求所有设备的时钟保持一致。

l              多个系统协同处理同一个比较复杂的事件时,为保证正确的执行顺序,多个系统必须参考同一时钟。

l              在备份服务器和客户端之间进行增量备份时,要求备份服务器和所有客户端之间的时钟同步。

NTP的优势如下:

l              采用分层的方法定义时钟的准确性,可以迅速同步网络中各台设备的时间。

l              支持访问控制和MD5验证。

l              可以选择采用单播、组播或广播的方式发送协议报文。

NTP工作原理

NTP的基本工作原理如图1所示。Device A和Device B通过网络相连,它们都有自己独立的系统时钟,需要通过NTP实现各自系统时钟的自动同步。为便于理解,作如下假设:

l              在Device A和Device B的系统时钟同步之前,Device A的时钟设定为10:00:00am,Device B的时钟设定为11:00:00am。

l              Device B作为NTP时间服务器,即Device A将使自己的时钟与Device B的时钟同步。

l              NTP报文在Device A和Device B之间单向传输所需要的时间为1秒。

图1 NTP基本原理图

系统时钟同步的工作过程如下:

l              Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为10:00:00am(T1)。

l              当此NTP报文到达Device B时,Device B加上自己的时间戳,该时间戳为11:00:01am(T2)。

l              当此NTP报文离开Device B时,Device B再加上自己的时间戳,该时间戳为11:00:02am(T3)。

l              当Device A接收到该响应报文时,Device A的本地时间为10:00:03am(T4)。

至此,Device A已经拥有足够的信息来计算两个重要的参数:

l              NTP报文的往返时延Delay=(T4-T1)-(T3-T2)=2秒。

l              Device A相对Device B的时间差offset=((T2-T1)+(T3-T4))/2=1小时。

这样,Device A就能够根据这些信息来设定自己的时钟,使之与Device B的时钟同步。

以上内容只是对NTP工作原理的一个粗略描述,详细内容请参阅RFC 1305。

NTP的报文格式

NTP有两种不同类型的报文,一种是时钟同步报文,另一种是控制报文。控制报文仅用于需要网络管理的场合,它对于时钟同步功能来说并不是必需的,这里不做介绍。

&  说明:

本文中提到的NTP报文,均为NTP时钟同步报文。

 

时钟同步报文封装在UDP报文中,其格式如图2所示。

图2 时钟同步报文格式

主要字段的解释如下:

l              LI(Leap Indicator):长度为2比特,值为“11”时表示告警状态,时钟未被同步。为其他值时NTP本身不做处理。

l              VN(Version Number):长度为3比特,表示NTP的版本号,目前的最新版本为3。

l              Mode:长度为3比特,表示NTP的工作模式。不同的值所表示的含义分别是:0未定义、1表示主动对等体模式、2表示被动对等体模式、3表示客户模式、4表示服务器模式、5表示广播模式或组播模式、6表示此报文为NTP控制报文、7预留给内部使用。

l              Stratum:系统时钟的层数,取值范围为1~16,它定义了时钟的准确度。层数为1的时钟准确度最高,准确度从1到16依次递减,层数为16的时钟处于未同步状态,不能作为参考时钟。

l              Poll:轮询时间,即两个连续NTP报文之间的时间间隔。

l              Precision:系统时钟的精度。

l              Root Delay:本地到主参考时钟源的往返时间。

l              Root Dispersion:系统时钟相对于主参考时钟的最大误差。

l              Reference Identifier:参考时钟源的标识。

l              Reference Timestamp:系统时钟最后一次被设定或更新的时间。

l              Originate Timestamp:NTP请求报文离开发送端时发送端的本地时间。

l              Receive Timestamp:NTP请求报文到达接收端时接收端的本地时间。

l              Transmit Timestamp:应答报文离开应答者时应答者的本地时间。

l              Authenticator:验证信息。

NTP的工作模式

设备可以采用多种NTP工作模式进行时间同步:

l              客户端/服务器模式

l              对等体模式

l              广播模式

l              组播模式

用户可以根据需要选择合适的工作模式。在不能确定服务器或对等体IP地址、网络中需要同步的设备很多等情况下,可以通过广播或组播模式实现时钟同步;服务器和对等体模式中,设备从指定的服务器或对等体获得时钟同步,增加了时钟的可靠性。

1. 客户端/服务器模式

图3 客户端/服务器模式

在客户端/服务器模式中,客户端向服务器发送时钟同步报文,报文中的Mode字段设置为3(客户模式)。服务器端收到报文后会自动工作在服务器模式,并发送应答报文,报文中的Mode字段设置为4(服务器模式)。客户端收到应答报文后,进行时钟过滤和选择,并同步到优选的服务器。

在该模式下,客户端能同步到服务器,而服务器无法同步到客户端。

2. 对等体模式

图4 对等体模式

在对等体模式中,主动对等体和被动对等体之间首先交互Mode字段为3(客户端模式)和4(服务器模式)的NTP报文。之后,主动对等体向被动对等体发送时钟同步报文,报文中的Mode字段设置为1(主动对等体),被动对等体收到报文后自动工作在被动对等体模式,并发送应答报文,报文中的Mode字段设置为2(被动对等体)。经过报文的交互,对等体模式建立起来。主动对等体和被动对等体可以互相同步。如果双方的时钟都已经同步,则以层数小的时钟为准。

3. 广播模式

图5 广播模式

在广播模式中,服务器端周期性地向广播地址255.255.255.255发送时钟同步报文,报文中的Mode字段设置为5(广播模式)。客户端侦听来自服务器的广播报文。当客户端接收到第一个广播报文后,客户端与服务器交互Mode字段为3(客户模式)和4(服务器模式)的NTP报文,以获得客户端与服务器间的网络延迟。之后,客户端就进入广播客户端模式,继续侦听广播报文的到来,根据到来的广播报文对系统时钟进行同步。

4. 组播模式

图6 组播模式

在组播模式中,服务器端周期性地向组播地址发送时钟同步报文,报文中的Mode字段设置为5(组播模式)。客户端侦听来自服务器的组播报文。当客户端接收到第一个组播报文后,客户端与服务器交互Mode字段为3(客户模式)和4(服务器模式)的NTP报文,以获得客户端与服务器间的网络延迟。之后,客户端就进入组播客户模式,继续侦听组播报文的到来,根据到来的组播报文对系统时钟进行同步。

NTP多实例

客户端/服务器模式和对等体模式支持NTP多实例,可以实现MPLS VPN网络的时间同步,即物理位置不同的网络设备(CE、PE),只要属于同一个VPN,就可以通过NTP来获得时间同步。具体功能如下:

l              CE上的NTP客户端可以同步到另一个CE上的NTP服务器;

l              CE上的NTP客户端可以同步到PE上的NTP服务器;

l              PE上的NTP客户端可以通过指定的VPN实例同步到CE上的NTP服务器;

l              PE上的NTP客户端可以通过指定的VPN实例同步到另一个PE上的NTP服务器;

l              PE上的NTP服务器可以同步不同VPN内多个CE上的NTP客户端。

&  说明:

l      CE(Customer Edge)设备:用户网络边缘设备,有接口直接与服务提供商(Service Provider,SP)相连。CE“感知”不到VPN的存在。

l      PE(Provider Edge)设备:服务提供商网络的边缘设备,与用户的CE直接相连。

 

分享到:
评论

相关推荐

    NTP技术介绍_协议原理简介

    ### NTP技术介绍 #### NTP简介 NTP(Network Time Protocol,网络时间协议)是一种由RFC 1305定义的时间同步协议,主要用于在分布式时间服务器和客户端之间进行时间同步。NTP的设计目的是为了确保网络中所有具有...

    NTP服务器及NTP客户端配置原理及实例

    NTP 服务器及 NTP 客户端配置原理及实例是实现分布式时间服务器和客户端之间的时间同步的重要技术。NTP 协议可以提高网络系统的安全性和可靠性,可以解决时钟漂移和时钟偏移的问题,提高网络系统的时钟精度。

    IPv4与IPv6业务-NTP技术介绍.pdf

    "NTP技术介绍" NTP(Network Time Protocol,网络时间协议)是由 RFC 1305 定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP 基于 UDP 报文进行传输,使用的 UDP 端口号为 123。 NTP 的...

    NTP服务器及NTP客户端配置原理及实例.doc

    NTP 服务器及 NTP 客户端配置原理及实例是非常重要的网络技术,能够确保计算机时间的准确性和同步性。在这个文档中,我们详细介绍了 NTP 服务器及 NTP 客户端的配置原理及实例,包括 NTP 概述、NTP 时间同步原理、...

    ntp.rar_NTP C++_ntp_ntp网络对时_visual c_网络对时

    理解并掌握NTP协议的工作原理,以及如何在C++中实现和应用,对于进行时间同步相关的软件开发具有重要意义。通过分析和学习"ntp.cpp"文件,你可以深入了解NTP协议的细节,并将这一功能整合到你的项目中。

    NTP时间同步技术详解.doc

    "NTP时间同步技术详解" NTP(Network Time Protocol)是一种用于同步计算机时钟的协议,旨在确保网络中的所有设备具有精准的时钟同步。下面将对NTP的基本原理、网络结构、工作模式进行详细的解释。 一、NTP基本...

    IPv4与IPv6业务-NTP技术介绍-D.docx

    ### 知识点生成 #### 一、NTP(Network Time Protocol)概述 ...通过深入理解其工作原理和技术特性,可以更好地部署和维护NTP服务,确保网络内设备间时间的一致性,进而提升整个系统的可靠性和效率。

    NTP技术文章三篇.rar

    NTP(Network Time Protocol,网络时间协议)...通过学习NTP工作原理、Linux编程实践以及相关资源,初学者可以逐步掌握这个重要的时间同步技术。在实践中,不断探索和应用这些知识,将有助于提升你在IT领域的专业技能。

    NTP协议原理[定义].pdf

    NTP协议,全称为网络时间协议(Network Time Protocol),是一种在网络环境中实现精确时间同步的协议。SNTP,即简单网络时间协议(Simple Network Time Protocol),是NTP的一个简化版本,适用于那些对时间精度要求...

    NTP时间同步客户端程序C#源码

    NTP工作原理: 1. 客户端向NTP服务器发送一个包含当前时间戳的请求。 2. NTP服务器接收到请求后,返回其本地时间戳,同时包含从接收到发送之间的时间差。 3. 客户端接收到响应后,计算出服务器时间与本地时间的差异...

    NTP 授时资料

    NTP(Network Time Protocol,网络...总结,NTP协议是保持网络系统时间同步的关键技术,涉及到从时间服务器的选择、配置、安全到应用的各个方面。理解并熟练掌握NTP的知识,对于维护高效、安全的网络环境具有重要意义。

    基于Qt的Ntp校时实例程序源码

    综上所述,基于Qt的NTP校时实例程序涉及了网络编程、NTP协议、时间同步等多个方面,是学习Qt网络功能和理解时间同步原理的良好实践案例。通过深入理解并实践这个程序,开发者可以提升自己在Qt应用开发和网络通信技术...

    ntp网络时间协议第4版

    2. **RFC5906:NTPv4的安全性**:此文档关注NTP的安全特性,探讨如何防止欺骗攻击和篡改时间戳,介绍使用密钥交换和加密来保护NTP通信的完整性。它还涵盖了NTPv4中的认证选项,如使用MD5或SHA-1进行消息摘要认证。 ...

    ntp-4.2.8p15.tar.gz

    本文将深入探讨NTP服务,并以“ntp-4.2.8p15”这个版本为例,详细介绍NTP的工作原理、安装过程以及配置方法。 NTP是一种用于同步网络中各个计算机时钟的协议,旨在确保计算机的时间精确到毫秒级别。在“ntp-4.2.8...

    ntp_client.zip_linux NTP_linux ntp client_ntp 实现_ntp报文格式

    `ntp技术文档.docx`可能包含了更详细的NTP协议规范、实现细节以及使用libntp库的示例代码,对于深入理解和实现NTP客户端很有帮助。在实际应用中,客户端还需要处理网络异常、重试机制、安全性和性能优化等问题。 ...

    ntp源码包含服务器端和客户端

    综上所述,这个压缩包提供的NTP源码是一个宝贵的资源,无论是对于学习NTP协议的工作原理,还是进行自定义的网络时间同步解决方案开发,都有着重要的价值。通过理解和研究这些源码,开发者可以更好地掌握网络时间同步...

    迷你NTP更新时间命令行程序(含源程序)

    这里的[serverdomain]是指NTP服务器的域名,如果不指定,程序将默认使用"time.nist.gov",这是由美国国家标准与技术研究所维护的一个公共NTP服务器。 源程序分析: 源代码文件ntp.c包含了实现NTP同步功能的主要逻辑...

    NTP协议规范简介分析

    NTP(Network Time Protocol,网络时间协议)是互联网上用于同步计算机时钟的一种协议,它由美国麻省理工学院的David L....理解NTP的工作原理和配置方法,对于任何IT专业人员来说都是必不可少的知识。

    ntp-4.1.71.tar

    本文将深入探讨“ntp-4.1.71.tar”这个压缩包中的源代码,带领读者了解NTP的工作原理、关键组件及其实现细节。 NTP是一种互联网协议,其目标是使计算机时钟保持同步,确保网络上的设备具有准确的协调世界时间(UTC...

    ntp time server monitor 1.04

    NTP采用了一种称为"时间戳"的技术,可以精确到微秒级别,极大地提高了时间同步的精度。 在使用“ntp time server monitor 1.04”时,用户可以直观地查看服务器的同步状态,包括服务器的响应时间、偏差、漂移率等...

Global site tag (gtag.js) - Google Analytics