[首发于cnblogs,转载请注明。作者:byeyear/告别年代    Email:east3@163.com]

在阅读本文之前,假定您对以太网和NTP有一定的了解。

至少您应该大致理解以下名词或缩写:

NTP,MAC,PHY,TimeStamp

IEEE1588是一个主要运行于以太网的网络时钟同步协议,主要目标是在局域网范围内实现高于微秒级的同步精度。与常见的时钟同步协议NTP相比,区别在于下面几点:

1. TimeStamp是在硬件级打上去的,这样相比于NTP就没有了App发起packet到硬件将packet发送出去之间的延迟,所以1588能做到很高的精度。TimeStamp可以在MAC层打,也可以在PHY层打。打在MAC层实现较方便,但精度不如打在PHY层,因为在MAC和PHY之间存在着数据抖动。一般来说,做在MAC层能实现100ns以内的同步误差,打在PHY层能实现25ns以内的同步误差。但是也正因为在硬件层打TimeStamp,所以实现1588要求修改ETH硬件,并修改底层协议栈,实现起来较复杂。顺便说下,协议本身并不强制在硬件级打TimeStamp,纯软件的实现也是存在的,但其同步精度无法保证,一般将纯软件实现作为验证协议栈的一种手段,而不用于现场环境。

2.  IEEE1588使用广播或组播传递协议包,这就限制了1588只能用在支持广播或组播的网络上。

3.  IEEE1588没有专门的时间服务器,但存在着主从层次结构。网络上运行该协议的设备通过协议包的交换确立主从层次结构,并在网络拓补发生改变时重新确立主从层次。

IEEE1588协议有两个版本,分别是早期的1588-2002和最新的1588-2008。协议包不兼容。不过现在支持该协议的设备都使用了新版协议,所以兼容性基本上不是问题。

该协议也被接纳为IEC标准:IEC-61588。

我们国家有该协议的翻译稿:

GB/T 25931-2010 网络测量和控制系统的精确时钟同步协议

在后面的介绍中,若不作特别说明,均针对1588-2008。

实际上,1588本身并不限制仅用于以太网,只要是支持广播或组播的网络(比如CAN/485等),理论上都可以运行该协议。不过目前市场上能看到的支持该协议的硬件几乎都是以太网的,所以我们的介绍也将以Ethernet为例子。

支持1588协议的设备在规范中称为“时钟”,下文中我们同样用“时钟(clock)”来指代支持1588协议的设备。

1588拓补结构

当1588运行于以太网时,虽然以太网本身禁止环路,但1588为了能在非以太网环境下运行,协议本身也能够检测到环路,并在逻辑上将其断开。对于非以太网环境,我们暂时不去关注它。对使用以太网介质的1588同步系统来说,一条同步链路的两端分别是master clock和slave clock;master clock周期性发出携带自身时钟信息的同步报文,slave提取报文中的时钟信息,并利用该信息来不断修正自身的时钟。最简单的情况是,整个系统由两个网络终端构成:

|M| -------------------- |S|

Master和Slave分别是两个终端。

如果系统中存在两个以上的网络终端,那么需要一台支持1588的交换机:

|----M----M----M----M----|

|    |    |    |

|S|  |S|  |S|  |S|

上图是一台4端口1588交换机,每个端口上都挂一台终端。交换机的每个端口都是master,所有的终端都是slave clock。交换机的每个端口都同步到交换机内部的同一个时钟,所以4个端口之间是彼此同步的,而slave又分别和与其相连的交换机端口同步,于是最终4个slave也是同步的。

但也有可能挂在交换机上的某个终端是master:

|----S----M----M----M----|

|    |    |    |

|M|  |S|  |S|  |S|

此时4个网络终端中的一个是master,与之相连的交换机端口是slave。交换机将自身时钟同步到终端M,并将同步后的自身时钟信息用同步报文发送给其余三个终端。这样,交换机同步到终端M,而三个S终端又同步到交换机,于是4个终端仍然是同步的。此时,终端M是同步的源头。

当然,交换机是可以级联的,这样就形成了Tree结构。Tree的root节点我们称其为Grandmaster,所有的下层节点最终都将同步到Grandmaster。Grandmaster可以是

1)支持1588的交换机,此时交换机的每个端口都是master;

2)网络终端,该网络终端或者连接到交换机,或者连接到另一个终端

a. 如果连接到另一个终端,那么另一个终端就是slave;

b  如果连接到交换机,那么该交换机与之相连的端口是slave,其余端口是master。

上图引自IEEE1588-2008。图中clock-1是grandmaster,也是Tree的root。

我们将在下面一篇文章中讲述上图中的两个名词:Ordinary clock,Boundary clock,以及没有出现在图中但与之相关的E2E Transparent clock和P2P Transparent clock。

