1588协议部分翻译.docx
- 文档编号:9757715
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:24
- 大小:270.27KB
1588协议部分翻译.docx
《1588协议部分翻译.docx》由会员分享,可在线阅读,更多相关《1588协议部分翻译.docx(24页珍藏版)》请在冰豆网上搜索。
1588协议部分翻译
6.1.1总体概述
PTP标准规定了时钟同步协议,该协议应用于包含一个或多个节点的分布式系统,在若干套通信媒介上传达信息。
节点看作是包含一个实时时钟的模型,实时时钟可以用于产生日期时间戳或处理该节点管理的事件。
PTP协议提供种机制来使各参与节点的时钟达到高精度同步。
如何设计和使用支持PTP的系统参见附录A。
该标准规范了以下内容:
——PTP协议
——支持PTP协议的节点和必需的通信属性
一个PTP系统是一个包含普通时钟,有可能包含边界时钟和管理节点(administrativenodes)的分布式系统。
边界时钟是这样一种时钟:
它带有一个时钟端口,此端口提供给两个或多个不同的PTP通信通道之一。
PTP协议有两个方面:
同步和管理(administrative)。
表面上,所有的普通时钟在该协议的两个方面上都是相同的。
此外,边界时钟的每个PTP端口外表上看就相当于一个普通时钟。
一个管理节点对于实现该协议的同步方面是不需要的,除非它同时也是一个时钟节点。
6.1.2操作概述
PTP通信通道支持一套普通时钟的各PTP端口之间的直接通信,也支持任意访问通信通道的边界时钟的各PTP端口间的通信。
访问一个给定的通信通道的各时钟的一般特性也遵从这个规则。
术语“ports”包含访问通信通道的任意边界时钟们的端口。
包含这些端口之一的一个时钟会被选择作为这个通道上的主时钟。
每个端口检测包含同步报文的信息,然后决定主时钟。
同步报文由一个自称为主时钟的任何一个端口周期性地发出。
所有的端口都采用“最佳时钟算法”。
如果一个主时钟端口收到一个更好的时钟的同步报文,那么此时钟停止声明其为主时钟,并且接收端口将假定其身份为“从”。
类似的,如果一个含有一个作为从的端口的时钟比当前主时钟还要好,则将其身份假定为“主”,并开始发送同步报文。
当一个时钟刚上线comesonline时,为了提供更规则的行为,该时钟将在系统特定时间内监听主时钟发出的同步报文,如果在这段时间内没有接收到同步报文,该时钟将假定其为主时钟,直到更好的时钟出现。
当时钟加入或被删除时,有一种额外的机制来支持更规则的系统调整,时钟特性改变或连接拓扑改变都包含在了PTP_PRE_MASTER状态中。
在这个状态下,如果时钟端口为PTP_MASTER状态,那么它会像预期的那样精确运行,除非没有在端口通信通道上设置特定的报文类。
时钟端口保持在PRE_MASTER状态足够长的时间,以使得变化可以发生在系统的某些点上,而这些点存在于本地时钟和从端口可以看到的可能的主时钟之间。
InthisstateaclockportbehavesexactlyasitwouldifitwereinthePTP_MASTERstateexceptthatitdoesnotplacecertainclassesofmessagesontheportcommunicationpath.Aclockportremainsinthispremasterstatelongenoughtoallowchangestooccuratpointsinthesystembetweenthelocalclockandpossiblemasterclocksvisiblefromtheport.
来自主时钟端口的同步报文也包含该步报文放到PTP通信通道上的一个时间估计值,此估计值取决于本地(local)主时钟保持的时间。
主时钟端口也可发送随后报文,随后报文常与同步报文相关联,并且包含一个同步报文放在PTP通信通道上的更精确的时间估计值。
从端口根据同步或随后报文中的信息修正本地时钟,用这种方式使本地时钟与主时钟同步。
这种修正可以通过计算主时钟到从时钟的报文传输延时得到提高。
这种额外的修正可以通过对前一过程的逆转来估计。
也就是,从时钟向主时钟发出延迟请求报文。
这个过程没有随后报文。
主时钟随后返回延迟响应报文。
这个过程一般很少用到,这样来降低网络流量。
(加上这个过程会增加网络流量)
除了布同步报文,主时钟(也只有主时钟)也可以提供一个外部定时信号。
这个外部定时信号发送给本地时钟的秒级转换theseconds’transitionofthelocalclock。
外部定时信号只能发送给同一子域内的从时钟,而且优先选同一个PTP通信通道,在传递同步报文的媒介之外的媒介上传播。
当外部定时信号传播给与主时钟端口不相关的PTP通信通道上的时钟时,这种情况下系统的特性不在本标准研究范围之内。
边界时钟应用于时间分布树。
当变换阻塞了同步、随后、延迟请求或延迟应答报文的通信技术或网络元件时,需要用到边界时钟。
建议边界时钟用在会引起大的延迟波动的网络元件中。
边界时钟对于它能看到的包含最佳时钟的通道来说是从时钟,而对其他访问通道则声明为主时钟。
Theboundaryclockisaslavetothepathcontainingthebestclockitcanseeandassertsthatitisthemasterforallotheraccessedpaths.因为边界时钟和普通时钟一样都含有一个内部时钟(internalclock),有可能这个内部时钟就是它所能看到的最佳时钟。
这种情况下,边界时钟本身就是所有访问通道的主时钟。
因此,在包含边界时钟的系统中,可能会有几个主时钟,每个通信通道一个。
其中所有时钟中的最佳时钟被指定为grandmaster。
在每个同步报文中都包含足够的信息来允许最佳主时钟算法生成全部系统的正确配置和行为。
即是说,只有包含边界时钟的系统才有可能有grandmaster。
6.1.3假定条件
PTP标准对其运行的环境作了几个假定,以下几个假定必须满足以保证协议的正确运行:
——网络必须支持多播通信方式(参见6.2.2.2)。
——必须有可能防止多播报文传播超出子网。
——每个应用该协议的时钟必须满足7.10中的性能要求。
——每个时钟所规定的属性,包括它的级别(参见6.2.4.3)和标志符(参见6.2.4.5),必须正确地描述该时钟。
以下各条件必须满足以完成最佳的时钟同步性能:
——一个子网中的主时钟和从时钟之间的网络延迟必须对称(参见7.8.1.2)
——一个时钟在其时间戳生成机制或协议通道中可能会包含不对称的延迟。
如果这些不对称不可以忽略,它们必须被正确计算考虑(参见6.2.4.9)。
——一个子网内的主从之间的网络延迟必须为(over)在PTP_DELAY_REQ_INTERVAL之上的常数。
——边界时钟必须用于使跨越子网(acrosssubnet)同步。
——由网络元件和时钟内的协议栈所引起的延迟波动必须通过两种技术来降低:
1)对一个给定的时钟实现来说,PTP中使用的时间戳在尽可能接近物理层的地方产生。
只有当报文被实际传递之后,才能产生最精确的时间戳,在这种情况下,实际值在随后报文中由主时钟传出(参见8.4.1和附录A)。
在参考文献[B4]、[B7]、[B8]中可以参考产生这些时间戳的机制。
2)不能通过边界时钟隔离的那些由协议栈和网络设备引入的延迟波动可以通过求平均值(averaging)来降低(参见A.5.2)。
平均值算法超出了本标准的范围。
——实现该协议的时钟计算能力必须足够大,每个子网中的时钟数量必须足够小,以满足7.11中的限制。
——时钟振荡器必需有足够的内部稳定性。
(参见A.4和A.5.4)。
6.2PTP系统
包含时钟的节点典型分布式系统图如图2所示。
图2中,矩形框代表的各节点每个都包含一个时钟;圆角矩形框代表的节点都包含一个边界时钟。
这些时钟通过通信通道互相传递PTP报文,通信通道在图中用实线表示。
6.2.1时钟类型
一个PTP系统中有两种类型的时钟:
——普通时钟:
普通时钟通过单一通信通道与其他时钟通信。
如图2所示,1到4节点的各时钟通过单一通信通道A互相通信。
——边界时钟:
如图2中的节点13,边界时钟可以与多组时钟通信(例如,节点组1、2、3和4通过A通道,节点组5、6、7、8和14通过B通道,节点15通过D通道)。
每组可以既有普通时钟也有边界时钟。
一个边界时钟可以通过一个独特的(distinct)通信通道和每组进行通信。
在不相交disjoint的各组中的时钟之间(如9和5)的通信只能通过本协议中指定的边界时钟机制来实现。
边界时钟和边界时钟间的通信通过边界时钟13和14之间的通道B和13和15之间的通道D来实现。
一个时钟对一个PTP通信通道的逻辑通信访问点被定义为一个PTP端口。
普通时钟只有唯一的一个PTP端口,而边界时钟有两个或两个以上的PTP端口。
6.2.2PTP通信
6.2.2.1PTP通信拓扑结构
PTP协议运行operation产生的PTP通信通道拓扑图形成一个非循环的结构,也就是,在任何一对PTP时钟之间都不存在交替(alternate)的PTP通信通道。
举例来说,图三中包含13、14、15节点的循环通道是被禁止的通道拓扑。
同样,矩形框代表的各节点每个都包含一个时钟;圆角矩形框代表的节点都包含一个边界时钟。
PTP协议检测这样的PTP循环通信通道,PTP协议通过改变所包含的边界时钟上的端口的状态来将循环图改为非循环图。
在此例中,该协议已经禁止了14和15节点之间的通信(更精确来说,该协议已经将14或15节点上适合的端口状态置为PTP_PASSIVE。
具体将哪个节点改为该状态,这取决于网络配置的详细资料和时钟的属性而并不由这个简化的例子所决定。
)。
这些状态的改变使实际的通信在非循环拓扑中进行,尽管在物理上的连接拓扑是循环的。
产生这种拓扑的PTP协议的运行遵从Perlman在参考文献[B2]中所阐述的技术。
并不要求所有的PTP通信通道都使用同一种下面所提到的通信媒介或技术。
但是,如果存在不同的通信媒介和技术,那么使用一种给定的通信媒介或技术来互相通信的一组时钟会被一个边界时钟从使用一种不同通信媒介或技术的组中分离出来。
边界时钟将PTP子域分成各个PTP通信通道,包含边界是中的通信应该受如下限制:
——同步、延迟请求、随后和延迟应答报文不能在由边界时钟分隔开的各PTP通信通道之间传播,这种限制应用在边界时钟和所有通信技术特殊设备中,这些设备能够使位于分隔的PTP通道各设备之间的普通通信得以进行。
——PTP管理报文可以在由边界时钟分隔开的各PTP通信通道之间传播。
这些PTP管理报文只能通过边界时钟传播,但不能通过通信技术特殊设备传播。
在转发报文之前,管理报文的边界跳变字段(boundaryHops)的绝对值通过边界时钟减1。
如果边界跳变字段的值为0,管理报文不再转发,如果跳变字段的值为正数,管理报文只通过不在PTP_INITIALIZING,PTP_FAULTY,PTP_DISABLED这些状态的边界时钟端口来转发。
在任何情况下,报文都不由接收端口转发。
普通时钟不能转发管理报文。
注意——管理报文将通过在PTP_PASSIVE状态的时钟端口转发,并且因此可以多次传到某些时钟(见图8)。
管理应用应该考虑这种情况。
6.2.2.2PTP通信协议
所有的非管理PTP报文都应以多播方式传播。
多播通信导致一个PTP非管理报文的单一传输,该报文被所有分享同一PTP通信通道的时钟接收。
管理报文可以通过多播方式或点对点方式通信,所有时钟都能够通过多播通信接受管理报文。
推荐所有的实现都采用一个真正的多播实现作为实际的通信协议。
在点对点传输上扩建的多播传输的系统行为将会:
——不会随着时钟数目的增加而成比例的变化。
——要求时钟具备更复杂的逻辑来实现协议的要求。
发生在PTP域内的PTP通信由一个子域名和一个端口类型来表征(见6.2.3,6.2.5.1,6.2.5.3)。
每个报文都包含该信息并且每个时钟都保持这些从属于它的量的值。
只有与报文相关的子域名和端口类型与接收时钟的相应值一致,时钟才会接受并处理该报文。
6.2.2.3PTP报文格式,报文时间戳点point,和时钟时间戳点
PTP通信通过PTP报文来实现,在所有的通信技术中,PTP通信通道包含有区别的特定区域称之为时钟时间戳点clocktimestamppoints,某些特定报文包含有区别的特征称之为报文时间戳点messagetimestamppoints(见6.2.4.9)。
PTPcommunicationpathsaremodeledtocontaindistinguishinglocationsknownastheclocktimestamppoints,andcertainmessagesaremodeledtocontainadistinguishingfeatureknownasthemessagetimestamppoint。
这些术语的精确定义会在本标准中定义或者在其支持PTP的各网络协议的修订本中定义。
所有的PTP时间戳都是指同步或延迟请求报文的报文时间戳点经过一个时钟时间戳点的时间。
这个时间应该做等待时间(latency)的校正(见7.8.1.3)thistimeshallbecorrectedforlatency
6.2.3PTP域(domains)
一个PTP域,以后只简写为域,是指一组或多组PTP子域(subdomains)。
一个PTP子域,以后只简写为子域,包括一个或多个为了同步而互相通信的时钟。
除了确定的(certain)PTP管理报文,一个子域内的节点不能够出于与PTP相关的原因与另一个子域中的节点通信。
多个子域可以用来建立共享PTP通信通道的同步时钟的独立集合。
一个子域内的时钟之间互相同步但是不要求一个子域中的时钟与另一个子域中的时钟同步。
子域的目的是为了允许用户建立局部的时钟组,尤其是共享同一个通信通道的时钟组,该局部时钟组包含一个独立于域中其他部分的时间基准。
本标准中定义了四种子域,它们是:
——默认PTP域DefaultPTPdomain:
如果一个域只包括唯一一个子域,该子域就是默认的子域。
它可能是一个包含一个或多个子域的域中的一个子域,除非被PTP管理报文或超出本标准范围的特殊时钟方法修改(例如,aswitchontheclock),时钟会使用这个子域。
Itmaybeasubdomaininadomainconsistingofoneormoresubdomains.UnlessmodifiedbyaPTPManagementmessageorclock-specificmeansoutsidethescopeofthisstandard(e.g.,aswitchontheclock),theclockshallusethissubdomain.
——交替PTP域1AlternatePTPdomain1:
可能是一个包含一个或多个子域的域中的一个子域。
Thismaybeasubdomaininadomainconsistingofoneormoresubdomains.
——交替PTP域2AlternatePTPdomain2:
可能是一个包含一个或多个子域的域中的一个子域。
——交替PTP域3AlternatePTPdomain3:
可能是一个包含一个或多个子域的域中的一个子域。
除了前边给出的子域,一个域可能包含所谓的可选择子域(任意子域?
)optionalsubdomains。
可选择子域要实现本标准中所有其他allother的要求。
对包含可选择子域的域的管理不在本标准讨论范围之内。
举例来说:
——在图2中,如果边界时钟14和其连接被删除,就包含了两个PTP域,一个包括组9,10,11,12,另一个包括组1,2,3,4,5,6,7,8,13,15。
——如果节点14和15存在,就只有一个PTP域,包含了所有的节点。
——如果节点14和15存在并且节点1,2,3被指定为属于AlternatePTPdomani1,而剩下的节点属于DefaultPTPdomain,那么,该系统就包含两个子域。
不要求一个子域内只存在唯一的通信媒介或通信技术。
但是,根据6.2.2,如果一个子域中存在多种通信媒介或通信技术,该子域中的时钟必须包含两个或多个不相交的组,每个使用自己的PTP通信通道,通过一个或多个边界时钟通信。
边界时钟应该能够实现PTP协议关于DefaultPTPdomain的所有方面的要求。
除此之外,边界时钟可能能够实现PTP协议关于另外的PTP子域的要求(AlternatePTPdomain1-3)。
一个子域中的主时钟,除了发送同步报文,还要向该子域内所有有端口在PTP_SLAVE状态的时钟(从时钟)发送外部定时信号。
该外部定时信号应该在除传递同步报文的媒体之外的一种媒体上传送。
该外部定时型号还要在本地时钟的秒跃迁时发送ontheseconds’transitionofthelocalclock?
?
?
?
?
接收外部定时型号的从时钟可以根据这个信息来与主时钟同步。
推荐从时钟配置成只从与从时钟共享PTP通信通道的主时钟接收外部定时信号。
因为外部定时信号的通信媒介不是用于PTP通信的媒介,这种配置不在本标准讨论范围之内。
系统也允许外部定时信号被传递给子域之外的时钟或者与主时钟不在同一个PTP通信通道上的时钟,这种情况下系统的性能不在本标准讨论范围之内。
6.2.4时钟属性
PTP系统中的时钟的特性由以下各节表述。
6.2.4.1UUID
在一个PTP系统中的每个时钟和每个端口都应该有一个标识符,称之为UUID。
端口的标识符称为Port-UUID,时钟的标识符称为Clock-UUID。
UUIDs应该在以下三个字段中描述:
——communication_technology_field通信技术字段:
该字段描述该端口在PTP通信中使用的通信媒体和技术。
它的值从枚举变量CommunicationId中选择。
(见表2)
——uuid_fielduuid字段:
该字段包含长度应该为PTP_UUID_LENGTH的八位数组。
给定时钟的该字段的值是在由communication_technology_field的值所决定的通信技术中是唯一的。
在所有的通信技术中,都预留了一个该字段的各位全为零的值,作为PTP协议使用的一个特殊的值。
如果该唯一标识符的长度小于PTP_UUID_LENGTH,这种情况下的通信技术应该由该字段左侧决定,不用的位补零。
也就是说,uuid_field的最有效位应该在所有的通信技术中是有效的。
不允许UUIDs的长度大于PTP_UUID_LENGTH。
——port_id_field端口id字段:
该字段的数据类型应该是16位无符号整数。
普通时钟上的一个端口的该字段的值应该为1,带有N个端口的边界时钟上该字段的值应该是1,2,……,N。
当作为Clock-UUID的一部分时,该字段的值应该为0。
要注意的是该字段的类型将边界时钟的端口数量限制在65535之内。
不要求在内存in-memory中设置layout这些字段,它们针对以太网的在线on-the-wire设置由附录D.1给出。
本节将给出比较两个UUIDs的算法。
任何UUID的默认值都是以下字段值:
——communication_technology_field:
PTP_DEFAULT
——uuid_field:
每个八位数各位都为0
——port_id_field:
0
一个域中不能有两个带有相同Port-UUID值的端口。
对普通时钟来说,Clock-UUID就是其唯一PTP端口的Port-UUID,但是Clock-UUID的port_id_field的值必须为零。
对于一个边界时钟C来说,Clock-UUID应该按如下构建:
——找出C的端口中最小的Port-UUID,采用本节中的比较算法(要注意的是这些端口允许有不同的communication_technology_fields)。
称这个最小的Port-UUID为S。
——C的Clock-UUID应该包括:
1)一个communication_technology_field字段,其值与S的值一样。
2)一个uuid_field字段,其值与S的值一样
3)一个port_id_field字段,值为零
建议在一个应用给定通信技术的PTP域中的所有时钟使用相同的规范来决定Clock-UUID,不遵从该建议的不在本标准范围内。
期望负责标准化各个网络技术的组织提供选择uuid_field字段的方法来满足本节的需要。
关于以太网的方法在附录D.2中给出了。
如果满足本节要求的UUID没有被负责标准化一种网络技术的组织所详细说明,那么对uuid_field字段的规范应该如D.2中所规定的那样,并且communication_technology_field字段应为PTP_ETHER。
IDL:
枚举量CommunicationId:
a:
TheIEEEproductsreferredtoinTable2aretrademarksownedbytheInstituteofElectricalandElectronicsEngineers,Incorporated.
b:
LonTalkisaregisteredtrademarkofEchelonCorporation.
c:
SmartDistributedSystemisatrademarkownedbyHoneywell,Inc.
d:
ControlNetisatrademarkownedbyControlNetInternational,Ltd.
e:
InfiniBandisatrademarkownedbytheInfiniBandTradeAssociation.
f:
BluetoothisatrademarkownedbyBluetoothSIG,Inc.
以下算法定义了所有UUIDs的排序属性:
——communication_technology_field和port_id_field的值看作是无符号整数。
——uuid_fields按如下比较:
1)设X和Y为两个uuid_fields字段
2)如果X中的每个八位字节与Y中相应的八位字节相等,则X=Y。
3)否则,考虑八位字节组octets的最有效位,将在此位置上的八位字节组octets看作是无符号整数。
如果属于X的八位字节比属于Y的八位字节小,则X
现在,给出UUIDsA和B:
——如果A的communication_technology_field字段小于B的communication_technology_field字段,则A
——否则,如果A的communication_technology_field字段大于B的communication_technology_field字段,则A>B。
——否则,如果A的uuid_field字段大于B的uuid_field字段,则A>B。
——否则,如果A的uuid_field字段小于B的uuid_field字段,则A
——否则,如果A的port_id_fiels字段大于B的port_id_fiels字段,则A>B。
——否则,如果A的port_id_fiels字段小于B的p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1588 协议 部分 翻译