IEEE1588学习笔记 - 图文

更新时间:2023-09-11 09:57:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、端对端透明时钟(E2E)和点对点透明时钟(P2P) 1.1 透明时钟概述

IEEE1588V2.0版本(2008)相对于V1.0版本(2002)一个较大区别是,2.0版本增加了透明时钟类型。

一般组网中,交换机作为透明时钟使用。

当主从机交换消息路径包含一个或多个交换机时,延时包括两部分,路径延时(Path Delay)和驻留时间(residence time)。一般来说,路径延时是报文在物理媒介上的延时,双向对称且延时稳定。驻留时间取决于数据流量和交换机的处理能力,可能动态变化。

透明时钟分E2E(end to end)和P2P(peer to peer)两种类型。

两种类型都需要交换机支持将报文的出口时间(egress)和入口时间(igress)差值添加到报文中去。此差值即为交换机的驻留时间。

P2P时钟还能够主动发送延时请求报文给与它相接的端口,测量路径延时。 1.2 两种对时模式原理 E2E模式对时原理:

图1.1 E2E透明时钟对时原理

如图1.1所示,主从时钟经过一个E2E交换机对时,所有报文经过交换机时,交换机会将驻留时间累加到报文的校正域(CF)中,但是路径延时并没有事先知道,要发送同步报文和延时请求报文计算路径延时。E2E模式主机需要响应所有从机的Delay_Req报文,网络规模受到限制。

P2P模式对时原理:

图1.2 P2P透明时钟对时原理

如图1.2所示,主从时钟经过一个P2P交换机对时,在主机发送Sync报文之前,支持P2P模式的交换机已经主动发送pDelay_req报文,获取了交换机每个端口和与它相连的端口之间的路径延时,并保存下来。当网络拓扑关系变化时,能迅速获取到新的路径延时。因为路径延时事先获得,主机只需要广播Sync报文和Follow_Up报文,不需要响应所有从机的Delay_Req报文,负荷大大降低,可以支持比E2E模式更大的网络容量。Sync报文和Follow_Up报文经过交换机时,P2P节点的驻留时间会累加到报文校正域中,而路径延时已经事先获得,因此只需要单向报文就可以对时。

1.3 路径延时和驻留时间写入报文的方式

当报文经过交换机时,交换机会将路径延时和驻留时间写入报文的校正域(CorrectionField)中。与报文发送时间戳类型,校正域写入方式也分为一步方式(one-step)和两步方式(two-step)。

1.3.1 路径延时写入方式

如果时钟为一步点对点时钟,在Sync报文从出去端口转发之前,累加值到Sync报文校正域中。值已经通过对等延时机制,测量得到该Sync报文的进入端口对应链路的路径延时。

如果时钟为两步点对点时钟,累加值到Sync报文随后的Follow_Up报文中。其他与一步时钟相同。 1.3.2 驻留时间写入方式

一步透明时钟:值在报文离开出去端口时,累加到校正域中。

如果twoStepFlag标志为真,表示Follow_Up报文将随后接收到。

是Sync报文离开交换机出口时间减去进入交换机入口时间。该值写入与Sync报文相匹配的随后的Follow_Up报文校正域中。

二、宣告报文(Announce)

2.0版本将1.0版本的Sync同步报文拆分为Announce报文和Sync报文。Announce报文包含超主时间信息,以广播方式定时发送。如果从机在一段时间内没有收到Announce报文,说明对应的超主时钟丢失,需要用最佳主时钟算法(BMC)寻找新的超主时钟。

拆分出超主时钟后,Sync报文除了公共报文头部外,只包含时间戳信息(如有Follow_Up报文,时间戳无效)。(按:有可能Sync变短后,路径延时和驻留时间更加短、更加稳定,有利于对时)

三、时钟ID和端口ID

每个时钟节点有一个或多个端口,因此一个时钟只有一个唯一的时钟ID,然后在时钟ID层次下,再分端口ID。端口ID只要保证本时钟内各端口ID互不相同,一般从1开始编号。不同时钟节点的端口ID可以相同。

ClockIdentity数据类型是一个8字节的数组,一般即为网卡的MAC地址保证唯一性(符合EUI-64规范)。

PortIdentity数据类型是一个结构体,包括ClockIdentity和porNumber。其中porNumber不是时钟节点的端口总数目,而是端口索引,从1开始编号。

只有一个PTP端口的PTP节点的PortNumber值应该为1。有N个PTP端口的PTP节点,PortNumber值分别为1,2,……,N。全0和 全1端口ID保留。全1端口在管理报文和信号报文中使用(报文的目标端口为所有端口)。全0端口在数据集比较算法比较端口ID和时钟ID时使用(当外部主时钟和本地时钟比较portNumber时,本地时钟的portNumber设置为0)。全0端口还可以代表一个空端口,表示该端口还未初始化或者是一个无效的端口号。

?尚未明白疑问:PTP所指的不同端口是真实存在的物理端口,还是可以同一个物理端口虚拟出的端口ID?做主机时,是否需要考虑分配多个主机端口,分别给不同从机对时的情况?多个主机端口要分配在不同的物理端口,还是可以在同一物理端口虚拟?

许继:PTP时钟每个端口是指物理端口,比如一个设备有四个网卡都接入PTP系统,则总端口数为4,端口ID依次为1,2,3,4。时钟ID可以选择任意一个端口的MAC地址(一般选第一个端口的MAC地址即可)。

clockIdentity用作PTP节点的唯一标识符,而不是用作网络地址。虽然网络地址通常可以从clockIdentity获得。 四、单播、组播和广播

IEEE1588以UDP方式接入网络。在原有IEEE1588报文前面,还要加入UDP头部封装。如图4.1所示,字节0~字节41共42个字节为UDP报文头部,字节42~字节81共40个字节为IEEE报文通用头部,其后再是不同报文格式。

本文来源:https://www.bwwdw.com/article/st4h.html

Top