个人觉得的有用的文档,贴出来和大家分享
日志 [2008年07月11日]
上一篇 /
下一篇 2008-07-11 16:19:07
/ 个人分类:linux
NTP协议
2008年7月11日
16:13
NTP原理、结构与工作模式
NTP的基本原理
T1:客户方发送查询请求时间(以客户方时间系统为参照)
T2:服务器收到查询请求时间(以服务器时间系统为参照)
T3:服务器回复时间信息包时间(以服务器时间系统为参照)
T4:客户方收到时间信息包时间(以客户方时间系统为参照)

图1: NTP传输模型
δ1:请求信息在网上传播所消耗的时间
δ2:回复信息在网上传播所消耗的时间
现已知T1 、T2、T3、T4,希望求得θ以调整客户方时钟有:

(1)
假设请求和回复在网上传播的时间相同,即δ1=δ2,则可解得:

(2)
可以看到,θ、δ只与T2T1差值、T3T4差值相关,而与T2T3差值无关,即最终的结果与服务器处理请求所需的时间无关。据此,客户方A即可通过T1、T2、T3、T4计算出时差θ去调整本地时钟。
源文档 <http://www.linuxpk.com/spacecp.php?action=spaceblogs&op=add>
4. NTP
报文格式
NTP 和SNTP 是用户数据报协议( UDP) 的客户端 [POS80
],而UDP自己是网际协议( IP)
[DAR81 ] 的客户端. IP 和UDP
报头的结构在被引用的指定资料里描述,这里就不更进一步描
述了。UDP的端口是123,UDP头中的源断口和目的断口都是一样的,保留的UDP头如规范中所述。
以下是SNTP 报文格式的描述,它紧跟在IP 和UDP
报头之后。SNTP的消息格式与RFC-1305
中所描述的NTP格式是一致的,不同的地方是:
一些SNTP的数据域已被风装,也就是说已初始化为一些预定的值。NTP 消息的格式被显示如下。
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|LI | VN |Mode | Stratum | Poll | Precision |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 根延迟 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 根差量 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 参考标识符 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| 参考时间戳(64) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| 原始时间戳(64) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| 接受时间戳 (64) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| 传送时间戳(64) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| |
| 认证符(可选项) (96) |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
如下一部分描述,在SNTP 里大多数这些字段被预规定的数据给赋初值。为完整起见,每个字段
的功能在下面被简要总结。
 | 协议结构 |
| 2 | 5 | 8 | 16 | 24 | 32bit |
| LI | VN | Mode | Stratum | Poll | Precision |
| Root Delay |
| Root Dispersion |
| Reference Identifier |
| Reference timestamp (64) |
| Originate Timestamp (64) |
| Receive Timestamp (64) |
| Transmit Timestamp (64) |
| Key Identifier (optional) (32) |
| Message digest (optional) (128) |
- LI:跳跃指示器,警告在当月最后一天的最终时刻插入的迫近闺秒(闺秒)。
- VN:版本号。
- Mode:模式。该字段包括以下值:0-预留;1-对称行为;3-客户机;4-服务器;5-广播;6-NTP 控制信息
- Stratum:对本地时钟级别的整体识别。
- Poll:有符号整数表示连续信息间的最大间隔。
- Precision:有符号整数表示本地时钟精确度。
- Root Delay:有符号固定点序号表示主要参考源的总延迟,很短时间内的位15到16间的分段点。
- Root Dispersion:无符号固定点序号表示相对于主要参考源的正常差错,很短时间内的位15到16间的分段点。
- Reference Identifier:识别特殊参考源。
- Originate Timestamp:这是向服务器请求分离客户机的时间,采用64位时标(Timestamp)格式。
- Receive Timestamp:这是向服务器请求到达客户机的时间,采用64位时标(Timestamp)格式。
- Transmit Timestamp:这是向客户机答复分离服务器的时间,采用64位时标(Timestamp)格式。
- Authenticator(Optional)-当实现了 NTP 认证模式,主要标识符和信息数字域就包括已定义的信息认证代码(MAC)信息。
导入论坛
收藏
分享给好友
管理
举报
TAG: