PTP精确时间协议

2023-10-29

Precision Time Protocol (PTP) IEEE 1588

PTP 是一种高精度时间同步协议, 在网络通过同步信号周期性对所有节点时钟校正。

PTP一般在硬件级实现的,精度更高,常见的是直接在 MAC 层嵌入时间戳, 1588v1能达到亚毫秒级精度,1588v2能达到亚微秒级精度。1588v2本只用于设备间高精度时间同步,随着技术的发展,1588v2也具备频率同步功能

NTP是在应用层软件实现.精度在毫秒级别。


同步过程:

 

参考上图,同步过程有以下步骤:

  1. sync同步报文。由主时钟发起的,并且真正包发送的精确时间t1记录下来。
  2. Follow_up跟随报文,把第1步记录下来的时间戳t1发送给从时钟。
  3. Delay_req延迟请求报文,由从时钟发送给主时钟,从时钟把精确时间t3记录下来。主时钟收到此报文时,把接收的精确时间t4记录下来。
  4. Delay_resp延迟请求响应报文,主时钟把第3步记录的t4,,通过报文发送给从时钟。
  5. 从时钟收到Delay_resp报文以后,凑齐t1,t2,t3,t4,一共4个时间戳。假设网络通信的延迟delay固定,通过这几个时间戳,可以推算出delay的值,以及从时钟与住时钟的偏差。

 

计算:

假设从时钟加上一个offset就跟主时钟对上,可知t_master = t_slave + offset。

可以得到以下方程:

t1 + delay = t2 + offset。 (sync同步包的发送接收过程)

t3 + offset + delay = t4。 (delay request 和 response的过程)。

 

挪动一下变量,可以得到以下方程。

delay – offset = t2 – t1

delay + offset = t4 – t3

 

解二元一次方程,可以得到

delay = ((t4 – t3) + (t2 – t1)) / 2

offset =( (t4 – t3) – (t2 – t1)) / 2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PTP精确时间协议 的相关文章

  • springBoot的序列化与反序列化

    springboot中的序列化与反序列化有一个相对比较复杂的转换过程 它主要是HTTP请求 响应的信息类型转换 包含编码 信息类型 信息转换器 注解方法的处理适配器 请求接收的信息处理器等等 我们就先从大家常用的RequestBody和Re
  • vue函数定义的多种写法

    vue定义方法 methods a e c alert aaa a e c alert aaa a function e c alert aaa 在JS中箭头函数根据是否书写大小括号可分为以下四种情况 不省略 const fun value
  • micropython-SPI通讯

    micropython SPI通讯 1 什么是SPI 2 SPI通讯原理 3 Micropython中的SPI 4 ZTMR测试SPI 1 ZTMR中SPI引脚 2 ZTMRSPI自测 2 SPI 2板之间通讯测试 1 什么是SPI SPI
  • 编码:KR字符串匹配,一个简单到领导都看得懂的算法

    常怀感恩 生活或许就不会处处深渊 这几天看了 柔性字符串匹配 觉得很有意思 书是好书 只是这个脑子是不是猪脑就不知道了 于是秉着知之为知之 不知为不知的精神 我准备再次去请教一下我的领导 在一个月黑风高的夜晚 我给领导发了个消息 领导这么回
  • APP生成器原理

    很久之前看到过APP生成器 作用 如图 你选择写几句话 然后填写APP名称和启动图 图标等东西即可立即生成一个属于你的APP 原理 通过修改文件就行 当然你的模板APP在内容上调用资源文件中的资源 如我的APP 调用资源文件中的txt 实现
  • Merkle Patricia Tree (MPT) 以太坊merkle技术分析

    一 传统merkle树缺陷 我的这篇博客merkle tree 分析 详细解释了merkle树的原理和作用 然而传统的merkle树有他的局限性 以下对Vitalik blog原文的翻译可以很好的阐述 传统merkle树的一个特别的限制是
  • 10年老技术人员:C++ 该如何快速入门?

    C 是一门面对对象的语言 我们如何学习呢 其实任何的难题都是多种简单的部分通过复杂的关系组合在一起 学语言 最关键的是理解而不是运用 高中的时候 老师给出的公式 都是告诉我们用就好了 不用去了解它怎么来的 但是语言不一样 你如果只会用那你是
  • 打造高大上的Canvas粒子动画

    首先来看下我们准备要做的粒子动画效果是怎么样的 是这样 或者是这样 甚至是这样 很酷炫 那如何去实现类似上面的粒子动画甚至根据自己的喜好去做更多其他轨迹的动画呢 请看下面详细的讲解 技术选择 因为粒子数量很多 而且涉及到图像像素处理 所以这
  • 机器人 串口配置文件serial.INI

    SERIAL INI Configuration of the serial ports and their protocols Lindemann 27 02 2002 KUKA Controls update comments and
  • 大厂Code Review 流程

    提交cr的流程 检查代码风格 可以安装googlestyle或者Alibaba的一些stylecheck工具 也许各开发团队会有自己的风格规范 从mainline中同步代码 注意使用 git pull rebase 而不是 git pull
  • Qt限制文本框输入的方法

    在做界面编程的时候 对文本框的处理往往是个很头疼的事情 一是焦点进入文本框时 从人性化考虑 应选择文本框中文本 方便输入 二是 限制文本框的输入 只允许输入有效的文本 如果不这样做的话 那么就需要在程序中滤去非法输入 在这里介绍一种解决上述
  • 如何判断是否适合学编程?

    能问出这个问题的人 肯定是心里有点想学习编程 但是又担心自己不适合学习编程 学不会反而浪费时间 那么 如何判断自己是否适合学习编程呢 可以从如下几个方面入手 1 明确自己为什么要学编程 因为不同的编程语言适用的领域不一样 比如我认识一个做互
  • 基础连接已关闭解决办法

    最近微信公众号功能莫名其妙的出问题 在调腾讯和百度接口就出问题 也不知道哪里抽风 只要调用外部接口 POST或者GET提交 准备出错 提示基础连接已关闭 httpWebRequest请求错误 基础连接已经关闭 连接被意外关闭 研究很久很久
  • 为你推荐10款开发常用的代码编辑器

    代码编辑器对于程序员来说十分重要 一个好的编辑器可以节省开发时间 提高工作效率 这篇文章会介绍10个优秀且免费的编辑器 它们都是非常方便易用的环境 你可以用它们来编写代码 查看源文件和文档等 简化你的工作 本文由PHP100中文网编译 转载
  • 区块链三加一:深度论区块链的联盟链意义与作用

    随着区块链技术的发展 越来越受个人及企业的关注 而和区块链联系最为紧密的 恐怕就是金融行业了 然而虽然区块链大受热捧 但毕竟区块链是属于公有区块链 公有区块链有着其不可编辑 不可篡改的特点 这就使得公有链并不适合企业使用了 毕竟如果某金融企
  • .net IOC之Spring.Net

    一 开发环境 编译器 VS2013 Net版本 net framework4 5 二 涉及程序集 Spring Core dll 1 3 Common Logging 三 开发过程 1 项目结构 2 添加Person cs namespac
  • Nginx日志常见时间变量解析

    request time 官方解释 request processing time in seconds with a milliseconds resolution time elapsed between the first bytes
  • pymongo "ServerSelectionTimeoutError: No servers found yet" 错误的解决

    系统转移过程中 擅自把aptitude安装的mongoengine换成了pip安装 系统启动以后 报这个错误 报错提示 File usr local lib python2 7 dist packages pymongo mongo cli
  • linux中mysql启动服务命令(合集)

    linux的mysql启动服务命令 linux的mysql启动服务命令1 使用mysqld启动 关闭MySQL服务 mysqld是MySQL的守护进程 我们可以用mysqld来启动 关闭MySQL服务 关于mysqld MySQL 5 6官
  • ySql.Data.Types.MySqlConversionException: Unable to convert MySQL date/time value to System.DateTime

    public DateTime Createtime MySql Data Types MySqlConversionException Unable to convert MySQL date time value to System D

随机推荐

  • Matlab转c后 emxArray_real_T结构体说明

    struct emxArray real T double data 具体数据 row major顺序存储 int size 当前数据尺寸 行数 列数 int allocatedSize 当前分配的空间 int numDimensions
  • C语言基础:数据类型(一)

    C语言基础 数据类型 一 C语言是计算机中很多现代编程语言的开山鼻祖 它创造了信息时代和科技时代的文明 计算机语言由机器语言慢慢演变为高级语言 1958年7月3日 ALGOL语言 Algorithmic Language 创立 C语言的原型
  • Git介绍与相关操作

    git简介 git是用于版本控制的软件 保留历史记录 便于回溯 GitHub中文官方文档 访问GitHub GitHub520 无法访问GitHub太常见了 主要方法就是查ip 改本地host文件 GitHub520本质也是修改hosts来
  • Linux内核分析 - 网络[六]:网桥

    看完了路由表 重新回到netif receive skb 函数 在提交给上层协议处理前 会执行下面一句 这就是网桥的相关操作 也是这篇要讲解的内容 skb handle bridge skb pt prev ret orig dev 网桥可
  • 记录uniapp切换主题色能在抖音小程序上无效问题

    东西很简单 就是一个data theme light 这种 就可以换不同的主题色 但是运行到抖音小程序无效 但是改成 class theme light 就可以 但是仅限于页面层级的 组件的也不行 不知道现在怎么回事 也不知道该咋改了 cs
  • 申请ios证书并发布uniapp软件(转载)

    展开 目录 1 准备环境 2 登录 iOS Dev Center 3 申请证书和描述文件之前需要先申请App ID和证书请求文件 4 申请开发 Development 证书和描述文件 用户开发者开发和测试 5 申请发布 Distributi
  • qemu: could not load PC BIOS ‘bios-256k.bin

    在centos下 首先 yum install qemu x86 64 不过此时QEMU仍然不可用 会提示 qemu could not load PC BIOS bios 256k bin 还需要再yum install qemu kvm
  • python优雅地爬虫

    背景 我需要获得新闻 然后tts 在每天上班的路上可以听一下 具体的方案后期我也会做一次分享 先看我喜欢的万能的老路 获得html内容 gt python的工具库解析 获得元素中的内容 完成 好家伙 我知道我爬取失败了 一堆js代码 看得我
  • 操作系统---(32)多级页表及相关计算

    1 一级页表结构 2 多级页表结构 计算 一个由32位二进制组成的地址空间 页面长度为4KB 每个页表项占用4B 则 进程的页面总数可达 2的20次方 1MB个 整个页表最大占用 4MB 页号 页内地址 31 16 11 0 那么问题是 4
  • 邮件

    邮件称呼 注意逗号的位置 Dear Dr Li Dear Professor Liu 不清楚性别 Dear Qi Fei and Dan Dear Mr Li Ms Sun and Ms liu Ms 女士 Mr 先生 Dear Engli
  • 华为云云耀云服务器L实例评测

    文章目录 一 前言 二 云耀云服务器L实例要点介绍 2 1 什么是云耀云服务器L实例 2 1 1 浅析云耀云服务器L实例 2 2 云耀云服务器L实例的产品定位 2 3 云耀云服务器L实例优势 2 4 云耀云服务器L实例支持的镜像与应用场景
  • TCP 报文各字段解析

    目录 1 16位源端口号 2 16位目的端口号 3 16位序号和16位确认序号 4 4位首部长度 5 16位窗口大小 6 16位紧急指针 7 6个标记位 TCP是传输控制协议 TCP对数据传输的控制就要比UDP详细很多了 比如TCP的确认机
  • Stable Diffusion ControlNet 完全指南

    ControlNet 是 Stable Diffusion中的一种扩展模型 通过这种扩展模型 我们能够将参考图像的构图 compositions 或者人体姿势迁移到目标图像 资深 Stable Diffusion 用户都知道 很难精准控制S
  • 阿里大牛亲码 Spring Boot 进阶(全彩版小册)

    什么是 Spring Boot Spring Boot 是 Spring 开源组织下的子项目 是 Spring 组件一站式解决方案 主要是简化了使用 Spring 的难度 简省了繁重的配置 提供了各种启动器 开发者能快速上手 Spring
  • 【ES6】for in 与 for of 的区别

    ES6 for in 与 for of 的区别 一般情况下 for in 用来遍历对象 也可以用来遍历数组 因为 对象和数组都属于 Object对象 for of 用来遍历数组 不能遍历对象 方便理解的小案例 for in 可以遍历循环对象
  • 【React】React组件通信(详解)

    目录 前言 父子组件通信 父子组件案例 props 父传子 props 子传父 非父子组件通信 非父子组件案例 Context跨组件通信 消息订阅 发布机制 redux通信 react redux通信 总结 前言 目前我们所学习到的Vue
  • 亚马逊、ebay、虾皮电商卖家如何做测评,提高店铺排名?

    测评是什么呢 不管是在亚马逊 速卖通 阿里国际 虾皮 Lazada 沃尔玛 美客多 ebay等跨境电商平台 测评都是成本最低且最有效的一种推广方式 通俗来说 测评就是我们常说的好评 差别 买家购买商品后为商品进行服务与综合点评 包括 产品质
  • 计算机桌面怎么全屏显示,电脑显示器如何设置成满屏

    在有些时候我们的网友不清楚电脑显示器如何设置成满屏 那么下面就由学习啦小编来给你们说说电脑显示器设置成满屏的方法吧 希望可以帮到你们哦 电脑显示器设置成满屏的方法 右击桌面 选择弹出对话框中的 屏幕分辨率 如下图 弹出如下对话框 选择对话框
  • Windows平台在线安装Qt 6.0.0图文教程

    0 前言 2020年12月8日Qt官方宣布正式发布Qt 6 0 0 是全新Qt 6系列的首个版本 是Qt的一个重要里程碑 Qt 6 0是Qt 5系列的延续 Qt 6 0将作为Qt的主要版本 为我们提供更高的自由度来实现新特性 功能 以更好地
  • PTP精确时间协议

    Precision Time Protocol PTP IEEE 1588 PTP 是一种高精度时间同步协议 在网络通过同步信号周期性对所有节点时钟校正 PTP一般在硬件级实现的 精度更高 常见的是直接在 MAC 层嵌入时间戳 1588v1