浅聊一下PTP

news2024/10/7 10:20:12

浅聊一下ptp

最近做了点时间同步相关工作,浅浅聊一下学习和了解的东西吧。

大概了解了一下PTP,NTP,PTPD,LinuxPTP

1.时钟同步

网络时钟同步包括频率同步和相位同步两个概念。

频率同步(Frequency synchronization,也称为时钟同步)

信号的频率保持一致,相位不一致,但是保持一定的相位差。即信号的平均速率一致,能够保持网络中的所有设备以相同的速率运行。

在这里插入图片描述

相位同步(Phase synchronization,也称为时间同步)

信号之间的频率和相位都保持一致,即信号之间相位差恒定为零。

在这里插入图片描述

2.时间同步意义在哪

打个比方,自动驾驶汽车,检测前面有障碍物大概在某一时间要刹车,把时间信息给刹车系统,刹车系统比检测系统时间慢一点点,可能会造成刹车晚的事故。

3.什么是PTP

PTP(Precision Time Protocol)是一种精确时钟同步协议,对标准以太网终端设备进行时间和频率同步的协议,其本身可以用于设备之间的高精度时间同步,也可用于设备之间的频率同步。精度为亚微妙,而NTP精度是毫秒。

遵循IEEE1588协议,采用硬件时间戳。

1588协议是由IEEE定义的精确时间同步标准,分为1588v1和1588v2两个版本,1588v1只能达到亚毫秒级的时间同步精度,而1588v2可以达到亚微秒级同步精度。现在1588v1基本已被1588v2取代。

4.PTP的基本原理

在系统的同步过程中,主时钟周期性发布PTP时间同步协议及时间信息,从时钟端口接收主时钟端口发来的时间戳信息,系统据此计算出主从线路时间延迟及主从时间差,并利用该时间差调整本地时间,使从设备时间保持与主设备时间一致的频率与相位。IEEE1588可以同时实现频率同步和时间同步。

我只使用了delay方式。

PTP时间同步有两种不同的同步方式:Delay方式和Pdelay方式,如此划分主要是由于PTP计算路径延时有两种机制。

  • 延时请求-请求响应机制E2E(End to End):根据主从时钟之间的整体路径延时时间计算时间差。对应Delay时间同步方式。

在这里插入图片描述

  1. 主设备在时刻t1发送Sync报文。如果主设备为one-step模式,t1时间戳随Sync报文传送到从设备;如果主设备为two-step模式,则t1在随后的Follow_Up报文中传送到从设备;
  2. 从设备在时刻t2接收到Sync报文,并从Sync报文(one-step)或者Follow_Up报文(two-step)中获取t1。
  3. 从设备在时刻t3发送延时请求报文Delay_Req给主设备。
  4. 主设备在时刻t4接收到Delay_Req报文。
  5. 主设备随后通过延时回答报文Delay_Resp将t4发送给从设备。

Delay=[(t4 – t1) – (t3 – t2)]/2

t2 -t1 = offset + delay

t4 - t3 = delay - offset

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

offset = ( t2 - t1 - t4 + t3) / 2

通过PTP协议计算出本地时钟和主时钟源的时间偏移,再修正本地时钟。

  • 对端延时机制P2P(Peer to Peer):根据主从时钟之间的每一条链路延时时间计算时间差。对应PDelay时间同步方式。

P2P机制是利用延时请求Pdelay_Req报文、延时回答Pdelay_Resp报文和可能的Pdelay_Resp_Follow_Up报文,计算两个支持P2P机制的通信端口之间测量端口到端口的传播时间(路径延时)。与延时请求-响应机制相比,路径延时测量原理基本一致,只是路径延时测量在每段链路之间进行,主从节点间每段链路的链路延时累计在Pdelay_Resp或Pdelay_Resp_Follow_Up报文中,向下游传递,同时传递的信息还包括同步报文在透明时钟TC上的驻留时间。从节点根据每段链路的链路延时和在透明时钟TC上的驻留时间,计算主从节点的平均路径延时。在对端延时机制中,延时测量和端口的主从属性无关,在支持Pdelay机制的两个相连端口之间进行。

在这里插入图片描述

单段链路延时=[(t2-t1) + (t4-t3)]/2

5.PTP时钟类型

1.普通时钟OC(Ordinary Clock):同一个PTP域内,只存在单个物理端口参与PTP时间同步,也就是只有一个PTP通信端口的时钟。设备通过该端口从上游节点同步时间,或者向下游节点发布时间。

2.边界时钟BC(Boundary Clock):同一个PTP域内,可以存在两个或两个以上物理端口参与PTP时间同步,也就是有一个以上PTP通信端口的时钟。其中一个端口从上游设备同步时间,其余多个端口向下游设备发布时间。

3.透明时钟TC(Transparent Clock):TC与BC、OC最大的不同是BC和OC都要保持本设备与其他设备的时间同步,但TC则不需要与其他设备保持时间同步。TC有多个PTP端口,它只是在这些PTP端口之间转发PTP报文,对其进行转发时延校正,并不从任何一个端口同步时间。

4.Delay机制透明时钟E2ETC(End to End Transparent Clock):一种延迟测量机制已经确定为Delay方式的透明时钟。

5.Pdelay机制透明时钟P2PTC(Peer to Peer Transparent Clock):一种延迟测量机制已经确定为Pdelay方式的透明时钟。

6.Delay机制透明时钟和普通时钟E2ETCOC:一种特殊的TC节点,其在时间同步方面和TC节点相同,但额外增加了根据PTP报文同步频率,实现与上游节点频率同步的功能。其中用作TC功能的端口使用Delay方式的延迟测量机制。

7.Pdelay机制透明时钟和普通时钟P2PTCOC:同上,其中用作TC功能的端口使用Pdelay方式的延迟测量机制。

8.透明边界时钟TCandBC:设备的部分PTP端口用作BC的功能,同步其他时钟,或向其他设备同步时钟,另有部分PTP端口用作TC的功能,仅传输PTP报文,不进行延迟计算。

6.PTP端口

1.主端口(Master Port):发布同步时间的端口,可存在于T-BC、BC或OC上。

2.从端口(Slave Port):接收同步时间的端口,可存在于T-BC、BC或OC上。

3.被动端口(Passive Port):不接收同步时间,也不对外发布同步时间,闲置备用的端口,只存在于T-BC或BC上。

7.主从关系

1.发布同步时间的节点称为主节点,而接收同步时间的节点则称为从节点。

2.主节点上的时钟称为主时钟,而从节点上的时钟则称为从时钟。

3.发布同步时间的端口称为主端口,而接收同步时间的端口则称为从端口。

8.选举最优时钟

1.自己配置

2.BMC算法(还没有仔细研究过)

9.PTP报文

事件报文:Sync、Delay_Req、Pdelay_Req和Pdelay_Resp。时间概念报文,携带的时间戳计算链路延迟。

通用报文:Announce、Follow_Up、Delay_Resp、Pdelay_Resp_Follow_Up、Management和Signaling,目前设备不支持Management、Signaling报文。非时间概念报文,不产生时间戳,用于主从关系的建立、时间信息的请求和通告。

具体参考: PTP 报文格式_ptp报文_让代码更有趣的博客-CSDN博客

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

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

相关文章

Hudi集成Spark与hudi表的创建

集成Hudi包 Spark-shell 方式启动 Spark SQL方式启动 SQL方式创建hudi建表 集成Hudi包 以下为hudi与spark版本的兼容 Hudi Supported Spark 3 version 0.12.x 3.3.x,3.2.x,3.1.x 0.11.x 3.2.x(default build, Spark bundle only&…

浪漫行星,不浪漫你打我

先上效果图&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>import "https://fonts.googleapis.com/css2?familyMegrim&…

tftp文件传输协议报文解析

1&#xff0c;接着上一篇描述bootp,我们现在了解一下tftp协议。 先来看看tftp的五种报文格式 操作码补充说明&#xff1a; 读文件请求包&#xff1a;Read request&#xff0c;简写为RRQ&#xff0c;对应Opcode字段值为1 写文件请求包&#xff1a;Write requst&#xff0c;简…

练习SSM微博项目

微博项目 项目概述 ​ 该项目是一款社交媒体应用&#xff0c;用户可以在平台上发表短文、图片等信息&#xff0c;分享自己的想法、心情和生活。微博的用户群体广泛&#xff0c;包括个人、娱乐明星、公司、政府官方等。 项目功能 用户管理 用户可以注册微博账号&#xff0c;登…

​ES elasticsearch-analysis-dynamic-synonym​连接数据库动态更新synonym近义词

前言 在很多搜索场景中&#xff0c;我们希望能够搜索出搜索词相关的目标&#xff0c;同时也希望能搜索出其近义词相关的目标。例如在商品搜索中&#xff0c;搜索“瓠瓜”&#xff0c;也希望能够搜索出“西葫芦”&#xff0c;但“西葫芦”商品名称因不含有“瓠瓜”&#xff0c;导…

今年流行的人工智能AI 人脸生成器,你懂的。

使用人工智能 (AI) 继续革新我们与技术和环境互动的方式。AI 最令人兴奋的应用之一是人脸生成器&#xff0c;它可以根据输入数据创建逼真、高质量的图像。 在这篇博文中&#xff0c;我们将讨论当今可用的 10 大AI 人脸生成器&#xff0c;探索它们的功能和性能&#xff0c;并发…

DDD重构中台业务

大家好&#xff0c;我是易安&#xff01;今天我们谈一谈如何使用DDD重构中台业务。 DDD有两把利器&#xff0c;那就是它的战略设计和战术设计方法。中台在企业架构上更多偏向业务模型&#xff0c;形成中台的过程实际上也是业务领域不断细分的过程。在这个过程中我们会将同类通用…

selenium+Java环境搭建

目录 ①下载Chrome浏览器并查看浏览器版本 ②下载解压Chrome浏览器驱动 ③配置Java环境 ④将驱动文件放到jdk的bin文件目录下 ⑤验证环境是否搭建成功 1、创建java&#xff08;Maven&#xff09;项目&#xff0c;在pom.xml中添加依赖 2、在java文件创建Main类 &am…

[刷题]贪心入门

文章目录 贪心区间问题区间选点区间合并区间覆盖 哈夫曼树&#xff08;堆&#xff09;合并果子 排序不等式排队打水 绝对值不等式货仓选址 推出来的不等式耍杂技的牛 以前的题 贪心 贪心&#xff1a;每一步行动总是按某种指标选取最优的操作来进行&#xff0c; 该指标只看眼前&…

SpringBoot 整合ElasticSearch实现模糊查询,批量CRUD,排序,分页,高亮

准备工作 准备一个空的SpringBoot项目 写入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>注意你的SpringBoot和你的es版本&#xff0…

都说测试行业饱和了,为啥我们公司给初级测试还能开到了12K?

故事起因&#xff1a; 最近我有个刚毕业的学生问我说&#xff1a;我感觉现在测试行业已经饱和了&#xff0c;也不是说饱和了&#xff0c;是初级的测试根本就没有公司要&#xff0c;哪怕你不要工资也没公司要你&#xff0c;测试刚学出来&#xff0c;没有任何的项目经验和工作经验…

2023年门店管理系统如何选?简单好用的门店管理系统有哪些?

开单收银效率低、商品管理混乱、记账对账耗时耗力还易出错...... 是我们在进行门店管理过程中常见的问题。 为了改善门店管理遇到的这几大问题&#xff0c;提高门店管理效率&#xff0c;越来越多的门店开始使用门店管理系统。 但如何选择简单实用、性价比高的门店管理系统&…

肠道核心菌属——Lachnoclostridium

谷禾健康 Lachnoclostridium属是一类革兰氏阳性菌&#xff0c;专性厌氧、形成孢子、属于Clostridiales目、Lachnospiraceae科、Firmicutes门。该属最初被描述为Clostridium phytofermentans&#xff0c;后来被重新分类为Lachnoclostridium属。 Lachnoclostridium属包括来自Lach…

00后真的是内卷王中王,真的想离职了....

都说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。这不&#xff0c;前段时间我们公司来了个00年的&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。…

微服务通讯:gRPC入门教程

微服务通讯&#xff1a;个、RPC入门教程 gRPC是一个RPC框架&#xff0c;用于服务器之间服务的相互通讯&#xff0c;常见微服务项目开发中。市面上的RPC有很多&#xff0c;例如&#xff1a;dubbo、SpringCloud底层封装的等 1 概念 1.1 gRPC gRPC是一个高性能、开源的通用RPC&am…

计算机组成原理主要问题汇总(五)

一、定点数的原码、补码、反码和移码的表示和相互转换方法 1、原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位&#xff08;即最高位为符号位&#xff09;&#xff1a;正数该位为0&#xff0c;负数该位为1&#xff08;0有两种…

JavaEE(系列5) -- 多线程带来的风险(线程安全)

我们直接给出含有一个bug的例子 创建两个线程&#xff0c;各执行5w次自增。正常情况&#xff0c;结果是10w。 初始代码如下: package threading; //线程不安全 class Counter{private int count0;public void add(){count;}public int get(){return count;} } public class Th…

【项目实训】ATM自助取款系统

文章目录 1. 课程设计目的2. 课程设计任务与要求3. 课程设计说明书3.1 需求分析3.1.1 功能分析3.1.2 性能要求分析 3.2 概要设计3.2.1 功能模块图 3.3 详细设计3.3.1 实体类的设计3.3.2 实现数据库处理 3.4 主要程序功能流程图 4. 课程设计成果4.1 完整代码4.2 运行结果4.2.1 精…

最常用的开源免费自动化测试工具整理汇总 ,总有一款适合你

目录 1、Selenium 2、JMeter 3、Appium 4、Soapui 5、Postman 6、Robot Framework 7、Monkey 8、GT 9、Appscan 10、Jenkins 1、Selenium 官网&#xff1a; WebUI自动化测试 Selenium是一个用于Web应用程序测试的工具&#xff0c;Selenium已经成为Web自动化测试工程…

SpringCloud源码探析(六)-消息队列RabbitMQ

1.概述 RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;它是基于Erlang语言开发&#xff0c;并且是基于AMQP协议的。由于Erlang语言最初使用与交换机领域架构&#xff0c;因此使得RabbitMQ在Broker之间的数据交互具有良好的性能。AMQP(Advanced Message Queuing Protoc…