百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术流 > 正文

简单网络时间协议 (SNTP)的应用

citgpt 2024-10-02 13:22 6 浏览 0 评论


使用简介

sntp是简单网络时间协议(Simple Network Protocol)的简称。在linux下可用来进行修改,特别适合有对时需求,但没有时钟装置进行对时源的装置。

简单网络时间协议 (SNTP)的应用

linux下用命令sntp -P no -r [某授时中心域名] ,就能够将系统时间和授时中心的时间进行同步,当然这需要超级权限口令。

命令 hwclock --systohc //或者 hwclock -w 可以用系统时间同步硬件时间。

一般在做了以上两步之后,即使重启系统之后,系统时间也会保留重启之前的值。但是有些系统可能还需要清除时间校正文件(rm /etc/adjtime),才能使设置的时间不会因为重启而改变。

时间校正文件/etc/adjtime中保存了一个用来估算硬件时间的偏差的校正因子,系统每次重启会根据校正因子调整硬件时间。所以要想使设置时间在重启后保留,需要删除掉时间校正文件,系统在重启后会重新创建一个新的时间校正文件。

协议SNTP V4介绍

SNTP(Simple Network Time Protocal简单网络时间协议),用于跨广域网或局域网同步时间的协议,精确度一般在几十毫秒。官方文档为RFC 4330,2006年的最新版本为SNTPv4,支持IPV6。

SNTPv4是NTP(Network Time Protocol网络时间协议)的简化版,精度较低,安全机制较低,但是报文格式完全一致。

SNTPv4使用的是UDP 123端口,C/S模式,有单播,多播和广播三种报文发送方式。

报文结构

SNTP4基于UDP网络,报文结构如下:

MAC

IP

UDP

NTP

其中NTP的报文结构如下:

字段说明:

字段

含义

长度

说明

LI

闰秒标志

2比特

见Figure 2

VN

版本号

3比特

表示NTP的版本号,当前为4

Mode

模式

3比特

见Figure 3,一般服务端发送的报文模式值为4

Stratum

1字节unsigned char

见Figure 4,对本地时钟级别的整体识别

Poll

轮询间隔

1字节无符号正数

指示数据包的最大时间间隔,以秒为单位,作为2的指数方的指数部分,取值范围从4-17,即16秒到131,072秒

Precision

精度

1字节有符号正数

指示系统时钟的精确性,以秒为单位,作为2的指数方的指数部分,取值范围从-6到-20

Root Delay

往返延迟

4字节浮点数

指示与主时钟参考源的总共往返延迟,以秒为单位,小数部分在16位以后,取值范围从负几毫秒到正几百毫秒

Root Dispersion

误差

4字节浮点数

指示与主时钟参考源的误差,以秒为单位,小数部分在16位以后,取值范围从零毫秒到正几百毫秒

Reference Identifier

时钟参考源

4字节ASCII字符串

见Figure 5 ,对于二级服务器,在IPV4环境下,取值为一级服务器的IP地址,在IPV6环境下,是一级服务器的NSAP地址

Reference Timestamp

校准时间

8字节时间戳

见Figure 6,指示系统时钟最后一次校准的时间,建议填充非重要的低阶位随机值,便于环路检测与回放检测

Originate Timestamp

原始时间

8字节时间戳

指示客户向服务器发起请求的时间

Receive Timestamp

接收时间

8字节时间戳

指服务器收到客户请求的时间

Transmit Timestamp

传输时间

8字节时间戳

指示服务器向客户发时间戳的时间

Authenticator

认证

160字节可选

当需要进行SNTP认证时,该字段包含密钥和信息加密码

Figure 2 LI

0:无警告

1:最后一分钟是61秒;

2:最后一分钟是59秒;

3:警告(时钟没有同步)

Figure 3 Mode

0:保留

1:对称主动

2:对称被动

3:客户

4:服务器

5:广播

6:保留为NTP控制信息

7:保留为用户定义

Figure 4 Stratum

Stratum值

含义

0

kiss-o’-death(比较重要,见2.4),表示故障信息

1

一级服务器(由radio clock同步)

2-15

二级服务器(由NTP和SNTP同步)

16-255

保留

Figure 5 Reference Identifier Codes

Code

External Reference Source

含义

LOCL

uncalibrated local clock

未校准的本地时钟

CESM

calibrated Cesium clock

校准铯钟

RBDM

calibrated Rubidium clock

校准铷钟

PPS

calibrated quartz clock or other pulse-per-second source

校准石英钟或其他脉冲每秒源

IRIG

Inter-Range Instrumentation Group

跨系列仪表组

ACTS

NIST telephone modem service

NIST(美国国家标准)电话调制解调器服务

USNO

USNO telephone modem service

USNO(美国海军天文台)电话调制解调器服务

PTB

PTB (Germany) telephone modem service

