sntp协议简介

article/2025/8/22 0:52:55

SNTP(Simple Network Time Protocal简单网络时间协议),用于跨广域网或局域网同步时间的协议,具有较高的精确度(几十毫秒)。SNTP是NTP协议的简化版,两者分别在RFC1305和RFC2030介绍。

 

SNTP工作方式

SNTP采用客户端/服务器的工作方式,可以采用单播或者广播的模式。

单播即客户端定期直接与SNTP服务器交互获取时间差进行校时。


广播则是SNTP服务器定期向指定的多播地址发送时间信息,SNTP客户端通过监听这些多播地址来获取时间信息进行同步。UNIX网络编程中有SNTP广播方式的部分实现代码。


SNTP校时原理

SNTP协议主要是通过记录客户端向服务器发送数据包时的时间戳t1,服务器端接收到该数据包时的时间戳t2,服务器向客户端回应时的时间戳t3和最后客户端接收到服务器回应时的时间戳t4来计算客户端时间和服务器端时间的偏差,从而进行校时操作,如下图所示。


则t1与t2之间的时间差为((T2-T1)+ (T3-T4))/2

数据包在网络上的传播时间是 (T2-T1) + (T4-T3)


知识点

1、NTP时间戳从1900年开始记秒数,而UNIX时间戳从1970年开始记秒数,即记录到NTP结构体中的时间要加上JAN_1970(1900到1970共70年的秒数),而从起获取出来需减掉JAN_1970

 

2、

/* Offset between struct timeval.tv_sec anda tai64_t */
#define     NTPLEAPS_OFFSET  (4611686018427387914ULL)/* Hide this ugly value from programmes */
#define     SEC_TO_TAI64(s)     (NTPLEAPS_OFFSET + (u_int64_t)(s))
#define     TAI64_TO_SEC(t)     ((t) - NTPLEAPS_OFFSET)

对于这部分我还没搞清楚,如有明白的麻烦跟我讲解下,如NTPLEAPS_OFFSET是怎么来的?

为啥要做这样的转换?

 

校时操作

获取时间差后就是进行本地校时操作。Linux系统分系统时间和RTC时间,如果只修改了系统时间,那么设备重启后并不时校时后正常运行的时间。如果修改了RTC时间,则重启后是校时后正常运行的时间。这两者的区别如下所述。

RTC(Real Time Clock)时间有一套独立的计时系统,是设备上由电池供电的硬件时钟。和设备状态无关,即使设备关机,RTC时间仍然在运行,是设备的标准时间,无夏令时和冬令时的区分,只有设置时间的时候才能修改,为UTC时间。

系统时间(System Clock),即设备当前时间,使用操作系统自带的晶振进行计时,在设备关机的时候将会清空,设备重启时会获取设备RTC时间来重新设置系统时间,之后独立于RTC时间运行。有夏令时,在没有开启夏令时的情况下,和设备RTC时间基本同步。

设备存在系统时间和RTC时间好处如只想临时修改下当前时间,则只需要修改下系统时间即可,过后想修改回原有时间,则只需同步下RTC时间便可。


http://chatgpt.dhexx.cn/article/XWKHyUR6.shtml

相关文章

关于马尔可夫过程的一些学习笔记

①马尔可夫性质:已知“现在”的情况下,“未来”与“过去”彼此独立(N1仅与N有关,与N以前的所有都无关) ②马尔可夫过程:具有马尔可夫性质的随机过程 ③马尔可夫链:马尔可夫过程的原始模型&…

来聊聊马尔可夫过程

相信你对马尔科夫这个词一定不陌生,因为在人工智能机器学习领域,这个词是避不开的,如马尔可夫链(Markov chain),马尔科夫随机场(Markov random field),马尔可夫过程(Markov process),隐马尔可夫…

【算法学习】马尔可夫过程及经典例题讲解(含代码实现)

公众号关注 52DATA ,获得更多数据分析知识,感谢支持—> 文章目录 马尔可夫过程1. 马尔可夫性2. 马尔可夫链2.1 转移概率矩阵(随机矩阵)2.2 状态概率2.3 平稳分布 3.一个很经典的例题帮助理解马尔科夫预测方法1.求状态转移概率2.运用状态概…

数学基础(8)-- 马尔可夫链与马尔可夫过程

