时间同步绝对是一个大问题

上图是加班看到的夜景

假设A电脑时间和B电脑时间不同,当他们两个电脑的用户在使用电脑的时候就会存在问题,比如A电脑的用户说,我们下午5:00 去打球,然后A电脑到了5:00就去打球了,但是可能这个时候B电脑的时间才到4:00,他们的信息就不能对齐。

还有一些问题的追溯,如果出现问题后,本地时间存在差异,那么我们根据日志时间来排查问题就会有问题。

NTP 时钟

NTP(Network TimeProtocol,网络时间)是由美国德拉瓦大学的David L. Mills教授于1985年提出,由时间协议、ICMP时间戳消息及IP时间戳选项发 展而来。NTP用于将计算机客户或服务器的时间同步到另一服务器或参考时钟源。它使用UTC作为时间标准,是基于无连接的IP协议和UDP协议的应用层协议,使用层次式时间分布模型,所能取得的准确度依赖于本地时钟硬件的精确度和对设备及进程延迟的严格控制

PTP 时钟

NTP 时钟是不准确时钟,人们为了获得更加精准的时钟对齐,所以就出现了PTP时钟。

PTP(PrecisionTime Protocol)是一种对标准以太网终端设备进行时间和频率同步的协议,也称为IEEE 1588,简称为1588。1588分为1588v1和1588v2两个版本,1588v1只能达到亚毫秒级的时间同步精度,而1588v2可以达到亚微秒级同步精度。1588v2被定义为时间同步的协议,最初只是用于设备之间的高精度时间同步,随着技术的发展,1588v2也具备频率同步的功能。

理论上任何PTP时钟都能实现主时钟和从时钟的功能,但一个PTP通信子网内只能有一个主时钟。整个系统中的最优时钟为最高级时钟GMC(Grandmaster Clock),有着最好的稳定性、精确性、确定性等。根据各节点上时钟的精度和级别以及UTC(通用协调时间)的可追溯性等 特性,由最佳主时钟算法(Best MasterClock)来自动选择各子网内的主时钟;在只有一个子网的系统中,主时钟就是最高级时钟GMC。每个系统只有一个GMC,且每个子网内只有一个主时钟,从时钟与主时钟保持同步。

整个PTP网络中,所有时钟都会按照主从(Master-Slave)层次关系组织在一起,各节点逐级同步时钟,最终完成与系统的最优时钟Grandmaster的同步。整个同步的过程是通过交换1588v2报文来完成的。从时钟通过1588v2报文中携带的时间戳信息计算与主时钟之间的时间偏移和路径延迟,据此调整本地时钟达到与主时钟的同步。

1588v2报文是在物理芯片上打时间戳,而不是在上层网络,这样能最大程度上保证时间戳的准确。因此,与传统的应用层协议NTP(Network Time Protocol,网络时间协议)相比,1588v2的精度更高。

时间同步的原理

1588V2时间同步的基本原理和NTP相同,都是主从设备之间双向收发时间同步报文,根据报文的收发时间戳,计算得到两个设备之间往返的总时间T。

如果两个方向的时延相同,T/2 就是单向时延。

根据单向时延就可以得到主设备和从设备的时间偏差,从设备根据这个时间偏差来调整自身的时间,就可以完成主从设备之间的时间同步。

PTP 与NTP的区别

NTP 协议运行在应用层,测量出来的时间差除了在实际物理网络上的时间,还包括操作系统的处理时间,比如你在发送网络数据包的时候,被更高优先级的任务中断了,又或者缓存阻塞了等等。

所以NTP的抖动相对PTP来说大得非常非常多

1588v2 的优势在于,它的时间戳是在物理层发送前加上去的,就撇开了操作系统对它和影响。

因为最近工作需要研究的一些知识点,我们要解决的问题是在两个网络设备上保证他们时间是完全对齐的,这个完全对齐一定是要求非常非常高的。如果也是在从事这方面研究的同学,欢迎一起讨论。


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Window10彻底卸载应用商店

Window10如何彻底卸载应用商店?Window10应用商店就是一个应用下载平台,我们可以在应用商店中下载各种应用,但是很多用户并不喜欢在Window10应用商店中下载应用,觉得应用商店浪费内存,因此想将应用商店卸载掉&#xff0…

STM32F7xx —— QSPI

STM32F7xx —— QSPI 目录 STM32F7xx —— QSPI 一、QSPI 二、几个重要的函数 三、几个重要的结构 四、QSPI接口设计(仅供参考) 五、QSPI驱动W25Q256 一、QSPI SPI 是 Queued SPI 的简写,是 Motorola公司推出的 SPI 接口的扩展&#xf…

嵌入式、物联网常见通信协议

本文介绍一些常见的嵌入式、物联网通信协议,它们具有不同的性能、通信速率、覆盖范围、功率和内存,而且每一种协议都有各自的优点和或多或少的缺点。其中一些通信协议只适合小型家用电器,而其他一些通信协议则可以用于大型智慧城市项目。物联…

解决T400死机的问题!

终于解决这几天突然出现的t400 vista假死问题! 原来罪魁祸首是 ThinkPad -- Intel Matrix Storage Manager驱动程序(Windows XP/vista 32bit) 此更新在su自动更新里也有 千万别更新 如果不小心更新并出现偶尔假死(现象:鼠标能动,但是不能打开程序所有应用…

网络中路由器的工作原理

大家好,我是情报小哥!01路由器

C++学习(10)

1 //设计运算符重载的复数类2 #include<iostream.h>3 4 class Complex{5 private:6 double real;//实部7 double image;//虚部8 public:9 Complex(){ 10 real0; 11 image0; 12 } 13 Complex(do…

嵌入式真的没前途?

-上图是我的朋友邓总最近在互联网&#xff0c;然后从侧面了解了嵌入式的行业发展&#xff0c;嵌入式是离不开硬件的&#xff0c;但是硬件的话&#xff0c;又不只是靠硬件赚钱&#xff0c;如果硬件做不成一个产品&#xff0c;很难卖一个好价钱&#xff0c;就好比一个好的食材&am…

js for in 遍历对象与数组

遍历对象 let obj {q:9,w:5,e:2,t:7,c:3}//for in 遍历对象 key为对象的属性名称,遍历属性值时用[]操作符访问//通过[]操作符为对象添加属性或访问属性时&#xff0c;属性名称可以是任何字符串。for (let key in obj) {console.log(obj的key:,key, obj的value:,obj[key]);} …

前凸后翘的步进电机调速算法~

[导读] 大家好&#xff0c;我是逸珺。今天想分享一种超级实用的步进电机调速算法&#xff0c;这种算法在步进电机调速方案中可以说是一种非常优异的方案。梯形调速算法 为啥需要设计一个调速算法呢&#xff1f;步进电机不是给多少脉冲就动多少步吗&#xff1f;但是带上负载了就…

CentOS 7.3 系统安装配置图解教程

一、安装CentOS 7.3 CentOS 7.x系列只有64位系统&#xff0c;没有32位。生产服务器建议安装CentOS-7-x86_64-Minimal-1611.iso版本 成功引导系统后&#xff0c;会出现下面的界面 界面说明&#xff1a; Install CentOS 7 # 安装CentOS 7 Test this media & install CentOS …

朝花夕拾-不务正业的大学生做了什么比赛?

朝花夕拾&#xff0c;旧事重提之意。恰逢CSDN年终征文&#xff0c;所以写作本文为年终总结&#xff0c;实为大学四年的总结&#xff0c;和CSDN一起成长参与各类竞赛的回忆。四年里和小伙伴们一起辛苦奋斗做了那么多比赛&#xff0c;当比赛结束&#xff0c;那些作品便无人问津了…

我是在这里学到的Linux知识的

-上图是读者朋友圈照片&#xff0c;已咨询原创作者这是一个群友分享的学习资料&#xff0c;确实很棒。今天在上班&#xff0c;临近下班的时候&#xff0c;我到茶水间打水&#xff0c;当时下比较大的雨&#xff0c;从里面向外面看出去&#xff0c;看到蒙胧胧的一片&#xff0c;春…

c#字符型转化为asc_wap站 utf-8与 gb2312字符编码的转化函数

一般的wap站的编码都是<?xml version"1.0" encoding"utf-8"?>&#xff0c;所以用form 或者a 传递参数时会遇到乱码&#xff0c;在调用页面无法读取正确的中文字符&#xff0c;可以用一下的函数编译&#xff0c;转化成中文&#xff0c;然后调用Func…

Suct(一)

网址&#xff1a;https://github.com/ScutGame/Scut/wiki 优点&#xff1a;免费&#xff0c;教程多&#xff0c;又有Demo 贼好 【服务器框架层次结构图解】 &#xff08;好厉害~&#xff09; 【一、配置好 IIS Web 服务器】 1. 打开 控制面板 -> 程序和功能 -> 打开或关…

网校系统推荐eduline_网校系统的各项功能的用处

网校系统中有许多的子系统&#xff0c;其中众所周知也是相对重要的两个子系统&#xff0c;一个考试系统&#xff0c;一个直播系统&#xff0c;今天未来云校就来讲讲这两个子系统以及这两个子系统和网校系统的联系。在线模拟考试系统与网校系统大家都知道考试相对于学员、老师和…

学习 Linux/C/C++ 必备资料

在这个信息过载的时代&#xff0c;质量往往比数量更为重要&#xff01;接下来给你推荐的&#xff0c;是我私藏很久的几个有态度、有意思、有质量的优质公号。学习 Linux/C/C 必备&#xff01;快来关注&#xff0c;在这里看见另一种可能&#xff01;开发内功修炼公众号「开发内功…

emmc固件开发_UP2开发板简易开箱(二)

在 老狼 的x86开源硬件群里面抽中了一个UP2开发板&#xff0c;时间已经过去半年多了&#xff0c;实在惭愧&#xff0c;其中一部分原因是菜&#xff0c;菜是原罪。现接上一位抽中UP2的大佬 Jiaao Bai 的文章&#xff0c;本文就叫UP2开发板简易开箱&#xff08;二&#xff09;。一…

vue基础(学习官方文档)

基础 介绍 是什么 是一套用于构建用户界面的渐进式框架声明式渲染 <div id"app">{{ message }}</div>var app new Vue({el: #app,data: {message: Hello Vue!} })vue 实例 var vm new Vue({// 选项 })一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实…

用GPIO口模拟串口通信,它真的来了

你是否遇到过某个MCU串口不够的情况&#xff1f; 这时我们可以考虑用GPIO去模拟&#xff0c;如何具体实现呢&#xff1f;首选我们需要了解串口的传输协议&#xff0c;UART使用异步模式工作&#xff0c;不需要时钟信号&#xff0c;其一般格式为&#xff1a;起始位数据位校验位停…

地壳中元素含量排名记忆口诀_在地球46亿年的历史中,氮气始终是含量最高的气体,为什么?...

人每时每刻都要呼吸&#xff0c;呼吸是生命得以存在的基础。不过人类赖以生存的氧气并不是地球上含量最高的气体&#xff0c;地球上含量最高的气体是氮气。在地球的大气之中&#xff0c;氮气的含量占到了78%&#xff0c;而氧气的含量排名第二&#xff0c;约为21%。我们经常会提…