PTB(德国)电话调制解调器服务

TDF

Allouis (France) Radio 164 kHz

Allouis(法国)无线电 164 kHz

DCF

Mainflingen (Germany) Radio 77.5 kHz

Mainflingen(德国)无线电 77.5 kHz

MSF

Rugby (UK) Radio 60 kHz

Rugby(英国)无线电 60 kHz

WWV

Ft. Collins (US) Radio 2.5, 5, 10, 15, 20 MHz

Ft. Collins(美国)无线电 2.5、5、10、15、20 MHz

WWVB

Boulder (US) Radio 60 kHz

博尔德(美国)无线电 60 kHz

WWVH

Kauai Hawaii (US) Radio 2.5, 5, 10, 15 MHz

夏威夷考艾岛(美国)无线电 2.5、5、10、15 MHz

CHU

Ottawa (Canada) Radio 3330, 7335, 14670 kHz

渥太华(加拿大)无线电 3330、7335、14670 kHz

LORC

LORAN-C radionavigation system

LORAN-C无线电导航系统

OMEG

OMEGA radionavigation system

欧米茄无线电导航系统

GPS

Global Positioning Service

全球定位服务

                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Seconds                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                  Seconds Fraction (0-padded)                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      
                     Figure 6  NTP Timestamp Format
123456789

request报文

上述字段中如果是客户端发的报文,那么绝大部分是0;如果是服务端发的报文,大部分字段才有意义。

LI,Stratum, Precision, Root Delay, Root Dispersion, Reference Identifier, Reference Timestamp 等都只在服务端有效。

下面是不同传输方式下的字段值示例

Field Name

Unicast/Manycast


Broadcast


Request

Reply


LI

ignore

as needed

as needed

VN

1-4

copied from request

4

Mode

3

4

5

Stratum

ignore

1

1

Poll

ignore

copied from request

log2 poll interval

Precision

ignore

-log2 server significant bits

-log2 server significant bits

significant

significant



Root Delay

ignore

0

0

Root Dispersion

ignore

0

0

Reference Identifier

ignore

source ident

source ident

Reference Timestamp

ignore

time of last source update

time of last source update

Originate Timestamp

ignore

copied from transmit timestamp

0

Receive Timestamp

ignore

time of day

0

Transmit Timestamp

(see text)

time of day

time of day

Authenticator

optional

optional

optional

图片源自网络,侵删。

创作不易,麻烦点赞+关注。

相关推荐

js中arguments详解

一、简介了解arguments这个对象之前先来认识一下javascript的一些功能:其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载。Javascrip中每个函数...

firewall-cmd 常用命令

目录firewalldzone说明firewallzone内容说明firewall-cmd常用参数firewall-cmd常用命令常用命令 回到顶部firewalldzone...

epel-release 是什么

EPEL-release(ExtraPackagesforEnterpriseLinux)是一个软件仓库,它为企业级Linux发行版(如CentOS、RHEL等)提供额外的软件包。以下是关于E...

FullGC详解  什么是 JVM 的 GC
FullGC详解 什么是 JVM 的 GC

前言:背景:一、什么是JVM的GC?JVM(JavaVirtualMachine)。JVM是Java程序的虚拟机,是一种实现Java语言的解...

2024-10-26 08:50 citgpt

使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
跨域(CrossOrigin)

1.介绍  1)跨域问题:跨域问题是在网络中,当一个网络的运行脚本(通常时JavaScript)试图访问另一个网络的资源时,如果这两个网络的端口、协议和域名不一致时就会出现跨域问题。    通俗讲...

微服务架构和分布式架构的区别

1、含义不同微服务架构:微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并...

深入理解与应用CSS clip-path 属性
深入理解与应用CSS clip-path 属性

clip-pathclip-path是什么clip-path 是一个CSS属性,允许开发者创建一个剪切区域,从而决定元素的哪些部分可见,哪些部分会被隐...

2024-10-25 11:51 citgpt

HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
Request.ServerVariables 大全

Request.ServerVariables("Url")返回服务器地址Request.ServerVariables("Path_Info")客户端提供的路...

python操作Kafka

目录一、python操作kafka1.python使用kafka生产者2.python使用kafka消费者3.使用docker中的kafka二、python操作kafka细...

Runtime.getRuntime().exec详解

Runtime.getRuntime().exec详解概述Runtime.getRuntime().exec用于调用外部可执行程序或系统命令,并重定向外部程序的标准输入、标准输出和标准错误到缓冲池。...

promise.all详解 promise.all是干什么的
promise.all详解 promise.all是干什么的

promise.all详解promise.all中所有的请求成功了,走.then(),在.then()中能得到一个数组,数组中是每个请求resolve抛出的结果...

2024-10-24 16:21 citgpt

Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解

取消回复欢迎 发表评论: