NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。
在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时间,还是按照B这台计算机的时间?NTP就是用来解决这个问题的,NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)进行时间同步,它可以提供高精准度的时间校正,而且可以使用加密确认的方式来防止病毒的协议攻击。
NTP(Network Time Protocol, 网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步,NTP基于UDP保温进行传输,使用UDP端口号为123。
使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。
对于运行NTP的本地系统,既可以接受来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以与其他设备互相同步。
NTP工作模式
设备可以采用多种NTP工作模式进行时间同步:
客户端/服务端模式
对等体模式
广播模式
组播模式
NTP原理
NTP客户端可以定时自动向NTP服务器发送请求来获取时间,NTP服务器将时间发送给客户端,。
NTP服务器的时间来源有两个
1.网络时间
2.NTP服务器自己的时间
NTP校时原理:
每一个时间包内包含最近一次的事件的时间信息、包括上次事件的发送与接收时间、传递现在事件的当地时间、及此包的接收时间。在收到上述包后即可计算出时间的偏差量与传递资料的时间延迟。时间服务器利用一个过滤演算法,及先前八个校时资料计算出时间参考值,判断后续校时包的精确性,一个相对较高的离散程度,表示一个对时资料的可信度比较低。仅从一个时间服务器获得校时信息,不能校正通讯过程所造成的时间偏差,而同时与许多时间服务器通信校时,就可利用过滤算法找出相对较可靠的时间来源,然后采用它的时间来校时。
时间信息的传输都使用UDP协议。服务端口123。
在Linux系统中,为了避免主机时间因为在长时间运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network Time Protocol)的简称,干嘛用的呢?就是通过网络协议使计算机之间的时间同步化。
相关推荐
NTP和互联网的同步在国外已经得到广泛应用。据统计99年已有将近1万4千个专用时间服务器在工作,相应的对等服务器超过18万台。使用准确的和有依据的时间不仅仅是许多工作的需要,而且正在成为企业和个人地位和身份的...
使用wireshark捕获NTP协议的pcap数据包进行分析
NTP协议,也称为网络时间协议,实现终端与网络时间的同步.RFC1305是NTP标准.相信对研究NTP有些帮助.
NTP协议规范简介分析
NTP协议的工作原理 应用 网络结构及实现模型 配置及常见故障排除
基于linux上C语言开发的NTP协议。源码及文档。
主要实现功能如下: (1)本地网络信息的获取 计算机名称、IP地址、网卡地址、...(3)采用ntp协议从internet上某个时间服务器,获取时间信息,准确地更新本地机时钟,支持手动、定时自动两种方式 能够在VS2012完美运行
NTP协议的测试工具 由于google被屏蔽 垃圾百度出来的 都是捆绑恶意软件的 所以可以使用这个软件
详细介绍了NTP及NTP协议格式,对需要了解NTP的朋友有很大帮助!
NTP协议的C语言实现程序。程序实现功能:更新本地主机时间
vs2015+qt5.8.0的开发环境,对NTP协议的网络客户端的实现。服务器用的是win7系统配成的时间服务器,单独的时间服务器经测试也可以!
rfc5905.txt rfc5906.txt rfc5907.txt rfc5908.txt ntp网络时间协议第4版.docx
NTP协议rfc1129
NTP协议pcap包,wireshark
NTP协议源码for Linux,windows下面不能直接用,要稍加修改
自己在网上找的几个demo,自己整理,拼凑终于弄出来了,能满足基本的需求,多的功能也没有。欢迎一起留言讨论,欢迎私信
在windows环境下,利用socket编程实现ntp协议(时间同步)
用于演示NTP协议进行网络校时的代码,对NTP协议进行了分析处理,提取时间信息,并校准计算机时间。
易语言源码易语言NTP协议源码.rar