PTP精密时钟同步(1588)如何完成精准时间同步?

PTP精密时钟同步(1588)如何完成精准时间同步?
PTP精密时钟同步(1588)如何完成精准时间同步?
引言
  以太网技术由于其开放性好、价格低廉和使用方便等特点,已经广泛应用于电信级别的网络中,以太网的数据传输速度也从早期的10M提高到100M,GE,10GE。40GE,100GE正式产品也于2009年推出。
  以太网技术是“即插即用”的,也就是将以太网终端接到IP网络上就可以随时使用其提供的业务。但是,只有“同步的”的IP网络才是一个真正的电信级网络,才能够为IP网络传送各种实时业务与数据业务的多重播放业务提供保障。目前,电信级网络对时间同步要求十分严格,对于一个全国范围的IP网络来说,骨干网络时延一般要求控制在50ms之内,现行的互联网网络时间协议NTP(Network Time Protocol),简单网络时间协议SNTP(Simple Network Time Protocol)等不能达到所要求的同步精度或收敛速度。基于以太网的时分复用通道仿真技术(TDM over Ethernet)作为一种过渡技术,具有一定的以太网时钟同步概念,可以部分解决现有终端设备用于以太网的无缝连接问题。IEEE 1588标准则特别适合于以太网,可以在一个地域分散的IP网络中实现微秒级高精度的时钟同步。本文重点介绍IEEE 1588技术及其测试实现。
  2 IEEE 1588PTP介绍
  IEEE 1588PTP协议借鉴了NTP技术,具有容易配置、快速收敛以及对网络带宽和资源消耗少等特点。IEEE1588标准的全称是“网络测量和控制系统的精密时钟同步协议标准(IEEE 1588 Precision Clock Synchronization Protocol)”,简称PTP(Precision Timing Protocol),它的主要原理是通过一个同步信号周期性的对网络中所有节点的时钟进行校正同步,可以使基于以太网的分布式系统达到精确同步,IEEE 1588PTP时钟同步技术也可以应用于任何组播网络中。
  IEEE 1588将整个网络内的时钟分为两种,即普通时钟(Ordinary Clock,OC)和边界时钟(Boundary Clock,BC),只有一个PTP通信端口的时钟是普通时钟,有一个以上PTP通信端口的时钟是边界时钟,每个PTP端口提供独立的PTP通信。其中,边界时钟通常用在确定性较差的网络设备(如交换机和路由器)上。从通信关系上又可把时钟分为主时钟和从时钟,理论上任何时钟都能实现主时钟和从时钟的功能,但一个PTP通信子网内只能有一个主时钟。整个系统中的最优时钟为最高级时钟GMC(Grandmaster Clock),有着最好的稳定性、精确性、确定性等。根据各节点上时钟的精度和级别以及UTC(通用协调时间)的可追溯性等特性,由最佳主时钟算法(Best Master Clock)来自动选择各子网内的主时钟;在只有一个子网的系统中,主时钟就是最高级时钟GMC。每个系统只有一个GMC,且每个子网内只有一个主时钟,从时钟与主时钟保持同步。图1所示的是一个典型的主时钟、从时钟关系示意。

图1 主时钟、从时钟关系示意图
  同步的基本原理包括时间发出和接收时间信息的记录,并且对每一条信息增加一个“时间戳”。有了时间记录,接收端就可以计算出自己在网络中的时钟误差和延时。为了管理这些信息,PTP协议定义了4种多点传送的报文类型和管理报文,包括同步报文(Sync),跟随报文(Follow_up),延迟请求报文(Delay_Req),延迟应答报文(Delay_Resp)。这些报文的交互顺序如图2所示。收到的信息回应是与时钟当前的状态有关的。同步报文是从主时钟周期性发出的(一般为每两秒一次),它包含了主时钟算法所需的时钟属性。总的来说同步报文包含了一个时间戳,精确地描述了数据包发出的预计时间。

图2 PTP报文与交换顺序
  由于同步报文包含的是预计的发出时间而不是真实的发出时间,所以Sync报文的真实发出时间被测量后在随后的Follow_Up报文中发出。Sync报文的接收方记录下真实的接收时间。使用Follow_Up报文中的真实发出时间和接收方的真实接收时间,可以计算出从属时钟与主时钟之间的时差,并据此更正从属时钟的时间。但是此时计算出的时差包含了网络传输造成的延时,所以使Delay_Req报文来定义网络的传输延时。
  Delay_Req报文在Sync报文收到后由从属时钟发出。与Sync报文一样,发送方记录准确的发送时间,接收方记录准确的接收时间。准确的接收时间包含在Delay_Resp报文中,从而计算出网络延时和时钟误差。同步的精确度与时间戳和时间信息紧密相关。纯软件的方案可以达到毫秒的精度,软硬件结合的方案可以达到微秒的精度。PTP协议基于同步数据包被传播和接收时的最精确的匹配时间,每个从时钟通过与主时钟交换同步报文而与主时钟达到同步。这个同步过程分为漂移测量阶段和偏移测量与延迟测量阶段。
第一阶段修正主时钟与从时钟之间的时间偏差,称为漂移测量。如图3所示,在修正漂移量的过程中,主时钟按照定义的间隔时间(缺省是2s)周期性地向相应的从时钟发出惟一的同步报文。这个同步报文包括该报文离开主时钟的时间估计值。主时钟测量传递的准确时间T0 K,从时钟测量接收的准确时间T1 K。之后主时钟发出第二条报文——跟随报文(Follow_up Message),此报文与同步报文相关联,且包含同步报文放到PTP通信路径上的更为精确的估计值。这样,对传递和接收的测量与标准时间戳的传播可以分离开来。从时钟根据同步报文和跟随报文中的信息来计算偏移量,然后按照这个偏移量来修正从时钟的时间,如果在传输路径中没有延迟,那么两个时钟就会同步。

图3 PTP时钟漂移测量计算
为了提高修正精度,可以把主时钟到从时钟的报文传输延迟等待时间考虑进来,即延迟测量,这是同步过程的第二个阶段(见图4)。

图4 PTP时钟延迟和偏移计算
  从时钟向主时钟发出一个“延迟请求”数据报文,在这个过程中决定该报文传递准确时间T2。主时钟对接收数据包打上一个时间戳,然后在“延迟响应”数据包中把接收时间戳B送回到从时钟。根据传递时间戳B和主时钟提供的接收时间戳D,从时钟计算与主时钟之间的延迟时间。与偏移测量不同,延迟测量是不规则进行的,其测量间隔时间(缺省值是4~60s之间的随机值)比偏移值测量间隔时间要大。这样使得网络尤其是设备终端的负荷不会太大。采用这种同步过程,可以消减PTP协议栈中的时间波动和主从时钟间的等待时间。从图4右边可以看到延迟时间D 和偏移时间数值O的计算方法。
  IEEE 1588目前的版本是v2.2,主要应用于相对本地化、网络化的系统,内部组件相对稳定,其优点是标准非常具有代表性,并且是开放式的。由于它的开放性,特别适合于以太网的网络环境。与其他常用于Ethernet TCP/IP网络的同步协议如SNTP或NTP相比,主要区别是PTP是针对更稳定和更安全的网络环境设计的,所以更为简单,占用的网络和计算资源也更少。NTP协议是针对于广泛分散在互联网上的各个独立系统的时间同步协议。GPS(基于卫星的全球定位系统)也是针对于分散广泛且各自独立的系统。PTP定义的网络结构可以使自身达到很高的精度,与SNTP和NTP相反,时间戳更容易在硬件上实现,并且不局限于应用层,这使得PTP可以达到微秒以内的精度。此外,PTP模块化的设计也使它很容易适应低端设备。
  IEEE1588标准所定义的精确网络同步协议实现了网络中的高度同步,使得在分配控制工作时无需再进行专门的同步通信,从而达到了通信时间模式与应用程序执行时间模式分开的效果。
  由于高精度的同步工作,使以太网技术所固有的数据传输时间波动降低到可以接受的,不影响控制精度的范围。
  3 IXIA IEEE 1588PTP测试方案
  美国IXIA公司目前提供最为完整的城域以太网功能、性能、一致性测试解决方案,并且最先在2~7层统一IP测试平台实现了IEEE 1588PTP时钟同步技术方案。关于IXIA 的城域以太网测试解决方案在以前有过详细介绍,在这里对相应的技术点和对应IXIA应用程序做一总结(见表1)。

表1 IXIA城域以太网测试方案及对应程序

图5是典型的IEEE 1588PTP测试场景,IXIA测试端口可以仿真普通时钟并处于主模式,被测设备,比如以太网交换机处于边界时钟状态,验证其对各种时钟报文的处理能力与实现;另一种测试情况是IXIA端口仿真边界时钟并处于从属模式,这时候被测设备处于主模式,验证被测设备在主时钟模式下的处理机制。IXIA端口都有PTP协议栈,可以对PTP时钟信息做灵活的配置。

图5 IEEE 1588典型测试场景
IXIA IEEE 1588PTP测试方案所支持的特性包括:支持目前最为流行的IEEE 1588 2.2版本;支持两步时钟配置;一个物理端口可以同时产生PTP流量和非PTP流量;一个物理端口一个时钟信号设置,时钟可以手动设置为主模式或者从模式;可以以柱状图显示从时钟对应于主时钟的偏移量;IXIA IxExplorer内置的实时协议分析解码软件可以对PTP报文直接进行编辑或者解码。在测试过程中可以实时显示各种详细的PTP统计信息,统计信息见表2。

表2 IXIA IEEE 1588PTP测试统计信息

IXIA IEEE 1588PTP方案还可以实现负面测试(Negative Testing),可以根据需要设定发送Sync报文中Follow-up报文的比例,观察丢弃掉的Follow-up报文对被测设备的影响;在Follow-up报文中增加错误数据包,验证被测设备的处理与检测能力;发送包括抖动与偏移的带有时间戳的数据包迫使Sync报文失败,检验被测设备的处理机制。图6所示为PTP时钟配制界面。

图6 PTP时钟配置界面
  4 结束语
  根据最新的信息公告,IXIA 被eWeek授予年度十大产品奖之一,被Frost & Sullivan授予2008全球三重播放综合测试和监测设备的年度市场领先奖,被Test & Measurement World授予三个最佳测试奖,以及被Internet Telephony授予年度产品奖,被如此众多令人尊敬有技术影响力组织机构的认可,进一步证明了IXIA正在推动测试、测量和业务认证市场的进步和战略创新,在城域以太网网技术方面,IXIA同样保持领先的地位,推出了业界第一个100G高速以太网测试加速系统,第一个在统一2~7层IP测试平台上推出了IEEE 1588PTP 精密时钟同步协议测试技术,IXIA这些技术创新和技术的领导地位,都为全面的IP测试提供了可靠保证。

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

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

相关文章

Centos部署GitLab-备份恢复

1. 下载rpm包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm2. 安装依赖 yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python3. rpm安装 rpm -ivh gitlab-ce-10.8.4-ce.…

TCP 重传、滑动窗口、流量控制、拥塞控制的剖析

TCP 是一个可靠传输的协议,那它是如何保证可靠的呢? 为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。 那么,TCP 是…

zend studio 的主题安装、卸载和更新

zend studio的主题插件安装 我的zend studio版本是13.6 在Welcome页面右侧看到有好多插件可以安装,现在我们来安装主题,主题插件就是Eclipse Color Theme。先选中Eclipse Color Theme选项打勾,然后点击Apply changs 按钮进行安装。 安装完成…

深入理解移动端H5视频通话中的摄像头切换实践

在移动端H5应用中实现视频通话功能,已经成为现代Web应用的标配之一。随着Web技术的发展,我们不仅能够在桌面浏览器上实现复杂的视频通话功能,也能够在移动端浏览器中提供几乎原生应用级别的流畅体验。本文将详细介绍如何在使用声网(Agora)Web SDK的移动端H5应用中实现摄像…

亚马逊云科技向量数据库助力生成式AI成功落地实践探秘(一) ​

随着大语言模型效果明显提升,其相关的应用不断涌现呈现出越来越火爆的趋势。其中一种比较被广泛关注的技术路线是大语言模型(LLM)知识召回(Knowledge Retrieval)的方式,在私域知识问答方面可以很好的弥补通…

案例023:基于微信小程序的童装商城的设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

Nginx503有哪些解决办法

还是经常见到的服务部署问题,今天遇见的是503: 503 的可能原因 Nginx 返回 503 错误通常表示服务暂时不可用。一些常见的原因包括: 后端服务故障:后端服务可能由于程序错误、崩溃或异常情况而无法正常响应请求。这可能是由于服…

在vue或者react或angular中,模板表达式中的箭头函数是无效的吗?为什么无效?

出现此问题的背景: 我在Angular项目中对一个标签属性绑定了一个箭头函数,编译报错。 在vue或者react或angular中,模板表达式中的箭头函数是无效的吗? 在 Vue、React 或 Angular 中,模板表达式中的箭头函数是无效的。…

Java常量池理论篇:Class常量池、运行时常量池、String常量池、基本类型常量池,intern方法1.6、1.7的区别

文章目录 Class常量池运行时常量池String常量池基本类型常量池Integer 常量池Long 常量池 加餐部分 Class常量池 每个Class字节码文件中包含类常量池用来存放字面量以及符号引用等信息。 运行时常量池 java文件被编译成class文件之后,也就是会生成我上面所说的 …

webshell之基于框架免杀

thinkphp array_map_recursive函数 array_map_recursive函数分析 这里存在一个call_user_func命令执行函数 免杀效果 B函数 免杀效果 B函数分析 exec函数分析 在exec函数用存在有个类调用,且所有的参数都可控 smarty_php_tag函数 免杀效果 smarty_php_tag函数分析…

【开源】基于Vue.js的数据可视化的智慧河南大屏

项目编号: S 059 ,文末获取源码。 \color{red}{项目编号:S059,文末获取源码。} 项目编号:S059,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 …

HTML新手入门笔记整理:块元素和行内元素

块元素 在HTML中,块元素在浏览器显示状态下独占一行,并且排斥其他元素与其位于一行。一般情况下,块元素内部可以容纳其他块元素和行内元素。 常见块元素 块元素 说明 h1~h6 标题元素 p 段落元素 div div元素 hr 水平线 ol 有序列…

打印菱形-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第9讲。 打印菱形&#xff…

周转箱与工具柜的智能化应用

在当今制造业激烈竞争的市场中,6S管理方法作为提高企业竞争力的有力工具,与精益生产中的周转箱和工具柜相结合,将为企业带来更大的优势。通过实施6S管理方法,企业不仅能够提高生产效率、降低成本,还能够改善产品质量、…

GDPU 数据结构 天码行空11

文章目录 数据结构实验十一 图的创建与存储一、实验目的二、实验内容三、【实验源代码】🍻 CPP版🍻 c 语言版🍻 java版 四、【实验结果】五、【实验总结】 数据结构实验十一 图的创建与存储 一、实验目的 1、 理解图的存储结构与基本操作&a…

nf_conntrack内核模块常见问题

nf_conntrack内核模块常见问题 问题描述排查步骤前置条件:启用nf_conntrack内核模块检查nf_conntrack配置 解决办法1:半数减少nf_conntrack buckets的值解决办法2:加倍调大m.min_free_kbytes值解决办法3:Linux社区权威答复-忽略告警 问题描述 内核报错 falling bac…

什么是 npm —— 写给初学者的编程教程

原文链接: 什么是 npm —— 写给初学者的编程教程 自 2009 年以来,Node.js 一直席卷全球。成千上万个系统基于 Node.js 构建,促使开发者在社区宣称“JavaScript 正在吞噬软件”。 Node 成功的主要因素之一是它广受欢迎的软件包管理器——np…

前k个高频单词(C++实现)

前k个高频单词 题目思路代码代码讲解 题目 思路 通过统计字符串的出现次数,并根据出现次数和字典序对字符串进行排序,找出出现频率最高的前k个字符串。使用一个自定义的仿函数作为排序的比较函数,通过map容器进行统计,然后将结果…

Linux:strace 简介

文章目录 1. 前言2. 什么是 strace ?3. 使用 strace3.1 追踪指定进程3.1.1 通过程序名追踪进程3.1.2 通过 进程 ID (PID) 追踪程序3.1.3 追踪 子进程 或 线程 3.2 系统调用情况统计3.3 追踪过滤3.3.1 追踪指定的系统调用集合3.3.2 追踪对指定文件句柄集合操作的系统调用3.3.3 …

前端已死?看看我的秋招上岸历程

背景 求职方向:web前端 技术栈:vue2、springboot(学校开过课,简单的学习过) 实习经历:两段,但都是实训类的,说白了就是类似培训,每次面试官问起时我也会坦诚交代&…