PTCP梳理

SoE

  • SoE是基于PTCP实现的一种应用
    • timeStamp + PTCP + ReportSystem就形成了完整的SoE功能。

时钟同步和时间同步

  • 事实上,就技术而言,IRT和SoE在实现上都是基于sync(RT_Class_3)去做的
    • IRT是基于时钟同步实现的数据等时同步实时通信,有非常严格的执行要求。它的同步错误是非常严重的,会掉站,属于Error.
      • IRT系统中使用非IRT设备,会使IRT失效,因为同步失效
      • IRT系统相邻的非IRT设备也有可能引起IRT失效(比如错误的转发了测量帧,然后被其他透明时钟节点错误的回复)
      • IRT需要拓扑视图,因为快速+准确性要求,要求系统知道邻居设备的相互关系;SoE不需要,因为LLDP只管发送。
    • SoE的核心是PTCP,基于时间同步实现所有设备之间对时。对时结束后时间戳的传递依旧基于RT发送。所以SoE的同步错误只会引起维护事件,不会对PN系统造成严重的影响

SoE中的时间概念

  • 授时设备:用于获取绝对时间,卫星也好,标准的对时装置也好,对于系统来说就是一个标准的授时设备。它的目的是定期把准确的时间发给PTCP时钟域中的"主时钟"。
  • 主时钟:PTCP的时钟域里面,需要存在一个主时钟。主时钟向所有从属的从时钟发送同步帧。

PTCP的步骤

  • 测量延时
  • 同步

重要的同步帧

  • PTCP-DelReq
  • PTCP-DelayRes
  • PTCP-FollowUp
  • PTCP-Sync
  • 所有的帧都是Multicast Frame多播帧

延迟测量

  • 延迟分为线延迟和桥延迟,桥延迟指的是数据处理交换等时间
  • 线延迟:Tld=[(T1-T4)-(T2-T3)]/2
    • T4是delreq发起的时间点
    • T3是到达DelayRes设备的时间点
    • T2是DelayRes设备经过内部运算耗时后发起Res帧的时间点
    • T1是到达req设备的时间点
    • 算出来的Tld是纯粹的线延迟时间
  • 设备自身知道自己的桥延迟时间,不用发给相邻设备
  • 为了确定两个节点之间的时钟漂移,这个测量过程至少连续进行两次

FollowUp

  • 对于硬件不能提供时间戳的设备,需要FollowUp帧。SoE的设备一定是支持时间戳的,FollowUp帧没有意义

sync帧

  • 主时钟靠多播帧进行同步,这使得所有节点使用相同的时基。每个Sync帧的接收者校正时钟并且将该帧转发给其他邻居节点,使得整个时钟域靠一个同步帧完成同步。
  • 对sync帧的理解误区
    • sync帧不是所有从时钟同一时刻接收到sync帧;虽然各个从设备接收到sync的时间不尽相同,但是它们都知道自己距离主时钟发出的标准时刻差了多少,所以精确计算还原除了主时钟的发送时刻。
    • 主时钟的标准时刻 + 各自的延迟时间 = 系统对时后的同步时间

时间基准

  • 时间同步时,各个帧发送的是以时间为单位的数字量,实际上数据可能有以下含义
    • 各个帧不同的数字,是测量出来的延迟
    • 各个帧中相同的数字,是当前时间减去1970:00:00:00得到的绝对时间

透明节点

  • 不做任何时钟调整,但精确测量报文在自己内部卡住的时间和链路时间,然后把这段时间写进报文里
  • 自己不参与同步,报文从它路过。
  • 透明节点的下游设备依旧直接和上游主时钟同步,透明节点只是让报文延迟信息“透明”。

wireshark抓包图

  • 延迟测量:
    image
  • 同步帧,注意1(距离同步时刻的时间差)是不同的,2(同步时刻)的值是相同的:
    image
  • 源MAC都是端口MAC:
    • 测量都是Multicast多播帧,测量帧不能被转发
    • 同步帧也是多播行为,帧可以被转发,04:21是特定的MAC地址。
      image
posted @ 2026-06-18 17:22  你要去码头整点薯条吗  阅读(13)  评论(0)    收藏  举报