
sntp是简单网络时间协议(SimpleNetworkProtocol)的简称。在linux下可用来进行修改,特别适合有对时需求,但没有时钟装置进行对时源的装置。
linux下用命令sntp-Pno-r[某授时中心域名],就能够将系统时间和授时中心的时间进行同步,当然这需要超级权限口令。
命令hwclock--systohc//或者hwclock-w可以用系统时间同步硬件时间。
一般在做了以上两步之后,即使重启系统之后,系统时间也会保留重启之前的值。但是有些系统可能还需要清除时间校正文件(rm/etc/adjtime),才能使设置的时间不会因为重启而改变。
时间校正文件/etc/adjtime中保存了一个用来估算硬件时间的偏差的校正因子,系统每次重启会根据校正因子调整硬件时间。所以要想使设置时间在重启后保留,需要删除掉时间校正文件,系统在重启后会重新创建一个新的时间校正文件。
SNTP(SimpleNetworkTimeProtocal简单网络时间协议),用于跨广域网或局域网同步时间的协议,精确度一般在几十毫秒。官方文档为RFC4330,2006年的最新版本为SNTPv4,支持IPV6。
SNTPv4是NTP(NetworkTimeProtocol网络时间协议)的简化版,精度较低,安全机制较低,但是报文格式完全一致。
SNTPv4使用的是UDP123端口,C/S模式,有单播,多播和广播三种报文发送方式。
SNTP4基于UDP网络,报文结构如下:
MAC
IP
UDP
NTP
其中NTP的报文结构如下:

字段说明:
字段
含义
长度
说明
LI
闰秒标志
2比特
见Figure2
VN
版本号
3比特
表示NTP的版本号,当前为4
Mode
模式
3比特
见Figure3,一般服务端发送的报文模式值为4
Stratum
层
1字节unsignedchar
见Figure4,对本地时钟级别的整体识别
Poll
轮询间隔
1字节无符号正数
指示数据包的最大时间间隔,以秒为单位,作为2的指数方的指数部分,取值范围从4-17,即16秒到131,072秒
Precision
精度
1字节有符号正数
指示系统时钟的精确性,以秒为单位,作为2的指数方的指数部分,取值范围从-6到-20
RootDelay
往返延迟
4字节浮点数
指示与主时钟参考源的总共往返延迟,以秒为单位,小数部分在16位以后,取值范围从负几毫秒到正几百毫秒
RootDispersion
误差
4字节浮点数
指示与主时钟参考源的误差,以秒为单位,小数部分在16位以后,取值范围从零毫秒到正几百毫秒
ReferenceIdentifier
时钟参考源
4字节ASCII字符串
见Figure5,对于二级服务器,在IPV4环境下,取值为一级服务器的IP地址,在IPV6环境下,是一级服务器的NSAP地址
ReferenceTimestamp
校准时间
8字节时间戳
见Figure6,指示系统时钟最后一次校准的时间,建议填充非重要的低阶位随机值,便于环路检测与回放检测
OriginateTimestamp
原始时间
8字节时间戳
指示客户向服务器发起请求的时间
ReceiveTimestamp
接收时间
8字节时间戳
指服务器收到客户请求的时间
TransmitTimestamp
传输时间
8字节时间戳
指示服务器向客户发时间戳的时间
Authenticator
认证
160字节可选
当需要进行SNTP认证时,该字段包含密钥和信息加密码
Figure2LI
0:无警告
1:最后一分钟是61秒;
2:最后一分钟是59秒;
3:警告(时钟没有同步)
Figure3Mode
0:保留
1:对称主动
2:对称被动
3:客户
4:服务器
5:广播
6:保留为NTP控制信息
7:保留为用户定义
Figure4Stratum
Stratum值
含义
0
kiss-o’-death(比较重要,见2.4),表示故障信息
1
一级服务器(由radioclock同步)
2-15
二级服务器(由NTP和SNTP同步)
16-255
保留
Figure5ReferenceIdentifierCodes
Code
ExternalReferenceSource
含义
LOCL
uncalibratedlocalclock
未校准的本地时钟
CESM
calibratedCesiumclock
校准铯钟
RBDM
calibratedRubidiumclock
校准铷钟
PPS
calibratedquartzclockorotherpulse-per-secondsource
校准石英钟或其他脉冲每秒源
IRIG
Inter-RangeInstrumentationGroup
跨系列仪表组
ACTS
NISTtelephonemodemservice
NIST(美国国家标准)电话调制解调器服务
USNO
USNOtelephonemodemservice
USNO(美国海军天文台)电话调制解调器服务
PTB
PTB(Germany)telephonemodemservice
PTB(德国)电话调制解调器服务
TDF
Allouis(France)Radio164kHz
Allouis(法国)无线电164kHz
DCF
Mainflingen(Germany)
Mainflingen(德国)无线电77.5kHz
MSF
Rugby(UK)Radio60kHz
Rugby(英国)无线电60kHz
WWV
(US),5,10,15,20MHz
(美国)无线电2.5、5、10、15、20MHz
WWVB
Boulder(US)Radio60kHz
博尔德(美国)无线电60kHz
WWVH
KauaiHawaii(US),5,10,15MHz
夏威夷考艾岛(美国)无线电2.5、5、10、15MHz
CHU
Ottawa(Canada)Radio3330,7335,14670kHz
渥太华(加拿大)无线电3330、7335、14670kHz
LORC
LORAN-Cradionavigationsystem
LORAN-C无线电导航系统
OMEG
OMEGAradionavigationsystem
欧米茄无线电导航系统
GPS
GlobalPositioningService
全球定位服务
12301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Seconds|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|SecondsFraction(0-padded)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Figure6NTPTimestampFormat123456789request报文
上述字段中如果是客户端发的报文,那么绝大部分是0;如果是服务端发的报文,大部分字段才有意义。
LI,Stratum,Precision,RootDelay,RootDispersion,ReferenceIdentifier,ReferenceTimestamp等都只在服务端有效。
下面是不同传输方式下的字段值示例
FieldName
Unicast/Manycast
Broadcast
Request
Reply
LI
ignore
asneeded
asneeded
VN
1-4
copiedfromrequest
4
Mode
3
4
5
Stratum
ignore
1
1
Poll
ignore
copiedfromrequest
log2pollinterval
Precision
ignore
-log2serversignificantbits
-log2serversignificantbits
significant
significant
RootDelay
ignore
0
0
RootDispersion
ignore
0
0
ReferenceIdentifier
ignore
sourceident
sourceident
ReferenceTimestamp
ignore
timeoflastsourceupdate
timeoflastsourceupdate
OriginateTimestamp
ignore
copiedfromtransmittimestamp
0
ReceiveTimestamp
ignore
timeofday
0
TransmitTimestamp
(seetext)
timeofday
timeofday
Authenticator
optional
optional
optional
图片源自网络,侵删。
版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。