NTP协议与计算
来源:互联网 发布:和服羽织淘宝 编辑:程序博客网 时间:2024/05/21 14:52
NTP:Network Time Protocol,网络时间协议,用于时间同步,它可以提供高精准度的时间校正(LAN上与标准时间差小于1毫秒,WAN上几十毫秒),且可通过加密确认的方式来防止恶意攻击。
NTP校时原理:
每一个时间包内包含最近一次的事件的时间信息、包括上次事件的发送与接收时间、传递现在事件的当地时间、及此包的接收时间。在收到上述包后即可计算出时间的偏差量与传递资料的时间延迟。时间服务器利用一个过滤演算法,及先前八个校时资料计算出时间参考值,判断后续校时包的精确性,一个相对较高的离散程度,表示一个对时资料的可信度比较低。仅从一个时间服务器获得校时信息,不能校正通讯过程所造成的时间偏差,而同时与许多时间服务器通信校时,就可利用过滤算法找出相对较可靠的时间来源,然后采用它的时间来校时。
时间信息的传输都使用UDP协议。服务端口123。
NTP协议格式
NTP packet = NTP header + Four TimeStamps = 48byteNTP header : 16byte+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| LI | VN | Mode | Stratum | Poll | Precision |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- LeapYear Indicator : 2bit Version Number : 3bitStratum : 8bitMode : 3 bit PollInterval : 8 bit Percision : 8bit| Root Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-Root delay : 32bit| Root Dispersion |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Root Dispersion : 32bit| Reference Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Reference Identifier : 32bitFour TimeStamps : 32byte+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| Reference Timestamp |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Reference Timestamp : 64bit| Originate Timestamp |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Originate Timestamp : 64bit| Receive Timestamp |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-Receive Timestamp : 64bit| Transmit Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-Transmit Timestamp : 64bit| Authenticator (optional) (96) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
64bit的时间戳:
struct ntptime { unsigned int integer; unsigned int fraction;};
前32bits表示1900年以来的秒数。后32bits用以表示秒以下的部份,是微秒数的4294.967296(=2^32/10^6)倍。
Originate Timestamp T1 客户端发送请求的时间 Receive Timestamp T2 服务器接收请求的时间 Transmit Timestamp T3 服务器答复时间 Destination Timestamp T4 客户端接收答复的时间
网络延时 d 和服务器与客户端的时差 t
d = (T2 - T1) + (T4 - T3); t = [(T2 - T1) + (T3 - T4)] / 2;
加上网络延时量的估计,理论上可以精确到到2的-32次方秒,实际使用大约只有50ms(广域网)左右,在局域网可达1ms。在实际中您应找最近而且最稳定的Server作时间源。
SNTP算是NTP的一个子集,它不像NTP可以同時和多个Server对时, 一般在Client端下使用。
阅读全文
0 0
- NTP协议与计算
- NTP 协议
- NTP 协议
- NTP协议
- NTP协议
- NTP协议
- NTP协议
- NTP协议
- Linux NTP协议
- NTP协议原理简介
- NTP协议实现
- NTP协议原理简介
- NTP协议实现
- 网络协议之NTP
- NTP网络时间协议
- NTP协议解析
- ntp协议及客户端开发
- NTP网络校时协议
- Spring Boot -- Spring Data Jpa(2)
- 上下文切换
- ansible ssh免密碼登錄
- 阿里云服务器Linux(Ubuntu系统)安装tomcat以及外网访问详解
- jQuery 遍历 中 eq() 方法
- NTP协议与计算
- 优秀网页设计
- Android SDK下载安装及配置教程
- 简单的事件分发机制
- 开源地图MapBox自定义(一):搭建环境
- codeforces 864D 莫比乌斯反演
- php学习笔记(二十三)PDO的预处理语句的查询以及结果集的使用
- sql,with as ,in的配合使用
- 第8章_图论