IEEE1588精确网络时钟同步协议简介相关推荐

  1. ptp精准时间协议_网络时钟同步协议– NTP, PTP – 默默的点滴

    这篇文章介绍一下两个时钟同步的网络协议:NTP和PTP. 这里不涉及协议的原理和具体实现(想了解的可自行Google),重点是如何搭建起这两个服务. 1. NTP及PTP简介 NTP(Network ...

  2. CentOS网络时钟同步协议-- NTP, PTP

    这篇文章介绍一下两个时钟同步的网络协议:NTP和PTP. 这里不涉及协议的原理和具体实现(想了解的可自行Google),重点是如何搭建起这两个服务. 1. NTP及PTP简介 NTP(Network ...

  3. NTP网络时钟同步协议对计算机网络数据的重要性

    NTP网络时钟同步协议对计算机网络数据的重要性 概述:电脑时间走时不准是出了名的.它一般是以廉价的振荡电路或石英钟为基础,每天的误差可达数秒,经过一段时间的累积就会出现较大的误差.随着不断增加的分散式 ...

  4. ptp精准时间协议_PTP精确时钟同步协议概述及应用

    PTP精确时钟同步协议的英文表述为:Precision Time Protocol:为这三个英文单词的缩写. 精确时钟同步协议PTP(Precision Time Protocol)是一种对标准以太网 ...

  5. GPS北斗授时服务,NTP让网络时钟同步更精确

    GPS北斗授时服务,NTP让网络时钟同步更精确 GPS北斗授时服务,NTP让网络时钟同步更精确 1.时间同步技术必定将是整个大数据处理系统的重要支撑和保障.时间同步技术使数据产生与处理系统的所有节点具 ...

  6. 西门子PCS7系统NTP网络时钟同步(NTP时钟发生器)介绍

    西门子PCS7系统NTP网络时钟同步(NTP时钟发生器)介绍 HR-901GB时钟服务器由安徽京准科技研制开发, 西门子PCS7系统时钟同步模式介绍 PCS7系统基于TIA构建方式,在整个系统下包含了 ...

  7. 分布式数据库服务器时钟同步(NTP网络时钟同步)北斗卫星同步时钟起到关键性作用

    分布式数据库服务器时钟同步(NTP网络时钟同步)北斗卫星同步时钟起到关键性作用 分布式数据库服务器时钟同步(NTP网络时钟同步)北斗卫星同步时钟起到关键性作用 文章由安徽京准科技公司提供请勿转载 时间 ...

  8. 自己动手打造精确网络时钟

    自己动手打造精确网络时钟    想不想令你的计算机时钟精准无比?下载网络校时软件当然可以,不过时不时的跳出一个让你注册的框子,实在讨厌,即使是免费的又怎么能满足你那颗充满好奇和迷惑的心呢!其实一切都很 ...

  9. 探索:制药厂系统网络时钟同步(NTP时间同步服务器)

    探索:制药厂系统网络时钟同步(NTP时间同步服务器) 探索:制药厂系统网络时钟同步(NTP时间同步服务器) [摘要]SCADA系统通过I业环网完成数据的传输,存储在服务器的数据库,在通过软件的渠道集成 ...

  10. SDH通信网络时钟同步服务(NTP/PTP精密网络时钟源)精度分析

    SDH通信网络时钟同步服务(NTP/PTP精密网络时钟源)精度分析 SDH通信网络时钟同步服务(NTP/PTP精密网络时钟源)精度分析 安徽京准公司提供原创资料!! 3) 从站时钟要从高一级设备或同一 ...

最新文章

  1. window下python扩展包大全
  2. python自学教程推荐-学习python中的pandas有没有好的教程推荐?
  3. SAP系统上线支持维护制度
  4. Git利用命令行提交代码完整步骤
  5. java开发串口步骤
  6. 电脑开机显示checking media解决方法
  7. python列表对应元素合并为列表及判断一个列表是几维
  8. Ruby on Rails 和 J2EE:两者能否共存?
  9. Partition Array by Odd and Even
  10. java设计模式懒汉_JAVA设计模式之懒汉式
  11. lte 在网络覆盖方面应该注意哪些问题_TD-LTE网络深度覆盖三个受限因素及四大解决策略...
  12. android判断是华为手机,华为手机怎么辨别真假?华为手机真伪验证多种方法
  13. 知识树沉淀总结-领域驱动设计DDD
  14. 树莓派之老的方式重刷Raspbian系统-2015
  15. openldap简介
  16. 使用SVM/k-NN模型实现手写数字多分类 - 清华大学《机器学习实践与应用》22春-周作业
  17. 杭州SEO每天一研究——网站SEO必须解决的4大问题
  18. AX88179_USB 3.0_驱动 Linux集成记录
  19. TensorFlow深度学习应用实践
  20. 他们为什么能拿到11K的入职薪资?

热门文章

  1. Umap高维数据可视化与降维
  2. 科学计算机算ph,科学计算器TechCalc v4.8.0特别高级会员版
  3. 【网络安全】目前看到最全的恶意软件分析大合集
  4. 【软件分析/静态程序分析学习笔记】1.静态程序分析(Static Program Analysis)介绍
  5. 佳顺通用进销存系统去广告_怎样选择免费进销存软件?
  6. 2022年下半年软考报名时间汇总,最新版!
  7. HDU2177——取(2堆)石子游戏(威佐夫博弈)
  8. 取石子游戏,威佐夫博弈的推理
  9. matlab掷色子游戏,掷骰子游戏四种玩法_聚会游戏必备
  10. 抢红包算法 c语言,微信红包的随机算法是怎样实现的?