目录 1. 简介 1.1 定义 1.2 变种 2. 瞬态演变 3. 马尔科夫链性质 3.1 可还原性 3.2 周期性 3.3 重现性 4. 有限状态空间 1. 简介 马尔可夫链(英语:Markov chain),又称离散时间马可夫链(discrete-time Markov…

部分可观测马尔可夫过程POMDP

POMDP与MDP的一句话区别:POMDP的state具有不确定性,由七元数组定义,多了观测空间、观测函数、初始置信(belief),根据观测概率矩阵求出最可能是的状态 利用值迭代法解决POMDP问题 MDP POMDP 状态→动作 信…

马尔可夫 java_马尔可夫过程(以马尔科夫链Markov为例)

马尔可夫过程(以马尔科夫链Markov为例) 马尔可夫过程 马尔可夫过程的大概意思就是未来只与现在有关,与过去无关。 简单理解就是渣男只在乎下一刻会不会爱你只取决于这一时刻对你的新鲜感,而与你之前对这段感情的付出毫无关系。 设有一个随机过程X(t)&…

马尔可夫决策过程

马尔可夫决策过程 一、马尔科夫决策过程:**马尔科夫决策过程****最优决策**值迭代策略迭代MDP中的参数估计 二、代码实战:A、马尔可夫决策过程值迭代B、马尔可夫决策过程策略迭代C、马尔可夫决策过程动态规划版 参考文章 本文介绍了马尔可夫决策过程&…

随机过程第2讲——马尔可夫过程的应用

温习:随机过程第1讲——泊松过程的模拟与检验:https://blog.csdn.net/ChenQihome9/article/details/82871332 去得也突然——不知在什么时候,雨,悄悄地停了。风也屏住了呼吸,山中一下变得非常幽静。远处,一…

强化学习(2): 马尔可夫过程

前言 本文重点介绍MDP,因为MDP是目前最适合表征强化学习问题的模型。 一个具体的赌徒例子,来说明强化学习的算法如何与MDP构建联系,并且求解出最优策略。链接如下:link 一、马尔可夫性 其假设未来的状态仅取决与当前的状态。过…

贝叶斯网络、马尔可夫模型、马尔可夫过程、马尔可夫链、马尔可夫网络基本概念

知识储备与简要概括 可数集【Countable set】: 是指每个元素都能与自然数集N的每个元素之间能建立一一对应的集合。如果将可数集的每个元素标上与它对应的那个自然数记号,那么可数集的元素就可以按自然数的顺序排成一个无穷序列a1,a2&#…

强化学习笔记:马尔可夫过程 马尔可夫奖励过程

1 马尔可夫性质 (Markov Property) 我们设状态的历史为(包含了之前的所有状态) 如果一个状态转移是符合马尔可夫性质的,也就是满足如下条件: 也就是说,从当前状态转移到状态的概率,就…

马尔可夫性质、马尔可夫链和马尔可夫过程

关注:灰质,有趣有料的AI技术分享 前言 研究决策问题就一定听说过马尔可夫过程(Markov Process),这是一类非常重要的方法。现在非常热门的强化学习都是基于马尔可夫过程方法建立的。马尔可夫决策过程是研究随机序贯决策…

1.3 马尔可夫过程

之前介绍的奖励、智能体、动作、观察和环境可以看成RL的一级概念。以此为基础,我们将探索RL的二级概念,包括状态(state)、事件(episode)、历史(history)、价值(value&…

一文看懂马尔科夫过程

1.马尔科夫决策过程(MDPs)简介 马尔科夫决策过程是对强化学习(RL)问题的数学描述。几乎所有的RL问题都能通过MDPs来描述: 最优控制问题可以用MDPs来描述;部分观测环境可以转化成POMDPs;赌博机问题是只有一个状态的MDPs;注:虽然大部分DL问题都能转化为MDPs,但是以下所描述…

马尔可夫Markov决策过程 MDP、马尔可夫奖励过程MRP

引言 在概率论及统计学中,马尔可夫过程(英语:Markov process)是一个具备了马尔可夫性质的随机过程,因为俄国数学家安德雷马尔可夫得名。马尔可夫过程是不具备记忆特质的(memorylessness)。换言…

零基础学习python数据分析,需要掌握哪些技能?

对于刚刚入行的小白同学来说,在学习python的过程中,一定会遇到一些疑问。比如说: 学习Python需要多久? 学习Python需要达到什么样的程度? 学Python的书籍有哪些? 为了处理数据集,我需要精通…

Python数据分析期末复习归纳

python数据分析期末复习归纳(更新中) 文章目录 python数据分析期末复习归纳(更新中)前言一、python语言基础二、内建数据结构、函数、文件(重点)元组列表内建序列函数字典函数 三、Numpy基础(重…

Python数据分析师特训营84节

刚看完了小破站的一个数据分析的课程: “2020年Python数据分析师特训营全套84节视频完结版(就业向/零基础友好)” 趁着热乎劲儿,想记录一下课程讲到的关于python的基础知识,还有numpy、pandas、matplotlib(数据分析三大利器)工具…

Python数据分析:混淆矩阵

【小白从小学Python、C、Java】 【Python全国计算机等级考试】 【Python数据分析考试必会题】 ● 标题与摘要 Python数据分析 混淆矩阵 ● 选择题 以下关于混淆矩阵说法错误的是: A TP是被正确分类的正例个数 B FN是被错误分类的正例个数 C 主对角元素是不同类别样例…

Python数据分析和处理

数据的维度 从一个数据到一组数据:一个数据表达一个含义,一组数据表达一个或多个含义 维度:一组数据的组织形式 一维数据:由对等关系的有序或无序数据构成。采用线性方式组织 二维数据:由多个一维数据组成,是一维数…